mirror of
https://github.com/mistergibson/gxg-server.git
synced 2026-08-15 02:15:59 -07:00
1 line
No EOL
2.3 MiB
1 line
No EOL
2.3 MiB
(function(e){"use strict";var t,n,r,i,a,s,o,$;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 u=e.Opal={};u.global=e,u.config={missing_require_severity:"error",unsupported_features_severity:"warning",experimental_features_severity:"warning",enable_stack_trace:!0};var l=Function.prototype.call,c=Function.prototype.bind,_=Object.hasOwn||l.bind(Object.prototype.hasOwnProperty),d=Object.setPrototypeOf,p=l.bind(Array.prototype.slice),f=l.bind(Array.prototype.splice),h=4;function m(){return h+=2}u.uid=m,u.id=function(e){return e.$$is_number?2*e+1:(null==e.$$id&&y(e,"$$id",m()),e.$$id)};var g=u.gvars={};function v(e,t){if(e||(e=u.Exception||Error),!$||!$.$raise)throw e.$new?e.$new(t):new e(t);arguments.length>2?$.$raise(e.$new.apply(e,p(arguments,1))):$.$raise(e,t)}u.exit=function(e){g.DEBUG&&t.log("Exited with status "+e)},u.exceptions=[],u.pop_exception=function(e){var t=u.exceptions.pop();t===e||(g["!"]=t||n)};var b={value:void 0,enumerable:!1,configurable:!0,writable:!0};function y(e,t,n){"string"==typeof e?e[t]=n:(b.value=n,Object.defineProperty(e,t,b))}u.prop=y,u.defineProperty=u.prop,u.slice=p;var w=u.truthy=function(e){return!(!1===e||n===e||null==e||e instanceof Boolean&&!0!==e.valueOf())};function x(e){var t,n,r;for(t=0,n=u.tracers_for_class.length;t<n;t++)(r=u.tracers_for_class[t]).trace_object=e,r.block.$call(r)}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{u.Kernel.$require(e.$$autoload[t].path)}catch(n){throw e.$$autoload[t].exception=n,n}if(e.$$autoload[t].required=!0,null!=e.$$const[t])return e.$$autoload[t].success=!0,e.$$const[t]}}function G(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 n,r,i;if(null!=e)for(n=0,r=(i=C(e)).length;n<r;n++){if(i[n].$$const&&_(i[n].$$const,t))return i[n].$$const[t];if(i[n].$$autoload&&i[n].$$autoload[t])return k(i[n],t)}}function S(e,t){return(e||i).$const_missing(t)}function O(e,t,r){var a=!0;return null!=e&&"::"!==e||(e=i),r.$$is_a_module&&(null!=r.$$name&&r.$$name!==n||(r.$$name=t),null==r.$$base_module&&(r.$$base_module=e)),e.$$const=e.$$const||Object.create(null),(t in e.$$const||"$$autoload"in e&&t in e.$$autoload)&&(a=!1),e.$$const[t]=r,e.$$=e.$$const,u.const_cache_version++,e===i&&(u[t]=r),y(e,t,r),a&&e.$const_added&&!e.$const_added.$$pristine&&e.$const_added(t),r}function M(e){return null!=e&&(e.$$bridge?e:!!e.$$super&&M(e.$$super))}function A(e,t,r){var i,a;if(i=(a=M(t))?function(){var e=new(c.apply(a.$$constructor,F(null,arguments)));return d(e,i.$$prototype),e}:function(){},e&&e!==n&&y(i,"displayName","::"+e),y(i,"$$name",e),y(i,"$$constructor",i),y(i,"$$prototype",i.prototype),y(i,"$$const",{}),y(i,"$$is_class",!0),y(i,"$$is_a_module",!0),y(i,"$$super",t),y(i,"$$cvars",{}),y(i,"$$own_included_modules",[]),y(i,"$$own_prepended_modules",[]),y(i,"$$ancestors",[]),y(i,"$$ancestors_cache_version",null),y(i,"$$subclasses",[]),y(i,"$$cloned_from",[]),y(i.$$prototype,"$$class",i),u.Class&&d(i,u.Class.prototype),null!=t){if(d(i.$$prototype,t.$$prototype),!0!==r)if("undefined"!=typeof WeakRef){var s,o,$=[];for(s=0;s<t.$$subclasses.length;s++)void 0!==(o=t.$$subclasses[s]).deref()&&$.push(o);$.push(new WeakRef(i)),t.$$subclasses=$}else t.$$subclasses.push(i);t.$$meta&&u.build_class_singleton_class(i)}return i}function N(e){var t=function(){},n=t;return e&&y(t,"displayName",e+".constructor"),y(n,"$$name",e),y(n,"$$prototype",t.prototype),y(n,"$$const",{}),y(n,"$$is_module",!0),y(n,"$$is_a_module",!0),y(n,"$$cvars",{}),y(n,"$$iclasses",[]),y(n,"$$own_included_modules",[]),y(n,"$$own_prepended_modules",[]),y(n,"$$ancestors",[n]),y(n,"$$ancestors_cache_version",null),y(n,"$$cloned_from",[]),d(n,u.Module.prototype),n}function z(e,t){e.hasOwnProperty("$$meta")?e.$$meta=t:y(e,"$$meta",t),e.$$frozen?e.$$meta.$freeze():d(e,t.$$prototype)}function D(e){return e.hasOwnProperty("$$iclass")&&e.hasOwnProperty("$$root")}function I(e){var t=T(e);return e.$$is_module&&e.$$iclasses.push(t),t}function T(e){var t={},n=e.$$prototype;n.hasOwnProperty("$$dummy")&&(n=n.$$define_methods_on);var r,i=Object.getOwnPropertyNames(n),a=i.length;for(r=0;r<a;r++){var s=i[r];y(t,s,n[s])}return y(t,"$$iclass",!0),y(t,"$$module",e),t}function R(e){var t=e.length,n=e[0];if(y(n,"$$root",!0),1===t)return{first:n,last:n};for(var r=n,i=1;i<t;i++){var a=e[i];d(r,a),r=a}return{first:e[0],last:e[t-1]}}function q(e){if(!e.hasOwnProperty("$$dummy"))return e.hasOwnProperty("$$iclass")?e.$$module:e.hasOwnProperty("$$class")?e.$$class:void 0}function C(e){if(!e)return[];if(e.$$ancestors_cache_version===u.const_cache_version)return e.$$ancestors;var t,n,r,i=[];for(t=0,n=function(e){return e.$$own_prepended_modules.concat([e]).concat(e.$$own_included_modules)}(e),r=n.length;t<r;t++)i.push(n[t]);if(e.$$super)for(t=0,r=(n=C(e.$$super)).length;t<r;t++)i.push(n[t]);return e.$$ancestors_cache_version=u.const_cache_version,e.$$ancestors=i,i}function j(e){return e.hasOwnProperty("$$meta")&&null!==e.$$meta?C(e.$$meta):C(e.$$class)}function B(e,t,n){try{e(t)}catch(e){if(e===n)return n.$v;throw e}}function P(e,t){"number"==typeof t?e.$$arity=t:"object"==typeof t&&Object.assign(e,t)}u.falsy=function(e){return!w(e)},u.type_error=function(e,t,n,r){e=e.$$class,r&&n?(r=r.$$class,v(u.TypeError,"can't convert "+e+" into "+t+" ("+e+"#"+n+" gives "+r+")")):v(u.TypeError,"no implicit conversion of "+e+" into "+t)},u.coerce_to=function(e,t,n,r){var i;return"to_int"===n&&t===u.Integer&&e.$$is_number?e<0?Math.ceil(e):Math.floor(e):"to_str"===n&&t===u.String&&e.$$is_string||u.is_a(e,t)?e:e["$respond_to?"].$$pristine&&e.$method_missing.$$pristine?((null==(i=e[H(n)])||i.$$stub)&&u.type_error(e,t),i.apply(e,r)):(e["$respond_to?"](n)||u.type_error(e,t),null==r&&(r=[]),u.send(e,n,r))},u.respond_to=function(e,t,n){if(null==e||!e.$$class)return!1;n=!!n;var r=e[t];return e["$respond_to?"].$$pristine?"function"==typeof r&&!r.$$stub||(e["$respond_to_missing?"].$$pristine?void 0:u.send(e,e["$respond_to_missing?"],[t.substr(1),n])):u.send(e,e["$respond_to?"],[t.substr(1),n])},u.trace_class=!1,u.tracers_for_class=[],u.const_get_local=function(e,t,n){var r;if(null!=e)return"::"===e&&(e=i),e.$$is_module||e.$$is_class||v(u.TypeError,e.toString()+" is not a class/module"),null!=(r=G(e,t))||n?r:S(e,t)},u.const_get_qualified=function(e,t,n){var r,a,s,o=u.const_cache_version;return null==t?null!=(r=G(i,e))?r:u.const_get_qualified(i,e,n):null!=e?("::"===e&&(e=i),e.$$is_module||e.$$is_class||v(u.TypeError,e.toString()+" is not a class/module"),null==(a=e.$$const_cache)&&(y(e,"$$const_cache",Object.create(null)),a=e.$$const_cache),null==(s=a[t])||s[0]!==o?(null!=(r=G(e,t))||(r=E(e,t)),a[t]=[o,r]):r=s[1],null!=r||n?r:S(e,t)):void 0},u.const_cache_version=1,u.const_get_relative=function(e,t,n){var r,a,s,o=e[0],$=u.const_cache_version;return null==(a=e.$$const_cache)&&(y(e,"$$const_cache",Object.create(null)),a=e.$$const_cache),null==(s=a[t])||s[0]!==$?(null!=(r=G(o,t))||null!=(r=function(e,t){var n,r,i;if(0!==e.length)for(n=0,r=e.length;n<r;n++){if(null!=(i=e[n].$$const[t]))return i;if(e[n].$$autoload&&e[n].$$autoload[t])return k(e[n],t)}}(e,t))||null!=(r=E(o,t))||(r=function(e,t){if(null==e||e.$$is_module)return E(i,t)}(o,t)),a[t]=[$,r]):r=s[1],null!=r||n?r:S(o,t)},u.const_set=O,u.constants=function(e,t){null==t&&(t=!0);var n,r,a,s,o=[e],$={};for(t&&(o=o.concat(C(e))),t&&e.$$is_module&&(o=o.concat([u.Object]).concat(C(u.Object))),r=0,a=o.length;r<a&&(n=o[r],e===i||n!=i);r++){for(s in n.$$const)$[s]=!0;if(n.$$autoload)for(s in n.$$autoload)$[s]=!0}return Object.keys($)},u.const_remove=function(e,t){if(u.const_cache_version++,null!=e.$$const[t]){var r=e.$$const[t];return delete e.$$const[t],r}if(e.$$autoload&&e.$$autoload[t])return delete e.$$autoload[t],n;v(u.NameError,"constant "+e+"::"+e.$name()+" not defined")},u.const_get_relative_factory=function(e){return function(t,n){return u.$$(e,t,n)}},u.$$=u.const_get_relative,u.$$$=u.const_get_qualified,u.$r=u.const_get_relative_factory,u.allocate_class=A,u.klass=function(e,t,n){var r;null==e||"::"==e?e=i: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?(r=t,t=i):v(u.TypeError,"superclass must be a Class ("+(t.constructor&&(t.constructor.name||t.constructor.$$name)||typeof t)+" given)"));var a=function(e,t){var n=G(e,t);if(n)return n.$$is_class||v(u.TypeError,t+" is not a class"),n}(e,n);return null!=a?t&&function(e,t){e.$$super!==t&&v(u.TypeError,"superclass mismatch for class "+e.$$name)}(a,t):(null==t&&(t=i),O(e,n,a=A(n,t)),t.$inherited&&t.$inherited(a),r&&u.bridge(r,a)),u.trace_class&&x(a),a},u.allocate_module=N,u.module=function(e,t){var n;return null==e||"::"==e?e=i:e.$$is_class||e.$$is_module||(e=e.$$class),n=function(e,t){var n=G(e,t);return null==n&&e===i&&(n=E(i,t)),n&&(n.$$is_module||n===i||v(u.TypeError,t+" is not a module")),n}(e,t),null==n&&O(e,t,n=N(t)),u.trace_class&&x(n),n},u.get_singleton_class=function(e){return e.$$is_number&&v(u.TypeError,"can't define singleton"),e.$$meta?e.$$meta:e.hasOwnProperty("$$is_class")?u.build_class_singleton_class(e):e.hasOwnProperty("$$is_module")?u.build_module_singleton_class(e):u.build_object_singleton_class(e)},u.build_class_singleton_class=function(e){if(e.$$meta)return e.$$meta;var t=A(null,e===r?s:u.get_singleton_class(e.$$super),!0);return y(t,"$$is_singleton",!0),y(t,"$$singleton_of",e),z(e,t),y(e,"$$class",u.Class),t},u.build_module_singleton_class=function(e){if(e.$$meta)return e.$$meta;var t=A(null,u.Module,!0);return y(t,"$$is_singleton",!0),y(t,"$$singleton_of",e),z(e,t),y(e,"$$class",u.Module),t},u.build_object_singleton_class=function(e){var t=e.$$class,r=A(n,t,!0);return y(r,"$$is_singleton",!0),y(r,"$$singleton_of",e),delete r.$$prototype.$$class,z(e,r),r},u.is_method=function(e){return"$"===e[0]&&"$"!==e[1]},u.instance_methods=function(e){for(var t=Object.create(null),n=[],r=C(e),i=0,a=r.length;i<a;i++){var s=r[i].$$prototype;s.hasOwnProperty("$$dummy")&&(s=s.$$define_methods_on);for(var o=Object.getOwnPropertyNames(s),$=0,l=o.length;$<l;$++){var c=o[$];if(!t[c]){if(u.is_method(c))if(!s[c].$$stub){var _=c.slice(1);n.push(_)}t[c]=!0}}}return n},u.own_instance_methods=function(e){var t=[],n=e.$$prototype;n.hasOwnProperty("$$dummy")&&(n=n.$$define_methods_on);for(var r=Object.getOwnPropertyNames(n),i=0,a=r.length;i<a;i++){var s=r[i];if(u.is_method(s))if(!n[s].$$stub){var o=s.slice(1);t.push(o)}}return t},u.methods=function(e){return u.instance_methods(e.$$meta||e.$$class)},u.own_methods=function(e){return e.$$meta?u.own_instance_methods(e.$$meta):[]},u.receiver_methods=function(e){var t=u.get_singleton_class(e),n=u.own_instance_methods(t),r=u.own_instance_methods(t.$$super);return n.concat(r)},u.class_variables=function(e){var t,n=C(e),r={};for(t=n.length-1;t>=0;t--){var i=n[t];for(var a in i.$$cvars)r[a]=i.$$cvars[a]}return r},u.class_variable_set=function(e,t,n){var r,i=C(e);for(r=i.length-2;r>=0;r--){var a=i[r];if(_(a.$$cvars,t))return a.$$cvars[t]=n,n}return e.$$cvars[t]=n,n},u.class_variable_get=function(e,t,r){if(_(e.$$cvars,t))return e.$$cvars[t];var i,a=C(e),s=a.length;for(i=0;i<s;i++){var o=a[i];if(_(o.$$cvars,t))return o.$$cvars[t]}return r||v(u.NameError,"uninitialized class variable "+t+" in "+e.$name()),n},u.append_features=function(e,t){var n=C(e),r=[];-1!==n.indexOf(t)&&v(u.ArgumentError,"cyclic include detected");for(var i=0,a=n.length;i<a;i++){var s=I(n[i]);y(s,"$$included",!0),r.push(s)}var o,$,l=C(t),c=R(r);if(-1===l.indexOf(e))o=t.$$prototype,$=Object.getPrototypeOf(t.$$prototype);else{for(var _=t.$$prototype,p=Object.getPrototypeOf(_);null!=p&&(p.$$module!==e||!D(p));)_=p,p=Object.getPrototypeOf(p);if(p){for(var f=Object.getPrototypeOf(p);f.hasOwnProperty("$$iclass")&&!D(f);)f=Object.getPrototypeOf(f);o=_,$=f}else o=t.$$prototype,$=Object.getPrototypeOf(t.$$prototype)}d(o,c.first),d(c.last,$),t.$$own_included_modules=function(e){for(var t,n=[],r=Object.getPrototypeOf(e.$$prototype);r&&!r.hasOwnProperty("$$class");)(t=q(r))&&n.push(t),r=Object.getPrototypeOf(r);return n}(t),u.const_cache_version++},u.prepend_features=function(e,t){var n=C(e),r=[];-1!==n.indexOf(t)&&v(u.ArgumentError,"cyclic prepend detected");for(var i=0,a=n.length;i<a;i++){var s=I(n[i]);y(s,"$$prepended",!0),r.push(s)}var o,$,l,c=R(r),_=t.$$prototype,p=Object.getPrototypeOf(_);if(_.hasOwnProperty("$$dummy")?o=_.$$define_methods_on:(o=T(t),function(e){for(var t=e.$$prototype,n=Object.getOwnPropertyNames(t),r=0;r<n.length;r++){var i=n[r];u.is_method(i)&&delete t[i]}}(t),y(_,"$$dummy",!0),y(_,"$$define_methods_on",o),d(_,o),d(o,p)),-1===C(t).indexOf(e))for($=_,l=Object.getPrototypeOf(_);null!=l&&!l.hasOwnProperty("$$root")&&l!==o&&l.hasOwnProperty("$$iclass");)l=Object.getPrototypeOf(l);else v(u.RuntimeError,"Prepending a module multiple times is not supported");d($,c.first),d(c.last,l),t.$$own_prepended_modules=function(e){var t,n=[],r=Object.getPrototypeOf(e.$$prototype);if(e.$$prototype.hasOwnProperty("$$dummy"))for(;r&&r!==e.$$prototype.$$define_methods_on;)(t=q(r))&&n.push(t),r=Object.getPrototypeOf(r);return n}(t),u.const_cache_version++},u.bridge=function(e,t){e.hasOwnProperty("$$bridge")&&v(u.ArgumentError,"already bridged"),y(e,"$$bridge",t),d(e.prototype,(t.$$super||u.Object).$$prototype),y(t,"$$prototype",e.prototype),y(t.$$prototype,"$$class",t),y(t,"$$constructor",e),y(t,"$$bridge",!0)},u.ancestors=C,u.included_modules=function(e){for(var t=[],n=null,r=Object.getPrototypeOf(e.$$prototype);r&&Object.getPrototypeOf(r);r=Object.getPrototypeOf(r))(n=q(r))&&n.$$is_module&&r.$$iclass&&r.$$included&&t.push(n);return t},u.add_stubs=function(e){for(var t,n,r=u.BasicObject.$$prototype,i=0,a=(e=e.split(",")).length;i<a;i++)(null==(n=r[t=H(e[i])])||n.$$stub)&&u.add_stub_for(r,t)},u.add_stub_for=function(e,t){y(e,t,u.stub_for(t))},u.stub_for=function(e){function t(){return this.$method_missing.$$p=t.$$p,t.$$p=null,this.$method_missing.apply(this,F(e.slice(1),arguments))}return t.$$stub=!0,t},u.ac=function(e,t,n,r){var i="";n.$$is_a_module?i+=n.$$name+".":i+=n.$$class.$$name+"#",i+=r,v(u.ArgumentError,"["+i+"] wrong number of arguments (given "+e+", expected "+t+")")},u.block_ac=function(e,t,n){var r="`block in "+n+"'";v(u.ArgumentError,r+": wrong number of arguments (given "+e+", expected "+t+")")},u.find_super=function(e,t,n,r,i){var a,s,o,$,l,c=H(t),_=-1;for(a=j(e),$=n.$$owner,l=0;l<a.length;l++)if((s=a[l])===$||-1!==s.$$cloned_from.indexOf($)){_=l;break}for(l=_+1;l<a.length;l++){var d=(s=a[l]).$$prototype;if(d.hasOwnProperty("$$dummy")&&(d=d.$$define_methods_on),d.hasOwnProperty(c)){o=d[c];break}}return!r&&o&&o.$$stub&&e.$method_missing.$$pristine&&v(u.NoMethodError,"super: no superclass method `"+t+"' for "+e,t),o.$$stub&&!i?null:o},u.find_block_super=function(e,t,n,r,i){var a=t;return n||v(u.RuntimeError,"super called outside of method"),i&&n.$$define_meth&&v(u.RuntimeError,"implicit argument passing of super from method defined by define_method() is not supported. Specify all arguments explicitly"),n.$$def&&(a=n.$$jsid),u.find_super(e,a,n,r)},u.find_super_dispatcher=u.find_super,u.find_iter_super_dispatcher=u.find_block_super,u.yield1=function(e,t){"function"!=typeof e&&v(u.LocalJumpError,"no block given");var n=e.$$has_top_level_mlhs_arg,r=e.$$has_trailing_comma_in_args,i=e.$$is_lambda&&e.$$ret;return(e.length>1||(n||r)&&1===e.length)&&(t=u.to_ary(t)),(e.length>1||r&&1===e.length)&&t.$$is_array?i?B(e.apply.bind(e,null),t,e.$$ret):e.apply(null,t):i?B(e,t,e.$$ret):e(t)},u.yieldX=function(e,t){return"function"!=typeof e&&v(u.LocalJumpError,"no block given"),e.length>1&&1===t.length&&t[0].$$is_array&&(t=t[0]),e.$$is_lambda&&e.$$ret?B(e.apply.bind(e,null),t,e.$$ret):e.apply(null,t)},u.rescue=function(e,t){for(var n=0;n<t.length;n++){var r=t[n];if(r.$$is_array){var i=u.rescue(e,r);if(i)return i}else if(u.Opal.Raw&&r===u.Opal.Raw.Error||r["$==="](e))return r}return null},u.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!==C(e.$$is_class?u.get_singleton_class(e):e.$$meta||e.$$class).indexOf(t))},u.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;v(u.TypeError,"Can't convert "+e.$$class+" to Hash ("+e.$$class+"#to_hash gives "+t.$$class+")")}else v(u.TypeError,"no implicit conversion of "+e.$$class+" into Hash")},u.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===n?[e]:t.$$is_array?t:void v(u.TypeError,"Can't convert "+e.$$class+" to Array ("+e.$$class+"#to_ary gives "+t.$$class+")")},u.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===n?[e]:t.$$is_array?t:void v(u.TypeError,"Can't convert "+e.$$class+" to Array ("+e.$$class+"#to_a gives "+t.$$class+")")},u.extract_kwargs=function(e){var t=e[e.length-1];if(null!=t&&u.respond_to(t,"$to_hash",!0))return f(e,e.length-1),t},u.kwrestargs=function(e,t){var n=new Map;return u.hash_each(e,!1,(function(e,r){return t[e]||u.hash_put(n,e,r),[!1,!1]})),n};var L=new Map;function H(e){var t=L.get(e);return t||(t="$"+e,L.set(e,t)),t}function F(e,t){return t.$$is_array||(t=p(t)),[e].concat(t)}function U(e,t){if(e.$$is_module)for(var n=0,r=e.$$iclasses,i=r.length;n<i;n++){delete r[n][t]}}function Y(e){return"function"==typeof e&&!e.$$stub}function V(e,t){var n=e.get(t);if(void 0!==n)return e.delete(t),n}u.jsid=H,u.send=function(e,t,n,r,i){var a;return"function"==typeof t?(a=t,t=null):"string"==typeof t?a=e[H(t)]:v(u.NameError,"Passed method should be a string or a function"),u.send2(e,a,t,n,r,i)},u.send2=function(e,t,n,r,i,a){return null==t&&null!=n&&e.$method_missing&&(t=e.$method_missing,r=F(n,r)),P(i,a),"function"==typeof i&&(t.$$p=i),t.apply(e,r)},u.refined_send=function(e,t,n,r,i,a){var s,o,$,l,c,_,d,p,f,h;for(l=j(t),s=0;s<l.length;s++)for(c=u.id(l[s]),o=0;o<e.length;o++)for($=(_=e[o]).length-1;$>=0;$--)if(void 0!==(d=_[$]).$$refine_modules&&void 0!==(p=d.$$refine_modules)[c]&&void 0!==(f=p[c]).$$prototype[H(n)])return h=f.$$prototype[H(n)],u.send2(t,h,n,r,i,a);return u.send(t,n,r,i,a)},u.lambda=function(e,t){return e.$$is_lambda=!0,P(e,t),e},u.def=function(e,t,n,r){return P(n,r),e===u.top?u.defn(u.Object,t,n):!e.$$eval&&e.$$is_a_module?u.defn(e,t,n):u.defs(e,t,n)},u.defn=function(e,t,n){W(e),n.displayName=t,n.$$owner=e;var r=t.substr(1),i=e.$$prototype;if(i.hasOwnProperty("$$dummy")&&(i=i.$$define_methods_on),y(i,t,n),e.$$is_module){e.$$module_function&&u.defs(e,t,n);for(var a=0,s=e.$$iclasses,o=s.length;a<o;a++){y(s[a],t,n)}}var $=e.$$singleton_of;return!e.$method_added||e.$method_added.$$stub||$?$&&$.$singleton_method_added&&!$.$singleton_method_added.$$stub&&$.$singleton_method_added(r):e.$method_added(r),r},u.defs=function(e,t,n,r){return P(n,r),(e.$$is_string||e.$$is_number)&&v(u.TypeError,"can't define singleton"),u.defn(u.get_singleton_class(e),t,n)},u.rdef=function(e,t){_(e.$$prototype,t)||v(u.NameError,"method '"+t.substr(1)+"' not defined in "+e.$name()),delete e.$$prototype[t],U(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))},u.udef=function(e,t){e.$$prototype[t]&&!e.$$prototype[t].$$stub||v(u.NameError,"method '"+t.substr(1)+"' not defined in "+e.$name()),u.add_stub_for(e.$$prototype,t),U(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))},u.alias=function(e,t,n){var r,i,a=H(t),s=H(n);if(void 0===e.$$prototype&&(e=u.Object),r=e.$$prototype[s],e.$$eval)return u.alias(u.get_singleton_class(e),t,n);if(!Y(r)){for(var o=e.$$super;"function"!=typeof r&&o;)r=o[s],o=o.$$super;!Y(r)&&e.$$is_module&&(r=u.Object.$$prototype[s]),Y(r)||v(u.NameError,"undefined method `"+n+"' for class `"+e.$name()+"'")}return r.$$alias_of&&(r=r.$$alias_of),(i=u.wrap_method_body(r)).displayName=t,i.$$alias_of=r,i.$$alias_name=t,u.defn(e,a,i),e},u.wrap_method_body=function(e){var t=function(){var n=t.$$p;return t.$$p=null,u.send(this,e,arguments,n)};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},u.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}}),n},u.alias_native=function(e,t,n){var r=H(t),i=e.$$prototype[n];return("function"!=typeof i||i.$$stub)&&v(u.NameError,"undefined native method `"+n+"' for class `"+e.$name()+"'"),u.defn(e,r,i),e},u.hash_init=function(e){t.warn("DEPRECATION: Opal.hash_init is deprecated and is now a no-op.")},u.hash_clone=function(e,t){return t.$$none=e.$$none,t.$$proc=e.$$proc,u.hash_each(e,t,(function(e,n){return u.hash_put(t,e,n),[!1,t]}))},u.hash_put=function(e,t,n){var r=typeof t;if("string"===r||"symbol"===r||"number"===r||"boolean"===r||"bigint"===r)e.set(t,n);else if(t.$$is_string)e.set(t.valueOf(),n);else{e.$$keys||(e.$$keys=new Map);var i=t.$$is_string?t.valueOf():e.$$by_identity?u.id(t):t.$hash(),a=e.$$keys;if(!a.has(i))return a.set(i,[t]),void e.set(t,n);for(var s,o=a.get(i),$=0;$<o.length;$++)if(t===(s=o[$])||t["$eql?"](s))return void e.set(s,n);o.push(t),e.set(t,n)}},u.hash_get=function(e,t){var n=typeof t;if("string"===n||"symbol"===n||"number"===n||"boolean"===n||"bigint"===n)return e.get(t);if(e.$$keys){var r,i=t.$$is_string?t.valueOf():e.$$by_identity?u.id(t):t.$hash(),a=e.$$keys.get(i);if(void 0!==a){for(var s=0;s<a.length;s++)if(t===(r=a[s])||t["$eql?"](r))return e.get(r)}else if(t.$$is_string)return e.get(i)}else if(t.$$is_string)return e.get(t.valueOf())},u.hash_delete=function(e,t){var n=typeof t;if("string"===n||"symbol"===n||"number"===n||"boolean"===n||"bigint"===n)return V(e,t);if(e.$$keys){var r,i=t.$$is_string?t.valueOf():e.$$by_identity?u.id(t):t.$hash(),a=e.$$keys.get(i);if(void 0!==a){for(var s=0;s<a.length;s++)if(t===(r=a[s])||t["$eql?"](r))return a.splice(s,1),0===a.length&&e.$$keys.delete(i),V(e,r)}else if(t.$$is_string)return V(e,i)}else if(t.$$is_string)return V(e,t.valueOf())},u.hash_rehash=function(e){var t=e.$$keys;return t&&t.clear(),u.hash_each(e,!1,(function(n,r){var i=typeof n;if("string"===i||"symbol"===i||"number"===i||"boolean"===i||"bigint"===i)return[!1,!1];var a=n.$$is_string?n.valueOf():e.$$by_identity?u.id(n):n.$hash();if(t||(e.$$keys=t=new Map),!t.has(a))return t.set(a,[n]),[!1,!1];for(var s,o=t.get(a),$=1===o.length?o:p(o),l=0;l<$.length;l++)(n===(s=$[l])||n["$eql?"](s))&&(o.splice(o.indexOf(s),1),e.delete(s));return o.push(n),[!1,!1]})),e},u.hash=function(){var e,t,n,r,i,a,s=arguments.length;if(1===s&&arguments[0].$$is_hash)return arguments[0];if(t=new Map,1===s){if(e=arguments[0],arguments[0].$$is_array){for(r=e.length,n=0;n<r;n++)2!==e[n].length&&v(u.ArgumentError,"value not of length 2: "+e[n].$inspect()),i=e[n][0],a=e[n][1],u.hash_put(t,i,a);return t}for(i in e=arguments[0])_(e,i)&&(a=e[i],u.hash_put(t,i,a));return t}for(s%2!=0&&v(u.ArgumentError,"odd number of arguments for Hash"),n=0;n<s;n+=2)i=arguments[n],a=arguments[n+1],u.hash_put(t,i,a);return t},u.hash2=function(e,n){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 r=new Map,i=0,a=e.length;i<a;i++)r.set(e[i],n[e[i]]);return r},u.hash_each=function(e,t,n){for(var r,i,a=0,s=Array.from(e.entries()),o=s.length;a<o;a++)if((r=n((i=s[a])[0],i[1]))[0])return r[1];return r?r[1]:t},u.range=function(e,t,n){var r=new u.Range;return r.begin=e,r.end=t,r.excl=n,r};var K=["constructor","displayName","__count__","__noSuchMethod__","__parent__","__proto__","hasOwnProperty","valueOf"];function W(e){e.$$frozen&&v(u.FrozenError,"can't modify frozen "+e.$class()+": "+e,new Map([["receiver",e]]))}function X(e,t){var n,r,i,a=Object.getOwnPropertyNames(e),s=a.length;for(n=0;n<s;n++)"$"!==(r=a[n])[0]&&(i=Object.getOwnPropertyDescriptor(e,r))&&i.enumerable&&t(r,i)}function J(e,t){return"number"==typeof e&&"number"==typeof t}function Q(e,t){return"number"==typeof e&&"number"==typeof t||"string"==typeof e&&"string"==typeof t}function Z(e){return function(){return e}}u.ivar=function(e){return-1!==K.indexOf(e)&&(e+="$"),e},u.deny_frozen_access=W,u.freeze=function(e){return y(e,"$$frozen",!0),e.hasOwnProperty("$$id")||y(e,"$$id",m()),e.hasOwnProperty("$$meta")?e.$$meta.$freeze():y(e,"$$meta",null),e.hasOwnProperty("$$comparable")||y(e,"$$comparable",null),Object.seal(e),e},u.each_ivar=X,u.freeze_props=function(e){var t={get:null,set:function(t){W(e)},enumerable:!0};X(e,(function(n,r){r.writable&&(t.get=Z(r.value),Object.defineProperty(e,n,t))}))},u.escape_regexp=function(e){return e.replace(/([-[\]\/{}()*+?.^$\\| ])/g,"\\$1").replace(/[\n]/g,"\\n").replace(/[\r]/g,"\\r").replace(/[\f]/g,"\\f").replace(/[\t]/g,"\\t")},u.global_regexp=function(e){return e.global?e:(null==e.$$g?e.$$g=new RegExp(e.source,(e.multiline?"gm":"g")+(e.ignoreCase?"i":"")):e.$$g.lastIndex=null,e.$$g)},u.global_multiline_regexp=function(e){var t,n;return e.global&&e.multiline?e:(n="gm"+(e.ignoreCase?"i":""),e.multiline?(null==e.$$g&&(e.$$g=new RegExp(e.source,n)),t=e.$$g):(null==e.$$gm&&(e.$$gm=new RegExp(e.source,n)),t=e.$$gm),t.lastIndex=null,t)},u.regexp=function(e,t){for(var n,r=void 0!==t&&t&&t.indexOf("i")>=0,i=0,a=e.length;i<a;i++)(n=e[i])instanceof RegExp&&(n.ignoreCase!==r&&u.Kernel.$warn("ignore case doesn't match for "+n.source.$inspect(),new Map([["uplevel",1]])),n=n.source),""===n&&(n="(?:"+n+")"),e[i]=n;return t?new RegExp(e.join(""),t):new RegExp(e.join(""))},u.modules={},u.loaded_features=["corelib/runtime"],u.current_dir=".",u.require_table={"corelib/runtime":!0},u.normalize=function(e){var t,n,r=[];"."!==u.current_dir&&(e=u.current_dir.replace(/\/*$/,"/")+e);for(var i=0,a=(t=(e=(e=e.replace(/^\.\//,"")).replace(/\.(rb|opal|js)$/,"")).split("/")).length;i<a;i++)""!==(n=t[i])&&(".."===n?r.pop():r.push(n));return r.join("/")},u.loaded=function(e){var t,n,r;for(t=0,n=e.length;t<n;t++)r=u.normalize(e[t]),u.require_table[r]||(u.loaded_features.push(r),u.require_table[r]=!0)},u.load_normalized=function(e){u.loaded([e]);var n=u.modules[e];if(n){var r=n(u);if("undefined"!=typeof Promise&&r instanceof Promise)return r.then(Z(!0))}else{var i=u.config.missing_require_severity,a="cannot load such file -- "+e;"error"===i?v(u.LoadError,a):"warning"===i&&t.warn("WARNING: LoadError: "+a)}return!0},u.load=function(e){return e=u.normalize(e),u.load_normalized(e)},u.require=function(e){return e=u.normalize(e),!u.require_table[e]&&u.load_normalized(e)},u.encodings=Object.create(null),u.set_encoding=function(e,t,n){void 0===n&&(n="encoding"),"string"!=typeof e&&!0!==e.$$frozen||v(u.FrozenError,"can't modify frozen String");var r=u.find_encoding(t);return r===e[n]||(e[n]=r),e},u.find_encoding=function(e){var t=u.encodings,n=t[e]||t[e.toUpperCase()];return n||v(u.ArgumentError,"unknown encoding name - "+e),n},u.enc=function(e,t){var n=new String(e);return(n=u.set_encoding(n,t)).internal_encoding=n.encoding,n},u.binary=function(e){var t=new String(e);return u.set_encoding(t,"binary","internal_encoding")},u.last_promise=null,u.promise_unhandled_exception=!1,u.queue=function(e){if(u.last_promise)return u.last_promise=u.last_promise.then((function(){if(!u.promise_unhandled_exception)return e(u)})).catch((function(e){u.respond_to(e,"$full_message")&&(e=e.$full_message()),t.error(e),u.promise_unhandled_exception=!0,u.exit(1)})),u.last_promise;var n=e(u);return"function"==typeof Promise&&"object"==typeof n&&n instanceof Promise&&(u.last_promise=n),n},u.rb_plus=function(e,t){return J(e,t)?e+t:e["$+"](t)},u.rb_minus=function(e,t){return J(e,t)?e-t:e["$-"](t)},u.rb_times=function(e,t){return J(e,t)?e*t:e["$*"](t)},u.rb_divide=function(e,t){return J(e,t)?e/t:e["$/"](t)},u.rb_lt=function(e,t){return J(e,t)?e<t:e["$<"](t)},u.rb_gt=function(e,t){return J(e,t)?e>t:e["$>"](t)},u.rb_le=function(e,t){return J(e,t)?e<=t:e["$<="](t)},u.rb_ge=function(e,t){return J(e,t)?e>=t:e["$>="](t)},u.eqeq=function(e,t){return Q(e,t)?e===t:w(e["$=="](t))},u.eqeqeq=function(e,t){return Q(e,t)?e===t:w(e["$==="](t))},u.neqeq=function(e,t){return Q(e,t)?e!==t:w(e["$!="](t))},u.not=function(e){return null==e||!1===e||n===e||!0!==e&&!e["$!"].$$pristine&&w(e["$!"]())},u.return_val=Z,u.return_self=function(){return this},u.return_ivar=function(e){return function(){return null==this[e]?n:this[e]}},u.assign_ivar=function(e){return function(t){return W(this),this[e]=t}},u.assign_ivar_val=function(e,t){return function(){return W(this),this[e]=t}},u.ensure_kwargs=function(e){return null==e?new Map:e.$$is_hash?e:void v(u.ArgumentError,"expected kwargs")},u.get_kwarg=function(e,t){var n=u.hash_get(e,t);return void 0===n&&v(u.ArgumentError,"missing keyword: "+t),n},u.large_array_unpack=function(e){var t,r=e.split(","),i=r.length;for(t=0;t<i;t++)switch(r[t][0]){case void 0:r[t]=n;break;case"-":case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":r[t]=+r[t]}return r},u.opal32_init=Z(1332765036),u.opal32_add=function(e,t){var n,r;return e=(n=e^=t)<<(r=1)|n>>>32-r},u.BasicObject=r=A("BasicObject",null),u.Object=i=A("Object",u.BasicObject),u.Module=a=A("Module",u.Object),u.Class=s=A("Class",u.Module),u.Opal=o=N("Opal"),u.Kernel=$=N("Kernel"),d(u.BasicObject,u.Class.$$prototype),d(u.Object,u.Class.$$prototype),d(u.Module,u.Class.$$prototype),d(u.Class,u.Class.$$prototype),r.$$const.BasicObject=r,O(i,"BasicObject",r),O(i,"Object",i),O(i,"Module",a),O(i,"Class",s),O(i,"Opal",o),O(i,"Kernel",$),r.$$class=s,i.$$class=s,a.$$class=s,s.$$class=s,o.$$class=a,$.$$class=a,y(i.$$prototype,"toString",(function(){var e=this.$to_s();return e.$$is_string&&"object"==typeof e?e.valueOf():e})),y(i.$$prototype,"$require",u.require),u.top=new i,u.top.$to_s=u.top.$inspect=Z("main"),u.top.$define_method=function e(){var t=e.$$p;return e.$$p=null,u.send(i,"define_method",arguments,t)},u.NilClass=A("NilClass",u.Object),O(i,"NilClass",u.NilClass),(n=u.nil=new u.NilClass).$$id=4,n.call=n.apply=function(){v(u.LocalJumpError,"no block given")},n.$$frozen=!0,n.$$comparable=!1,Object.seal(n),u.thrower=function(e){return{$thrower_type:e,$throw:function(t,r){throw null==t&&(t=n),this.is_orphan&&!r&&v(u.LocalJumpError,"unexpected "+e,t,e.$to_sym()),this.$v=t,this},is_orphan:!1}},Object.defineProperty(g,"@",{enumerable:!0,configurable:!0,get:function(){return w(g["!"])?g["!"].$backtrace():n},set:function(e){w(g["!"])?g["!"].$set_backtrace(e):v(u.ArgumentError,"$! not set")}}),u.t_eval_return=u.thrower("return"),TypeError.$$super=Error,u.file_sources={}}).call(this),Opal.loaded(["corelib/runtime.js"]),Opal.modules["corelib/helpers"]=function(e){var t=e.type_error,n=e.coerce_to,r=e.module,i=e.defs,a=e.slice,s=e.eqeqeq,o=e.Kernel,$=e.truthy,u=e.Opal,l=e.nil,c=e.$$$;return e.add_stubs("===,raise,respond_to?,nil?,__send__,<=>,class,coerce_to!,new,to_s,__id__"),function(_){var d=r("::","Opal");i(d,"$bridge",(function(t,n){return e.bridge(t,n)})),i(d,"$coerce_to!",(function(e,r,i,$){var u,l;return u=a(arguments,3),l=n(e,r,i,u),s(r,l)||o.$raise(t(e,r,i,l)),l}),-4),i(d,"$coerce_to?",(function(e,r,i,u){var c,_=l;return c=a(arguments,3),$(e["$respond_to?"](i))?(_=n(e,r,i,c),$(_["$nil?"]())?l:(s(r,_)||o.$raise(t(e,r,i,_)),_)):l}),-4),i(d,"$try_convert",(function(e,t,n){return s(t,e)?e:$(e["$respond_to?"](n))?e.$__send__(n):l})),i(d,"$compare",(function(e,t){var n;return n=e["$<=>"](t),$(n===l)&&o.$raise(c("ArgumentError"),"comparison of "+e.$class()+" with "+t.$class()+" failed"),n})),i(d,"$destructure",(function(e){if(1==e.length)return e[0];if(e.$$is_array)return e;for(var t=new Array(e.length),n=0,r=t.length;n<r;n++)t[n]=e[n];return t})),i(d,"$respond_to?",(function(e,t,n){return null==n&&(n=!1),!(null==e||!e.$$class)&&e["$respond_to?"](t,n)}),-3),i(d,"$instance_variable_name!",(function(e){return e=u["$coerce_to!"](e,c("String"),"to_str"),$(/^@[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})),i(d,"$class_variable_name!",(function(e){return e=u["$coerce_to!"](e,c("String"),"to_str"),$(e.length<3||"@@"!==e.slice(0,2))&&o.$raise(c("NameError").$new("`"+e+"' is not allowed as a class variable name",e)),e})),i(d,"$const_name?",(function(e){return"string"!=typeof e&&(e=u["$coerce_to!"](e,c("String"),"to_str")),e[0]===e[0].toUpperCase()})),i(d,"$const_name!",(function(e){return $(c("::","String","skip_raise")?"constant":l)&&(e=u["$coerce_to!"](e,c("String"),"to_str")),e&&e[0]==e[0].toUpperCase()||this.$raise(c("NameError"),"wrong constant name "+e),e})),i(d,"$pristine",(function(t,n){for(var r,i,s,o=(r=a(arguments,1)).length-1;o>=0;o--)i=r[o],(s=t.$$prototype[e.jsid(i)])&&!s.$$stub&&(s.$$pristine=!0);return l}),-2);var p=[];return i(d,"$inspect",(function(t){var n=!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!==p.indexOf(t.$__id__())?"#<"+t.$$class+":0x"+t.$__id__().$to_s(16)+">":(p.push(t.$__id__()),n=!0,t.$inspect())}catch(n){if(!e.rescue(n,[c("Exception")]))throw n;n;try{return"#<"+t.$$class+":0x"+t.$__id__().$to_s(16)+">"}finally{e.pop_exception(n)}}}finally{n&&p.pop()}}()}),-1)}()},Opal.modules["corelib/module"]=function(e){var t,n,r=e.truthy,i=e.coerce_to,a=e.const_set,s=e.Object,o=e.return_ivar,$=e.assign_ivar,u=e.ivar,l=e.deny_frozen_access,c=e.freeze,_=e.prop,d=e.jsid,p=e.each_ivar,f=e.klass,h=e.Opal,m=e.Kernel,g=e.defs,v=e.send,b=e.def,y=e.eqeqeq,w=e.Module,x=e.rb_lt,k=e.rb_gt,G=e.slice,E=e.to_a,S=e.return_val,O=e.eqeq,M=e.not,A=e.rb_le,N=e.range,z=e.send2,D=e.find_super,I=e.alias,T=e.nil,R=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(t,n,q){var C=f("::",null,"Module"),j=[C].concat(q),B=e.$r(j);function P(e){if(e.$$is_string)return e;var t=h.$try_convert(e,R("String"),"to_str");if(t.$$is_string)return t;t===T?m.$raise(R("TypeError"),e+" is not a symbol nor a string"):m.$raise(R("TypeError"),"can't convert "+e.$class()+" to String ("+e.$class()+"#to_str gives "+t.$class())}g(C,"$allocate",(function(){var t=e.allocate_module(T,(function(){}));return this!==e.Module&&Object.setPrototypeOf(t,this.$$prototype),t})),b(C,"$initialize",(function e(){var t=e.$$p||T;return e.$$p=null,t!==T?v(this,"module_eval",[],t.$to_proc()):T})),b(C,"$===",(function(t){return!r(null==t)&&e.is_a(t,this)})),b(C,"$<",(function(t){var n,r,i,a=this;if(y(w,t)||m.$raise(R("TypeError"),"compared with non class/module"),a===t)return!1;for(r=0,i=(n=e.ancestors(a)).length;r<i;r++)if(n[r]===t)return!0;for(r=0,i=(n=e.ancestors(t)).length;r<i;r++)if(n[r]===a)return!1;return T})),b(C,"$<=",(function(e){var t;return r(t=this["$equal?"](e))?t:x(this,e)})),b(C,"$>",(function(e){return y(w,e)||m.$raise(R("TypeError"),"compared with non class/module"),x(e,this)})),b(C,"$>=",(function(e){var t;return r(t=this["$equal?"](e))?t:k(this,e)})),b(C,"$<=>",(function(e){var t=T;return this===e?0:y(w,e)?(t=x(this,e),r(t["$nil?"]())?T:r(t)?-1:1):T})),b(C,"$alias_method",(function(t,n){var r=this;return l(r),t=i(t,R("String"),"to_str"),n=i(n,R("String"),"to_str"),e.alias(r,t,n),r})),b(C,"$alias_native",(function(t,n){var r=this;return null==n&&(n=t),l(r),e.alias_native(r,t,n),r}),-2),b(C,"$ancestors",(function(){return e.ancestors(this)})),b(C,"$append_features",(function(t){return l(t),e.append_features(this,t),this})),b(C,"$attr_accessor",(function(e){var t,n;return t=G(arguments),v(this,"attr_reader",E(n=t)),v(this,"attr_writer",E(n))}),-1),b(C,"$attr",(function(e){var t,n=this;return 2!=(t=G(arguments)).length||!0!==t[1]&&!1!==t[1]?v(n,"attr_reader",E(t)):(n.$warn("optional boolean argument is obsoleted",new Map([["uplevel",1]])),t[1]?n.$attr_accessor(t[0]):n.$attr_reader(t[0]),T)}),-1),b(C,"$attr_reader",(function(t){var n,r=this;n=G(arguments),l(r);for(var i=r.$$prototype,a=n.length-1;a>=0;a--){var s=n[a],$=d(s),c=u(s),_=o(c);e.prop(i,c,T),_.$$parameters=[],_.$$arity=0,e.defn(r,$,_)}return T}),-1),b(C,"$attr_writer",(function(t){var n,r=this;n=G(arguments),l(r);for(var i=r.$$prototype,a=n.length-1;a>=0;a--){var s=n[a],o=d(s+"="),c=u(s),_=$(c);_.$$parameters=[["req"]],_.$$arity=1,e.prop(i,c,T),e.defn(r,o,_)}return T}),-1),b(C,"$autoload",(function(t,n){var r=this;return l(r),B("Opal")["$const_name?"](t)||m.$raise(R("NameError"),"autoload must be constant name: "+t),""==n&&m.$raise(R("ArgumentError"),"empty file name"),r.$$const.hasOwnProperty(t)||(r.$$autoload||(r.$$autoload={}),e.const_cache_version++,r.$$autoload[t]={path:n,loaded:!1,required:!1,success:!1,exception:!1},r.$const_added&&!r.$const_added.$$pristine&&r.$const_added(t)),T})),b(C,"$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 n=t.$ancestors(),r=0,i=n.length;r<i;r++)if(n[r].$$autoload&&n[r].$$autoload[e]&&!n[r].$$autoload[e].required&&!n[r].$$autoload[e].success)return n[r].$$autoload[e].path;return T})),b(C,"$class_variables",(function(){return Object.keys(e.class_variables(this))})),b(C,"$class_variable_get",(function(t){return t=h["$class_variable_name!"](t),e.class_variable_get(this,t,!1)})),b(C,"$class_variable_set",(function(t,n){return l(this),t=h["$class_variable_name!"](t),e.class_variable_set(this,t,n)})),b(C,"$class_variable_defined?",(function(t){return t=h["$class_variable_name!"](t),e.class_variables(this).hasOwnProperty(t)})),b(C,"$const_added",S(T)),h.$pristine(C,"const_added"),b(C,"$remove_class_variable",(function(t){var n=this;if(l(n),t=h["$class_variable_name!"](t),e.hasOwnProperty.call(n.$$cvars,t)){var r=n.$$cvars[t];return delete n.$$cvars[t],r}m.$raise(R("NameError"),"cannot remove "+t+" for "+n)})),b(C,"$constants",(function(t){return null==t&&(t=!0),e.constants(this,t)}),-1),g(C,"$constants",(function(t){if(null==t){var n,r,i,a=(this.$$nesting||[]).concat(s),o={};for(r=0,i=a.length;r<i;r++)for(n in a[r].$$const)o[n]=!0;return Object.keys(o)}return e.constants(this,t)}),-1),g(C,"$nesting",(function(){return this.$$nesting||[]})),b(C,"$const_defined?",(function(t,n){var i=this;null==n&&(n=!0),t=B("Opal")["$const_name!"](t),r(t["$=~"](R(h,"CONST_NAME_REGEXP")))||m.$raise(R("NameError").$new("wrong constant name "+t,t));var a,o,$,u=[i];for(n&&(u=u.concat(e.ancestors(i)),i.$$is_module&&(u=u.concat([s]).concat(e.ancestors(s)))),o=0,$=u.length;o<$;o++){if(null!=(a=u[o]).$$const[t])return!0;if(a.$$autoload&&a.$$autoload[t]&&!a.$$autoload[t].required&&!a.$$autoload[t].success)return!0}return!1}),-2),b(C,"$const_get",(function(t,n){var i=this;return null==n&&(n=!0),0===(t=B("Opal")["$const_name!"](t)).indexOf("::")&&"::"!==t&&(t=t.slice(2)),r(-1!=t.indexOf("::")&&"::"!=t)?v(t.$split("::"),"inject",[i],(function(e,t){return null==e&&(e=T),null==t&&(t=T),e.$const_get(t)})):(r(t["$=~"](R(h,"CONST_NAME_REGEXP")))||m.$raise(R("NameError").$new("wrong constant name "+t,t)),n?e.$$([i],t):e.const_get_local(i,t))}),-2),b(C,"$const_missing",(function(e){var t;return t=O(this,s)?e:this+"::"+e,m.$raise(R("NameError").$new("uninitialized constant "+t,e))})),b(C,"$const_set",(function(e,t){return l(this),e=h["$const_name!"](e),(r(e["$!~"](R(h,"CONST_NAME_REGEXP")))||r(e["$start_with?"]("::")))&&m.$raise(R("NameError").$new("wrong constant name "+e,e)),a(this,e,t),t})),b(C,"$public_constant",S(T)),b(C,"$define_method",(function t(n,i){var a=t.$$p||T,s=this,o=T,$=T,u=T;if(t.$$p=null,l(s),void 0===i&&a===T&&m.$raise(R("ArgumentError"),"tried to create a Proc object without a block"),n=P(n),r(void 0!==i)&&(a=y(R("Proc"),o=i)?i:y(R("Method"),o)?i.$to_proc().$$unbound:y(R("UnboundMethod"),o)?e.wrap_method_body(i.$$method):m.$raise(R("TypeError"),"wrong argument type "+i.$class()+" (expected Proc/Method/UnboundMethod)"),r(!i.$$is_proc)&&($=i.$owner(),r($.$$is_class)&&M(A(s,$))&&(u=r($.$$is_singleton)?"can't bind singleton method to a different class":"bind argument must be a subclass of "+$,m.$raise(R("TypeError"),u)))),"undefined"!=typeof Proxy){Object.create(null);a.$$proxy_target=a,a=new Proxy(a,{apply:function(e,t,r){var i=e.$$jsid,a=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=i,e.$$is_lambda=a}}})}return a.$$jsid=n,a.$$s=null,a.$$def=a,a.$$define_meth=!0,e.defn(s,d(n),a)}),-2),b(C,"$freeze",(function(){var e=this;return r(e["$frozen?"]())?e:(e.hasOwnProperty("$$base_module")||_(e,"$$base_module",null),c(e))})),b(C,"$remove_method",(function(t){var n,r=this;n=G(arguments);for(var i=0;i<n.length;i++){var a=P(n[i]);l(r),e.rdef(r,"$"+a)}return r}),-1),b(C,"$singleton_class?",(function(){return!!this.$$is_singleton})),b(C,"$include",(function(e){for(var t,n=this,r=(t=G(arguments)).length-1;r>=0;r--){var i=t[r];i.$$is_module||m.$raise(R("TypeError"),"wrong argument type "+i.$class()+" (expected Module)"),i.$append_features(n),i.$included(n)}return n}),-1),b(C,"$included_modules",(function(){return e.included_modules(this)})),b(C,"$include?",(function(t){t.$$is_module||m.$raise(R("TypeError"),"wrong argument type "+t.$class()+" (expected Module)");var n,r,i,a=e.ancestors(this);for(n=0,r=a.length;n<r;n++)if((i=a[n])===t&&i!==this)return!0;return!1})),b(C,"$instance_method",(function(e){var t=this,n=t.$$prototype[d(e)];return n&&!n.$$stub||m.$raise(R("NameError").$new("undefined method `"+e+"' for class `"+t.$name()+"'",e)),R("UnboundMethod").$new(t,n.$$owner||t,n,e)})),b(C,"$instance_methods",(function(t){return null==t&&(t=!0),r(t)?e.instance_methods(this):e.own_instance_methods(this)}),-1),b(C,"$included",S(T)),b(C,"$extended",S(T)),b(C,"$extend_object",(function(e){return l(e),T})),b(C,"$method_added",(function(e){return G(arguments),T}),-1),b(C,"$method_removed",(function(e){return G(arguments),T}),-1),b(C,"$method_undefined",(function(e){return G(arguments),T}),-1),b(C,"$module_eval",(function t(n){var i,a,s=t.$$p||T,o=this,$=T,u=T,l=T,c=T,_=T,d=T;t.$$p=null,i=G(arguments),r(s["$nil?"]())&&r(!!e.compile)?(r(N(1,3,!1)["$cover?"](i.$size()))||m.$raise(R("ArgumentError"),"wrong number of arguments (0 for 1..3)"),$=null==(a=[].concat(E(i)))[0]?T:a[0],u=null==a[1]?T:a[1],null==a[2]?T:a[2],l=new Map([["file",r(c=u)?c:"(eval)"],["eval",!0]]),_=new Map([["arity_check",!1]]).$merge(l),d=h.$compile($,_),s=v(m,"proc",[],(function t(){var n=null==t.$$s?this:t.$$s;return new Function("Opal,self","return "+d)(e,n)}),{$$s:o})):r(i["$any?"]())&&m.$raise(R("ArgumentError"),"wrong number of arguments ("+i.$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 p,f=s.$$s;return s.$$s=null,p=s.apply(o,[o]),s.$$s=f,p}),-1),b(C,"$module_exec",(function e(t){var n,r=e.$$p||T;e.$$p=null,n=G(arguments),r===T&&m.$raise(R("LocalJumpError"),"no block given");var i,a=r.$$s;return r.$$s=null,i=r.apply(this,n),r.$$s=a,i}),-1),b(C,"$method_defined?",(function(e){var t=this.$$prototype[d(e)];return!!t&&!t.$$stub})),b(C,"$module_function",(function(t){var n,r=this;if(n=G(arguments),l(r),0===n.length)return r.$$module_function=!0,T;for(var i=0,a=n.length;i<a;i++){var s=n[i],o=d(s),$=r.$$prototype[o];e.defs(r,o,$)}return 1===n.length?n[0]:n}),-1),b(C,"$name",(function(){var e=this;if(e.$$full_name)return e.$$full_name;for(var t=[],n=e;n;){if(n.$$name===T||null==n.$$name)return T;if(t.unshift(n.$$name),(n=n.$$base_module)===s)break}return 0===t.length?T:e.$$full_name=t.join("::")})),b(C,"$prepend",(function(e){var t,n=this;0===(t=G(arguments)).length&&m.$raise(R("ArgumentError"),"wrong number of arguments (given 0, expected 1+)");for(var r=t.length-1;r>=0;r--){var i=t[r];i.$$is_module||m.$raise(R("TypeError"),"wrong argument type "+i.$class()+" (expected Module)"),i.$prepend_features(n),i.$prepended(n)}return n}),-1),b(C,"$prepend_features",(function(t){var n=this;return l(t),n.$$is_module||m.$raise(R("TypeError"),"wrong argument type "+n.$class()+" (expected Module)"),e.prepend_features(n,t),n})),b(C,"$prepended",S(T)),b(C,"$remove_const",(function(t){return l(this),e.const_remove(this,t)})),b(C,"$to_s",(function(){var t,n=this;return r(t=e.Module.$name.call(n))?t:"#<"+(n.$$is_module?"Module":"Class")+":0x"+n.$__id__().$to_s(16)+">"})),b(C,"$undef_method",(function(t){var n,r=this;n=G(arguments);for(var i=0;i<n.length;i++){var a=P(n[i]);l(r),e.udef(r,"$"+a)}return r}),-1),b(C,"$instance_variables",(function(){var t=T;e.Module.$$nesting=j,t=this.$constants();var n=[];return p(this,(function(e){"constructor"===e||t["$include?"](e)||n.push("@"+e)})),n})),b(C,"$initialize_copy",(function(t){var n=this;return function(t,n){var r,i=e.own_instance_methods(t);for(r=0;r<i.length;r++){var a=i[r],s=d(a),o=t.$$prototype[s],$=e.wrap_method_body(o);$.$$jsid=a,e.defn(n,s,$)}}(t,n),function(t,n){for(var r=t.$$own_included_modules,i=r.length-1;i>=0;i--)e.append_features(r[i],n)}(t,n),function(t,n){for(var r=t.$$own_prepended_modules,i=r.length-1;i>=0;i--)e.prepend_features(r[i],n)}(t,n),n.$$cloned_from=t.$$cloned_from.concat(t),n.$copy_class_variables(t),n.$copy_constants(t)})),b(C,"$initialize_dup",(function e(t){var n=e.$$p||T,r=this;return e.$$p=null,z(r,D(r,"initialize_dup",e,!1,!0),"initialize_dup",[t],n),r.$copy_singleton_methods(t)})),b(C,"$copy_class_variables",(function(e){for(var t in e.$$cvars)this.$$cvars[t]=e.$$cvars[t]})),b(C,"$copy_constants",(function(e){var t,n=e.$$const;for(t in n)a(this,t,n[t])})),b(C,"$refine",(function t(n){var r,i,a,s=t.$$p||T,o=this,$=T;return t.$$p=null,i=(r=[o,T,T])[0],$=r[1],r[2],a=e.id(n),void 0===o.$$refine_modules&&(o.$$refine_modules=Object.create(null)),($=void 0===o.$$refine_modules[a]?o.$$refine_modules[a]=R("Refinement").$new():o.$$refine_modules[a]).refinement_module=i,$.refined_class=n,v($,"class_exec",[],s.$to_proc()),$})),b(C,"$refinements",(function(){var e=this.$$refine_modules,t=new Map;if(void 0===e)return t;for(var n in e)t["$[]="](e[n].refined_class,e[n]);return t})),b(C,"$using",(function(e){return m.$raise("Module#using is not permitted in methods")})),I(C,"class_eval","module_eval"),I(C,"class_exec","module_exec"),I(C,"inspect","to_s")}(0,0,[]),t=f("::",w,"Refinement"),(n=t.$$prototype).refinement_module=n.refined_class=T,t.$attr_reader("refined_class"),b(t,"$inspect",(function e(){var t=e.$$p||T,n=this;return e.$$p=null,r(n.refinement_module)?"#<refinement:"+n.refined_class.$inspect()+"@"+n.refinement_module.$inspect()+">":z(n,D(n,"inspect",e,!1,!0),"inspect",[],t)}))},Opal.modules["corelib/class"]=function(e){var t=e.klass,n=e.send,r=e.defs,i=e.def,a=e.ensure_kwargs,s=e.hash_get,o=e.eqeq,$=e.truthy,u=e.rb_plus,l=e.return_val,c=e.slice,_=e.send2,d=e.find_super,p=e.Kernel,f=e.alias,h=e.top,m=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"),h.$require("corelib/module"),function(h,v,b){var y=t("::",null,"Class"),w=[y].concat(b),x=e.$r(w);return r(y,"$new",(function t(r){var i=t.$$p||m;if(t.$$p=null,null==r&&(r=x("Object")),!r.$$is_class)throw e.TypeError.$new("superclass must be a Class");var a=e.allocate_class(m,r);return r.$inherited(a),i!==m&&n(a,"class_eval",[],i.$to_proc()),a}),-1),i(y,"$allocate",(function(){var t=new this.$$constructor;return t.$$id=e.uid(),t})),i(y,"$clone",(function(t){var n,r=this,i=m;return t=a(t),null==(n=s(t,"freeze"))&&(n=m),$(n["$nil?"]())||o(n,!0)||o(n,!1)||r.$raise(x("ArgumentError"),"unexpected value for freeze: "+n.$class()),(i=e.allocate_class(m,r.$$super)).$copy_instance_variables(r),i.$copy_singleton_methods(r),i.$initialize_clone(r,new Map([["freeze",n]])),(o(n,!0)||$(n["$nil?"]())&&$(r["$frozen?"]()))&&i.$freeze(),i}),-1),i(y,"$dup",(function(){var t=this,n=m;return(n=e.allocate_class(m,t.$$super)).$copy_instance_variables(t),n.$initialize_dup(t),n})),i(y,"$descendants",(function(){return u(this.$subclasses(),n(this.$subclasses(),"map",[],"descendants".$to_proc()).$flatten())})),i(y,"$inherited",l(m)),i(y,"$new",(function t(n){var r,i=t.$$p||m;t.$$p=null,r=c(arguments);var a=this.$allocate();return e.send(a,a.$initialize,r,i),a}),-1),i(y,"$subclasses",(function(){var e=this;if("undefined"!=typeof WeakRef){var t,n,r=[];for(t=0;t<e.$$subclasses.length;t++)void 0!==(n=e.$$subclasses[t].deref())&&r.push(n);return r}return e.$$subclasses})),i(y,"$superclass",(function(){return this.$$super||m})),i(y,"$to_s",(function t(){var n=this;t.$$p=null;var r=n.$$singleton_of;return r&&r.$$is_a_module?"#<Class:"+r.$name()+">":r?"#<Class:#<"+r.$$class.$name()+":0x"+e.id(r).$to_s(16)+">>":_(n,d(n,"to_s",t,!1,!0),"to_s",[],null)})),i(y,"$attached_object",(function(){var e=this;if(null!=e.$$singleton_of)return e.$$singleton_of;p.$raise(g("TypeError"),"`"+e+"' is not a singleton class")})),f(y,"inspect","to_s")}(0,0,[])},Opal.modules["corelib/basic_object"]=function(e){"use strict";var t,n=e.klass,r=e.slice,i=e.def,a=e.alias,s=e.return_val,o=e.Opal,$=e.truthy,u=e.range,l=e.Kernel,c=e.to_a,_=e.send,d=e.eqeq,p=e.rb_ge,f=e.nil,h=e.$$$;return e.add_stubs("==,raise,inspect,pristine,!,nil?,cover?,size,merge,compile,proc,[],first,>=,length,instance_variable_get,any?,new,caller"),t=n("::",null,"BasicObject"),i(t,"$initialize",(function(e){return r(arguments),f}),-1),i(t,"$==",(function(e){return this===e})),i(t,"$eql?",(function(e){return this["$=="](e)})),a(t,"equal?","=="),i(t,"$__id__",(function(){var t=this;return null!=t.$$id||e.prop(t,"$$id",e.uid()),t.$$id})),i(t,"$__send__",(function t(n,i){var a,s=t.$$p||f,o=this;t.$$p=null,a=r(arguments,1),n.$$is_string||o.$raise(h("TypeError"),o.$inspect()+" is not a symbol nor a string");var $=o[e.jsid(n)];return $?(s!==f&&($.$$p=s),$.apply(o,a)):(s!==f&&(o.$method_missing.$$p=s),o.$method_missing.apply(o,[n].concat(a)))}),-2),i(t,"$!",s(!1)),o.$pristine("!"),i(t,"$!=",(function(e){return this["$=="](e)["$!"]()})),i(t,"$instance_eval",(function t(n){var i,a,s=t.$$p||f,m=this,g=f,v=f,b=f,y=f,w=f,x=f;if(t.$$p=null,i=r(arguments),$(s["$nil?"]())&&$(!!e.compile))$(u(1,3,!1)["$cover?"](i.$size()))||l.$raise(h("ArgumentError"),"wrong number of arguments (0 for 1..3)"),g=null==(a=[].concat(c(i)))[0]?f:a[0],v=null==a[1]?f:a[1],null==a[2]||a[2],b=new Map([["file",$(y=v)?y:"(eval)"],["eval",!0]]),w=new Map([["arity_check",!1]]).$merge(b),x=o.$compile(g,w),s=_(l,"proc",[],(function t(){var n=null==t.$$s?this:t.$$s;return new Function("Opal,self","return "+x)(e,n)}),{$$s:m});else{if($(s["$nil?"]())&&$(p(i.$length(),1))&&d(i.$first()["$[]"](0),"@"))return m.$instance_variable_get(i.$first());$(i["$any?"]())&&l.$raise(h("ArgumentError"),"wrong number of arguments ("+i.$size()+" for 0)")}var k,G=s.$$s;if(s.$$s=null,m.$$is_a_module){m.$$eval=!0;try{k=s.call(m,m)}finally{m.$$eval=!1}}else k=s.call(m,m);return s.$$s=G,k}),-1),i(t,"$instance_exec",(function e(t){var n,i=e.$$p||f,a=this;e.$$p=null,n=r(arguments),$(i)||l.$raise(h("ArgumentError"),"no block given");var s,o=i.$$s;if(i.$$s=null,a.$$is_a_module){a.$$eval=!0;try{s=i.apply(a,n)}finally{a.$$eval=!1}}else s=i.apply(a,n);return i.$$s=o,s}),-1),i(t,"$singleton_method_added",(function(e){return r(arguments),f}),-1),i(t,"$singleton_method_removed",(function(e){return r(arguments),f}),-1),i(t,"$singleton_method_undefined",(function(e){return r(arguments),f}),-1),i(t,"$method_missing",(function e(t,n){var i,a;return e.$$p=null,i=r(arguments,1),a=o.$inspect(this),l.$raise(h("NoMethodError").$new("undefined method `"+t+"' for "+a,t,i),f,l.$caller(1))}),-2),o.$pristine(t,"method_missing"),i(t,"$respond_to_missing?",(function(e,t){return null==t&&(t=!1),!1}),-2)},Opal.modules["corelib/kernel"]=function(e){"use strict";var t,n=e.truthy,r=e.coerce_to,i=e.respond_to,a=e.Opal,s=e.deny_frozen_access,o=e.freeze,$=e.freeze_props,u=e.jsid,l=e.each_ivar,c=e.module,_=e.return_val,d=e.def,p=e.Kernel,f=e.gvars,h=e.slice,m=e.send,g=e.to_a,v=e.ensure_kwargs,b=e.hash_get,y=e.eqeq,w=e.rb_plus,x=e.extract_kwargs,k=e.eqeqeq,G=e.return_self,E=e.rb_le,S=e.rb_lt,O=e.Object,M=e.alias,A=e.klass,N=e.nil,z=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(t,A){var D=c("::","Kernel"),I=[D].concat(A),T=e.$r(I);d(D,"$=~",_(!1)),d(D,"$!~",(function(e){return this["$=~"](e)["$!"]()})),d(D,"$===",(function(e){var t;return n(t=this.$object_id()["$=="](e.$object_id()))?t:this["$=="](e)})),d(D,"$<=>",(function(e){this.$$comparable=!0;var t=this["$=="](e);return t&&t!==N?0:N})),d(D,"$method",(function(e){var t=this,n=t[u(e)];return n&&!n.$$stub||p.$raise(z("NameError").$new("undefined method `"+e+"' for class `"+t.$class()+"'",e)),z("Method").$new(t,n.$$owner||t.$class(),n,e)})),d(D,"$methods",(function(t){return null==t&&(t=!0),n(t)?e.methods(this):e.own_methods(this)}),-1),d(D,"$public_methods",(function(t){return null==t&&(t=!0),n(t)?e.methods(this):e.receiver_methods(this)}),-1),d(D,"$Array",(function(e){var t;return e===N?[]:e.$$is_array?e:(t=a["$coerce_to?"](e,z("Array"),"to_ary"))!==N||(t=a["$coerce_to?"](e,z("Array"),"to_a"))!==N?t:[e]})),d(D,"$at_exit",(function e(){var t,r=e.$$p||N;return null==f.__at_exit__&&(f.__at_exit__=N),e.$$p=null,f.__at_exit__=n(t=f.__at_exit__)?t:[],f.__at_exit__["$<<"](r),r})),d(D,"$caller",(function(e,t){var n,r;null==e&&(e=1),null==t&&(t=N),r=[];for(var i=e+1,a=(n=(new Error).$backtrace()).length;i<a;i++)n[i].match(/runtime\.js/)||r.push(n[i]);return t!=N&&(r=r.slice(0,t)),r}),-1),d(D,"$caller_locations",(function(e){var t;return t=h(arguments),m(m(this,"caller",g(t)),"map",[],(function(e){return null==e&&(e=N),z(z(z("Thread"),"Backtrace"),"Location").$new(e)}))}),-1),d(D,"$class",(function(){return this.$$class})),d(D,"$copy_instance_variables",(function(e){var t,n,r,i=Object.keys(e);for(t=0,n=i.length;t<n;t++)"$"!==(r=i[t]).charAt(0)&&e.hasOwnProperty(r)&&(this[r]=e[r])})),d(D,"$copy_singleton_methods",(function(t){var n,r,i,a;if(t.hasOwnProperty("$$meta")&&null!==t.$$meta){var s=e.get_singleton_class(t),o=e.get_singleton_class(this);for(n=0,a=(i=Object.getOwnPropertyNames(s.$$prototype)).length;n<a;n++)r=i[n],e.is_method(r)&&(o.$$prototype[r]=s.$$prototype[r]);o.$$const=Object.assign({},s.$$const),Object.setPrototypeOf(o.$$prototype,Object.getPrototypeOf(s.$$prototype))}for(n=0,a=(i=Object.getOwnPropertyNames(t)).length;n<a;n++)"$"===(r=i[n]).charAt(0)&&"$"!==r.charAt(1)&&t.hasOwnProperty(r)&&(this[r]=t[r])})),d(D,"$clone",(function(e){var t,r=this,i=N;return e=v(e),null==(t=b(e,"freeze"))&&(t=N),n(t["$nil?"]())||y(t,!0)||y(t,!1)||r.$raise(T("ArgumentError"),"unexpected value for freeze: "+t.$class()),(i=r.$class().$allocate()).$copy_instance_variables(r),i.$copy_singleton_methods(r),i.$initialize_clone(r,new Map([["freeze",t]])),(y(t,!0)||n(t["$nil?"]())&&n(r["$frozen?"]()))&&i.$freeze(),i}),-1),d(D,"$initialize_clone",(function(e,t){return t=v(t),null==b(t,"freeze")&&N,this.$initialize_copy(e),this}),-2),d(D,"$define_singleton_method",(function e(t,n){var r=e.$$p||N;return e.$$p=null,m(this.$singleton_class(),"define_method",[t,n],r.$to_proc())}),-2),d(D,"$dup",(function(){var e=this,t=N;return(t=e.$class().$allocate()).$copy_instance_variables(e),t.$initialize_dup(e),t})),d(D,"$initialize_dup",(function(e){return this.$initialize_copy(e)})),d(D,"$enum_for",(function e(t,n){var r,i,a,s=e.$$p||N,o=this;return e.$$p=null,(r=h(arguments)).length>0&&(i=r.shift()),null==i&&(i="each"),a=r,m(z("Enumerator"),"for",[o,i].concat(g(a)),s.$to_proc())}),-1),d(D,"$equal?",(function(e){return this===e})),d(D,"$exit",(function(t){var i;for(null==f.__at_exit__&&(f.__at_exit__=N),null==t&&(t=!0),f.__at_exit__=n(i=f.__at_exit__)?i:[];!n(f.__at_exit__["$empty?"]());)f.__at_exit__.$pop().$call();return t=t.$$is_boolean?t?0:1:r(t,z("Integer"),"to_int"),e.exit(t),N}),-1),d(D,"$extend",(function(e){var t,n=this;0==(t=h(arguments)).length&&n.$raise(z("ArgumentError"),"wrong number of arguments (given 0, expected 1+)"),s(n);for(var r=n.$singleton_class(),i=t.length-1;i>=0;i--){var a=t[i];a.$$is_module||p.$raise(z("TypeError"),"wrong argument type "+a.$class()+" (expected Module)"),a.$append_features(r),a.$extend_object(n),a.$extended(n)}return n}),-1),d(D,"$freeze",(function(){var e=this;return n(e["$frozen?"]())?e:"object"==typeof e?($(e),o(e)):e})),d(D,"$frozen?",(function(){switch(typeof this){case"string":case"symbol":case"number":case"boolean":return!0;case"object":return this.$$frozen||!1;default:return!1}})),d(D,"$gets",(function(e){var t;return null==f.stdin&&(f.stdin=N),t=h(arguments),m(f.stdin,"gets",g(t))}),-1),d(D,"$hash",(function(){return this.$__id__()})),d(D,"$initialize_copy",_(N));var R=[];d(D,"$inspect",(function(){var t=this,r=N,i=N,a=N;return function(){try{try{return r="",i=t.$__id__(),n(R["$include?"](i))?r=" ...":(R["$<<"](i),a=!0,m(t.$instance_variables(),"each",[],(function e(t){var n,i;return null==t&&(t=N),n=(null==e.$$s?this:e.$$s).$instance_variable_get(t),i=T("Opal").$inspect(n),r=w(r," "+t+"="+i)}),{$$s:t})),"#<"+t.$class()+":0x"+i.$to_s(16)+r+">"}catch(n){if(!e.rescue(n,[T("StandardError")]))throw n;n;try{return"#<"+t.$class()+":0x"+i.$to_s(16)+">"}finally{e.pop_exception(n)}}}finally{n(a)&&R.$pop()}}()})),d(D,"$instance_of?",(function(e){return e.$$is_class||e.$$is_module||p.$raise(z("TypeError"),"class or module required"),this.$$class===e})),d(D,"$instance_variable_defined?",(function(t){return t=a["$instance_variable_name!"](t),e.hasOwnProperty.call(this,t.substr(1))})),d(D,"$instance_variable_get",(function(t){t=a["$instance_variable_name!"](t);var n=this[e.ivar(t.substr(1))];return null==n?N:n})),d(D,"$instance_variable_set",(function(t,n){return s(this),t=a["$instance_variable_name!"](t),this[e.ivar(t.substr(1))]=n})),d(D,"$remove_instance_variable",(function(t){var n=this;t=a["$instance_variable_name!"](t);var r,i=e.ivar(t.substr(1));return n.hasOwnProperty(i)?(r=n[i],delete n[i],r):p.$raise(z("NameError"),"instance variable "+t+" not defined")})),d(D,"$instance_variables",(function(){var e=[];return l(this,(function(t){"$"===t.substr(-1)&&(t=t.slice(0,t.length-1)),e.push("@"+t)})),e})),d(D,"$Integer",(function(t,i,a){var s,o,$,u,l,c,_;if(s=h(arguments,1),o=x(s),o=v(o),s.length>0&&($=s.shift()),null==(u=b(o,"exception"))&&(u=!0),u=n(u),!t.$$is_string){if(void 0!==$){if(!u)return N;p.$raise(z("ArgumentError"),"base specified for non string value")}if(t===N){if(!u)return N;p.$raise(z("TypeError"),"can't convert nil into Integer")}if(t.$$is_number){if(t===1/0||t===-1/0||isNaN(t)){if(!u)return N;p.$raise(z("FloatDomainError"),t)}return Math.floor(t)}if(t["$respond_to?"]("to_int")&&(l=t.$to_int(),e.is_a(l,z("Integer"))))return l;if(t["$respond_to?"]("to_i")&&(l=t.$to_i(),e.is_a(l,z("Integer"))))return l;if(!u)return N;p.$raise(z("TypeError"),"can't convert "+t.$class()+" into Integer")}if("0"===t)return 0;if(void 0===$)$=0;else if(1===($=r($,z("Integer"),"to_int"))||$<0||$>36){if(!u)return N;p.$raise(z("ArgumentError"),"invalid radix "+$)}if(c=(c=(c=t.toLowerCase()).replace(/(\d)_(?=\d)/g,"$1")).replace(/^(\s*[+-]?)(0[bodx]?)/,(function(e,n,r){switch(r){case"0b":if(0===$||2===$)return $=2,n;case"0":case"0o":if(0===$||8===$)return $=8,n;case"0d":if(0===$||10===$)return $=10,n;case"0x":if(0===$||16===$)return $=16,n}if(!u)return N;p.$raise(z("ArgumentError"),'invalid value for Integer(): "'+t+'"')})),_="0-"+(($=0===$?10:$)<=10?$-1:"9a-"+String.fromCharCode($-11+97)),!new RegExp("^\\s*[+-]?["+_+"]+\\s*$").test(c)){if(!u)return N;p.$raise(z("ArgumentError"),'invalid value for Integer(): "'+t+'"')}if(l=parseInt(c,$),isNaN(l)){if(!u)return N;p.$raise(z("ArgumentError"),'invalid value for Integer(): "'+t+'"')}return l}),-2),d(D,"$Float",(function(e,t){var i,s;if(t=v(t),null==(i=b(t,"exception"))&&(i=!0),i=n(i),e===N){if(!i)return N;p.$raise(z("TypeError"),"can't convert nil into Float")}if(e.$$is_string){if(s=(s=e.toString()).replace(/(\d)_(?=\d)/g,"$1"),/^\s*[-+]?0[xX][0-9a-fA-F]+\s*$/.test(s))return p.$Integer(s);if(!/^\s*[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?\s*$/.test(s)){if(!i)return N;p.$raise(z("ArgumentError"),'invalid value for Float(): "'+e+'"')}return parseFloat(s)}return i?a["$coerce_to!"](e,z("Float"),"to_f"):r(e,z("Float"),"to_f")}),-2),d(D,"$Hash",(function(e){return n(e["$nil?"]())||y(e,[])?new Map:k(z("Hash"),e)?e:a["$coerce_to!"](e,z("Hash"),"to_hash")})),d(D,"$is_a?",(function(t){return t.$$is_class||t.$$is_module||p.$raise(z("TypeError"),"class or module required"),e.is_a(this,t)})),d(D,"$itself",G),d(D,"$lambda",(function t(){var n=t.$$p||N;return t.$$p=null,e.lambda(n)})),d(D,"$load",(function(t){return t=a["$coerce_to!"](t,z("String"),"to_str"),e.load(t)})),d(D,"$loop",(function t(){var r=t.$$p||N,i=N;if(t.$$p=null,r===N)return m(this,"enum_for",["loop"],(function(){return z(z("Float"),"INFINITY")}));for(;n(!0);)try{e.yieldX(r,[])}catch(t){if(!e.rescue(t,[z("StopIteration")]))throw t;i=t;try{return i.$result()}finally{e.pop_exception(t)}}return this})),d(D,"$nil?",_(!1)),d(D,"$printf",(function(e){var t,r;return null==f.stdout&&(f.stdout=N),t=h(arguments),n((r=t)["$empty?"]())||(n(r[0].$$is_string)?f.stdout:r.$shift()).$write(m(this,"format",g(r))),N}),-1),d(D,"$proc",(function e(){var t=e.$$p||N;return e.$$p=null,n(t)||p.$raise(z("ArgumentError"),"tried to create Proc object without a block"),t.$$is_lambda=!1,t})),d(D,"$puts",(function(e){var t;return null==f.stdout&&(f.stdout=N),t=h(arguments),m(f.stdout,"puts",g(t))}),-1),d(D,"$p",(function(e){var t,r;return t=h(arguments),m(r=t,"each",[],(function(e){return null==f.stdout&&(f.stdout=N),null==e&&(e=N),f.stdout.$puts(e.$inspect())})),n(E(r.$length(),1))?r["$[]"](0):r}),-1),d(D,"$print",(function(e){var t;return null==f.stdout&&(f.stdout=N),t=h(arguments),m(f.stdout,"print",g(t))}),-1),d(D,"$readline",(function(e){var t;return null==f.stdin&&(f.stdin=N),t=h(arguments),m(f.stdin,"readline",g(t))}),-1),d(D,"$warn",(function(e,t){var r,i,s,o,$,u,l=N;return null==f.VERBOSE&&(f.VERBOSE=N),null==f.stderr&&(f.stderr=N),r=h(arguments),i=x(r),i=v(i),s=r,null==(o=b(i,"uplevel"))&&(o=N),n(o)&&(o=a["$coerce_to!"](o,z("Integer"),"to_str"),n(S(o,0))&&p.$raise(z("ArgumentError"),"negative level ("+o+")"),$=(u=this.$caller(w(o,1),1).$first())===N||null==u?N:u.$split(":in `"),l=$===N||null==$?N:$.$first(),n(l)&&(l+=": "),s=m(s,"map",[],(function(e){return null==e&&(e=N),l+"warning: "+e}))),n(f.VERBOSE["$nil?"]())||n(s["$empty?"]())?N:m(f.stderr,"puts",g(s))}),-1),d(D,"$raise",(function(t,n,r){if(null==f["!"]&&(f["!"]=N),null==n&&(n=N),null==r&&(r=N),null==t&&f["!"]!==N)throw f["!"];throw null==t?t=z("RuntimeError").$new(""):i(t,"$to_str")?t=z("RuntimeError").$new(t.$to_str()):t.$$is_class&&i(t,"$exception")?t=t.$exception(n):t.$$is_exception||(t=z("TypeError").$new("exception class/object expected")),r!==N&&t.$set_backtrace(r),f["!"]!==N&&e.exceptions.push(f["!"]),f["!"]=t,t}),-1),d(D,"$rand",(function(e){return void 0===e?z(z("Random"),"DEFAULT").$rand():(e.$$is_number&&(e<0&&(e=Math.abs(e)),e%1!=0&&(e=e.$to_i()),0===e&&(e=void 0)),z(z("Random"),"DEFAULT").$rand(e))}),-1),d(D,"$respond_to?",(function(e,t){var n=this;null==t&&(t=!1);var r=n[u(e)];return"function"==typeof r&&!r.$$stub||!0!==n["$respond_to_missing?"].$$pristine&&n["$respond_to_missing?"](e,t)}),-2),d(D,"$respond_to_missing?",(function(e,t){return null==t&&(t=!1),!1}),-2),a.$pristine(D,"respond_to?","respond_to_missing?"),d(D,"$require",(function(t){return"string"!=typeof t&&e.String&&e.Array&&(t=a["$coerce_to!"](t,z("String"),"to_str")),e.require(t)})),d(D,"$require_relative",(function(t){return a["$try_convert!"](t,z("String"),"to_str"),t=z("File").$expand_path(z("File").$join(e.current_file,"..",t)),e.require(t)})),d(D,"$require_tree",(function(t,n){var r;n=v(n),null==(r=b(n,"autoload"))&&(r=!1);var i=[];for(var a in t=z("File").$expand_path(t),"."===(t=e.normalize(t))&&(t=""),e.modules)a["$start_with?"](t)&&(r?i.push([a,!0]):i.push([a,e.require(a)]));return i}),-2),d(D,"$singleton_class",(function(){return e.get_singleton_class(this)})),d(D,"$sleep",(function(t){null==t&&(t=N),t===N&&p.$raise(z("TypeError"),"can't convert NilClass into time interval"),t.$$is_number||p.$raise(z("TypeError"),"can't convert "+t.$class()+" into time interval"),t<0&&p.$raise(z("ArgumentError"),"time interval must be positive");for(var n=e.global.performance?function(){return performance.now()}:function(){return new Date},r=n();n()-r<=1e3*t;);return Math.round(t)}),-1),d(D,"$srand",(function(e){return null==e&&(e=T("Random").$new_seed()),z("Random").$srand(e)}),-1),d(D,"$String",(function(e){var t;return n(t=a["$coerce_to?"](e,z("String"),"to_str"))?t:a["$coerce_to!"](e,z("String"),"to_s")})),d(D,"$tap",(function t(){var n=t.$$p||N;return t.$$p=null,e.yield1(n,this),this})),d(D,"$to_proc",G),d(D,"$to_s",(function(){return"#<"+this.$class()+":0x"+this.$__id__().$to_s(16)+">"})),d(D,"$catch",(function t(r){var i=t.$$p||N,a=N,s=N;t.$$p=null,null==r&&(r=N);try{return r=n(a=r)?a:O.$new(),e.yield1(i,r)}catch(t){if(!e.rescue(t,[z("UncaughtThrowError")]))throw t;s=t;try{return y(s.$tag(),r)?s.$value():p.$raise()}finally{e.pop_exception(t)}}}),-1),d(D,"$throw",(function(e,t){return null==t&&(t=N),p.$raise(z("UncaughtThrowError").$new(e,t))}),-2),d(D,"$open",(function e(t){var n,r=e.$$p||N;return e.$$p=null,n=h(arguments),m(z("File"),"open",g(n),r.$to_proc())}),-1),d(D,"$yield_self",(function t(){var n=t.$$p||N;return t.$$p=null,n===N?m(this,"enum_for",["yield_self"],_(1)):e.yield1(n,this)})),M(D,"fail","raise"),M(D,"kind_of?","is_a?"),M(D,"object_id","__id__"),M(D,"public_send","__send__"),M(D,"send","__send__"),M(D,"then","yield_self"),M(D,"to_enum","enum_for")}(0,[]),t=A("::",null,"Object"),delete O.$$prototype.$require,t.$include(p)},Opal.modules["corelib/main"]=function(e){var t=e.return_val,n=e.def,r=e.Object,i=e.slice,a=e.Kernel,s=e.top;e.nil;return e.add_stubs("include,raise"),function(s,o){return n(s,"$to_s",t("main")),n(s,"$include",(function(e){return r.$include(e)})),n(s,"$autoload",(function(t){var n;return n=i(arguments),e.Object.$autoload.apply(e.Object,n)}),-1),n(s,"$using",(function(e){return a.$raise("main.using is permitted only at toplevel")}))}(e.get_singleton_class(s))},Opal.modules["corelib/error/errno"]=function(e){var t=e.module,n=e.truthy,r=e.rb_plus,i=e.send2,a=e.find_super,s=e.def,o=e.klass,$=[],u=e.nil,l=e.$$$;return e.add_stubs("+,errno,class,attr_reader"),function(o,$){var l,c,_=t("::","Errno"),d=([_].concat($),u);for(l=[["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]],d=u,c=0;c<l.length;c++)!function(){var t=l[c][0],o=l[c][1],$=l[c][2];(d=e.klass(_,e.SystemCallError,t)).errno=$,function(e,t){s(e,"$new",(function e(t){var s=u;return e.$$p=null,null==t&&(t=u),s=o,n(t)&&(s=r(s," - "+t)),i(this,a(this,"new",e,!1,!0),"new",[s],null)}),-1)}(e.get_singleton_class(d))}()}(0,$),function(t,n,r){var i=o("::",n,"SystemCallError");[i].concat(r);return s(i,"$errno",(function(){return this.$class().$errno()})),function(e,t){return e.$attr_reader("errno")}(e.get_singleton_class(i))}(0,l("StandardError"),$)},Opal.modules["corelib/error"]=function(e){var t,n,r=e.klass,i=e.slice,a=e.gvars,s=e.defs,o=e.send,$=e.to_a,u=e.def,l=e.send2,c=e.find_super,_=e.truthy,d=e.Kernel,p=e.not,f=e.rb_plus,h=e.eqeq,m=e.Object,g=e.ensure_kwargs,v=e.hash_get,b=e.module,y=e.Opal,w=[],x=e.nil,k=e.$$$;return e.add_stubs("new,map,backtrace,clone,to_s,merge,tty?,[],include?,raise,dup,empty?,!,caller,shift,+,class,join,cause,full_message,==,reverse,split,autoload,attr_reader,inspect,warn"),function(t,n,m){var g,v=r("::",n,"Exception"),b=[v].concat(m),y=e.$r(b);function w(e){for(var t,n=[],r=0;r<e.length;r++){var i=e[r];i&&i.$$is_string&&((t=i.match(/^ at (.*?) \((.*?)\)$/))?n.push(t[2]+":in `"+t[1]+"'"):(t=i.match(/^ at (.*?)$/))?n.push(t[1]+":in `undefined'"):(t=i.match(/^ from (.*?)$/))?n.push(t[1]):(t=i.match(/^(.*?)@(.*?)$/))&&n.push(t[2]+":in `"+t[1]+"'"))}return n}v.$$prototype.message=x,e.prop(v.$$prototype,"$$is_exception",!0),Error.stackTraceLimit=100,s(v,"$new",(function(t){var n;null==a["!"]&&(a["!"]=x);var r=(n=i(arguments)).length>0?n[0]:x,s=new this.$$constructor(r);return s.name=this.$$name,s.message=r,s.cause=a["!"],e.send(s,s.$initialize,n),e.config.enable_stack_trace&&Error.captureStackTrace&&Error.captureStackTrace(s,g),s}),-1),g=v.$new,s(v,"$exception",(function(e){var t;return t=i(arguments),o(this,"new",$(t))}),-1),u(v,"$initialize",(function(e){var t;return t=i(arguments),this.message=t.length>0?t[0]:x}),-1),u(v,"$copy_instance_variables",(function e(t){var n=e.$$p||x,r=this;e.$$p=null,l(r,c(r,"copy_instance_variables",e,!1,!0),"copy_instance_variables",[t],n),r.message=t.message,r.cause=t.cause,r.stack=t.stack})),u(v,"$backtrace",(function(){var e=this;if(e.backtrace)return e.backtrace;var t=e.stack;return void 0!==t&&t.$$is_string?e.backtrace=w(t.split("\n")):t?e.backtrace=w(t):[]})),u(v,"$backtrace_locations",(function(){var e,t=this;return t.backtrace_locations||(t.backtrace_locations=(e=t.$backtrace())===x||null==e?x:o(e,"map",[],(function(e){return null==e&&(e=x),k(k(k("Thread"),"Backtrace"),"Location").$new(e)}))),t.backtrace_locations})),u(v,"$cause",(function(){return this.cause||x})),u(v,"$exception",(function(e){var t=this;if(null==e&&(e=x),e===x||t===e)return t;var n=t.$clone();return n.message=e,t.backtrace&&(n.backtrace=t.backtrace.$dup()),n.stack=t.stack,n.cause=t.cause,n}),-1),u(v,"$message",(function(){return this.$to_s()})),u(v,"$full_message",(function(e){var t,n,r,i,s,$=this,u=x,l=x,c=x,m=x,g=x;return null==a.stderr&&(a.stderr=x),null==e&&(e=x),_(y("Hash","skip_raise")?"constant":x)?(i=(t=[(e=new Map([["highlight",a.stderr["$tty?"]()],["order","top"]]).$merge(_(n=e)?n:new Map))["$[]"]("highlight"),e["$[]"]("order")])[1],_([!0,!1]["$include?"](r=t[0]))||d.$raise(k("ArgumentError"),"expected true or false as highlight: "+r),_(["top","bottom"]["$include?"](i))||d.$raise(k("ArgumentError"),"expected :top or :bottom as order: "+i),_(r)?(u="[1;4m",l="[1m",c="[m"):u=l=c="",m=$.$backtrace().$dup(),(p(m)||_(m["$empty?"]()))&&(m=$.$caller()),s=m.$shift(),g=f(g=s+": ",""+l+$.$to_s()+" ("+u+$.$class()+c+l+")"+c+"\n"),g=f(g,o(m,"map",[],(function(e){return null==e&&(e=x),"\tfrom "+e+"\n"})).$join()),_($.$cause())&&(g=f(g,$.$cause().$full_message(new Map([["highlight",r]])))),h(i,"bottom")&&(g=g.$split("\n").$reverse().$join("\n"),g=f(l+"Traceback"+c+" (most recent call last):\n",g)),g):$.message+"\n"+$.stack}),-1),u(v,"$inspect",(function(){var e=this,t=x;return t=e.$to_s(),_(t["$empty?"]())?e.$class().$to_s():"#<"+e.$class().$to_s()+": "+e.$to_s()+">"})),u(v,"$set_backtrace",(function(e){var t,n,r=this,i=!0;if(e===x)r.backtrace=x,r.stack="";else if(e.$$is_string)r.backtrace=[e],r.stack=" from "+e;else{if(e.$$is_array){for(t=0,n=e.length;t<n;t++)if(!e[t].$$is_string){i=!1;break}}else i=!1;!1===i&&d.$raise(k("TypeError"),"backtrace must be Array of String"),r.backtrace=e,r.stack=o(e,"map",[],(function(e){return null==e&&(e=x),f(" from ",e)})).join("\n")}return e})),u(v,"$to_s",(function(){var e,t,n=this;return _(e=_(t=n.message)?n.message.$to_s():t)?e:n.$class().$to_s()}))}(0,Error,w),r("::",k("Exception"),"ScriptError"),r("::",k("ScriptError"),"SyntaxError"),r("::",k("ScriptError"),"LoadError"),r("::",k("ScriptError"),"NotImplementedError"),r("::",k("Exception"),"SystemExit"),r("::",k("Exception"),"NoMemoryError"),r("::",k("Exception"),"SignalException"),r("::",k("SignalException"),"Interrupt"),r("::",k("Exception"),"SecurityError"),r("::",k("Exception"),"SystemStackError"),r("::",k("Exception"),"StandardError"),r("::",k("StandardError"),"EncodingError"),r("::",k("StandardError"),"ZeroDivisionError"),r("::",k("StandardError"),"NameError"),r("::",k("NameError"),"NoMethodError"),r("::",k("StandardError"),"RuntimeError"),r("::",k("RuntimeError"),"FrozenError"),r("::",k("StandardError"),"LocalJumpError"),r("::",k("StandardError"),"TypeError"),r("::",k("StandardError"),"ArgumentError"),r("::",k("ArgumentError"),"UncaughtThrowError"),r("::",k("StandardError"),"IndexError"),r("::",k("IndexError"),"StopIteration"),r("::",k("StopIteration"),"ClosedQueueError"),r("::",k("IndexError"),"KeyError"),r("::",k("StandardError"),"RangeError"),r("::",k("RangeError"),"FloatDomainError"),r("::",k("StandardError"),"IOError"),r("::",k("IOError"),"EOFError"),r("::",k("StandardError"),"SystemCallError"),r("::",k("StandardError"),"RegexpError"),r("::",k("StandardError"),"ThreadError"),r("::",k("StandardError"),"FiberError"),m.$autoload("Errno","corelib/error/errno"),t=k("RuntimeError"),(n=r("::",t,"FrozenError")).$attr_reader("receiver"),u(n,"$initialize",(function e(t,n){var r,i=this;return e.$$p=null,n=g(n),null==(r=v(n,"receiver"))&&(r=x),l(i,c(i,"initialize",e,!1,!0),"initialize",[t],null),i.receiver=r}),-2),function(e,t){var n=r("::",t,"UncaughtThrowError");n.$$prototype.tag=x,n.$attr_reader("tag","value"),u(n,"$initialize",(function e(t,n){var r=this;return e.$$p=null,null==n&&(n=x),r.tag=t,r.value=n,l(r,c(r,"initialize",e,!1,!0),"initialize",["uncaught throw "+r.tag.$inspect()],null)}),-2)}(0,k("ArgumentError")),function(e,t){var n=r("::",null,"NameError");n.$attr_reader("name"),u(n,"$initialize",(function e(t,n){var r=this;return e.$$p=null,null==n&&(n=x),l(r,c(r,"initialize",e,!1,!0),"initialize",[t],null),r.name=n}),-2)}(),function(e,t){var n=r("::",null,"NoMethodError");n.$attr_reader("args"),u(n,"$initialize",(function e(t,n,r){var i=this;return e.$$p=null,null==n&&(n=x),null==r&&(r=[]),l(i,c(i,"initialize",e,!1,!0),"initialize",[t,n],null),i.args=r}),-2)}(),r("::",null,"StopIteration").$attr_reader("result"),function(e,t){var n=r("::",null,"KeyError"),i=n.$$prototype;i.receiver=i.key=x,u(n,"$initialize",(function e(t,n){var r,i,a=this;return e.$$p=null,n=g(n),null==(r=v(n,"receiver"))&&(r=x),null==(i=v(n,"key"))&&(i=x),l(a,c(a,"initialize",e,!1,!0),"initialize",[t],null),a.receiver=r,a.key=i}),-2),u(n,"$receiver",(function(){var e;return _(e=this.receiver)?e:d.$raise(k("ArgumentError"),"no receiver is available")})),u(n,"$key",(function(){var e;return _(e=this.key)?e:d.$raise(k("ArgumentError"),"no key is available")}))}(),function(e,t){var n=r("::",null,"LocalJumpError");n.$attr_reader("exit_value","reason"),u(n,"$initialize",(function e(t,n,r){var i=this;return e.$$p=null,null==n&&(n=x),null==r&&(r="noreason"),l(i,c(i,"initialize",e,!1,!0),"initialize",[t],null),i.exit_value=n,i.reason=r}),-2)}(),function(e,t){var n=[b("::","Opal")].concat(t);(function(e,t){var n=[b(e,"Raw")].concat(t);r(n[0],null,"Error")})(n[0],n)}(0,w),function(e){var t=b("::","JS");return s(t,"$const_missing",(function e(t){var n=e.$$p||x,r=this;return e.$$p=null,h(t,"Error")?(r.$warn("[Opal] JS::Error class has been renamed to Opal::Raw::Error and will change semantics in Opal 2.1. To ensure forward compatibility, please update your rescue clauses."),k(k(y,"Raw"),"Error")):l(r,c(r,"const_missing",e,!1,!0),"const_missing",[t],n)}))}()},Opal.modules["corelib/constants"]=function(e){var t=e.const_set,n=(e.nil,e.$$$);return t("::","RUBY_PLATFORM","opal"),t("::","RUBY_ENGINE","opal"),t("::","RUBY_VERSION","3.2.0"),t("::","RUBY_ENGINE_VERSION","1.8.3"),t("::","RUBY_RELEASE_DATE","2026-05-01"),t("::","RUBY_PATCHLEVEL",0),t("::","RUBY_REVISION","0"),t("::","RUBY_COPYRIGHT","opal - Copyright (C) 2011-2024 Adam Beynon and the Opal contributors"),t("::","RUBY_DESCRIPTION","opal "+n("RUBY_ENGINE_VERSION")+" ("+n("RUBY_RELEASE_DATE")+" revision "+n("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,n=e.Kernel,r=e.def,i=e.return_val,a=e.ensure_kwargs,s=e.hash_get,o=e.NilClass,$=e.slice,u=e.truthy,l=e.rb_gt,c=e.alias,_=e.nil,d=e.$$$;return e.add_stubs("raise,name,new,>,length,Rational,to_i"),function(p,f,h){var m=t("::",null,"NilClass");[m].concat(h);return m.$$prototype.$$meta=m,function(t,i){r(t,"$allocate",(function(){return n.$raise(d("TypeError"),"allocator undefined for "+this.$name())})),e.udef(t,"$new")}(e.get_singleton_class(m)),r(m,"$!",i(!0)),r(m,"$&",i(!1)),r(m,"$|",(function(e){return!1!==e&&e!==_})),r(m,"$^",(function(e){return!1!==e&&e!==_})),r(m,"$==",(function(e){return e===_})),r(m,"$dup",i(_)),r(m,"$clone",(function(e){return e=a(e),null==s(e,"freeze")&&!0,_}),-1),r(m,"$inspect",i("nil")),r(m,"$nil?",i(!0)),r(m,"$singleton_class",(function(){return o})),r(m,"$to_a",(function(){return[]})),r(m,"$to_h",(function(){return new Map})),r(m,"$to_i",i(0)),r(m,"$to_s",i("")),r(m,"$to_c",(function(){return d("Complex").$new(0,0)})),r(m,"$rationalize",(function(e){var t;return t=$(arguments),u(l(t.$length(),1))&&n.$raise(d("ArgumentError")),n.$Rational(0,1)}),-1),r(m,"$to_r",(function(){return n.$Rational(0,1)})),r(m,"$instance_variables",(function(){return[]})),c(m,"to_f","to_i")}(0,0,[])},Opal.modules["corelib/boolean"]=function(e){"use strict";var t=e.klass,n=e.Kernel,r=e.def,i=e.return_self,a=e.ensure_kwargs,s=e.hash_get,o=e.slice,$=e.truthy,u=e.send2,l=e.find_super,c=e.to_a,_=e.alias,d=e.nil,p=e.$$$;return e.add_stubs("raise,name,==,to_s,__id__"),function(f,h,m){var g=t("::",h,"Boolean");[g].concat(m);e.prop(g.$$prototype,"$$is_boolean",!0);for(var v=["$$class","$$meta"],b=0;b<v.length;b++)Object.defineProperty(g.$$prototype,v[b],{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:d}}),function(t,i){r(t,"$allocate",(function(){return n.$raise(p("TypeError"),"allocator undefined for "+this.$name())})),e.udef(t,"$new")}(e.get_singleton_class(g)),r(g,"$__id__",(function(){return this.valueOf()?2:0})),r(g,"$!",(function(){return 1!=this})),r(g,"$&",(function(e){return 1==this&&(!1!==e&&e!==d)})),r(g,"$|",(function(e){return 1==this||!1!==e&&e!==d})),r(g,"$^",(function(e){return 1==this?!1===e||e===d:!1!==e&&e!==d})),r(g,"$==",(function(e){return 1==this===e.valueOf()})),r(g,"$singleton_class",(function(){return this.$$meta})),r(g,"$to_s",(function(){return 1==this?"true":"false"})),r(g,"$dup",i),r(g,"$clone",(function(e){return e=a(e),null==s(e,"freeze")&&!0,this}),-1),r(g,"$method_missing",(function t(n,r){var i,a=t.$$p||d,s=this;t.$$p=null,i=o(arguments,1);var _=s.$$class.$$prototype[e.jsid(n)];return $(void 0!==_&&!_.$$stub)||u(s,l(s,"method_missing",t,!1,!0),"method_missing",[n].concat(c(i)),a),e.send(s,_,i,a)}),-2),r(g,"$respond_to_missing?",(function(t,n){null==n&&(n=!1);var r=this.$$class.$$prototype[e.jsid(t)];return void 0!==r&&!r.$$stub}),-2),_(g,"eql?","=="),_(g,"equal?","=="),_(g,"inspect","to_s"),_(g,"object_id","__id__")}(0,Boolean,[]),t("::",p("Boolean"),"TrueClass"),t("::",p("Boolean"),"FalseClass"),d},Opal.modules["corelib/comparable"]=function(e){var t=e.truthy,n=e.module,r=e.rb_gt,i=e.rb_lt,a=e.eqeqeq,s=e.Kernel,o=e.def,$=e.nil,u=e.$$$;return e.add_stubs(">,<,===,raise,class,<=>,equal?"),function(l){var c=n("::","Comparable"),_=$;function d(t){return e.is_a(t,e.Integer)?t:r(t,0)?1:i(t,0)?-1:0}function p(e,n){var r=e["$<=>"](n);return t(r)||function(e,t){var n;n=a($,_=t)||a(!0,_)||a(!1,_)||a(u("Integer"),_)||a(u("Float"),_)?t.$inspect():t.$$class,s.$raise(u("ArgumentError"),"comparison of "+e.$class()+" with "+n+" failed")}(e,n),d(r)}return o(c,"$==",(function(n){var r,i=this;return!!t(i["$equal?"](n))||i["$<=>"]!=e.Kernel["$<=>"]&&(i.$$comparable?(i.$$comparable=!1,!1):!!t(r=i["$<=>"](n))&&0==d(r))})),o(c,"$>",(function(e){return p(this,e)>0})),o(c,"$>=",(function(e){return p(this,e)>=0})),o(c,"$<",(function(e){return p(this,e)<0})),o(c,"$<=",(function(e){return p(this,e)<=0})),o(c,"$between?",(function(e,n){return!t(i(this,e))&&!t(r(this,n))})),o(c,"$clamp",(function(t,n){var r,i,a=this;if(null==n&&(n=$),n===$&&(e.is_a(t,e.Range)||s.$raise(u("TypeError"),"wrong argument type "+t.$class()+" (expected Range)"),i=t.excl,n=t.end,t=t.begin,n!==$&&i&&s.$raise(u("ArgumentError"),"cannot clamp with an exclusive range")),t!==$&&n!==$&&p(t,n)>0&&s.$raise(u("ArgumentError"),"min argument must be smaller than max argument"),t!==$){if(0==(r=p(a,t)))return a;if(r<0)return t}return n!==$&&(r=p(a,n))>0?n:a}),-2)}()},Opal.modules["corelib/regexp"]=function(e){var t=e.coerce_to,n=e.prop,r=e.freeze,i=e.klass,a=e.const_set,s=e.send2,o=e.find_super,$=e.def,u=e.truthy,l=e.gvars,c=e.slice,_=e.Kernel,d=e.Opal,p=e.alias,f=e.send,h=e.regexp,m=e.rb_plus,g=e.ensure_kwargs,v=e.hash_get,b=e.rb_ge,y=e.to_a,w=e.eqeqeq,x=e.rb_minus,k=e.return_ivar,G=[],E=e.nil,S=e.$$$;return e.add_stubs("nil?,[],raise,escape,options,to_str,new,join,coerce_to!,!,match,coerce_to?,begin,frozen?,uniq,map,scan,source,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(g,v,b){var y=i("::",v,"Regexp"),w=[y].concat(b),x=e.$r(w);a(y,"IGNORECASE",1),a(y,"EXTENDED",2),a(y,"MULTILINE",4),e.prop(y.$$prototype,"$$is_regexp",!0),function(n,r){var i=[n].concat(r),a=e.$r(i);$(n,"$allocate",(function e(){var t=e.$$p||E,n=E;return e.$$p=null,(n=s(this,o(this,"allocate",e,!1,!0),"allocate",[],t)).uninitialized=!0,n})),$(n,"$escape",(function(n){return n=t(n,S("String"),"to_str"),e.escape_regexp(n)})),$(n,"$last_match",(function(e){return null==l["~"]&&(l["~"]=E),null==e&&(e=E),u(e["$nil?"]())?l["~"]:u(l["~"])?l["~"]["$[]"](e):E}),-1),$(n,"$union",(function(e){var t,n,r,i,a,s,o=this;if(0==(t=c(arguments)).length)return/(?!)/;if(1==t.length&&t[0].$$is_regexp)return t[0];n=t[0].$$is_array,t.length>1&&n&&_.$raise(S("TypeError"),"no implicit conversion of Array into String"),n&&(t=t[0]),a=void 0,r=[];for(var $=0;$<t.length;$++)(i=t[$]).$$is_string?r.push(o.$escape(i)):i.$$is_regexp?(s=i.$options(),null!=a&&a!=s&&_.$raise(S("TypeError"),"All expressions must use the same options"),a=s,r.push("("+i.source+")")):r.push(o.$escape(i.$to_str()));return o.$new(r.$join("|"),a)}),-1),$(n,"$new",(function(e,t){if(e.$$is_regexp)return new RegExp(e);if("\\"===(e=d["$coerce_to!"](e,S("String"),"to_str")).charAt(e.length-1)&&"\\"!==e.charAt(e.length-2)&&_.$raise(S("RegexpError"),"too short escape sequence: /"+e+"/"),e=e.replace("\\A","^").replace("\\z","$"),void 0===t||t["$!"]())return new RegExp(e);if(t.$$is_number){var n="";a("IGNORECASE")&t&&(n+="i"),a("MULTILINE")&t&&(n+="m"),t=n}else t="i";return new RegExp(e,t)}),-2),p(n,"compile","new"),p(n,"quote","escape")}(e.get_singleton_class(y),w),$(y,"$==",(function(e){return e instanceof RegExp&&this.toString()===e.toString()})),$(y,"$===",(function(e){return this.$match(d["$coerce_to?"](e,S("String"),"to_str"))!==E})),$(y,"$=~",(function(e){var t;return null==l["~"]&&(l["~"]=E),u(t=this.$match(e))?l["~"].$begin(0):t})),$(y,"$freeze",(function(){var e=this;return u(e["$frozen?"]())?e:(e.hasOwnProperty("$$g")||n(e,"$$g",null),e.hasOwnProperty("$$gm")||n(e,"$$gm",null),r(e))})),$(y,"$inspect",(function(){var e=this.toString(),t=/^\/(.*)\/([^\/]*)$/.exec(e);if(t){for(var n=t[1],r=t[2],i=n.split(""),a=i.length,s=!1,o="",$=0;$<a;$++){var u=i[$];s||"/"!=u||(o=o.concat("\\")),o=o.concat(u),s="\\"==u&&!s}return"/"+o+"/"+r}return e})),$(y,"$match",(function n(r,i){var a=n.$$p||E,s=this;if(null==l["~"]&&(l["~"]=E),n.$$p=null,s.uninitialized&&_.$raise(S("TypeError"),"uninitialized Regexp"),void 0===i){if(r===E)return l["~"]=E;var o=s.exec(t(r,S("String"),"to_str"));return o?(l["~"]=S("MatchData").$new(s,o),a===E?l["~"]:e.yield1(a,l["~"])):l["~"]=E}if(i=t(i,S("Integer"),"to_int"),r===E)return l["~"]=E;if(r=t(r,S("String"),"to_str"),i<0&&(i+=r.length)<0)return l["~"]=E;for(var $,u=e.global_regexp(s);;){if(null===($=u.exec(r)))return l["~"]=E;if($.index>=i)return l["~"]=S("MatchData").$new(u,$),a===E?l["~"]:e.yield1(a,l["~"]);u.lastIndex=$.index+1}}),-2),$(y,"$match?",(function(n,r){var i,a=this;return a.uninitialized&&_.$raise(S("TypeError"),"uninitialized Regexp"),void 0===r?n!==E&&a.test(t(n,S("String"),"to_str")):(r=t(r,S("Integer"),"to_int"),n!==E&&(n=t(n,S("String"),"to_str"),!(r<0&&(r+=n.length)<0)&&!(null===(i=e.global_regexp(a).exec(n))||i.index<r)))}),-2),$(y,"$names",(function(){return f(this.$source().$scan(h(["\\(?<(\\w+)>"]),new Map([["no_matchdata",!0]])),"map",[],"first".$to_proc()).$uniq()})),$(y,"$named_captures",(function(){return f(f(f(this.$source().$scan(h(["\\(?<(\\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=E),f(e,"map",[],(function(e){return null==e&&(e=E),m(e.$last(),1)}))}))})),$(y,"$~",(function(){return null==l._&&(l._=E),this["$=~"](l._)})),$(y,"$source",(function(){return this.source})),$(y,"$options",(function(){var e=this;e.uninitialized&&_.$raise(S("TypeError"),"uninitialized Regexp");var t=0;return e.multiline&&(t|=x("MULTILINE")),e.ignoreCase&&(t|=x("IGNORECASE")),t})),$(y,"$casefold?",(function(){return this.ignoreCase})),p(y,"eql?","=="),p(y,"to_s","source")}(0,RegExp,G),function(t,n,r){var a=i(t,null,"MatchData"),s=[a].concat(r),o=e.$r(s);return a.$$prototype.matches=E,a.$attr_reader("post_match","pre_match","regexp","string"),$(a,"$initialize",(function(e,t,n){var r,i=this;n=g(n),null==(r=v(n,"no_matchdata"))&&(r=!1),u(r)||(l["~"]=i),i.regexp=e,i.begin=t.index,i.string=t.input,i.pre_match=t.input.slice(0,t.index),i.post_match=t.input.slice(t.index+t[0].length),i.matches=[];for(var a=0,s=t.length;a<s;a++){var o=t[a];null==o?i.matches.push(E):i.matches.push(o)}}),-3),$(a,"$match",(function(e){var t;return u(t=this["$[]"](e))?t:u(e["$is_a?"](o("Integer")))&&u(b(e,this.$length()))?_.$raise(S("IndexError"),"index "+e+" out of matches"):E})),$(a,"$match_length",(function(e){var t;return(t=this.$match(e))===E||null==t?E:t.$length()})),$(a,"$[]",(function(e){var t,n=this;return(t=c(arguments))[0].$$is_string?(n.$regexp().$names()["$include?"](t["$[]"](0))["$!"]()&&_.$raise(S("IndexError"),"undefined group name reference: "+t["$[]"](0)),n.$named_captures()["$[]"](t["$[]"](0))):f(n.matches,"[]",y(t))}),-1),$(a,"$offset",(function(e){var t=this;return 0!==e&&_.$raise(S("ArgumentError"),"MatchData#offset only supports 0th element"),[t.begin,t.begin+t.matches[e].length]})),$(a,"$==",(function(e){var t,n,r,i,a=this;return!!w(S("MatchData"),e)&&(u(t=u(n=u(r=u(i=a.string==e.string)?a.regexp.toString()==e.regexp.toString():i)?a.pre_match==e.pre_match:r)?a.post_match==e.post_match:n)?a.begin==e.begin:t)})),$(a,"$begin",(function(e){return 0!==e&&_.$raise(S("ArgumentError"),"MatchData#begin only supports 0th element"),this.begin})),$(a,"$end",(function(e){return 0!==e&&_.$raise(S("ArgumentError"),"MatchData#end only supports 0th element"),this.begin+this.matches[e].length})),$(a,"$captures",(function(){return this.matches.slice(1)})),$(a,"$named_captures",(function(){var e=E;return e=this.$captures(),f(this.$regexp().$named_captures(),"transform_values",[],(function(t){return null==t&&(t=E),e["$[]"](x(t.$last(),1))}))})),$(a,"$names",(function(){return this.$regexp().$names()})),$(a,"$inspect",(function(){var e=this,t="#<MatchData "+e.matches[0].$inspect();if(e.$regexp().$names()["$empty?"]())for(var n=1,r=e.matches.length;n<r;n++)t+=" "+n+":"+e.matches[n].$inspect();else f(e.$named_captures(),"each",[],(function(e,n){return null==e&&(e=E),null==n&&(n=E),t+=" "+e+":"+n.$inspect()}));return t+">"})),$(a,"$length",(function(){return this.matches.length})),$(a,"$to_a",k("matches")),$(a,"$to_s",(function(){return this.matches[0]})),$(a,"$values_at",(function(e){var t;t=c(arguments);var n,r,i,a=[];for(n=0;n<t.length;n++)t[n].$$is_range&&((r=t[n].$to_a()).unshift(n,1),Array.prototype.splice.apply(t,r)),(i=d["$coerce_to!"](t[n],S("Integer"),"to_int"))<0&&(i+=this.matches.length)<0?a.push(E):a.push(this.matches[i]);return a}),-1),p(a,"eql?","=="),p(a,"size","length")}(G[0],0,G)},Opal.modules["corelib/string"]=function(e){var t=e.coerce_to,n=e.respond_to,r=e.global_multiline_regexp,i=e.prop,a=e.opal32_init,s=e.opal32_add,o=e.klass,$=e.send2,u=e.find_super,l=e.def,c=e.Opal,_=e.defs,d=e.slice,p=e.send,f=e.to_a,h=e.extract_kwargs,m=e.ensure_kwargs,g=e.hash_get,v=e.eqeqeq,b=e.Kernel,y=e.truthy,w=e.gvars,x=e.rb_divide,k=e.rb_plus,G=e.eqeq,E=e.alias,S=e.const_set,O=e.top,M=[],A=e.$r(M),N=e.nil,z=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"),O.$require("corelib/comparable"),O.$require("corelib/regexp"),function(S,O,M){var A=o("::",String,"String"),D=[A].concat(M),I=e.$r(D);A.$include(z("Comparable")),e.prop(A.$$prototype,"$$is_string",!0);var T=new Map;function R(e){function n(e){var t,n,r,i,a,s,o="",$=e.length;for(t=0;t<$;t++)if("-"===(n=e.charAt(t))&&t>0&&t<$-1&&!r){for((i=e.charCodeAt(t-1))>(a=e.charCodeAt(t+1))&&b.$raise(z("ArgumentError"),'invalid range "'+i+"-"+a+'" in string transliteration'),s=i+1;s<a+1;s++)o+=String.fromCharCode(s);r=!0,t++}else r="\\"===n,o+=n;return o}function r(e,t){if(0===e.length)return t;var n,r,i="",a=e.length;for(n=0;n<a;n++)r=e.charAt(n),-1!==t.indexOf(r)&&(i+=r);return i}var i,a,s,o,$,u,l="",c="";for(i=0,a=e.length;i<a;i++)o="^"===(s=t(e[i],z("String"),"to_str")).charAt(0)&&s.length>1,s=n(o?s.slice(1):s),o?c=r(c,s):l=r(l,s);if(l.length>0&&c.length>0){for(u="",i=0,a=l.length;i<a;i++)$=l.charAt(i),-1===c.indexOf($)&&(u+=$);l=u,c=""}return l.length>0?"["+z("Regexp").$escape(l)+"]":c.length>0?"[^"+z("Regexp").$escape(c)+"]":null}(function(){"use strict";l(A,"$__id__",(function t(){var n=t.$$p||N,r=this;if(t.$$p=null,"object"==typeof r)return $(r,u(r,"__id__",t,!1,!0),"__id__",[],n);if(T.has(r))return T.get(r);var i=e.uid();return T.set(r,i),i})),l(A,"$hash",(function(){var e,t=a(),n=this.length;for(t=s(t,5),t=s(t,n),e=0;e<n;e++)t=s(t,this.charCodeAt(e));return t}))})(),_(A,"$try_convert",(function(e){return c["$coerce_to?"](e,z("String"),"to_str")})),_(A,"$new",(function(e){var n,r=(n=d(arguments))[0]||"",i=n[n.length-1];return r=t(r,z("String"),"to_str"),i&&i.$$is_hash&&i.has("encoding")&&(r=r.$force_encoding(i.get("encoding").value)),(r=new this.$$constructor(r)).$initialize.$$pristine||p(r,"initialize",f(n)),r}),-1),l(A,"$initialize",(function(e,t){var n,r;return n=d(arguments),r=h(n),r=m(r),n.length>0&&n.shift(),null==g(r,"encoding")&&N,null==g(r,"capacity")&&N,N}),-1),l(A,"$%",(function(e){var t=this;return v(z("Array"),e)?p(t,"format",[t].concat(f(e))):t.$format(t,e)})),l(A,"$*",(function(e){if((e=t(e,z("Integer"),"to_int"))<0&&b.$raise(z("ArgumentError"),"negative argument"),0===e)return"";var n="",r=this.toString();for(r.length*e>=1<<28&&b.$raise(z("RangeError"),"multiply count must not overflow maximum string size");1==(1&e)&&(n+=r),0!==(e>>>=1);)r+=r;return n})),l(A,"$+",(function(n){var r=this;if(""==(n=t(n,z("String"),"to_str"))&&r.$$class===e.String)return r;if(""==r&&n.$$class===e.String)return n;var i=r+n;return r.encoding===i.encoding&&n.encoding===i.encoding||"UTF-8"===r.encoding.name||"UTF-8"===n.encoding.name?i:e.enc(i,r.encoding)})),l(A,"$<=>",(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 n=e["$<=>"](t);return n===N?N:n>0?-1:n<0?1:0})),l(A,"$==",(function(e){return e.$$is_string?this.toString()===e.toString():!!n(e,"$to_str")&&e["$=="](this)})),l(A,"$=~",(function(e){return e.$$is_string&&b.$raise(z("TypeError"),"type mismatch: String given"),e["$=~"](this)})),l(A,"$[]",(function(e,n){var r,i,a=this,s=a.length;if(e.$$is_range)return r=e.excl,i=e,n=e.end===N?-1:t(e.end,z("Integer"),"to_int"),e=e.begin===N?0:t(e.begin,z("Integer"),"to_int"),Math.abs(e)>s?N:(e<0&&(e+=s),n<0&&(n+=s),r&&i.end!==N||(n+=1),(n-=e)<0&&(n=0),a.substr(e,n));if(e.$$is_string)return null!=n&&b.$raise(z("TypeError")),-1!==a.indexOf(e)?e:N;if(e.$$is_regexp){var o=a.match(e);return null===o?(w["~"]=N,N):(w["~"]=z("MatchData").$new(e,o),null==n?o[0]:(n=t(n,z("Integer"),"to_int"))<0&&-n<o.length?o[n+=o.length]:n>=0&&n<o.length?o[n]:N)}return(e=t(e,z("Integer"),"to_int"))<0&&(e+=s),null==n?e>=s||e<0?N:a.substr(e,1):(n=t(n,z("Integer"),"to_int"))<0||e>s||e<0?N:a.substr(e,n)}),-2),l(A,"$b",(function(){return new String(this).$force_encoding("binary")})),l(A,"$capitalize",(function(){return this.charAt(0).toUpperCase()+this.substr(1).toLowerCase()})),l(A,"$casecmp",(function(e){var n=this;if(!y(e["$respond_to?"]("to_str")))return N;e=t(e,z("String"),"to_str").$to_s();var r=/^[\x00-\x7F]*$/;return r.test(n)&&r.test(e)&&(n=n.toLowerCase(),e=e.toLowerCase()),n["$<=>"](e)})),l(A,"$casecmp?",(function(e){var t=this.$casecmp(e);return t===N?N:0===t})),l(A,"$center",(function(e,n){var r=this;if(null==n&&(n=" "),e=t(e,z("Integer"),"to_int"),n=t(n,z("String"),"to_str").$to_s(),y(n["$empty?"]())&&b.$raise(z("ArgumentError"),"zero width padding"),y(e<=r.length))return r;var i=r.$ljust(x(k(e,r.length),2).$ceil(),n);return r.$rjust(x(k(e,r.length),2).$floor(),n)+i.slice(r.length)}),-2),l(A,"$chomp",(function(e){var t,n=this;if(null==w["/"]&&(w["/"]=N),null==e&&(e=w["/"]),y(e===N||0===n.length))return n;if("\n"===(e=c["$coerce_to!"](e,z("String"),"to_str").$to_s()))t=n.replace(/\r?\n?$/,"");else if(""===e)t=n.replace(/(\r?\n)+$/,"");else if(n.length>=e.length){n.substr(n.length-e.length,e.length)===e&&(t=n.substr(0,n.length-e.length))}return null!=t?t:n}),-1),l(A,"$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)})),l(A,"$chr",(function(){return this.charAt(0)})),l(A,"$clone",(function(e){var t,n=this,r=N;return e=m(e),null==(t=g(e,"freeze"))&&(t=N),y(t["$nil?"]())||G(t,!0)||G(t,!1)||n.$raise(I("ArgumentError"),"unexpected value for freeze: "+t.$class()),(r=new String(n)).$copy_singleton_methods(n),r.$initialize_clone(n,new Map([["freeze",t]])),G(t,!0)?r.$$frozen||(r.$$frozen=!0):y(t["$nil?"]())&&n.$$frozen&&(r.$$frozen=!0),r}),-1),l(A,"$dup",(function(){var e=N;return(e=new String(this)).$initialize_dup(this),e})),l(A,"$count",(function(e){var t;0===(t=d(arguments)).length&&b.$raise(z("ArgumentError"),"ArgumentError: wrong number of arguments (0 for 1+)");var n=R(t);return null===n?0:this.length-this.replace(new RegExp(n,"g"),"").length}),-1),l(A,"$delete",(function(e){var t;0===(t=d(arguments)).length&&b.$raise(z("ArgumentError"),"ArgumentError: wrong number of arguments (0 for 1+)");var n=R(t);return null===n?this:this.replace(new RegExp(n,"g"),"")}),-1),l(A,"$delete_prefix",(function(e){var n=this;return e.$$is_string||(e=t(e,z("String"),"to_str")),n.slice(0,e.length)===e?n.slice(e.length):n})),l(A,"$delete_suffix",(function(e){var n=this;return e.$$is_string||(e=t(e,z("String"),"to_str")),n.slice(n.length-e.length)===e?n.slice(0,n.length-e.length):n})),l(A,"$downcase",(function(){return this.toLowerCase()})),l(A,"$each_line",(function n(r,i){var a,s,o,$,u,l,c,_,p,f,v,b,y=n.$$p||N,x=this;if(null==w["/"]&&(w["/"]=N),n.$$p=null,a=d(arguments),s=h(a),s=m(s),a.length>0&&(o=a.shift()),null==o&&(o=w["/"]),null==($=g(s,"chomp"))&&($=!1),y===N)return x.$enum_for("each_line",o,new Map([["chomp",$]]));if(o===N)return e.yield1(y,x),x;if(0===(o=t(o,z("String"),"to_str")).length){for(l=0,c=(u=x.split(/((?:\r?\n){2})(?:(?:\r?\n)*)/)).length;l<c;l+=2)(u[l]||u[l+1])&&(b=(u[l]||"")+(u[l+1]||""),$&&(b=b.$chomp("\n")),e.yield1(y,b));return x}for(p=x.$chomp(o),f=x.length!=p.length,l=0,_=(v=p.split(o)).length;l<_;l++)b=v[l],(l<_-1||f)&&(b+=o),$&&(b=b.$chomp(o)),e.yield1(y,b);return x}),-1),l(A,"$empty?",(function(){return 0===this.length})),l(A,"$end_with?",(function(e){for(var n,r=this,i=0,a=(n=d(arguments)).length;i<a;i++){var s=t(n[i],z("String"),"to_str").$to_s();if(r.length>=s.length&&r.substr(r.length-s.length,s.length)==s)return!0}return!1}),-1),l(A,"$gsub",(function e(n,i){var a=e.$$p||N,s=this;if(e.$$p=null,void 0===i&&a===N)return s.$enum_for("gsub",n);var o,$,u,l="",c=N,_=0;for(n.$$is_regexp?n=r(n):(n=t(n,z("String"),"to_str"),n=new RegExp(n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gm"));;){if(null===(o=n.exec(s))){w["~"]=N,l+=s.slice(_);break}c=z("MatchData").$new(n,o),void 0===i?(u=n.lastIndex,$=a(o[0]),n.lastIndex=u):i.$$is_hash?$=i["$[]"](o[0]).$to_s():(i.$$is_string||(i=t(i,z("String"),"to_str")),$=i.replace(/([\\]+)([0-9+&`'])/g,(function(e,t,n){if(t.length%2==0)return e;switch(n){case"+":for(var r=o.length-1;r>0;r--)if(void 0!==o[r])return t.slice(1)+o[r];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[n]||"")}})).replace(/\\\\/g,"\\")),n.lastIndex===o.index?(l+=s.slice(_,o.index)+$+(s[o.index]||""),n.lastIndex+=1):l+=s.slice(_,o.index)+$,_=n.lastIndex}return w["~"]=c,l}),-2),l(A,"$hex",(function(){return this.$to_i(16)})),l(A,"$include?",(function(e){return e.$$is_string||(e=t(e,z("String"),"to_str")),-1!==this.indexOf(e)})),l(A,"$index",(function(e,n){var i,a,s,o=this;if(void 0===n)n=0;else if((n=t(n,z("Integer"),"to_int"))<0&&(n+=o.length)<0)return N;if(e.$$is_regexp)for(s=r(e);;){if(null===(a=s.exec(o))){w["~"]=N,i=-1;break}if(a.index>=n){w["~"]=z("MatchData").$new(s,a),i=a.index;break}s.lastIndex=a.index+1}else i=0===(e=t(e,z("String"),"to_str")).length&&n>o.length?-1:o.indexOf(e,n);return-1===i?N:i}),-2),l(A,"$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(n){return t[n]?t[n]:(n=n.charCodeAt(0))<=255&&(e.encoding["$binary?"]()||e.internal_encoding["$binary?"]())?"\\x"+("00"+n.toString(16).toUpperCase()).slice(-2):"\\u"+("0000"+n.toString(16).toUpperCase()).slice(-4)})).replace(/\#[\$\@\{]/g,"\\$&")+'"'})),l(A,"$intern",(function(){return this.toString()})),l(A,"$length",(function(){return this.length})),E(A,"size","length"),l(A,"$lines",(function e(t,n){var r,i,a,s,o=e.$$p||N,$=N;return null==w["/"]&&(w["/"]=N),e.$$p=null,r=d(arguments),i=h(r),i=m(i),r.length>0&&(a=r.shift()),null==a&&(a=w["/"]),null==(s=g(i,"chomp"))&&(s=!1),$=p(this,"each_line",[a,new Map([["chomp",s]])],o.$to_proc()),y(o)?this:$.$to_a()}),-1),l(A,"$ljust",(function(e,n){var r=this;if(null==n&&(n=" "),e=t(e,z("Integer"),"to_int"),n=t(n,z("String"),"to_str").$to_s(),y(n["$empty?"]())&&b.$raise(z("ArgumentError"),"zero width padding"),y(e<=r.length))return r;var i=-1,a="";for(e-=r.length;++i<e;)a+=n;return r+a.slice(0,e)}),-2),l(A,"$lstrip",(function(){return this.replace(/^[\x00\x09\x0a-\x0d\x20]*/,"")})),l(A,"$ascii_only?",(function(){return!!this.encoding.ascii&&/^[\x00-\x7F]*$/.test(this)})),l(A,"$match",(function e(t,n){var r=e.$$p||N;return e.$$p=null,(v(I("String"),t)||y(t["$respond_to?"]("to_str")))&&(t=z("Regexp").$new(t.$to_str())),v(z("Regexp"),t)||b.$raise(z("TypeError"),"wrong argument type "+t.$class()+" (expected Regexp)"),p(t,"match",[this,n],r.$to_proc())}),-2),l(A,"$match?",(function(e,t){return(v(I("String"),e)||y(e["$respond_to?"]("to_str")))&&(e=z("Regexp").$new(e.$to_str())),v(z("Regexp"),e)||b.$raise(z("TypeError"),"wrong argument type "+e.$class()+" (expected Regexp)"),e["$match?"](this,t)}),-2),l(A,"$next",(function(){var e=this,t=e.length;if(0===t)return"";for(var n,r=e,i=e.search(/[a-zA-Z0-9]/),a=!1;t--;){if((n=e.charCodeAt(t))>=48&&n<=57||n>=65&&n<=90||n>=97&&n<=122)switch(n){case 57:a=!0,n=48;break;case 90:a=!0,n=65;break;case 122:a=!0,n=97;break;default:a=!1,n+=1}else-1===i?255===n?(a=!0,n=0):(a=!1,n+=1):a=!0;if(r=r.slice(0,t)+String.fromCharCode(n)+r.slice(t+1),a&&(0===t||t===i)){switch(n){case 65:case 97:break;default:n+=1}r=0===t?String.fromCharCode(n)+r:r.slice(0,t)+String.fromCharCode(n)+r.slice(t),a=!1}if(!a)break}return r})),l(A,"$oct",(function(){var e,t=this,n=8;return/^\s*_/.test(t)?0:(t=t.replace(/^(\s*[+-]?)(0[bodx]?)(.+)$/i,(function(e,t,r,i){switch(i.charAt(0)){case"+":case"-":return e;case"0":if("x"===i.charAt(1)&&"0x"===r)return e}switch(r){case"0b":n=2;break;case"0":case"0o":n=8;break;case"0d":n=10;break;case"0x":n=16}return t+i})),e=parseInt(t.replace(/_(?!_)/g,""),n),isNaN(e)?0:e)})),l(A,"$ord",(function(){var e=this;return"function"==typeof e.codePointAt?e.codePointAt(0):e.charCodeAt(0)})),l(A,"$partition",(function(e){var n,r,i=this;return e.$$is_regexp?null===(r=e.exec(i))?n=-1:(z("MatchData").$new(e,r),e=r[0],n=r.index):(e=t(e,z("String"),"to_str"),n=i.indexOf(e)),-1===n?[i,"",""]:[i.slice(0,n),i.slice(n,n+e.length),i.slice(n+e.length)]})),l(A,"$reverse",(function(){return this.split("").reverse().join("")})),l(A,"$rindex",(function(e,n){var i,a,s,o,$=this;if(void 0===n)n=$.length;else if((n=t(n,z("Integer"),"to_int"))<0&&(n+=$.length)<0)return N;if(e.$$is_regexp){for(a=null,s=r(e);!(null===(o=s.exec($))||o.index>n);)a=o,s.lastIndex=a.index+1;null===a?(w["~"]=N,i=-1):(z("MatchData").$new(s,a),i=a.index)}else e=t(e,z("String"),"to_str"),i=$.lastIndexOf(e,n);return-1===i?N:i}),-2),l(A,"$rjust",(function(e,n){var r=this;if(null==n&&(n=" "),e=t(e,z("Integer"),"to_int"),n=t(n,z("String"),"to_str").$to_s(),y(n["$empty?"]())&&b.$raise(z("ArgumentError"),"zero width padding"),y(e<=r.length))return r;var i=Math.floor(e-r.length),a=Math.floor(i/n.length),s=Array(a+1).join(n),o=i-s.length;return s+n.slice(0,o)+r}),-2),l(A,"$rpartition",(function(e){var n,i,a,s,o=this;if(e.$$is_regexp){for(i=null,a=r(e);null!==(s=a.exec(o));)i=s,a.lastIndex=i.index+1;null===i?n=-1:(z("MatchData").$new(a,i),e=i[0],n=i.index)}else e=t(e,z("String"),"to_str"),n=o.lastIndexOf(e);return-1===n?["","",o]:[o.slice(0,n),o.slice(n,n+e.length),o.slice(n+e.length)]})),l(A,"$rstrip",(function(){return this.replace(/[\x00\x09\x0a-\x0d\x20]*$/,"")})),l(A,"$scan",(function n(i,a){var s,o=n.$$p||N;n.$$p=null,a=m(a),null==(s=g(a,"no_matchdata"))&&(s=!1);var $,u=[],l=N;for(i.$$is_regexp?i=r(i):(i=t(i,z("String"),"to_str"),i=new RegExp(i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gm"));null!=($=i.exec(this));)l=z("MatchData").$new(i,$,new Map([["no_matchdata",s]])),o===N?1==$.length?u.push($[0]):u.push(l.$captures()):1==$.length?e.yield1(o,$[0]):e.yield1(o,l.$captures()),i.lastIndex===$.index&&(i.lastIndex+=1);return s||(w["~"]=l),o!==N?this:u}),-2),l(A,"$singleton_class",(function(){return e.get_singleton_class(this)})),l(A,"$split",(function(n,i){var a=this,s=N;if(null==w[";"]&&(w[";"]=N),0===a.length)return[];if(void 0===i)i=0;else if(1===(i=c["$coerce_to!"](i,z("Integer"),"to_int")))return[a];void 0!==n&&n!==N||(n=y(s=w[";"])?s:" ");var o,$,u,l=[],_=a.toString(),d=0,p=0,f=0;if(n.$$is_regexp?n=r(n):" "===(n=t(n,z("String"),"to_str").$to_s())&&(n=/\s+/gm,_=_.replace(/^\s+/,"")),1===(l=_.split(n)).length&&l[0]===_)return[l[0]];for(;-1!==($=l.indexOf(void 0));)l.splice($,1);if(0===i){for(;""===l[l.length-1];)l.pop();return l}if(n.$$is_regexp||(n=e.escape_regexp(n),n=new RegExp(n,"gm")),o=n.exec(_),i<0){if(null!==o&&""===o[0]&&-1===n.source.indexOf("(?="))for($=0,u=o.length;$<u;$++)l.push("");return l}if(null!==o&&""===o[0])return f=(o.length-1)*(i-1)+i,l.splice(f-1,l.length-1,l.slice(f-1).join("")),l;if(i>=l.length)return l;for(;null!==o&&(p++,d=n.lastIndex,f+=o.length,p+1!==i);)o=n.exec(_);return l.splice(f,l.length-1,_.slice(d)),l}),-1),l(A,"$squeeze",(function(e){var t,n=this;if(0===(t=d(arguments)).length)return n.replace(/(.)\1+/g,"$1");var r=R(t);return null===r?n:n.replace(new RegExp("("+r+")\\1+","g"),"$1")}),-1),l(A,"$start_with?",(function(e){for(var n,r=this,i=0,a=(n=d(arguments)).length;i<a;i++)if(n[i].$$is_regexp){var s=n[i],o=s.exec(r);if(null!=o&&0===o.index)return w["~"]=z("MatchData").$new(s,o),!0;w["~"]=N}else{var $=t(n[i],z("String"),"to_str").$to_s();if(r.length>=$.length&&r.startsWith($))return!0}return!1}),-1),l(A,"$strip",(function(){return this.replace(/^[\x00\x09\x0a-\x0d\x20]*|[\x00\x09\x0a-\x0d\x20]*$/g,"")})),l(A,"$sub",(function e(n,r){var i=e.$$p||N,a=this;e.$$p=null,n.$$is_regexp||(n=t(n,z("String"),"to_str"),n=new RegExp(n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")));var s,o=n.exec(a);return null===o?(w["~"]=N,s=a.toString()):(z("MatchData").$new(n,o),void 0===r?(i===N&&b.$raise(z("ArgumentError"),"wrong number of arguments (1 for 2)"),s=a.slice(0,o.index)+i(o[0])+a.slice(o.index+o[0].length)):r.$$is_hash?s=a.slice(0,o.index)+r["$[]"](o[0]).$to_s()+a.slice(o.index+o[0].length):(r=(r=t(r,z("String"),"to_str")).replace(/([\\]+)([0-9+&`'])/g,(function(e,t,n){if(t.length%2==0)return e;switch(n){case"+":for(var r=o.length-1;r>0;r--)if(void 0!==o[r])return t.slice(1)+o[r];return"";case"&":return t.slice(1)+o[0];case"`":return t.slice(1)+a.slice(0,o.index);case"'":return t.slice(1)+a.slice(o.index+o[0].length);default:return t.slice(1)+(o[n]||"")}})).replace(/\\\\/g,"\\"),s=a.slice(0,o.index)+r+a.slice(o.index+o[0].length))),s}),-2),l(A,"$sum",(function(e){null==e&&(e=16),e=t(e,z("Integer"),"to_int");for(var n=0,r=this.length,i=0;i<r;i++)n+=this.charCodeAt(i);return e<=0?n:n&Math.pow(2,e)-1}),-1),l(A,"$swapcase",(function(){return this.replace(/([a-z]+)|([A-Z]+)/g,(function(e,t,n){return t?e.toUpperCase():e.toLowerCase()}))})),l(A,"$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})),l(A,"$to_i",(function(e){null==e&&(e=10);var n,r=this.toLowerCase(),i=t(e,z("Integer"),"to_int");return(1===i||i<0||i>36)&&b.$raise(z("ArgumentError"),"invalid radix "+i),/^\s*_/.test(r)?0:(r=r.replace(/^(\s*[+-]?)(0[bodx]?)(.+)$/,(function(e,t,n,r){switch(r.charAt(0)){case"+":case"-":return e;case"0":if("x"===r.charAt(1)&&"0x"===n&&(0===i||16===i))return e}switch(n){case"0b":if(0===i||2===i)return i=2,t+r;break;case"0":case"0o":if(0===i||8===i)return i=8,t+r;break;case"0d":if(0===i||10===i)return i=10,t+r;break;case"0x":if(0===i||16===i)return i=16,t+r}return e})),n=parseInt(r.replace(/_(?!_)/g,""),i),isNaN(n)?0:n)}),-1),l(A,"$to_proc",(function t(){var n,r,i=N;return t.$$p=null,n=this.valueOf(),r=e.jsid(n),i=p(b,"proc",[],(function e(t){var i,a=e.$$p||N;e.$$p=null,0===(i=d(arguments)).length&&b.$raise(z("ArgumentError"),"no receiver given");var s=i[0];null==s&&(s=N);var o=s[r];return o?i=i.slice(1):(o=s.$method_missing,i[0]=n),"function"==typeof a&&(o.$$p=a),0===i.length?o.call(s):o.apply(s,i)}),-1),i.$$source_location=N,i})),l(A,"$to_s",(function(){return this.toString()})),l(A,"$tr",(function(e,n){var r,i,a,s,o,$,u,l=this;if(e=t(e,z("String"),"to_str").$to_s(),n=t(n,z("String"),"to_str").$to_s(),0==e.length||e===n)return l;var c={},_=e.split(""),d=_.length,p=n.split(""),f=p.length,h=!1,m=null;"^"===_[0]&&_.length>1&&(h=!0,_.shift(),m=p[f-1],d-=1);var g=[],v=null;for(i=!1,r=0;r<d;r++)if(s=_[r],null==v)v=s,g.push(s);else if("-"===s)"-"===v?(g.push("-"),g.push("-")):r==d-1?g.push("-"):i=!0;else if(i){for((o=v.charCodeAt(0))>($=s.charCodeAt(0))&&b.$raise(z("ArgumentError"),'invalid range "'+String.fromCharCode(o)+"-"+String.fromCharCode($)+'" in string transliteration'),a=o+1;a<$;a++)g.push(String.fromCharCode(a));g.push(s),i=null,v=null}else g.push(s);if(d=(_=g).length,h)for(r=0;r<d;r++)c[_[r]]=!0;else{if(f>0){var y=[],w=null;for(i=!1,r=0;r<f;r++)if(s=p[r],null==w)w=s,y.push(s);else if("-"===s)"-"===w?(y.push("-"),y.push("-")):r==f-1?y.push("-"):i=!0;else if(i){for((o=w.charCodeAt(0))>($=s.charCodeAt(0))&&b.$raise(z("ArgumentError"),'invalid range "'+String.fromCharCode(o)+"-"+String.fromCharCode($)+'" in string transliteration'),a=o+1;a<$;a++)y.push(String.fromCharCode(a));y.push(s),i=null,w=null}else y.push(s);f=(p=y).length}var x=d-f;if(x>0){var k=f>0?p[f-1]:"";for(r=0;r<x;r++)p.push(k)}for(r=0;r<d;r++)c[_[r]]=p[r]}var G="";for(r=0,u=l.length;r<u;r++){var E=c[s=l.charAt(r)];G+=h?null==E?m:s:null!=E?E:s}return G})),l(A,"$tr_s",(function(e,n){var r,i,a,s,o,$,u,l=this;if(e=t(e,z("String"),"to_str").$to_s(),n=t(n,z("String"),"to_str").$to_s(),0==e.length)return l;var c={},_=e.split(""),d=_.length,p=n.split(""),f=p.length,h=!1,m=null;"^"===_[0]&&_.length>1&&(h=!0,_.shift(),m=p[f-1],d-=1);var g=[],v=null;for(i=!1,r=0;r<d;r++)if(s=_[r],null==v)v=s,g.push(s);else if("-"===s)"-"===v?(g.push("-"),g.push("-")):r==d-1?g.push("-"):i=!0;else if(i){for((o=v.charCodeAt(0))>($=s.charCodeAt(0))&&b.$raise(z("ArgumentError"),'invalid range "'+String.fromCharCode(o)+"-"+String.fromCharCode($)+'" in string transliteration'),a=o+1;a<$;a++)g.push(String.fromCharCode(a));g.push(s),i=null,v=null}else g.push(s);if(d=(_=g).length,h)for(r=0;r<d;r++)c[_[r]]=!0;else{if(f>0){var y=[];for(i=!1,r=0;r<f;r++)if(s=p[r],null==v)v=s,y.push(s);else if("-"===s)r==f-1?y.push("-"):i=!0;else if(i){for((o=v.charCodeAt(0))>($=s.charCodeAt(0))&&b.$raise(z("ArgumentError"),'invalid range "'+String.fromCharCode(o)+"-"+String.fromCharCode($)+'" in string transliteration'),a=o+1;a<$;a++)y.push(String.fromCharCode(a));y.push(s),i=null,v=null}else y.push(s);f=(p=y).length}var w=d-f;if(w>0){var x=f>0?p[f-1]:"";for(r=0;r<w;r++)p.push(x)}for(r=0;r<d;r++)c[_[r]]=p[r]}var k="",G=null;for(r=0,u=l.length;r<u;r++){var E=c[s=l.charAt(r)];h?null==E?null==G&&(k+=m,G=!0):(k+=s,G=null):null!=E?null!=G&&G===E||(k+=E,G=E):(k+=s,G=null)}return k})),l(A,"$upcase",(function(){return this.toUpperCase()})),l(A,"$upto",(function e(n,r){var i=e.$$p||N,a=this;if(e.$$p=null,null==r&&(r=!1),i===N)return a.$enum_for("upto",n,r);var s,o,$=a.toString();if(n=t(n,z("String"),"to_str"),1===$.length&&1===n.length)for(s=$.charCodeAt(0),o=n.charCodeAt(0);s<=o&&(!r||s!==o);)i(String.fromCharCode(s)),s+=1;else if(parseInt($,10).toString()===$&&parseInt(n,10).toString()===n)for(s=parseInt($,10),o=parseInt(n,10);s<=o&&(!r||s!==o);)i(s.toString()),s+=1;else for(;$.length<=n.length&&$<=n&&(!r||$!==n);)i($),$=$.$succ();return a}),-2),l(A,"$instance_variables",(function(){return[]})),_(A,"$_load",(function(e){var t;return t=d(arguments),p(this,"new",f(t))}),-1),l(A,"$unicode_normalize",(function(e){return null==e&&(e="nfc"),y(["nfc","nfd","nfkc","nfkd"]["$include?"](e))||b.$raise(z("ArgumentError"),"Invalid normalization form "+e),this.normalize(e.$upcase())}),-1),l(A,"$unicode_normalized?",(function(e){return null==e&&(e="nfc"),this.$unicode_normalize(e)["$=="](this)}),-1),l(A,"$unpack",(function(e){return b.$raise("To use String#unpack, you must first require 'corelib/string/unpack'.")})),l(A,"$unpack1",(function(e){return b.$raise("To use String#unpack1, you must first require 'corelib/string/unpack'.")})),l(A,"$freeze",(function(){var e=this;return"string"==typeof e||i(e,"$$frozen",!0),e})),l(A,"$-@",(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()})),l(A,"$frozen?",(function(){return"string"==typeof this||!0===this.$$frozen})),E(A,"+@","dup"),E(A,"===","=="),E(A,"byteslice","[]"),E(A,"eql?","=="),E(A,"equal?","==="),E(A,"object_id","__id__"),E(A,"slice","[]"),E(A,"succ","next"),E(A,"to_str","to_s"),E(A,"to_sym","intern"),c.$pristine(A,"initialize")}(0,0,M),S(M[0],"Symbol",A("String"))},Opal.modules["corelib/enumerable"]=function(e){var t=e.truthy,n=e.coerce_to,r=e.yield1,i=e.yieldX,a=e.deny_frozen_access,s=e.module,o=e.send,$=e.slice,u=e.to_a,l=e.Opal,c=e.thrower,_=e.def,d=e.Kernel,p=e.return_val,f=e.rb_gt,h=e.rb_times,m=e.rb_lt,g=e.eqeq,v=e.rb_plus,b=e.rb_minus,y=e.rb_divide,w=e.rb_le,x=e.lambda,k=e.not,G=e.alias,E=e.nil,S=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(O,M){var A=s("::","Enumerable"),N=[A].concat(M),z=e.$r(N);function D(e){return 0===e.length&&(e=[E]),e.length>1&&(e=[e]),e}return _(A,"$all?",(function n(r){try{var i=c("return"),a=n.$$p||E,s=this;return n.$$p=null,t(void 0!==r)?o(s,"each",[],(function e(n){var a;if(a=D($(arguments)),t(o(r,"public_send",["==="].concat(u(a)))))return E;i.$throw(!1,e.$$is_lambda)}),{$$arity:-1,$$ret:i}):o(s,"each",[],a!==E?function n(r){var s;if(s=$(arguments),t(e.yieldX(a,u(s))))return E;i.$throw(!1,n.$$is_lambda)}:function e(n){var r;if(r=$(arguments),t(l.$destructure(r)))return E;i.$throw(!1,e.$$is_lambda)},{$$arity:-1,$$ret:i}),!0}catch(e){if(e===i)return e.$v;throw e}finally{i.is_orphan=!0}}),-1),_(A,"$any?",(function n(r){try{var i=c("return"),a=n.$$p||E,s=this;return n.$$p=null,t(void 0!==r)?o(s,"each",[],(function e(n){var a;if(a=D($(arguments)),!t(o(r,"public_send",["==="].concat(u(a)))))return E;i.$throw(!0,e.$$is_lambda)}),{$$arity:-1,$$ret:i}):o(s,"each",[],a!==E?function n(r){var s;if(s=$(arguments),!t(e.yieldX(a,u(s))))return E;i.$throw(!0,n.$$is_lambda)}:function e(n){var r;if(r=$(arguments),!t(l.$destructure(r)))return E;i.$throw(!0,e.$$is_lambda)},{$$arity:-1,$$ret:i}),!1}catch(e){if(e===i)return e.$v;throw e}finally{i.is_orphan=!0}}),-1),_(A,"$chunk",(function e(){var t=e.$$p||E,n=this;return e.$$p=null,t===E?o(n,"to_enum",["chunk"],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:n}):o(S("Enumerator"),"new",[],(function e(n){var i=null==e.$$s?this:e.$$s;null==n&&(n=E);var a=E,s=[];function o(){s.length>0&&n.$yield(a,s)}i.$each.$$p=function(e){var n=r(t,e);n===E?(o(),s=[],a=E):(a===E||a===n?s.push(e):(o(),s=[e]),a=n)},i.$each(),o()}),{$$s:n})})),_(A,"$chunk_while",(function t(){var n=t.$$p||E;return t.$$p=null,n===E&&d.$raise(S("ArgumentError"),"no block given"),o(this,"slice_when",[],(function(t,r){return null==t&&(t=E),null==r&&(r=E),e.yieldX(n,[t,r])["$!"]()}))})),_(A,"$collect",(function e(){var t=e.$$p||E,n=this;if(e.$$p=null,t===E)return o(n,"enum_for",["collect"],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:n});var r=[];return n.$each.$$p=function(){var e=i(t,arguments);r.push(e)},n.$each(),r})),_(A,"$collect_concat",(function e(){var t=e.$$p||E,n=this;return e.$$p=null,t===E?o(n,"enum_for",["collect_concat"],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:n}):o(n,"map",[],t.$to_proc()).$flatten(1)})),_(A,"$compact",(function(){return this.$to_a().$compact()})),_(A,"$count",(function e(n){var r=e.$$p||E,a=E;return e.$$p=null,a=0,null!=n&&r!==E&&this.$warn("warning: given block not used"),t(null!=n)?r=o(d,"proc",[],(function(e){var t;return t=$(arguments),l.$destructure(t)["$=="](n)}),-1):t(r["$nil?"]())&&(r=o(d,"proc",[],p(!0))),o(this,"each",[],(function(e){var n;return n=$(arguments),t(i(r,n))?a++:E}),-1),a}),-1),_(A,"$cycle",(function e(n){var i=e.$$p||E,a=this;if(e.$$p=null,null==n&&(n=E),i===E)return o(a,"enum_for",["cycle",n],(function e(){var r=null==e.$$s?this:e.$$s;return t(n["$nil?"]())?t(r["$respond_to?"]("size"))?S(S("Float"),"INFINITY"):E:(n=l["$coerce_to!"](n,S("Integer"),"to_int"),t(f(n,0))?h(r.$enumerator_size(),n):0)}),{$$s:a});if(!t(n["$nil?"]())&&(n=l["$coerce_to!"](n,S("Integer"),"to_int"),t(n<=0)))return E;var s,$,u=[];if(a.$each.$$p=function(){var e=l.$destructure(arguments);r(i,e);u.push(e)},a.$each(),0===u.length)return E;if(n===E)for(;;)for(s=0,$=u.length;s<$;s++)r(i,u[s]);else for(;n>1;){for(s=0,$=u.length;s<$;s++)r(i,u[s]);n--}}),-1),_(A,"$detect",(function n(r){try{var i=c("return"),a=n.$$p||E;return n.$$p=null,a===E?this.$enum_for("detect",r):(o(this,"each",[],(function n(r){var s,o;if(s=$(arguments),o=l.$destructure(s),!t(e.yield1(a,o)))return E;i.$throw(o,n.$$is_lambda)}),{$$arity:-1,$$ret:i}),void 0!==r?"function"==typeof r?r():r:E)}catch(e){if(e===i)return e.$v;throw e}finally{i.is_orphan=!0}}),-1),_(A,"$drop",(function(e){e=n(e,S("Integer"),"to_int"),t(e<0)&&d.$raise(S("ArgumentError"),"attempt to drop negative size");var r=[],i=0;return this.$each.$$p=function(){e<=i&&r.push(l.$destructure(arguments)),i++},this.$each(),r})),_(A,"$drop_while",(function e(){var n=e.$$p||E,i=this;if(e.$$p=null,n===E)return i.$enum_for("drop_while");var a=[],s=!0;return i.$each.$$p=function(){var e=l.$destructure(arguments);if(s){var i=r(n,e);t(i)||(s=!1,a.push(e))}else a.push(e)},i.$each(),a})),_(A,"$each_cons",(function e(n){var i=e.$$p||E,a=this;if(e.$$p=null,t(1!=arguments.length)&&d.$raise(S("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 1)"),n=l.$try_convert(n,S("Integer"),"to_int"),t(n<=0)&&d.$raise(S("ArgumentError"),"invalid size"),i===E)return o(a,"enum_for",["each_cons",n],(function e(){var r=E;return r=(null==e.$$s?this:e.$$s).$enumerator_size(),t(r["$nil?"]())?E:g(r,0)||t(m(r,n))?0:v(b(r,n),1)}),{$$s:a});var s=[];return a.$each.$$p=function(){var e=l.$destructure(arguments);s.push(e),s.length>n&&s.shift(),s.length==n&&r(i,s.slice(0,n))},a.$each(),a})),_(A,"$each_entry",(function e(t){var n,i=e.$$p||E,a=this;return e.$$p=null,n=$(arguments),i===E?o(a,"to_enum",["each_entry"].concat(u(n)),(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:a}):(a.$each.$$p=function(){var e=l.$destructure(arguments);r(i,e)},a.$each.apply(a,n),a)}),-1),_(A,"$each_slice",(function e(i){var a=e.$$p||E,s=this;if(e.$$p=null,i=n(i,S("Integer"),"to_int"),t(i<=0)&&d.$raise(S("ArgumentError"),"invalid slice size"),a===E)return o(s,"enum_for",["each_slice",i],(function e(){var n=null==e.$$s?this:e.$$s;return t(n["$respond_to?"]("size"))?y(n.$size(),i).$ceil():E}),{$$s:s});var $=[];return s.$each.$$p=function(){var e=l.$destructure(arguments);$.push(e),$.length===i&&(r(a,$),$=[])},s.$each(),$.length>0&&r(a,$),s})),_(A,"$each_with_index",(function e(t){var n,r=e.$$p||E,i=this;if(e.$$p=null,n=$(arguments),r===E)return o(i,"enum_for",["each_with_index"].concat(u(n)),(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:i});var a=0;return i.$each.$$p=function(){var e=l.$destructure(arguments);r(e,a),a++},i.$each.apply(i,n),i}),-1),_(A,"$each_with_object",(function e(t){var n=e.$$p||E,r=this;return e.$$p=null,n===E?o(r,"enum_for",["each_with_object",t],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:r}):(r.$each.$$p=function(){var e=l.$destructure(arguments);n(e,t)},r.$each(),t)})),_(A,"$entries",(function(e){var t,n=this;t=$(arguments);var r=[];return n.$each.$$p=function(){r.push(l.$destructure(arguments))},n.$each.apply(n,t),r}),-1),_(A,"$filter_map",(function e(){var t=e.$$p||E,n=this;return e.$$p=null,t===E?o(n,"enum_for",["filter_map"],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:n}):o(o(n,"map",[],t.$to_proc()),"select",[],"itself".$to_proc())})),_(A,"$find_all",(function e(){var n=e.$$p||E,i=this;if(e.$$p=null,n===E)return o(i,"enum_for",["find_all"],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:i});var a=[];return i.$each.$$p=function(){var e=l.$destructure(arguments),i=r(n,e);t(i)&&a.push(e)},i.$each(),a})),_(A,"$find_index",(function n(r){try{var i=c("return"),a=n.$$p||E,s=this,_=E;return n.$$p=null,t(void 0===r&&a===E)?s.$enum_for("find_index"):(null!=r&&a!==E&&s.$warn("warning: given block not used"),_=0,t(null!=r)?o(s,"each",[],(function e(t){var n;return n=$(arguments),g(l.$destructure(n),r)&&i.$throw(_,e.$$is_lambda),_+=1}),{$$arity:-1,$$ret:i}):o(s,"each",[],(function n(r){var s;return s=$(arguments),t(e.yieldX(a,u(s)))&&i.$throw(_,n.$$is_lambda),_+=1}),{$$arity:-1,$$ret:i}),E)}catch(e){if(e===i)return e.$v;throw e}finally{i.is_orphan=!0}}),-1),_(A,"$first",(function(e){try{var r=c("return"),i=E,a=E;return t(void 0===e)?o(this,"each",[],(function e(t){null==t&&(t=E),r.$throw(t,e.$$is_lambda)}),{$$ret:r}):(i=[],e=n(e,S("Integer"),"to_int"),t(e<0)&&d.$raise(S("ArgumentError"),"attempt to take negative size"),t(0==e)?[]:(a=0,o(this,"each",[],(function n(s){var o;if(o=$(arguments),i.push(l.$destructure(o)),!t(e<=++a))return E;r.$throw(i,n.$$is_lambda)}),{$$arity:-1,$$ret:r}),i))}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}}),-1),_(A,"$grep",(function n(r){var i=n.$$p||E,a=E;return n.$$p=null,a=[],o(this,"each",[],(function(n){var s,l;return l=D(s=$(arguments)),t(o(r,"__send__",["==="].concat(u(l))))?(i!==E?(t(f(s.$length(),1))&&(s=[s]),s=e.yieldX(i,u(s))):t(w(s.$length(),1))&&(s=s["$[]"](0)),a.$push(s)):E}),-1),a})),_(A,"$grep_v",(function n(r){var i=n.$$p||E,a=E;return n.$$p=null,a=[],o(this,"each",[],(function(n){var s,l;return l=D(s=$(arguments)),t(o(r,"__send__",["==="].concat(u(l))))?E:(i!==E?(t(f(s.$length(),1))&&(s=[s]),s=e.yieldX(i,u(s))):t(w(s.$length(),1))&&(s=s["$[]"](0)),a.$push(s))}),-1),a})),_(A,"$group_by",(function e(){var n,i=e.$$p||E,a=this,s=E,$=E;return e.$$p=null,i===E?o(a,"enum_for",["group_by"],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:a}):(s=new Map,a.$each.$$p=function(){var e=l.$destructure(arguments),a=r(i,e);(t($=s["$[]"](a))?$:(n=[a,[]],o(s,"[]=",n),n[n.length-1]))["$<<"](e)},a.$each(),s)})),_(A,"$include?",(function(e){try{var t=c("return");return o(this,"each",[],(function n(r){var i;if(i=$(arguments),!g(l.$destructure(i),e))return E;t.$throw(!0,n.$$is_lambda)}),{$$arity:-1,$$ret:t}),!1}catch(e){if(e===t)return e.$v;throw e}finally{t.is_orphan=!0}})),_(A,"$inject",(function e(t,n){var r=e.$$p||E,a=this;e.$$p=null;var s=t;return r!==E&&void 0===n?a.$each.$$p=function(){var e=l.$destructure(arguments);void 0!==s?(e=i(r,[s,e]),s=e):s=e}:(void 0===n&&(S("Symbol")["$==="](t)||d.$raise(S("TypeError"),t.$inspect()+" is not a Symbol"),n=t,s=void 0),a.$each.$$p=function(){var e=l.$destructure(arguments);s=void 0!==s?s.$__send__(n,e):e}),a.$each(),null==s?E:s}),-1),_(A,"$lazy",(function(){return o(S(S("Enumerator"),"Lazy"),"new",[this,this.$enumerator_size()],(function(e,t){var n;return null==e&&(e=E),n=$(arguments,1),o(e,"yield",u(n))}),-2)})),_(A,"$enumerator_size",(function(){return t(this["$respond_to?"]("size"))?this.$size():E})),_(A,"$max",(function e(t){var r,a,s=e.$$p||E,$=this;return e.$$p=null,void 0===t||t===E?($.$each.$$p=function(){var e=l.$destructure(arguments);void 0!==r?((a=s!==E?i(s,[e,r]):e["$<=>"](r))===E&&d.$raise(S("ArgumentError"),"comparison failed"),a>0&&(r=e)):r=e},$.$each(),void 0===r?E:r):(t=n(t,S("Integer"),"to_int"),o($,"sort",[],s.$to_proc()).$reverse().$first(t))}),-1),_(A,"$max_by",(function e(n){var i,a,s=e.$$p||E,$=this;return e.$$p=null,null==n&&(n=E),t(s)?t(n["$nil?"]())?($.$each.$$p=function(){var e=l.$destructure(arguments),t=r(s,e);if(void 0===i)return i=e,void(a=t);t["$<=>"](a)>0&&(i=e,a=t)},$.$each(),void 0===i?E:i):o($,"sort_by",[],s.$to_proc()).$reverse().$take(n):o($,"enum_for",["max_by",n],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:$})}),-1),_(A,"$min",(function n(r){var i,a=n.$$p||E,s=this;return n.$$p=null,null==r&&(r=E),t(r["$nil?"]())?(s.$each.$$p=a!==E?function(){var e=l.$destructure(arguments);if(void 0!==i){var t=a(e,i);t===E&&d.$raise(S("ArgumentError"),"comparison failed"),t<0&&(i=e)}else i=e}:function(){var e=l.$destructure(arguments);void 0!==i?l.$compare(e,i)<0&&(i=e):i=e},s.$each(),void 0===i?E:i):a!==E?o(s,"sort",[],(function(t,n){return null==t&&(t=E),null==n&&(n=E),e.yieldX(a,[t,n])})).$take(r):s.$sort().$take(r)}),-1),_(A,"$min_by",(function e(n){var i,a,s=e.$$p||E,$=this;return e.$$p=null,null==n&&(n=E),t(s)?t(n["$nil?"]())?($.$each.$$p=function(){var e=l.$destructure(arguments),t=r(s,e);if(void 0===i)return i=e,void(a=t);t["$<=>"](a)<0&&(i=e,a=t)},$.$each(),void 0===i?E:i):o($,"sort_by",[],s.$to_proc()).$take(n):o($,"enum_for",["min_by",n],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:$})}),-1),_(A,"$minmax",(function e(){var n,r=e.$$p||E;e.$$p=null,r=t(n=r)?n:o(d,"proc",[],(function(e,t){return null==e&&(e=E),null==t&&(t=E),e["$<=>"](t)}));var i=E,a=E,s=!0;return this.$each.$$p=function(){var e=l.$destructure(arguments);if(s)i=a=e,s=!1;else{var t=r.$call(i,e);t===E?d.$raise(S("ArgumentError"),"comparison failed"):t>0&&(i=e);var n=r.$call(a,e);n===E?d.$raise(S("ArgumentError"),"comparison failed"):n<0&&(a=e)}},this.$each(),[i,a]})),_(A,"$minmax_by",(function e(){var n=e.$$p||E,i=this;if(e.$$p=null,!t(n))return o(i,"enum_for",["minmax_by"],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:i});var a,s,$=E,u=E;return i.$each.$$p=function(){var e=l.$destructure(arguments),t=r(n,e);(void 0===a||t["$<=>"](a)<0)&&($=e,a=t),(void 0===s||t["$<=>"](s)>0)&&(u=e,s=t)},i.$each(),[$,u]})),_(A,"$none?",(function n(r){try{var i=c("return"),a=n.$$p||E,s=this;return n.$$p=null,t(void 0!==r)?o(s,"each",[],(function e(n){var a;if(a=D($(arguments)),!t(o(r,"public_send",["==="].concat(u(a)))))return E;i.$throw(!1,e.$$is_lambda)}),{$$arity:-1,$$ret:i}):o(s,"each",[],a!==E?function n(r){var s;if(s=$(arguments),!t(e.yieldX(a,u(s))))return E;i.$throw(!1,n.$$is_lambda)}:function e(n){var r,a;if(r=$(arguments),a=l.$destructure(r),!t(a))return E;i.$throw(!1,e.$$is_lambda)},{$$arity:-1,$$ret:i}),!0}catch(e){if(e===i)return e.$v;throw e}finally{i.is_orphan=!0}}),-1),_(A,"$one?",(function n(r){try{var i=c("return"),a=n.$$p||E,s=this,_=E;return n.$$p=null,_=0,t(void 0!==r)?o(s,"each",[],(function e(n){var a;return a=D($(arguments)),t(o(r,"public_send",["==="].concat(u(a))))?(_=v(_,1),t(f(_,1))?void i.$throw(!1,e.$$is_lambda):E):E}),{$$arity:-1,$$ret:i}):o(s,"each",[],a!==E?function n(r){var s;return s=$(arguments),t(e.yieldX(a,u(s)))?(_=v(_,1),t(f(_,1))?void i.$throw(!1,n.$$is_lambda):E):E}:function e(n){var r;return r=$(arguments),t(l.$destructure(r))?(_=v(_,1),t(f(_,1))?void i.$throw(!1,e.$$is_lambda):E):E},{$$arity:-1,$$ret:i}),_["$=="](1)}catch(e){if(e===i)return e.$v;throw e}finally{i.is_orphan=!0}}),-1),_(A,"$partition",(function e(){var n=e.$$p||E,i=this;if(e.$$p=null,n===E)return o(i,"enum_for",["partition"],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:i});var a=[],s=[];return i.$each.$$p=function(){var e=l.$destructure(arguments),i=r(n,e);t(i)?a.push(e):s.push(e)},i.$each(),[a,s]})),_(A,"$reject",(function e(){var n=e.$$p||E,i=this;if(e.$$p=null,n===E)return o(i,"enum_for",["reject"],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:i});var a=[];return i.$each.$$p=function(){var e=l.$destructure(arguments),i=r(n,e);t(i)||a.push(e)},i.$each(),a})),_(A,"$reverse_each",(function e(){var t=e.$$p||E,n=this;if(e.$$p=null,t===E)return o(n,"enum_for",["reverse_each"],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:n});var r=[];n.$each.$$p=function(){r.push(arguments)},n.$each();for(var a=r.length-1;a>=0;a--)i(t,r[a]);return r})),_(A,"$slice_before",(function e(n){var i=e.$$p||E;return e.$$p=null,t(void 0===n&&i===E)&&d.$raise(S("ArgumentError"),"both pattern and block are given"),t(void 0!==n&&i!==E||arguments.length>1)&&d.$raise(S("ArgumentError"),"wrong number of arguments ("+arguments.length+" expected 1)"),o(S("Enumerator"),"new",[],(function e(a){var s=null==e.$$s?this:e.$$s;null==a&&(a=E);var o=[];s.$each.$$p=i!==E?void 0===n?function(){var e=l.$destructure(arguments),n=r(i,e);t(n)&&o.length>0&&(a["$<<"](o),o=[]),o.push(e)}:function(){var e=l.$destructure(arguments),r=i(e,n.$dup());t(r)&&o.length>0&&(a["$<<"](o),o=[]),o.push(e)}:function(){var e=l.$destructure(arguments),r=n["$==="](e);t(r)&&o.length>0&&(a["$<<"](o),o=[]),o.push(e)},s.$each(),o.length>0&&a["$<<"](o)}),{$$s:this})}),-1),_(A,"$slice_after",(function e(n){var i=e.$$p||E;return e.$$p=null,t(void 0===n&&i===E)&&d.$raise(S("ArgumentError"),"both pattern and block are given"),t(void 0!==n&&i!==E||arguments.length>1)&&d.$raise(S("ArgumentError"),"wrong number of arguments ("+arguments.length+" expected 1)"),t(void 0!==n)&&(i=o(d,"proc",[],(function(e){return null==e&&(e=E),n["$==="](e)}))),o(S("Enumerator"),"new",[],(function e(n){var a,s=null==e.$$s?this:e.$$s;null==n&&(n=E),s.$each.$$p=function(){var e=l.$destructure(arguments),s=r(i,e);null==a&&(a=[]),t(s)?(a.push(e),n.$yield(a),a=null):a.push(e)},s.$each(),null!=a&&n.$yield(a)}),{$$s:this})}),-1),_(A,"$slice_when",(function e(){var n=e.$$p||E;return e.$$p=null,n===E&&d.$raise(S("ArgumentError"),"wrong number of arguments (0 for 1)"),o(S("Enumerator"),"new",[],(function e(r){var a=null==e.$$s?this:e.$$s;null==r&&(r=E);var s=E,o=E;a.$each_cons.$$p=function(){var e=l.$destructure(arguments),a=e[0],$=e[1],u=i(n,[a,$]);o=$,s===E&&(s=[]),t(u)?(s.push(a),r.$yield(s),s=[]):s.push(a)},a.$each_cons(2),s!==E&&(s.push(o),r.$yield(s))}),{$$s:this})})),_(A,"$sort",(function e(){var t,n=e.$$p||E;return e.$$p=null,t=this.$to_a(),n===E&&(n=x((function(e,t){return null==e&&(e=E),null==t&&(t=E),e["$<=>"](t)}))),o(t,"sort",[],n.$to_proc())})),_(A,"$sort_by",(function t(){var n,r=t.$$p||E,i=this;return t.$$p=null,r===E?o(i,"enum_for",["sort_by"],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:i}):(n=o(i,"map",[],(function(){var t;return t=l.$destructure(arguments),[e.yield1(r,t),t]})),o(n,"sort!",[],(function(e,t){return null==e&&(e=E),null==t&&(t=E),e[0]["$<=>"](t[0])})),o(n,"map!",[],(function(e){return null==e&&(e=E),e[1]})))})),_(A,"$sum",(function n(r){var i=n.$$p||E,a=E,s=E;return n.$$p=null,null==r&&(r=0),a=r,s=0,o(this,"each",[],(function(n){var r,o=E,c=E,_=E;return r=$(arguments),o=i!==E?e.yieldX(i,u(r)):l.$destructure(r),k([S(S("Float"),"INFINITY"),S(S("Float"),"INFINITY")["$-@"]()]["$include?"](o))&&t(o["$respond_to?"]("-"))?(c=b(o,s),_=v(a,c),s=b(b(_,a),c),a=_):a=v(a,o)}),-1),a}),-1),_(A,"$take",(function(e){return this.$first(e)})),_(A,"$take_while",(function n(){try{var r=c("return"),i=n.$$p||E,a=E;return n.$$p=null,t(i)?(a=[],o(this,"each",[],(function n(s){var o,u;return o=$(arguments),u=l.$destructure(o),t(e.yield1(i,u))||r.$throw(a,n.$$is_lambda),a.push(u)}),{$$arity:-1,$$ret:r})):this.$enum_for("take_while")}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}})),_(A,"$uniq",(function n(){var r=n.$$p||E,i=E;return n.$$p=null,i=new Map,o(this,"each",[],(function(n){var a,s,u,c;return a=$(arguments),u=l.$destructure(a),c=r!==E?e.yield1(r,u):u,t(i["$key?"](c))?E:(o(i,"[]=",s=[c,u]),s[s.length-1])}),-1),i.$values()})),_(A,"$tally",(function(e){var n;return e&&e!==E&&a(e),n=o(o(this,"group_by",[],"itself".$to_proc()),"transform_values",[],"count".$to_proc()),t(e)?(o(n,"each",[],(function(t,n){var r;return null==t&&(t=E),null==n&&(n=E),r=[t,v(e.$fetch(t,0),n)],o(e,"[]=",r),r[r.length-1]})),e):n}),-1),_(A,"$to_h",(function t(n){var r,i=t.$$p||E,a=this;if(t.$$p=null,r=$(arguments),i!==E)return o(o(a,"map",[],i.$to_proc()),"to_h",u(r));var s=new Map;return a.$each.$$p=function(){var t,n,r=l.$destructure(arguments),i=l["$coerce_to?"](r,S("Array"),"to_ary");i.$$is_array||d.$raise(S("TypeError"),"wrong element type "+r.$class()+" (expected array)"),2!==i.length&&d.$raise(S("ArgumentError"),"element has wrong array length (expected 2, was "+i.$length()+")"),t=i[0],n=i[1],e.hash_put(s,t,n)},a.$each.apply(a,r),s}),-1),_(A,"$to_set",(function e(t,n){var r,i,a=e.$$p||E,s=this;return e.$$p=null,(r=$(arguments)).length>0&&(i=r.shift()),null==i&&(i=z("Set")),o(i,"new",[s].concat(u(r)),a.$to_proc())}),-1),_(A,"$zip",(function e(t){var n;return e.$$p=null,n=$(arguments),o(this.$to_a(),"zip",u(n))}),-1),G(A,"find","detect"),G(A,"filter","find_all"),G(A,"flat_map","collect_concat"),G(A,"map","collect"),G(A,"member?","include?"),G(A,"reduce","inject"),G(A,"select","find_all"),G(A,"to_a","entries")}(0,[])},Opal.modules["corelib/enumerator/arithmetic_sequence"]=function(e){var t=e.klass,n=e.truthy,r=e.to_a,i=e.eqeq,a=e.Kernel,s=e.def,o=e.rb_gt,$=e.rb_lt,u=e.rb_le,l=e.rb_ge,c=e.rb_plus,_=e.rb_minus,d=e.eqeqeq,p=e.not,f=e.rb_times,h=e.rb_divide,m=e.alias,g=e.nil,v=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(b,y,w){var x=t("::",null,"Enumerator"),k=[x].concat(w);return function(b,y,w){var x=t(b,y,"ArithmeticSequence"),k=[x].concat(w),G=e.$r(k),E=x.$$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(x.$$prototype,"$$is_arithmetic_seq",!0);var S=1/0;return s(x,"$initialize",(function(t,s,o){var $,u=this,l=g;return null==o&&(o="step"),u.creation_method=o,n(t["$is_a?"](v("Array")))?($=[].concat(r(t)),u.step_arg1=null==$[0]?g:$[0],u.step_arg2=null==$[1]?g:$[1],u.topfx=null==$[2]?g:$[2],u.bypfx=null==$[3]?g:$[3],u.receiver_num=s,u.step=1,u.range=n(u.step_arg2)?(u.step=u.step_arg2,e.Range.$new(u.receiver_num,u.step_arg1,!1)):n(u.step_arg1)?e.Range.$new(u.receiver_num,u.step_arg1,!1):e.Range.$new(u.receiver_num,g,!1)):(n(s)||(u.skipped_arg=!0),$=[t,n(l=s)?l:1],u.range=$[0],u.step=$[1]),u.object=u,i(u.step,0)&&a.$raise(G("ArgumentError"),"step can't be 0"),n(u.step["$respond_to?"]("to_int"))?g:a.$raise(G("ArgumentError"),"no implicit conversion of "+u.step.$class()+" into Integer")}),-2),x.$attr_reader("step"),s(x,"$begin",(function(){return this.range.$begin()})),s(x,"$end",(function(){return this.range.$end()})),s(x,"$exclude_end?",(function(){return this.range["$exclude_end?"]()})),s(x,"$_lesser_than_end?",(function(e){var t,r,i=this;return t=n(r=i.$end())?r:S,n(o(i.$step(),0))?n(i["$exclude_end?"]())?$(e,t):u(e,t):n(i["$exclude_end?"]())?o(e,t):l(e,t)})),s(x,"$_greater_than_begin?",(function(e){var t,r;return t=n(r=this.$begin())?r:S["$-@"](),n(o(this.$step(),0))?o(e,t):$(e,t)})),s(x,"$first",(function(e){var t=this,r=g,i=g,a=g;if(r=n(i=t.$begin())?i:S["$-@"](),!n(e))return n(t["$_lesser_than_end?"](r))?r:g;for(a=[];n(n(i=t["$_lesser_than_end?"](r))?o(e,0):i);)a["$<<"](r),r=c(r,t.$step()),e=_(e,1);return a}),-1),s(x,"$each",(function t(){var r,i=t.$$p||g,s=this,o=g;if(t.$$p=null,i===g)return s;for(d(g,s.$begin())&&a.$raise(G("TypeError"),"nil can't be coerced into Integer"),o=n(r=s.$begin())?r:S["$-@"]();n(s["$_lesser_than_end?"](o));)e.yield1(i,o),o=c(o,s.$step());return s})),s(x,"$last",(function(e){var t=this,r=g,i=g,s=g;if(d(S,r=t.$end())||d(S["$-@"](),r)?a.$raise(v("FloatDomainError"),t.$end()):d(g,r)&&a.$raise(v("RangeError"),"cannot get the last element of endless arithmetic sequence"),i=_(t.$end(),_(t.$end(),t.$begin())["$%"](t.$step())),n(t["$_lesser_than_end?"](i))||(i=_(i,t.$step())),!n(e))return n(t["$_greater_than_begin?"](i))?i:g;for(s=[];n(n(r=t["$_greater_than_begin?"](i))?o(e,0):r);)s["$<<"](i),i=_(i,t.$step()),e=_(e,1);return s.$reverse()}),-1),s(x,"$size",(function(){var e,t=this,r=g;return e=n(o(t.$step(),0))?1:-1,p(t["$_lesser_than_end?"](t.$begin()))?0:n([S["$-@"](),S]["$include?"](t.$step()))?1:n([f(S["$-@"](),e),g]["$include?"](t.$begin()))||n([f(S,e),g]["$include?"](t.$end()))?S:(r=_(t.$end(),_(t.$end(),t.$begin())["$%"](t.$step())),n(t["$_lesser_than_end?"](r))||(r=_(r,t.$step())),c(h(_(r,t.$begin()),t.$step()).$abs().$to_i(),1))})),s(x,"$==",(function(e){var t,r,i,a,s=this;return n(t=n(r=n(i=n(a=s.$class()["$=="](e.$class()))?s.$begin()["$=="](e.$begin()):a)?s.$end()["$=="](e.$end()):i)?s.$step()["$=="](e.$step()):r)?s["$exclude_end?"]()["$=="](e["$exclude_end?"]()):t})),s(x,"$hash",(function(){var e=this;return[G("ArithmeticSequence"),e.$begin(),e.$end(),e.$step(),e["$exclude_end?"]()].$hash()})),s(x,"$inspect",(function(){var e=this,t=g;return n(e.receiver_num)?(t=n(e.step_arg2)?"("+e.topfx+e.step_arg1.$inspect()+", "+e.bypfx+e.step_arg2.$inspect()+")":n(e.step_arg1)?"("+e.topfx+e.step_arg1.$inspect()+")":g,"("+e.receiver_num.$inspect()+"."+e.creation_method+t+")"):(t=n(e.skipped_arg)?g:"("+e.step+")","(("+e.range.$inspect()+")."+e.creation_method+t+")")})),m(x,"===","=="),m(x,"eql?","==")}(x,x,k)}(0,0,[])},Opal.modules["corelib/enumerator/chain"]=function(e){var t,n=e.deny_frozen_access,r=e.klass,i=e.slice,a=e.def,s=e.send,o=e.to_a,$=e.truthy,u=e.rb_plus,l=e.thrower,c=e.nil,_=e.$$$;return e.add_stubs("to_enum,size,each,<<,to_proc,include?,+,reverse_each,respond_to?,rewind,inspect"),function(e,t){var d=r(e,t,"Chain"),p=d.$$prototype;return p.enums=p.iterated=c,a(d,"$initialize",(function(e){var t,r=this;return t=i(arguments),n(r),r.enums=t,r.iterated=[],r.object=r}),-1),a(d,"$each",(function e(t){var n,r,a=e.$$p||c,$=this;return e.$$p=null,n=i(arguments),r=n,a===c?s($,"to_enum",["each"].concat(o(r)),(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:$}):(s($.enums,"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.iterated&&(n.iterated=c),null==t&&(t=c),n.iterated["$<<"](t),s(t,"each",o(r),a.$to_proc())}),{$$s:$}),$)}),-1),a(d,"$size",(function(e){try{var t,n,r=l("return"),a=c;return t=i(arguments),n=t,a=0,s(this.enums,"each",[],(function e(t){var i;return null==t&&(t=c),i=s(t,"size",o(n)),$([c,_(_("Float"),"INFINITY")]["$include?"](i))&&r.$throw(i,e.$$is_lambda),a=u(a,i)}),{$$ret:r}),a}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}}),-1),a(d,"$rewind",(function(){var e=this;return s(e.iterated,"reverse_each",[],(function(e){return null==e&&(e=c),$(e["$respond_to?"]("rewind"))?e.$rewind():c})),e.iterated=[],e})),a(d,"$inspect",(function(){return"#<Enumerator::Chain: "+this.enums.$inspect()+">"}))}(t=r("::",null,"Enumerator"),t)},Opal.modules["corelib/enumerator/generator"]=function(e){var t=e.deny_frozen_access,n=e.klass,r=e.truthy,i=e.Kernel,a=e.def,s=e.slice,o=e.send,$=[],u=e.nil,l=e.$$$;return e.add_stubs("include,raise,new,to_proc"),function($,c,_){var d=[n($,null,"Enumerator")].concat(_);return function($,c,_){var d=n($,null,"Generator"),p=[d].concat(_),f=e.$r(p);return d.$$prototype.block=u,d.$include(l("Enumerable")),a(d,"$initialize",(function e(){var n=e.$$p||u;return e.$$p=null,t(this),r(n)||i.$raise(l("LocalJumpError"),"no block given"),this.block=n})),a(d,"$each",(function t(n){var r,i,a=t.$$p||u;t.$$p=null,r=s(arguments),i=o(f("Yielder"),"new",[],a.$to_proc());try{r.unshift(i),e.yieldX(this.block,r)}catch(e){if(e&&"breaker"==e.$thrower_type)return e.$v;throw e}return this}),-1)}(d[0],0,d)}($[0],0,$)},Opal.modules["corelib/enumerator/lazy"]=function(e){var t=e.truthy,n=e.coerce_to,r=e.yield1,i=e.yieldX,a=e.deny_frozen_access,s=e.klass,o=e.slice,$=e.send2,u=e.find_super,l=e.to_a,c=e.defs,_=e.Kernel,d=e.send,p=e.def,f=e.return_self,h=e.Opal,m=e.rb_lt,g=e.eqeqeq,v=e.rb_plus,b=e.alias,y=e.nil,w=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(x,k,G){var E=s("::",null,"Enumerator"),S=[E].concat(G);return function(x,k,G){var E=s(x,k,"Lazy"),S=[E].concat(G),O=e.$r(S);return E.$$prototype.enumerator=y,s(E,w("Exception"),"StopLazyError"),c(E,"$for",(function e(t,n){var r,i=e.$$p||y,a=y;return e.$$p=null,r=o(arguments,1),(a=$(this,u(this,"for",e,!1,!0),"for",[t].concat(l(r)),i)).enumerator=t,a}),-2),p(E,"$initialize",(function t(n,r){var s=t.$$p||y,c=this;return t.$$p=null,null==r&&(r=y),a(c),s===y&&_.$raise(w("ArgumentError"),"tried to call lazy new without a block"),c.enumerator=n,$(c,u(c,"initialize",t,!1,!0),"initialize",[r],(function(t,r){var a;null==t&&(t=y),a=o(arguments,1);try{return d(n,"each",l(a),(function(e){var n;(n=o(arguments)).unshift(t),i(s,n)}),-1)}catch(t){if(!e.rescue(t,[O("StopLazyError")]))throw t;try{return y}finally{e.pop_exception(t)}}}),-2)}),-2),p(E,"$lazy",f),p(E,"$collect",(function e(){var n=e.$$p||y;return e.$$p=null,t(n)||_.$raise(w("ArgumentError"),"tried to call lazy map without a block"),d(O("Lazy"),"new",[this,this.$enumerator_size()],(function(e,t){var r;null==e&&(e=y),r=o(arguments,1);var a=i(n,r);e.$yield(a)}),-2)})),p(E,"$collect_concat",(function e(){var n=e.$$p||y;return e.$$p=null,t(n)||_.$raise(w("ArgumentError"),"tried to call lazy map without a block"),d(O("Lazy"),"new",[this,y],(function(e,t){var r;null==e&&(e=y),r=o(arguments,1);var a=i(n,r);a["$respond_to?"]("force")&&a["$respond_to?"]("each")?d(a,"each",[],(function(t){return null==t&&(t=y),e.$yield(t)})):h.$try_convert(a,w("Array"),"to_ary")===y?e.$yield(a):d(a,"each",[],(function(t){return null==t&&(t=y),e.$yield(t)}))}),-2)})),p(E,"$drop",(function(e){var r,i,a=y;return e=n(e,w("Integer"),"to_int"),t(m(e,0))&&_.$raise(w("ArgumentError"),"attempt to drop negative size"),r=this.$enumerator_size(),i=g(w("Integer"),r)&&t(m(e,r))?e:r,a=0,d(O("Lazy"),"new",[this,i],(function(n,r){var i;return null==n&&(n=y),i=o(arguments,1),t(m(a,e))?a=v(a,1):d(n,"yield",l(i))}),-2)})),p(E,"$drop_while",(function e(){var n=e.$$p||y,r=y;return e.$$p=null,t(n)||_.$raise(w("ArgumentError"),"tried to call lazy drop_while without a block"),r=!0,d(O("Lazy"),"new",[this,y],(function(e,a){var s;if(null==e&&(e=y),s=o(arguments,1),!t(r))return d(e,"yield",l(s));var $=i(n,s);t($)||(r=!1,d(e,"yield",l(s)))}),-2)})),p(E,"$enum_for",(function e(t,n){var r,i,a,s=e.$$p||y,$=this;return e.$$p=null,(r=o(arguments)).length>0&&(i=r.shift()),null==i&&(i="each"),a=r,d($.$class(),"for",[$,i].concat(l(a)),s.$to_proc())}),-1),p(E,"$find_all",(function e(){var n=e.$$p||y;return e.$$p=null,t(n)||_.$raise(w("ArgumentError"),"tried to call lazy select without a block"),d(O("Lazy"),"new",[this,y],(function(e,r){var a,s;null==e&&(e=y),a=o(arguments,1);var $=i(n,s=a);t($)&&d(e,"yield",l(s))}),-2)})),p(E,"$grep",(function e(n){var i=e.$$p||y;return e.$$p=null,t(i)?d(O("Lazy"),"new",[this,y],(function(e,a){var s;null==e&&(e=y),s=o(arguments,1);var $=h.$destructure(s),u=n["$==="]($);t(u)&&(u=r(i,$),e.$yield(r(i,$)))}),-2):d(O("Lazy"),"new",[this,y],(function(e,r){var i;null==e&&(e=y),i=o(arguments,1);var a=h.$destructure(i),s=n["$==="](a);t(s)&&e.$yield(a)}),-2)})),p(E,"$reject",(function e(){var n=e.$$p||y;return e.$$p=null,t(n)||_.$raise(w("ArgumentError"),"tried to call lazy reject without a block"),d(O("Lazy"),"new",[this,y],(function(e,r){var a,s;null==e&&(e=y),a=o(arguments,1);var $=i(n,s=a);t($)||d(e,"yield",l(s))}),-2)})),p(E,"$take",(function(e){var r,i,a=y;return e=n(e,w("Integer"),"to_int"),t(m(e,0))&&_.$raise(w("ArgumentError"),"attempt to take negative size"),r=this.$enumerator_size(),i=g(w("Integer"),r)&&t(m(e,r))?e:r,a=0,d(O("Lazy"),"new",[this,i],(function(n,r){var i;return null==n&&(n=y),i=o(arguments,1),t(m(a,e))?(d(n,"yield",l(i)),a=v(a,1)):_.$raise(O("StopLazyError"))}),-2)})),p(E,"$take_while",(function e(){var n=e.$$p||y;return e.$$p=null,t(n)||_.$raise(w("ArgumentError"),"tried to call lazy take_while without a block"),d(O("Lazy"),"new",[this,y],(function(e,r){var a,s;null==e&&(e=y),a=o(arguments,1);var $=i(n,s=a);t($)?d(e,"yield",l(s)):_.$raise(O("StopLazyError"))}),-2)})),p(E,"$inspect",(function(){return"#<"+this.$class()+": "+this.enumerator.$inspect()+">"})),b(E,"force","to_a"),b(E,"filter","find_all"),b(E,"flat_map","collect_concat"),b(E,"map","collect"),b(E,"select","find_all"),b(E,"to_enum","enum_for")}(E,E,S)}(0,0,[])},Opal.modules["corelib/enumerator/yielder"]=function(e){var t,n=e.klass,r=e.def,i=e.slice,a=e.send,s=e.to_a,o=[],$=e.nil;return e.add_stubs("yield,proc"),t=o,function(t,o){var u=n(t,null,"Yielder");return u.$$prototype.block=$,r(u,"$initialize",(function e(){var t=e.$$p||$;return e.$$p=null,this.block=t,this})),r(u,"$yield",(function(t){var n;n=i(arguments);var r=e.yieldX(this.block,n);if(r&&"break"==r.$thrower_type)throw r;return r}),-1),r(u,"$<<",(function(e){return this.$yield(e),this})),r(u,"$to_proc",(function(){return a(this,"proc",[],(function e(t){var n,r=null==e.$$s?this:e.$$s;return n=i(arguments),a(r,"yield",s(n))}),{$$arity:-1,$$s:this})}))}([n(o[0],null,"Enumerator")].concat(t)[0])},Opal.modules["corelib/enumerator"]=function(e){var t=e.slice,n=e.coerce_to,r=e.deny_frozen_access,i=e.klass,a=e.defs,s=e.truthy,o=e.send,$=e.not,u=e.def,l=e.rb_plus,c=e.to_a,_=e.Opal,d=e.send2,p=e.find_super,f=e.rb_ge,h=e.Kernel,m=e.rb_le,g=e.alias,v=e.top,b=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"),v.$require("corelib/enumerable"),function(v,w,x){var k=i("::",null,"Enumerator"),G=[k].concat(x),E=e.$r(G),S=k.$$prototype;return S.size=S.args=S.object=S.method=S.values=S.cursor=b,k.$include(y("Enumerable")),k.$$prototype.$$is_enumerator=!0,a(k,"$for",(function e(n,r,i){var a,s,o,$=e.$$p||b;e.$$p=null,(a=t(arguments,1)).length>0&&(s=a.shift()),null==s&&(s="each"),o=a;var u=this.$allocate();return u.object=n,u.size=$,u.method=s,u.args=o,u.cursor=0,u}),-2),u(k,"$initialize",(function e(i){var a=e.$$p||b,u=this;return e.$$p=null,t(arguments),r(u),u.cursor=0,s(a)?(u.object=o(E("Generator"),"new",[],a.$to_proc()),u.method="each",u.args=[],u.size=arguments[0]||b,s(u.size)&&$(u.size["$respond_to?"]("call"))?u.size=n(u.size,y("Integer"),"to_int"):b):(u.object=arguments[0],u.method=arguments[1]||"each",u.args=t(arguments,2),u.size=b)}),-1),u(k,"$each",(function e(n){var r,i=e.$$p||b,a=this;return e.$$p=null,r=t(arguments),s(i["$nil?"]())&&s(r["$empty?"]())?a:(r=l(a.args,r),s(i["$nil?"]())?o(a.$class(),"new",[a.object,a.method].concat(c(r))):o(a.object,"__send__",[a.method].concat(c(r)),i.$to_proc()))}),-1),u(k,"$size",(function(){var e=this;return s(e.size["$respond_to?"]("call"))?o(e.size,"call",c(e.args)):e.size})),u(k,"$with_index",(function e(t){var r=e.$$p||b,i=this;if(e.$$p=null,null==t&&(t=0),t=s(t)?n(t,y("Integer"),"to_int"):0,!s(r))return o(i,"enum_for",["with_index",t],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:i});var a=t;return i.$each.$$p=function(){var e=_.$destructure(arguments),t=r(e,a);return a++,t},i.$each()}),-1),u(k,"$each_with_index",(function e(){var t=e.$$p||b,n=this;return e.$$p=null,t===b?o(n,"enum_for",["each_with_index"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n}):(d(n,p(n,"each_with_index",e,!1,!0),"each_with_index",[],t),n.object)})),u(k,"$rewind",(function(){return this.cursor=0,this})),u(k,"$peek_values",(function(){var e,n=this;return n.values=s(e=n.values)?e:o(n,"map",[],(function(e){return t(arguments)}),-1),s(f(n.cursor,n.values.$length()))&&h.$raise(y("StopIteration"),"iteration reached an end"),n.values["$[]"](n.cursor)})),u(k,"$peek",(function(){var e=b;return e=this.$peek_values(),s(m(e.$length(),1))?e["$[]"](0):e})),u(k,"$next_values",(function(){var e,t=this;return e=t.$peek_values(),t.cursor=l(t.cursor,1),e})),u(k,"$next",(function(){var e=b;return e=this.$next_values(),s(m(e.$length(),1))?e["$[]"](0):e})),u(k,"$feed",(function(e){return this.$raise(E("NotImplementedError"),"Opal doesn't support Enumerator#feed")})),u(k,"$+",(function(e){return y(y("Enumerator"),"Chain").$new(this,e)})),u(k,"$inspect",(function(){var e=this,t=b;return t="#<"+e.$class()+": "+e.object.$inspect()+":"+e.method,s(e.args["$any?"]())&&(t=l(t,"("+e.args.$inspect()["$[]"](y("Range").$new(1,-2))+")")),l(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,n=e.truthy,r=e.Kernel,i=e.def,a=e.to_ary,s=e.return_self,o=e.rb_minus,$=e.rb_times,u=e.rb_lt,l=e.eqeq,c=e.rb_divide,_=e.return_val,d=e.Opal,p=e.slice,f=e.extract_kwargs,h=e.ensure_kwargs,m=e.hash_get,g=e.not,v=e.send,b=e.rb_ge,y=e.rb_le,w=e.rb_plus,x=e.rb_gt,k=e.alias,G=e.top,E=e.nil,S=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"),G.$require("corelib/comparable"),function(G,O){var M=t("::",null,"Numeric");return M.$include(S("Comparable")),i(M,"$coerce",(function(e){var t=this;return n(e["$instance_of?"](t.$class()))?[e,t]:[r.$Float(e),r.$Float(t)]})),i(M,"$__coerced__",(function(e,t){var i,s,o=E,$=E;if(n(t["$respond_to?"]("coerce")))return s=t.$coerce(this),o=null==(i=a(s))[0]?E:i[0],$=null==i[1]?E:i[1],o.$__send__(e,$);switch(e.valueOf()){case"+":case"-":case"*":case"/":case"%":case"&":case"|":case"^":case"**":return r.$raise(S("TypeError"),t.$class()+" can't be coerced into Numeric");case">":case">=":case"<":case"<=":case"<=>":return r.$raise(S("ArgumentError"),"comparison of "+this.$class()+" with "+t.$class()+" failed");default:return E}})),i(M,"$<=>",(function(e){return n(this["$equal?"](e))?0:E})),i(M,"$+@",s),i(M,"$-@",(function(){return o(0,this)})),i(M,"$%",(function(e){return o(this,$(e,this.$div(e)))})),i(M,"$abs",(function(){var e=this;return n(u(e,0))?e["$-@"]():e})),i(M,"$abs2",(function(){return $(this,this)})),i(M,"$angle",(function(){return n(u(this,0))?S(S("Math"),"PI"):0})),i(M,"$ceil",(function(e){return null==e&&(e=0),this.$to_f().$ceil(e)}),-1),i(M,"$conj",s),i(M,"$denominator",(function(){return this.$to_r().$denominator()})),i(M,"$div",(function(e){return l(e,0)&&r.$raise(S("ZeroDivisionError"),"divided by o"),c(this,e).$floor()})),i(M,"$divmod",(function(e){return[this.$div(e),this["$%"](e)]})),i(M,"$fdiv",(function(e){return c(this.$to_f(),e)})),i(M,"$floor",(function(e){return null==e&&(e=0),this.$to_f().$floor(e)}),-1),i(M,"$i",(function(){return r.$Complex(0,this)})),i(M,"$imag",_(0)),i(M,"$integer?",_(!1)),i(M,"$nonzero?",(function(){return n(this["$zero?"]())?E:this})),i(M,"$numerator",(function(){return this.$to_r().$numerator()})),i(M,"$polar",(function(){return[this.$abs(),this.$arg()]})),i(M,"$quo",(function(e){return c(d["$coerce_to!"](this,S("Rational"),"to_r"),e)})),i(M,"$real",s),i(M,"$real?",_(!0)),i(M,"$rect",(function(){return[this,0]})),i(M,"$round",(function(e){return this.$to_f().$round(e)}),-1),i(M,"$step",(function t(i,a,s){var o,$,u,l,c,_,x=t.$$p||E,k=this,G=E;function O(){l===E&&r.$raise(S("TypeError"),"step must be numeric"),null!=l&&l["$=="](0)&&r.$raise(S("ArgumentError"),"step can't be 0"),l!==E&&null!=l||(l=1);var e=l["$<=>"](0);e===E&&r.$raise(S("ArgumentError"),"0 can't be coerced into "+l.$class()),u!==E&&null!=u||(u=e>0?S(S("Float"),"INFINITY"):S(S("Float"),"INFINITY")["$-@"]()),d.$compare(k,u)}function M(){if(l>0&&k>u||l<0&&k<u)return 0;if(l===1/0||l===-1/0)return 1;var e=Math.abs,t=Math.floor,n=(e(k)+e(u)+e(u-k))/e(l)*S(S("Float"),"EPSILON");return n===1/0||n===-1/0?0:(n>.5&&(n=.5),t((u-k)/l+n)+1)}if(t.$$p=null,o=p(arguments),$=f(o),$=h($),o.length>0&&(u=o.shift()),o.length>0&&(l=o.shift()),c=m($,"to"),_=m($,"by"),void 0!==u&&void 0!==c&&r.$raise(S("ArgumentError"),"to is given twice"),void 0!==l&&void 0!==_&&r.$raise(S("ArgumentError"),"step is given twice"),void 0!==c&&(u=c),void 0!==_&&(l=_),void 0===u&&(u=E),x===E)return(g(u)||n(u["$is_a?"](S("Numeric"))))&&(g(l)||n(l["$is_a?"](S("Numeric"))))?S(S("Enumerator"),"ArithmeticSequence").$new([u,l,n(c)?"to: ":E,n(_)?"by: ":E],k):v(k,"enum_for",["step",u,l],function(){if(O(),0===l)return 1/0;if(l%1!=0)return M();if(l>0&&k>u||l<0&&k<u)return 0;var e=Math.ceil,t=Math.abs;return e((t(k-u)+1)/t(l))}.$to_proc());O();var A=l["$negative?"](),N=l["$=="](0)||u===1/0&&!A||u===-1/0&&A;if(k.$$is_number&&l.$$is_number&&u.$$is_number){if(k%1!=0||!N&&u%1!=0||l%1!=0){var z=k.$to_f().valueOf();l=l.$to_f().valueOf(),u=u.$to_f().valueOf();var D=M();if(isFinite(l))if(0===l)for(;;)x(z);else for(var I=0;I<D;I++){var T=I*l+k;(l>=0?u<T:u>T)&&(T=u),x(T)}else 0!==D&&x(z);return k}var R=k;if(N)for(;;R+=l)x(R);else if(A)for(;R>=u;R+=l)x(R);else for(;R<=u;R+=l)x(R);return k}for(G=k;n(A?b(G,u):y(G,u));)e.yield1(x,G),G=w(G,l)}),-1),i(M,"$to_c",(function(){return r.$Complex(this,0)})),i(M,"$to_int",(function(){return this.$to_i()})),i(M,"$truncate",(function(e){return null==e&&(e=0),this.$to_f().$truncate(e)}),-1),i(M,"$zero?",(function(){return this["$=="](0)})),i(M,"$positive?",(function(){return x(this,0)})),i(M,"$negative?",(function(){return u(this,0)})),i(M,"$dup",s),i(M,"$clone",(function(e){return e=h(e),null==m(e,"freeze")&&!0,this}),-1),i(M,"$finite?",_(!0)),i(M,"$infinite?",_(E)),k(M,"arg","angle"),k(M,"conjugate","conj"),k(M,"imaginary","imag"),k(M,"magnitude","abs"),k(M,"modulo","%"),k(M,"phase","arg"),k(M,"rectangular","rect")}()},Opal.modules["corelib/array"]=function(e){var t=e.truthy,n=e.falsy,r=e.yield1,i=e.hash_get,a=e.hash_put,s=e.hash_delete,o=e.coerce_to,$=e.respond_to,u=e.deny_frozen_access,l=e.freeze,c=e.opal32_init,_=e.opal32_add,d=e.klass,p=e.slice,f=e.defs,h=e.Kernel,m=e.def,g=e.Opal,v=e.eqeqeq,b=e.send2,y=e.find_super,w=e.send,x=e.rb_gt,k=e.rb_times,G=e.eqeq,E=e.rb_minus,S=e.to_a,O=e.to_ary,M=e.gvars,A=e.rb_ge,N=e.assign_ivar,z=e.rb_lt,D=e.return_self,I=e.neqeq,T=e.alias,R=e.top,q=e.nil,C=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"),R.$require("corelib/enumerable"),R.$require("corelib/numeric"),function(R,j,B){var P,L=d("::",Array,"Array"),H=[L].concat(B),F=e.$r(H);function U(e,t,n){for(var i,a=null,s=new Array(e.length),o=0,$=0;o<e.length;o++){if(!a)try{i=r(n,e[o])}catch(e){a=e}(a||t(i))&&(s[$]=e[o],$+=1)}if($!==o&&(e.splice.apply(e,[0,s.length].concat(s)),e.splice($,s.length)),a)throw a}function Y(e){return e.$$is_array||(e=o(e,C("Array"),"to_ary")),e.$to_a()}function V(e,t){var n=t.length;if(n>6&&n<32767)e.push.apply(e,t);else for(var r=0;r<n;r++)e.push(t[r])}function K(t,n){var r,i,a,s=t.length;return r=n.excl,i=n.begin===q?0:o(n.begin,e.Integer,"to_int"),a=n.end===q?-1:o(n.end,e.Integer,"to_int"),i<0&&(i+=s)<0?q:(n.excl_rev&&n.begin!==q&&(i+=1),i>s?q:a<0&&(a+=s)<0?[]:(r&&n.end!==q||(a+=1),t.slice(i,a)))}function W(e,t){return e===t||0===t?1:t>0&&e>t?W(e-1,t-1)+W(e-1,t):0}L.$include(C("Enumerable")),e.prop(L.$$prototype,"$$is_array",!0),f(L,"$[]",(function(t){var n,r,i;return n=p(arguments),r=n,(i=this).$$name===e.Array?r:i.$allocate().$replace(r.$to_a())}),-1),m(L,"$initialize",(function e(t,n){var r,i,a=e.$$p||q,s=this;if(e.$$p=null,null==t&&(t=q),null==n&&(n=q),u(s),n!==q&&a!==q&&h.$warn("warning: block supersedes default value argument"),t>C(C("Integer"),"MAX")&&h.$raise(C("ArgumentError"),"array size too big"),arguments.length>2&&h.$raise(C("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..2)"),0===arguments.length)return s.length>0&&s.splice(0,s.length),s;if(1===arguments.length){if(t.$$is_array)return s.$replace(t.$to_a()),s;if(t["$respond_to?"]("to_ary"))return s.$replace(t.$to_ary()),s}if((t=o(t,C("Integer"),"to_int"))<0&&h.$raise(C("ArgumentError"),"negative array size"),s.splice(0,s.length),a===q)for(r=0;r<t;r++)s.push(n);else for(r=0;r<t;r++)i=a(r),s[r]=i;return s}),-1),f(L,"$try_convert",(function(e){return g["$coerce_to?"](e,C("Array"),"to_ary")})),m(L,"$&",(function(e){var t=this;if(e=Y(e),0===t.length||0===e.length)return[];var n,r,i,o=[],$=new Map;for(n=0,r=e.length;n<r;n++)a($,e[n],!0);for(n=0,r=t.length;n<r;n++)i=t[n],void 0!==s($,i)&&o.push(i);return o})),m(L,"$|",(function(e){e=Y(e);var t,n,r=new Map;for(t=0,n=this.length;t<n;t++)a(r,this[t],!0);for(t=0,n=e.length;t<n;t++)a(r,e[t],!0);return r.$keys()})),m(L,"$*",(function(e){if(t(e["$respond_to?"]("to_str")))return this.$join(e.$to_str());e=o(e,C("Integer"),"to_int"),t(e<0)&&h.$raise(C("ArgumentError"),"negative argument");for(var n=[],r=this.$to_a(),i=0;i<e;i++)n=n.concat(r);return n})),m(L,"$+",(function(e){return e=Y(e),this.concat(e)})),m(L,"$-",(function(e){var n=this;if(e=Y(e),t(0===n.length))return[];if(t(0===e.length))return n.slice();var r,s,o,$=[],u=new Map;for(r=0,s=e.length;r<s;r++)a(u,e[r],!0);for(r=0,s=n.length;r<s;r++)o=n[r],void 0===i(u,o)&&$.push(o);return $})),m(L,"$<<",(function(e){var t=this;return u(t),t.push(e),t})),m(L,"$<=>",(function(e){var n=this;if(v(C("Array"),e))e=e.$to_a();else{if(!t(e["$respond_to?"]("to_ary")))return q;e=e.$to_ary().$to_a()}if(n===e)return 0;for(var r=Math.min(n.length,e.length),i=0;i<r;i++){var a=n[i]["$<=>"](e[i]);if(0!==a)return a}return n.length["$<=>"](e.length)})),m(L,"$==",(function(e){var t={};return function e(n,r){var i,a,s,o;if(n===r)return!0;if(!r.$$is_array)return!!$(r,"$to_ary")&&r["$=="](n);if(n.$$constructor!==Array&&(n=n.$to_a()),r.$$constructor!==Array&&(r=r.$to_a()),n.length!==r.length)return!1;for(t[n.$object_id()]=!0,i=0,a=n.length;i<a;i++)if(s=n[i],o=r[i],s.$$is_array){if(o.$$is_array&&o.length!==s.length)return!1;if(!t.hasOwnProperty(s.$object_id())&&!e(s,o))return!1}else if(!s["$=="](o))return!1;return!0}(this,e)})),m(L,"$[]",(function(t,n){var r=this;return t.$$is_range?K(r,t):t.$$is_arithmetic_seq?function(e,t){var n,r=[],i=0;for(n=t.step<0?K(e,{begin:t.range.end,end:t.range.begin,excl:!1,excl_rev:t.range.excl}).$reverse():K(e,t.range);i<n.length;)r.push(n[i]),i+=Math.abs(t.step);return r}(r,t):function(t,n,r){var i=t.length;return(n=o(n,e.Integer,"to_int"))<0&&(n+=i)<0?q:void 0===r?n>=i||n<0?q:t[n]:(r=o(r,e.Integer,"to_int"))<0||n>i||n<0?q:t.slice(n,n+r)}(r,t,n)}),-2),m(L,"$[]=",(function(t,n,r){var i=this,a=q,s=q;u(i),a=q;var $,l,c=i.length;if(t.$$is_range){a=n.$$is_array?n.$to_a():n["$respond_to?"]("to_ary")?n.$to_ary().$to_a():[n];var _=t.excl,d=t.begin===q?0:o(t.begin,e.Integer,"to_int"),p=t.end===q?-1:o(t.end,e.Integer,"to_int");if(d<0&&(d+=c)<0&&h.$raise(C("RangeError"),t.$inspect()+" out of range"),p<0&&(p+=c),_&&t.end!==q||(p+=1),d>c)for($=c;$<d;$++)i[$]=q;return p<0?i.splice.apply(i,[d,0].concat(a)):i.splice.apply(i,[d,p-d].concat(a)),n}if(void 0===r?s=1:(s=n,a=(n=r).$$is_array?n.$to_a():n["$respond_to?"]("to_ary")?n.$to_ary().$to_a():[n]),t=o(t,C("Integer"),"to_int"),s=o(s,C("Integer"),"to_int"),t<0&&(l=t,(t+=c)<0&&h.$raise(C("IndexError"),"index "+l+" too small for array; minimum "+-i.length)),s<0&&h.$raise(C("IndexError"),"negative length ("+s+")"),t>c)for($=c;$<t;$++)i[$]=q;return void 0===r?i[t]=n:i.splice.apply(i,[t,s].concat(a)),n}),-3),m(L,"$any?",(function e(t){var n=e.$$p||q,r=this;return e.$$p=null,0!==r.length&&b(r,y(r,"any?",e,!1,!0),"any?",[t],n)}),-1),m(L,"$assoc",(function(e){for(var t,n=0,r=this.length;n<r;n++)if((t=this[n]).length&&t[0]["$=="](e))return t;return q})),m(L,"$at",(function(e){var t=this;return(e=o(e,C("Integer"),"to_int"))<0&&(e+=t.length),e<0||e>=t.length?q:t[e]})),m(L,"$bsearch_index",(function e(){var t=e.$$p||q,n=this;if(e.$$p=null,t===q)return n.$enum_for("bsearch_index");for(var i,a,s,o=0,$=n.length,u=!1,l=q;o<$;){if(a=n[i=o+Math.floor(($-o)/2)],!0===(s=r(t,a)))l=i,u=!0;else if(!1===s||s===q)u=!1;else if(s.$$is_number){if(0===s)return i;u=s<0}else h.$raise(C("TypeError"),"wrong argument type "+s.$class()+" (must be numeric, true, false or nil)");u?$=i:o=i+1}return l})),m(L,"$bsearch",(function e(){var t,n=e.$$p||q,r=this;return e.$$p=null,n===q?r.$enum_for("bsearch"):null!=(t=w(r,"bsearch_index",[],n.$to_proc()))&&t.$$is_number?r[t]:t})),m(L,"$cycle",(function e(n){var i,a,s=e.$$p||q,o=this;if(e.$$p=null,null==n&&(n=q),s===q)return w(o,"enum_for",["cycle",n],(function e(){var r=null==e.$$s?this:e.$$s;return t(n["$nil?"]())?C(C("Float"),"INFINITY"):(n=g["$coerce_to!"](n,C("Integer"),"to_int"),t(x(n,0))?k(r.$enumerator_size(),n):0)}),{$$s:o});if(t(o["$empty?"]())||G(n,0))return q;if(n===q)for(;;)for(i=0,a=o.length;i<a;i++)r(s,o[i]);else{if((n=g["$coerce_to!"](n,C("Integer"),"to_int"))<=0)return o;for(;n>0;){for(i=0,a=o.length;i<a;i++)r(s,o[i]);n--}}return o}),-1),m(L,"$clear",(function(){var e=this;return u(e),e.splice(0,e.length),e})),m(L,"$count",(function e(n){var r=e.$$p||q,i=this;return e.$$p=null,t(void 0!==n)||t(r)?b(i,y(i,"count",e,!1,!0),"count",[n],r):i.$size()}),-1),m(L,"$initialize_copy",(function(e){return this.$replace(e)})),m(L,"$collect",(function e(){var t=e.$$p||q,n=this;if(e.$$p=null,t===q)return w(n,"enum_for",["collect"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n});for(var i=[],a=0;a<n.length;a++){var s=r(t,n[a]);i[a]=s}return i})),m(L,"$collect!",(function e(){var t=e.$$p||q,n=this;if(e.$$p=null,t===q)return w(n,"enum_for",["collect!"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n});u(n);for(var i=0;i<n.length;i++){var a=r(t,n[i]);n[i]=a}return n})),m(L,"$combination",(function t(n){var r,i,a,s,o,$,u,l,c=t.$$p||q,_=this;if(t.$$p=null,r=g["$coerce_to!"](n,C("Integer"),"to_int"),c===q)return w(_,"enum_for",["combination",r],(function e(){return W((null==e.$$s?this:e.$$s).length,r)}),{$$s:_});if(0===r)e.yield1(c,[]);else if(1===r)for(i=0,a=_.length;i<a;i++)e.yield1(c,[_[i]]);else if(r===_.length)e.yield1(c,_.slice());else if(r>=0&&r<_.length){for(s=[],i=0;i<=r+1;i++)s.push(0);for(o=[],$=0,u=!1,s[0]=-1;!u;){for(o[$]=_[s[$+1]];$<r-1;)l=s[++$+1]=s[$]+1,o[$]=_[l];e.yield1(c,o.slice()),$++;do{u=0===$,s[$]++,$--}while(s[$+1]+r===_.length+$+1)}}return _})),m(L,"$repeated_combination",(function t(n){var r,i=t.$$p||q,a=this;if(t.$$p=null,r=g["$coerce_to!"](n,C("Integer"),"to_int"),i===q)return w(a,"enum_for",["repeated_combination",r],(function e(){return W((null==e.$$s?this:e.$$s).length+r-1,r)}),{$$s:a});return r>=0&&function t(n,r,a,s){if(a.length!=n)for(var o=r;o<s.length;o++)a.push(s[o]),t(n,o,a,s),a.pop();else{var $=a.slice();e.yield1(i,$)}}(r,0,[],a),a})),m(L,"$compact",(function(){for(var e,t=[],n=0,r=this.length;n<r;n++)(e=this[n])!==q&&t.push(e);return t})),m(L,"$compact!",(function(){var e=this;u(e);for(var t=e.length,n=0,r=e.length;n<r;n++)e[n]===q&&(e.splice(n,1),r--,n--);return e.length===t?q:e})),m(L,"$concat",(function(e){var n,r=this;return n=p(arguments),u(r),n=w(n,"map",[],(function e(n){var r=null==e.$$s?this:e.$$s;return null==n&&(n=q),n=Y(n),t(n["$equal?"](r))&&(n=n.$dup()),n}),{$$s:r}),w(n,"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;null==t&&(t=q);for(var r=0,i=t.length;r<i;r++)n.push(t[r])}),{$$s:r}),r}),-1),m(L,"$delete",(function t(n){var r=t.$$p||q,i=this;t.$$p=null;for(var a=i.length,s=0,o=a;s<o;s++)i[s]["$=="](n)&&(u(i),i.splice(s,1),o--,s--);return i.length===a?r!==q?e.yieldX(r,[]):q:n})),m(L,"$delete_at",(function(e){var t=this;if(u(t),(e=o(e,C("Integer"),"to_int"))<0&&(e+=t.length),e<0||e>=t.length)return q;var n=t[e];return t.splice(e,1),n})),m(L,"$delete_if",(function e(){var t=e.$$p||q,r=this;return e.$$p=null,t===q?w(r,"enum_for",["delete_if"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r}):(u(r),U(r,n,t),r)})),m(L,"$difference",(function(e){var t;return t=p(arguments),w(t,"reduce",[this.$to_a().$dup()],(function(e,t){return null==e&&(e=q),null==t&&(t=q),E(e,t)}))}),-1),m(L,"$dig",(function(e,n){var r,i=q;return r=p(arguments,1),(i=this["$[]"](e))===q||0===r.length?i:(t(i["$respond_to?"]("dig"))||h.$raise(C("TypeError"),i.$class()+" does not have #dig method"),w(i,"dig",S(r)))}),-2),m(L,"$drop",(function(e){return(e=o(e,C("Integer"),"to_int"))<0&&h.$raise(C("ArgumentError")),this.slice(e)})),m(L,"$dup",(function t(){var n=t.$$p||q,r=this;return t.$$p=null,r.$$class===e.Array&&r.$$class.$allocate.$$pristine&&r.$copy_instance_variables.$$pristine&&r.$initialize_dup.$$pristine?r.slice(0):b(r,y(r,"dup",t,!1,!0),"dup",[],n)})),m(L,"$each",(function e(){var t=e.$$p||q,n=this;if(e.$$p=null,t===q)return w(n,"enum_for",["each"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n});for(var i=0;i<n.length;i++)r(t,n[i]);return n})),m(L,"$each_index",(function e(){var t=e.$$p||q,n=this;if(e.$$p=null,t===q)return w(n,"enum_for",["each_index"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n});for(var i=0;i<n.length;i++)r(t,i);return n})),m(L,"$empty?",(function(){return 0===this.length})),m(L,"$eql?",(function(e){var t={};return function e(n,r){var i,a,s,o;if(!r.$$is_array)return!1;if(r=r.$to_a(),n.length!==r.length)return!1;for(t[n.$object_id()]=!0,i=0,a=n.length;i<a;i++)if(s=n[i],o=r[i],s.$$is_array){if(o.$$is_array&&o.length!==s.length)return!1;if(!t.hasOwnProperty(s.$object_id())&&!e(s,o))return!1}else if(!s["$eql?"](o))return!1;return!0}(this,e)})),m(L,"$fetch",(function e(t,n){var r=e.$$p||q,i=this;e.$$p=null;var a=t;return(t=o(t,C("Integer"),"to_int"))<0&&(t+=i.length),t>=0&&t<i.length?i[t]:(r!==q&&null!=n&&i.$warn("warning: block supersedes default value argument"),r!==q?r(a):null!=n?n:void(0===i.length?h.$raise(C("IndexError"),"index "+a+" outside of array bounds: 0...0"):h.$raise(C("IndexError"),"index "+a+" outside of array bounds: -"+i.length+"..."+i.length)))}),-2),m(L,"$fill",(function e(n){var r,i,a,s,$=e.$$p||q,l=this,c=q,_=q,d=q,f=q,m=q;if(e.$$p=null,r=p(arguments),u(l),t($)?(t(r.length>2)&&h.$raise(C("ArgumentError"),"wrong number of arguments ("+r.$length()+" for 0..2)"),c=null==(i=O(r))[0]?q:i[0],_=null==i[1]?q:i[1]):(t(0==r.length)?h.$raise(C("ArgumentError"),"wrong number of arguments (0 for 1..3)"):t(r.length>3)&&h.$raise(C("ArgumentError"),"wrong number of arguments ("+r.$length()+" for 1..3)"),d=null==(i=O(r))[0]?q:i[0],c=null==i[1]?q:i[1],_=null==i[2]?q:i[2]),v(C("Range"),c)){if(t(_)&&h.$raise(C("TypeError"),"length invalid with range"),f=c.begin===q?0:o(c.begin,C("Integer"),"to_int"),t(f<0)&&(f+=this.length),t(f<0)&&h.$raise(C("RangeError"),c.$inspect()+" out of range"),m=c.end===q?-1:o(c.end,C("Integer"),"to_int"),t(m<0)&&(m+=this.length),t(c["$exclude_end?"]())||(m+=1),t(m<=f))return l}else if(t(c))if(f=o(c,C("Integer"),"to_int"),t(f<0)&&(f+=this.length),t(f<0)&&(f=0),t(_)){if(m=o(_,C("Integer"),"to_int"),t(0==m))return l;m+=f}else m=this.length;else f=0,m=this.length;if(t(f>this.length))for(a=this.length;a<m;a++)l[a]=q;if(t(m>this.length)&&(this.length=m),t($))for(this.length;f<m;f++)s=$(f),l[f]=s;else for(this.length;f<m;f++)l[f]=d;return l}),-1),m(L,"$first",(function(e){var t=this;return null==e?0===t.length?q:t[0]:((e=o(e,C("Integer"),"to_int"))<0&&h.$raise(C("ArgumentError"),"negative array size"),t.slice(0,e))}),-1),m(L,"$flatten",(function(e){var t=this;return void 0!==e&&(e=o(e,C("Integer"),"to_int")),function e(n,r){var i,a,s,o,u=[];for(i=0,a=(n=n.$to_a()).length;i<a;i++)if(s=n[i],$(s,"$to_ary",!0))if((o=s.$to_ary())!==q)switch(o.$$is_array||h.$raise(C("TypeError")),o===t&&h.$raise(C("ArgumentError")),r){case void 0:u=u.concat(e(o));break;case 0:u.push(o);break;default:V(u,e(o,r-1))}else u.push(s);else u.push(s);return u}(t,e)}),-1),m(L,"$flatten!",(function(e){var t=this;u(t);var n=t.$flatten(e);if(t.length==n.length){for(var r=0,i=t.length;r<i&&t[r]===n[r];r++);if(r==i)return q}return t.$replace(n),t}),-1),m(L,"$freeze",(function(){var e=this;return t(e["$frozen?"]())?e:l(e)})),m(L,"$hash",(function(){var e,t,n,r=this,i=void 0===P,a=c(),s=r.$object_id();if(a=_(a,10),a=_(a,r.length),i)P=Object.create(null);else if(P[s])return _(a,16843009);try{for(n in P)if(e=P[n],r["$eql?"](e))return _(a,16843009);for(P[s]=r,t=0;t<r.length;t++)e=r[t],a=_(a,e.$hash());return a}finally{i&&(P=void 0)}})),m(L,"$include?",(function(e){for(var t=0,n=this.length;t<n;t++)if(G(this[t],e))return!0;return!1})),m(L,"$index",(function e(t){var n,r,i,a=e.$$p||q,s=this;if(e.$$p=null,null!=t&&a!==q&&s.$warn("warning: given block not used"),null!=t){for(n=0,r=s.length;n<r;n++)if(s[n]["$=="](t))return n}else{if(a===q)return s.$enum_for("index");for(n=0;n<s.length;n++)if(!1!==(i=a(s[n]))&&i!==q)return n}return q}),-1),m(L,"$insert",(function(e,t){var n,r=this;if(n=p(arguments,1),u(r),e=o(e,C("Integer"),"to_int"),n.length>0){if(e<0&&(e+=r.length+1)<0&&h.$raise(C("IndexError"),e+" is out of bounds"),e>r.length)for(var i=r.length;i<e;i++)r.push(q);r.splice.apply(r,[e,0].concat(n))}return r}),-2);var X=[];return m(L,"$inspect",(function(){var e=this,t=[],n=e.$__id__(),r=!0;return function(){try{if(-1!==X.indexOf(n))return r=!1,"[...]";X.push(n);for(var i=0,a=e.length;i<a;i++){var s=e["$[]"](i);t.push(F("Opal").$inspect(s))}return"["+t.join(", ")+"]"}finally{r&&X.pop()}}()})),m(L,"$intersection",(function(e){var n,r,i,a=this;return 0===(n=p(arguments)).length?a.$to_a().$dup():(n=n.map(Y),0===a.length?[]:(n=w(n,"sort_by",[],"length".$to_proc()),t(a.length<n[0].length)?w(n,"reduce",[a],"&".$to_proc()):(r=n.pop(),i=w(n,"reduce",[r],"&".$to_proc()),a["$&"](i))))}),-1),m(L,"$intersect?",(function(e){var t,n,r,s,o=this,$=new Map;for(o.length<e.length?(t=o,n=e):(t=e,n=o),r=0,s=t.length;r<s;r++)a($,t[r],!0);for(r=0,s=n.length;r<s;r++)if(i($,n[r]))return!0;return!1})),m(L,"$join",(function(e){var n=this;if(null==M[","]&&(M[","]=q),null==e&&(e=q),t(0===n.length))return"";t(e===q)&&(e=M[","]);var r,i,a,s,o=[];for(r=0,i=n.length;r<i;r++)a=n[r],$(a,"$to_str")&&(s=a.$to_str())!==q?o.push(s.$to_s()):$(a,"$to_ary")&&((s=a.$to_ary())===n&&h.$raise(C("ArgumentError")),s!==q)?o.push(s.$join(e)):$(a,"$to_s")&&(s=a.$to_s())!==q?o.push(s):h.$raise(C("NoMethodError").$new(F("Opal").$inspect(n.$item())+" doesn't respond to #to_str, #to_ary or #to_s","to_str"));return e===q?o.join(""):o.join(g["$coerce_to!"](e,C("String"),"to_str").$to_s())}),-1),m(L,"$keep_if",(function e(){var n=e.$$p||q,r=this;return e.$$p=null,n===q?w(r,"enum_for",["keep_if"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r}):(u(r),U(r,t,n),r)})),m(L,"$last",(function(e){var t=this;return null==e?0===t.length?q:t[t.length-1]:((e=o(e,C("Integer"),"to_int"))<0&&h.$raise(C("ArgumentError"),"negative array size"),e>t.length&&(e=t.length),t.slice(t.length-e,t.length))}),-1),m(L,"$length",(function(){return this.length})),m(L,"$max",(function e(t){var n=e.$$p||q;return e.$$p=null,w(this.$each(),"max",[t],n.$to_proc())}),-1),m(L,"$min",(function e(){var t=e.$$p||q;return e.$$p=null,w(this.$each(),"min",[],t.$to_proc())})),m(L,"$permutation",(function t(n){var i,a,s,$=t.$$p||q,u=this,l=q,c=q;if(t.$$p=null,$===q)return w(u,"enum_for",["permutation",n],(function e(){var t=null==e.$$s?this:e.$$s;return function(e,t){for(var n=t>=0?1:0;t;)n*=e,e--,t--;return n}(t.length,void 0===n?t.length:n)}),{$$s:u});if((n=void 0===n?u.length:o(n,C("Integer"),"to_int"))<0||u.length<n);else if(0===n)e.yield1($,[]);else if(1===n)for(var _=0;_<u.length;_++)e.yield1($,[u[_]]);else l=F("Array").$new(n),c=F("Array").$new(u.length,!1),i=function(e,t,n,a,o){u=this;for(var $=0;$<u.length;$++)if(a["$[]"]($)["$!"]())if(t[n]=$,n<e-1)a[$]=!0,i.call(u,e,t,n+1,a,o),a[$]=!1;else{s=[];for(var l=0;l<t.length;l++)s.push(u[t[l]]);r(o,s)}},$!==q?(a=u.slice(),i.call(a,n,l,0,c,$)):i.call(u,n,l,0,c,$);return u}),-1),m(L,"$repeated_permutation",(function n(r){var i,a=n.$$p||q,s=this;if(n.$$p=null,i=g["$coerce_to!"](r,C("Integer"),"to_int"),a===q)return w(s,"enum_for",["repeated_permutation",i],(function e(){var n=null==e.$$s?this:e.$$s;return t(A(i,0))?n.$size()["$**"](i):0}),{$$s:s});return function t(n,r,i){if(r.length!=n)for(var s=0;s<i.length;s++)r.push(i[s]),t(n,r,i),r.pop();else{var o=r.slice();e.yield1(a,o)}}(i,[],s.slice()),s})),m(L,"$pop",(function(e){var n=this;return u(n),t(void 0===e)?t(0===n.length)?q:n.pop():(e=o(e,C("Integer"),"to_int"),t(e<0)&&h.$raise(C("ArgumentError"),"negative array size"),t(0===n.length)?[]:t(1===e)?[n.pop()]:t(e>n.length)?n.splice(0,n.length):n.splice(n.length-e,n.length))}),-1),m(L,"$product",(function t(n){var r,i,a=t.$$p||q,s=this;t.$$p=null,r=p(arguments);var $,u,l,c,_=a!==q?null:[],d=(i=r).length+1,f=new Array(d),m=new Array(d),g=new Array(d),v=1;for(g[0]=s,$=1;$<d;$++)g[$]=o(i[$-1],C("Array"),"to_ary");for($=0;$<d;$++){if(0===(c=g[$].length))return _||s;(v*=c)>2147483647&&h.$raise(C("RangeError"),"too big to product"),m[$]=c,f[$]=0}e:for(;;){for(l=[],$=0;$<d;$++)l.push(g[$][f[$]]);for(_?_.push(l):e.yield1(a,l),f[u=d-1]++;f[u]===m[u];){if(f[u]=0,--u<0)break e;f[u]++}}return _||s}),-1),m(L,"$push",(function(e){var t,n=this;return t=p(arguments),u(n),V(n,t),n}),-1),m(L,"$rassoc",(function(e){for(var t,n=0,r=this.length;n<r;n++)if((t=this[n]).length&&void 0!==t[1]&&t[1]["$=="](e))return t;return q})),m(L,"$reject",(function e(){var t=e.$$p||q,n=this;if(e.$$p=null,t===q)return w(n,"enum_for",["reject"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n});for(var r,i=[],a=0;a<n.length;a++)!1!==(r=t(n[a]))&&r!==q||i.push(n[a]);return i})),m(L,"$reject!",(function e(){var t,n=e.$$p||q,r=this;return e.$$p=null,n===q?w(r,"enum_for",["reject!"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r}):(u(r),t=r.$length(),w(r,"delete_if",[],n.$to_proc()),G(r.$length(),t)?q:r)})),m(L,"$replace",(function(e){var t=this;return u(t),e=Y(e),t.length>0&&t.splice(0,t.length),V(t,e),t})),m(L,"$reverse",(function(){return this.slice(0).reverse()})),m(L,"$reverse!",(function(){return u(this),this.reverse()})),m(L,"$reverse_each",(function e(){var t=e.$$p||q,n=this;if(e.$$p=null,t===q)return w(n,"enum_for",["reverse_each"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n});for(var i=n.length-1;i>=0;i--)r(t,n[i]);return n})),m(L,"$rindex",(function e(t){var n,r,i=e.$$p||q,a=this;if(e.$$p=null,null!=t&&i!==q&&a.$warn("warning: given block not used"),null!=t){for(n=a.length-1;n>=0&&!(n>=a.length);n--)if(a[n]["$=="](t))return n}else if(i!==q){for(n=a.length-1;n>=0&&!(n>=a.length);n--)if(!1!==(r=i(a[n]))&&r!==q)return n}else if(null==t)return a.$enum_for("rindex");return q}),-1),m(L,"$rotate",(function(e){var t,n,r,i,a=this;return null==e&&(e=1),e=o(e,C("Integer"),"to_int"),1===a.length?a.slice():0===a.length?[]:(n=e%(t=a.slice()).length,r=t.slice(n),i=t.slice(0,n),r.concat(i))}),-1),m(L,"$rotate!",(function(e){var t,n=this;return null==e&&(e=1),u(n),0===n.length||1===n.length?n:(e=o(e,C("Integer"),"to_int"),t=n.$rotate(e),n.$replace(t))}),-1),function(e,n){var r=d(e,null,"SampleRandom");r.$$prototype.rng=q,m(r,"$initialize",N("rng")),m(r,"$rand",(function(e){var n;return n=o(this.rng.$rand(e),C("Integer"),"to_int"),t(n<0)&&h.$raise(C("RangeError"),"random value must be >= 0"),t(n<e)||h.$raise(C("RangeError"),"random value must be less than Array size"),n}))}(L),m(L,"$sample",(function(e,n){var r,i,a,s,$,u,l,c,_=this,d=q,p=q;if(t(void 0===e))return _.$at(h.$rand(_.length));if(t(void 0===n)?t(d=g["$coerce_to?"](e,C("Hash"),"to_hash"))?(n=d,e=q):(n=q,e=o(e,C("Integer"),"to_int")):(e=o(e,C("Integer"),"to_int"),n=o(n,C("Hash"),"to_hash")),t(e)&&t(e<0)&&h.$raise(C("ArgumentError"),"count must be greater than 0"),t(n)&&(p=n["$[]"]("random")),p=t(p)&&t(p["$respond_to?"]("rand"))?F("SampleRandom").$new(p):h,!t(e))return _[p.$rand(_.length)];switch(e>_.length&&(e=_.length),e){case 0:return[];case 1:return[_[p.$rand(_.length)]];case 2:return(s=p.$rand(_.length))<=($=p.$rand(_.length-1))&&$++,[_[s],_[$]];default:if(_.length/e>3){for(r=!1,i=0,s=1,(a=F("Array").$new(e))[0]=p.$rand(_.length);s<e;){for(u=p.$rand(_.length),$=0;$<s;){for(;u===a[$];){if(++i>100){r=!0;break}u=p.$rand(_.length)}if(r)break;$++}if(r)break;a[s]=u,s++}if(!r){for(s=0;s<e;)a[s]=_[a[s]],s++;return a}}a=_.slice();for(var f=0;f<e;f++)l=p.$rand(_.length-f)+f,c=a[f],a[f]=a[l],a[l]=c;return e===_.length?a:a["$[]"](0,e)}}),-1),m(L,"$select",(function e(){var n=e.$$p||q,i=this;if(e.$$p=null,n===q)return w(i,"enum_for",["select"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:i});for(var a,s,o=[],$=0;$<i.length;$++)a=i[$],s=r(n,a),t(s)&&o.push(a);return o})),m(L,"$select!",(function e(){var t=e.$$p||q,n=this;if(e.$$p=null,t===q)return w(n,"enum_for",["select!"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n});u(n);var r=n.length;return w(n,"keep_if",[],t.$to_proc()),n.length===r?q:n})),m(L,"$shift",(function(e){var n=this;return u(n),t(void 0===e)?t(0===n.length)?q:function(e){for(var t=e[0],n=1,r=e.length;n<r;n++)e[n-1]=e[n];return e.pop(),t}(n):(e=o(e,C("Integer"),"to_int"),t(e<0)&&h.$raise(C("ArgumentError"),"negative array size"),t(0===n.length)?[]:n.splice(0,e))}),-1),m(L,"$shuffle",(function(e){return this.$dup().$to_a()["$shuffle!"](e)}),-1),m(L,"$shuffle!",(function(e){var t=this;u(t);var n,r,i,a=t.length;for(void 0!==e&&(e=g["$coerce_to?"](e,C("Hash"),"to_hash"))!==q&&(e=e["$[]"]("random"))!==q&&e["$respond_to?"]("rand")&&(n=e);a;)n?((r=n.$rand(a).$to_int())<0&&h.$raise(C("RangeError"),"random number too small "+r),r>=a&&h.$raise(C("RangeError"),"random number too big "+r)):r=t.$rand(a),i=t[--a],t[a]=t[r],t[r]=i;return t}),-1),m(L,"$slice!",(function(e,n){var r=this,i=q,a=q,s=q,$=q,l=q;if(u(r),i=q,t(void 0===n))if(v(C("Range"),e)){a=e,i=r["$[]"](a),s=a.begin===q?0:o(a.begin,C("Integer"),"to_int"),$=a.end===q?-1:o(a.end,C("Integer"),"to_int"),s<0&&(s+=r.length),$<0?$+=r.length:$>=r.length&&($=r.length-1,a.excl&&($+=1));var c=$-s;a.excl&&a.end!==q?$-=1:c+=1,s<r.length&&s>=0&&$<r.length&&$>=0&&c>0&&r.splice(s,c)}else{if((l=o(e,C("Integer"),"to_int"))<0&&(l+=r.length),l<0||l>=r.length)return q;i=r[l],0===l?r.shift():r.splice(l,1)}else{if(l=o(e,C("Integer"),"to_int"),(n=o(n,C("Integer"),"to_int"))<0)return q;i=r["$[]"](l,n),l<0&&(l+=r.length),l+n>r.length&&(n=r.length-l),l<r.length&&l>=0&&r.splice(l,n)}return i}),-2),m(L,"$sort",(function e(){var n=e.$$p||q,r=this;return e.$$p=null,t(r.length>1)?(n===q&&(n=function(e,t){return e["$<=>"](t)}),r.slice().sort((function(e,t){var r=n(e,t);return r===q&&h.$raise(C("ArgumentError"),"comparison of "+e.$inspect()+" with "+t.$inspect()+" failed"),x(r,0)?1:z(r,0)?-1:0}))):r})),m(L,"$sort!",(function e(){var t,n=e.$$p||q,r=this;e.$$p=null,u(r),t=n!==q?w(r.slice(),"sort",[],n.$to_proc()):r.slice().$sort(),r.length=0;for(var i=0,a=t.length;i<a;i++)r.push(t[i]);return r})),m(L,"$sort_by!",(function e(){var t=e.$$p||q,n=this;return e.$$p=null,t===q?w(n,"enum_for",["sort_by!"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n}):(u(n),n.$replace(w(n,"sort_by",[],t.$to_proc())))})),m(L,"$take",(function(e){return e<0&&h.$raise(C("ArgumentError")),this.slice(0,e)})),m(L,"$take_while",(function e(){var t=e.$$p||q;e.$$p=null;for(var n,r,i=[],a=0;a<this.length;a++){if(!1===(r=t(n=this[a]))||r===q)return i;i.push(n)}return i})),m(L,"$to_a",(function(){var t=this;return t.$$class===e.Array?t:e.Array.$new(t)})),m(L,"$to_ary",D),m(L,"$to_h",(function e(){var t=e.$$p||q,n=q;e.$$p=null,n=this,t!==q&&(n=w(n,"map",[],t.$to_proc()));var r,i,s,o,$=n.length,u=new Map;for(r=0;r<$;r++)(i=g["$coerce_to?"](n[r],C("Array"),"to_ary")).$$is_array||h.$raise(C("TypeError"),"wrong element type "+n[r].$class()+" at "+r+" (expected array)"),2!==i.length&&h.$raise(C("ArgumentError"),"element has wrong array length at "+r+" (expected 2, was "+i.$length()+")"),s=i[0],o=i[1],a(u,s,o);return u})),m(L,"$transpose",(function(){var e=q,n=q;return t(this["$empty?"]())?[]:(e=[],n=q,w(this,"each",[],(function(r){var i=q;return null==r&&(r=q),r=Y(r),n=t(i=n)?i:r.length,I(r.length,n)&&h.$raise(C("IndexError"),"element size differs ("+r.length+" should be "+n+")"),w(r.length,"times",[],(function(n){var a;return null==n&&(n=q),(t(i=e["$[]"](n))?i:(w(e,"[]=",a=[n,[]]),a[a.length-1]))["$<<"](r.$at(n))}))})),e)})),m(L,"$union",(function(e){var t;return t=p(arguments),w(t,"reduce",[this.$uniq()],(function(e,t){return null==e&&(e=q),null==t&&(t=q),e["$|"](t)}))}),-1),m(L,"$uniq",(function e(){var t=e.$$p||q,n=this;e.$$p=null;var s,o,$,u,l=new Map;if(t===q)for(s=0,o=n.length;s<o;s++)$=n[s],void 0===i(l,$)&&a(l,$,$);else for(s=0;s<n.length;s++)$=n[s],u=r(t,$),void 0===i(l,u)&&a(l,u,$);return l.$values()})),m(L,"$uniq!",(function e(){var t=e.$$p||q,n=this;e.$$p=null,u(n);var s,o,$,l=new Map,c=[];for(s=0;s<n.length;s++)o=n[s],$=t===q?o:r(t,o),void 0===i(l,$)?a(l,$,o):c.push(s);for(s=c.length-1;s>=0;s--)n.splice(c[s],1);return 0===c.length?q:n})),m(L,"$unshift",(function(e){var t,n=this;t=p(arguments),u(n);var r=n.length,i=t.length;if(0==i)return n;for(var a=r-i,s=0;s<i;s++)n.push(n[a+s]);for(var o=r-1;o-i>=0;)n[o]=n[o-i],o--;for(var $=0;$<i;$++)n[$]=t[$];return n}),-1),m(L,"$values_at",(function(e){var n,r=q;return n=p(arguments),r=[],w(n,"each",[],(function e(n){var i=null==e.$$s?this:e.$$s,a=q,s=q,$=q;return null==n&&(n=q),t(n["$is_a?"](C("Range")))?(a=n.$end()===q?-1:o(n.$end(),C("Integer"),"to_int"),(s=n.$begin()===q?0:o(n.$begin(),C("Integer"),"to_int"))<0?(s+=i.length,q):(a<0&&(a+=i.length),n["$exclude_end?"]()&&n.$end()!==q&&a--,a<s?q:w(s,"upto",[a],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=q),r["$<<"](n.$at(t))}),{$$s:i}))):($=o(n,C("Integer"),"to_int"),r["$<<"](i.$at($)))}),{$$s:this}),r}),-1),m(L,"$zip",(function n(r){var i,a=n.$$p||q,s=q;n.$$p=null,i=p(arguments);var o,$,u,l,c,_=[],d=this.length;for(l=0,c=i.length;l<c;l++)($=i[l]).$$is_array||($.$$is_range||$.$$is_enumerator?i[l]=$.$take(d):i[l]=(t(s=g["$coerce_to?"]($,C("Array"),"to_ary"))?s:g["$coerce_to!"]($,C("Enumerator"),"to_enum","each")).$to_a());for(u=0;u<d;u++){for(o=[this[u]],l=0,c=i.length;l<c;l++)null==($=i[l][u])&&($=q),o[l+1]=$;_[u]=o}if(a!==q){for(u=0;u<d;u++)e.yield1(a,_[u]);return q}return _}),-1),f(L,"$inherited",(function(e){e.$$prototype.$to_a=function(){return this.slice(0,this.length)}})),m(L,"$instance_variables",(function e(){var n=e.$$p||q;return e.$$p=null,w(b(this,y(this,"instance_variables",e,!1,!0),"instance_variables",[],n),"reject",[],(function(e){var n;return null==e&&(e=q),t(n=/^@\d+$/.test(e))?n:e["$=="]("@length")}))})),m(L,"$pack",(function(e){return p(arguments),h.$raise("To use Array#pack, you must first require 'corelib/array/pack'.")}),-1),T(L,"append","push"),T(L,"filter","select"),T(L,"filter!","select!"),T(L,"map","collect"),T(L,"map!","collect!"),T(L,"prepend","unshift"),T(L,"size","length"),T(L,"slice","[]"),T(L,"to_s","inspect"),g.$pristine(L.$singleton_class(),"allocate"),g.$pristine(L,"copy_instance_variables","initialize_dup")}(0,0,[])},Opal.modules["corelib/hash"]=function(e){var t=e.yield1,n=e.hash_clone,r=e.hash_delete,i=e.hash_each,a=e.hash_get,s=e.hash_put,o=e.deny_frozen_access,$=e.freeze,u=e.opal32_init,l=e.opal32_add,c=e.klass,_=e.slice,d=e.Opal,p=e.Kernel,f=e.defs,h=e.def,m=e.send,g=e.rb_ge,v=e.rb_gt,b=e.truthy,y=e.to_a,w=e.return_self,x=e.not,k=e.alias,G=e.top,E=e.nil,S=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?"),G.$require("corelib/enumerable"),function(G,O,M){var A,N,z=c("::",O,"Hash"),D=[z].concat(M),I=e.$r(D);return z.$include(S("Enumerable")),z.$$prototype.$$is_hash=!0,f(z,"$[]",(function(e){var t,n,r,i,a=this,s=(t=_(arguments)).length;if(1===s){if((n=d["$coerce_to?"](t["$[]"](0),S("Hash"),"to_hash"))!==E)return a.$allocate()["$merge!"](n);for((t=d["$coerce_to?"](t["$[]"](0),S("Array"),"to_ary"))===E&&p.$raise(S("ArgumentError"),"odd number of arguments for Hash"),s=t.length,n=a.$allocate(),i=0;i<s;i++)(r=t[i]).$$is_array||p.$raise(S("ArgumentError"),"invalid element "+r.$inspect()+" for Hash"),1===r.length?n.$store(r[0],E):2===r.length?n.$store(r[0],r[1]):p.$raise(S("ArgumentError"),"invalid number of elements ("+r.length+" for "+r.$inspect()+"), must be 1..2");return n}for(s%2!=0&&p.$raise(S("ArgumentError"),"odd number of arguments for Hash"),n=a.$allocate(),i=0;i<s;i+=2)n.$store(t[i],t[i+1]);return n}),-1),f(z,"$allocate",(function(){var e=new this.$$constructor;return e.$$none=E,e.$$proc=E,e})),f(z,"$try_convert",(function(e){return d["$coerce_to?"](e,S("Hash"),"to_hash")})),h(z,"$initialize",(function e(t){var n=e.$$p||E,r=this;return e.$$p=null,o(r),void 0!==t&&n!==E&&p.$raise(S("ArgumentError"),"wrong number of arguments (1 for 0)"),r.$$none=void 0===t?E:t,r.$$proc=n,r}),-1),h(z,"$==",(function(e){var t=this;return t===e||!!e.$$is_hash&&(t.size===e.size&&i(t,!0,(function(t,n){var r=a(e,t);return void 0!==r&&n["$eql?"](r)?[!1,!0]:[!0,!1]})))})),h(z,"$>=",(function(e){var t=E;return e=d["$coerce_to!"](e,S("Hash"),"to_hash"),!(this.size<e.size)&&(t=!0,m(e,"each",[],(function e(n,r){var i;null==n&&(n=E),null==r&&(r=E),null!=(i=(null==e.$$s?this:e.$$s).$fetch(n,null))&&i===r||(t=!1)}),{$$s:this}),t)})),h(z,"$>",(function(e){return e=d["$coerce_to!"](e,S("Hash"),"to_hash"),!(this.size<=e.size)&&g(this,e)})),h(z,"$<",(function(e){return e=d["$coerce_to!"](e,S("Hash"),"to_hash"),v(e,this)})),h(z,"$<=",(function(e){return e=d["$coerce_to!"](e,S("Hash"),"to_hash"),g(e,this)})),h(z,"$[]",(function(e){var t=a(this,e);return void 0!==t?t:this.$default(e)})),h(z,"$[]=",(function(e,t){return o(this),s(this,e,t),t})),h(z,"$assoc",(function(e){return i(this,E,(function(t,n){return t["$=="](e)?[!0,[t,n]]:[!1,E]}))})),h(z,"$clear",(function(){var e=this;return o(e),e.clear(),e.$$keys&&e.$$keys.clear(),e})),h(z,"$clone",(function(){var e=this,t=e.$class().$new();return n(e,t),e["$frozen?"]()?t.$freeze():t})),h(z,"$compact",(function(){var e=new Map;return i(this,e,(function(t,n){return n!==E&&s(e,t,n),[!1,e]}))})),h(z,"$compact!",(function(){var e=this;o(e);var t=E;return i(e,t,(function(n,i){return i===E&&(r(e,n),t=e),[!1,t]}))})),h(z,"$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})),h(z,"$compare_by_identity?",(function(){return!0===this.$$by_identity})),h(z,"$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),h(z,"$default=",(function(e){var t=this;return o(t),t.$$proc=E,t.$$none=e,e})),h(z,"$default_proc",(function(){return void 0!==this.$$proc?this.$$proc:E})),h(z,"$default_proc=",(function(e){var t=this;o(t);var n=e;return n!==E&&(n=d["$coerce_to!"](n,S("Proc"),"to_proc"))["$lambda?"]()&&2!==n.$arity().$abs()&&p.$raise(S("TypeError"),"default_proc takes two arguments"),t.$$none=E,t.$$proc=n,e})),h(z,"$delete",(function t(n){var i=t.$$p||E;t.$$p=null,o(this);var a=r(this,n);return void 0!==a?a:i!==E?e.yield1(i,n):E})),h(z,"$delete_if",(function e(){var t=e.$$p||E,n=this;return e.$$p=null,b(t)?(o(n),i(n,n,(function(e,i){var a=t(e,i);return!1!==a&&a!==E&&r(n,e),[!1,n]}))):m(n,"enum_for",["delete_if"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n})})),h(z,"$dig",(function(e,t){var n,r=E;return n=_(arguments,1),(r=this["$[]"](e))===E||0===n.length?r:(b(r["$respond_to?"]("dig"))||p.$raise(S("TypeError"),r.$class()+" does not have #dig method"),m(r,"dig",y(n)))}),-2),h(z,"$dup",(function(){return n(this,this.$class().$new())})),h(z,"$each",(function e(){var n=e.$$p||E,r=this;return e.$$p=null,b(n)?i(r,r,(function(e,i){return t(n,[e,i]),[!1,r]})):m(r,"enum_for",["each"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r})})),h(z,"$each_key",(function e(){var t=e.$$p||E,n=this;return e.$$p=null,b(t)?i(n,n,(function(e,r){return t(e),[!1,n]})):m(n,"enum_for",["each_key"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n})})),h(z,"$each_value",(function e(){var t=e.$$p||E,n=this;return e.$$p=null,b(t)?i(n,n,(function(e,r){return t(r),[!1,n]})):m(n,"enum_for",["each_value"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n})})),h(z,"$empty?",(function(){return 0===this.size})),h(z,"$except",(function(e){var t;return t=_(arguments),m(this.$dup(),"except!",y(t))}),-1),h(z,"$except!",(function(e){var t;return t=_(arguments),m(t,"each",[],(function e(t){return null==t&&(t=E),(null==e.$$s?this:e.$$s).$delete(t)}),{$$s:this}),this}),-1),h(z,"$fetch",(function e(t,n){var r=e.$$p||E;e.$$p=null;var i=a(this,t);return void 0!==i?i:r!==E?r(t):void 0!==n?n:p.$raise(S("KeyError").$new("key not found: "+t.$inspect(),new Map([["key",t],["receiver",this]])))}),-2),h(z,"$fetch_values",(function e(t){var n,r=e.$$p||E;return e.$$p=null,n=_(arguments),m(n,"map",[],(function e(t){return null==t&&(t=E),m(null==e.$$s?this:e.$$s,"fetch",[t],r.$to_proc())}),{$$s:this})}),-1),h(z,"$flatten",(function(e){null==e&&(e=1),e=d["$coerce_to!"](e,S("Integer"),"to_int");var t=[];return i(this,t,(function(n,r){return t.push(n),r.$$is_array?1===e?(t.push(r),[!1,t]):[!1,t=t.concat(r.$flatten(e-2))]:(t.push(r),[!1,t])}))}),-1),h(z,"$freeze",(function(){var e=this;return b(e["$frozen?"]())?e:$(e)})),h(z,"$has_key?",(function(e){return void 0!==a(this,e)})),h(z,"$has_value?",(function(e){return i(this,!1,(function(t,n){return n["$=="](e)?[!0,!0]:[!1,!1]}))})),h(z,"$hash",(function(){var e,t,n,r=this,a=void 0===A,s=r.$object_id(),o=u(),$=r.size,c=new Int32Array($);if(o=l(o,4),o=l(o,$),a)A=Object.create(null);else if(A[s])return l(o,16843009);try{for(e in A)if(t=A[e],r["$eql?"](t))return l(o,16843009);for(A[s]=r,n=0,i(r,!1,(function(e,t){return c[n]=[1883326802,e,t].$hash(),n++,[!1,!1]})),c=c.sort(),n=0;n<c.length;n++)o=l(o,c[n]);return o}finally{a&&(A=void 0)}})),h(z,"$index",(function(e){return i(this,E,(function(t,n){return n["$=="](e)?[!0,t]:[!1,E]}))})),h(z,"$indexes",(function(e){for(var t,n,r,i=[],s=0,o=(t=_(arguments)).length;s<o;s++)n=t[s],void 0!==(r=a(this,n))?i.push(r):i.push(this.$default());return i}),-1),h(z,"$inspect",(function(){var e=this,t=void 0===N,n=e.$object_id(),r=[];return function(){try{return t&&(N={}),N.hasOwnProperty(n)?"{...}":(N[n]=!0,i(e,!1,(function(e,t){return t=I("Opal").$inspect(t),e=I("Opal").$inspect(e),r.push(e+"=>"+t),[!1,!1]})),"{"+r.join(", ")+"}")}finally{t&&(N=void 0)}}()})),h(z,"$invert",(function(){var e=new Map;return i(this,e,(function(t,n){return s(e,n,t),[!1,e]}))})),h(z,"$keep_if",(function e(){var t=e.$$p||E,n=this;return e.$$p=null,b(t)?(o(n),i(n,n,(function(e,i){var a=t(e,i);return!1!==a&&a!==E||r(n,e),[!1,n]}))):m(n,"enum_for",["keep_if"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n})})),h(z,"$keys",(function(){return Array.from(this.keys())})),h(z,"$length",(function(){return this.size})),h(z,"$merge",(function e(t){var n,r=e.$$p||E;return e.$$p=null,n=_(arguments),m(this.$dup(),"merge!",y(n),r.$to_proc())}),-1),h(z,"$merge!",(function e(t){var n,r,$,u=e.$$p||E,l=this;for(e.$$p=null,n=_(arguments),o(l),r=0;r<n.length;++r)$=d["$coerce_to!"](n[r],S("Hash"),"to_hash"),i($,!1,u===E?function(e,t){return s(l,e,t),[!1,!1]}:function(e,t){var n=a(l,e);return void 0===n?(s(l,e,t),[!1,!1]):(s(l,e,u(e,n,t)),[!1,!1])});return l}),-1),h(z,"$rassoc",(function(e){return i(this,E,(function(t,n){return n["$=="](e)?[!0,[t,n]]:[!1,E]}))})),h(z,"$rehash",(function(){return o(this),e.hash_rehash(this)})),h(z,"$reject",(function e(){var t=e.$$p||E,n=this;if(e.$$p=null,!b(t))return m(n,"enum_for",["reject"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n});var r=new Map;return i(n,r,(function(e,n){var i=t(e,n);return!1!==i&&i!==E||s(r,e,n),[!1,r]}))})),h(z,"$reject!",(function e(){var t=e.$$p||E,n=this;if(e.$$p=null,!b(t))return m(n,"enum_for",["reject!"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n});o(n);var a=E;return i(n,a,(function(e,i){var s=t(e,i);return!1!==s&&s!==E&&(r(n,e),a=n),[!1,a]}))})),h(z,"$replace",(function(e){var t=this;return o(t),e=d["$coerce_to!"](e,S("Hash"),"to_hash"),t.$clear(),i(e,!1,(function(e,n){return s(t,e,n),[!1,!1]})),b(e.$default_proc())?t["$default_proc="](e.$default_proc()):t["$default="](e.$default()),t})),h(z,"$select",(function e(){var t=e.$$p||E,n=this;if(e.$$p=null,!b(t))return m(n,"enum_for",["select"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n});var r=new Map;return i(n,r,(function(e,n){var i=t(e,n);return!1!==i&&i!==E&&s(r,e,n),[!1,r]}))})),h(z,"$select!",(function e(){var t=e.$$p||E,n=this;if(e.$$p=null,!b(t))return m(n,"enum_for",["select!"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n});o(n);var a=E;return i(n,a,(function(e,i){var s=t(e,i);return!1!==s&&s!==E||(r(n,e),a=n),[!1,a]}))})),h(z,"$shift",(function(){var e=this;return o(e),i(e,E,(function(t,n){return[!0,[t,r(e,t)]]}))})),h(z,"$slice",(function(e){var t;t=_(arguments);for(var n=new Map,r=0,i=t.length;r<i;r++){var o=t[r],$=a(this,o);void 0!==$&&s(n,o,$)}return n}),-1),h(z,"$to_a",(function(){var e=[];return i(this,e,(function(t,n){return e.push([t,n]),[!1,e]}))})),h(z,"$to_h",(function t(){var r=t.$$p||E,i=this;if(t.$$p=null,r!==E)return m(i,"map",[],r.$to_proc()).$to_h();if(i.$$class===e.Hash)return i;var a=new Map;return n(i,a),a})),h(z,"$to_hash",w),h(z,"$to_proc",(function(){return m(this,"proc",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&p.$raise(S("ArgumentError"),"no key given"),n["$[]"](t)}),{$$arity:-1,$$s:this})})),h(z,"$transform_keys",(function e(t){var n=e.$$p||E,r=this;if(e.$$p=null,null==t&&(t=E),x(n)&&x(t))return m(r,"enum_for",["transform_keys"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r});var o=new Map;return i(r,o,(function(e,r){var i;return t!==E&&(i=a(t,e)),void 0===i&&n&&n!==E&&(i=n(e)),void 0===i&&(i=e),s(o,i,r),[!1,o]}))}),-1),h(z,"$transform_keys!",(function e(t){var n=e.$$p||E,$=this;if(e.$$p=null,null==t&&(t=E),x(n)&&x(t))return m($,"enum_for",["transform_keys!"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:$});o($);var u=new Map;return i($,$,(function(e,i){var o;return t!==E&&(o=a(t,e)),void 0===o&&n&&n!==E&&(o=n(e)),void 0===o||(a(u,e)||r($,e),s($,o,i),s(u,o,!0)),[!1,$]}))}),-1),h(z,"$transform_values",(function e(){var t=e.$$p||E,n=this;if(e.$$p=null,!b(t))return m(n,"enum_for",["transform_values"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n});var r=new Map;return i(n,r,(function(e,n){return s(r,e,t(n)),[!1,r]}))})),h(z,"$transform_values!",(function e(){var t=e.$$p||E,n=this;return e.$$p=null,b(t)?(o(n),i(n,n,(function(e,r){return s(n,e,t(r)),[!1,n]}))):m(n,"enum_for",["transform_values!"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n})})),h(z,"$values",(function(){return Array.from(this.values())})),k(z,"each_pair","each"),k(z,"eql?","=="),k(z,"filter","select"),k(z,"filter!","select!"),k(z,"include?","has_key?"),k(z,"indices","indexes"),k(z,"key","index"),k(z,"key?","has_key?"),k(z,"member?","has_key?"),k(z,"size","length"),k(z,"store","[]="),k(z,"to_s","inspect"),k(z,"update","merge!"),k(z,"value?","has_value?"),k(z,"values_at","indexes")}(0,Map,[])},Opal.modules["corelib/number"]=function(e){"use strict";var t=e.klass,n=e.Opal,r=e.Kernel,i=e.def,a=e.eqeqeq,s=e.truthy,o=e.rb_gt,$=e.not,u=e.rb_lt,l=e.alias,c=e.send2,_=e.find_super,d=e.send,p=e.rb_plus,f=e.rb_minus,h=e.eqeq,m=e.return_self,g=e.rb_divide,v=e.to_ary,b=e.rb_times,y=e.rb_le,w=e.rb_ge,x=e.return_val,k=e.const_set,G=e.top,E=[],S=e.nil,O=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?"),G.$require("corelib/numeric"),function(k,G,E){var M=t("::",G,"Number");[M].concat(E);n.$bridge(Number,M),e.prop(M.$$prototype,"$$is_number",!0),M.$$is_number_class=!0;var A=new Map;!function(t,n){i(t,"$allocate",(function(){return r.$raise(O("TypeError"),"allocator undefined for "+this.$name())})),e.udef(t,"$new")}(e.get_singleton_class(M)),i(M,"$coerce",(function(e){var t=this;if(e===S)r.$raise(O("TypeError"),"can't convert "+e.$class()+" into Float");else{if(e.$$is_string)return[r.$Float(e),t];if(e["$respond_to?"]("to_f"))return[n["$coerce_to!"](e,O("Float"),"to_f"),t];if(e.$$is_number)return[e,t];r.$raise(O("TypeError"),"can't convert "+e.$class()+" into Float")}})),i(M,"$__id__",(function(){var t=this;if(t|0===t)return 2*t+1;if(A.has(t))return A.get(t);var n=e.uid();return A.set(t,n),n})),i(M,"$hash",(function(){var e=this;return e|0===e?e.$__id__():e.toString().$hash()})),i(M,"$+",(function(e){return e.$$is_number?this+e:this.$__coerced__("+",e)})),i(M,"$-",(function(e){return e.$$is_number?this-e:this.$__coerced__("-",e)})),i(M,"$*",(function(e){return e.$$is_number?this*e:this.$__coerced__("*",e)})),i(M,"$/",(function(e){return e.$$is_number?this/e:this.$__coerced__("/",e)})),i(M,"$%",(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 r.$raise(O("ZeroDivisionError"),"divided by 0"):t.$__coerced__("%",e)})),i(M,"$&",(function(e){return e.$$is_number?this&e:this.$__coerced__("&",e)})),i(M,"$|",(function(e){return e.$$is_number?this|e:this.$__coerced__("|",e)})),i(M,"$^",(function(e){return e.$$is_number?this^e:this.$__coerced__("^",e)})),i(M,"$<",(function(e){return e.$$is_number?this<e:this.$__coerced__("<",e)})),i(M,"$<=",(function(e){return e.$$is_number?this<=e:this.$__coerced__("<=",e)})),i(M,"$>",(function(e){return e.$$is_number?this>e:this.$__coerced__(">",e)})),i(M,"$>=",(function(e){return e.$$is_number?this>=e:this.$__coerced__(">=",e)}));function N(e){var t=new Uint8Array(8);return new DataView(t.buffer).setFloat64(0,e,!0),t}function z(e){return new DataView(e.buffer).getFloat64(0,!0)}function D(e){for(var t=N(e),n=0;n<t.length;n++){if(255!==t[n]){t[n]++;break}t[n]=0}return z(t)}function I(e){for(var t=N(e),n=0;n<t.length;n++){if(0!==t[n]){t[n]--;break}t[n]=255}return z(t)}i(M,"$<=>",(function(t){try{return function(e,t){return t.$$is_number?isNaN(e)||isNaN(t)?S:e>t?1:e<t?-1:0:e.$__coerced__("<=>",t)}(this,t)}catch(t){if(!e.rescue(t,[O("ArgumentError")]))throw t;try{return S}finally{e.pop_exception(t)}}})),i(M,"$<<",(function(e){return(e=n["$coerce_to!"](e,O("Integer"),"to_int"))>0?this<<e:this>>-e})),i(M,"$>>",(function(e){return(e=n["$coerce_to!"](e,O("Integer"),"to_int"))>0?this>>e:this<<-e})),i(M,"$[]",(function(e){return(e=n["$coerce_to!"](e,O("Integer"),"to_int"))<0?0:e>=32?this<0?1:0:this>>e&1})),i(M,"$+@",(function(){return+this})),i(M,"$-@",(function(){return-this})),i(M,"$~",(function(){return~this})),i(M,"$**",(function(e){var t=this;return a(O("Integer"),e)?$(O("Integer")["$==="](t))||s(o(e,0))?Math.pow(t,e):O("Rational").$new(t,1)["$**"](e):s(u(t,0))&&(a(O("Float"),e)||a(O("Rational"),e))?O("Complex").$new(t,0)["$**"](e.$to_f()):s(null!=e.$$is_number)?Math.pow(t,e):t.$__coerced__("**",e)})),i(M,"$==",(function(e){return e.$$is_number?this.valueOf()===e.valueOf():!!e["$respond_to?"]("==")&&e["$=="](this)})),l(M,"===","=="),i(M,"$abs",(function(){return Math.abs(this)})),i(M,"$abs2",(function(){return Math.abs(this*this)})),i(M,"$allbits?",(function(e){return(this&(e=n["$coerce_to!"](e,O("Integer"),"to_int")))==e})),i(M,"$anybits?",(function(e){return 0!=(this&(e=n["$coerce_to!"](e,O("Integer"),"to_int")))})),i(M,"$angle",(function(){var e=this;return s(e["$nan?"]())?e:0==e?1/e>0?0:Math.PI:e<0?Math.PI:0})),i(M,"$bit_length",(function(){var e=this;if(a(O("Integer"),e)||r.$raise(O("NoMethodError").$new("undefined method `bit_length` for "+e+":Float","bit_length")),0===e||-1===e)return 0;for(var t=0,n=e<0?~e:e;0!=n;)t+=1,n>>>=1;return t})),i(M,"$ceil",(function(e){null==e&&(e=0);var t=this.$to_f();if(t%1==0&&e>=0)return t;var n=Math.pow(10,e),r=Math.ceil(t*n)/n;return t%1==0&&(r=Math.round(r)),r}),-1),i(M,"$chr",(function(t){return e.enc(String.fromCharCode(this),t||"BINARY")}),-1),i(M,"$denominator",(function e(){var t=e.$$p||S,n=this;return e.$$p=null,s(n["$nan?"]())||s(n["$infinite?"]())?1:c(n,_(n,"denominator",e,!1,!0),"denominator",[],t)})),i(M,"$downto",(function e(t){var n=e.$$p||S,i=this;if(e.$$p=null,n===S)return d(i,"enum_for",["downto",t],(function e(){var n=null==e.$$s?this:e.$$s;return a(O("Numeric"),t)||r.$raise(O("ArgumentError"),"comparison of "+n.$class()+" with "+t.$class()+" failed"),s(o(t,n))?0:p(f(n,t),1)}),{$$s:i});t.$$is_number||r.$raise(O("ArgumentError"),"comparison of "+i.$class()+" with "+t.$class()+" failed");for(var $=i;$>=t;$--)n($);return i})),i(M,"$equal?",(function(e){var t;return s(t=this["$=="](e))?t:isNaN(this)&&isNaN(e)})),i(M,"$even?",(function(){return this%2==0})),i(M,"$floor",(function(e){null==e&&(e=0);var t=this.$to_f();if(t%1==0&&e>=0)return t;var n=Math.pow(10,e),r=Math.floor(t*n)/n;return t%1==0&&(r=Math.round(r)),r}),-1),i(M,"$gcd",(function(e){a(O("Integer"),e)||r.$raise(O("TypeError"),"not an integer");for(var t=Math.abs(this),n=Math.abs(e);t>0;){var i=t;t=n%t,n=i}return n})),i(M,"$gcdlcm",(function(e){return[this.$gcd(e),this.$lcm(e)]})),i(M,"$integer?",(function(){return this%1==0})),i(M,"$is_a?",(function e(t){var n=e.$$p||S,r=this;return e.$$p=null,!(!h(t,O("Integer"))||!a(O("Integer"),r))||(!(!h(t,O("Integer"))||!a(O("Integer"),r))||(!(!h(t,O("Float"))||!a(O("Float"),r))||c(r,_(r,"is_a?",e,!1,!0),"is_a?",[t],n)))})),i(M,"$instance_of?",(function e(t){var n=e.$$p||S,r=this;return e.$$p=null,!(!h(t,O("Integer"))||!a(O("Integer"),r))||(!(!h(t,O("Integer"))||!a(O("Integer"),r))||(!(!h(t,O("Float"))||!a(O("Float"),r))||c(r,_(r,"instance_of?",e,!1,!0),"instance_of?",[t],n)))})),i(M,"$lcm",(function(e){var t=this;return a(O("Integer"),e)||r.$raise(O("TypeError"),"not an integer"),0==t||0==e?0:Math.abs(t*e/t.$gcd(e))})),i(M,"$next",(function(){return this+1})),i(M,"$nobits?",(function(e){return 0==(this&(e=n["$coerce_to!"](e,O("Integer"),"to_int")))})),i(M,"$nonzero?",(function(){return 0==this?S:this})),i(M,"$numerator",(function e(){var t=e.$$p||S,n=this;return e.$$p=null,s(n["$nan?"]())||s(n["$infinite?"]())?n:c(n,_(n,"numerator",e,!1,!0),"numerator",[],t)})),i(M,"$odd?",(function(){return this%2!=0})),i(M,"$ord",m),i(M,"$pow",(function(e,t){var n=this;return 0==n&&r.$raise(O("ZeroDivisionError"),"divided by 0"),void 0===t?n["$**"](e):(O("Integer")["$==="](e)||r.$raise(O("TypeError"),"Integer#pow() 2nd argument not allowed unless a 1st argument is integer"),e<0&&r.$raise(O("TypeError"),"Integer#pow() 1st argument cannot be negative when 2nd argument specified"),O("Integer")["$==="](t)||r.$raise(O("TypeError"),"Integer#pow() 2nd argument not allowed unless all arguments are integers"),0===t&&r.$raise(O("ZeroDivisionError"),"divided by 0"),n["$**"](e)["$%"](t))}),-2),i(M,"$pred",(function(){return this-1})),i(M,"$quo",(function e(t){var n=e.$$p||S,r=this;return e.$$p=null,a(O("Integer"),r)?c(r,_(r,"quo",e,!1,!0),"quo",[t],n):g(r,t)})),i(M,"$rationalize",(function(e){var t,n,i=this,o=S,$=S;return arguments.length>1&&r.$raise(O("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..1)"),a(O("Integer"),i)?O("Rational").$new(i,1):s(i["$infinite?"]())?r.$raise(O("FloatDomainError"),"Infinity"):s(i["$nan?"]())?r.$raise(O("FloatDomainError"),"NaN"):s(null==e)?(n=O("Math").$frexp(i),o=null==(t=v(n))[0]?S:t[0],$=null==t[1]?S:t[1],o=O("Math").$ldexp(o,O(O("Float"),"MANT_DIG")).$to_i(),$=f($,O(O("Float"),"MANT_DIG")),O("Rational").$new(b(2,o),1["$<<"](f(1,$))).$rationalize(O("Rational").$new(1,1["$<<"](f(1,$))))):i.$to_r().$rationalize(e)}),-1),i(M,"$remainder",(function(e){return f(this,b(e,g(this,e).$truncate()))})),i(M,"$round",(function(e){var t,i,$=this,l=S;if(a(O("Integer"),$)){if(s(null==e))return $;if(a(O("Float"),e)&&s(e["$infinite?"]())&&r.$raise(O("RangeError"),"Infinity"),e=n["$coerce_to!"](e,O("Integer"),"to_int"),s(u(e,O(O("Integer"),"MIN")))&&r.$raise(O("RangeError"),"out of bounds"),s(e>=0))return $;if(.415241*(e=e["$-@"]())-.125>$.$size())return 0;var c=Math.pow(10,e),_=Math.floor((Math.abs($)+c/2)/c)*c;return $<0?-_:_}if(s($["$nan?"]())&&s(null==e)&&r.$raise(O("FloatDomainError"),"NaN"),e=n["$coerce_to!"](e||0,O("Integer"),"to_int"),s(y(e,0)))s($["$nan?"]())?r.$raise(O("RangeError"),"NaN"):s($["$infinite?"]())&&r.$raise(O("FloatDomainError"),"Infinity");else{if(h(e,0))return Math.round($);if(s($["$nan?"]())||s($["$infinite?"]()))return $}return i=O("Math").$frexp($),null==(t=v(i))[0]?S:t[0],l=null==t[1]?S:t[1],s(w(e,f(p(O(O("Float"),"DIG"),2),s(o(l,0))?g(l,4):f(g(l,3),1))))?$:s(u(e,(s(o(l,0))?p(g(l,3),1):g(l,4))["$-@"]()))?0:Math.round($*Math.pow(10,e))/Math.pow(10,e)}),-1),i(M,"$times",(function e(){var t=e.$$p||S,n=this;if(e.$$p=null,!s(t))return d(n,"enum_for",["times"],(function e(){return null==e.$$s?this:e.$$s}),{$$s:n});for(var r=0;r<n;r++)t(r);return n})),i(M,"$to_f",m),i(M,"$to_i",(function(){var e=this;return e<0?Math.ceil(e):Math.floor(e)})),i(M,"$to_r",(function(){var e,t,n=this,r=S,i=S;return a(O("Integer"),n)?O("Rational").$new(n,1):(t=O("Math").$frexp(n),r=null==(e=v(t))[0]?S:e[0],i=null==e[1]?S:e[1],r=O("Math").$ldexp(r,O(O("Float"),"MANT_DIG")).$to_i(),i=f(i,O(O("Float"),"MANT_DIG")),b(r,O(O("Float"),"RADIX")["$**"](i)).$to_r())})),i(M,"$to_s",(function(e){var t=this;return null==e&&(e=10),e=n["$coerce_to!"](e,O("Integer"),"to_int"),(s(u(e,2))||s(o(e,36)))&&r.$raise(O("ArgumentError"),"invalid radix "+e),h(t,0)&&s(1/t==-1/0)?"-0.0":t.toString(e)}),-1),i(M,"$truncate",(function(e){null==e&&(e=0);var t=this.$to_f();if(t%1==0&&e>=0)return t;var n=Math.pow(10,e),r=parseInt(t*n,10)/n;return t%1==0&&(r=Math.round(r)),r}),-1),i(M,"$digits",(function(e){var t=this;null==e&&(e=10),s(u(t,0))&&r.$raise(O(O("Math"),"DomainError"),"out of domain"),e=n["$coerce_to!"](e,O("Integer"),"to_int"),s(u(e,2))&&r.$raise(O("ArgumentError"),"invalid radix "+e),t!=parseInt(t)&&r.$raise(O("NoMethodError"),"undefined method `digits' for "+t.$inspect());var i=t,a=[];if(0==t)return[0];for(;0!=i;)a.push(i%e),i=parseInt(i/e,10);return a}),-1),i(M,"$divmod",(function e(t){var n=e.$$p||S,i=this;return e.$$p=null,s(i["$nan?"]())||s(t["$nan?"]())?r.$raise(O("FloatDomainError"),"NaN"):s(i["$infinite?"]())?r.$raise(O("FloatDomainError"),"Infinity"):c(i,_(i,"divmod",e,!1,!0),"divmod",[t],n)})),i(M,"$upto",(function e(t){var n=e.$$p||S,i=this;if(e.$$p=null,n===S)return d(i,"enum_for",["upto",t],(function e(){var n=null==e.$$s?this:e.$$s;return a(O("Numeric"),t)||r.$raise(O("ArgumentError"),"comparison of "+n.$class()+" with "+t.$class()+" failed"),s(u(t,n))?0:p(f(t,n),1)}),{$$s:i});t.$$is_number||r.$raise(O("ArgumentError"),"comparison of "+i.$class()+" with "+t.$class()+" failed");for(var o=i;o<=t;o++)n(o);return i})),i(M,"$zero?",(function(){return 0==this})),i(M,"$size",x(4)),i(M,"$nan?",(function(){return isNaN(this)})),i(M,"$finite?",(function(){var e=this;return e!=1/0&&e!=-1/0&&!isNaN(e)})),i(M,"$infinite?",(function(){return this==1/0?1:this==-1/0?-1:S})),i(M,"$positive?",(function(){var e=this;return 0!=e&&(e==1/0||1/e>0)})),i(M,"$negative?",(function(){return this==-1/0||1/this<0})),i(M,"$next_float",(function(){var e=this;return h(e,O(O("Float"),"INFINITY"))?O(O("Float"),"INFINITY"):s(e["$nan?"]())?O(O("Float"),"NAN"):s(w(e,0))?D(Math.abs(e)):I(e)})),i(M,"$prev_float",(function(){var e=this;return h(e,O(O("Float"),"INFINITY")["$-@"]())?O(O("Float"),"INFINITY")["$-@"]():s(e["$nan?"]())?O(O("Float"),"NAN"):s(o(e,0))?I(e):-D(Math.abs(e))})),l(M,"arg","angle"),l(M,"eql?","=="),l(M,"fdiv","/"),l(M,"inspect","to_s"),l(M,"kind_of?","is_a?"),l(M,"magnitude","abs"),l(M,"modulo","%"),l(M,"object_id","__id__"),l(M,"phase","angle"),l(M,"succ","next"),l(M,"to_int","to_i")}(0,O("Numeric"),E),k("::","Fixnum",O("Number")),function(a,s,o){var $=t("::",s,"Integer"),u=[$].concat(o);$.$$is_number_class=!0,$.$$is_integer_class=!0,function(t,a){var s=[t].concat(a),o=e.$r(s);i(t,"$allocate",(function(){return r.$raise(O("TypeError"),"allocator undefined for "+this.$name())})),e.udef(t,"$new"),i(t,"$sqrt",(function(e){return(e=n["$coerce_to!"](e,O("Integer"),"to_int"))<0&&r.$raise(O(O("Math"),"DomainError"),'Numerical argument is out of domain - "isqrt"'),parseInt(Math.sqrt(e),10)})),i(t,"$try_convert",(function(e){return o("Opal")["$coerce_to?"](e,this,"to_int")}))}(e.get_singleton_class($),u),k($,"MAX",Math.pow(2,30)-1),k($,"MIN",-Math.pow(2,30))}(0,O("Numeric"),E),function(n,a,s){var o=t("::",a,"Float");[o].concat(s);return o.$$is_number_class=!0,function(t,n){i(t,"$allocate",(function(){return r.$raise(O("TypeError"),"allocator undefined for "+this.$name())})),e.udef(t,"$new"),i(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,O("Numeric"),E)},Opal.modules["corelib/range"]=function(e){var t=e.klass,n=e.truthy,r=e.Kernel,i=e.def,a=e.not,s=e.send2,o=e.find_super,$=e.lambda,u=e.send,l=e.rb_ge,c=e.rb_gt,_=e.eqeq,d=e.rb_le,p=e.rb_lt,f=e.eqeqeq,h=e.return_ivar,m=e.rb_minus,g=e.Opal,v=e.rb_divide,b=e.rb_plus,y=e.rb_times,w=e.thrower,x=e.alias,k=e.top,G=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,S,O){var M=t("::",null,"Range"),A=[M].concat(O),N=e.$r(A),z=M.$$prototype;function D(e){return e.begin===G||e.end===G||e.begin===-1/0||e.end===1/0||e.begin===1/0||e.end===-1/0}return z.begin=z.end=z.excl=G,M.$include(E("Enumerable")),M.$$prototype.$$is_range=!0,M.$attr_reader("begin","end"),i(M,"$initialize",(function(e,t,i){var a=this;return null==i&&(i=!1),n(a.begin)&&r.$raise(E("NameError"),"'initialize' called twice"),n(e["$<=>"](t))||n(e["$nil?"]())||n(t["$nil?"]())||r.$raise(E("ArgumentError"),"bad value for range"),a.begin=e,a.end=t,a.excl=i}),-3),i(M,"$===",(function(e){return!n(e.$$is_range)&&this["$cover?"](e)})),i(M,"$count",(function e(){var t=e.$$p||G,r=this;return e.$$p=null,a(t!==G)&&n(D(r))?E(E("Float"),"INFINITY"):s(r,o(r,"count",e,!1,!0),"count",[],t)})),i(M,"$to_a",(function e(){var t=e.$$p||G,i=this;return e.$$p=null,n(D(i))&&r.$raise(E("TypeError"),"cannot convert endless range to an array"),s(i,o(i,"to_a",e,!1,!0),"to_a",[],t)})),i(M,"$cover?",(function(e){var t,r=this,i=G,s=G,o=G,f=G,h=G,m=G,g=G;return i=$((function(e,t){var r;return null==e&&(e=G),null==t&&(t=G),n(r=e["$<=>"](t))?r:1})),n(e.$$is_range)?(s=e.$begin(),o=e.$end(),f=e["$exclude_end?"](),!(n(r.begin)&&n(s["$nil?"]())||n(r.end)&&n(o["$nil?"]())||n(s)&&n(o)&&n(u(i.$call(s,o),"then",[],(function(e){return null==e&&(e=G),n(f)?l(e,0):c(e,0)})))||n(s)&&a(r["$cover?"](s)))&&(h=i.$call(r.end,o),_(r.excl,f)?l(h,0):n(r.excl)?c(h,0):!!n(l(h,0))||(m=e.$max(),n(g=m["$nil?"]()["$!"]())?d(i.$call(m,r.end),0):g))):(!n(r.begin)||!n(c(i.$call(r.begin,e),0)))&&(!!n(r.end["$nil?"]())||(t=i.$call(e,r.end),n(r.excl)?p(t,0):d(t,0)))})),i(M,"$each",(function t(){var i,s,o,$=t.$$p||G,l=this,c=G,d=G;if(t.$$p=null,$===G)return u(l,"enum_for",["each"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:l});if(l.begin.$$is_number&&l.end.$$is_number){for(l.begin%1==0&&l.end%1==0||r.$raise(E("TypeError"),"can't iterate from Float"),s=l.begin,o=l.end+(n(l.excl)?0:1);s<o;s++)$(s);return l}if(l.begin.$$is_string&&l.end.$$is_string)return u(l.begin,"upto",[l.end,l.excl],$.$to_proc()),l;for(c=l.begin,i=l.end,n(c["$respond_to?"]("succ"))||r.$raise(E("TypeError"),"can't iterate from "+c.$class());n(n(d=l.end["$nil?"]())?d:p(c["$<=>"](i),0));)e.yield1($,c),c=c.$succ();return a(l.excl)&&_(c,i)&&e.yield1($,c),l})),i(M,"$eql?",(function(e){var t,r,i=this;return!!f(E("Range"),e)&&(n(t=n(r=i.excl["$==="](e["$exclude_end?"]()))?i.begin["$eql?"](e.$begin()):r)?i.end["$eql?"](e.$end()):t)})),i(M,"$exclude_end?",h("excl")),i(M,"$first",(function e(t){var i=e.$$p||G,a=this;return e.$$p=null,n(a.begin["$nil?"]())&&r.$raise(E("RangeError"),"cannot get the minimum of beginless range"),n(null==t)?a.begin:s(a,o(a,"first",e,!1,!0),"first",[t],i)}),-1),i(M,"$include?",(function e(t){var r=e.$$p||G,i=this,a=G,$=G;if(e.$$p=null,n(i.begin.$$is_number||i.end.$$is_number)||n(i.begin["$is_a?"](E("Time")))||n(i.end["$is_a?"](E("Time")))||n(E("Integer").$try_convert(i.begin))||n(E("Integer").$try_convert(i.end)))return i["$cover?"](t);if(n(i.begin.$$is_string||i.end.$$is_string)){if(n(i.begin.$$is_string&&i.end.$$is_string))return u(i.begin.$upto(i.end,i.excl),"any?",[],(function(e){return null==e&&(e=G),e["$=="](t)}));if(n(i.begin["$nil?"]()))return a=t["$<=>"](i.end),n($=a["$nil?"]()["$!"]())?n(i.excl)?p(a,0):d(a,0):$;if(n(i.end["$nil?"]()))return a=i.begin["$<=>"](t),n($=a["$nil?"]()["$!"]())?d(a,0):$}return s(i,o(i,"include?",e,!1,!0),"include?",[t],r)})),i(M,"$last",(function(e){var t=this;return n(t.end["$nil?"]())&&r.$raise(E("RangeError"),"cannot get the maximum of endless range"),n(null==e)?t.end:t.$to_a().$last(e)}),-1),i(M,"$max",(function e(){var t=e.$$p||G,i=this;return e.$$p=null,n(i.end["$nil?"]())?r.$raise(E("RangeError"),"cannot get the maximum of endless range"):t!==G?s(i,o(i,"max",e,!1,!0),"max",[],t):a(i.begin["$nil?"]())&&(n(c(i.begin,i.end))||n(i.excl)&&_(i.begin,i.end))?G:i.excl?i.end-1:i.end})),i(M,"$min",(function e(){var t=e.$$p||G,i=this;return e.$$p=null,n(i.begin["$nil?"]())?r.$raise(E("RangeError"),"cannot get the minimum of beginless range"):t!==G?s(i,o(i,"min",e,!1,!0),"min",[],t):a(i.end["$nil?"]())&&(n(c(i.begin,i.end))||n(i.excl)&&_(i.begin,i.end))?G:i.begin})),i(M,"$size",(function(){var e=this.begin,t=this.end;if(E("Numeric")["$==="](e)){if(E("Numeric")["$==="](t)){var n=m(t,e);return n<0?0:(this.excl||(n+=1),E("Float")["$==="](e)||E("Float")["$==="](t)?Math.floor(n):n)}if(t===G)return 1/0}else if(e===G&&E("Numeric")["$==="](t))return 1/0;return G})),i(M,"$step",(function t(i){var s=t.$$p||G,o=this,$=G,d=G;function p(){null==i?i=1:i.$$is_number||(i=g["$coerce_to!"](i,E("Integer"),"to_int")),i<0?r.$raise(E("ArgumentError"),"step can't be negative"):0===i&&r.$raise(E("ArgumentError"),"step can't be 0")}return t.$$p=null,s===G?(n(o.begin["$is_a?"](N("Numeric")))||n(o.begin["$nil?"]()))&&(n(o.end["$is_a?"](N("Numeric")))||n(o.end["$nil?"]()))&&a(n($=o.begin["$nil?"]())?o.end["$nil?"]():$)?E(E("Enumerator"),"ArithmeticSequence").$new(o,i,"step"):u(o,"enum_for",["step",i],(function(){return p(),function(){if(!o.begin["$respond_to?"]("succ"))return G;if(o.begin.$$is_string&&o.end.$$is_string)return G;if(i%1==0)return v(o.$size(),i).$ceil();var e,t=o.begin,n=o.end,r=Math.abs,a=Math.floor,s=(r(t)+r(n)+r(n-t))/r(i)*E(E("Float"),"EPSILON");return s>.5&&(s=.5),o.excl?(e=a((n-t)/i-s))*i+t<n&&e++:e=a((n-t)/i+s)+1,e}()})):(p(),n(o.begin.$$is_number&&o.end.$$is_number)?(d=0,function(){try{var t=w("break");return u(o,"loop",[],(function r(){var a,o=null==r.$$s?this:r.$$s;return null==o.begin&&(o.begin=G),null==o.excl&&(o.excl=G),null==o.end&&(o.end=G),a=b(o.begin,y(d,i)),n(o.excl)?n(l(a,o.end))&&t.$throw(G,r.$$is_lambda):n(c(a,o.end))&&t.$throw(G,r.$$is_lambda),e.yield1(s,a),d=b(d,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&&i%1!=0&&r.$raise(E("TypeError"),"no implicit conversion to float from string"),u(o,"each_with_index",[],(function(t,n){return null==t&&(t=G),null==n&&(n=G),_(n["$%"](i),0)?e.yield1(s,t):G}))),o)}),-1),i(M,"$%",(function(e){var t=this;return n(t.begin["$is_a?"](N("Numeric")))&&n(t.end["$is_a?"](N("Numeric")))?E(E("Enumerator"),"ArithmeticSequence").$new(t,e,"%"):t.$step(e)})),i(M,"$bsearch",(function e(){var t=e.$$p||G,i=this;return e.$$p=null,t===G?i.$enum_for("bsearch"):(n(D(i)&&(i.begin.$$is_number||i.end.$$is_number))&&r.$raise(E("NotImplementedError"),"Can't #bsearch an infinite range"),n(i.begin.$$is_number&&i.end.$$is_number)||r.$raise(E("TypeError"),"can't do binary search for "+i.begin.$class()),u(i.$to_a(),"bsearch",[],t.$to_proc()))})),i(M,"$to_s",(function(){var e=this,t=G;return(n(t=e.begin)?t:"")+(n(e.excl)?"...":"..")+(n(t=e.end)?t:"")})),i(M,"$inspect",(function(){var e=this,t=G;return(n(t=e.begin)?e.begin.$inspect():t)+(n(e.excl)?"...":"..")+(n(t=e.end)?e.end.$inspect():t)})),i(M,"$marshal_load",(function(e){var t=this;return t.begin=e["$[]"]("begin"),t.end=e["$[]"]("end"),t.excl=e["$[]"]("excl")})),i(M,"$hash",(function(){var e=this;return[E("Range"),e.begin,e.end,e.excl].$hash()})),x(M,"==","eql?"),x(M,"member?","include?")}(0,0,[])},Opal.modules["corelib/proc"]=function(e){var t,n=e.slice,r=e.each_ivar,i=e.klass,a=e.truthy,s=e.Kernel,o=e.defs,$=e.def,u=e.send,l=e.to_a,c=e.return_self,_=e.ensure_kwargs,d=e.hash_get,p=e.Opal,f=e.alias,h=e.nil,m=e.$$$;return e.add_stubs("raise,proc,call,to_proc,new,source_location,coerce_to!,dup"),t=i("::",Function,"Proc"),e.prop(t.$$prototype,"$$is_proc",!0),e.prop(t.$$prototype,"$$is_lambda",!1),o(t,"$new",(function e(){var t=e.$$p||h;return e.$$p=null,a(t)||s.$raise(m("ArgumentError"),"tried to create a Proc object without a block"),t})),$(t,"$call",(function t(r){var i,a=t.$$p||h,s=this;return t.$$p=null,i=n(arguments),a!==h&&(s.$$p=a),s.$$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}}(s,i):function(t,n){if(!t.$$brk)return e.yieldX(t,n);try{return e.yieldX(t,n)}catch(e){if(e===t.$$brk)return e.$v;throw e}}(s,i)}),-1),$(t,"$>>",(function e(t){return e.$$p=null,u(s,"proc",[],(function e(r){var i,a,s=e.$$p||h,o=null==e.$$s?this:e.$$s;return e.$$p=null,i=n(arguments),a=u(o,"call",l(i),s.$to_proc()),t.$call(a)}),{$$arity:-1,$$s:this})})),$(t,"$<<",(function e(t){return e.$$p=null,u(s,"proc",[],(function e(r){var i,a,s=e.$$p||h,o=null==e.$$s?this:e.$$s;return e.$$p=null,i=n(arguments),a=u(t,"call",l(i),s.$to_proc()),o.$call(a)}),{$$arity:-1,$$s:this})})),$(t,"$to_proc",c),$(t,"$lambda?",(function(){return!!this.$$is_lambda})),$(t,"$arity",(function(){var e=this;return e.$$is_curried?-1:null!=e.$$arity?e.$$arity:e.length})),$(t,"$source_location",(function(){var e;return this.$$is_curried?h:a(e=this.$$source_location)?e:h})),$(t,"$binding",(function(){var e=this;return e.$$is_curried&&s.$raise(m("ArgumentError"),"Can't create Binding"),a(m("::","Binding","skip_raise")?"constant":h)?m("Binding").$new(h,[],e.$$s,e.$source_location()):h})),$(t,"$parameters",(function(e){var t,n=this;if(e=_(e),t=d(e,"lambda"),n.$$is_curried)return[["rest"]];if(n.$$parameters){if(null==t?n.$$is_lambda:t)return n.$$parameters;var r,i,a=[];for(r=0,i=n.$$parameters.length;r<i;r++){var s=n.$$parameters[r];"req"===s[0]&&(s=["opt",s[1]]),a.push(s)}return a}return[]}),-1),$(t,"$curry",(function(e){var t=this;function r(){var i,a=n(arguments),o=a.length;return o>e&&t.$$is_lambda&&!t.$$is_curried&&s.$raise(m("ArgumentError"),"wrong number of arguments ("+o+" for "+e+")"),o>=e?t.$call.apply(t,a):(i=function(){return r.apply(null,a.concat(n(arguments)))},i.$$is_lambda=t.$$is_lambda,i.$$is_curried=!0,i)}return void 0===e?e=t.length:(e=p["$coerce_to!"](e,m("Integer"),"to_int"),t.$$is_lambda&&e!==t.length&&s.$raise(m("ArgumentError"),"wrong number of arguments ("+e+" for "+t.length+")")),r.$$is_lambda=t.$$is_lambda,r.$$is_curried=!0,r}),-1),$(t,"$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})),f(t,"===","call"),f(t,"clone","dup"),f(t,"yield","call"),f(t,"[]","call")},Opal.modules["corelib/method"]=function(e){var t,n,r=e.klass,i=e.def,a=e.truthy,s=e.slice,o=e.alias,$=e.Kernel,u=e.send,l=e.to_a,c=e.nil,_=e.$$$;return e.add_stubs("attr_reader,arity,curry,>>,<<,new,class,join,source_location,call,raise,bind,to_proc"),t=r("::",null,"Method"),(n=t.$$prototype).method=n.receiver=n.owner=n.name=c,t.$attr_reader("owner","receiver","name"),i(t,"$initialize",(function(e,t,n,r){var i=this;return i.receiver=e,i.owner=t,i.name=r,i.method=n})),i(t,"$arity",(function(){return this.method.$arity()})),i(t,"$parameters",(function(){return this.method.$$parameters})),i(t,"$source_location",(function(){var e;return a(e=this.method.$$source_location)?e:["(eval)",0]})),i(t,"$comments",(function(){var e;return a(e=this.method.$$comments)?e:[]})),i(t,"$call",(function e(t){var n,r=e.$$p||c,i=this;return e.$$p=null,n=s(arguments),i.method.$$p=r,i.method.apply(i.receiver,n)}),-1),i(t,"$curry",(function(e){return this.method.$curry(e)}),-1),i(t,"$>>",(function(e){return this.method["$>>"](e)})),i(t,"$<<",(function(e){return this.method["$<<"](e)})),i(t,"$unbind",(function(){var e=this;return _("UnboundMethod").$new(e.receiver.$class(),e.owner,e.method,e.name)})),i(t,"$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})),i(t,"$inspect",(function(){var e=this;return"#<"+e.$class()+": "+e.receiver.$class()+"#"+e.name+" (defined in "+e.owner+" in "+e.$source_location().$join(":")+")>"})),o(t,"[]","call"),o(t,"===","call"),function(t,n){var o=r("::",null,"UnboundMethod"),d=o.$$prototype;return d.method=d.owner=d.name=d.source=c,o.$attr_reader("source","owner","name"),i(o,"$initialize",(function(e,t,n,r){var i=this;return i.source=e,i.owner=t,i.method=n,i.name=r,i.$$method=n})),i(o,"$arity",(function(){return this.method.$arity()})),i(o,"$parameters",(function(){return this.method.$$parameters})),i(o,"$source_location",(function(){var e;return a(e=this.method.$$source_location)?e:["(eval)",0]})),i(o,"$comments",(function(){var e;return a(e=this.method.$$comments)?e:[]})),i(o,"$bind",(function(t){var n=this;if(n.owner.$$is_module||e.is_a(t,n.owner))return _("Method").$new(t,n.owner,n.method,n.name);$.$raise(_("TypeError"),"can't bind singleton method to a different class (expected "+t+".kind_of?("+n.owner+" to be true)")})),i(o,"$bind_call",(function e(t,n){var r,i=e.$$p||c;return e.$$p=null,r=s(arguments,1),u(this.$bind(t),"call",l(r),i.$to_proc())}),-2),i(o,"$inspect",(function(){var e=this;return"#<"+e.$class()+": "+e.source+"#"+e.name+" (defined in "+e.owner+" in "+e.$source_location().$join(":")+")>"}))}()},Opal.modules["corelib/variables"]=function(e){var t=e.gvars,n=e.const_set,r=e.Object,i=e.nil;return e.add_stubs("new"),t["&"]=t["~"]=t["`"]=t["'"]=i,t.LOADED_FEATURES=t['"']=e.loaded_features,t.LOAD_PATH=t[":"]=[],t["/"]="\n",t[","]=i,n("::","ARGV",[]),n("::","ARGF",r.$new()),n("::","ENV",new Map),t.VERBOSE=!1,t.DEBUG=!1,t.SAFE=0},Opal.modules["corelib/io"]=function(e){var t,n,r,i=e.klass,a=e.const_set,s=e.not,o=e.truthy,$=e.def,u=e.return_ivar,l=e.return_val,c=e.slice,_=e.Kernel,d=e.gvars,p=e.send,f=e.to_a,h=e.rb_plus,m=e.neqeq,g=e.range,v=e.eqeq,b=e.to_ary,y=e.rb_gt,w=e.assign_ivar_val,x=e.alias,k=e.nil,G=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="),n=i("::",null,"IO"),(r=n.$$prototype).read_buffer=r.closed=k,a(n,"SEEK_SET",0),a(n,"SEEK_CUR",1),a(n,"SEEK_END",2),a(n,"SEEK_DATA",3),a(n,"SEEK_HOLE",4),a(n,"READABLE",1),a(n,"WRITABLE",4),n.$attr_reader("eof"),n.$attr_accessor("read_proc","sync","tty","write_proc"),$(n,"$initialize",(function(e,t){var n=this;return null==t&&(t="r"),n.fd=e,n.flags=t,n.eof=!1,o(t["$include?"]("r"))&&s(t["$match?"](/[wa+]/))?n.closed="write":o(t["$match?"](/[wa]/))&&s(t["$match?"](/[r+]/))?n.closed="read":k}),-2),$(n,"$fileno",u("fd")),$(n,"$tty?",(function(){return 1==this.tty})),$(n,"$write",(function(e){return this.write_proc(e),e.$size()})),$(n,"$flush",l(k)),$(n,"$<<",(function(e){return this.$write(e),this})),$(n,"$print",(function(e){var t;null==d[","]&&(d[","]=k);for(var n=0,r=(t=c(arguments)).length;n<r;n++)t[n]=_.$String(t[n]);return this.$write(t.join(d[","])),k}),-1),$(n,"$puts",(function(e){var t,n,r=this;if(0===(t=c(arguments)).length)return r.$write("\n"),k;for(var i=0,a=t.length;i<a;i++)if(t[i].$$is_array){var s=t[i].$flatten();s.length>0&&p(r,"puts",f(s))}else(n=t[i].$$is_string?t[i].valueOf():_.$String(t[i])).endsWith("\n")||(n+="\n"),r.$write(n);return k}),-1),$(n,"$getc",(function(){var e,t=this,n=k,r=k;t.read_buffer=o(e=t.read_buffer)?e:"",n="";do{if(t.read_buffer=h(t.read_buffer,n),m(t.read_buffer,""))return r=t.read_buffer["$[]"](0),t.read_buffer=t.read_buffer["$[]"](g(1,-1,!1)),r}while(o(n=t.$sysread_noraise(1)));return k})),$(n,"$getbyte",(function(){var e;return(e=this.$getc())===k||null==e?k:e.$ord()})),$(n,"$readbyte",(function(){return this.$readchar().$ord()})),$(n,"$readchar",(function(){var e;return o(e=this.$getc())?e:_.$raise(G("EOFError"),"end of file reached")})),$(n,"$readline",(function(e){var t,n;return t=c(arguments),o(n=p(this,"gets",f(t)))?n:_.$raise(G("EOFError"),"end of file reached")}),-1),$(n,"$gets",(function(t,n,r){var i,a,$,u,l=this,c=k,_=k,p=k,f=k;null==d["/"]&&(d["/"]=k),null==t&&(t=!1),null==n&&(n=k),null==r&&(r=new Map),o(t.$$is_number)&&s(n)&&(t=(i=[!1,t,n])[0],n=i[1],r=i[2]),o(t.$$is_hash)&&s(n)&&v(r,new Map)?(t=(i=[!1,k,t])[0],n=i[1],r=i[2]):o(n.$$is_hash)&&v(r,new Map)&&(t=(i=[t,k,n])[0],n=i[1],r=i[2]),$=t,v(t,!1)&&(t=d["/"]),v(t,"")&&(t=/\r?\n\r?\n/),t=o(c=t)?c:"",v($,"")||(t=t.$to_str()),u=v($,"")?2:t.$length(),v(t," ")&&(t=/ /),l.read_buffer=o(c=l.read_buffer)?c:"",_="",p=k;do{if(l.read_buffer=h(l.read_buffer,_),m(t,"")&&o(o(t.$$is_regexp)?l.read_buffer["$match?"](t):l.read_buffer["$include?"](t))){f=l.read_buffer,a=l.read_buffer.$split(t,2),p=null==(i=b(a))[0]?k:i[0],l.read_buffer=null==i[1]?k:i[1],m(p,f)&&(p=h(p,f["$[]"](p.$length(),u)));break}}while(o(_=l.$sysread_noraise(v(t,"")?65536:1)));return o(p)||(p=(i=[o(c=l.read_buffer)?c:"",""])[0],l.read_buffer=i[1],v(p,"")&&(p=k)),o(p)&&(o(n)&&(p=p["$[]"](e.Range.$new(0,n,!0)),l.read_buffer=h(p["$[]"](e.Range.$new(n,-1,!1)),l.read_buffer)),o(r["$[]"]("chomp"))&&(p=p.$sub(/\r?\n$/,"")),v($,"")&&(p=p.$sub(/^[\r\n]+/,""))),v($,!1)&&(d._=p),p}),-1),$(n,"$sysread",(function(e){var t;return o(t=this.read_proc(e))?t:(this.eof=!0,_.$raise(G("EOFError"),"end of file reached"))})),$(n,"$sysread_noraise",(function(t){try{return this.$sysread(t)}catch(t){if(!e.rescue(t,[G("EOFError")]))throw t;try{return k}finally{e.pop_exception(t)}}})),$(n,"$readpartial",(function(e){var t,n,r=this,i=k,a=k;return r.read_buffer=o(i=r.read_buffer)?i:"",n=r.$sysread(e),a=(t=[h(r.read_buffer,o(i=n)?i:""),""])[0],r.read_buffer=t[1],v(a,"")&&(a=k),a})),$(n,"$read",(function(t){var n,r=this,i=k,a=k,s=k;null==t&&(t=k),r.read_buffer=o(i=r.read_buffer)?i:"",a="",s=k;do{if(r.read_buffer=h(r.read_buffer,a),o(t)&&o(y(r.read_buffer.$length(),t)))return s=(n=[r.read_buffer["$[]"](e.Range.$new(0,t,!0)),r.read_buffer["$[]"](e.Range.$new(t,-1,!1))])[0],r.read_buffer=n[1],s}while(o(a=r.$sysread_noraise(o(i=t)?i:65536)));return s=(n=[r.read_buffer,""])[0],r.read_buffer=n[1],s}),-1),$(n,"$readlines",(function(e){return null==d["/"]&&(d["/"]=k),null==e&&(e=d["/"]),this.$each_line(e).$to_a()}),-1),$(n,"$each",(function t(n,r){var i,a,s,$=t.$$p||k,u=this,l=k;if(null==d["/"]&&(d["/"]=k),t.$$p=null,(i=c(arguments)).length>0&&(a=i.shift()),null==a&&(a=d["/"]),s=i,$===k)return p(u,"enum_for",["each",a].concat(f(s)));for(;o(l=p(u,"gets",[a].concat(f(s))));)e.yield1($,l);return u}),-1),$(n,"$each_byte",(function t(){var n=t.$$p||k,r=this,i=k;if(t.$$p=null,n===k)return r.$enum_for("each_byte");for(;o(i=r.$getbyte());)e.yield1(n,i);return r})),$(n,"$each_char",(function t(){var n=t.$$p||k,r=this,i=k;if(t.$$p=null,n===k)return r.$enum_for("each_char");for(;o(i=r.$getc());)e.yield1(n,i);return r})),$(n,"$close",w("closed","both")),$(n,"$close_read",(function(){var e=this;return v(e.closed,"write")?e.closed="both":e.closed="read"})),$(n,"$close_write",(function(){var e=this;return v(e.closed,"read")?e.closed="both":e.closed="write"})),$(n,"$closed?",(function(){return this.closed["$=="]("both")})),$(n,"$closed_read?",(function(){var e;return o(e=this.closed["$=="]("read"))?e:this.closed["$=="]("both")})),$(n,"$closed_write?",(function(){var e;return o(e=this.closed["$=="]("write"))?e:this.closed["$=="]("both")})),$(n,"$check_writable",(function(){return o(this["$closed_write?"]())?_.$raise(G("IOError"),"not opened for writing"):k})),$(n,"$check_readable",(function(){return o(this["$closed_read?"]())?_.$raise(G("IOError"),"not opened for reading"):k})),x(n,"each_line","each"),x(n,"eof?","eof"),a("::","STDIN",d.stdin=G("IO").$new(0,"r")),a("::","STDOUT",d.stdout=G("IO").$new(1,"w")),a("::","STDERR",d.stderr=G("IO").$new(2,"w"));var E=e.global.console;return G("STDOUT")["$write_proc="]("object"==typeof process&&"object"==typeof process.stdout?function(e){process.stdout.write(e)}:function(e){E.log(e)}),G("STDERR")["$write_proc="]("object"==typeof process&&"object"==typeof process.stderr?function(e){process.stderr.write(e)}:function(e){E.warn(e)}),t=[function(e){var t=prompt();return null!==t?t+"\n":k}],p(G("STDIN"),"read_proc=",t),t[t.length-1]},Opal.modules["opal/regexp_anchors"]=function(e){var t=e.module,n=e.const_set,r=[],i=(e.nil,e.$$$);return e.add_stubs("new"),function(r,a){var s=t(r,"Opal"),o=[s].concat(a),$=e.$r(o);return n(s,"REGEXP_START","^"),n(s,"REGEXP_END","$"),n(s,"FORBIDDEN_STARTING_IDENTIFIER_CHARS","\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),n(s,"FORBIDDEN_ENDING_IDENTIFIER_CHARS","\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),n(s,"INLINE_IDENTIFIER_REGEXP",$("Regexp").$new("[^"+i(s,"FORBIDDEN_STARTING_IDENTIFIER_CHARS")+"]*[^"+i(s,"FORBIDDEN_ENDING_IDENTIFIER_CHARS")+"]")),n(s,"FORBIDDEN_CONST_NAME_CHARS","\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),n(s,"CONST_NAME_REGEXP",$("Regexp").$new(i(s,"REGEXP_START")+"(::)?[A-Z][^"+i(s,"FORBIDDEN_CONST_NAME_CHARS")+"]*"+i(s,"REGEXP_END")))}(r[0],r)},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("corelib/variables"),t.$require("corelib/io"),t.$require("opal/regexp_anchors")},Opal.modules["corelib/kernel/format"]=function(e){var t,n=e.coerce_to,r=e.module,i=e.slice,a=e.truthy,s=e.eqeq,o=e.Opal,$=e.Kernel,u=e.gvars,l=e.def,c=e.alias,_=e.nil,d=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"),t=r("::","Kernel"),l(t,"$format",(function(e,t){var r,l,c=_;null==u.DEBUG&&(u.DEBUG=_),r=i(arguments,1),s((l=r).$length(),1)&&a(l["$[]"](0)["$respond_to?"]("to_ary"))&&(c=o["$coerce_to?"](l["$[]"](0),d("Array"),"to_ary"),a(c["$nil?"]())||(l=c.$to_a()));var p,f,h,m,g,v,b,y,w,x,k,G,E,S,O,M,A="",N=0,z=e.length,D=1,I=0,T=16,R=128;function q(){32&M&&$.$raise(d("ArgumentError"),"flag after width"),M&R&&$.$raise(d("ArgumentError"),"flag after precision")}function C(){32&M&&$.$raise(d("ArgumentError"),"width given twice"),M&R&&$.$raise(d("ArgumentError"),"width after precision")}function j(e){return e>=l.length&&$.$raise(d("ArgumentError"),"too few arguments"),l[e]}function B(){switch(I){case-1:$.$raise(d("ArgumentError"),"unnumbered("+D+") mixed with numbered");case-2:$.$raise(d("ArgumentError"),"unnumbered("+D+") mixed with named")}return j((I=D++)-1)}function P(e){return I>0&&$.$raise(d("ArgumentError"),"numbered("+e+") after unnumbered("+I+")"),-2===I&&$.$raise(d("ArgumentError"),"numbered("+e+") after named"),e<1&&$.$raise(d("ArgumentError"),"invalid index - "+e+"$"),I=-1,j(e-1)}function L(){return void 0===O?B():O}function H(t){for(var n,r="";;f++){if(f===z&&$.$raise(d("ArgumentError"),"malformed format string - %*[0-9]"),e.charCodeAt(f)<48||e.charCodeAt(f)>57)return f--,(n=parseInt(r,10)||0)>2147483647&&$.$raise(d("ArgumentError"),t+" too big"),n;r+=e.charAt(f)}}function F(t){var n,r=H(t);return"$"===e.charAt(f+1)?(f++,n=P(r)):n=B(),n.$to_int()}for(f=e.indexOf("%");-1!==f;f=e.indexOf("%",f)){switch(m=void 0,M=0,v=-1,b=-1,O=void 0,p=f,f++,e.charAt(f)){case"%":N=f;case"":case"\n":case"\0":f++;continue}e:for(;f<z;f++)switch(e.charAt(f)){case" ":q(),M|=T;continue e;case"#":q(),M|=1;continue e;case"+":q(),M|=4;continue e;case"-":q(),M|=2;continue e;case"0":q(),M|=8;continue e;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":if(y=H("width"),"$"===e.charAt(f+1)){if(f+2===z){m="%",f++;break e}void 0!==O&&$.$raise(d("ArgumentError"),"value given twice - %"+y+"$"),O=P(y),f++}else C(),M|=32,v=y;continue e;case"<":case"{":for(x="<"===e.charAt(f)?">":"}",w="",f++;;f++){if(f===z&&$.$raise(d("ArgumentError"),"malformed name - unmatched parenthesis"),e.charAt(f)===x){if(I>0&&$.$raise(d("ArgumentError"),"named "+w+" after unnumbered("+I+")"),-1===I&&$.$raise(d("ArgumentError"),"named "+w+" after numbered"),I=-2,void 0!==l[0]&&l[0].$$is_hash||$.$raise(d("ArgumentError"),"one hash required"),O=l[0].$fetch(w),">"===x)continue e;if(m=O.toString(),-1!==b&&(m=m.slice(0,b)),2&M)for(;m.length<v;)m+=" ";else for(;m.length<v;)m=" "+m;break e}w+=e.charAt(f)}case"*":f++,C(),M|=32,(v=F("width"))<0&&(M|=2,v=-v);continue e;case".":if(M&R&&$.$raise(d("ArgumentError"),"precision given twice"),M|=192,b=0,f++,"*"===e.charAt(f)){f++,(b=F("precision"))<0&&(M&=-65);continue e}b=H("precision");continue e;case"d":case"i":case"u":if((h=$.$Integer(L()))>=0){for(m=h.toString();m.length<b;)m="0"+m;if(2&M)for((4&M||M&T)&&(m=(4&M?"+":" ")+m);m.length<v;)m+=" ";else if(8&M&&-1===b){for(;m.length<v-(4&M||M&T?1:0);)m="0"+m;(4&M||M&T)&&(m=(4&M?"+":" ")+m)}else for((4&M||M&T)&&(m=(4&M?"+":" ")+m);m.length<v;)m=" "+m}else{for(m=(-h).toString();m.length<b;)m="0"+m;if(2&M)for(m="-"+m;m.length<v;)m+=" ";else if(8&M&&-1===b){for(;m.length<v-1;)m="0"+m;m="-"+m}else for(m="-"+m;m.length<v;)m=" "+m}break e;case"b":case"B":case"o":case"x":case"X":switch(e.charAt(f)){case"b":case"B":k=2,G="0b",E=/^1+/,S="1";break;case"o":k=8,G="0",E=/^3?7+/,S="7";break;case"x":case"X":k=16,G="0x",E=/^f+/,S="f"}if((h=$.$Integer(L()))>=0){for(m=h.toString(k);m.length<b;)m="0"+m;if(2&M)for((4&M||M&T)&&(m=(4&M?"+":" ")+m),1&M&&0!==h&&(m=G+m);m.length<v;)m+=" ";else if(8&M&&-1===b){for(;m.length<v-(4&M||M&T?1:0)-(1&M&&0!==h?G.length:0);)m="0"+m;1&M&&0!==h&&(m=G+m),(4&M||M&T)&&(m=(4&M?"+":" ")+m)}else for(1&M&&0!==h&&(m=G+m),(4&M||M&T)&&(m=(4&M?"+":" ")+m);m.length<v;)m=" "+m}else if(4&M||M&T){for(m=(-h).toString(k);m.length<b;)m="0"+m;if(2&M)for(1&M&&(m=G+m),m="-"+m;m.length<v;)m+=" ";else if(8&M&&-1===b){for(;m.length<v-1-(1&M?2:0);)m="0"+m;1&M&&(m=G+m),m="-"+m}else for(1&M&&(m=G+m),m="-"+m;m.length<v;)m=" "+m}else{for(m=(h>>>0).toString(k).replace(E,S);m.length<b-2;)m=S+m;if(2&M)for(m=".."+m,1&M&&(m=G+m);m.length<v;)m+=" ";else if(8&M&&-1===b){for(;m.length<v-2-(1&M?G.length:0);)m=S+m;m=".."+m,1&M&&(m=G+m)}else for(m=".."+m,1&M&&(m=G+m);m.length<v;)m=" "+m}e.charAt(f)===e.charAt(f).toUpperCase()&&(m=m.toUpperCase());break e;case"f":case"e":case"E":case"g":case"G":if((h=$.$Float(L()))>=0||isNaN(h)){if(h===1/0)m="Inf";else switch(e.charAt(f)){case"f":m=h.toFixed(-1===b?6:b);break;case"e":case"E":m=h.toExponential(-1===b?6:b);break;case"g":case"G":m=h.toExponential(),(g=parseInt(m.split("e")[1],10))<-4||g>=(-1===b?6:b)||(m=h.toPrecision(-1===b?1&M?6:void 0:b))}if(2&M)for((4&M||M&T)&&(m=(4&M?"+":" ")+m);m.length<v;)m+=" ";else if(8&M&&h!==1/0&&!isNaN(h)){for(;m.length<v-(4&M||M&T?1:0);)m="0"+m;(4&M||M&T)&&(m=(4&M?"+":" ")+m)}else for((4&M||M&T)&&(m=(4&M?"+":" ")+m);m.length<v;)m=" "+m}else{if(h===-1/0)m="Inf";else switch(e.charAt(f)){case"f":m=(-h).toFixed(-1===b?6:b);break;case"e":case"E":m=(-h).toExponential(-1===b?6:b);break;case"g":case"G":m=(-h).toExponential(),(g=parseInt(m.split("e")[1],10))<-4||g>=(-1===b?6:b)||(m=(-h).toPrecision(-1===b?1&M?6:void 0:b))}if(2&M)for(m="-"+m;m.length<v;)m+=" ";else if(8&M&&h!==-1/0){for(;m.length<v-1;)m="0"+m;m="-"+m}else for(m="-"+m;m.length<v;)m=" "+m}e.charAt(f)!==e.charAt(f).toUpperCase()||h===1/0||h===-1/0||isNaN(h)||(m=m.toUpperCase()),m=m.replace(/([eE][-+]?)([0-9])$/,"$10$2");break e;case"a":case"A":$.$raise(d("NotImplementedError"),"`A` and `a` format field types are not implemented in Opal yet");case"c":if((h=L())["$respond_to?"]("to_ary")&&(h=h.$to_ary()[0]),1!==(m=h["$respond_to?"]("to_str")?h.$to_str():String.fromCharCode(n(h,d("Integer"),"to_int"))).length&&$.$raise(d("ArgumentError"),"%c requires a character"),2&M)for(;m.length<v;)m+=" ";else for(;m.length<v;)m=" "+m;break e;case"p":if(m=L().$inspect(),-1!==b&&(m=m.slice(0,b)),2&M)for(;m.length<v;)m+=" ";else for(;m.length<v;)m=" "+m;break e;case"s":if(m=L().$to_s(),-1!==b&&(m=m.slice(0,b)),2&M)for(;m.length<v;)m+=" ";else for(;m.length<v;)m=" "+m;break e;default:$.$raise(d("ArgumentError"),"malformed format string - %"+e.charAt(f))}void 0===m&&$.$raise(d("ArgumentError"),"malformed format string - %"),A+=e.slice(N,p)+m,N=f+1}return u.DEBUG&&I>=0&&D<l.length&&$.$raise(d("ArgumentError"),"too many arguments for format string"),A+e.slice(N)}),-2),c(t,"sprintf","format")},Opal.modules["corelib/string/encoding"]=function(e){var t,n=e.klass,r=e.rb_plus,i=e.truthy,a=e.send,s=e.defs,o=e.eqeq,$=e.def,u=e.return_ivar,l=e.return_val,c=e.slice,_=e.Kernel,d=e.Opal,p=e.rb_lt,f=e.top,h=[],m=e.$r(h),g=e.nil,v=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="),f.$require("corelib/string"),function(t,d,p){var f=n("::",null,"Encoding"),h=[f].concat(p),m=f.$$prototype;m.name=m.dummy=g,s(f,"$register",(function t(n,s){var o,$,u,l=t.$$p||g,c=g,_=g,d=g;return t.$$p=null,null==s&&(s=new Map),o=r([n],i(c=s["$[]"]("aliases"))?c:[]),$=i(c=s["$[]"]("ascii"))&&c,u=i(c=s["$[]"]("dummy"))&&c,i(s["$[]"]("inherits"))?(_=s["$[]"]("inherits").$clone()).$initialize(n,o,$,u):_=this.$new(n,o,$,u),l!==g&&a(_,"instance_eval",[],l.$to_proc()),d=e.encodings,a(o,"each",[],(function e(t){return null==t&&(t=g),(null==e.$$s?this:e.$$s).$const_set(t.$tr("-","_"),_),d[t]=_}),{$$s:this})}),-2),s(f,"$find",(function(t){return o(t,"default_external")?this.$default_external():e.find_encoding(t)})),f.$singleton_class().$attr_accessor("default_external"),f.$attr_reader("name","names"),$(f,"$initialize",(function(e,t,n,r){var i=this;return i.name=e,i.names=t,i.ascii=n,i.dummy=r})),$(f,"$ascii_compatible?",u("ascii")),$(f,"$dummy?",u("dummy")),$(f,"$binary?",l(!1)),$(f,"$to_s",u("name")),$(f,"$inspect",(function(){return"#<Encoding:"+this.name+(i(this.dummy)?" (dummy)":g)+">"})),$(f,"$charsize",(function(e){for(var t=0,n=0,r=e.length;n<r;n++){var i=e.charCodeAt(n);i>=55296&&i<=56319||t++}return t})),$(f,"$each_char",(function t(n){var r=t.$$p||g;t.$$p=null;for(var i="",a=0,s=n.length;a<s;a++){var o=n.charCodeAt(a),$=n.charAt(a);o>=55296&&o<=56319?i=$:(o>=56320&&o<=57343&&($=i+$),"UTF-8"!=n.encoding.name&&(($=new String($)).encoding=n.encoding),e.yield1(r,$))}})),$(f,"$each_byte",(function(e){return c(arguments),_.$raise(v("NotImplementedError"))}),-1),$(f,"$bytesize",(function(e){return c(arguments),_.$raise(v("NotImplementedError"))}),-1),n("::",v("StandardError"),"EncodingError"),n("::",v("EncodingError"),"CompatibilityError"),n(h[0],v("EncodingError"),"UndefinedConversionError")}(0,0,h),a(v("Encoding"),"register",["UTF-8",new Map([["aliases",["CP65001"]],["ascii",!0]])],(function t(){var n=null==t.$$s?this:t.$$s;return $(n,"$each_byte",(function t(n){var r=t.$$p||g;t.$$p=null;for(var i,a=1/0,s=n.length,o=null,$=0;$<s;++$){if((i=n.charCodeAt($))>55295&&i<57344){if(!o){if(i>56319){(a-=3)>-1&&(e.yield1(r,239),e.yield1(r,191),e.yield1(r,189));continue}if($+1===s){(a-=3)>-1&&(e.yield1(r,239),e.yield1(r,191),e.yield1(r,189));continue}o=i;continue}if(i<56320){(a-=3)>-1&&(e.yield1(r,239),e.yield1(r,191),e.yield1(r,189)),o=i;continue}i=65536+(o-55296<<10|i-56320)}else o&&(a-=3)>-1&&(e.yield1(r,239),e.yield1(r,191),e.yield1(r,189));if(o=null,i<128){if((a-=1)<0)break;e.yield1(r,i)}else if(i<2048){if((a-=2)<0)break;e.yield1(r,i>>6|192),e.yield1(r,63&i|128)}else if(i<65536){if((a-=3)<0)break;e.yield1(r,i>>12|224),e.yield1(r,i>>6&63|128),e.yield1(r,63&i|128)}else if(i<1114112){if((a-=4)<0)break;e.yield1(r,i>>18|240),e.yield1(r,i>>12&63|128),e.yield1(r,i>>6&63|128),e.yield1(r,63&i|128)}}})),$(n,"$bytesize",(function(e){return e.$bytes().$length()}))}),{$$s:f}),a(v("Encoding"),"register",["UTF-16LE"],(function t(){var n=null==t.$$s?this:t.$$s;return $(n,"$each_byte",(function t(n){var r=t.$$p||g;t.$$p=null;for(var i=0,a=n.length;i<a;i++){var s=n.charCodeAt(i);e.yield1(r,255&s),e.yield1(r,s>>8)}})),$(n,"$bytesize",(function(e){return 2*e.length}))}),{$$s:f}),a(v("Encoding"),"register",["UTF-16BE",new Map([["inherits",v(v("Encoding"),"UTF_16LE")]])],(function t(){return $(null==t.$$s?this:t.$$s,"$each_byte",(function t(n){var r=t.$$p||g;t.$$p=null;for(var i=0,a=n.length;i<a;i++){var s=n.charCodeAt(i);e.yield1(r,s>>8),e.yield1(r,255&s)}}))}),{$$s:f}),a(v("Encoding"),"register",["UTF-32LE"],(function t(){var n=null==t.$$s?this:t.$$s;return $(n,"$each_byte",(function t(n){var r=t.$$p||g;t.$$p=null;for(var i=0,a=n.length;i<a;i++){var s=n.charCodeAt(i);e.yield1(r,255&s),e.yield1(r,s>>8),e.yield1(r,0),e.yield1(r,0)}})),$(n,"$bytesize",(function(e){return 4*e.length}))}),{$$s:f}),a(v("Encoding"),"register",["UTF-32BE",new Map([["inherits",v(v("Encoding"),"UTF_32LE")]])],(function t(){return $(null==t.$$s?this:t.$$s,"$each_byte",(function t(n){var r=t.$$p||g;t.$$p=null;for(var i=0,a=n.length;i<a;i++){var s=n.charCodeAt(i);e.yield1(r,0),e.yield1(r,0),e.yield1(r,s>>8),e.yield1(r,255&s)}}))}),{$$s:f}),a(v("Encoding"),"register",["ASCII-8BIT",new Map([["aliases",["BINARY"]],["ascii",!0]])],(function t(){var n=null==t.$$s?this:t.$$s;return $(n,"$each_char",(function t(n){var r=t.$$p||g;t.$$p=null;for(var i=0,a=n.length;i<a;i++){var s=new String(n.charAt(i));s.encoding=n.encoding,e.yield1(r,s)}})),$(n,"$charsize",(function(e){return e.length})),$(n,"$each_byte",(function t(n){var r=t.$$p||g;t.$$p=null;for(var i=0,a=n.length;i<a;i++){var s=n.charCodeAt(i);e.yield1(r,255&s)}})),$(n,"$bytesize",(function(e){return e.length})),$(n,"$binary?",l(!0))}),{$$s:f}),v("Encoding").$register("ISO-8859-1",new Map([["aliases",["ISO8859-1"]],["ascii",!0],["inherits",v(v("Encoding"),"ASCII_8BIT")]])),v("Encoding").$register("US-ASCII",new Map([["aliases",["ASCII"]],["ascii",!0],["inherits",v(v("Encoding"),"ASCII_8BIT")]])),function(t,r){var s=n("::",null,"String"),o=s.$$prototype;o.internal_encoding=o.bytes=o.encoding=g,s.$attr_reader("encoding"),s.$attr_reader("internal_encoding"),e.prop(String.prototype,"bytes",g),e.prop(String.prototype,"encoding",v(v("Encoding"),"UTF_8")),e.prop(String.prototype,"internal_encoding",v(v("Encoding"),"UTF_8")),$(s,"$b",(function(){return this.$dup().$force_encoding("binary")})),$(s,"$bytesize",(function(){return this.internal_encoding.$bytesize(this)})),$(s,"$each_byte",(function e(){var t=e.$$p||g,n=this;return e.$$p=null,t===g?a(n,"enum_for",["each_byte"],(function e(){return(null==e.$$s?this:e.$$s).$bytesize()}),{$$s:n}):(a(n.internal_encoding,"each_byte",[n],t.$to_proc()),n)})),$(s,"$bytes",(function(){var e,t=this;return"string"==typeof t?new String(t).$each_byte().$to_a():(t.bytes=i(e=t.bytes)?e:t.$each_byte().$to_a(),t.bytes.$dup())})),$(s,"$each_char",(function e(){var t=e.$$p||g,n=this;return e.$$p=null,t===g?a(n,"enum_for",["each_char"],(function e(){return(null==e.$$s?this:e.$$s).$length()}),{$$s:n}):(a(n.encoding,"each_char",[n],t.$to_proc()),n)})),$(s,"$chars",(function e(){var t=e.$$p||g;return e.$$p=null,i(t)?a(this,"each_char",[],t.$to_proc()):this.$each_char().$to_a()})),$(s,"$each_codepoint",(function t(){var n=t.$$p||g,r=this;if(t.$$p=null,n===g)return r.$enum_for("each_codepoint");for(var i=0,a=r.length;i<a;i++)e.yield1(n,r.codePointAt(i));return r})),$(s,"$codepoints",(function e(){var t=e.$$p||g;return e.$$p=null,t!==g?a(this,"each_codepoint",[],t.$to_proc()):this.$each_codepoint().$to_a()})),$(s,"$encode",(function(t){return e.enc(this,t)})),$(s,"$force_encoding",(function(t){var n=this;return t===n.encoding?n:(t=d["$coerce_to!"](t,v("String"),"to_s"),(t=v("Encoding").$find(t))===n.encoding?n:n=e.set_encoding(n,t))})),$(s,"$getbyte",(function(e){var t=g;return t=this.$bytes(),e=d["$coerce_to!"](e,v("Integer"),"to_int"),i(p(t.$length(),e))?g:t["$[]"](e)})),$(s,"$initialize_copy",(function(e){this.encoding=e.encoding,this.internal_encoding=e.internal_encoding})),$(s,"$valid_encoding?",l(!0))}(),t=[v(m("Encoding"),"UTF_8")],a(v("Encoding"),"default_external=",t),t[t.length-1]},Opal.modules["corelib/math"]=function(e){var t=e.type_error,n=e.module,r=e.const_set,i=e.Class,a=e.slice,s=e.Kernel,o=e.defs,$=e.truthy,u=e.send,l=e.def,c=e.rb_minus,_=e.eqeqeq,d=e.rb_divide,p=e.nil,f=e.$$$;return e.add_stubs("new,raise,Float,Integer,module_function,each,define_method,checked,float!,===,gamma,-,integer!,/,infinite?"),function(h,m){var g=n("::","Math"),v=[g].concat(m),b=e.$r(v);return r(g,"E",Math.E),r(g,"PI",Math.PI),r(g,"DomainError",i.$new(f("StandardError"))),o(g,"$checked",(function(e,t){var n;if(n=a(arguments,1),isNaN(n[0])||2==n.length&&isNaN(n[1]))return NaN;var r=Math[e].apply(null,n);return isNaN(r)&&s.$raise(b("DomainError"),'Numerical argument is out of domain - "'+e+'"'),r}),-2),o(g,"$float!",(function(n){try{return s.$Float(n)}catch(r){if(!e.rescue(r,[f("ArgumentError")]))throw r;try{return s.$raise(t(n,f("Float")))}finally{e.pop_exception(r)}}})),o(g,"$integer!",(function(n){try{return s.$Integer(n)}catch(r){if(!e.rescue(r,[f("ArgumentError")]))throw r;try{return s.$raise(t(n,f("Integer")))}finally{e.pop_exception(r)}}})),g.$module_function(),$(void 0!==Math.erf)||e.prop(Math,"erf",(function(e){var t=1;e<0&&(t=-1);var n=1/(1+.3275911*(e=Math.abs(e)));return t*(1-((((1.061405429*n-1.453152027)*n+1.421413741)*n-.284496736)*n+.254829592)*n*Math.exp(-e*e))})),$(void 0!==Math.erfc)||e.prop(Math,"erfc",(function(e){var t=Math.abs(e),n=1/(.5*t+1),r=-t*t-1.26551223+n*(n*(n*(n*(n*(n*(n*(n*(.17087277*n-.82215223)+1.48851587)-1.13520398)+.27886807)-.18628806)+.09678418)+.37409196)+1.00002368),i=n*Math.exp(r);return e<0?2-i:i})),u(["acos","acosh","asin","asinh","atan","atanh","cbrt","cos","cosh","erf","erfc","exp","sin","sinh","sqrt","tanh"],"each",[],(function e(t){return null==t&&(t=p),u(null==e.$$s?this:e.$$s,"define_method",[t],(function(e){return null==e&&(e=p),f("Math").$checked(t,f("Math")["$float!"](e))}))}),{$$s:g}),l(g,"$atan2",(function(e,t){return f("Math").$checked("atan2",f("Math")["$float!"](e),f("Math")["$float!"](t))})),l(g,"$hypot",(function(e,t){return f("Math").$checked("hypot",f("Math")["$float!"](e),f("Math")["$float!"](t))})),l(g,"$frexp",(function(e){if(e=b("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]})),l(g,"$gamma",(function(e){var t,n,r,i,a,o,$,u,l;e=b("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||s.$raise(b("DomainError"),'Numerical argument is out of domain - "gamma"'),b("Integer")["$==="](e)){if(e<=0)return isFinite(e)?1/0:NaN;if(e>171)return 1/0;for(i=e-2,a=e-1;i>1;)a*=i,i--;return 0==a&&(a=1),a}if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*f("Math").$gamma(c(1,e)));if(e>=171.35)return 1/0;if(e>85)return l=(u=($=(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*$)-571/(2488320*u)+163879/(209018880*l)+5246819/(75246796800*l*e));for(e-=1,r=_[0],t=1;t<_.length;++t)r+=_[t]/(e+t);return n=e+4.7421875+.5,Math.sqrt(2*Math.PI)*Math.pow(n,e+.5)*Math.exp(-n)*r})),l(g,"$ldexp",(function(e,t){return e=b("Math")["$float!"](e),t=b("Math")["$integer!"](t),isNaN(t)&&s.$raise(f("RangeError"),"float NaN out of range of integer"),e*Math.pow(2,t)})),l(g,"$lgamma",(function(e){return-1==e?[1/0,1]:[Math.log(Math.abs(f("Math").$gamma(e))),f("Math").$gamma(e)<0?-1:1]})),l(g,"$log",(function(e,n){return _(f("String"),e)&&s.$raise(t(e,f("Float"))),$(null==n)?f("Math").$checked("log",f("Math")["$float!"](e)):(_(f("String"),n)&&s.$raise(t(n,f("Float"))),d(f("Math").$checked("log",f("Math")["$float!"](e)),f("Math").$checked("log",f("Math")["$float!"](n))))}),-2),l(g,"$log10",(function(e){return _(f("String"),e)&&s.$raise(t(e,f("Float"))),f("Math").$checked("log10",f("Math")["$float!"](e))})),l(g,"$log2",(function(e){return _(f("String"),e)&&s.$raise(t(e,f("Float"))),f("Math").$checked("log2",f("Math")["$float!"](e))})),l(g,"$tan",(function(e){return e=f("Math")["$float!"](e),$(e["$infinite?"]())?f(f("Float"),"NAN"):f("Math").$checked("tan",f("Math")["$float!"](e))}))}(0,[])},Opal.modules["corelib/complex/base"]=function(e){var t=e.module,n=e.truthy,r=e.def,i=e.klass,a=[],s=e.nil;return e.add_stubs("new,from_string"),function(i,a){var o=t("::","Kernel"),$=[o].concat(a),u=e.$r($);r(o,"$Complex",(function(e,t){return null==t&&(t=s),n(t)?u("Complex").$new(e,t):u("Complex").$new(e,0)}),-2)}(0,a),function(t,n,a){var s=i("::",null,"String"),o=[s].concat(a),$=e.$r(o);return r(s,"$to_c",(function(){return $("Complex").$from_string(this)}))}(0,0,a)},Opal.modules["corelib/complex"]=function(e){var t=e.klass,n=e.truthy,r=e.eqeqeq,i=e.Kernel,a=e.defs,s=e.rb_times,o=e.def,$=e.rb_plus,u=e.rb_minus,l=e.rb_divide,c=e.eqeq,_=e.to_ary,d=e.rb_gt,p=e.neqeq,f=e.return_val,h=e.const_set,m=e.alias,g=e.top,v=e.nil,b=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,w){var x=t("::",y,"Complex"),k=[x].concat(w),G=e.$r(k),E=x.$$prototype;return E.real=E.imag=v,a(x,"$rect",(function(e,t){return null==t&&(t=0),r(b("Numeric"),e)&&n(e["$real?"]())&&r(b("Numeric"),t)&&n(t["$real?"]())||i.$raise(b("TypeError"),"not a real"),this.$new(e,t)}),-2),a(x,"$polar",(function(e,t){return null==t&&(t=0),r(b("Numeric"),e)&&n(e["$real?"]())&&r(b("Numeric"),t)&&n(t["$real?"]())||i.$raise(b("TypeError"),"not a real"),this.$new(s(e,b("Math").$cos(t)),s(e,b("Math").$sin(t)))}),-2),x.$attr_reader("real","imag"),o(x,"$initialize",(function(e,t){var n=this;return null==t&&(t=0),n.real=e,n.imag=t,n.$freeze()}),-2),o(x,"$coerce",(function(e){return r(b("Complex"),e)?[e,this]:r(b("Numeric"),e)&&n(e["$real?"]())?[b("Complex").$new(e,0),this]:i.$raise(b("TypeError"),e.$class()+" can't be coerced into Complex")})),o(x,"$==",(function(e){var t=this,i=v;return r(b("Complex"),e)?n(i=t.real["$=="](e.$real()))?t.imag["$=="](e.$imag()):i:r(b("Numeric"),e)&&n(e["$real?"]())?n(i=t.real["$=="](e))?t.imag["$=="](0):i:e["$=="](t)})),o(x,"$-@",(function(){return i.$Complex(this.real["$-@"](),this.imag["$-@"]())})),o(x,"$+",(function(e){var t=this;return r(b("Complex"),e)?i.$Complex($(t.real,e.$real()),$(t.imag,e.$imag())):r(b("Numeric"),e)&&n(e["$real?"]())?i.$Complex($(t.real,e),t.imag):t.$__coerced__("+",e)})),o(x,"$-",(function(e){var t=this;return r(b("Complex"),e)?i.$Complex(u(t.real,e.$real()),u(t.imag,e.$imag())):r(b("Numeric"),e)&&n(e["$real?"]())?i.$Complex(u(t.real,e),t.imag):t.$__coerced__("-",e)})),o(x,"$*",(function(e){var t=this;return r(b("Complex"),e)?i.$Complex(u(s(t.real,e.$real()),s(t.imag,e.$imag())),$(s(t.real,e.$imag()),s(t.imag,e.$real()))):r(b("Numeric"),e)&&n(e["$real?"]())?i.$Complex(s(t.real,e),s(t.imag,e)):t.$__coerced__("*",e)})),o(x,"$/",(function(e){var t=this;return r(b("Complex"),e)?r(b("Number"),t.real)&&n(t.real["$nan?"]())||r(b("Number"),t.imag)&&n(t.imag["$nan?"]())||r(b("Number"),e.$real())&&n(e.$real()["$nan?"]())||r(b("Number"),e.$imag())&&n(e.$imag()["$nan?"]())?b("Complex").$new(b(b("Float"),"NAN"),b(b("Float"),"NAN")):l(s(t,e.$conj()),e.$abs2()):r(b("Numeric"),e)&&n(e["$real?"]())?i.$Complex(t.real.$quo(e),t.imag.$quo(e)):t.$__coerced__("/",e)})),o(x,"$**",(function(e){var t,a,o=this,f=v,h=v,m=v,g=v,y=v,w=v,x=v,k=v,G=v,E=v,S=v;if(c(e,0))return b("Complex").$new(1,0);if(r(b("Complex"),e))return a=o.$polar(),f=null==(t=_(a))[0]?v:t[0],h=null==t[1]?v:t[1],m=e.$real(),g=e.$imag(),y=b("Math").$exp(u(s(m,b("Math").$log(f)),s(g,h))),w=$(s(h,m),s(g,b("Math").$log(f))),b("Complex").$polar(y,w);if(r(b("Integer"),e)){if(n(d(e,0))){for(k=x=o,G=u(e,1);p(G,0);){for(a=G.$divmod(2),E=null==(t=_(a))[0]?v:t[0],S=null==t[1]?v:t[1];c(S,0);)x=i.$Complex(u(s(x.$real(),x.$real()),s(x.$imag(),x.$imag())),s(s(2,x.$real()),x.$imag())),a=(G=E).$divmod(2),E=null==(t=_(a))[0]?v:t[0],S=null==t[1]?v:t[1];k=s(k,x),G=u(G,1)}return k}return l(b("Rational").$new(1,1),o)["$**"](e["$-@"]())}return r(b("Float"),e)||r(b("Rational"),e)?(a=o.$polar(),f=null==(t=_(a))[0]?v:t[0],h=null==t[1]?v:t[1],b("Complex").$polar(f["$**"](e),s(h,e))):o.$__coerced__("**",e)})),o(x,"$abs",(function(){return b("Math").$hypot(this.real,this.imag)})),o(x,"$abs2",(function(){var e=this;return $(s(e.real,e.real),s(e.imag,e.imag))})),o(x,"$angle",(function(){return b("Math").$atan2(this.imag,this.real)})),o(x,"$conj",(function(){return i.$Complex(this.real,this.imag["$-@"]())})),o(x,"$denominator",(function(){return this.real.$denominator().$lcm(this.imag.$denominator())})),o(x,"$eql?",(function(e){var t,r,i=this;return n(t=n(r=G("Complex")["$==="](e))?i.real.$class()["$=="](i.imag.$class()):r)?i["$=="](e):t})),o(x,"$fdiv",(function(e){return r(b("Numeric"),e)||i.$raise(b("TypeError"),e.$class()+" can't be coerced into Complex"),l(this,e)})),o(x,"$finite?",(function(){var e;return n(e=this.real["$finite?"]())?this.imag["$finite?"]():e})),o(x,"$hash",(function(){return[b("Complex"),this.real,this.imag].$hash()})),o(x,"$infinite?",(function(){var e;return n(e=this.real["$infinite?"]())?e:this.imag["$infinite?"]()})),o(x,"$inspect",(function(){return"("+this+")"})),o(x,"$numerator",(function(){var e,t=this;return e=t.$denominator(),i.$Complex(s(t.real.$numerator(),l(e,t.real.$denominator())),s(t.imag.$numerator(),l(e,t.imag.$denominator())))})),o(x,"$polar",(function(){return[this.$abs(),this.$arg()]})),o(x,"$rationalize",(function(e){var t=this;return arguments.length>1&&i.$raise(b("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..1)"),p(t.imag,0)&&i.$raise(b("RangeError"),"can't convert "+t+" into Rational"),t.$real().$rationalize(e)}),-1),o(x,"$real?",f(!1)),o(x,"$rect",(function(){return[this.real,this.imag]})),o(x,"$to_f",(function(){var e=this;return c(e.imag,0)||i.$raise(b("RangeError"),"can't convert "+e+" into Float"),e.real.$to_f()})),o(x,"$to_i",(function(){var e=this;return c(e.imag,0)||i.$raise(b("RangeError"),"can't convert "+e+" into Integer"),e.real.$to_i()})),o(x,"$to_r",(function(){var e=this;return c(e.imag,0)||i.$raise(b("RangeError"),"can't convert "+e+" into Rational"),e.real.$to_r()})),o(x,"$to_s",(function(){var e=this,t=v;return t=e.real.$inspect(),t=$(t,r(b("Number"),e.imag)&&n(e.imag["$nan?"]())||n(e.imag["$positive?"]())||n(e.imag["$zero?"]())?"+":"-"),t=$(t,e.imag.$abs().$inspect()),r(b("Number"),e.imag)&&(n(e.imag["$nan?"]())||n(e.imag["$infinite?"]()))&&(t=$(t,"*")),$(t,"i")})),h(k[0],"I",x.$new(0,1)),a(x,"$from_string",(function(e){var t,n,r=/[+-]?[\d_]+(\.[\d_]+)?(e\d+)?/;e.match(r);function a(){return r.test(e)}function s(){var t=e.match(r)[0];return e=e.slice(t.length),t.replace(/_/g,"")}function o(){if(a()){var t=parseFloat(s());if("/"===e[0]){if(e=e.slice(1),a()){var n=parseFloat(s());return i.$Rational(t,n)}return e="/"+e,t}return t}return null}return(t=o())?(n=o())?i.$Complex(t,n):"i"===e[0]?i.$Complex(0,t):i.$Complex(t,0):"i"===e[0]?i.$Complex(0,1):"-"===e[0]&&"i"===e[1]?i.$Complex(0,-1):"+"===e[0]&&"i"===e[1]?i.$Complex(0,1):i.$Complex(0,0)})),function(e,t){m(e,"rectangular","rect")}(e.get_singleton_class(x)),m(x,"arg","angle"),m(x,"conjugate","conj"),m(x,"divide","/"),m(x,"imaginary","imag"),m(x,"magnitude","abs"),m(x,"phase","arg"),m(x,"quo","/"),m(x,"rectangular","rect"),e.udef(x,"$negative?"),e.udef(x,"$positive?"),e.udef(x,"$step"),v}(0,b("Numeric"),[])},Opal.modules["corelib/rational/base"]=function(e){var t,n=e.module,r=e.def,i=e.klass,a=(e.nil,e.$$$);return e.add_stubs("convert,from_string"),t=n("::","Kernel"),r(t,"$Rational",(function(e,t){return null==t&&(t=1),a("Rational").$convert(e,t)}),-2),function(e,t){var n=i("::",null,"String");return r(n,"$to_r",(function(){return a("Rational").$from_string(this)}))}()},Opal.modules["corelib/rational"]=function(e){var t=e.klass,n=e.eqeq,r=e.Kernel,i=e.truthy,a=e.rb_lt,s=e.rb_divide,o=e.defs,$=e.eqeqeq,u=e.not,l=e.Opal,c=e.def,_=e.return_ivar,d=e.rb_minus,p=e.rb_times,f=e.rb_plus,h=e.rb_gt,m=e.rb_le,g=e.return_self,v=e.alias,b=e.top,y=e.nil,w=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"),b.$require("corelib/numeric"),b.$require("corelib/rational/base"),function(e,b){var x=t("::",b,"Rational"),k=x.$$prototype;return k.num=k.den=y,o(x,"$reduce",(function(e,t){var o;if(e=e.$to_i(),t=t.$to_i(),n(t,0))r.$raise(w("ZeroDivisionError"),"divided by 0");else if(i(a(t,0)))e=e["$-@"](),t=t["$-@"]();else if(n(t,1))return this.$new(e,t);return o=e.$gcd(t),this.$new(s(e,o),s(t,o))})),o(x,"$convert",(function(e,t){return(i(e["$nil?"]())||i(t["$nil?"]()))&&r.$raise(w("TypeError"),"cannot convert nil into Rational"),$(w("Integer"),e)&&$(w("Integer"),t)?this.$reduce(e,t):(($(w("Float"),e)||$(w("String"),e)||$(w("Complex"),e))&&(e=e.$to_r()),($(w("Float"),t)||$(w("String"),t)||$(w("Complex"),t))&&(t=t.$to_r()),i(t["$equal?"](1))&&u(w("Integer")["$==="](e))?l["$coerce_to!"](e,w("Rational"),"to_r"):$(w("Numeric"),e)&&$(w("Numeric"),t)?s(e,t):this.$reduce(e,t))})),c(x,"$initialize",(function(e,t){var n=this;return n.num=e,n.den=t,n.$freeze()})),c(x,"$numerator",_("num")),c(x,"$denominator",_("den")),c(x,"$coerce",(function(e){var t,n=this;return $(w("Rational"),t=e)?[e,n]:$(w("Integer"),t)?[e.$to_r(),n]:$(w("Float"),t)?[e,n.$to_f()]:y})),c(x,"$==",(function(e){var t,n=this,r=y;return $(w("Rational"),t=e)?i(r=n.num["$=="](e.$numerator()))?n.den["$=="](e.$denominator()):r:$(w("Integer"),t)?i(r=n.num["$=="](e))?n.den["$=="](1):r:$(w("Float"),t)?n.$to_f()["$=="](e):e["$=="](n)})),c(x,"$<=>",(function(e){var t,n=this;return $(w("Rational"),t=e)?d(p(n.num,e.$denominator()),p(n.den,e.$numerator()))["$<=>"](0):$(w("Integer"),t)?d(n.num,p(n.den,e))["$<=>"](0):$(w("Float"),t)?n.$to_f()["$<=>"](e):n.$__coerced__("<=>",e)})),c(x,"$+",(function(e){var t,n=this,i=y,a=y;return $(w("Rational"),t=e)?(i=f(p(n.num,e.$denominator()),p(n.den,e.$numerator())),a=p(n.den,e.$denominator()),r.$Rational(i,a)):$(w("Integer"),t)?r.$Rational(f(n.num,p(e,n.den)),n.den):$(w("Float"),t)?f(n.$to_f(),e):n.$__coerced__("+",e)})),c(x,"$-",(function(e){var t,n=this,i=y,a=y;return $(w("Rational"),t=e)?(i=d(p(n.num,e.$denominator()),p(n.den,e.$numerator())),a=p(n.den,e.$denominator()),r.$Rational(i,a)):$(w("Integer"),t)?r.$Rational(d(n.num,p(e,n.den)),n.den):$(w("Float"),t)?d(n.$to_f(),e):n.$__coerced__("-",e)})),c(x,"$*",(function(e){var t,n=this,i=y,a=y;return $(w("Rational"),t=e)?(i=p(n.num,e.$numerator()),a=p(n.den,e.$denominator()),r.$Rational(i,a)):$(w("Integer"),t)?r.$Rational(p(n.num,e),n.den):$(w("Float"),t)?p(n.$to_f(),e):n.$__coerced__("*",e)})),c(x,"$/",(function(e){var t,i=this,a=y,o=y;return $(w("Rational"),t=e)?(a=p(i.num,e.$denominator()),o=p(i.den,e.$numerator()),r.$Rational(a,o)):$(w("Integer"),t)?n(e,0)?s(i.$to_f(),0):r.$Rational(i.num,p(i.den,e)):$(w("Float"),t)?s(i.$to_f(),e):i.$__coerced__("/",e)})),c(x,"$**",(function(e){var t,s=this;return $(w("Integer"),t=e)?n(s,0)&&i(a(e,0))?w(w("Float"),"INFINITY"):i(h(e,0))?r.$Rational(s.num["$**"](e),s.den["$**"](e)):i(a(e,0))?r.$Rational(s.den["$**"](e["$-@"]()),s.num["$**"](e["$-@"]())):r.$Rational(1,1):$(w("Float"),t)?s.$to_f()["$**"](e):$(w("Rational"),t)?n(e,0)?r.$Rational(1,1):n(e.$denominator(),1)?i(a(e,0))?r.$Rational(s.den["$**"](e.$numerator().$abs()),s.num["$**"](e.$numerator().$abs())):r.$Rational(s.num["$**"](e.$numerator()),s.den["$**"](e.$numerator())):n(s,0)&&i(a(e,0))?r.$raise(w("ZeroDivisionError"),"divided by 0"):s.$to_f()["$**"](e):s.$__coerced__("**",e)})),c(x,"$abs",(function(){return r.$Rational(this.num.$abs(),this.den.$abs())})),c(x,"$ceil",(function(e){var t=this;return null==e&&(e=0),n(e,0)?s(t.num["$-@"](),t.den)["$-@"]().$ceil():t.$with_precision("ceil",e)}),-1),c(x,"$floor",(function(e){var t=this;return null==e&&(e=0),n(e,0)?s(t.num["$-@"](),t.den)["$-@"]().$floor():t.$with_precision("floor",e)}),-1),c(x,"$hash",(function(){return[w("Rational"),this.num,this.den].$hash()})),c(x,"$inspect",(function(){return"("+this+")"})),c(x,"$rationalize",(function(e){var t=this;if(arguments.length>1&&r.$raise(w("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..1)"),null==e)return t;for(var n,i,a,o,$,u=e.$abs(),l=d(t,u),c=f(t,u),_=0,p=1,h=1,g=0;a=l.$ceil(),!m(a,c);)n=(o=a-1)*p+_,i=o*g+h,$=s(1,d(c,o)),c=s(1,d(l,o)),l=$,_=p,h=g,p=n,g=i;return r.$Rational(a*p+_,a*g+h)}),-1),c(x,"$round",(function(e){var t,r,o=this,$=y;return null==e&&(e=0),n(e,0)?n(o.num,0)?0:n(o.den,1)?o.num:(t=f(p(o.num.$abs(),2),o.den),r=p(o.den,2),$=s(t,r).$truncate(),i(a(o.num,0))?$["$-@"]():$):o.$with_precision("round",e)}),-1),c(x,"$to_f",(function(){return s(this.num,this.den)})),c(x,"$to_i",(function(){return this.$truncate()})),c(x,"$to_r",g),c(x,"$to_s",(function(){return this.num+"/"+this.den})),c(x,"$truncate",(function(e){var t=this;return null==e&&(e=0),n(e,0)?i(a(t.num,0))?t.$ceil():t.$floor():t.$with_precision("truncate",e)}),-1),c(x,"$with_precision",(function(e,t){var n,o=y;return $(w("Integer"),t)||r.$raise(w("TypeError"),"not an Integer"),n=10["$**"](t),o=p(this,n),i(a(t,1))?s(o.$send(e),n).$to_i():r.$Rational(o.$send(e),n)})),o(x,"$from_string",(function(e){var t,n,i=e.trimLeft(),a=/^[+-]?[\d_]+(\.[\d_]+)?/;i.match(a);function s(){return a.test(i)}function o(){var e=i.match(a)[0];return i=i.slice(e.length),e.replace(/_/g,"")}return s()?(t=parseFloat(o()),"/"===i[0]?(i=i.slice(1),s()?(n=parseFloat(o()),r.$Rational(t,n)):r.$Rational(t,1)):r.$Rational(t,1)):r.$Rational(0,1)})),v(x,"divide","/"),v(x,"quo","/")}(0,w("Numeric"))},Opal.modules["corelib/time"]=function(e){var t=e.slice,n=e.deny_frozen_access,r=e.klass,i=e.Kernel,a=e.Opal,s=e.defs,o=e.eqeqeq,$=e.def,u=e.truthy,l=e.rb_gt,c=e.rb_lt,_=e.send,d=e.rb_plus,p=e.rb_divide,f=e.rb_minus,h=e.range,m=e.neqeq,g=e.rb_le,v=e.eqeq,b=e.alias,y=e.top,w=e.nil,x=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,G){var E=r("::",k,"Time"),S=[E].concat(G),O=e.$r(S);E.$include(x("Comparable"));var M=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],A=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],N=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],z=["January","February","March","April","May","June","July","August","September","October","November","December"];function D(e,t,n,r,s,o){if(e=e.$$is_string?parseInt(e,10):a["$coerce_to!"](e,x("Integer"),"to_int"),t===w)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=a["$coerce_to!"](t,x("Integer"),"to_int");return(t<1||t>12)&&i.$raise(x("ArgumentError"),"month out of range: "+t),t-=1,((n=n===w?1:n.$$is_string?parseInt(n,10):a["$coerce_to!"](n,x("Integer"),"to_int"))<1||n>31)&&i.$raise(x("ArgumentError"),"day out of range: "+n),((r=r===w?0:r.$$is_string?parseInt(r,10):a["$coerce_to!"](r,x("Integer"),"to_int"))<0||r>24)&&i.$raise(x("ArgumentError"),"hour out of range: "+r),((s=s===w?0:s.$$is_string?parseInt(s,10):a["$coerce_to!"](s,x("Integer"),"to_int"))<0||s>59)&&i.$raise(x("ArgumentError"),"min out of range: "+s),o===w?o=0:o.$$is_number||(o=o.$$is_string?parseInt(o,10):a["$coerce_to!"](o,x("Integer"),"to_int")),(o<0||o>60)&&i.$raise(x("ArgumentError"),"sec out of range: "+o),[e,t,n,r,s,o]}return s(E,"$at",(function(e,t){var n;return x("Time")["$==="](e)?(void 0!==t&&i.$raise(x("TypeError"),"can't convert Time into an exact number"),(n=new Date(e.getTime())).timezone=e.timezone,n):(e.$$is_number||(e=a["$coerce_to!"](e,x("Integer"),"to_int")),void 0===t?new Date(1e3*e):(t.$$is_number||(t=a["$coerce_to!"](t,x("Integer"),"to_int")),new Date(1e3*e+t/1e3)))}),-2),s(E,"$new",(function(e,t,n,r,i,a,s){var o,$,u,l;return null==t&&(t=w),null==n&&(n=w),null==r&&(r=w),null==i&&(i=w),null==a&&(a=w),null==s&&(s=w),void 0===e?new Date:(e=(o=D(e,t,n,r,i,a))[0],t=o[1],n=o[2],r=o[3],i=o[4],a=o[5],s===w?($=new Date(e,t,n,r,i,0,1e3*a),e<100&&$.setFullYear(e),$):(u=this.$_parse_offset(s),l=new Date(Date.UTC(e,t,n,r,i,0,1e3*a)),e<100&&l.setUTCFullYear(e),($=new Date(l.getTime()-36e5*u)).timezone=u,$))}),-1),s(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 i.$raise(x("ArgumentError"),'"+HH:MM", "-HH:MM", "UTC" expected for utc_offset: '+e);else e.$$is_number?t=e/3600:i.$raise(x("ArgumentError"),"Opal doesn't support other types for a timezone argument than Integer and String");return t})),s(E,"$local",(function(e,n,r,i,a,s,o,$,u,l){var c,_;return null==n&&(n=w),null==r&&(r=w),null==i&&(i=w),null==a&&(a=w),null==s&&(s=w),null==o&&(o=w),null==$&&($=w),null==u&&(u=w),null==l&&(l=w),10===arguments.length&&(e=(c=t(arguments))[5],n=c[4],r=c[3],i=c[2],a=c[1],s=c[0]),e=(c=D(e,n,r,i,a,s))[0],n=c[1],r=c[2],i=c[3],a=c[4],s=c[5],_=new Date(e,n,r,i,a,0,1e3*s),e<100&&_.setFullYear(e),_}),-2),s(E,"$gm",(function(e,n,r,i,a,s,o,$,u,l){var c,_;return null==n&&(n=w),null==r&&(r=w),null==i&&(i=w),null==a&&(a=w),null==s&&(s=w),null==o&&(o=w),null==$&&($=w),null==u&&(u=w),null==l&&(l=w),10===arguments.length&&(e=(c=t(arguments))[5],n=c[4],r=c[3],i=c[2],a=c[1],s=c[0]),e=(c=D(e,n,r,i,a,s))[0],n=c[1],r=c[2],i=c[3],a=c[4],s=c[5],_=new Date(Date.UTC(e,n,r,i,a,0,1e3*s)),e<100&&_.setUTCFullYear(e),_.timezone=0,_}),-2),s(E,"$now",(function(){return this.$new()})),$(E,"$+",(function(e){o(x("Time"),e)&&i.$raise(x("TypeError"),"time + time?"),e.$$is_number||(e=a["$coerce_to!"](e,x("Integer"),"to_int"));var t=new Date(this.getTime()+1e3*e);return t.timezone=this.timezone,t})),$(E,"$-",(function(e){var t=this;if(o(x("Time"),e))return(t.getTime()-e.getTime())/1e3;e.$$is_number||(e=a["$coerce_to!"](e,x("Integer"),"to_int"));var n=new Date(t.getTime()-1e3*e);return n.timezone=t.timezone,n})),$(E,"$<=>",(function(e){var t=w;return o(x("Time"),e)?this.$to_f()["$<=>"](e.$to_f()):(t=e["$<=>"](this),u(t["$nil?"]())?w:u(l(t,0))?-1:u(c(t,0))?1:0)})),$(E,"$==",(function(e){var t;return u(t=x("Time")["$==="](e))?this.$to_f()===e.$to_f():t})),$(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,n,r,i){var a=null==e.$$s?this:e.$$s;return null==t&&(t=w),null==n&&(n=w),null==r&&(r=w),null==i&&(i=0),_(a,"define_method",[t],(function e(){var t=null==e.$$s?this:e.$$s;return i+(null!=t.timezone?new Date(t.getTime()+36e5*t.timezone)[r]():t[n]())}),{$$s:a})}),{$$arity:-4,$$s:E}),$(E,"$yday",(function(){var e,t,n=this;return e=O("Time").$new(n.$year()).$to_i(),t=O("Time").$new(n.$year(),n.$month(),n.$day()).$to_i(),86400,d(p(f(t,e),86400).$round(),1)})),$(E,"$isdst",(function(){var e=this,t=new Date(e.getFullYear(),0,1),n=new Date(e.getFullYear(),6,1);return e.getTimezoneOffset()<Math.max(t.getTimezoneOffset(),n.getTimezoneOffset())})),$(E,"$dup",(function(){var e=this,t=w;return(t=new Date(e.getTime())).$copy_instance_variables(e),t.$initialize_dup(e),t})),$(E,"$eql?",(function(e){var t;return u(t=e["$is_a?"](x("Time")))?this["$<=>"](e)["$zero?"]():t})),_([["sunday?",0],["monday?",1],["tuesday?",2],["wednesday?",3],["thursday?",4],["friday?",5],["saturday?",6]],"each",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==t&&(t=w),null==n&&(n=w),_(r,"define_method",[t],(function e(){return(null==e.$$s?this:e.$$s).$wday()===n}),{$$s:r})}),{$$s:E}),$(E,"$hash",(function(){return[x("Time"),this.getTime()].$hash()})),$(E,"$inspect",(function(){var e=this;return u(e["$utc?"]())?e.$strftime("%Y-%m-%d %H:%M:%S UTC"):e.$strftime("%Y-%m-%d %H:%M:%S %z")})),$(E,"$succ",(function(){var e=new Date(this.getTime()+1e3);return e.timezone=this.timezone,e})),$(E,"$usec",(function(){return 1e3*this.getMilliseconds()})),$(E,"$zone",(function(){var e=this;if(0===e.timezone)return"UTC";if(null!=e.timezone)return w;var t,n=e.toString();return"GMT"==(t=-1==n.indexOf("(")?n.match(/[A-Z]{3,4}/)[0]:n.match(/\((.+)\)(?:\s|$)/)[1])&&/(GMT\W*\d{4})/.test(n)?RegExp.$1:t})),$(E,"$getgm",(function(){var e=new Date(this.getTime());return e.timezone=0,e})),$(E,"$gmtime",(function(){var e=this;return 0!==e.timezone&&(n(e),e.timezone=0),e})),$(E,"$gmt?",(function(){return 0===this.timezone})),$(E,"$gmt_offset",(function(){var e=this;return null!=e.timezone?60*e.timezone:60*-e.getTimezoneOffset()})),$(E,"$strftime",(function(e){var t=this;return e.replace(/%([\-_#^0]*:{0,2})(\d+)?([EO]*)(.)/g,(function(e,n,r,i,a){var s,o,$,u="",l=-1!==n.indexOf("0"),c=-1===n.indexOf("-"),_=-1!==n.indexOf("_"),d=-1!==n.indexOf("^"),p=-1!==n.indexOf("#"),m=(n.match(":")||[]).length;switch(r=parseInt(r,10),l&&_&&(n.indexOf("0")<n.indexOf("_")?l=!1:_=!1),a){case"Y":u+=t.$year();break;case"C":l=!_,u+=Math.round(t.$year()/100);break;case"y":l=!_,u+=t.$year()%100;break;case"m":l=!_,u+=t.$mon();break;case"B":u+=z[t.$mon()-1];break;case"b":case"h":_=!l,u+=N[t.$mon()-1];break;case"d":l=!_,u+=t.$day();break;case"e":_=!l,u+=t.$day();break;case"j":l=!_,r=isNaN(r)?3:r,u+=t.$yday();break;case"H":l=!_,u+=t.$hour();break;case"k":_=!l,u+=t.$hour();break;case"I":l=!_,u+=t.$hour()%12||12;break;case"l":_=!l,u+=t.$hour()%12||12;break;case"P":u+=t.$hour()>=12?"pm":"am";break;case"p":u+=t.$hour()>=12?"PM":"AM";break;case"M":l=!_,u+=t.$min();break;case"S":l=!_,u+=t.$sec();break;case"L":l=!_,r=isNaN(r)?3:r,u+=t.getMilliseconds();break;case"N":r=isNaN(r)?9:r,u=(u+=t.getMilliseconds().toString().$rjust(3,"0")).$ljust(r,"0");break;case"z":var g=null==t.timezone?t.getTimezoneOffset():60*-t.timezone,v=Math.floor(Math.abs(g)/60),b=Math.abs(g)%60;u+=g<0?"+":"-",u+=v<10?"0":"",u+=v,m>0&&(u+=":"),u+=b<10?"0":"",u+=b,m>1&&(u+=":00");break;case"Z":u+=t.$zone();break;case"A":u+=M[t.$wday()];break;case"a":u+=A[t.$wday()];break;case"u":u+=t.$wday()+1;break;case"w":u+=t.$wday();break;case"V":u+=t.$cweek_cyear()["$[]"](0).$to_s().$rjust(2,"0");break;case"G":u+=t.$cweek_cyear()["$[]"](1);break;case"g":u+=t.$cweek_cyear()["$[]"](1)["$[]"](h(-2,-1,!1));break;case"s":u+=t.$to_i();break;case"n":u+="\n";break;case"t":u+="\t";break;case"%":u+="%";break;case"c":u+=t.$strftime("%a %b %e %T %Y");break;case"D":case"x":u+=t.$strftime("%m/%d/%y");break;case"F":u+=t.$strftime("%Y-%m-%d");break;case"v":u+=t.$strftime("%e-%^b-%4Y");break;case"r":u+=t.$strftime("%I:%M:%S %p");break;case"R":u+=t.$strftime("%H:%M");break;case"T":case"X":u+=t.$strftime("%H:%M:%S");break;case"J":if((s=t.$to_date().$jd())<2405160){u+=t.$strftime("%Y-%m-%d");break}s<2419614?(o="M",$=1867):s<2424875?(o="T",$=1911):s<2447535?(o="S",$=1925):s<2458605?(o="H",$=1988):(o="R",$=2018),u+=t.$format("%c%02d",o,f(t.$year(),$)),u+=t.$strftime("-%m-%d");break;default:return e}return d&&(u=u.toUpperCase()),p&&(u=u.replace(/[A-Z]/,(function(e){e.toLowerCase()})).replace(/[a-z]/,(function(e){e.toUpperCase()}))),c&&(l||_)&&(u=u.$rjust(isNaN(r)?2:r,_?" ":"0")),u}))})),$(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()]})),$(E,"$to_f",(function(){return this.getTime()/1e3})),$(E,"$to_i",(function(){return parseInt(this.getTime()/1e3,10)})),$(E,"$cweek_cyear",(function(){var e,t=this,n=w,r=w,i=w,a=w;return e=x("Time").$new(t.$year(),1,1).$wday(),0,n=t.$year(),u(g(e,4))&&m(e,0)?r=f(e,1):(r=f(f(e,7),1),v(r,-8)&&(r=-1)),i=p(d(t.$yday(),r),7).$ceil(),u(g(i,0))?x("Time").$new(f(t.$year(),1),12,31).$cweek_cyear():(v(i,53)&&(a=x("Time").$new(t.$year(),12,31).$wday(),u(g(a,3))&&m(a,0)&&(i=1,n=d(n,1))),[i,n])})),function(e,t){b(e,"mktime","local"),b(e,"utc","gm")}(e.get_singleton_class(E)),b(E,"ctime","asctime"),b(E,"dst?","isdst"),b(E,"getutc","getgm"),b(E,"gmtoff","gmt_offset"),b(E,"mday","day"),b(E,"month","mon"),b(E,"to_s","inspect"),b(E,"tv_sec","to_i"),b(E,"tv_usec","usec"),b(E,"utc","gmtime"),b(E,"utc?","gmt?"),b(E,"utc_offset","gmt_offset")}(0,Date,[])},Opal.modules["corelib/struct"]=function(e){var t=e.klass,n=e.slice,r=e.extract_kwargs,i=e.ensure_kwargs,a=e.hash_get,s=e.truthy,o=e.neqeq,$=e.eqeq,u=e.Opal,l=e.send,c=e.Class,_=e.to_a,d=e.def,p=e.defs,f=e.Kernel,h=e.rb_gt,m=e.rb_minus,g=e.eqeqeq,v=e.rb_lt,b=e.rb_ge,y=e.rb_plus,w=e.alias,x=e.top,k=e.nil,G=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"),x.$require("corelib/enumerable"),function(x,E,S){var O=t("::",null,"Struct"),M=[O].concat(S),A=e.$r(M);O.$include(G("Enumerable")),p(O,"$new",(function t(p,f,h){var m,g,v,b,y=t.$$p||k,w=k;if(t.$$p=null,m=n(arguments,1),g=r(m),g=i(g),v=m,null==(b=a(g,"keyword_init"))&&(b=!1),s(p))if($(p.$class(),G("String"))&&o(p["$[]"](0).$upcase(),p["$[]"](0)))v.$unshift(p),p=k;else try{p=u["$const_name!"](p)}catch(t){if(!e.rescue(t,[G("TypeError"),G("NameError")]))throw t;try{v.$unshift(p),p=k}finally{e.pop_exception(t)}}return l(v,"map",[],(function(e){return null==e&&(e=k),u["$coerce_to!"](e,G("String"),"to_str")})),w=l(c,"new",[this],(function t(){var r=null==t.$$s?this:t.$$s;return l(v,"each",[],(function e(t){return null==t&&(t=k),(null==e.$$s?this:e.$$s).$define_struct_attribute(t)}),{$$s:r}),function(e,t){return d(e,"$new",(function(e){var t,r=k;return t=n(arguments),(r=this.$allocate()).$$data={},l(r,"initialize",_(t)),r}),-1),e.$alias_method("[]","new")}(e.get_singleton_class(r))}),{$$s:this}),s(y)&&l(w,"module_eval",[],y.$to_proc()),w.$$keyword_init=b,s(p)&&G("Struct").$const_set(p,w),w}),-2),p(O,"$define_struct_attribute",(function(e){var t=this;return $(t,G("Struct"))&&f.$raise(G("ArgumentError"),"you cannot define attributes to the Struct class"),t.$members()["$<<"](e),l(t,"define_method",[e],(function t(){return(null==t.$$s?this:t.$$s).$$data[e]}),{$$s:t}),l(t,"define_method",[e+"="],(function t(n){return null==n&&(n=k),(null==t.$$s?this:t.$$s).$$data[e]=n}),{$$s:t})})),p(O,"$members",(function(){var e,t=this;return null==t.members&&(t.members=k),$(t,G("Struct"))&&f.$raise(G("ArgumentError"),"the Struct class has no members"),t.members=s(e=t.members)?e:[]})),p(O,"$inherited",(function(e){var t,n=this;return null==n.members&&(n.members=k),t=n.members,l(e,"instance_eval",[],(function e(){return(null==e.$$s?this:e.$$s).members=t}),{$$s:n})})),d(O,"$initialize",(function(e){var t,r,i=this,a=k,o=k,$=k;return t=n(arguments),r=t,s(i.$class().$$keyword_init)?(a=s(o=r.$last())?o:new Map,(s(h(r.$length(),1))||s(1===r.length&&!a.$$is_hash))&&f.$raise(G("ArgumentError"),"wrong number of arguments (given "+r.$length()+", expected 0)"),$=m(a.$keys(),i.$class().$members()),s($["$any?"]())&&f.$raise(G("ArgumentError"),"unknown keywords: "+$.$join(", ")),l(i.$class().$members(),"each",[],(function e(t){var n,r=null==e.$$s?this:e.$$s;return null==t&&(t=k),n=[t,a["$[]"](t)],l(r,"[]=",n),n[n.length-1]}),{$$s:i})):(s(h(r.$length(),i.$class().$members().$length()))&&f.$raise(G("ArgumentError"),"struct size differs"),l(i.$class().$members(),"each_with_index",[],(function e(t,n){var i,a=null==e.$$s?this:e.$$s;return null==t&&(t=k),null==n&&(n=k),i=[t,r["$[]"](n)],l(a,"[]=",i),i[i.length-1]}),{$$s:i}))}),-1),d(O,"$initialize_copy",(function(e){this.$$data={};var t,n,r,i=Object.keys(e.$$data);for(t=0,n=i.length;t<n;t++)r=i[t],this.$$data[r]=e.$$data[r]})),p(O,"$keyword_init?",(function(){return this.$$keyword_init})),d(O,"$members",(function(){return this.$class().$members()})),d(O,"$hash",(function(){return[this.$class(),this.$to_a()].$hash()})),d(O,"$[]",(function(e){var t=this;return g(G("Integer"),e)?(s(v(e,t.$class().$members().$size()["$-@"]()))&&f.$raise(G("IndexError"),"offset "+e+" too small for struct(size:"+t.$class().$members().$size()+")"),s(b(e,t.$class().$members().$size()))&&f.$raise(G("IndexError"),"offset "+e+" too large for struct(size:"+t.$class().$members().$size()+")"),e=t.$class().$members()["$[]"](e)):g(G("String"),e)?t.$$data.hasOwnProperty(e)||f.$raise(G("NameError").$new("no member '"+e+"' in struct",e)):f.$raise(G("TypeError"),"no implicit conversion of "+e.$class()+" into Integer"),e=u["$coerce_to!"](e,G("String"),"to_str"),t.$$data[e]})),d(O,"$[]=",(function(e,t){var n=this;return g(G("Integer"),e)?(s(v(e,n.$class().$members().$size()["$-@"]()))&&f.$raise(G("IndexError"),"offset "+e+" too small for struct(size:"+n.$class().$members().$size()+")"),s(b(e,n.$class().$members().$size()))&&f.$raise(G("IndexError"),"offset "+e+" too large for struct(size:"+n.$class().$members().$size()+")"),e=n.$class().$members()["$[]"](e)):g(G("String"),e)?s(n.$class().$members()["$include?"](e.$to_sym()))||f.$raise(G("NameError").$new("no member '"+e+"' in struct",e)):f.$raise(G("TypeError"),"no implicit conversion of "+e.$class()+" into Integer"),e=u["$coerce_to!"](e,G("String"),"to_str"),n.$$data[e]=t})),d(O,"$==",(function(e){if(!s(e["$instance_of?"](this.$class())))return!1;var t={},n={};return function e(r,i){var a,s,o;for(a in t[r.$__id__()]=!0,n[i.$__id__()]=!0,r.$$data)if(s=r.$$data[a],o=i.$$data[a],G("Struct")["$==="](s)){if(!(t.hasOwnProperty(s.$__id__())&&n.hasOwnProperty(o.$__id__())||e(s,o)))return!1}else if(!s["$=="](o))return!1;return!0}(this,e)})),d(O,"$eql?",(function(e){if(!s(e["$instance_of?"](this.$class())))return!1;var t={},n={};return function e(r,i){var a,s,o;for(a in t[r.$__id__()]=!0,n[i.$__id__()]=!0,r.$$data)if(s=r.$$data[a],o=i.$$data[a],G("Struct")["$==="](s)){if(!(t.hasOwnProperty(s.$__id__())&&n.hasOwnProperty(o.$__id__())||e(s,o)))return!1}else if(!s["$eql?"](o))return!1;return!0}(this,e)})),d(O,"$each",(function t(){var n=t.$$p||k,r=this;return t.$$p=null,n===k?l(r,"enum_for",["each"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r}):(l(r.$class().$members(),"each",[],(function t(r){var i=null==t.$$s?this:t.$$s;return null==r&&(r=k),e.yield1(n,i["$[]"](r))}),{$$s:r}),r)})),d(O,"$each_pair",(function t(){var n=t.$$p||k,r=this;return t.$$p=null,n===k?l(r,"enum_for",["each_pair"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r}):(l(r.$class().$members(),"each",[],(function t(r){var i=null==t.$$s?this:t.$$s;return null==r&&(r=k),e.yield1(n,[r,i["$[]"](r)])}),{$$s:r}),r)})),d(O,"$length",(function(){return this.$class().$members().$length()})),d(O,"$to_a",(function(){return l(this.$class().$members(),"map",[],(function e(t){return null==t&&(t=k),(null==e.$$s?this:e.$$s)["$[]"](t)}),{$$s:this})}));var N=[];return d(O,"$inspect",(function(){var e=this,t=k,n=k;return function(){try{return t="#<struct ",s(N["$include?"](e.$__id__()))?y(t,":...>"):(N["$<<"](e.$__id__()),n=!0,g(G("Struct"),e)&&s(e.$class().$name())&&(t=y(t,e.$class()+" ")),t=y(t,l(e.$each_pair(),"map",[],(function(e,t){return null==e&&(e=k),null==t&&(t=k),e+"="+A("Opal").$inspect(t)})).$join(", ")),t=y(t,">"))}finally{s(n)&&N.pop()}}()})),d(O,"$to_h",(function e(t){var r,i=e.$$p||k,a=this;return e.$$p=null,r=n(arguments),i!==k?l(l(a,"map",[],i.$to_proc()),"to_h",_(r)):l(a.$class().$members(),"each_with_object",[new Map],(function e(t,n){var r;return null==t&&(t=k),null==n&&(n=k),r=[t,(null==e.$$s?this:e.$$s)["$[]"](t)],l(n,"[]=",r),r[r.length-1]}),{$$s:a})}),-1),d(O,"$values_at",(function(e){var t,r;t=n(arguments);for(var i=[],a=0,s=(r=l(r=t,"map",[],(function(e){return null==e&&(e=k),e.$$is_range?e.$to_a():e})).$flatten()).length;a<s;a++)r[a].$$is_number||f.$raise(G("TypeError"),"no implicit conversion of "+r[a].$class()+" into Integer"),i.push(this["$[]"](r[a]));return i}),-1),d(O,"$dig",(function(e,t){var r,i=k;return r=n(arguments,1),(i=s(e.$$is_string&&this.$$data.hasOwnProperty(e))&&this.$$data[e]||k)===k||0===r.length?i:(s(i["$respond_to?"]("dig"))||f.$raise(G("TypeError"),i.$class()+" does not have #dig method"),l(i,"dig",_(r)))}),-2),w(O,"size","length"),w(O,"to_s","inspect"),w(O,"values","to_a")}(0,0,[])},Opal.modules["corelib/set"]=function(e){var t=e.freeze,n=e.klass,r=e.slice,i=e.defs,a=e.truthy,s=e.eqeqeq,o=e.Kernel,$=e.send,u=e.def,l=e.eqeq,c=e.rb_lt,_=e.rb_le,d=e.alias,p=e.nil,f=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(h,m,g){var v=n("::",null,"Set"),b=[v].concat(g),y=e.$r(b);function w(e){a(e["$is_a?"](f("Set")))||o.$raise(f("ArgumentError"),"value must be a set")}return v.$$prototype.hash=p,v.$include(f("Enumerable")),i(v,"$[]",(function(e){var t;return t=r(arguments),this.$new(t)}),-1),u(v,"$initialize",(function t(n){var r=t.$$p||p,i=this;return t.$$p=null,null==n&&(n=p),i.hash=new Map,a(n["$nil?"]())?p:(s(f("Enumerable"),n)||o.$raise(f("ArgumentError"),"value must be enumerable"),a(r)?$(n,"each",[],(function t(n){return null==n&&(n=p),(null==t.$$s?this:t.$$s).$add(e.yield1(r,n))}),{$$s:i}):i.$merge(n))}),-1),u(v,"$dup",(function(){return this.$class().$new().$merge(this)})),u(v,"$-",(function(e){return a(e["$respond_to?"]("each"))||o.$raise(f("ArgumentError"),"value must be enumerable"),this.$dup().$subtract(e)})),u(v,"$inspect",(function(){return"#<Set: {"+this.$to_a().$join(",")+"}>"})),u(v,"$==",(function(e){var t=this;return!!a(t["$equal?"](e))||(a(e["$instance_of?"](t.$class()))?t.hash["$=="](e.$instance_variable_get("@hash")):!(!a(e["$is_a?"](f("Set")))||!l(t.$size(),e.$size()))&&$(e,"all?",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.hash&&(n.hash=p),null==t&&(t=p),n.hash["$include?"](t)}),{$$s:t}))})),u(v,"$add",(function(e){return this.hash["$[]="](e,!0),this})),u(v,"$classify",(function t(){var n=t.$$p||p,r=this,i=p;return t.$$p=null,n===p?r.$enum_for("classify"):(i=$(f("Hash"),"new",[],(function e(t,n){var r;return null==t&&(t=p),null==n&&(n=p),r=[n,(null==e.$$s?this:e.$$s).$class().$new()],$(t,"[]=",r),r[r.length-1]}),{$$s:r}),$(r,"each",[],(function(t){return null==t&&(t=p),i["$[]"](e.yield1(n,t)).$add(t)})),i)})),u(v,"$collect!",(function t(){var n=t.$$p||p,r=this,i=p;return t.$$p=null,n===p?r.$enum_for("collect!"):(i=r.$class().$new(),$(r,"each",[],(function(t){return null==t&&(t=p),i["$<<"](e.yield1(n,t))})),r.$replace(i))})),u(v,"$compare_by_identity",(function(){var e=this;return a(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")})),u(v,"$compare_by_identity?",(function(){var e;return a(e=this.hash["$respond_to?"]("compare_by_identity?"))?this.hash["$compare_by_identity?"]():e})),u(v,"$delete",(function(e){return this.hash.$delete(e),this})),u(v,"$delete?",(function(e){var t=this;return a(t["$include?"](e))?(t.$delete(e),t):p})),u(v,"$delete_if",(function t(){var n=t.$$p||p,r=this;return t.$$p=null,n===p?r.$enum_for("delete_if"):($($(r,"select",[],(function(t){return null==t&&(t=p),e.yield1(n,t)})),"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.hash&&(n.hash=p),null==t&&(t=p),n.hash.$delete(t)}),{$$s:r}),r)})),u(v,"$freeze",(function(){var e=this;return a(e["$frozen?"]())?e:(e.hash.$freeze(),t(e))})),u(v,"$keep_if",(function t(){var n=t.$$p||p,r=this;return t.$$p=null,n===p?r.$enum_for("keep_if"):($($(r,"reject",[],(function(t){return null==t&&(t=p),e.yield1(n,t)})),"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.hash&&(n.hash=p),null==t&&(t=p),n.hash.$delete(t)}),{$$s:r}),r)})),u(v,"$reject!",(function e(){var t,n=e.$$p||p,r=this;return e.$$p=null,n===p?r.$enum_for("reject!"):(t=r.$size(),$(r,"delete_if",[],n.$to_proc()),l(r.$size(),t)?p:r)})),u(v,"$select!",(function e(){var t,n=e.$$p||p,r=this;return e.$$p=null,n===p?r.$enum_for("select!"):(t=r.$size(),$(r,"keep_if",[],n.$to_proc()),l(r.$size(),t)?p:r)})),u(v,"$add?",(function(e){return a(this["$include?"](e))?p:this.$add(e)})),u(v,"$each",(function e(){var t=e.$$p||p,n=this;return e.$$p=null,t===p?n.$enum_for("each"):($(n.hash,"each_key",[],t.$to_proc()),n)})),u(v,"$empty?",(function(){return this.hash["$empty?"]()})),u(v,"$eql?",(function(e){return this.hash["$eql?"]($(e,"instance_eval",[],(function e(){var t=null==e.$$s?this:e.$$s;return null==t.hash&&(t.hash=p),t.hash}),{$$s:this}))})),u(v,"$clear",(function(){return this.hash.$clear(),this})),u(v,"$include?",(function(e){return this.hash["$include?"](e)})),u(v,"$merge",(function(e){return $(e,"each",[],(function e(t){return null==t&&(t=p),(null==e.$$s?this:e.$$s).$add(t)}),{$$s:this}),this})),u(v,"$replace",(function(e){var t=this;return t.$clear(),t.$merge(e),t})),u(v,"$size",(function(){return this.hash.$size()})),u(v,"$subtract",(function(e){return $(e,"each",[],(function e(t){return null==t&&(t=p),(null==e.$$s?this:e.$$s).$delete(t)}),{$$s:this}),this})),u(v,"$|",(function(e){return a(e["$respond_to?"]("each"))||o.$raise(f("ArgumentError"),"value must be enumerable"),this.$dup().$merge(e)})),u(v,"$superset?",(function(e){return w(e),!a(c(this.$size(),e.$size()))&&$(e,"all?",[],(function e(t){return null==t&&(t=p),(null==e.$$s?this:e.$$s)["$include?"](t)}),{$$s:this})})),u(v,"$proper_superset?",(function(e){return w(e),!a(_(this.$size(),e.$size()))&&$(e,"all?",[],(function e(t){return null==t&&(t=p),(null==e.$$s?this:e.$$s)["$include?"](t)}),{$$s:this})})),u(v,"$subset?",(function(e){return w(e),!a(c(e.$size(),this.$size()))&&$(this,"all?",[],(function(t){return null==t&&(t=p),e["$include?"](t)}))})),u(v,"$proper_subset?",(function(e){return w(e),!a(_(e.$size(),this.$size()))&&$(this,"all?",[],(function(t){return null==t&&(t=p),e["$include?"](t)}))})),u(v,"$intersect?",(function(e){var t=this;return w(e),a(c(t.$size(),e.$size()))?$(t,"any?",[],(function(t){return null==t&&(t=p),e["$include?"](t)})):$(e,"any?",[],(function e(t){return null==t&&(t=p),(null==e.$$s?this:e.$$s)["$include?"](t)}),{$$s:t})})),u(v,"$disjoint?",(function(e){return this["$intersect?"](e)["$!"]()})),u(v,"$to_a",(function(){return this.hash.$keys()})),d(v,"+","|"),d(v,"<","proper_subset?"),d(v,"<<","add"),d(v,"<=","subset?"),d(v,">","proper_superset?"),d(v,">=","superset?"),d(v,"difference","-"),d(v,"filter!","select!"),d(v,"length","size"),d(v,"map!","collect!"),d(v,"member?","include?"),d(v,"union","|")}(0,0,[])},Opal.modules["corelib/dir"]=function(e){var t=e.klass,n=e.def,r=e.truthy,i=e.alias,a=e.nil,s=e.$$$;return e.add_stubs("[],pwd"),function(o,$,u){var l=t("::",null,"Dir");[l].concat(u);return function(t,o){return n(t,"$chdir",(function t(n){var r=t.$$p||a,i=a;return t.$$p=null,function(){try{return i=e.current_dir,e.current_dir=n,e.yieldX(r,[])}finally{e.current_dir=i}}()})),n(t,"$pwd",(function(){return e.current_dir||"."})),n(t,"$home",(function(){var e;return r(e=s("ENV")["$[]"]("HOME"))?e:"."})),i(t,"getwd","pwd")}(e.get_singleton_class(l))}(0,0,[])},Opal.modules["corelib/file"]=function(e){var t=e.truthy,n=e.klass,r=e.const_set,i=e.Opal,a=e.regexp,s=e.rb_plus,o=e.def,$=e.Kernel,u=e.eqeq,l=e.rb_lt,c=e.rb_minus,_=e.range,d=e.send,p=e.slice,f=e.alias,h=e.nil,m=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(g,v,b){var y=n("::",v,"File"),w=[y].concat(b),x=h;return r(w[0],"Separator",r(w[0],"SEPARATOR","/")),r(w[0],"ALT_SEPARATOR",h),r(w[0],"PATH_SEPARATOR",":"),r(w[0],"FNM_SYSCASE",0),x=/^[a-zA-Z]:(?:\\|\/)/,function(n,r){var g=[n].concat(r),v=e.$r(g);function b(e){return t(e["$respond_to?"]("to_path"))&&(e=e.$to_path()),e=i["$coerce_to!"](e,m("String"),"to_str")}function y(){return v("ALT_SEPARATOR")===h?e.escape_regexp(v("SEPARATOR")):e.escape_regexp(s(v("SEPARATOR"),v("ALT_SEPARATOR")))}return o(n,"$absolute_path",(function(e,n){var r,o,$,u,l,c,_=h,d=h,p=h,f=h,g=h;null==n&&(n=h),r=v("SEPARATOR"),o=y(),_=[],e=t(e["$respond_to?"]("to_path"))?e.$to_path():e,e=i["$coerce_to!"](e,m("String"),"to_str"),n=t($=n)?$:m("Dir").$pwd(),u=e.substr(0,r.length)===r||x.test(e),l=n.substr(0,r.length)===r||x.test(n),t(u)?(d=e.$split(a(["[",o,"]"])),p=x.test(e)?"":e.$sub(a(["^([",o,"]+).*$"]),"\\1"),f=!0):(d=s(n.$split(a(["[",o,"]"])),e.$split(a(["[",o,"]"]))),p=x.test(n)?"":n.$sub(a(["^([",o,"]+).*$"]),"\\1"),f=l);for(var b=0,w=d.length;b<w;b++)(c=d[b])===h||""===c&&(0===_.length||f)||"."===c&&(0===_.length||f)||(".."===c?_.pop():_.push(c));return f||"."===d[0]||_.$unshift("."),g=_.$join(r),t(f)&&(g=s(p,g)),g}),-2),o(n,"$expand_path",(function(e,n){var r,i,o=h,u=h,l=h;return null==n&&(n=h),r=v("SEPARATOR"),i=y(),t("~"===e[0]||n&&"~"===n[0])&&(o=v("Dir").$home(),t(o)||$.$raise(m("ArgumentError"),"couldn't find HOME environment -- expanding `~'"),u=x.test(o)?"":o.$sub(a(["^([",i,"]+).*$"]),"\\1"),t(o["$start_with?"](u))||$.$raise(m("ArgumentError"),"non-absolute home"),o=s(o,r),l=a(["^\\~(?:",r,"|$)"]),e=e.$sub(l,o),t(n)&&(n=n.$sub(l,o))),this.$absolute_path(e,n)}),-2),o(n,"$dirname",(function(e,n){var r;if(null==n&&(n=1),u(n,0))return e;t(l(n,0))&&$.$raise(m("ArgumentError"),"level can't be negative"),r=y();var i,a=(e=b(e)).match(new RegExp("^["+r+"]"));return i=""===(e=(e=(e=e.replace(new RegExp("["+r+"]+$"),"")).replace(new RegExp("[^"+r+"]+$"),"")).replace(new RegExp("["+r+"]+$"),""))?a?"/":".":e,1==n?i:this.$dirname(i,c(n,1))}),-2),o(n,"$basename",(function(t,n){var r;return null==n&&(n=h),r=y(),0==(t=b(t)).length||(n=n!==h?i["$coerce_to!"](n,m("String"),"to_str"):null,t=(t=t.replace(new RegExp("(.)["+r+"]*$"),"$1")).replace(new RegExp("^(?:.*["+r+"])?([^"+r+"]+)$"),"$1"),".*"===n?t=t.replace(/\.[^\.]+$/,""):null!==n&&(n=e.escape_regexp(n),t=t.replace(new RegExp(n+"$"),""))),t}),-2),o(n,"$extname",(function(n){var r=h,i=h;return n=b(n),r=this.$basename(n),t(r["$empty?"]())?"":(i=r["$[]"](_(1,-1,!1)).$rindex("."),t(i["$nil?"]())||u(s(i,1),c(r.$length(),1))?"":r["$[]"](e.Range.$new(s(i,1),-1,!1)))})),o(n,"$exist?",(function(t){return null!=e.modules[t]})),o(n,"$directory?",(function(t){var n=h;for(var r in n=[],e.modules)n.push(r);return t=t.$gsub(a(["(^.",v("SEPARATOR"),"+|",v("SEPARATOR"),"+$)"])),d(n,"find",[],(function(e){return null==e&&(e=h),e["$=~"](a(["^",t]))}))})),o(n,"$join",(function(e){var n,r,i=h;return n=p(arguments),t((r=n)["$empty?"]())?"":(i="",r=d(r.$flatten().$each_with_index(),"map",[],(function(e,n){return null==e&&(e=h),null==n&&(n=h),u(n,0)&&t(e["$empty?"]())||u(r.$length(),s(n,1))&&t(e["$empty?"]())?v("SEPARATOR"):e})),r=d(r,"reject",[],"empty?".$to_proc()),d(r,"each_with_index",[],(function(e,n){var o=h;return null==e&&(e=h),null==n&&(n=h),o=r["$[]"](s(n,1)),t(o["$nil?"]())?i=""+i+e:(t(e["$end_with?"](v("SEPARATOR")))&&t(o["$start_with?"](v("SEPARATOR")))&&(e=e.$sub(a([v("SEPARATOR"),"+$"]),"")),i=t(e["$end_with?"](v("SEPARATOR")))||t(o["$start_with?"](v("SEPARATOR")))?""+i+e:""+i+e+v("SEPARATOR"))})),i)}),-1),o(n,"$split",(function(e){return e.$split(v("SEPARATOR"))})),f(n,"realpath","expand_path"),f(n,"exists?","exist?")}(e.get_singleton_class(y),w)}(0,m("IO"),[])},Opal.modules["corelib/process/base"]=function(e){var t,n=e.klass,r=e.slice,i=e.defs,a=e.return_val,s=e.nil;return t=n("::",null,"Signal"),i(t,"$trap",(function(e){return r(arguments),s}),-1),function(e,t){var r=n("::",null,"GC");return i(r,"$start",a(s))}()},Opal.modules["corelib/process"]=function(e){var t=e.module,n=e.defs,r=e.truthy,i=e.return_val,a=e.Kernel,s=e.nil,o=e.$$$;return e.add_stubs("const_set,size,<<,__register_clock__,to_f,now,new,[],raise"),function($){var u=t("::","Process"),l=s;if(u.__clocks__=[],n(u,"$__register_clock__",(function(e,t){var n=this;return null==n.__clocks__&&(n.__clocks__=s),n.$const_set(e,n.__clocks__.$size()),n.__clocks__["$<<"](t)})),u.$__register_clock__("CLOCK_REALTIME",(function(){return Date.now()})),l=!1,e.global.performance)l=function(){return performance.now()};else if(e.global.process&&process.hrtime){var c=process.hrtime();l=function(){var e=process.hrtime(c),t=e[1]/1e3|0;return 1e3*e[0]+t/1e3}}return r(l)&&u.$__register_clock__("CLOCK_MONOTONIC",l),n(u,"$pid",i(0)),n(u,"$times",(function(){var e;return e=o("Time").$now().$to_f(),o(o("Benchmark"),"Tms").$new(e,e,e,e,e)})),n(u,"$clock_gettime",(function(e,t){var n=this,i=s;null==n.__clocks__&&(n.__clocks__=s),null==t&&(t="float_second"),r(i=n.__clocks__["$[]"](e))||a.$raise(o(o("Errno"),"EINVAL"),"clock_gettime("+e+") "+n.__clocks__["$[]"](e));var $=i();switch(t){case"float_second":return $/1e3;case"float_millisecond":return $/1;case"float_microsecond":return 1e3*$;case"second":return $/1e3|0;case"millisecond":return $/1|0;case"microsecond":return 1e3*$|0;case"nanosecond":return 1e6*$|0;default:a.$raise(o("ArgumentError"),"unexpected unit: "+t)}}),-2)}()},Opal.modules["corelib/random/formatter"]=function(e){var t=e.klass,n=e.module,r=e.def,i=e.range,a=e.send,s=e.rb_divide,o=e.Kernel,$=e.Opal,u=e.nil,l=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,_,d){var p=t("::",null,"Random"),f=[p].concat(d);return function(t,c){var _=n(t,"Formatter"),d=[_].concat(c),p=e.$r(d);r(_,"$hex",(function(e){null==e&&(e=u),e=l("Random").$_verify_count(e);for(var t=this.$bytes(e),n="",r=0;r<e;r++)n+=t.charCodeAt(r).toString(16).padStart(2,"0");return n.$encode("US-ASCII")}),-1),r(_,"$random_bytes",(function(e){return null==e&&(e=u),this.$bytes(e)}),-1),r(_,"$base64",(function(e){return null==e&&(e=u),l("Base64").$strict_encode64(this.$random_bytes(e)).$encode("US-ASCII")}),-1),r(_,"$urlsafe_base64",(function(e,t){return null==e&&(e=u),null==t&&(t=!1),l("Base64").$urlsafe_encode64(this.$random_bytes(e),t).$encode("US-ASCII")}),-1),r(_,"$uuid",(function(){var e=u;return(e=this.$hex(16).$split(""))["$[]="](12,"4"),e["$[]="](16,(3&parseInt(e["$[]"](16),16)|8).toString(16)),e=[e["$[]"](i(0,8,!0)),e["$[]"](i(8,12,!0)),e["$[]"](i(12,16,!0)),e["$[]"](i(16,20,!0)),e["$[]"](i(20,32,!0))],(e=a(e,"map",[],"join".$to_proc())).$join("-")})),r(_,"$random_float",(function(){var e=u,t=u;return e=this.$bytes(4),t=0,a(4,"times",[],(function(n){return null==n&&(n=u),t=(t=t["$<<"](8))["$|"](e["$[]"](n).$ord())})),s(t.$abs(),2147483647)})),r(_,"$random_number",(function(e){var t=this;function n(){return t.$random_float()}function r(e){return Math.floor(n()*e)}return null==e?n():e.$$is_range?function(){var t=e.begin,n=e.end;if(t===u||n===u)return u;var i=n-t;return i<0?u:0===i?t:(n%1!=0||t%1!=0||e.excl||i++,r(i)+t)}():e.$$is_number?(e<=0&&o.$raise(l("ArgumentError"),"invalid argument - "+e),e%1==0?r(e):n()*e):((e=$["$coerce_to!"](e,l("Integer"),"to_int"))<=0&&o.$raise(l("ArgumentError"),"invalid argument - "+e),r(e))}),-1),r(_,"$alphanumeric",(function(e){var t=u;return null==e&&(e=u),e=p("Random").$_verify_count(e),t=a([i("0","9",!1),i("a","z",!1),i("A","Z",!1)],"map",[],"to_a".$to_proc()).$flatten(),a(l("Array"),"new",[e],(function e(n){var r=null==e.$$s?this:e.$$s;return null==n&&(n=u),t["$[]"](r.$random_number(t.$length()))}),{$$s:this}).$join()}),-1)}(p,f),p.$include(l(l("Random"),"Formatter")),p.$extend(l(l("Random"),"Formatter"))}(0,0,[])},Opal.modules["corelib/random/mersenne_twister"]=function(e){var t,n,r,i=e.klass,a=e.const_set,s=e.send,o=e.nil,$=e.$$$,u=o;return e.add_stubs("generator="),u=function(){var e=624,t=397,n=function(e,t){return function(e,t){return 2147483648&e|2147483647&t}(e,t)>>>1^(1&t?2567483615:0)};function r(r){var i;return--r.left<=0&&function(r){var i,a=0,s=r.state;for(r.left=e,r.next=0,i=e-t+1;--i;a++)s[a]=s[a+t]^n(s[a+0],s[a+1]);for(i=t;--i;a++)s[a]=s[a+(t-e)]^n(s[a+0],s[a+1]);s[a]=s[a+(t-e)]^n(s[a+0],s[0])}(r),i=r.state[r.next++],i^=i>>>11,i^=i<<7&2636928640,i^=i<<15&4022730752,(i^=i>>>18)>>>0}return{genrand_real:function(e){return function(e,t){return(67108864*(e>>>=5)+(t>>>=6))*(1/9007199254740992)}(r(e),r(e))},init:function(t){var n={left:0,next:e,state:new Array(e)};return function(t,n){var r;for(t.state[0]=n>>>0,r=1;r<e;r++)t.state[r]=1812433253*(t.state[r-1]^t.state[r-1]>>30>>>0)+r,t.state[r]&=4294967295;t.left=1,t.next=e}(n,t),n}}}(),n=i("::",null,"Random"),r=Number.MAX_SAFE_INTEGER||Math.pow(2,53)-1,a(n,"MERSENNE_TWISTER_GENERATOR",{new_seed:function(){return Math.round(Math.random()*r)},reseed:function(e){return u.init(e)},rand:function(e){return u.genrand_real(e)}}),t=[$(n,"MERSENNE_TWISTER_GENERATOR")],s(n,"generator=",t),t[t.length-1]},Opal.modules["corelib/random"]=function(e){var t=e.truthy,n=e.klass,r=e.Kernel,i=e.defs,a=e.Opal,s=e.def,o=e.eqeqeq,$=e.send,u=e.top,l=(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"),u.$require("corelib/random/formatter"),function(u,c){var _=n("::",null,"Random");_.$attr_reader("seed","state"),i(_,"$_verify_count",(function(e){return t(e)||(e=16),"number"!=typeof e&&(e=e.$to_int()),e<0&&r.$raise(l("ArgumentError"),"negative string size (or size too big)"),e=Math.floor(e)})),s(_,"$initialize",(function(e){return null==e&&(e=l("Random").$new_seed()),e=a["$coerce_to!"](e,l("Integer"),"to_int"),this.state=e,this.$reseed(e)}),-1),s(_,"$reseed",(function(t){return this.seed=t,this.$rng=e.$$rand.reseed(t)})),i(_,"$new_seed",(function(){return e.$$rand.new_seed()})),i(_,"$rand",(function(e){return l(this,"DEFAULT").$rand(e)}),-1),i(_,"$srand",(function(e){var t;return null==e&&(e=l("Random").$new_seed()),e=a["$coerce_to!"](e,l("Integer"),"to_int"),t=l(this,"DEFAULT").$seed(),l(this,"DEFAULT").$reseed(e),t}),-1),i(_,"$urandom",(function(e){return l("SecureRandom").$bytes(e)})),s(_,"$==",(function(e){var n;return!!o(l("Random"),e)&&(t(n=this.$seed()["$=="](e.$seed()))?this.$state()["$=="](e.$state()):n)})),s(_,"$bytes",(function(e){return e=l("Random").$_verify_count(e),$(l("Array"),"new",[e],(function e(){return(null==e.$$s?this:e.$$s).$rand(255).$chr()}),{$$s:this}).$join().$encode("ASCII-8BIT")})),i(_,"$bytes",(function(e){return l(this,"DEFAULT").$bytes(e)})),s(_,"$rand",(function(e){return this.$random_number(e)}),-1),s(_,"$random_float",(function(){return this.state++,e.$$rand.rand(this.$rng)})),i(_,"$random_float",(function(){return l(this,"DEFAULT").$random_float()})),i(_,"$generator=",(function(n){var r=this;return e.$$rand=n,t(r["$const_defined?"]("DEFAULT"))?l(r,"DEFAULT").$reseed():r.$const_set("DEFAULT",r.$new(r.$new_seed()))}))}(),u.$require("corelib/random/mersenne_twister")},Opal.modules["corelib/unsupported"]=function(e){var t=e.Kernel,n=e.klass,r=e.send,i=e.slice,a=e.module,s=e.def,o=e.return_val,$=e.alias,u=e.defs,l=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 d={};function p(n){switch(e.config.unsupported_features_severity){case"error":t.$raise(_("NotImplementedError"),n);break;case"warning":!function(e){if(d[e])return;d[e]=!0,l.$warn(e)}(n)}}return function(e,a){var s=n("::",null,"String");r(["<<","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(n){return null==n&&(n=c),r(null==e.$$s?this:e.$$s,"define_method",[n],(function(e){return i(arguments),t.$raise(_("NotImplementedError"),"String#%s not supported. Mutable String methods are not supported in Opal."["$%"](n))}),-1)}),{$$s:s})}(),function(e){var t=a("::","Kernel"),n="Object tainting is not supported by Opal";s(t,"$taint",(function(){return p(n),this})),s(t,"$untaint",(function(){return p(n),this})),s(t,"$tainted?",(function(){return p(n),!1}))}(),function(e,t){var r=n("::",null,"Module");s(r,"$public",(function(e){var t;return 0===(t=i(arguments)).length?(this.$$module_function=!1,c):1===t.length?t[0]:t}),-1),s(r,"$private_class_method",(function(e){var t;return 1===(t=i(arguments)).length?t[0]:t}),-1),s(r,"$private_method_defined?",o(!1)),s(r,"$private_constant",(function(e){return i(arguments),c}),-1),$(r,"nesting","public"),$(r,"private","public"),$(r,"protected","public"),$(r,"protected_method_defined?","private_method_defined?"),$(r,"public_class_method","private_class_method"),$(r,"public_instance_method","instance_method"),$(r,"public_instance_methods","instance_methods"),$(r,"public_method_defined?","method_defined?")}(),function(e){var t=a("::","Kernel");s(t,"$private_methods",(function(e){return i(arguments),[]}),-1),$(t,"protected_methods","private_methods"),$(t,"private_instance_methods","private_methods"),$(t,"protected_instance_methods","private_methods")}(),function(n,r){var o=a("::","Kernel"),$=[o].concat(r),u=e.$r($);s(o,"$eval",(function(e){return i(arguments),t.$raise(_("NotImplementedError"),"To use Kernel#eval, you must first require 'opal-parser'. See https://github.com/opal/opal/blob/"+u("RUBY_ENGINE_VERSION")+"/docs/opal_parser.md for details.")}),-1)}(0,[]),u(l,"$public",(function(e){var t;return 1===(t=i(arguments)).length?t[0]:t}),-1),u(l,"$private",(function(e){var t;return 1===(t=i(arguments)).length?t[0]:t}),-1)},Opal.modules["corelib/binding"]=function(e){var t=e.klass,n=e.truthy,r=e.def,i=e.slice,a=e.send,s=e.to_a,o=e.Kernel,$=e.return_ivar,u=e.eqeq,l=(e.thrower,e.module),c=e.const_set,_=e.top,d=e.nil,p=e.$$$;return e.add_stubs("js_eval,call,raise,inspect,include?,==,receiver,eval,attr_reader,new"),function(l,c){var _=t("::",null,"Binding"),f=_.$$prototype;f.jseval=f.scope_variables=d,r(_,"$initialize",(function(e,t,r,i){var a,s=this;return null==t&&(t=[]),null==i&&(i=d),a=[e,t,r,i],s.jseval=a[0],s.scope_variables=a[1],s.receiver=a[2],s.source_location=a[3],n(void 0!==typeof r)?d:s.$js_eval("self")}),-2),r(_,"$js_eval",(function(e){var t;return t=i(arguments),n(this.jseval)?a(this.jseval,"call",s(t)):o.$raise("Evaluation on a Proc#binding is not supported")}),-1),r(_,"$local_variable_get",(function(t){try{return this.$js_eval(t)}catch(n){if(!e.rescue(n,[p("Exception")]))throw n;try{return o.$raise(p("NameError"),"local variable `"+t+"' is not defined for "+this.$inspect())}finally{e.pop_exception(n)}}})),r(_,"$local_variable_set",(function(t,n){return e.Binding.tmp_value=n,this.$js_eval(t+" = Opal.Binding.tmp_value"),delete e.Binding.tmp_value,n})),r(_,"$local_variables",$("scope_variables")),r(_,"$local_variable_defined?",(function(e){return this.scope_variables["$include?"](e)})),r(_,"$eval",(function(t,n,r){try{return null==n&&(n=d),null==r&&(r=d),u(t,"self")?this.$receiver():o.$eval(t,this,n,r)}catch(t){if(t===e.t_eval_return)return t.$v;throw t}}),-2),_.$attr_reader("receiver","source_location")}(),function(e){var t=l("::","Kernel");r(t,"$binding",(function(){return o.$raise("Opal doesn't support dynamic calls to binding")}))}(),c([][0],"TOPLEVEL_BINDING",p("Binding").$new((function(e){return new Function("self","return "+e)(_)}),[],_,["<main>",0]))},Opal.modules["corelib/irb"]=function(e){var t=e.module,n=e.truthy,r=e.Kernel,i=e.defs,a=e.gvars,s=e.lambda,o=e.hash_rehash,$=e.send,u=e.rb_plus,l=e.const_set,c=e.klass,_=e.def,d=e.Opal,p=e.range,f=e.eqeq,h=e.thrower,m=[],g=e.nil,v=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(d,p){var f=[t(d,"Opal")].concat(p);(function(d,p){var f=t(d,"IRB"),h=[f].concat(p),m=e.$r(h);i(f,"$ensure_loaded",(function(t){var i,a;if(n(e.loaded_features["$include?"](t)))return g;if(i="https://cdn.opalrb.com/opal/"+(n(m("RUBY_ENGINE_VERSION")["$include?"]("dev"))?"master":m("RUBY_ENGINE_VERSION"))+"/"+t+".js","undefined"!=typeof XMLHttpRequest){var s=new XMLHttpRequest;s.open("GET",i,!1),s.send(""),a=s.responseText}else r.$raise("You need to provision "+t+" yourself in this environment");return new Function("Opal",a)(e),e.require(t),n(e.loaded_features["$include?"](t))?g:r.$raise("Could not load "+t+" for some reason")})),f.$singleton_class().$attr_accessor("output"),i(f,"$prepare_console",(function t(){var r,i=t.$$p||g,l=this,c=g,_=g;return null==a.stdout&&(a.stdout=g),null==a.stderr&&(a.stderr=g),null==a.stdin&&(a.stdin=g),t.$$p=null,function(){try{return l["$output="](""),c=o(new Map([[a.stdout,s((function(e){return null==e&&(e=g),a.stdout=e}))],[a.stderr,s((function(e){return null==e&&(e=g),a.stderr=e}))]])),n(l["$browser?"]())&&($(c,"each",[],(function e(t,r){var i=null==e.$$s?this:e.$$s,a=g;return null==t&&(t=g),null==r&&(r=g),(a=t.$dup())["$write_proc="]($(i,"proc",[],(function e(r){var i=null==e.$$s?this:e.$$s;return null==r&&(r=g),i["$output="](u(i.$output(),r)),i["$output="](i.$output().$split("\n").$last(30).$join("\n")),n(r["$end_with?"]("\n"))&&i["$output="](u(i.$output(),"\n")),t.$write_proc().$call(r)}),{$$s:i})),a["$tty="](!1),r.$call(a)}),{$$s:l}),_=a.stdin.$read_proc(),a.stdin["$read_proc="]((function(e){var t=prompt(l.$output());return null!==t?t+"\n":g}))),e.yieldX(i,[])}finally{$(c,"each",[],(function(e,t){return null==e&&(e=g),null==t&&(t=g),t.$call(e)})),r=[_],$(a.stdin,"read_proc=",r),r[r.length-1],$(l,"output=",r=[""]),r[r.length-1]}}()})),i(f,"$browser?",(function(){return"undefined"!=typeof document&&"undefined"!=typeof prompt})),l(h[0],"LINEBREAKS",["unexpected token $end","unterminated string meets end of file"].$freeze()),function(t,n){var r=c(t,null,"Silencer"),i=r.$$prototype;i.collector=i.stderr=g,_(r,"$initialize",(function(){return null==a.stderr&&(a.stderr=g),this.stderr=a.stderr})),_(r,"$silence",(function t(){var n=t.$$p||g,r=this;return t.$$p=null,function(){try{return r.collector=v("StringIO").$new(),a.stderr=r.collector,e.yieldX(n,[])}finally{a.stderr=r.stderr}}()})),_(r,"$warnings",(function(){return this.collector.$string()}))}(h[0])})(f[0],f)}(m[0],m),function(t,r,i){var a=c("::",null,"Binding"),s=[a].concat(i),o=e.$r(s);_(a,"$irb",(function(){try{var t=h("return"),r=g;return v(d,"IRB").$ensure_loaded("opal-replutils"),r=v(v(d,"IRB"),"Silencer").$new(),$(v(d,"IRB"),"prepare_console",[],(function i(){var a=null==i.$$s?this:i.$$s;return function(){try{var i=h("break");return $(a,"loop",[],(function a(){var s=null==a.$$s?this:a.$$s,l=g,c=g,_=g,h=g,m=g;for(s.$print(">> "),l=s.$gets(),n(l)||i.$throw(g,a.$$is_lambda),c="",n(v(d,"IRB")["$browser?"]())&&s.$puts(l),n(l["$start_with?"]("ls "))?(c=l["$[]"](p(3,-1,!1)),_="ls"):f(l,"ls\n")?(c="self",_="ls"):n(l["$start_with?"]("show "))?(c=l["$[]"](p(5,-1,!1)),_="show"):(c=l,_="inspect"),h=g;;){try{$(r,"silence",[],(function(){return h=e.compile(c,{irb:!0})}))}catch(i){if(!e.rescue(i,[o("SyntaxError")]))throw i;m=i;try{if(n(v(v(d,"IRB"),"LINEBREAKS")["$include?"](m.$message()))){s.$print(".. "),l=s.$gets(),n(l)||t.$throw(g,a.$$is_lambda),n(v(d,"IRB")["$browser?"]())&&s.$puts(l),c=u(c,l);continue}n(r.$warnings()["$empty?"]())?s.$warn(m.$full_message()):s.$warn(r.$warnings())}finally{e.pop_exception(i)}}break}return f(_,"show")&&(s.$puts(h),t.$throw(g,a.$$is_lambda)),s.$puts(v("REPLUtils").$eval_and_print(h,_,!1,s))}),{$$s:a,$$ret:t})}catch(e){if(e===i)return e.$v;throw e}finally{i.is_orphan=!0}}()}),{$$s:this})}catch(e){if(e===t)return e.$v;throw e}finally{t.is_orphan=!0}}))}(0,0,m),e.irb=function(e){v("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,n){return e.load_parser(),e.compile(t,n)})},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.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.modules["opal/paths"]=function(e){var t=e.module,n=e.defs,r=e.slice,i=e.rb_plus,a=e.gvars,s=e.send,o=e.to_a,$=e.def,u=e.truthy,l=[],c=e.nil,_=e.$$$;return e.add_stubs("expand_path,append_paths,concat,gem_dir,[],+,grep,require_paths_for_gem,private,find_by_name,raise,each,runtime_dependencies,name,map,require_paths,<<,join,extend,freeze,core_dir,std_dir,reset_paths!"),function(l,d){var p=t(l,"Opal"),f=[p].concat(d),h=e.$r(f);return n(p,"$gem_dir",(function(){return h("File").$expand_path("../..","opal/paths.rb")})),n(p,"$core_dir",(function(){return h("File").$expand_path("../../../opal","opal/paths.rb")})),n(p,"$std_dir",(function(){return h("File").$expand_path("../../../stdlib","opal/paths.rb")})),n(p,"$append_path",(function(e){return this.$append_paths(e)})),n(p,"$append_paths",(function(e){var t,n=this;return null==n.paths&&(n.paths=c),t=r(arguments),n.paths.$concat(t),c}),-1),n(p,"$dependent_files",(function(){var e,t=c;return null==a.LOADED_FEATURES&&(a.LOADED_FEATURES=c),e=h("File").$expand_path("..",h("Opal").$gem_dir()),t=h("Dir")["$[]"](e+"/{Gemfile*,*.gemspec,lib/**/*}"),t=i(t,a.LOADED_FEATURES.$grep(/lib\/(parser|ast)/))})),function(n,r){var a=t(n,"UseGem"),l=[a].concat(r),d=e.$r(l);$(a,"$use_gem",(function(e,t){return null==t&&(t=!0),s(this,"append_paths",o(this.$require_paths_for_gem(e,t)))}),-2),a.$private(),$(a,"$require_paths_for_gem",(function(e,t){var n,r=c,a=c;return r=[],a=_(d("Gem"),"Specification").$find_by_name(e),u(a)||this.$raise(d("GemNotFound"),e),u(t)&&s(a.$runtime_dependencies(),"each",[],(function e(n){return null==n&&(n=c),r=i(r,(null==e.$$s?this:e.$$s).$require_paths_for_gem(n.$name(),t))}),{$$s:this}),n=a.$gem_dir(),s(a.$require_paths(),"map",[],(function(e){return null==e&&(e=c),r["$<<"](d("File").$join(n,e))})),r}))}(f[0],f),p.$extend(h("UseGem")),n(p,"$paths",(function(){var e=this;return null==e.paths&&(e.paths=c),e.paths.$freeze()})),n(p,"$reset_paths!",(function(){var e=this;return e.paths=[e.$core_dir(),e.$std_dir(),e.$gem_dir()],c})),p["$reset_paths!"]()}(l[0],l)},Opal.modules["opal/raw"]=function(e){var t,n,r,i=e.module,a=e.def,s=e.truthy,o=e.slice,$=e.alias,u=e.nil;return e.add_stubs("insert,<<,global,call,extend"),r=[],t=[i("::","Opal")].concat(r)[0],n=i(t,"Raw"),a(n,"$delete",(function(e,t){return delete e[t]})),a(n,"$global",(function(){return e.global})),a(n,"$in",(function(e,t){return e in t})),a(n,"$instanceof",(function(e,t){return e instanceof t})),s("function"==typeof Function.prototype.bind)?a(n,"$new",(function e(t,n){var r,i=e.$$p||u;return e.$$p=null,(r=o(arguments,1)).$insert(0,this),s(i)&&r["$<<"](i),new(t.bind.apply(t,r))}),-2):a(n,"$new",(function e(t,n){var r,i,a,$=e.$$p||u;return e.$$p=null,r=o(arguments,1),i=r,s($)&&i["$<<"]($),(a=function(){return t.apply(this,i)}).prototype=t.prototype,new a}),-2),a(n,"$typeof",(function(e){return typeof e})),a(n,"$void",(function(e){})),a(n,"$call",(function e(t,n){var r,i=e.$$p||u,a=u;return e.$$p=null,r=o(arguments,1),a=this.$global(),s(i)&&r["$<<"](i),a[t].apply(a,r)}),-2),a(n,"$[]",(function(t){return e.global[t]})),$(n,"method_missing","call"),n.$extend(n)},Opal.modules["bigdecimal/bignumber"]=function(e){var t=e.klass,n=[],r=e.$r(n);e.nil;return function(n,r){var i=t(n,r,"BigDecimal"),a=function(t){e.const_set(i,"BigNumber",t())};a.amd=!0,function(e){"use strict";function t(e){function i(e,t){var n,r,s,o,$,u,l=this;if(!(l instanceof i))return F&&z(26,"constructor call without new",e),new i(e,t);if(null!=t&&U(t,2,64,T,"base")){if(u=e+"",10==(t|=0))return D(l=new i(e instanceof i?e:u),C+l.e+1,j);if((o="number"==typeof e)&&0*e!=0||!new RegExp("^-?"+(n="["+y.slice(0,t)+"]+")+"(?:\\."+n+")?$",37>t?"i":"").test(u))return p(l,u,o,t);o?(l.s=0>1/e?(u=u.slice(1),-1):1,F&&u.replace(/^0\.0*|\./,"").length>15&&z(T,b,e),o=!1):l.s=45===u.charCodeAt(0)?(u=u.slice(1),-1):1,u=a(u,10,t,l.s)}else{if(e instanceof i)return l.s=e.s,l.e=e.e,l.c=(e=e.c)?e.slice():e,void(T=0);if((o="number"==typeof e)&&0*e==0){if(l.s=0>1/e?(e=-e,-1):1,e===~~e){for(r=0,s=e;s>=10;s/=10,r++);return l.e=r,l.c=[e],void(T=0)}u=e+""}else{if(!f.test(u=e+""))return p(l,u,o);l.s=45===u.charCodeAt(0)?(u=u.slice(1),-1):1}}for((r=u.indexOf("."))>-1&&(u=u.replace(".","")),(s=u.search(/e/i))>0?(0>r&&(r=s),r+=+u.slice(s+1),u=u.substring(0,s)):0>r&&(r=u.length),s=0;48===u.charCodeAt(s);s++);for($=u.length;48===u.charCodeAt(--$););if(u=u.slice(s,$+1))if($=u.length,o&&F&&$>15&&z(T,b,l.s*e),(r=r-s-1)>H)l.c=l.e=null;else if(L>r)l.c=[l.e=0];else{if(l.e=r,l.c=[],s=(r+1)%x,0>r&&(s+=x),$>s){for(s&&l.c.push(+u.slice(0,s)),$-=x;$>s;)l.c.push(+u.slice(s,s+=x));u=u.slice(s),s=x-u.length}else s-=$;for(;s--;u+="0");l.c.push(+u)}else l.c=[l.e=0];T=0}function a(e,t,n,a){var s,o,$,l,_,d,p,f=e.indexOf("."),h=C,m=j;for(37>n&&(e=e.toLowerCase()),f>=0&&($=K,K=0,e=e.replace(".",""),_=(p=new i(n)).pow(e.length-f),K=$,p.c=u(c(r(_.c),_.e),10,t),p.e=p.c.length),o=$=(d=u(e,n,t)).length;0==d[--$];d.pop());if(!d[0])return"0";if(0>f?--o:(_.c=d,_.e=o,_.s=a,d=(_=I(_,p,h,m,t)).c,l=_.r,o=_.e),f=d[s=o+h+1],$=t/2,l=l||0>s||null!=d[s+1],l=4>m?(null!=f||l)&&(0==m||m==(_.s<0?3:2)):f>$||f==$&&(4==m||l||6==m&&1&d[s-1]||m==(_.s<0?8:7)),1>s||!d[0])e=l?c("1",-h):"0";else{if(d.length=s,l)for(--t;++d[--s]>t;)d[s]=0,s||(++o,d.unshift(1));for($=d.length;!d[--$];);for(f=0,e="";$>=f;e+=y.charAt(d[f++]));e=c(e,o)}return e}function O(e,t,n,a){var s,o,$,u,_;if(n=null!=n&&U(n,0,8,a,v)?0|n:j,!e.c)return e.toString();if(s=e.c[0],$=e.e,null==t)_=r(e.c),_=19==a||24==a&&B>=$?l(_,$):c(_,$);else if(o=(e=D(new i(e),t,n)).e,u=(_=r(e.c)).length,19==a||24==a&&(o>=t||B>=o)){for(;t>u;_+="0",u++);_=l(_,o)}else if(t-=$,_=c(_,o),o+1>u){if(--t>0)for(_+=".";t--;_+="0");}else if((t+=o-u)>0)for(o+1==u&&(_+=".");t--;_+="0");return e.s<0&&s?"-"+_:_}function M(e,t){var n,r,a=0;for($(e[0])&&(e=e[0]),n=new i(e[0]);++a<e.length;){if(!(r=new i(e[a])).s){n=r;break}t.call(n,r)&&(n=r)}return n}function A(e,t,n,r,i){return(t>e||e>n||e!=_(e))&&z(r,(i||"decimal places")+(t>e||e>n?" out of range":" not an integer"),e),!0}function N(e,t,n){for(var r=1,i=t.length;!t[--i];t.pop());for(i=t[0];i>=10;i/=10,r++);return(n=r+n*x-1)>H?e.c=e.e=null:L>n?e.c=[e.e=0]:(e.e=n,e.c=t),e}function z(e,t,n){var r=new Error(["new BigNumber","cmp","config","div","divToInt","eq","gt","gte","lt","lte","minus","mod","plus","precision","random","round","shift","times","toDigits","toExponential","toFixed","toFormat","toFraction","pow","toPrecision","toString","BigNumber"][e]+"() "+t+": "+n);throw r.name="BigNumber Error",T=0,r}function D(e,t,n,r){var i,a,s,o,$,u,l,c=e.c,_=G;if(c){e:{for(i=1,o=c[0];o>=10;o/=10,i++);if(0>(a=t-i))a+=x,s=t,l=($=c[u=0])/_[i-s-1]%10|0;else if((u=h((a+1)/x))>=c.length){if(!r)break e;for(;c.length<=u;c.push(0));$=l=0,i=1,s=(a%=x)-x+1}else{for($=o=c[u],i=1;o>=10;o/=10,i++);l=0>(s=(a%=x)-x+i)?0:$/_[i-s-1]%10|0}if(r=r||0>t||null!=c[u+1]||(0>s?$:$%_[i-s-1]),r=4>n?(l||r)&&(0==n||n==(e.s<0?3:2)):l>5||5==l&&(4==n||r||6==n&&(a>0?s>0?$/_[i-s]:0:c[u-1])%10&1||n==(e.s<0?8:7)),1>t||!c[0])return c.length=0,r?(t-=e.e+1,c[0]=_[(x-t%x)%x],e.e=-t||0):c[0]=e.e=0,e;if(0==a?(c.length=u,o=1,u--):(c.length=u+1,o=_[x-a],c[u]=s>0?m($/_[i-s]%_[s])*o:0),r)for(;;){if(0==u){for(a=1,s=c[0];s>=10;s/=10,a++);for(s=c[0]+=o,o=1;s>=10;s/=10,o++);a!=o&&(e.e++,c[0]==w&&(c[0]=1));break}if(c[u]+=o,c[u]!=w)break;c[u--]=0,o=1}for(a=c.length;0===c[--a];c.pop());}e.e>H?e.c=e.e=null:e.e<L&&(e.c=[e.e=0])}return e}var I,T=0,R=i.prototype,q=new i(1),C=20,j=4,B=-7,P=21,L=-1e7,H=1e7,F=!0,U=A,Y=!1,V=1,K=100,W={decimalSeparator:".",groupSeparator:",",groupSize:3,secondaryGroupSize:0,fractionGroupSeparator:" ",fractionGroupSize:0};return i.another=t,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=function(){var e,t,n=0,r={},i=arguments,a=i[0],s=a&&"object"==typeof a?function(){return a.hasOwnProperty(t)?null!=(e=a[t]):void 0}:function(){return i.length>n?null!=(e=i[n++]):void 0};return s(t="DECIMAL_PLACES")&&U(e,0,S,2,t)&&(C=0|e),r[t]=C,s(t="ROUNDING_MODE")&&U(e,0,8,2,t)&&(j=0|e),r[t]=j,s(t="EXPONENTIAL_AT")&&($(e)?U(e[0],-S,0,2,t)&&U(e[1],0,S,2,t)&&(B=0|e[0],P=0|e[1]):U(e,-S,S,2,t)&&(B=-(P=0|(0>e?-e:e)))),r[t]=[B,P],s(t="RANGE")&&($(e)?U(e[0],-S,-1,2,t)&&U(e[1],1,S,2,t)&&(L=0|e[0],H=0|e[1]):U(e,-S,S,2,t)&&(0|e?L=-(H=0|(0>e?-e:e)):F&&z(2,t+" cannot be zero",e))),r[t]=[L,H],s(t="ERRORS")&&(e===!!e||1===e||0===e?(T=0,U=(F=!!e)?A:o):F&&z(2,t+g,e)),r[t]=F,s(t="CRYPTO")&&(e===!!e||1===e||0===e?(Y=!(!e||!d),e&&!Y&&F&&z(2,"crypto unavailable",d)):F&&z(2,t+g,e)),r[t]=Y,s(t="MODULO_MODE")&&U(e,0,9,2,t)&&(V=0|e),r[t]=V,s(t="POW_PRECISION")&&U(e,0,S,2,t)&&(K=0|e),r[t]=K,s(t="FORMAT")&&("object"==typeof e?W=e:F&&z(2,t+" not an object",e)),r[t]=W,r},i.max=function(){return M(arguments,R.lt)},i.min=function(){return M(arguments,R.gt)},i.random=function(){var e=9007199254740992,t=Math.random()*e&2097151?function(){return m(Math.random()*e)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)};return function(e){var n,r,a,s,o,$=0,u=[],l=new i(q);if(e=null!=e&&U(e,0,S,14)?0|e:C,s=h(e/x),Y)if(d&&d.getRandomValues){for(n=d.getRandomValues(new Uint32Array(s*=2));s>$;)(o=131072*n[$]+(n[$+1]>>>11))>=9e15?(r=d.getRandomValues(new Uint32Array(2)),n[$]=r[0],n[$+1]=r[1]):(u.push(o%1e14),$+=2);$=s/2}else if(d&&d.randomBytes){for(n=d.randomBytes(s*=7);s>$;)(o=281474976710656*(31&n[$])+1099511627776*n[$+1]+4294967296*n[$+2]+16777216*n[$+3]+(n[$+4]<<16)+(n[$+5]<<8)+n[$+6])>=9e15?d.randomBytes(7).copy(n,$):(u.push(o%1e14),$+=7);$=s/7}else F&&z(14,"crypto unavailable",d);if(!$)for(;s>$;)9e15>(o=t())&&(u[$++]=o%1e14);for(s=u[--$],e%=x,s&&e&&(o=G[x-e],u[$]=m(s/o)*o);0===u[$];u.pop(),$--);if(0>$)u=[a=0];else{for(a=-1;0===u[0];u.shift(),a-=x);for($=1,o=u[0];o>=10;o/=10,$++);x>$&&(a-=x-$)}return l.e=a,l.c=u,l}}(),I=function(){function e(e,t,n){var r,i,a,s,o=0,$=e.length,u=t%E,l=t/E|0;for(e=e.slice();$--;)o=((i=u*(a=e[$]%E)+(r=l*a+(s=e[$]/E|0)*u)%E*E+o)/n|0)+(r/E|0)+l*s,e[$]=i%n;return o&&e.unshift(o),e}function t(e,t,n,r){var i,a;if(n!=r)a=n>r?1:-1;else for(i=a=0;n>i;i++)if(e[i]!=t[i]){a=e[i]>t[i]?1:-1;break}return a}function r(e,t,n,r){for(var i=0;n--;)e[n]-=i,i=e[n]<t[n]?1:0,e[n]=i*r+e[n]-t[n];for(;!e[0]&&e.length>1;e.shift());}return function(a,s,o,$,u){var l,c,_,d,p,f,h,g,v,b,y,k,G,E,S,O,M,A=a.s==s.s?1:-1,N=a.c,z=s.c;if(!(N&&N[0]&&z&&z[0]))return new i(a.s&&s.s&&(N?!z||N[0]!=z[0]:z)?N&&0==N[0]||!z?0*A:A/0:NaN);for(v=(g=new i(A)).c=[],A=o+(c=a.e-s.e)+1,u||(u=w,c=n(a.e/x)-n(s.e/x),A=A/x|0),_=0;z[_]==(N[_]||0);_++);if(z[_]>(N[_]||0)&&c--,0>A)v.push(1),d=!0;else{for(E=N.length,O=z.length,_=0,A+=2,(p=m(u/(z[0]+1)))>1&&(z=e(z,p,u),N=e(N,p,u),O=z.length,E=N.length),G=O,y=(b=N.slice(0,O)).length;O>y;b[y++]=0);(M=z.slice()).unshift(0),S=z[0],z[1]>=u/2&&S++;do{if(p=0,0>(l=t(z,b,O,y))){if(k=b[0],O!=y&&(k=k*u+(b[1]||0)),(p=m(k/S))>1)for(p>=u&&(p=u-1),h=(f=e(z,p,u)).length,y=b.length;1==t(f,b,h,y);)p--,r(f,h>O?M:z,h,u),h=f.length,l=1;else 0==p&&(l=p=1),h=(f=z.slice()).length;if(y>h&&f.unshift(0),r(b,f,y,u),y=b.length,-1==l)for(;t(z,b,O,y)<1;)p++,r(b,y>O?M:z,y,u),y=b.length}else 0===l&&(p++,b=[0]);v[_++]=p,b[0]?b[y++]=N[G]||0:(b=[N[G]],y=1)}while((G++<E||null!=b[0])&&A--);d=null!=b[0],v[0]||v.shift()}if(u==w){for(_=1,A=v[0];A>=10;A/=10,_++);D(g,o+(g.e=_+c*x-1)+1,$,d)}else g.e=c,g.r=+d;return g}}(),p=function(){var e=/^(-?)0([xbo])(?=\w[\w.]*$)/i,t=/^([^.]+)\.$/,n=/^\.([^.]+)$/,r=/^-?(Infinity|NaN)$/,a=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(s,o,$,u){var l,c=$?o:o.replace(a,"");if(r.test(c))s.s=isNaN(c)?null:0>c?-1:1;else{if(!$&&(c=c.replace(e,(function(e,t,n){return l="x"==(n=n.toLowerCase())?16:"b"==n?2:8,u&&u!=l?e:t})),u&&(l=u,c=c.replace(t,"$1").replace(n,"0.$1")),o!=c))return new i(c,l);F&&z(T,"not a"+(u?" base "+u:"")+" number",o),s.s=null}s.c=s.e=null,T=0}}(),R.absoluteValue=R.abs=function(){var e=new i(this);return e.s<0&&(e.s=1),e},R.ceil=function(){return D(new i(this),this.e+1,2)},R.comparedTo=R.cmp=function(e,t){return T=1,s(this,new i(e,t))},R.decimalPlaces=R.dp=function(){var e,t,r=this.c;if(!r)return null;if(e=((t=r.length-1)-n(this.e/x))*x,t=r[t])for(;t%10==0;t/=10,e--);return 0>e&&(e=0),e},R.dividedBy=R.div=function(e,t){return T=3,I(this,new i(e,t),C,j)},R.dividedToIntegerBy=R.divToInt=function(e,t){return T=4,I(this,new i(e,t),0,1)},R.equals=R.eq=function(e,t){return T=5,0===s(this,new i(e,t))},R.floor=function(){return D(new i(this),this.e+1,3)},R.greaterThan=R.gt=function(e,t){return T=6,s(this,new i(e,t))>0},R.greaterThanOrEqualTo=R.gte=function(e,t){return T=7,1===(t=s(this,new i(e,t)))||0===t},R.isFinite=function(){return!!this.c},R.isInteger=R.isInt=function(){return!!this.c&&n(this.e/x)>this.c.length-2},R.isNaN=function(){return!this.s},R.isNegative=R.isNeg=function(){return this.s<0},R.isZero=function(){return!!this.c&&0==this.c[0]},R.lessThan=R.lt=function(e,t){return T=8,s(this,new i(e,t))<0},R.lessThanOrEqualTo=R.lte=function(e,t){return T=9,-1===(t=s(this,new i(e,t)))||0===t},R.minus=R.sub=function(e,t){var r,a,s,o,$=this,u=$.s;if(T=10,t=(e=new i(e,t)).s,!u||!t)return new i(NaN);if(u!=t)return e.s=-t,$.plus(e);var l=$.e/x,c=e.e/x,_=$.c,d=e.c;if(!l||!c){if(!_||!d)return _?(e.s=-t,e):new i(d?$:NaN);if(!_[0]||!d[0])return d[0]?(e.s=-t,e):new i(_[0]?$:3==j?-0:0)}if(l=n(l),c=n(c),_=_.slice(),u=l-c){for((o=0>u)?(u=-u,s=_):(c=l,s=d),s.reverse(),t=u;t--;s.push(0));s.reverse()}else for(a=(o=(u=_.length)<(t=d.length))?u:t,u=t=0;a>t;t++)if(_[t]!=d[t]){o=_[t]<d[t];break}if(o&&(s=_,_=d,d=s,e.s=-e.s),(t=(a=d.length)-(r=_.length))>0)for(;t--;_[r++]=0);for(t=w-1;a>u;){if(_[--a]<d[a]){for(r=a;r&&!_[--r];_[r]=t);--_[r],_[a]+=w}_[a]-=d[a]}for(;0==_[0];_.shift(),--c);return _[0]?N(e,_,c):(e.s=3==j?-1:1,e.c=[e.e=0],e)},R.modulo=R.mod=function(e,t){var n,r,a=this;return T=11,e=new i(e,t),!a.c||!e.s||e.c&&!e.c[0]?new i(NaN):!e.c||a.c&&!a.c[0]?new i(a):(9==V?(r=e.s,e.s=1,n=I(a,e,0,3),e.s=r,n.s*=r):n=I(a,e,0,V),a.minus(n.times(e)))},R.negated=R.neg=function(){var e=new i(this);return e.s=-e.s||null,e},R.plus=R.add=function(e,t){var r,a=this,s=a.s;if(T=12,t=(e=new i(e,t)).s,!s||!t)return new i(NaN);if(s!=t)return e.s=-t,a.minus(e);var o=a.e/x,$=e.e/x,u=a.c,l=e.c;if(!o||!$){if(!u||!l)return new i(s/0);if(!u[0]||!l[0])return l[0]?e:new i(u[0]?a:0*s)}if(o=n(o),$=n($),u=u.slice(),s=o-$){for(s>0?($=o,r=l):(s=-s,r=u),r.reverse();s--;r.push(0));r.reverse()}for(0>(s=u.length)-(t=l.length)&&(r=l,l=u,u=r,t=s),s=0;t;)s=(u[--t]=u[t]+l[t]+s)/w|0,u[t]%=w;return s&&(u.unshift(s),++$),N(e,u,$)},R.precision=R.sd=function(e){var t,n,r=this,i=r.c;if(null!=e&&e!==!!e&&1!==e&&0!==e&&(F&&z(13,"argument"+g,e),e!=!!e&&(e=null)),!i)return null;if(t=(n=i.length-1)*x+1,n=i[n]){for(;n%10==0;n/=10,t--);for(n=i[0];n>=10;n/=10,t++);}return e&&r.e+1>t&&(t=r.e+1),t},R.round=function(e,t){var n=new i(this);return(null==e||U(e,0,S,15))&&D(n,~~e+this.e+1,null!=t&&U(t,0,8,15,v)?0|t:j),n},R.shift=function(e){var t=this;return U(e,-k,k,16,"argument")?t.times("1e"+_(e)):new i(t.c&&t.c[0]&&(-k>e||e>k)?t.s*(0>e?0:1/0):t)},R.squareRoot=R.sqrt=function(){var e,t,a,s,o,$=this,u=$.c,l=$.s,c=$.e,_=C+4,d=new i("0.5");if(1!==l||!u||!u[0])return new i(!l||0>l&&(!u||u[0])?NaN:u?$:1/0);if(0==(l=Math.sqrt(+$))||l==1/0?(((t=r(u)).length+c)%2==0&&(t+="0"),l=Math.sqrt(t),c=n((c+1)/2)-(0>c||c%2),l==1/0?t="1e"+c:t=(t=l.toExponential()).slice(0,t.indexOf("e")+1)+c,a=new i(t)):a=new i(l+""),a.c[0])for(3>(l=(c=a.e)+_)&&(l=0);;)if(o=a,a=d.times(o.plus(I($,o,_,1))),r(o.c).slice(0,l)===(t=r(a.c)).slice(0,l)){if(a.e<c&&--l,"9999"!=(t=t.slice(l-3,l+1))&&(s||"4999"!=t)){(!+t||!+t.slice(1)&&"5"==t.charAt(0))&&(D(a,a.e+C+2,1),e=!a.times(a).eq($));break}if(!s&&(D(o,o.e+C+2,0),o.times(o).eq($))){a=o;break}_+=4,l+=4,s=1}return D(a,a.e+C+1,j,e)},R.times=R.mul=function(e,t){var r,a,s,o,$,u,l,c,_,d,p,f,h,m,g,v=this,b=v.c,y=(T=17,e=new i(e,t)).c;if(!(b&&y&&b[0]&&y[0]))return!v.s||!e.s||b&&!b[0]&&!y||y&&!y[0]&&!b?e.c=e.e=e.s=null:(e.s*=v.s,b&&y?(e.c=[0],e.e=0):e.c=e.e=null),e;for(a=n(v.e/x)+n(e.e/x),e.s*=v.s,l=b.length,(d=y.length)>l&&(h=b,b=y,y=h,s=l,l=d,d=s),s=l+d,h=[];s--;h.push(0));for(m=w,g=E,s=d;--s>=0;){for(r=0,p=y[s]%g,f=y[s]/g|0,o=s+($=l);o>s;)r=((c=p*(c=b[--$]%g)+(u=f*c+(_=b[$]/g|0)*p)%g*g+h[o]+r)/m|0)+(u/g|0)+f*_,h[o--]=c%m;h[o]=r}return r?++a:h.shift(),N(e,h,a)},R.toDigits=function(e,t){var n=new i(this);return e=null!=e&&U(e,1,S,18,"precision")?0|e:null,t=null!=t&&U(t,0,8,18,v)?0|t:j,e?D(n,e,t):n},R.toExponential=function(e,t){return O(this,null!=e&&U(e,0,S,19)?1+~~e:null,t,19)},R.toFixed=function(e,t){return O(this,null!=e&&U(e,0,S,20)?~~e+this.e+1:null,t,20)},R.toFormat=function(e,t){var n=O(this,null!=e&&U(e,0,S,21)?~~e+this.e+1:null,t,21);if(this.c){var r,i=n.split("."),a=+W.groupSize,s=+W.secondaryGroupSize,o=W.groupSeparator,$=i[0],u=i[1],l=this.s<0,c=l?$.slice(1):$,_=c.length;if(s&&(r=a,a=s,s=r,_-=r),a>0&&_>0){for(r=_%a||a,$=c.substr(0,r);_>r;r+=a)$+=o+c.substr(r,a);s>0&&($+=o+c.slice(r)),l&&($="-"+$)}n=u?$+W.decimalSeparator+((s=+W.fractionGroupSize)?u.replace(new RegExp("\\d{"+s+"}\\B","g"),"$&"+W.fractionGroupSeparator):u):$}return n},R.toFraction=function(e){var t,n,a,s,o,$,u,l,c,_=F,d=this,p=d.c,f=new i(q),h=n=new i(q),m=u=new i(q);if(null!=e&&(F=!1,$=new i(e),F=_,(!(_=$.isInt())||$.lt(q))&&(F&&z(22,"max denominator "+(_?"out of range":"not an integer"),e),e=!_&&$.c&&D($,$.e+1,1).gte(q)?$:null)),!p)return d.toString();for(c=r(p),s=f.e=c.length-d.e-1,f.c[0]=G[(o=s%x)<0?x+o:o],e=!e||$.cmp(f)>0?s>0?f:h:$,o=H,H=1/0,$=new i(c),u.c[0]=0;l=I($,f,0,1),1!=(a=n.plus(l.times(m))).cmp(e);)n=m,m=a,h=u.plus(l.times(a=h)),u=a,f=$.minus(l.times(a=f)),$=a;return a=I(e.minus(n),m,0,1),u=u.plus(a.times(h)),n=n.plus(a.times(m)),u.s=h.s=d.s,t=I(h,m,s*=2,j).minus(d).abs().cmp(I(u,n,s,j).minus(d).abs())<1?[h.toString(),m.toString()]:[u.toString(),n.toString()],H=o,t},R.toNumber=function(){return+this},R.toPower=R.pow=function(e){var t,n,r=m(0>e?-e:+e),a=this;if(!U(e,-k,k,23,"exponent")&&(!isFinite(e)||r>k&&(e/=0)||parseFloat(e)!=e&&!(e=NaN)))return new i(Math.pow(+a,e));for(t=K?h(K/x+2):0,n=new i(q);;){if(r%2){if(!(n=n.times(a)).c)break;t&&n.c.length>t&&(n.c.length=t)}if(!(r=m(r/2)))break;a=a.times(a),t&&a.c&&a.c.length>t&&(a.c.length=t)}return 0>e&&(n=q.div(n)),t?D(n,K,j):n},R.toPrecision=function(e,t){return O(this,null!=e&&U(e,1,S,24,"precision")?0|e:null,t,24)},R.toString=function(e){var t,n=this,i=n.s,s=n.e;return null===s?i?(t="Infinity",0>i&&(t="-"+t)):t="NaN":(t=r(n.c),t=null!=e&&U(e,2,64,25,"base")?a(c(t,s),0|e,10,i):B>=s||s>=P?l(t,s):c(t,s),0>i&&n.c[0]&&(t="-"+t)),t},R.truncated=R.trunc=function(){return D(new i(this),this.e+1,1)},R.valueOf=R.toJSON=function(){var e,t=this,n=t.e;return null===n?t.toString():(e=r(t.c),e=B>=n||n>=P?l(e,n):c(e,n),t.s<0?"-"+e:e)},null!=e&&i.config(e),i}function n(e){var t=0|e;return e>0||e===t?t:t-1}function r(e){for(var t,n,r=1,i=e.length,a=e[0]+"";i>r;){for(t=e[r++]+"",n=x-t.length;n--;t="0"+t);a+=t}for(i=a.length;48===a.charCodeAt(--i););return a.slice(0,i+1||1)}function s(e,t){var n,r,i=e.c,a=t.c,s=e.s,o=t.s,$=e.e,u=t.e;if(!s||!o)return null;if(n=i&&!i[0],r=a&&!a[0],n||r)return n?r?0:-o:s;if(s!=o)return s;if(n=0>s,r=$==u,!i||!a)return r?0:!i^n?1:-1;if(!r)return $>u^n?1:-1;for(o=($=i.length)<(u=a.length)?$:u,s=0;o>s;s++)if(i[s]!=a[s])return i[s]>a[s]^n?1:-1;return $==u?0:$>u^n?1:-1}function o(e,t,n){return(e=_(e))>=t&&n>=e}function $(e){return"[object Array]"==Object.prototype.toString.call(e)}function u(e,t,n){for(var r,i,a=[0],s=0,o=e.length;o>s;){for(i=a.length;i--;a[i]*=t);for(a[r=0]+=y.indexOf(e.charAt(s++));r<a.length;r++)a[r]>n-1&&(null==a[r+1]&&(a[r+1]=0),a[r+1]+=a[r]/n|0,a[r]%=n)}return a.reverse()}function l(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(0>t?"e":"e+")+t}function c(e,t){var n,r;if(0>t){for(r="0.";++t;r+="0");e=r+e}else if(++t>(n=e.length)){for(r="0",t-=n;--t;r+="0");e+=r}else n>t&&(e=e.slice(0,t)+"."+e.slice(t));return e}function _(e){return 0>(e=parseFloat(e))?h(e):m(e)}var d,p,f=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,h=Math.ceil,m=Math.floor,g=" not a boolean or binary digit",v="rounding mode",b="number type has more than 15 significant digits",y="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_",w=1e14,x=14,k=9007199254740991,G=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],E=1e7,S=1e9;if("undefined"!=typeof crypto&&(d=crypto),a.amd)a((function(){return t()}));else if("undefined"!=typeof module&&module.exports){if(module.exports=t(),!d)try{d=require("crypto")}catch(e){}}else e||(e=void 0!==i?i:Function("return this")()),e.BigNumber=t()}(this)}(n[0],r("Numeric"))},Opal.modules.bigdecimal=function(e){var t=e.klass,n=e.module,r=e.def,i=e.slice,a=e.extract_kwargs,s=e.ensure_kwargs,o=e.kwrestargs,$=e.send,u=e.to_a,l=e.defs,c=e.const_set,_=e.truthy,d=e.eqeqeq,p=e.send2,f=e.find_super,h=e.rb_lt,m=e.to_ary,g=e.rb_gt,v=e.rb_ge,b=e.eqeq,y=e.rb_divide,w=e.alias,x=e.top,k=[],G=e.$r(k),E=e.nil,S=e.$$$;return e.add_stubs("require,allocate,initialize,warn,BigDecimal,===,attr_reader,new,class,bignumber,nan?,nil?,raise,<,coerce,>,mode,>=,==,/,zero?,infinite?,finite?,add,minus,mult,quo,to_s"),t(k[0],G("Numeric"),"BigDecimal"),x.$require("opal/raw"),x.$require("bigdecimal/bignumber"),function(t,i){var a=n(t,"Kernel"),s=[a].concat(i),o=e.$r(s);r(a,"$BigDecimal",(function(e,t){var n=E;return null==t&&(t=0),(n=o("BigDecimal").$allocate()).$initialize(e,t),n}),-2)}(k[0],k),l(G("BigDecimal"),"$new",(function(t,n){var r,l,c,_;return r=i(arguments),l=a(r),l=s(l),c=r,_=o(l,{}),this.$warn("BigDecimal.new is deprecated; use BigDecimal() method instead.",new Map([["uplevel",1]])),$(this,"BigDecimal",u(c).concat([e.to_hash(_)]))}),-1),function(n,i,a){var s=t(n,i,"BigDecimal"),o=[s].concat(a),$=e.$r(o);return c(o[0],"VERSION","0"),c(o[0],"ROUND_MODE",256),c(o[0],"ROUND_UP",0),c(o[0],"ROUND_DOWN",1),c(o[0],"ROUND_CEILING",2),c(o[0],"ROUND_FLOOR",3),c(o[0],"ROUND_HALF_UP",4),c(o[0],"ROUND_HALF_DOWN",5),c(o[0],"ROUND_HALF_EVEN",6),c(o[0],"SIGN_NaN",0),c(o[0],"SIGN_POSITIVE_ZERO",1),c(o[0],"SIGN_NEGATIVE_ZERO",-1),c(o[0],"SIGN_POSITIVE_FINITE",2),c(o[0],"SIGN_NEGATIVE_FINITE",-2),c(o[0],"SIGN_POSITIVE_INFINITE",3),c(o[0],"SIGN_NEGATIVE_INFINITE",-3),l(s,"$limit",(function(e){var t=this;return null==t.digits&&(t.digits=E),null==e&&(e=E),_(e)&&(t.digits=e),t.digits}),-1),l(s,"$mode",(function(e,t){var n=this,r=E;return null==n.round_mode&&(n.round_mode=E),null==t&&(t=E),d($("ROUND_MODE"),e)?(_(t)&&(n.round_mode=t),_(r=n.round_mode)?r:$("ROUND_HALF_UP")):E}),-2),s.$attr_reader("bignumber"),r(s,"$initialize",(function(e,t){return null==t&&(t=0),this.bignumber=S($("Opal"),"Raw").$new($("BigNumber"),e)}),-2),r(s,"$==",(function(e){var t,n=this;return d(n.$class(),t=e)?n.$bignumber().equals(e.$bignumber()):!!d($("Number"),t)&&n.$bignumber().equals(e)})),r(s,"$<=>",(function(e){var t,n,r=this;return null===(t=d(r.$class(),n=e)?r.$bignumber().comparedTo(e.$bignumber()):d($("Number"),n)?r.$bignumber().comparedTo(e):E)?E:t})),r(s,"$<",(function e(t){var n=e.$$p||E,r=this;return e.$$p=null,!(_(r["$nan?"]())||_(t)&&_(t["$nan?"]()))&&p(r,f(r,"<",e,!1,!0),"<",[t],n)})),r(s,"$<=",(function e(t){var n=e.$$p||E,r=this;return e.$$p=null,!(_(r["$nan?"]())||_(t)&&_(t["$nan?"]()))&&p(r,f(r,"<=",e,!1,!0),"<=",[t],n)})),r(s,"$>",(function e(t){var n=e.$$p||E,r=this;return e.$$p=null,!(_(r["$nan?"]())||_(t)&&_(t["$nan?"]()))&&p(r,f(r,">",e,!1,!0),">",[t],n)})),r(s,"$>=",(function e(t){var n=e.$$p||E,r=this;return e.$$p=null,!(_(r["$nan?"]())||_(t)&&_(t["$nan?"]()))&&p(r,f(r,">=",e,!1,!0),">=",[t],n)})),r(s,"$abs",(function(){return this.$BigDecimal(this.$bignumber().abs())})),r(s,"$add",(function(e,t){var n,r,i=this,a=E;return null==t&&(t=0),_(t["$nil?"]())&&i.$raise($("TypeError"),"wrong argument type nil (expected Fixnum)"),_(h(t,0))&&i.$raise($("ArgumentError"),"argument must be positive"),r=i.$coerce(e),e=null==(n=m(r))[0]?E:n[0],null==n[1]?E:n[1],a=i.$bignumber().plus(e.$bignumber()),_(g(t,0))&&(a=a.toDigits(t,i.$class().$mode($("ROUND_MODE")))),i.$BigDecimal(a)}),-2),r(s,"$ceil",(function(e){var t=this;return null==e&&(e=E),_(t.$bignumber().isFinite())||t.$raise($("FloatDomainError"),"Computation results to 'Infinity'"),_(e["$nil?"]())?t.$bignumber().round(0,$("ROUND_CEILING")).toNumber():_(v(e,0))?t.$BigDecimal(t.$bignumber().round(e,$("ROUND_CEILING"))):t.$BigDecimal(t.$bignumber().round(0,$("ROUND_CEILING")))}),-1),r(s,"$coerce",(function(e){var t,n=this;return d(n.$class(),t=e)?[e,n]:d($("Number"),t)?[n.$BigDecimal(e),n]:n.$raise($("TypeError"),e.$class()+" can't be coerced into "+n.$class())})),r(s,"$div",(function(e,t){var n,r,i=this;return null==t&&(t=E),b(t,0)?y(i,e):(r=i.$coerce(e),e=null==(n=m(r))[0]?E:n[0],null==n[1]?E:n[1],(_(i["$nan?"]())||_(e["$nan?"]()))&&i.$raise($("FloatDomainError"),"Computation results to 'NaN'(Not a Number)"),_(t["$nil?"]())?(_(e["$zero?"]())&&i.$raise($("ZeroDivisionError"),"divided by 0"),_(i["$infinite?"]())&&i.$raise($("FloatDomainError"),"Computation results to 'Infinity'"),i.$BigDecimal(i.$bignumber().dividedToIntegerBy(e.$bignumber()))):i.$BigDecimal(i.$bignumber().dividedBy(e.$bignumber()).round(t,i.$class().$mode($("ROUND_MODE")))))}),-2),r(s,"$finite?",(function(){return this.$bignumber().isFinite()})),r(s,"$infinite?",(function(){var e=this;return _(e["$finite?"]())||_(e["$nan?"]())?E:_(e.$bignumber().isNegative())?-1:1})),r(s,"$minus",(function(e){var t,n,r=this;return n=r.$coerce(e),e=null==(t=m(n))[0]?E:t[0],null==t[1]?E:t[1],r.$BigDecimal(r.$bignumber().minus(e.$bignumber()))})),r(s,"$mult",(function(e,t){var n,r,i=this;return null==t&&(t=E),r=i.$coerce(e),e=null==(n=m(r))[0]?E:n[0],null==n[1]?E:n[1],_(t["$nil?"]())?i.$BigDecimal(i.$bignumber().times(e.$bignumber())):i.$BigDecimal(i.$bignumber().times(e.$bignumber()).round(t,i.$class().$mode($("ROUND_MODE"))))}),-2),r(s,"$nan?",(function(){return this.$bignumber().isNaN()})),r(s,"$quo",(function(e){var t,n,r=this;return n=r.$coerce(e),e=null==(t=m(n))[0]?E:t[0],null==t[1]?E:t[1],r.$BigDecimal(r.$bignumber().dividedBy(e.$bignumber()))})),r(s,"$sign",(function(){var e=this;return _(e.$bignumber().isNaN())?$("SIGN_NaN"):_(e.$bignumber().isZero())?_(e.$bignumber().isNegative())?$("SIGN_NEGATIVE_ZERO"):$("SIGN_POSITIVE_ZERO"):E})),r(s,"$sub",(function(e,t){var n,r,i=this;return r=i.$coerce(e),e=null==(n=m(r))[0]?E:n[0],null==n[1]?E:n[1],i.$BigDecimal(i.$bignumber().minus(e.$bignumber()))})),r(s,"$to_f",(function(){return this.$bignumber().toNumber()})),r(s,"$to_s",(function(e){return null==e&&(e=""),this.$bignumber().toString()}),-1),r(s,"$zero?",(function(){return this.$bignumber().isZero()})),w(s,"===","=="),w(s,"+","add"),w(s,"-","minus"),w(s,"*","mult"),w(s,"/","quo"),w(s,"inspect","to_s")}(k[0],G("Numeric"),k)},Opal.modules.native=function(e){var t=e.hash_put,n=e.module,r=e.defs,i=e.slice,a=e.truthy,s=e.send,o=e.Kernel,$=e.extract_kwargs,u=e.ensure_kwargs,l=e.hash_get,c=e.range,_=e.to_a,d=e.def,p=e.return_ivar,f=e.alias,h=e.klass,m=e.rb_minus,g=e.return_val,v=e.send2,b=e.find_super,y=e.eqeqeq,w=e.rb_ge,x=e.return_self,k=e.gvars,G=e.top,E=[],S=e.$r(E),O=e.nil,M=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,f){var h=n(t,"Native"),m=[h].concat(f),g=e.$r(m);r(h,"$is_a?",(function(e,t){try{return e instanceof this.$try_convert(t)}catch(e){return!1}})),r(h,"$try_convert",(function(e,t){return null==t&&(t=O),this["$native?"](e)?e:e["$respond_to?"]("to_n")?e.$to_n():t}),-2),r(h,"$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")})),r(h,"$call",(function e(t,n,r){var a,s=e.$$p||O,o=this;e.$$p=null,a=i(arguments,2);var $=t[n];if($ instanceof Function){for(var u=new Array(a.length),l=0,c=a.length;l<c;l++){var _=a[l],d=o.$try_convert(_);u[l]=d===O?_:d}return s!==O&&u.push(s),o.$Native($.apply(t,u))}return o.$Native($)}),-3),r(h,"$proc",(function t(){var n=t.$$p||O;return t.$$p=null,a(n)||this.$raise(g("LocalJumpError"),"no block given"),s(o,"proc",[],(function t(r){var a,o,$,u=null==t.$$s?this:t.$$s;if(a=i(arguments),s(o=a,"map!",[],(function e(t){return null==t&&(t=O),(null==e.$$s?this:e.$$s).$Native(t)}),{$$s:u}),$=u.$Native(this),this===e.global)return n.apply(u,o);var l=n.$$s;n.$$s=null;try{return n.apply($,o)}finally{n.$$s=l}}),{$$arity:-1,$$s:this})})),function(t,r){var o=n(t,"Helpers"),p=[o].concat(r),f=e.$r(p);d(o,"$alias_native",(function e(t,n,r){var o,d,p,h,m=this;return e.$$p=null,o=i(arguments,1),d=$(o),d=u(d),o.length>0&&(p=o.shift()),null==p&&(p=t),null==(h=l(d,"as"))&&(h=O),a(p["$end_with?"]("="))?s(m,"define_method",[t],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.native&&(n.native=O),null==t&&(t=O),n.native[p["$[]"](c(0,-2,!1))]=f("Native").$convert(t),t}),{$$s:m}):a(h)?s(m,"define_method",[t],(function e(t){var n,r=e.$$p||O,o=null==e.$$s?this:e.$$s,$=O;return null==o.native&&(o.native=O),e.$$p=null,n=i(arguments),$=s(f("Native"),"call",[o.native,p].concat(_(n)),r.$to_proc()),a($)?h.$new($.$to_n()):O}),{$$arity:-1,$$s:m}):s(m,"define_method",[t],(function e(t){var n,r=e.$$p||O,a=null==e.$$s?this:e.$$s;return null==a.native&&(a.native=O),e.$$p=null,n=i(arguments),s(f("Native"),"call",[a.native,p].concat(_(n)),r.$to_proc())}),{$$arity:-1,$$s:m})}),-2),d(o,"$native_reader",(function(e){var t;return t=i(arguments),s(t,"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=O),s(n,"define_method",[t],(function e(){var n=null==e.$$s?this:e.$$s;return null==n.native&&(n.native=O),n.$Native(n.native[t])}),{$$s:n})}),{$$s:this})}),-1),d(o,"$native_writer",(function(e){var t;return t=i(arguments),s(t,"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=O),s(n,"define_method",[t+"="],(function e(n){var r=null==e.$$s?this:e.$$s;return null==r.native&&(r.native=O),null==n&&(n=O),r.$Native(r.native[t]=n)}),{$$s:n})}),{$$s:this})}),-1),d(o,"$native_accessor",(function(e){var t,n;return t=i(arguments),s(this,"native_reader",_(n=t)),s(this,"native_writer",_(n))}),-1)}(m[0],m),function(t,i){var s=n(t,"Wrapper"),$=[s].concat(i),u=e.$r($);d(s,"$initialize",(function(e){return a(o["$native?"](e))||o.$raise(u("ArgumentError"),e.$inspect()+" isn't native"),this.native=e})),d(s,"$to_n",p("native")),r(s,"$included",(function(e){return e.$extend(u("Helpers"))}))}(m[0],m),r(h,"$included",(function(e){return this.$warn("Including ::Native is deprecated. Please include Native::Wrapper instead."),e.$include(g("Wrapper"))}))}(E[0],E),function(t,r){var o=n(t,"Kernel"),$=[o].concat(r),u=e.$r($);d(o,"$native?",(function(e){return null==e||!e.$$class})),d(o,"$Native",(function e(t){var n=this;return e.$$p=null,a(null==t)?O:a(n["$native?"](t))?M(u("Native"),"Object").$new(t):a(t["$is_a?"](u("Array")))?s(t,"map",[],(function e(t){return null==t&&(t=O),(null==e.$$s?this:e.$$s).$Native(t)}),{$$s:n}):a(t["$is_a?"](u("Proc")))?s(n,"proc",[],(function e(n){var r,a=e.$$p||O,o=null==e.$$s?this:e.$$s;return e.$$p=null,r=i(arguments),o.$Native(s(t,"call",_(r),a.$to_proc()))}),{$$arity:-1,$$s:n}):t})),f(o,"_Array","Array"),d(o,"$Array",(function e(t,n){var r,o=e.$$p||O;return e.$$p=null,r=i(arguments,1),a(this["$native?"](t))?s(M(u("Native"),"Array"),"new",[t].concat(_(r)),o.$to_proc()).$to_a():this.$_Array(t)}),-2)}(E[0],E),function(t,n){var r=h(t,n,"Object");r.$$prototype.native=O,r.$include(M(M("Native"),"Wrapper")),d(r,"$==",(function(e){return this.native===M("Native").$try_convert(e)})),d(r,"$has_key?",(function(t){return e.hasOwnProperty.call(this.native,t)})),d(r,"$each",(function t(n){var r,a=t.$$p||O,o=this;if(t.$$p=null,r=i(arguments),a!==O){for(var $ in o.native)e.yieldX(a,[$,o.native[$]]);return o}return s(o,"method_missing",["each"].concat(_(r)))}),-1),d(r,"$[]",(function(e){var t=this.native[e];return t instanceof Function?t:M("Native").$call(this.native,e)})),d(r,"$[]=",(function(e,t){var n;return n=M("Native").$try_convert(t),a(n===O)?this.native[e]=t:this.native[e]=n})),d(r,"$merge!",(function(e){for(var t in e=M("Native").$convert(e))this.native[t]=e[t];return this})),d(r,"$respond_to?",(function(e,t){return null==t&&(t=!1),o.$instance_method("respond_to?").$bind(this).$call(e,t)}),-2),d(r,"$respond_to_missing?",(function(t,n){return null==n&&(n=!1),e.hasOwnProperty.call(this.native,t)}),-2),d(r,"$method_missing",(function e(t,n){var r,a,o=e.$$p||O;return e.$$p=null,r=i(arguments,1),"="===t.charAt(t.length-1)?(a=[t.$slice(0,m(t.$length(),1)),r["$[]"](0)],s(this,"[]=",a),a[a.length-1]):s(M("Native"),"call",[this.native,t].concat(_(r)),o.$to_proc())}),-2),d(r,"$nil?",g(!1)),d(r,"$is_a?",(function(t){return e.is_a(this,t)})),d(r,"$instance_of?",(function(e){return this.$$class===e})),d(r,"$class",(function(){return this.$$class})),d(r,"$to_a",(function e(t){var n=e.$$p||O;return e.$$p=null,null==t&&(t=new Map),s(M(M("Native"),"Array"),"new",[this.native,t],n.$to_proc()).$to_a()}),-1),d(r,"$inspect",(function(){return"#<Native:"+String(this.native)+">"})),f(r,"include?","has_key?"),f(r,"key?","has_key?"),f(r,"kind_of?","is_a?"),f(r,"member?","has_key?")}(S("Native"),S("BasicObject")),function(t,n,r){var i=h(t,null,"Array"),s=[i].concat(r),o=e.$r(s),$=i.$$prototype;$.named=$.native=$.get=$.block=$.set=$.length=O,i.$include(M(o("Native"),"Wrapper")),i.$include(o("Enumerable")),d(i,"$initialize",(function e(t,n){var r=e.$$p||O,i=this,s=O;return e.$$p=null,null==n&&(n=new Map),v(i,b(i,"initialize",e,!1,!0),"initialize",[t],null),i.get=a(s=n["$[]"]("get"))?s:n["$[]"]("access"),i.named=n["$[]"]("named"),i.set=a(s=n["$[]"]("set"))?s:n["$[]"]("access"),i.length=a(s=n["$[]"]("length"))?s:"length",i.block=r,a(null==i.$length())?i.$raise(o("ArgumentError"),"no length found on the array-like object"):O}),-2),d(i,"$each",(function t(){var n=t.$$p||O,r=this;if(t.$$p=null,!a(n))return r.$enum_for("each");for(var i=0,s=r.$length();i<s;i++)e.yield1(n,r["$[]"](i));return r})),d(i,"$[]",(function(e){var t,n,r=this;return t=y(o("String"),n=e)||y(o("Symbol"),n)?a(r.named)?r.native[r.named](e):r.native[e]:y(o("Integer"),n)?a(r.get)?r.native[r.get](e):r.native[e]:O,a(t)?a(r.block)?r.block.$call(t):r.$Native(t):O})),d(i,"$[]=",(function(e,t){var n=this;return a(n.set)?n.native[n.set](e,o("Native").$convert(t)):n.native[e]=o("Native").$convert(t)})),d(i,"$last",(function(e){var t=this,n=O,r=O;if(null==e&&(e=O),a(e)){for(n=m(t.$length(),1),r=[];a(w(n,0));)r["$<<"](t["$[]"](n)),n=m(n,1);return r}return t["$[]"](m(t.$length(),1))}),-1),d(i,"$length",(function(){return this.native[this.length]})),d(i,"$inspect",(function(){return this.$to_a().$inspect()})),f(i,"to_ary","to_a")}(S("Native"),0,E),function(e,t){var n=h(e,null,"Numeric");d(n,"$to_n",(function(){return this.valueOf()}))}(E[0]),function(e,t){var n=h(e,null,"Proc");d(n,"$to_n",x)}(E[0]),function(e,t){var n=h(e,null,"String");d(n,"$to_n",(function(){return this.valueOf()}))}(E[0]),function(e,t){var n=h(e,null,"Regexp");d(n,"$to_n",(function(){return this.valueOf()}))}(E[0]),function(e,t){var n=h(e,null,"MatchData");d(n,"$to_n",p("matches"))}(E[0]),function(t,n,r){var i=h(t,null,"Struct"),a=[i].concat(r),o=e.$r(a);d(i,"$to_n",(function(){var e=O;return e={},s(this,"each_pair",[],(function(t,n){return null==t&&(t=O),null==n&&(n=O),e[t]=o("Native").$try_convert(n,n)})),e}))}(E[0],0,E),function(t,n,r){var i=h(t,null,"Array"),a=[i].concat(r),s=e.$r(a);d(i,"$to_n",(function(){for(var e=[],t=0,n=this.length;t<n;t++){var r=this[t];e.push(s("Native").$try_convert(r,r))}return e}))}(E[0],0,E),function(e,t){var n=h(e,null,"Boolean");d(n,"$to_n",(function(){return this.valueOf()}))}(E[0]),function(e,t){var n=h(e,null,"Time");d(n,"$to_n",x)}(E[0]),function(e,t){var n=h(e,null,"NilClass");d(n,"$to_n",(function(){return null}))}(E[0]),a(S("Hash")["$method_defined?"]("_initialize"))||function(n,r,i){var a=h(n,null,"Hash"),o=[a].concat(i),$=e.$r(o);function u(e,n,r){r&&(void 0===r.constructor||r.constructor===Object||r instanceof Map)?t(e,n,$("Hash").$new(r)):r&&r.$$is_array?(r=r.map((function(e){return e&&(void 0===e.constructor||e.constructor===Object||r instanceof Map)?$("Hash").$new(e):a.$Native(e)})),t(e,n,r)):t(e,n,a.$Native(r))}f(a,"_initialize","initialize"),d(a,"$initialize",(function t(n){var r=t.$$p||O,i=this;if(t.$$p=null,null!=n){if(void 0===n.constructor||n.constructor===Object){var a,o;for(a in n)o=n[a],u(i,a,o);return i}n instanceof Map&&e.hash_each(n,!1,(function(e,t){return u(i,e,t),[!1,!1]}))}return s(i,"_initialize",[n],r.$to_proc())}),-1),d(a,"$to_n",(function(){var t={};return e.hash_each(this,!1,(function(e,n){return t[$("Native").$try_convert(e,e)]=$("Native").$try_convert(n,n),[!1,!1]})),t}))}(E[0],0,E),function(t,n){var r=h(t,null,"Module");d(r,"$native_module",(function(){return e.global[this.$name()]=this}))}(E[0]),function(t,n,r){var i=h(t,null,"Class"),a=[i].concat(r),s=e.$r(a);d(i,"$native_alias",(function(t,n){var r=this,i=r.prototype[e.jsid(n)];i||r.$raise(s("NameError").$new("undefined method `"+n+"' for class `"+r.$inspect()+"'",n)),r.prototype[t]=i})),d(i,"$native_class",(function(){var e=this;return e.$native_module(),e.new=e.$new}))}(E[0],0,E),k.$=k.global=G.$Native(e.global)},Opal.modules["buffer/array"]=function(e){var t=e.klass,n=e.gvars,r=e.defs,i=e.eqeq,a=e.send2,s=e.find_super,o=e.def,$=e.truthy,u=e.alias,l=[],c=e.nil,_=e.$$$;return e.add_stubs("include,[],name_for,attr_reader,==,for,to_n,enum_for,length"),function(l,d,p){var f=[t(l,null,"Buffer")].concat(p);return function(l,d,p){var f=t(l,null,"Array"),h=[f].concat(p),m=e.$r(h);return f.$$prototype.native=c,f.$include(_(m("Native"),"Wrapper")),r(f,"$for",(function(e,t){return null==n.$&&(n.$=c),n.$["$[]"](m("Buffer").$name_for(e,t)+"Array")})),f.$include(m("Enumerable")),f.$attr_reader("buffer","type"),o(f,"$initialize",(function e(t,n,r){var o=this;if(e.$$p=null,null==n&&(n=c),null==r&&(r=c),i(m("Native"),t))a(o,s(o,"initialize",e,!1,!0),"initialize",[t],null);else{var $=m("Array").$for(n,r);a(o,s(o,"initialize",e,!1,!0),"initialize",[new $(t.$to_n())],null)}return o.buffer=t,o.type=r}),-2),o(f,"$bits",(function(){return 8*this.native.BYTES_PER_ELEMENT})),o(f,"$[]",(function(e,t){return null==t&&(t=c),$(t)?this.native.subarray(e,t):this.native[e]}),-2),o(f,"$[]=",(function(e,t){return this.native[e]=t})),o(f,"$bytesize",(function(){return this.native.byteLength})),o(f,"$each",(function t(){var n=t.$$p||c,r=this;if(t.$$p=null,n===c)return r.$enum_for("each");for(var i=0,a=r.native.length;i<a;i++)e.yield1(n,r.native[i]);return r})),o(f,"$length",(function(){return this.native.length})),o(f,"$merge!",(function(e,t){return this.native.set(e.$to_n(),t)}),-2),u(f,"size","length")}(f[0],0,f)}(l[0],0,l)},Opal.modules["buffer/view"]=function(e){var t=e.klass,n=e.gvars,r=e.defs,i=e.truthy,a=e.send2,s=e.find_super,o=e.def,$=e.alias,u=[],l=e.nil,c=e.$$$;return e.add_stubs("include,!,nil?,[],attr_reader,native?,to_n,name_for,get,set,length"),function(u,_,d){var p=[t(u,null,"Buffer")].concat(d);return function(u,_,d){var p=t(u,null,"View"),f=[p].concat(d),h=e.$r(f);return p.$$prototype.native=l,p.$include(c(h("Native"),"Wrapper")),r(p,"$supported?",(function(){return null==n.$&&(n.$=l),n.$["$[]"]("DataView")["$nil?"]()["$!"]()})),p.$attr_reader("buffer","offset"),o(p,"$initialize",(function e(t,n,r){var o=this;return e.$$p=null,null==n&&(n=l),null==r&&(r=l),i(o["$native?"](t))?a(o,s(o,"initialize",e,!1,!0),"initialize",[t],null):i(n)&&i(r)?a(o,s(o,"initialize",e,!1,!0),"initialize",[new DataView(t.$to_n(),n.$to_n(),r.$to_n())],null):i(n)?a(o,s(o,"initialize",e,!1,!0),"initialize",[new DataView(t.$to_n(),n.$to_n())],null):a(o,s(o,"initialize",e,!1,!0),"initialize",[new DataView(t.$to_n())],null),o.buffer=t,o.offset=n}),-2),o(p,"$length",(function(){return this.native.byteLength})),o(p,"$get",(function(e,t,n,r){return null==t&&(t=8),null==n&&(n="unsigned"),null==r&&(r=!1),this.native["get"+h("Buffer").$name_for(t,n)](e,r)}),-2),$(p,"[]","get"),o(p,"$set",(function(e,t,n,r,i){return null==n&&(n=8),null==r&&(r="unsigned"),null==i&&(i=!1),this.native["set"+h("Buffer").$name_for(n,r)](e,t,i)}),-3),$(p,"[]=","set"),o(p,"$get_int8",(function(e,t){return null==t&&(t=!1),this.native.getInt8(e,t)}),-2),o(p,"$set_int8",(function(e,t,n){return null==n&&(n=!1),this.native.setInt8(e,t,n)}),-3),o(p,"$get_uint8",(function(e,t){return null==t&&(t=!1),this.native.getUint8(e,t)}),-2),o(p,"$set_uint8",(function(e,t,n){return null==n&&(n=!1),this.native.setUint8(e,t,n)}),-3),o(p,"$get_int16",(function(e,t){return null==t&&(t=!1),this.native.getInt16(e,t)}),-2),o(p,"$set_int16",(function(e,t,n){return null==n&&(n=!1),this.native.setInt16(e,t,n)}),-3),o(p,"$get_uint16",(function(e,t){return null==t&&(t=!1),this.native.getUint16(e,t)}),-2),o(p,"$set_uint16",(function(e,t,n){return null==n&&(n=!1),this.native.setUint16(e,t,n)}),-3),o(p,"$get_int32",(function(e,t){return null==t&&(t=!1),this.native.getInt32(e,t)}),-2),o(p,"$set_int32",(function(e,t,n){return null==n&&(n=!1),this.native.setInt32(e,t,n)}),-3),o(p,"$get_uint32",(function(e,t){return null==t&&(t=!1),this.native.getUint32(e,t)}),-2),o(p,"$set_uint32",(function(e,t,n){return null==n&&(n=!1),this.native.setUint32(e,t,n)}),-3),o(p,"$get_float32",(function(e,t){return null==t&&(t=!1),this.native.getFloat32(e,t)}),-2),o(p,"$set_float32",(function(e,t,n){return null==n&&(n=!1),this.native.setFloat32(e,t,n)}),-3),o(p,"$get_float64",(function(e,t){return null==t&&(t=!1),this.native.getFloat64(e,t)}),-2),o(p,"$set_float64",(function(e,t,n){return null==n&&(n=!1),this.native.setFloat64(e,t,n)}),-3),$(p,"size","length")}(p[0],0,p)}(u[0],0,u)},Opal.modules.buffer=function(e){var t=e.klass,n=e.gvars,r=e.defs,i=e.eqeqeq,a=e.truthy,s=e.send2,o=e.find_super,$=e.def,u=e.alias,l=e.top,c=[],_=e.nil,d=e.$$$;return e.add_stubs("require,include,!,nil?,[],===,native?,new,pack,to_a,length"),l.$require("native"),l.$require("buffer/array"),l.$require("buffer/view"),function(l,c,p){var f=t(l,null,"Buffer"),h=[f].concat(p),m=e.$r(h);return f.$$prototype.native=_,f.$include(d(m("Native"),"Wrapper")),r(f,"$supported?",(function(){return null==n.$&&(n.$=_),n.$["$[]"]("ArrayBuffer")["$nil?"]()["$!"]()})),r(f,"$name_for",(function(e,t){var n;return""+(i("unsigned",n=t)?"Uint":i("signed",n)?"Int":i("float",n)?"Float":_)+e})),$(f,"$initialize",(function e(t,n){var r=this;return e.$$p=null,null==n&&(n=8),a(r["$native?"](t))?s(r,o(r,"initialize",e,!1,!0),"initialize",[t],null):s(r,o(r,"initialize",e,!1,!0),"initialize",[new ArrayBuffer(t*(n/8))],null)}),-2),$(f,"$length",(function(){return this.native.byteLength})),$(f,"$to_a",(function(e,t){return null==e&&(e=8),null==t&&(t="unsigned"),m("Array").$new(this,e,t)}),-1),$(f,"$view",(function(e,t){return null==e&&(e=_),null==t&&(t=_),m("View").$new(this,e,t)}),-1),$(f,"$to_s",(function(){return this.$to_a().$to_a().$pack("c*")})),u(f,"size","length")}(c[0],0,c)},Opal.modules.base64=function(e){var t=e.module,n=e.defs,r=e.ensure_kwargs,i=e.hash_get,a=e.truthy,s=[],o=e.nil;return e.add_stubs("raise,delete"),function(s,$){var u,l,c=t(s,"Base64"),_=[c].concat($),d=e.$r(_),p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return u=function(e){for(var t,n,r=String(e),i=0,a=p,s="";r.charAt(0|i)||(a="=",i%1);s+=a.charAt(63&t>>8-i%1*8))(n=r.charCodeAt(i+=3/4))>255&&c.$raise(d("ArgumentError"),"invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"),t=t<<8|n;return s},l=function(e){var t=String(e).replace(/=+$/,"");t.length%4==1&&c.$raise(d("ArgumentError"),"invalid base64 (failed: The string to be decoded is not correctly encoded.)");for(var n,r,i=0,a=0,s="";r=t.charAt(a++);~r&&(n=i%4?64*n+r:r,i++%4)?s+=String.fromCharCode(255&n>>(-2*i&6)):0)r=p.indexOf(r);return s},n(c,"$decode64",(function(e){return l(e.replace(/\r?\n/g,""))})),n(c,"$encode64",(function(e){return u(e).replace(/(.{60})/g,"$1\n").replace(/([^\n])$/g,"$1\n")})),n(c,"$strict_decode64",(function(e){return l(e)})),n(c,"$strict_encode64",(function(e){return u(e)})),n(c,"$urlsafe_decode64",(function(e){return l(e.replace(/\-/g,"+").replace(/_/g,"/"))})),n(c,"$urlsafe_encode64",(function(e,t){var n,s=o;return t=r(t),null==(n=i(t,"padding"))&&(n=!0),s=u(e).replace(/\+/g,"-").replace(/\//g,"_"),a(n)||(s=s.$delete("=")),s}),-2)}(s[0],s)},Opal.modules.console=function(e){var t=e.klass,n=e.def,r=e.slice,i=e.truthy,a=e.eqeq,s=e.send,o=e.gvars,$=e.top,u=[],l=e.$r(u),c=e.nil,_=e.$$$;return e.add_stubs("require,include,raise,==,arity,instance_exec,to_proc,new"),$.$require("native"),function(o,$,u){var l=t(o,null,"Console"),d=[l].concat(u),p=e.$r(d);l.$$prototype.native=c,l.$include(_(p("Native"),"Wrapper")),n(l,"$clear",(function(){return this.native.clear()})),n(l,"$trace",(function(){return this.native.trace()})),n(l,"$log",(function(e){var t;return t=r(arguments),this.native.log.apply(this.native,t)}),-1),n(l,"$info",(function(e){var t;return t=r(arguments),this.native.info.apply(this.native,t)}),-1),n(l,"$warn",(function(e){var t;return t=r(arguments),this.native.warn.apply(this.native,t)}),-1),n(l,"$error",(function(e){var t;return t=r(arguments),this.native.error.apply(this.native,t)}),-1),n(l,"$time",(function t(n){var r=t.$$p||c,o=this;return t.$$p=null,i(r)||o.$raise(p("ArgumentError"),"no block given"),o.native.time(n),function(){try{return a(r.$arity(),0)?s(o,"instance_exec",[],r.$to_proc()):e.yield1(r,o)}finally{o.native.timeEnd()}}()})),n(l,"$group",(function t(n){var o,$=t.$$p||c,u=this;return t.$$p=null,o=r(arguments),i($)||u.$raise(p("ArgumentError"),"no block given"),u.native.group.apply(u.native,o),function(){try{return a($.$arity(),0)?s(u,"instance_exec",[],$.$to_proc()):e.yield1($,u)}finally{u.native.groupEnd()}}()}),-1),n(l,"$group!",(function t(n){var i,o=t.$$p||c,$=this;return t.$$p=null,i=r(arguments),o===c?c:($.native.groupCollapsed.apply($.native,i),function(){try{return a(o.$arity(),0)?s($,"instance_exec",[],o.$to_proc()):e.yield1(o,$)}finally{$.native.groupEnd()}}())}),-1)}(u[0],0,u),i(void 0!==e.global.console)?o.console=l("Console").$new(e.global.console):c},Opal.modules.forwardable=function(e){var t,n=e.module,r=e.send,i=e.truthy,a=e.def,s=e.slice,o=e.to_a,$=e.alias,u=[],l=e.nil;return e.add_stubs("each,respond_to?,def_instance_delegator,include?,start_with?,to_s,define_method,__send__,instance_variable_get,to_proc,instance_delegate,def_instance_delegators,def_single_delegator,define_singleton_method,single_delegate,def_single_delegators"),t=n(u[0],"Forwardable"),a(t,"$instance_delegate",(function(e){return r(e,"each",[],(function e(t,n){var a=null==e.$$s?this:e.$$s;return null==t&&(t=l),null==n&&(n=l),i(t["$respond_to?"]("each"))||(t=[t]),r(t,"each",[],(function e(t){return null==t&&(t=l),(null==e.$$s?this:e.$$s).$def_instance_delegator(n,t)}),{$$s:a})}),{$$s:this})})),a(t,"$def_instance_delegators",(function(e,t){var n;return n=s(arguments,1),r(n,"each",[],(function t(n){var r=null==t.$$s?this:t.$$s;return null==n&&(n=l),i(["__send__","__id__"]["$include?"](n))?l:r.$def_instance_delegator(e,n)}),{$$s:this})}),-2),a(t,"$def_instance_delegator",(function e(t,n,a){var $=this;return e.$$p=null,null==a&&(a=n),i(t.$to_s()["$start_with?"]("@"))?r($,"define_method",[a],(function e(i){var a,$=e.$$p||l,u=null==e.$$s?this:e.$$s;return e.$$p=null,a=s(arguments),r(u.$instance_variable_get(t),"__send__",[n].concat(o(a)),$.$to_proc())}),{$$arity:-1,$$s:$}):r($,"define_method",[a],(function e(i){var a,$=e.$$p||l,u=null==e.$$s?this:e.$$s;return e.$$p=null,a=s(arguments),r(u.$__send__(t),"__send__",[n].concat(o(a)),$.$to_proc())}),{$$arity:-1,$$s:$})}),-3),$(t,"delegate","instance_delegate"),$(t,"def_delegators","def_instance_delegators"),$(t,"def_delegator","def_instance_delegator"),function(e){var t=n(e,"SingleForwardable");return a(t,"$single_delegate",(function(e){return r(e,"each",[],(function e(t,n){var a=null==e.$$s?this:e.$$s;return null==t&&(t=l),null==n&&(n=l),i(t["$respond_to?"]("each"))||(t=[t]),r(t,"each",[],(function e(t){return null==t&&(t=l),(null==e.$$s?this:e.$$s).$def_single_delegator(n,t)}),{$$s:a})}),{$$s:this})})),a(t,"$def_single_delegators",(function(e,t){var n;return n=s(arguments,1),r(n,"each",[],(function t(n){var r=null==t.$$s?this:t.$$s;return null==n&&(n=l),i(["__send__","__id__"]["$include?"](n))?l:r.$def_single_delegator(e,n)}),{$$s:this})}),-2),a(t,"$def_single_delegator",(function e(t,n,a){var $=this;return e.$$p=null,null==a&&(a=n),i(t.$to_s()["$start_with?"]("@"))?r($,"define_singleton_method",[a],(function e(i){var a,$=e.$$p||l,u=null==e.$$s?this:e.$$s;return e.$$p=null,a=s(arguments),r(u.$instance_variable_get(t),"__send__",[n].concat(o(a)),$.$to_proc())}),{$$arity:-1,$$s:$}):r($,"define_singleton_method",[a],(function e(i){var a,$=e.$$p||l,u=null==e.$$s?this:e.$$s;return e.$$p=null,a=s(arguments),r(u.$__send__(t),"__send__",[n].concat(o(a)),$.$to_proc())}),{$$arity:-1,$$s:$})}),-3),$(t,"delegate","single_delegate"),$(t,"def_delegators","def_single_delegators"),$(t,"def_delegator","def_single_delegator")}(u[0])},Opal.modules["date/infinity"]=function(e){var t=e.klass,n=e.def,r=e.return_val,i=e.eqeqeq,a=e.to_ary,s=e.send2,o=e.find_super,$=e.eqeq,u=e.truthy,l=e.rb_gt,c=[],_=e.nil,d=e.$$$;return e.add_stubs("include,<=>,attr_reader,nonzero?,d,zero?,new,class,-@,+@,===,coerce,==,>"),function(c,p,f){var h=[t(c,null,"Date")].concat(f),m=e.$r(h);return function(c,p,f){var h=t(c,p,"Infinity"),m=[h].concat(f),g=e.$r(m);return h.$$prototype.d=_,h.$include(g("Comparable")),n(h,"$initialize",(function(e){return null==e&&(e=1),this.d=e["$<=>"](0)}),-1),h.$attr_reader("d"),n(h,"$zero?",r(!1)),n(h,"$finite?",r(!1)),n(h,"$infinite?",(function(){return this.$d()["$nonzero?"]()})),n(h,"$nan?",(function(){return this.$d()["$zero?"]()})),n(h,"$abs",(function(){return this.$class().$new()})),n(h,"$-@",(function(){return this.$class().$new(this.$d()["$-@"]())})),n(h,"$+@",(function(){return this.$class().$new(this.$d()["$+@"]())})),n(h,"$<=>",(function(t){var n,r,s,o=this,$=_,u=_;if(i(g("Infinity"),s=t))return o.$d()["$<=>"](t.$d());if(i(g("Numeric"),s))return o.$d();try{return r=t.$coerce(o),$=null==(n=a(r))[0]?_:n[0],u=null==n[1]?_:n[1],$["$<=>"](u)}catch(t){if(!e.rescue(t,[g("NoMethodError")]))throw t;try{return _}finally{e.pop_exception(t)}}})),n(h,"$coerce",(function e(t){var n=e.$$p||_,r=this;return e.$$p=null,i(g("Numeric"),t)?[r.$d()["$-@"](),r.$d()]:s(r,o(r,"coerce",e,!1,!0),"coerce",[t],n)})),n(h,"$to_f",(function(){return $(this.d,0)?0:u(l(this.d,0))?d(g("Float"),"INFINITY"):d(g("Float"),"INFINITY")["$-@"]()}))}(h[0],m("Numeric"),h)}(c[0],0,c)},Opal.modules.time=function(e){var t=e.klass,n=e.defs,r=e.ensure_kwargs,i=e.hash_get,a=e.send,s=e.eqeqeq,o=e.truthy,$=e.rb_gt,u=e.rb_plus,l=e.alias,c=e.def,_=e.return_self,d=e.top,p=[],f=e.nil,h=e.$$$;return e.add_stubs("define_method,===,new_offset,utc,year,month,day,getutc,strftime,>,+,def_formatter,rfc2822,xmlschema,wrap,require"),function(d,p,m){var g=t(d,null,"Time"),v=[g].concat(m),b=e.$r(v);n(g,"$parse",(function(e){var t=Date.parse(e);return t!=t&&(e=e.replace(/^(\d+)([\./])(\d+)([\./])?(\d+)?/,(function(e,t,n,r,i,a,s,o){return n===i&&a?t+"-"+r+"-"+a:r&&!i?t+"-"+r+"-01":e})),t=Date.parse(e)),new Date(t)})),n(g,"$def_formatter",(function(e,t,n){var l,c,_,d,p;return n=r(n),null==(l=i(n,"on_utc"))&&(l=!1),null==(c=i(n,"utc_tz"))&&(c=f),null==(_=i(n,"tz_format"))&&(_=f),null==(d=i(n,"fractions"))&&(d=!1),null==(p=i(n,"on"))&&(p=this),a(p,"define_method",[e],(function e(n){var r,i=null==e.$$s?this:e.$$s,a=f,p=f,m=f;return null==n&&(n=0),s(o(a=h("::","DateTime","skip_raise")?"constant":f)?h("DateTime"):a,r=i)?p=o(l)?i.$new_offset(0):i:s(o(a=h("::","Date","skip_raise")?"constant":f)?h("Date"):a,r)?p=h("Time").$utc(i.$year(),i.$month(),i.$day()):s(h("Time"),r)&&(p=o(l)?i.$getutc():i),m=p.$strftime(t),o(d)&&o($(n,0))&&(m=u(m,p.$strftime(".%"+n+"N"))),o(c)?m=u(m,o(i.$utc())?c:p.$strftime(_)):o(_)&&(m=u(m,p.$strftime(_))),m}),{$$arity:-1,$$s:this})}),-3),g.$def_formatter("rfc2822","%a, %d %b %Y %T ",new Map([["utc_tz","-00:00"],["tz_format","%z"]])),l(g,"rfc822","rfc2822"),g.$def_formatter("httpdate","%a, %d %b %Y %T GMT",new Map([["on_utc",!0]])),g.$def_formatter("xmlschema","%FT%T",new Map([["utc_tz","Z"],["tz_format","%:z"],["fractions",!0]])),l(g,"iso8601","xmlschema"),c(g,"$to_date",(function(){return b("Date").$wrap(this)})),c(g,"$to_datetime",(function(){return b("DateTime").$wrap(this)})),c(g,"$to_time",_)}(p[0],0,p),d.$require("date")},Opal.modules["date/date_time"]=function(e){var t=e.klass,n=e.def,r=e.alias,i=e.rb_divide,a=e.rb_times,s=e.rb_plus,o=e.rb_minus,$=e.truthy,u=e.return_self,l=[],c=e.$r(l),_=e.nil,d=e.$$$;return e.add_stubs("wrap,now,parse,new,def_delegators,min,sec,/,usec,sec_fraction,gmt_offset,*,+,-,is_a?,clone,_parse_offset,dup,year,month,day"),function(l,c,p){var f=t(l,c,"DateTime"),h=[f].concat(p),m=e.$r(h);return f.$$prototype.date=_,function(t,r){var i=[t].concat(r),a=e.$r(i);n(t,"$now",(function(){return this.$wrap(a("Time").$now())})),n(t,"$parse",(function(e){return this.$wrap(a("Time").$parse(e))}))}(e.get_singleton_class(f),h),n(f,"$initialize",(function(e,t,n,r,i,a,s,o){return null==e&&(e=-4712),null==t&&(t=1),null==n&&(n=1),null==r&&(r=0),null==i&&(i=0),null==a&&(a=0),null==s&&(s=0),null==o&&(o=m("ITALY")),1582===e&&10===t&&n>4&&n<15&&(n=4),this.date=m("Time").$new(e,t,n,r,i,a,s),this.start=o}),-1),f.$def_delegators("@date","min","hour","sec"),r(f,"minute","min"),r(f,"second","sec"),n(f,"$sec_fraction",(function(){return i(this.date.$usec(),d("Rational").$new(1e6,1))})),r(f,"second_fraction","sec_fraction"),n(f,"$offset",(function(){return i(this.date.$gmt_offset(),a(24,d("Rational").$new(3600,1)))})),n(f,"$+",(function(e){return d("DateTime").$wrap(s(this.date,e))})),n(f,"$-",(function(t){var n=_;return e.is_a(t,d("Date"))&&(t=t.date),n=o(this.date,t),$(n["$is_a?"](d("Time")))?d("DateTime").$wrap(n):n})),n(f,"$new_offset",(function(e){var t=_;return t=this.$clone(),e=m("Time").$_parse_offset(e),t.date.timezone=e,t})),n(f,"$to_datetime",u),n(f,"$to_time",(function(){return this.date.$dup()})),n(f,"$to_date",(function(){var e=this;return m("Date").$new(e.$year(),e.$month(),e.$day())}))}(l[0],c("Date"),l)},Opal.modules["date/formatters"]=function(e){var t,n,r,i=e.klass,a=e.slice,s=e.extract_kwargs,o=e.ensure_kwargs,$=e.kwrestargs,u=e.send,l=e.to_a,c=e.defs,_=e.alias,d=[],p=e.$r(d);e.nil;return e.add_stubs("def_formatter,asctime,iso8601,rfc2822,xmlschema"),function(t,n,r){var d=i(t,null,"Date"),p=[d].concat(r),f=e.$r(p);c(d,"$def_formatter",(function(t,n){var r,i,c,_;return r=a(arguments),i=s(r),i=o(i),c=r,_=$(i,{}),u(f("Time"),"def_formatter",l(c).concat([e.to_hash(_).$merge(new Map([["on",this]]))]))}),-1),d.$def_formatter("asctime","%c"),_(d,"ctime","asctime"),d.$def_formatter("iso8601","%F"),_(d,"xmlschema","iso8601"),d.$def_formatter("rfc3339","%FT%T%:z"),d.$def_formatter("rfc2822","%a, %-d %b %Y %T %z"),_(d,"rfc822","rfc2822"),d.$def_formatter("httpdate","%a, %d %b %Y %T GMT",new Map([["utc",!0]])),d.$def_formatter("jisx0301","%J"),_(d,"to_s","iso8601")}(d[0],0,d),t=d[0],n=p("Date"),(r=i(t,n,"DateTime")).$def_formatter("xmlschema","%FT%T",new Map([["fractions",!0],["tz_format","%:z"]])),_(r,"iso8601","xmlschema"),_(r,"rfc3339","xmlschema"),r.$def_formatter("jisx0301","%JT%T",new Map([["fractions",!0],["tz_format","%:z"]])),_(r,"to_s","xmlschema"),r.$def_formatter("zone","%:z")},Opal.modules.date=function(e){var t=e.klass,n=e.const_set,r=e.rb_plus,i=e.def,a=e.send,s=e.alias,o=e.rb_minus,$=e.return_self,u=e.return_ivar,l=e.truthy,c=e.rb_lt,_=e.rb_times,d=e.defs,p=e.top,f=[],h=e.nil,m=e.$$$;return e.add_stubs("require,include,extend,new,-@,+,allocate,join,compact,map,to_proc,downcase,wrap,raise,attr_reader,<=>,jd,===,<<,prev_month,dup,def_delegators,day,month,clone,prev_day,next_day,_days_in_month,class,-,year,prev_year,to_s,strftime,to_i,<,*,reverse,step,abs,each,==,next"),p.$require("forwardable"),p.$require("date/infinity"),p.$require("time"),function(p,f,g){var v=t(p,null,"Date"),b=[v].concat(g),y=e.$r(b),w=v.$$prototype;w.date=w.start=h,v.$include(y("Comparable")),v.$extend(y("Forwardable")),n(b[0],"JULIAN",y("Infinity").$new()),n(b[0],"GREGORIAN",y("Infinity").$new()["$-@"]()),n(b[0],"ITALY",2299161),n(b[0],"ENGLAND",2361222),n(b[0],"MONTHNAMES",r([h],["January","February","March","April","May","June","July","August","September","October","November","December"])),n(b[0],"ABBR_MONTHNAMES",["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"]),n(b[0],"DAYNAMES",["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]),n(b[0],"ABBR_DAYNAMES",["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),function(t,n){var r=[t].concat(n),o=e.$r(r);i(t,"$wrap",(function(e){var t=h;return(t=this.$allocate()).start=o("ITALY"),t.date=e,t})),i(t,"$parse",(function(e,t){null==t&&(t=!0);var n=new Date,r=n.getDate(),i=n.getMonth(),s=n.getFullYear(),$=n.getDay(),u=o("MONTHNAMES").$compact().$join("|");function l(e){return e[1]}function c(e){return e[2]}function _(e){return e[3]}function d(e){return e[4]}function p(e){return function(t){var n=e(t);return n+=n>=69?1900:2e3}}function f(e){return function(t){var n=e(t).toLowerCase();return o("ABBR_MONTHNAMES").indexOf(n)+1}}function h(e){return function(t){var n=e(t);return parseInt(n,10)}}function m(e){return function(t){var n=e(t);return a(o("MONTHNAMES").$compact(),"map",[],"downcase".$to_proc()).indexOf(n.$downcase())+1}}var g,v,b,y,w=[{regexp:/^(\d{2})$/,year:s,month:i,day:h(l)},{regexp:/^(\d{3})$/,year:s,month:0,day:h(l)},{regexp:/^(\d{2})(\d{2})$/,year:s,month:h(l),day:h(c)},{regexp:/^(\d{2})(\d{3})$/,year:p(h(l)),month:0,day:h(c)},{regexp:/^(\d{2})(\d{2})(\d{2})$/,year:p(h(l)),month:h(c),day:h(_)},{regexp:/^(\d{4})(\d{3})$/,year:h(l),month:0,day:h(c)},{regexp:/^(\d{4})(\d{2})(\d{2})$/,year:h(l),month:h(c),day:h(_)},{regexp:/^([a-z]{3})[\s\.\/\-](\d{3,4})$/,year:h(c),month:f(l),day:1},{regexp:/^(\d{1,2})[\s\.\/\-]([a-z]{3})[\s\.\/\-](\d{3,4})$/i,year:h(_),month:f(c),day:h(l)},{regexp:/^([a-z]{3})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{3,4})$/i,year:h(_),month:f(l),day:h(c)},{regexp:/^(\d{3,4})[\s\.\/\-]([a-z]{3})[\s\.\/\-](\d{1,2})$/i,year:h(l),month:f(c),day:h(_)},{regexp:/^(\-?\d{3,4})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{1,2})$/,year:h(l),month:h(c),day:h(_)},{regexp:/^(\d{2})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{1,2})$/,year:(g=h(l),function(e){var n=g(e);return t?n+2e3:n}),month:h(c),day:h(_)},{regexp:/^(\d{1,2})[\s\.\/\-](\d{1,2})[\s\.\/\-](\-?\d{3,4})$/,year:h(_),month:h(c),day:h(l)},{regexp:new RegExp("^("+o("DAYNAMES").$join("|")+")$","i"),year:s,month:i,day:function(e){return function(t){var n=e(t),i=a(o("DAYNAMES"),"map",[],"downcase".$to_proc()).indexOf(n.$downcase());return r-$+i}}(l)},{regexp:new RegExp("^("+u+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-](\\-?\\d{3,4})$","i"),year:h(d),month:m(l),day:h(c)},{regexp:new RegExp("^("+u+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)","i"),year:s,month:m(l),day:h(c)},{regexp:new RegExp("^(\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-]("+u+")[\\s\\.\\/\\-](\\-?\\d{3,4})$","i"),year:h(d),month:m(_),day:h(l)},{regexp:new RegExp("^(\\-?\\d{3,4})[\\s\\.\\/\\-]("+u+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)$","i"),year:h(l),month:m(c),day:h(_)}];for(b=0;b<w.length;b++)if(y=(v=w[b]).regexp.exec(e)){var x=v.year;"function"==typeof x&&(x=x(y));var k=v.month;"function"==typeof k&&(k=k(y)-1);var G=v.day;"function"==typeof G&&(G=G(y));var E=new Date(x,k,G);return x>=0&&x<=1970&&E.setFullYear(x),this.$wrap(E)}return this.$raise(o("ArgumentError"),"invalid date")}),-2),i(t,"$today",(function(){return this.$wrap(new Date)})),i(t,"$gregorian_leap?",(function(e){return new Date(e,1,29).getMonth()-1==0})),s(t,"civil","new")}(e.get_singleton_class(v),b),i(v,"$initialize",(function(e,t,n,r){return null==e&&(e=-4712),null==t&&(t=1),null==n&&(n=1),null==r&&(r=y("ITALY")),1582===e&&10===t&&n>4&&n<15&&(n=4),this.date=new Date(e,t-1,n),this.start=r}),-1),v.$attr_reader("start"),i(v,"$<=>",(function(t){var n=this;if(t.$$is_number)return n.$jd()["$<=>"](t);if(m("Date")["$==="](t)){var r=n.date,i=t.date;return e.is_a(n,m("DateTime"))||r.setHours(0,0,0,0),e.is_a(t,m("DateTime"))||i.setHours(0,0,0,0),r<i?-1:r>i?1:0}return h})),i(v,"$>>",(function(e){return e.$$is_number||this.$raise(m("TypeError")),this["$<<"](e["$-@"]())})),i(v,"$<<",(function(e){return e.$$is_number||this.$raise(m("TypeError")),this.$prev_month(e)})),i(v,"$clone",(function(){var e=h;return(e=y("Date").$wrap(this.date.$dup())).start=this.start,e})),v.$def_delegators("@date","sunday?","monday?","tuesday?","wednesday?","thursday?","friday?","saturday?","day","month","year","wday","yday"),s(v,"mday","day"),s(v,"mon","month"),i(v,"$jd",(function(){var e,t,n,r,i,a=this,s=a.date.getMonth()+1,o=a.date.getDate(),$=a.date.getFullYear(),u=12;return u=u+0+0,e=1,$<=1585&&(e=0),i=-1*Math.floor(7*(Math.floor((s+9)/12)+$)/4),t=1,s-9<0&&(t=-1),n=Math.abs(s-9),r=Math.floor($+t*Math.floor(n/7)),r=-1*Math.floor(3*(Math.floor(r/100)+1)/4),i=(i=i+Math.floor(275*s/9)+o+e*r)+1721027+2*e+367*$-.5,i+=u/24})),i(v,"$julian?",(function(){return this.date<new Date(1582,9,15,12)})),i(v,"$new_start",(function(e){var t=h;return(t=this.$clone()).start=e,t})),i(v,"$next",(function(){return r(this,1)})),i(v,"$-",(function(e){return e.date?Math.round((this.date-e.date)/864e5):this.$prev_day(e)})),i(v,"$+",(function(e){return this.$next_day(e)})),i(v,"$prev_day",(function(e){var t=this;if(null==e&&(e=1),e.$$is_number){var n=t.$clone();return n.date.setDate(t.date.getDate()-e),n}t.$raise(m("TypeError"))}),-1),i(v,"$next_day",(function(e){return null==e&&(e=1),e.$$is_number||this.$raise(m("TypeError")),this.$prev_day(e["$-@"]())}),-1),i(v,"$prev_month",(function(e){null==e&&(e=1),e.$$is_number||this.$raise(m("TypeError"));var t=this.$clone(),n=t.date,r=n.getDate();return n.setDate(1),n.setMonth(n.getMonth()-e),n.setDate(Math.min(r,y("Date").$_days_in_month(n.getFullYear(),n.getMonth()))),t}),-1),i(v,"$next_month",(function(e){return null==e&&(e=1),e.$$is_number||this.$raise(m("TypeError")),this.$prev_month(e["$-@"]())}),-1),i(v,"$prev_year",(function(e){var t=this;return null==e&&(e=1),e.$$is_number||t.$raise(m("TypeError")),t.$class().$new(o(t.$year(),e),t.$month(),t.$day())}),-1),i(v,"$next_year",(function(e){return null==e&&(e=1),e.$$is_number||this.$raise(m("TypeError")),this.$prev_year(e["$-@"]())}),-1),i(v,"$strftime",(function(e){return null==e&&(e=""),""==e?this.$to_s():this.date.$strftime(e)}),-1),i(v,"$to_s",(function(){var e=this.date,t=e.getFullYear(),n=e.getMonth()+1,r=e.getDate();return n<10&&(n="0"+n),r<10&&(r="0"+r),t+"-"+n+"-"+r})),i(v,"$to_time",(function(){var e=this;return y("Time").$new(e.$year(),e.$month(),e.$day())})),i(v,"$to_date",$),i(v,"$to_datetime",(function(){var e=this;return y("DateTime").$new(e.$year(),e.$month(),e.$day())})),i(v,"$to_n",u("date")),i(v,"$step",(function t(n,i){var s,$,u=t.$$p||h,d=this,p=h;return t.$$p=null,null==i&&(i=1),p=o(n,d).$to_i(),s=l(c(_(p,i),0))?[]:l(c(p,0))?a(e.Range.$new(0,p["$-@"](),!1).$step(i.$abs()),"map",[],"-@".$to_proc()).$reverse():e.Range.$new(0,p,!1).$step(i.$abs()),$=a(s,"map",[],(function e(t){return null==t&&(t=h),r(null==e.$$s?this:e.$$s,t)}),{$$s:d}),u!==h?(a($,"each",[],(function(t){return null==t&&(t=h),e.yield1(u,t)})),d):$}),-2),i(v,"$upto",(function e(t){var n=e.$$p||h;return e.$$p=null,a(this,"step",[t,1],n.$to_proc())})),i(v,"$downto",(function e(t){var n=e.$$p||h;return e.$$p=null,a(this,"step",[t,-1],n.$to_proc())})),i(v,"$cwday",(function(){return this.date.getDay()||7})),i(v,"$cweek",(function(){var e=new Date(this.date);return e.setHours(0,0,0),e.setDate(e.getDate()+4-(e.getDay()||7)),Math.ceil(((e-new Date(e.getFullYear(),0,1))/864e5+1)/7)})),d(v,"$_days_in_month",(function(e,t){return[31,e%4==0&&e%100!=0||e%400==0?29:28,31,30,31,30,31,31,30,31,30,31][t]})),s(v,"eql?","=="),s(v,"succ","next")}(f[0],0,f),p.$require("date/date_time"),p.$require("date/formatters")},Opal.modules.ruby2_keywords=function(e){var t,n=e.klass,r=e.truthy,i=e.slice,a=e.def,s=e.defs,o=e.return_self,$=e.return_val,u=[],l=e.$r(u),c=e.nil,_=c;return e.add_stubs("private_method_defined?,private,eval,respond_to?,method_defined?,dup"),t=n(u[0],null,"Module"),r(t["$private_method_defined?"]("ruby2_keywords"))||(t.$private(),a(t,"$ruby2_keywords",(function(e,t){return i(arguments,1),c}),-2)),_=l("TOPLEVEL_BINDING").$eval("self"),r(_["$respond_to?"]("ruby2_keywords",!0))||s(_,"$ruby2_keywords",(function(e,t){return i(arguments,1),c}),-2),function(e,t){var i=n(e,null,"Proc");r(i["$method_defined?"]("ruby2_keywords"))||a(i,"$ruby2_keywords",o)}(u[0]),function(e,t){return r(e["$method_defined?"]("ruby2_keywords_hash?"))||a(e,"$ruby2_keywords_hash?",$(!1)),r(e["$method_defined?"]("ruby2_keywords_hash"))?c:a(e,"$ruby2_keywords_hash",(function(e){return e.$dup()}))}(e.get_singleton_class(l("Hash")))},Opal.modules.delegate=function(e){var t=e.freeze,n=e.freeze_props,r=e.klass,i=e.const_set,a=e.Kernel,s=e.send,o=e.truthy,$=e.Object,u=e.defs,l=e.def,c=e.slice,_=e.to_a,d=e.send2,p=e.find_super,f=e.not,h=e.eqeqeq,m=e.to_ary,g=e.eqeq,v=e.ensure_kwargs,b=e.hash_get,y=e.return_ivar,w=e.lambda,x=e.rb_minus,k=e.find_block_super,G=e.top,E=[],S=e.$r(E),O=e.nil,M=e.$$$;return e.add_stubs("require,dup,class_eval,alias_method,each,undef_method,private_instance_methods,=~,include,const_get,__setobj__,ruby2_keywords,__getobj__,target_respond_to?,__send__,to_proc,private_method_defined?,method_defined?,bind_call,instance_method,!,warn,private_constant,private,===,respond_to?,|,methods,public_methods,protected_methods,equal?,==,!=,eql?,__raise__,reject,instance_variables,map,instance_variable_get,each_with_index,instance_variable_set,[],clone,freeze,public_instance_methods,new,public_api,protected_instance_methods,-,module_eval,define_method,delegating_block,protected,define_singleton_method,instance_methods,include?,raise,public_instance_method"),G.$require("ruby2_keywords"),function(w,x,k){var G,E=r(w,x,"Delegator"),S=[E].concat(k),A=e.$r(S);i(S[0],"VERSION","0.2.0"),G=a.$dup(),s(G,"class_eval",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$alias_method("__raise__","raise"),s(["to_s","inspect","!~","===","<=>","hash"],"each",[],(function e(t){return null==t&&(t=O),(null==e.$$s?this:e.$$s).$undef_method(t)}),{$$s:t}),s(t.$private_instance_methods(),"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=O),o(/^block_given\?$|^iterator\?$|^__.*__$/["$=~"](t))?O:n.$undef_method(t)}),{$$s:t})}),{$$s:E}),E.$include(G),u(E,"$const_missing",(function(e){return $.$const_get(e)})),l(E,"$initialize",(function(e){return this.$__setobj__(e)})),E.$ruby2_keywords(l(E,"$method_missing",(function e(t,n){var r,i,$=e.$$p||O,u=this,l=O;return e.$$p=null,r=c(arguments,1),l=!0,i=s(u,"__getobj__",[],(function(){return l=!1})),o(l)&&o(u["$target_respond_to?"](i,t,!1))?s(i,"__send__",[t].concat(_(r)),$.$to_proc()):o(a["$method_defined?"](t))||o(a["$private_method_defined?"](t))?s(a.$instance_method(t),"bind_call",[u].concat(_(r)),$.$to_proc()):d(u,p(u,"method_missing",e,!1,!0),"method_missing",[t].concat(_(r)),$.$to_proc())}),-2)),l(E,"$respond_to_missing?",(function(e,t){var n,r,i=this,a=O;return a=!0,n=s(i,"__getobj__",[],(function(){return a=!1})),a=o(r=a)?i["$target_respond_to?"](n,e,t):r,o(a)&&o(t)&&f(i["$target_respond_to?"](n,e,!1))?(i.$warn("delegator does not forward private method #"+e,new Map([["uplevel",3]])),!1):a})),i(S[0],"KERNEL_RESPOND_TO",a.$instance_method("respond_to?")),E.$private_constant("KERNEL_RESPOND_TO"),E.$private(l(E,"$target_respond_to?",(function(e,t,n){return h(A("Object"),e)||o(A("KERNEL_RESPOND_TO").$bind_call(e,"respond_to?"))?e["$respond_to?"](t,n):A("KERNEL_RESPOND_TO").$bind_call(e,t,n)}))),l(E,"$methods",(function e(t){var n=e.$$p||O,r=this;return e.$$p=null,null==t&&(t=!0),r.$__getobj__().$methods(t)["$|"](d(r,p(r,"methods",e,!1,!0),"methods",[t],n))}),-1),l(E,"$public_methods",(function e(t){var n=e.$$p||O,r=this;return e.$$p=null,null==t&&(t=!0),r.$__getobj__().$public_methods(t)["$|"](d(r,p(r,"public_methods",e,!1,!0),"public_methods",[t],n))}),-1),l(E,"$protected_methods",(function e(t){var n=e.$$p||O,r=this;return e.$$p=null,null==t&&(t=!0),r.$__getobj__().$protected_methods(t)["$|"](d(r,p(r,"protected_methods",e,!1,!0),"protected_methods",[t],n))}),-1),l(E,"$==",(function(e){return!!o(e["$equal?"](this))||this.$__getobj__()["$=="](e)})),l(E,"$!=",(function(e){return!o(e["$equal?"](this))&&this.$__getobj__()["$!="](e)})),l(E,"$eql?",(function(e){return!!o(e["$equal?"](this))||e["$eql?"](this.$__getobj__())})),l(E,"$!",(function(){return this.$__getobj__()["$!"]()})),l(E,"$__getobj__",(function(){return this.$__raise__(M("NotImplementedError"),"need to define `__getobj__'")})),l(E,"$__setobj__",(function(e){return this.$__raise__(M("NotImplementedError"),"need to define `__setobj__'")})),l(E,"$marshal_dump",(function(){var e,t=this;return["__v2__",e=s(t.$instance_variables(),"reject",[],(function(e){return null==e&&(e=O),/^@delegate_/["$=~"](e)})),s(e,"map",[],(function e(t){return null==t&&(t=O),(null==e.$$s?this:e.$$s).$instance_variable_get(t)}),{$$s:t}),t.$__getobj__()]})),l(E,"$marshal_load",(function(e){var t,n,r,i,a=this,o=O;return n=null==(t=m(e))[0]?O:t[0],r=null==t[1]?O:t[1],o=null==t[2]?O:t[2],i=null==t[3]?O:t[3],g(n,"__v2__")?(s(r,"each_with_index",[],(function e(t,n){return null==t&&(t=O),null==n&&(n=O),(null==e.$$s?this:e.$$s).$instance_variable_set(t,o["$[]"](n))}),{$$s:a}),a.$__setobj__(i)):a.$__setobj__(e)})),l(E,"$initialize_clone",(function(e,t){var n;return t=v(t),null==(n=b(t,"freeze"))&&(n=O),this.$__setobj__(e.$__getobj__().$clone(new Map([["freeze",n]])))}),-2),l(E,"$initialize_dup",(function(e){return this.$__setobj__(e.$__getobj__().$dup())})),E.$private("initialize_clone","initialize_dup"),l(E,"$freeze",(function(){var e=this;return e.$__getobj__().$freeze(),n(e),t(e)})),l(E,"$frozen?",(function(){return this.$$frozen||!1})),E.delegator_api=E.$public_instance_methods(),u(E,"$public_api",y("delegator_api"))}(E[0],S("BasicObject"),E),function(t,n){var i=r(t,n,"SimpleDelegator");i.$$prototype.delegate_sd_obj=O,l(i,"$__getobj__",(function t(){var n,r=t.$$p||O,i=this;if(t.$$p=null,!o((n=i.delegate_sd_obj,null!=n&&n!==O?"instance-variable":O))){if(r!==O)return e.yieldX(r,[]);i.$__raise__(M("ArgumentError"),"not delegated")}return i.delegate_sd_obj})),l(i,"$__setobj__",(function(e){var t=this;return o(t["$equal?"](e))&&t.$__raise__(M("ArgumentError"),"cannot delegate to self"),t.delegate_sd_obj=e}))}(E[0],S("Delegator")),u(S("Delegator"),"$delegating_block",(function e(t){return e.$$p=null,w((function e(n){var r,i,a=e.$$p||O,o=null==e.$$s?this:e.$$s;return e.$$p=null,r=c(arguments),i=o.$__getobj__(),s(i,"__send__",[t].concat(_(r)),a.$to_proc())}),{$$arity:-1,$$s:this}).$ruby2_keywords()})),l(G,"$DelegateClass",(function t(n){var r,i,a=t.$$p||O,$=this,u=O,c=O;return t.$$p=null,r=S("Class").$new(S("Delegator")),i=[].concat(_(M("Delegator").$public_api())).concat(["to_s","inspect","=~","!~","==="]),u=n.$protected_instance_methods(),u=x(u,i),c=n.$public_instance_methods(),c=x(c,i),s(r,"module_eval",[],(function t(){var n=null==t.$$s?this:t.$$s;return l(n,"$__getobj__",(function t(){var n,r=t.$$p||O,i=this;if(null==i.delegate_dc_obj&&(i.delegate_dc_obj=O),t.$$p=null,!o((n=i.delegate_dc_obj,null!=n&&n!==O?"instance-variable":O))){if(r!==O)return e.yieldX(r,[]);i.$__raise__(M("ArgumentError"),"not delegated")}return i.delegate_dc_obj})),l(n,"$__setobj__",(function(e){var t=this;return o(t["$equal?"](e))&&t.$__raise__(M("ArgumentError"),"cannot delegate to self"),t.delegate_dc_obj=e})),s(u,"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=O),n.$define_method(t,S("Delegator").$delegating_block(t)),n.$protected(t)}),{$$s:n}),s(c,"each",[],(function e(t){return null==t&&(t=O),(null==e.$$s?this:e.$$s).$define_method(t,S("Delegator").$delegating_block(t))}),{$$s:n})}),{$$s:$}),s(r,"define_singleton_method",["public_instance_methods"],(function e(r){var i=null==e.$$s?this:e.$$s;return null==r&&(r=!0),d(i,k(i,"DelegateClass",e.$$def||t,!1,!1),"DelegateClass",[r],null)["$|"](n.$public_instance_methods())}),{$$arity:-1,$$s:$}),s(r,"define_singleton_method",["protected_instance_methods"],(function e(r){var i=null==e.$$s?this:e.$$s;return null==r&&(r=!0),d(i,k(i,"DelegateClass",e.$$def||t,!1,!1),"DelegateClass",[r],null)["$|"](n.$protected_instance_methods())}),{$$arity:-1,$$s:$}),s(r,"define_singleton_method",["instance_methods"],(function e(r){var i=null==e.$$s?this:e.$$s;return null==r&&(r=!0),d(i,k(i,"DelegateClass",e.$$def||t,!1,!1),"DelegateClass",[r],null)["$|"](n.$instance_methods())}),{$$arity:-1,$$s:$}),s(r,"define_singleton_method",["public_instance_method"],(function r(i){var a=null==r.$$s?this:r.$$s;null==i&&(i=O);try{return d(a,k(a,"DelegateClass",r.$$def||t,!1,!1),"DelegateClass",[i],null)}catch(t){if(!e.rescue(t,[S("NameError")]))throw t;try{return o(a.$public_instance_methods()["$include?"](i))||a.$raise(),n.$public_instance_method(i)}finally{e.pop_exception(t)}}}),{$$s:$}),s(r,"define_singleton_method",["instance_method"],(function r(i){var a=null==r.$$s?this:r.$$s;null==i&&(i=O);try{return d(a,k(a,"DelegateClass",r.$$def||t,!1,!1),"DelegateClass",[i],null)}catch(t){if(!e.rescue(t,[S("NameError")]))throw t;try{return o(a.$instance_methods()["$include?"](i))||a.$raise(),n.$instance_method(i)}finally{e.pop_exception(t)}}}),{$$s:$}),o(a)&&s(r,"module_eval",[],a.$to_proc()),r}))},Opal.modules.enumerator=Opal.return_val(Opal.nil),Opal.modules.iconv=Opal.return_val(Opal.nil),Opal.modules.json=function(e){var t,n=e.module,r=e.klass,i=e.send,a=e.Object,s=e.eqeqeq,o=e.defs,$=e.truthy,u=e.def,l=e.return_val,c=[],_=e.nil,d=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(t,u){var l,c=n(t,"JSON"),p=[c].concat(u),f=e.$r(p);r(p[0],f("StandardError"),"JSONError"),r(p[0],f("JSONError"),"ParserError");var h=e.hasOwnProperty;function m(e){try{return JSON.parse(e)}catch(e){c.$raise(d(f("JSON"),"ParserError"),e.message)}}function g(t,n){var r,s,o,$,u,c;switch(typeof t){case"string":case"number":return t;case"boolean":return!!t;case"undefined":return _;case"object":if(!t)return _;if(t.$$is_array){for(s=e.hash_get(n,"array_class").$new(),$=0,u=t.length;$<u;$++)s.$push(g(t[$],n));return s}for(c in o=e.hash_get(n,"object_class").$new(),t)h.call(t,c)&&(l=[c,g(t[c],n)],i(o,"[]=",l));return e.hash_get(n,"parse")||(r=o["$[]"](f("JSON").$create_id()))==_?o:a.$const_get(r).$json_create(o)}}(function(e,t){e.$attr_accessor("create_id")})(e.get_singleton_class(c)),c["$create_id="]("json_class"),o(c,"$[]",(function(e,t){return null==t&&(t=new Map),s(f("String"),e)?this.$parse(e,t):this.$generate(e,t)}),-2),o(c,"$parse",(function(e,t){return null==t&&(t=new Map),this.$from_object(m(e),t.$merge(new Map([["parse",!0]])))}),-2),o(c,"$parse!",(function(e,t){return null==t&&(t=new Map),this.$parse(e,t)}),-2),o(c,"$load",(function(e,t){return null==t&&(t=new Map),this.$from_object(m(e),t)}),-2),o(c,"$from_object",(function(e,t){return null==t&&(t=new Map),$(t["$[]"]("object_class"))||t["$[]="]("object_class",f("Hash")),$(t["$[]"]("array_class"))||t["$[]="]("array_class",f("Array")),g(e,t)}),-2),o(c,"$generate",(function(e,t){return null==t&&(t=new Map),e.$to_json(t)}),-2),o(c,"$dump",(function(e,t,n){var r;return null==t&&(t=_),null==n&&(n=_),r=this.$generate(e),$(t)?($(t["$responds_to?"]("to_io"))&&(t=t.$to_io()),t.$write(r),t):r}),-2)}(c[0],c),t=r(c[0],null,"Object"),u(t,"$to_json",(function(){return this.$to_s().$to_json()})),function(e){var t=n(e,"Enumerable");u(t,"$to_json",(function(){return this.$to_a().$to_json()}))}(c[0]),function(e,t){var n=r(e,null,"Array");u(n,"$to_json",(function(){for(var e=[],t=0,n=this.length;t<n;t++)e.push(this[t].$to_json());return"["+e.join(",")+"]"}))}(c[0]),function(e,t){var n=r(e,null,"Boolean");u(n,"$to_json",(function(){return 1==this?"true":"false"}))}(c[0]),function(t,n){var i=r(t,null,"Hash");u(i,"$to_json",(function(){var t=[];return e.hash_each(this,!1,(function(e,n){return t.push(e.$to_s().$to_json()+":"+n.$to_json()),[!1,!1]})),"{"+t.join(",")+"}"}))}(c[0]),function(e,t){var n=r(e,null,"NilClass");u(n,"$to_json",l("null"))}(c[0]),function(e,t){var n=r(e,null,"Numeric");u(n,"$to_json",(function(){return this.toString()}))}(c[0]),function(e,t){var n=r(e,null,"String");u(n,"$to_json",(function(){return JSON.stringify(this)}))}(c[0]),function(e,t){var n=r(e,null,"Time");u(n,"$to_json",(function(){return this.$strftime("%FT%T%z").$to_json()}))}(c[0]),function(e,t){var n=r(e,null,"Date");return u(n,"$to_json",(function(){return this.$to_s().$to_json()})),u(n,"$as_json",(function(){return this.$to_s()}))}(c[0])},Opal.modules.js=function(e){var t=e.module,n=e.top,r=[],i=(e.nil,e.$$$);return e.add_stubs("require,warn,extend,include"),n.$require("opal/raw"),n.$warn('[Opal] JS module has been renamed to Opal::Raw and will change semantics in Opal 2.1. In addition, you will need to require "opal/raw" instead of "js". To ensure forward compatibility, please update your calls.'),function(n,r){var a=t(n,"JS"),s=[a].concat(r),o=e.$r(s);return a.$extend(i(o("Opal"),"Raw")),a.$include(i(o("Opal"),"Raw"))}(r[0],r)},Opal.modules.observer=function(e){var t=e.module,n=e.truthy,r=e.send,i=e.def,a=e.slice,s=e.to_a,o=[],$=e.nil;return e.add_stubs("respond_to?,raise,new,to_s,[]=,delete,clear,size,each,send"),function(o,u){var l=t(o,"Observable"),c=[l].concat(u),_=e.$r(c);return i(l,"$add_observer",(function(e,t){var i,a,s=this;return null==s.observer_peers&&(s.observer_peers=$),null==t&&(t="update"),n(null!=(i=s.observer_peers)&&i!==$?"instance-variable":$)||(s.observer_peers=new Map),n(e["$respond_to?"](t))||s.$raise(_("NoMethodError").$new("observer does not respond to `"+t.$to_s()+"'",t.$to_s())),a=[e,t],r(s.observer_peers,"[]=",a),a[a.length-1]}),-2),i(l,"$delete_observer",(function(e){var t,r=this;return null==r.observer_peers&&(r.observer_peers=$),n(null!=(t=r.observer_peers)&&t!==$?"instance-variable":$)?r.observer_peers.$delete(e):$})),i(l,"$delete_observers",(function(){var e,t=this;return null==t.observer_peers&&(t.observer_peers=$),n(null!=(e=t.observer_peers)&&e!==$?"instance-variable":$)?t.observer_peers.$clear():$})),i(l,"$count_observers",(function(){var e,t=this;return null==t.observer_peers&&(t.observer_peers=$),n(null!=(e=t.observer_peers)&&e!==$?"instance-variable":$)?t.observer_peers.$size():0})),i(l,"$changed",(function(e){return null==e&&(e=!0),this.observer_state=e}),-1),i(l,"$changed?",(function(){var e,t=this;return null==t.observer_state&&(t.observer_state=$),!(!n((e=t.observer_state,null!=e&&e!==$?"instance-variable":$))||!n(t.observer_state))})),i(l,"$notify_observers",(function(e){var t,i,o,u,l=this;return null==l.observer_state&&(l.observer_state=$),null==l.observer_peers&&(l.observer_peers=$),t=a(arguments),i=t,n(null!=(o=l.observer_state)&&o!==$?"instance-variable":$)&&n(l.observer_state)?(n(null!=(u=l.observer_peers)&&u!==$?"instance-variable":$)&&r(l.observer_peers,"each",[],(function(e,t){return null==e&&(e=$),null==t&&(t=$),r(e,"send",[t].concat(s(i)))})),l.observer_state=!1):$}),-1)}(o[0],o)},Opal.modules["corelib/pack_unpack/format_string_parser"]=function(e){var t,n,r,i=e.module,a=e.Kernel,s=(e.nil,e.$$$);return e.add_stubs("raise"),t=i("::","PackUnpack"),n=["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"],r=["!","_",">","<"],void(t.eachDirectiveAndCount=function(e,t){var i,o,$,u;function l(){i=null,o=0,$=[],u=!1}function c(){null!=i?(!/[sSiIlLqQjJ]/.test(i)&&$.length>0&&a.$raise(s("ArgumentError"),"'"+$[0]+"' allowed only after types sSiIlLqQjJ"),-1!==$.indexOf("<")&&-1!==$.indexOf(">")&&a.$raise(s("RangeError"),"Can't use both '<' and '>'"),u||(o=1),-1!==$.indexOf(">")&&(i+=">"),t(i,o),l()):l()}l();for(var _=0;_<e.length;_++){var d=e[_];-1!==n.indexOf(d)?(c(),i=d):i&&(/\d/.test(d)?(o=10*o+parseInt(d,10),u=!0):"*"===d&&!1===u?(o=1/0,u=!0):-1!==r.indexOf(d)&&!1===u?$.push(d):c())}c()})},Opal.modules["corelib/string/unpack"]=function(e){var t=e.klass,n=e.Kernel,r=e.ensure_kwargs,i=e.hash_get,a=e.truthy,s=e.rb_lt,o=e.Opal,$=e.rb_gt,u=e.def,l=e.top,c=e.nil,_=e.$$$;return e.add_stubs("require,flatten,decode64,raise,<,delete,gsub,coerce_to!,>,length,inspect,[],unpack"),l.$require("base64"),l.$require("corelib/pack_unpack/format_string_parser"),function(l,d,p){var f=t("::",null,"String"),h=[f].concat(p),m=e.$r(h),g=c,v=c,b=e.PackUnpack.eachDirectiveAndCount;function y(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(n){for(var r=t(n),i=[],a=r.length/e,s=0;s<a;s++){var o=r.splice(0,e);o.length===e&&i.push(o)}return i}}function x(e,t){return function(n){var r=t(n),i=8*e,a=Math.pow(2,i);return r.map((function(e){return e>=a/2&&(e-=a),e}))}}function k(e){return function(t){return e(t).map((function(e){return String.fromCharCode(e)}))}}function G(e){return function(t){return e(t).join("")}}function E(e){return function(t){return[e(t)]}}var S,O=(S=["\0"," "].map((function(e){return e.charCodeAt(0)})),function(e){return function(t){for(var n=e(t);-1!==S.indexOf(n[n.length-1]);)n=n.slice(0,n.length-1);return n}});function M(e){return function(t){return e(t).map((function(e){return e.reverse()}))}}function A(e){return e}var N,z={C:A,S:y(w(2,A)),L:y(w(4,A)),Q:y(w(8,A)),J:null,"S>":y(M(w(2,A))),"L>":y(M(w(4,A))),"Q>":y(M(w(8,A))),c:x(1,A),s:x(2,y(w(2,A))),l:x(4,y(w(4,A))),q:x(8,y(w(8,A))),j:null,"s>":x(2,y(M(w(2,A)))),"l>":x(4,y(M(w(4,A)))),"q>":x(8,y(M(w(8,A)))),n:null,N:null,v:null,V:null,U:A,w:(N=A,function(e){for(var t=N(e),n=[],r="",i=0;i<t.length;i++){var a=t[i].toString(2),s=(a=Array(8-a.length+1).join("0").concat(a))[0];if(a=a.slice(1,a.length),r=r.concat(a),"0"===s){var o=parseInt(r,2);n.push(o),r=""}}return n}),D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:E(G(k(O(A)))),a:E(G(k(A))),Z:G(k(A)),B:G(A),b:G(A),H:G(A),h:G(A),u:G(k(function(e){return function(t){for(var n=e(t),r=0,i=0,a=[];;){if(!(r<n.length))break;var s=n[r]-32&63;if(10!==n[++r]){if(s>45)return"";for(i+=s;s>0;){var o=n[r],$=n[r+1],u=n[r+2],l=(o-32&63)<<2|($-32&63)>>4,c=($-32&63)<<4|(u-32&63)>>2,_=(u-32&63)<<6|n[r+3]-32&63;a.push(255&l),a.push(255&c),a.push(255&_),r+=4,s-=3}++r}}return a.slice(0,i)}}(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 n=parseInt(t,16);return String.fromCharCode(n)}))}}(G(k(A))),m:function(e){return function(t){return m("Base64").$decode64(e(t))}}(G(k(A))),P:null,p:null};function D(e){return function(t){return{chunk:t.slice(0,e),rest:t=t.slice(e,t.length)}}}function I(e){return function(t,n){var r,i=[];if(n===1/0)for(;t.length>0;)t=(r=e(t)).rest,i=i.concat(r.chunk);else for(var a=0;a<n;a++)t=(r=e(t)).rest,i=i.concat(r.chunk);return{chunk:i,rest:t}}}function T(e,t){return{chunk:e,rest:[]}}var R={C:I(D(1)),S:I(D(2)),L:I(D(4)),Q:I(D(8)),J:null,"S>":I(D(2)),"L>":I(D(4)),"Q>":I(D(8)),c:I(D(1)),s:I(D(2)),l:I(D(4)),q:I(D(8)),j:null,"s>":I(D(2)),"l>":I(D(4)),"q>":I(D(8)),n:null,N:null,v:null,V:null,U:I((function(e){var t=0,r=e.length;function i(){var n=e[t++];return r=e.length-t,n}var a,s=i();if(s>>7==0)return{chunk:[s],rest:e.slice(t)};s>>6==2&&n.$raise(_("ArgumentError"),"malformed UTF-8 character"),s>>5==6?a=1:s>>4==14?a=2:s>>3==30?a=3:s>>2==62?a=4:s>>1==126?a=5:n.$raise("malformed UTF-8 character"),a>r&&(g=a+1,v=r+1,n.$raise(_("ArgumentError"),"malformed UTF-8 character (expected "+g+" bytes, given "+v+" bytes)"));for(var o=s&(1<<8-a-1)-1,$=0;$<a;$++)(s=i())>>6!=2&&n.$raise("Invalid multibyte sequence"),o=o<<6|63&s;return o<=65535?{chunk:[o],rest:e.slice(t)}:{chunk:[55296+((o-=65536)>>10&1023),56320+(1023&o)],rest:e.slice(t)}})),w:I((function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];if(t.push(r),0==(128&r))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:I(D(1)),a:I(D(1)),Z:function(e,t){for(var n=[],r=0;r<t&&r<e.length;r++){var i=e[r];if(0===i)break;n.push(i)}return t===1/0&&(t=n.length),0===e[t]&&t++,{chunk:n,rest:e=e.slice(t,e.length)}},B:function(e,t){for(var n="";t>0&&e.length>0;){var r=e[0],i=Math.min(t,8);Math.ceil(i/8);if(e=e.slice(1,e.length),null!=r){var a=r.toString(2);a=Array(8-a.length+1).join("0").concat(a);for(var s=0;s<i;s++)n+=a[s]||"0",t--}}return{chunk:[n],rest:e}},b:function(e,t){for(var n="";t>0&&e.length>0;){var r=e[0],i=Math.min(t,8);Math.ceil(i/8);if(e=e.slice(1,e.length),null!=r){var a=r.toString(2);a=Array(8-a.length+1).join("0").concat(a).split("").reverse().join("");for(var s=0;s<i;s++)n+=a[s]||"0",t--}}return{chunk:[n],rest:e}},H:function(e,t){for(var n=[];t>0&&e.length>0;){var r=e[0].toString(16);e=e.slice(1,e.length),r=Array(2-r.length+1).join("0").concat(r),1===t?(n.push(r[0]),t--):(n.push(r[0],r[1]),t-=2)}return{chunk:n,rest:e}},h:function(e,t){for(var n=[];t>0&&e.length>0;){var r=e[0].toString(16);e=e.slice(1,e.length),r=Array(2-r.length+1).join("0").concat(r),1===t?(n.push(r[1]),t--):(n.push(r[1],r[0]),t-=2)}return{chunk:n,rest:e}},u:I((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:T,m:T,P:null,p:null},q={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},C={"C*":z.C,"c*":z.c,"A*":z.A,"a*":z.a,"M*":E(z.M),"m*":E(z.m),"S*":z.S,"s*":z.s,"L*":z.L,"l*":z.l,"Q*":z.Q,"q*":z.q,"S>*":z["S>"],"s>*":z["s>"],"L>*":z["L>"],"l>*":z["l>"],"Q>*":z["Q>"],"q>*":z["q>"]};function j(e,t){R[t]=R[e],z[t]=z[e],q[t]=q[e]}return j("S>","n"),j("L>","N"),j("S","v"),j("L","V"),u(f,"$unpack",(function(e,t){var u,l=this;t=r(t),null==(u=i(t,"offset"))&&(u=0),a(s(u,0))&&n.$raise(_("ArgumentError"),"offset can't be negative"),e=o["$coerce_to!"](e,_("String"),"to_str").$gsub(/\s/,"").$delete("\0");var d=[];if("U*"==e&&"UTF-8"===l.internal_encoding.name&&"function"==typeof l.codePointAt){var p=0;d=new Array(l.length);for(var f=u;f<l.length;f++)(d[p++]=l.codePointAt(f))>65535&&f++;return d.slice(0,p)}var h=l.$bytes();a($(u,h.$length()))&&n.$raise(_("ArgumentError"),"offset outside of string"),h=h.slice(u);var m=C[e];if(m)return m(h);return b(e,(function(e,t){var r=function(e,t){var r,i=R[e];null==i&&n.$raise("Unsupported unpack directive "+e.$inspect()+" (no chunk reader defined)");var a=i(h,t);r=a.chunk,h=a.rest;var s=z[e];return null==s&&n.$raise("Unsupported unpack directive "+e.$inspect()+" (no handler defined)"),s(r)}(e,t);if(t!==1/0){var i=q[e];null==i&&n.$raise("Unsupported unpack directive "+e.$inspect()+" (no autocompletion rule defined)"),i&&function(e,t){for(;e.length<t;)e.push(c)}(r,t)}d=d.concat(r)})),d}),-2),u(f,"$unpack1",(function(e,t){var n;return t=r(t),null==(n=i(t,"offset"))&&(n=0),e=o["$coerce_to!"](e,_("String"),"to_str").$gsub(/\s/,"").$delete("\0"),this.$unpack(e["$[]"](0),new Map([["offset",n]]))["$[]"](0)}),-2)}(0,0,[])},Opal.modules.set=Opal.return_val(Opal.nil),Opal.modules["ast/node"]=function(e){var t=e.module,n=e.klass,r=e.alias,i=e.def,a=e.truthy,s=e.send,o=e.return_self,$=e.eqeq,u=e.rb_plus,l=e.rb_times,c=e.to_a,_=[],d=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(_,p){var f=[t(_,"AST")].concat(p);return function(t,_,p){var f=n(t,null,"Node"),h=[f].concat(p),m=e.$r(h),g=f.$$prototype;return g.type=g.children=d,f.$attr_reader("type"),f.$attr_reader("children"),r(f,"to_a","children"),f.$attr_reader("hash"),i(f,"$initialize",(function(e,t,n){var r,i=this;return null==t&&(t=[]),null==n&&(n=new Map),r=[e.$to_sym(),t.$to_a().$freeze()],i.type=r[0],i.children=r[1],i.$assign_properties(n),i.hash=[i.type,i.children,i.$class()].$hash(),i.$freeze()}),-2),i(f,"$eql?",(function(e){var t,n,r=this;return a(t=a(n=r.$class()["$eql?"](e.$class()))?r.type["$eql?"](e.$type()):n)?r.children["$eql?"](e.$children()):t})),i(f,"$assign_properties",(function(e){return s(e,"each",[],(function e(t,n){return null==t&&(t=d),null==n&&(n=d),(null==e.$$s?this:e.$$s).$instance_variable_set("@"+t,n)}),{$$s:this}),d})),f.$protected("assign_properties"),r(f,"original_dup","dup"),f.$private("original_dup"),i(f,"$dup",o),r(f,"clone","dup"),i(f,"$updated",(function(e,t,n){var r,i,s,o=this,u=d,l=d;return null==e&&(e=d),null==t&&(t=d),null==n&&(n=d),r=a(u=e)?u:o.type,i=a(u=t)?u:o.children,s=a(u=n)?u:new Map,$(o.type,r)&&$(o.children,i)&&a(n["$nil?"]())?o:((l=o.$original_dup()).$send("initialize",r,i,s),l)}),-1),i(f,"$==",(function(e){var t=this,n=d;return!!a(t["$equal?"](e))||!!a(e["$respond_to?"]("to_ast"))&&(e=e.$to_ast(),a(n=e.$type()["$=="](t.$type()))?e.$children()["$=="](t.$children()):n)})),i(f,"$concat",(function(e){return this.$updated(d,u(this.children,e.$to_a()))})),r(f,"+","concat"),i(f,"$append",(function(e){return this.$updated(d,u(this.children,[e]))})),r(f,"<<","append"),i(f,"$to_sexp",(function(e){var t,n=d;return null==e&&(e=0),t=l(" ",e),n=t+"("+this.$fancy_type(),s(this.$children(),"each",[],(function(t){return null==t&&(t=d),n=a(t["$is_a?"](m("Node")))?u(n,"\n"+t.$to_sexp(u(e,1))):u(n," "+t.$inspect())})),n=u(n,")")}),-1),r(f,"to_s","to_sexp"),i(f,"$inspect",(function(e){var t,n=d;return null==e&&(e=0),t=l(" ",e),n=t+"s(:"+this.type,s(this.$children(),"each",[],(function(t){return null==t&&(t=d),n=a(t["$is_a?"](m("Node")))?u(n,",\n"+t.$inspect(u(e,1))):u(n,", "+t.$inspect())})),n=u(n,")")}),-1),i(f,"$to_ast",o),i(f,"$to_sexp_array",(function(){var e;return e=s(this.$children(),"map",[],(function(e){return null==e&&(e=d),a(e["$is_a?"](m("Node")))?e.$to_sexp_array():e})),[this.$type()].concat(c(e))})),i(f,"$deconstruct",(function(){return[this.$type()].concat(c(this.$children()))})),f.$protected(),i(f,"$fancy_type",(function(){return this.type.$to_s().$gsub("_","-")}))}(f[0],0,f)}(_[0],_)},Opal.modules["ast/processor/mixin"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.def,a=e.send,s=e.return_val,o=[],$=e.nil;return e.add_stubs("nil?,to_ast,type,respond_to?,send,handler_missing,map,to_a,process"),function(e,o){var u=[t(e,"AST")].concat(o);return function(e,o,u){return function(e){var n=t(e,"Mixin");return i(n,"$process",(function(e){var t,n=this,i=$;return r(e["$nil?"]())?$:(t="on_"+(e=e.$to_ast()).$type(),i=r(n["$respond_to?"](t))?n.$send(t,e):n.$handler_missing(e),r(i)&&(e=i),e)})),i(n,"$process_all",(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})})),i(n,"$handler_missing",s($))}([n(e,null,"Processor")].concat(u)[0])}(u[0],0,u)}(o[0],o)},Opal.modules["ast/processor"]=function(e){var t=e.module,n=e.klass,r=[];e.nil;return e.add_stubs("include"),function(r,i){var a=[t(r,"AST")].concat(i);return function(t,r,i){var a=n(t,null,"Processor"),s=[a].concat(i),o=e.$r(s);return a.$require("ast/processor.rb/../processor/mixin"),a.$include(o("Mixin"))}(a[0],0,a)}(r[0],r)},Opal.modules["ast/sexp"]=function(e){var t=e.module,n=e.slice,r=e.def,i=[];e.nil;return e.add_stubs("new"),function(i,a){var s=[t(i,"AST")].concat(a);return function(i,a){var s=t(i,"Sexp"),o=[s].concat(a),$=e.$r(o);return r(s,"$s",(function(e,t){var r;return r=n(arguments,1),$("Node").$new(e,r)}),-2)}(s[0],s)}(i[0],i)},Opal.modules.ast=function(e){var t,n=e.module;e.nil;return(t=n([][0],"AST")).$require("./ast.rb/../ast/node"),t.$require("./ast.rb/../ast/processor"),t.$require("./ast.rb/../ast/sexp")},Opal.modules["parser/ast/node"]=function(e){var t=e.module,n=e.klass,r=e.alias,i=e.truthy,a=e.def,s=[],o=e.nil,$=e.$$$;return e.add_stubs("attr_reader,location,[],frozen?,dup,node="),function(e,s){var u=[t(e,"Parser")].concat(s);return function(e,s){return function(e,t){var s=n(e,t,"Node");return s.$attr_reader("location"),r(s,"loc","location"),a(s,"$assign_properties",(function(e){var t=o;return i(t=e["$[]"]("location"))?(i(t["$frozen?"]())&&(t=t.$dup()),t["$node="](this),this.location=t):o}))}([t(e,"AST")].concat(s)[0],$($("AST"),"Node"))}(u[0],u)}(s[0],s)},Opal.modules["opal/ast/node"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.send2,a=e.find_super,s=e.def,o=e.top,$=[],u=e.nil,l=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 $=[t(e,"Opal")].concat(o);return function(e,o){return function(e,t){var o=n(e,t,"Node");return o.$$prototype.meta=u,o.$attr_reader("meta"),s(o,"$assign_properties",(function e(t){var n=e.$$p||u,s=this,o=u,$=u;return e.$$p=null,r(o=t["$[]"]("meta"))?(r(o["$frozen?"]())&&(o=o.$dup()),s.meta["$merge!"](o)):s.meta=r($=s.meta)?$:new Map,i(s,a(s,"assign_properties",e,!1,!0),"assign_properties",[t],n)})),s(o,"$line",(function(){return r(this.$loc())?this.$loc().$line():u})),s(o,"$column",(function(){return r(this.$loc())?this.$loc().$column():u}))}([t(e,"AST")].concat(o)[0],l(l(l("Parser"),"AST"),"Node"))}($[0],$)}($[0],$)},Opal.modules["racc/parser"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.const_set,a=e.defs,s=e.gvars,o=e.rb_lt,$=e.def,u=e.to_ary,l=e.send,c=e.neqeq,_=e.rb_plus,d=e.eqeq,p=e.rb_ge,f=e.rb_gt,h=e.rb_minus,m=e.rb_le,g=e.rb_times,v=e.assign_ivar_val,b=[],y=e.$r(b),w=e.nil,x=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(r,i){var a=[t(r,"Racc")].concat(i),s=e.$r(a);n(a[0],s("StandardError"),"ParseError")}(b[0],b),r(x("::","ParseError","skip_raise")?"constant":w)||i(b[0],"ParseError",x(y("Racc"),"ParseError")),function(b,y){var k=[t(b,"Racc")].concat(y),G=e.$r(k);return r(G("Racc_No_Extensions","skip_raise")?"constant":w)||i(k[0],"Racc_No_Extensions",!1),function(t,b,y){var k=n(t,null,"Parser"),G=[k].concat(y),E=e.$r(G),S=k.$$prototype;return S.yydebug=S.racc_debug_out=S.racc_error_status=S.racc_t=S.racc_vstack=S.racc_val=S.racc_state=S.racc_tstack=w,i(G[0],"Racc_Runtime_Version","1.4.6"),i(G[0],"Racc_Runtime_Revision",["originalRevision:","1.8"]["$[]"](1)),i(G[0],"Racc_Runtime_Core_Version_R","1.4.6"),i(G[0],"Racc_Runtime_Core_Revision_R",["originalRevision:","1.8"]["$[]"](1)),i(G[0],"Racc_Main_Parsing_Routine","_racc_do_parse_rb"),i(G[0],"Racc_YY_Parse_Method","_racc_yyparse_rb"),i(G[0],"Racc_Runtime_Core_Version",E("Racc_Runtime_Core_Version_R")),i(G[0],"Racc_Runtime_Core_Revision",E("Racc_Runtime_Core_Revision_R")),i(G[0],"Racc_Runtime_Type","ruby"),a(E("Parser"),"$racc_runtime_type",(function(){return E("Racc_Runtime_Type")})),$(k,"$_racc_setup",(function(){var e,t,n=this,i=w,a=w;return null==s.stderr&&(s.stderr=w),r(x(n.$class(),"Racc_debug_parser"))||(n.yydebug=!1),r(null!=(e=n.yydebug)&&e!==w?"instance-variable":w)||(n.yydebug=!1),r(n.yydebug)&&(r(null!=(t=n.racc_debug_out)&&t!==w?"instance-variable":w)||(n.racc_debug_out=s.stderr),n.racc_debug_out=r(i=n.racc_debug_out)?i:s.stderr),a=x(n.$class(),"Racc_arg"),r(o(a.$size(),14))&&a["$[]="](13,!0),a})),$(k,"$_racc_init_sysvars",(function(){var e=this;return e.racc_state=[0],e.racc_tstack=[],e.racc_vstack=[],e.racc_t=w,e.racc_val=w,e.racc_read_next=!0,e.racc_user_yyerror=!1,e.racc_error_status=0})),$(k,"$do_parse",(function(){return this.$__send__(E("Racc_Main_Parsing_Routine"),this.$_racc_setup(),!1)})),$(k,"$next_token",(function(){return this.$raise(E("NotImplementedError"),this.$class()+"#next_token is not defined")})),$(k,"$_racc_do_parse_rb",(function(e,t){var n,i=this,a=w,s=w,o=w,$=w,f=w,h=w,m=w,g=w;return n=u(e),a=null==n[0]?w:n[0],s=null==n[1]?w:n[1],o=null==n[2]?w:n[2],$=null==n[3]?w:n[3],null==n[4]?w:n[4],null==n[5]?w:n[5],null==n[6]?w:n[6],null==n[7]?w:n[7],null==n[8]?w:n[8],null==n[9]?w:n[9],f=null==n[10]?w:n[10],null==n[11]?w:n[11],null==n[12]?w:n[12],null==n[13]?w:n[13],i.$_racc_init_sysvars(),h=m=g=w,l(i,"catch",["racc_end_parse"],(function t(){var n,i,l=null==t.$$s?this:t.$$s,v=w;for(null==l.racc_state&&(l.racc_state=w),null==l.racc_read_next&&(l.racc_read_next=w),null==l.racc_t&&(l.racc_t=w),null==l.yydebug&&(l.yydebug=w),null==l.racc_val&&(l.racc_val=w);r(!0);)for(r(g=$["$[]"](l.racc_state["$[]"](-1)))?(r(l.racc_read_next)&&c(l.racc_t,0)&&(i=l.$next_token(),n=u(i),h=null==n[0]?w:n[0],l.racc_val=null==n[1]?w:n[1],r(h)?l.racc_t=r(v=f["$[]"](h))?v:1:l.racc_t=0,r(l.yydebug)&&l.$racc_read_token(l.racc_t,h,l.racc_val),l.racc_read_next=!1),g=_(g,l.racc_t),r(p(g,0))&&r(m=a["$[]"](g))&&d(s["$[]"](g),l.racc_state["$[]"](-1))||(m=o["$[]"](l.racc_state["$[]"](-1)))):m=o["$[]"](l.racc_state["$[]"](-1));r(m=l.$_racc_evalact(m,e)););}),{$$s:i})})),$(k,"$yyparse",(function(e,t){return this.$__send__(E("Racc_YY_Parse_Method"),e,t,this.$_racc_setup(),!0)})),$(k,"$_racc_yyparse_rb",(function(e,t,n,i){var a,s=this,o=w,$=w,c=w,f=w,h=w,m=w,g=w;return a=u(n),o=null==a[0]?w:a[0],$=null==a[1]?w:a[1],c=null==a[2]?w:a[2],f=null==a[3]?w:a[3],null==a[4]?w:a[4],null==a[5]?w:a[5],null==a[6]?w:a[6],null==a[7]?w:a[7],null==a[8]?w:a[8],null==a[9]?w:a[9],h=null==a[10]?w:a[10],null==a[11]?w:a[11],null==a[12]?w:a[12],null==a[13]?w:a[13],s.$_racc_init_sysvars(),m=w,g=w,l(s,"catch",["racc_end_parse"],(function i(){var a=null==i.$$s?this:i.$$s;for(null==a.racc_state&&(a.racc_state=w);!r(g=f["$[]"](a.racc_state["$[]"](-1)));)for(;r(m=a.$_racc_evalact(c["$[]"](a.racc_state["$[]"](-1)),n)););return l(e,"__send__",[t],(function e(t,i){var a=null==e.$$s?this:e.$$s,s=w,u=w;for(null==a.racc_t&&(a.racc_t=w),null==a.racc_state&&(a.racc_state=w),null==a.racc_read_next&&(a.racc_read_next=w),null==t&&(t=w),null==i&&(i=w),r(t)?a.racc_t=r(s=h["$[]"](t))?s:1:a.racc_t=0,a.racc_val=i,a.racc_read_next=!1,g=_(g,a.racc_t),r(p(g,0))&&r(m=o["$[]"](g))&&d($["$[]"](g),a.racc_state["$[]"](-1))||(m=c["$[]"](a.racc_state["$[]"](-1)));r(m=a.$_racc_evalact(m,n)););for(;r(r(s=r(u=(g=f["$[]"](a.racc_state["$[]"](-1)))["$!"]())?u:a.racc_read_next["$!"]())?s:a.racc_t["$=="](0));)for(r(g)&&r(g=_(g,a.racc_t))&&r(p(g,0))&&r(m=o["$[]"](g))&&d($["$[]"](g),a.racc_state["$[]"](-1))||(m=c["$[]"](a.racc_state["$[]"](-1)));r(m=a.$_racc_evalact(m,n)););}),{$$s:a})}),{$$s:s})})),$(k,"$_racc_evalact",(function(e,t){var n,i,a=this,s=w,$=w,c=w,g=w,v=w,b=w;if(s=null==(n=u(t))[0]?w:n[0],$=null==n[1]?w:n[1],null==n[2]?w:n[2],c=null==n[3]?w:n[3],null==n[4]?w:n[4],null==n[5]?w:n[5],null==n[6]?w:n[6],null==n[7]?w:n[7],null==n[8]?w:n[8],null==n[9]?w:n[9],null==n[10]?w:n[10],i=null==n[11]?w:n[11],g=null==n[12]?w:n[12],null==n[13]?w:n[13],null==n[14]?w:n[14],r(f(e,0))&&r(o(e,i)))r(f(a.racc_error_status,0))&&(d(a.racc_t,1)||(a.racc_error_status=h(a.racc_error_status,1))),a.racc_vstack.$push(a.racc_val),a.racc_state.$push(e),a.racc_read_next=!0,r(a.yydebug)&&(a.racc_tstack.$push(a.racc_t),a.$racc_shift(a.racc_t,a.racc_tstack,a.racc_vstack));else if(r(o(e,0))&&r(f(e,g["$-@"]()))){if(v=l(a,"catch",["racc_jump"],(function n(){var r=null==n.$$s?this:n.$$s;return null==r.racc_state&&(r.racc_state=w),r.racc_state.$push(r.$_racc_do_reduce(t,e)),!1}),{$$s:a}),r(v))switch(v.valueOf()){case 1:return a.racc_user_yyerror=!0,g["$-@"]();case 2:return i;default:a.$raise("[Racc Bug] unknown jump code")}}else if(d(e,i))r(a.yydebug)&&a.$racc_accept(),a.$throw("racc_end_parse",a.racc_vstack["$[]"](0));else{if(d(e,g["$-@"]())){switch(a.racc_error_status.valueOf()){case 0:r(t["$[]"](21))||a.$on_error(a.racc_t,a.racc_val,a.racc_vstack);break;case 3:d(a.racc_t,0)&&a.$throw("racc_end_parse",w),a.racc_read_next=!0}for(a.racc_user_yyerror=!1,a.racc_error_status=3;r(!0)&&!(r(b=c["$[]"](a.racc_state["$[]"](-1)))&&(b=_(b,1),r(p(b,0))&&r(e=s["$[]"](b))&&d($["$[]"](b),a.racc_state["$[]"](-1))));)r(m(a.racc_state.$size(),1))&&a.$throw("racc_end_parse",w),a.racc_state.$pop(),a.racc_vstack.$pop(),r(a.yydebug)&&(a.racc_tstack.$pop(),a.$racc_e_pop(a.racc_state,a.racc_tstack,a.racc_vstack));return e}a.$raise("[Racc Bug] unknown action "+e.$inspect())}return r(a.yydebug)&&a.$racc_next_state(a.racc_state["$[]"](-1),a.racc_state),w})),$(k,"$_racc_do_reduce",(function(e,t){var n,i,a,s,o,$,l,c=this,f=w,m=w,v=w,b=w,y=w,x=w,k=w,G=w,E=w,S=w,O=w,M=w,A=w;return null==(n=u(e))[0]?w:n[0],null==n[1]?w:n[1],null==n[2]?w:n[2],null==n[3]?w:n[3],f=null==n[4]?w:n[4],m=null==n[5]?w:n[5],v=null==n[6]?w:n[6],b=null==n[7]?w:n[7],i=null==n[8]?w:n[8],y=null==n[9]?w:n[9],null==n[10]?w:n[10],null==n[11]?w:n[11],null==n[12]?w:n[12],a=null==n[13]?w:n[13],x=c.racc_state,k=c.racc_vstack,G=c.racc_tstack,E=g(t,-3),S=y["$[]"](E),s=y["$[]"](_(E,1)),o=y["$[]"](_(E,2)),$=[],r(c.yydebug)&&(O=G["$[]"](S["$-@"](),S)),M=k["$[]"](S["$-@"](),S),r(c.yydebug)&&G["$[]="](S["$-@"](),S,$),k["$[]="](S["$-@"](),S,$),x["$[]="](S["$-@"](),S,$),r(a)?k.$push(c.$__send__(o,M,k,M["$[]"](0))):k.$push(c.$__send__(o,M,k)),G.$push(s),r(c.yydebug)&&c.$racc_reduce(O,s,G,k),l=h(s,i),r(E=b["$[]"](l))&&(E=_(E,x["$[]"](-1)),r(p(E,0))&&r(A=f["$[]"](E))&&d(m["$[]"](E),l))?A:v["$[]"](l)})),$(k,"$on_error",(function(e,t,n){var i,a=this;return a.$raise(E("ParseError"),a.$sprintf("\nparse error on value %s (%s)",t.$inspect(),r(i=a.$token_to_str(e))?i:"?"))})),$(k,"$yyerror",(function(){return this.$throw("racc_jump",1)})),$(k,"$yyaccept",(function(){return this.$throw("racc_jump",2)})),$(k,"$yyerrok",v("racc_error_status",0)),$(k,"$racc_read_token",(function(e,t,n){var r=this;return r.racc_debug_out.$print("read "),r.racc_debug_out.$print(t.$inspect(),"(",r.$racc_token2str(e),") "),r.racc_debug_out.$puts(n.$inspect()),r.racc_debug_out.$puts()})),$(k,"$racc_shift",(function(e,t,n){var r=this;return r.racc_debug_out.$puts("shift "+r.$racc_token2str(e)),r.$racc_print_stacks(t,n),r.racc_debug_out.$puts()})),$(k,"$racc_reduce",(function(e,t,n,i){var a=this,s=w;return(s=a.racc_debug_out).$print("reduce "),r(e["$empty?"]())?s.$print(" <none>"):l(e,"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=w),s.$print(" ",n.$racc_token2str(t))}),{$$s:a}),s.$puts(" --\x3e "+a.$racc_token2str(t)),a.$racc_print_stacks(n,i),a.racc_debug_out.$puts()})),$(k,"$racc_accept",(function(){return this.racc_debug_out.$puts("accept"),this.racc_debug_out.$puts()})),$(k,"$racc_e_pop",(function(e,t,n){var r=this;return r.racc_debug_out.$puts("error recovering mode: pop token"),r.$racc_print_states(e),r.$racc_print_stacks(t,n),r.racc_debug_out.$puts()})),$(k,"$racc_next_state",(function(e,t){var n=this;return n.racc_debug_out.$puts("goto "+e),n.$racc_print_states(t),n.racc_debug_out.$puts()})),$(k,"$racc_print_stacks",(function(e,t){var n=w;return(n=this.racc_debug_out).$print(" ["),l(e,"each_index",[],(function r(i){var a=null==r.$$s?this:r.$$s;return null==i&&(i=w),n.$print(" (",a.$racc_token2str(e["$[]"](i))," ",t["$[]"](i).$inspect(),")")}),{$$s:this}),n.$puts(" ]")})),$(k,"$racc_print_states",(function(e){var t=w;return(t=this.racc_debug_out).$print(" ["),l(e,"each",[],(function(e){return null==e&&(e=w),t.$print(" ",e)})),t.$puts(" ]")})),$(k,"$racc_token2str",(function(e){var t;return r(t=x(this.$class(),"Racc_token_to_s_table")["$[]"](e))?t:this.$raise("[Racc Bug] can't convert token "+e+" to string")})),$(k,"$token_to_str",(function(e){return x(this.$class(),"Racc_token_to_s_table")["$[]"](e)}))}(k[0],0,k)}(b[0],b)},Opal.modules["parser/version"]=function(e){var t=e.module,n=e.const_set,r=[];e.nil;return function(e,r){var i=[t(e,"Parser")].concat(r);return n(i[0],"VERSION","3.3.11.1")}(r[0],r)},Opal.modules["racc/parser"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.const_set,a=e.defs,s=e.gvars,o=e.rb_lt,$=e.def,u=e.to_ary,l=e.send,c=e.neqeq,_=e.rb_plus,d=e.eqeq,p=e.rb_ge,f=e.rb_gt,h=e.rb_minus,m=e.rb_le,g=e.rb_times,v=e.assign_ivar_val,b=[],y=e.$r(b),w=e.nil,x=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(r,i){var a=[t(r,"Racc")].concat(i),s=e.$r(a);n(a[0],s("StandardError"),"ParseError")}(b[0],b),r(x("::","ParseError","skip_raise")?"constant":w)||i(b[0],"ParseError",x(y("Racc"),"ParseError")),function(b,y){var k=[t(b,"Racc")].concat(y),G=e.$r(k);return r(G("Racc_No_Extensions","skip_raise")?"constant":w)||i(k[0],"Racc_No_Extensions",!1),function(t,b,y){var k=n(t,null,"Parser"),G=[k].concat(y),E=e.$r(G),S=k.$$prototype;return S.yydebug=S.racc_debug_out=S.racc_error_status=S.racc_t=S.racc_vstack=S.racc_val=S.racc_state=S.racc_tstack=w,i(G[0],"Racc_Runtime_Version","1.4.6"),i(G[0],"Racc_Runtime_Revision",["originalRevision:","1.8"]["$[]"](1)),i(G[0],"Racc_Runtime_Core_Version_R","1.4.6"),i(G[0],"Racc_Runtime_Core_Revision_R",["originalRevision:","1.8"]["$[]"](1)),i(G[0],"Racc_Main_Parsing_Routine","_racc_do_parse_rb"),i(G[0],"Racc_YY_Parse_Method","_racc_yyparse_rb"),i(G[0],"Racc_Runtime_Core_Version",E("Racc_Runtime_Core_Version_R")),i(G[0],"Racc_Runtime_Core_Revision",E("Racc_Runtime_Core_Revision_R")),i(G[0],"Racc_Runtime_Type","ruby"),a(E("Parser"),"$racc_runtime_type",(function(){return E("Racc_Runtime_Type")})),$(k,"$_racc_setup",(function(){var e,t,n=this,i=w,a=w;return null==s.stderr&&(s.stderr=w),r(x(n.$class(),"Racc_debug_parser"))||(n.yydebug=!1),r(null!=(e=n.yydebug)&&e!==w?"instance-variable":w)||(n.yydebug=!1),r(n.yydebug)&&(r(null!=(t=n.racc_debug_out)&&t!==w?"instance-variable":w)||(n.racc_debug_out=s.stderr),n.racc_debug_out=r(i=n.racc_debug_out)?i:s.stderr),a=x(n.$class(),"Racc_arg"),r(o(a.$size(),14))&&a["$[]="](13,!0),a})),$(k,"$_racc_init_sysvars",(function(){var e=this;return e.racc_state=[0],e.racc_tstack=[],e.racc_vstack=[],e.racc_t=w,e.racc_val=w,e.racc_read_next=!0,e.racc_user_yyerror=!1,e.racc_error_status=0})),$(k,"$do_parse",(function(){return this.$__send__(E("Racc_Main_Parsing_Routine"),this.$_racc_setup(),!1)})),$(k,"$next_token",(function(){return this.$raise(E("NotImplementedError"),this.$class()+"#next_token is not defined")})),$(k,"$_racc_do_parse_rb",(function(e,t){var n,i=this,a=w,s=w,o=w,$=w,f=w,h=w,m=w,g=w;return n=u(e),a=null==n[0]?w:n[0],s=null==n[1]?w:n[1],o=null==n[2]?w:n[2],$=null==n[3]?w:n[3],null==n[4]?w:n[4],null==n[5]?w:n[5],null==n[6]?w:n[6],null==n[7]?w:n[7],null==n[8]?w:n[8],null==n[9]?w:n[9],f=null==n[10]?w:n[10],null==n[11]?w:n[11],null==n[12]?w:n[12],null==n[13]?w:n[13],i.$_racc_init_sysvars(),h=m=g=w,l(i,"catch",["racc_end_parse"],(function t(){var n,i,l=null==t.$$s?this:t.$$s,v=w;for(null==l.racc_state&&(l.racc_state=w),null==l.racc_read_next&&(l.racc_read_next=w),null==l.racc_t&&(l.racc_t=w),null==l.yydebug&&(l.yydebug=w),null==l.racc_val&&(l.racc_val=w);r(!0);)for(r(g=$["$[]"](l.racc_state["$[]"](-1)))?(r(l.racc_read_next)&&c(l.racc_t,0)&&(i=l.$next_token(),n=u(i),h=null==n[0]?w:n[0],l.racc_val=null==n[1]?w:n[1],r(h)?l.racc_t=r(v=f["$[]"](h))?v:1:l.racc_t=0,r(l.yydebug)&&l.$racc_read_token(l.racc_t,h,l.racc_val),l.racc_read_next=!1),g=_(g,l.racc_t),r(p(g,0))&&r(m=a["$[]"](g))&&d(s["$[]"](g),l.racc_state["$[]"](-1))||(m=o["$[]"](l.racc_state["$[]"](-1)))):m=o["$[]"](l.racc_state["$[]"](-1));r(m=l.$_racc_evalact(m,e)););}),{$$s:i})})),$(k,"$yyparse",(function(e,t){return this.$__send__(E("Racc_YY_Parse_Method"),e,t,this.$_racc_setup(),!0)})),$(k,"$_racc_yyparse_rb",(function(e,t,n,i){var a,s=this,o=w,$=w,c=w,f=w,h=w,m=w,g=w;return a=u(n),o=null==a[0]?w:a[0],$=null==a[1]?w:a[1],c=null==a[2]?w:a[2],f=null==a[3]?w:a[3],null==a[4]?w:a[4],null==a[5]?w:a[5],null==a[6]?w:a[6],null==a[7]?w:a[7],null==a[8]?w:a[8],null==a[9]?w:a[9],h=null==a[10]?w:a[10],null==a[11]?w:a[11],null==a[12]?w:a[12],null==a[13]?w:a[13],s.$_racc_init_sysvars(),m=w,g=w,l(s,"catch",["racc_end_parse"],(function i(){var a=null==i.$$s?this:i.$$s;for(null==a.racc_state&&(a.racc_state=w);!r(g=f["$[]"](a.racc_state["$[]"](-1)));)for(;r(m=a.$_racc_evalact(c["$[]"](a.racc_state["$[]"](-1)),n)););return l(e,"__send__",[t],(function e(t,i){var a=null==e.$$s?this:e.$$s,s=w,u=w;for(null==a.racc_t&&(a.racc_t=w),null==a.racc_state&&(a.racc_state=w),null==a.racc_read_next&&(a.racc_read_next=w),null==t&&(t=w),null==i&&(i=w),r(t)?a.racc_t=r(s=h["$[]"](t))?s:1:a.racc_t=0,a.racc_val=i,a.racc_read_next=!1,g=_(g,a.racc_t),r(p(g,0))&&r(m=o["$[]"](g))&&d($["$[]"](g),a.racc_state["$[]"](-1))||(m=c["$[]"](a.racc_state["$[]"](-1)));r(m=a.$_racc_evalact(m,n)););for(;r(r(s=r(u=(g=f["$[]"](a.racc_state["$[]"](-1)))["$!"]())?u:a.racc_read_next["$!"]())?s:a.racc_t["$=="](0));)for(r(g)&&r(g=_(g,a.racc_t))&&r(p(g,0))&&r(m=o["$[]"](g))&&d($["$[]"](g),a.racc_state["$[]"](-1))||(m=c["$[]"](a.racc_state["$[]"](-1)));r(m=a.$_racc_evalact(m,n)););}),{$$s:a})}),{$$s:s})})),$(k,"$_racc_evalact",(function(e,t){var n,i,a=this,s=w,$=w,c=w,g=w,v=w,b=w;if(s=null==(n=u(t))[0]?w:n[0],$=null==n[1]?w:n[1],null==n[2]?w:n[2],c=null==n[3]?w:n[3],null==n[4]?w:n[4],null==n[5]?w:n[5],null==n[6]?w:n[6],null==n[7]?w:n[7],null==n[8]?w:n[8],null==n[9]?w:n[9],null==n[10]?w:n[10],i=null==n[11]?w:n[11],g=null==n[12]?w:n[12],null==n[13]?w:n[13],null==n[14]?w:n[14],r(f(e,0))&&r(o(e,i)))r(f(a.racc_error_status,0))&&(d(a.racc_t,1)||(a.racc_error_status=h(a.racc_error_status,1))),a.racc_vstack.$push(a.racc_val),a.racc_state.$push(e),a.racc_read_next=!0,r(a.yydebug)&&(a.racc_tstack.$push(a.racc_t),a.$racc_shift(a.racc_t,a.racc_tstack,a.racc_vstack));else if(r(o(e,0))&&r(f(e,g["$-@"]()))){if(v=l(a,"catch",["racc_jump"],(function n(){var r=null==n.$$s?this:n.$$s;return null==r.racc_state&&(r.racc_state=w),r.racc_state.$push(r.$_racc_do_reduce(t,e)),!1}),{$$s:a}),r(v))switch(v.valueOf()){case 1:return a.racc_user_yyerror=!0,g["$-@"]();case 2:return i;default:a.$raise("[Racc Bug] unknown jump code")}}else if(d(e,i))r(a.yydebug)&&a.$racc_accept(),a.$throw("racc_end_parse",a.racc_vstack["$[]"](0));else{if(d(e,g["$-@"]())){switch(a.racc_error_status.valueOf()){case 0:r(t["$[]"](21))||a.$on_error(a.racc_t,a.racc_val,a.racc_vstack);break;case 3:d(a.racc_t,0)&&a.$throw("racc_end_parse",w),a.racc_read_next=!0}for(a.racc_user_yyerror=!1,a.racc_error_status=3;r(!0)&&!(r(b=c["$[]"](a.racc_state["$[]"](-1)))&&(b=_(b,1),r(p(b,0))&&r(e=s["$[]"](b))&&d($["$[]"](b),a.racc_state["$[]"](-1))));)r(m(a.racc_state.$size(),1))&&a.$throw("racc_end_parse",w),a.racc_state.$pop(),a.racc_vstack.$pop(),r(a.yydebug)&&(a.racc_tstack.$pop(),a.$racc_e_pop(a.racc_state,a.racc_tstack,a.racc_vstack));return e}a.$raise("[Racc Bug] unknown action "+e.$inspect())}return r(a.yydebug)&&a.$racc_next_state(a.racc_state["$[]"](-1),a.racc_state),w})),$(k,"$_racc_do_reduce",(function(e,t){var n,i,a,s,o,$,l,c=this,f=w,m=w,v=w,b=w,y=w,x=w,k=w,G=w,E=w,S=w,O=w,M=w,A=w;return null==(n=u(e))[0]?w:n[0],null==n[1]?w:n[1],null==n[2]?w:n[2],null==n[3]?w:n[3],f=null==n[4]?w:n[4],m=null==n[5]?w:n[5],v=null==n[6]?w:n[6],b=null==n[7]?w:n[7],i=null==n[8]?w:n[8],y=null==n[9]?w:n[9],null==n[10]?w:n[10],null==n[11]?w:n[11],null==n[12]?w:n[12],a=null==n[13]?w:n[13],x=c.racc_state,k=c.racc_vstack,G=c.racc_tstack,E=g(t,-3),S=y["$[]"](E),s=y["$[]"](_(E,1)),o=y["$[]"](_(E,2)),$=[],r(c.yydebug)&&(O=G["$[]"](S["$-@"](),S)),M=k["$[]"](S["$-@"](),S),r(c.yydebug)&&G["$[]="](S["$-@"](),S,$),k["$[]="](S["$-@"](),S,$),x["$[]="](S["$-@"](),S,$),r(a)?k.$push(c.$__send__(o,M,k,M["$[]"](0))):k.$push(c.$__send__(o,M,k)),G.$push(s),r(c.yydebug)&&c.$racc_reduce(O,s,G,k),l=h(s,i),r(E=b["$[]"](l))&&(E=_(E,x["$[]"](-1)),r(p(E,0))&&r(A=f["$[]"](E))&&d(m["$[]"](E),l))?A:v["$[]"](l)})),$(k,"$on_error",(function(e,t,n){var i,a=this;return a.$raise(E("ParseError"),a.$sprintf("\nparse error on value %s (%s)",t.$inspect(),r(i=a.$token_to_str(e))?i:"?"))})),$(k,"$yyerror",(function(){return this.$throw("racc_jump",1)})),$(k,"$yyaccept",(function(){return this.$throw("racc_jump",2)})),$(k,"$yyerrok",v("racc_error_status",0)),$(k,"$racc_read_token",(function(e,t,n){var r=this;return r.racc_debug_out.$print("read "),r.racc_debug_out.$print(t.$inspect(),"(",r.$racc_token2str(e),") "),r.racc_debug_out.$puts(n.$inspect()),r.racc_debug_out.$puts()})),$(k,"$racc_shift",(function(e,t,n){var r=this;return r.racc_debug_out.$puts("shift "+r.$racc_token2str(e)),r.$racc_print_stacks(t,n),r.racc_debug_out.$puts()})),$(k,"$racc_reduce",(function(e,t,n,i){var a=this,s=w;return(s=a.racc_debug_out).$print("reduce "),r(e["$empty?"]())?s.$print(" <none>"):l(e,"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=w),s.$print(" ",n.$racc_token2str(t))}),{$$s:a}),s.$puts(" --\x3e "+a.$racc_token2str(t)),a.$racc_print_stacks(n,i),a.racc_debug_out.$puts()})),$(k,"$racc_accept",(function(){return this.racc_debug_out.$puts("accept"),this.racc_debug_out.$puts()})),$(k,"$racc_e_pop",(function(e,t,n){var r=this;return r.racc_debug_out.$puts("error recovering mode: pop token"),r.$racc_print_states(e),r.$racc_print_stacks(t,n),r.racc_debug_out.$puts()})),$(k,"$racc_next_state",(function(e,t){var n=this;return n.racc_debug_out.$puts("goto "+e),n.$racc_print_states(t),n.racc_debug_out.$puts()})),$(k,"$racc_print_stacks",(function(e,t){var n=w;return(n=this.racc_debug_out).$print(" ["),l(e,"each_index",[],(function r(i){var a=null==r.$$s?this:r.$$s;return null==i&&(i=w),n.$print(" (",a.$racc_token2str(e["$[]"](i))," ",t["$[]"](i).$inspect(),")")}),{$$s:this}),n.$puts(" ]")})),$(k,"$racc_print_states",(function(e){var t=w;return(t=this.racc_debug_out).$print(" ["),l(e,"each",[],(function(e){return null==e&&(e=w),t.$print(" ",e)})),t.$puts(" ]")})),$(k,"$racc_token2str",(function(e){var t;return r(t=x(this.$class(),"Racc_token_to_s_table")["$[]"](e))?t:this.$raise("[Racc Bug] can't convert token "+e+" to string")})),$(k,"$token_to_str",(function(e){return x(this.$class(),"Racc_token_to_s_table")["$[]"](e)}))}(k[0],0,k)}(b[0],b)},Opal.modules["parser/messages"]=function(e){var t=e.module,n=e.const_set,r=e.truthy,i=e.eqeqeq,a=e.defs,s=[];e.nil;return e.add_stubs("freeze,[],empty?,===,format"),function(s,o){var $=[t(s,"Parser")].concat(o);return n($[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(n,s){var o=t(n,"Messages"),$=[o].concat(s),u=e.$r($);return a(o,"$compile",(function(e,t){var n;return n=u("MESSAGES")["$[]"](e),i(u("Hash"),t)&&r(t["$empty?"]())?n:this.$format(n,t)}))}($[0],$)}(s[0],s)},Opal.modules["parser/deprecation"]=function(e){var t,n=e.module,r=e.truthy,i=e.def,a=[],s=e.nil,o=e.$$$;return e.add_stubs("attr_writer,warn"),t=a,function(e){var t=n(e,"Deprecation");return t.$attr_writer("warned_of_deprecation"),i(t,"$warn_of_deprecation",(function(){var e,t=this,n=s;return null==t.warned_of_deprecation&&(t.warned_of_deprecation=s),t.warned_of_deprecation=r(e=t.warned_of_deprecation)?e:!r(n=t.$warn(o(t,"DEPRECATION_WARNING")))||n}))}([n(a[0],"Parser")].concat(t)[0])},Opal.modules["parser/ast/processor"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.alias,a=e.to_a,s=e.not,o=e.truthy,$=e.slice,u=[],l=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(u,_){var d=[t(u,"Parser")].concat(_);return function(u,_){var d=[t(u,"AST")].concat(_);return function(t,u,_){var d=n(t,null,"Processor"),p=[d].concat(_),f=e.$r(p);return d.$include(c(c(c("AST"),"Processor"),"Mixin")),r(d,"$process_regular_node",(function(e){return e.$updated(l,this.$process_all(e))})),i(d,"on_dstr","process_regular_node"),i(d,"on_dsym","process_regular_node"),i(d,"on_regexp","process_regular_node"),i(d,"on_xstr","process_regular_node"),i(d,"on_splat","process_regular_node"),i(d,"on_kwsplat","process_regular_node"),i(d,"on_array","process_regular_node"),i(d,"on_pair","process_regular_node"),i(d,"on_hash","process_regular_node"),i(d,"on_kwargs","process_regular_node"),i(d,"on_irange","process_regular_node"),i(d,"on_erange","process_regular_node"),r(d,"$on_var",(function(e){return e})),r(d,"$process_variable_node",(function(e){return this.$on_var(e)})),i(d,"on_lvar","process_variable_node"),i(d,"on_ivar","process_variable_node"),i(d,"on_gvar","process_variable_node"),i(d,"on_cvar","process_variable_node"),i(d,"on_back_ref","process_variable_node"),i(d,"on_nth_ref","process_variable_node"),r(d,"$on_vasgn",(function(e){var t,n,r=l;return n=null==(t=[].concat(a(e)))[0]?l:t[0],r=null==t[1]?l:t[1],s(r["$nil?"]())?e.$updated(l,[n,this.$process(r)]):e})),r(d,"$process_var_asgn_node",(function(e){return this.$on_vasgn(e)})),i(d,"on_lvasgn","process_var_asgn_node"),i(d,"on_ivasgn","process_var_asgn_node"),i(d,"on_gvasgn","process_var_asgn_node"),i(d,"on_cvasgn","process_var_asgn_node"),i(d,"on_and_asgn","process_regular_node"),i(d,"on_or_asgn","process_regular_node"),r(d,"$on_op_asgn",(function(e){var t,n,r,i;return n=null==(t=[].concat(a(e)))[0]?l:t[0],r=null==t[1]?l:t[1],i=null==t[2]?l:t[2],e.$updated(l,[this.$process(n),r,this.$process(i)])})),i(d,"on_mlhs","process_regular_node"),i(d,"on_masgn","process_regular_node"),r(d,"$on_const",(function(e){var t,n,r;return n=null==(t=[].concat(a(e)))[0]?l:t[0],r=null==t[1]?l:t[1],e.$updated(l,[this.$process(n),r])})),r(d,"$on_casgn",(function(e){var t,n,r,i=this,o=l;return n=null==(t=[].concat(a(e)))[0]?l:t[0],r=null==t[1]?l:t[1],o=null==t[2]?l:t[2],s(o["$nil?"]())?e.$updated(l,[i.$process(n),r,i.$process(o)]):e.$updated(l,[i.$process(n),r])})),i(d,"on_args","process_regular_node"),r(d,"$on_argument",(function(e){var t,n,r=l;return n=null==(t=[].concat(a(e)))[0]?l:t[0],r=null==t[1]?l:t[1],s(r["$nil?"]())?e.$updated(l,[n,this.$process(r)]):e})),r(d,"$process_argument_node",(function(e){return this.$on_argument(e)})),i(d,"on_arg","process_argument_node"),i(d,"on_optarg","process_argument_node"),i(d,"on_restarg","process_argument_node"),i(d,"on_blockarg","process_argument_node"),i(d,"on_shadowarg","process_argument_node"),i(d,"on_kwarg","process_argument_node"),i(d,"on_kwoptarg","process_argument_node"),i(d,"on_kwrestarg","process_argument_node"),i(d,"on_forward_arg","process_argument_node"),r(d,"$on_procarg0",(function(e){return o(e.$children()["$[]"](0)["$is_a?"](f("Symbol")))?this.$on_argument(e):this.$process_regular_node(e)})),i(d,"on_arg_expr","process_regular_node"),i(d,"on_restarg_expr","process_regular_node"),i(d,"on_blockarg_expr","process_regular_node"),i(d,"on_block_pass","process_regular_node"),i(d,"on_forwarded_restarg","process_regular_node"),i(d,"on_forwarded_kwrestarg","process_regular_node"),i(d,"on_module","process_regular_node"),i(d,"on_class","process_regular_node"),i(d,"on_sclass","process_regular_node"),r(d,"$on_def",(function(e){var t,n,r,i;return n=null==(t=[].concat(a(e)))[0]?l:t[0],r=null==t[1]?l:t[1],i=null==t[2]?l:t[2],e.$updated(l,[n,this.$process(r),this.$process(i)])})),r(d,"$on_defs",(function(e){var t,n,r,i,s,o=this;return n=null==(t=[].concat(a(e)))[0]?l:t[0],r=null==t[1]?l:t[1],i=null==t[2]?l:t[2],s=null==t[3]?l:t[3],e.$updated(l,[o.$process(n),r,o.$process(i),o.$process(s)])})),i(d,"on_undef","process_regular_node"),i(d,"on_alias","process_regular_node"),r(d,"$on_send",(function(e){var t,n,r=l,i=l;return r=null==(t=[].concat(a(e)))[0]?l:t[0],i=null==t[1]?l:t[1],n=$(t,2),o(r)&&(r=this.$process(r)),e.$updated(l,[r,i].concat(a(this.$process_all(n))))})),i(d,"on_csend","on_send"),i(d,"on_index","process_regular_node"),i(d,"on_indexasgn","process_regular_node"),i(d,"on_block","process_regular_node"),i(d,"on_lambda","process_regular_node"),r(d,"$on_numblock",(function(e){var t,n,r,i;return n=null==(t=[].concat(a(e)))[0]?l:t[0],r=null==t[1]?l:t[1],i=null==t[2]?l:t[2],e.$updated(l,[this.$process(n),r,this.$process(i)])})),i(d,"on_while","process_regular_node"),i(d,"on_while_post","process_regular_node"),i(d,"on_until","process_regular_node"),i(d,"on_until_post","process_regular_node"),i(d,"on_for","process_regular_node"),i(d,"on_return","process_regular_node"),i(d,"on_break","process_regular_node"),i(d,"on_next","process_regular_node"),i(d,"on_redo","process_regular_node"),i(d,"on_retry","process_regular_node"),i(d,"on_super","process_regular_node"),i(d,"on_yield","process_regular_node"),i(d,"on_defined?","process_regular_node"),i(d,"on_not","process_regular_node"),i(d,"on_and","process_regular_node"),i(d,"on_or","process_regular_node"),i(d,"on_if","process_regular_node"),i(d,"on_when","process_regular_node"),i(d,"on_case","process_regular_node"),i(d,"on_iflipflop","process_regular_node"),i(d,"on_eflipflop","process_regular_node"),i(d,"on_match_current_line","process_regular_node"),i(d,"on_match_with_lvasgn","process_regular_node"),i(d,"on_resbody","process_regular_node"),i(d,"on_rescue","process_regular_node"),i(d,"on_ensure","process_regular_node"),i(d,"on_begin","process_regular_node"),i(d,"on_kwbegin","process_regular_node"),i(d,"on_preexe","process_regular_node"),i(d,"on_postexe","process_regular_node"),i(d,"on_case_match","process_regular_node"),i(d,"on_in_match","process_regular_node"),i(d,"on_match_pattern","process_regular_node"),i(d,"on_match_pattern_p","process_regular_node"),i(d,"on_in_pattern","process_regular_node"),i(d,"on_if_guard","process_regular_node"),i(d,"on_unless_guard","process_regular_node"),i(d,"on_match_var","process_variable_node"),i(d,"on_match_rest","process_regular_node"),i(d,"on_pin","process_regular_node"),i(d,"on_match_alt","process_regular_node"),i(d,"on_match_as","process_regular_node"),i(d,"on_array_pattern","process_regular_node"),i(d,"on_array_pattern_with_tail","process_regular_node"),i(d,"on_hash_pattern","process_regular_node"),i(d,"on_const_pattern","process_regular_node"),i(d,"on_find_pattern","process_regular_node"),r(d,"$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)})),r(d,"$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)})),r(d,"$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)})),r(d,"$on_empty_else",(function(e){return e}))}(d[0],0,d)}(d[0],d)}(u[0],u)},Opal.modules["parser/meta"]=function(e){var t=e.module,n=e.const_set,r=e.rb_plus,i=[];e.nil;return e.add_stubs("freeze,private_constant,to_set,+"),function(i,a){var s=[t(i,"Parser")].concat(a);return function(i,a){var s=t(i,"Meta"),o=[s].concat(a),$=e.$r(o);return n(o[0],"PRISM_TRANSLATION_PARSER_NODE_TYPES",["itarg","itblock","blocknilarg"].$freeze()),s.$private_constant("PRISM_TRANSLATION_PARSER_NODE_TYPES"),n(o[0],"NODE_TYPES",r(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"),$("PRISM_TRANSLATION_PARSER_NODE_TYPES")).$to_set().$freeze())}(s[0],s)}(i[0],i)},Opal.modules["parser/source/buffer"]=function(e){var t=e.module,n=e.klass,r=e.const_set,i=e.regexp,a=e.enc,s=e.truthy,o=e.gvars,$=e.eqeq,u=e.neqeq,l=e.defs,c=e.slice,_=e.extract_kwargs,d=e.ensure_kwargs,p=e.hash_get,f=e.send,h=e.def,m=e.not,g=e.rb_plus,v=e.rb_minus,b=e.rb_ge,y=e.rb_lt,w=e.send2,x=e.find_super,k=[],G=e.nil,E=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(k,S){var O=[t(k,"Parser")].concat(S);return function(k,S){var O=[t(k,"Source")].concat(S);return function(t,k,S){var O=n(t,null,"Buffer"),M=[O].concat(S),A=e.$r(M),N=O.$$prototype;return N.name=N.source=N.slice_source=N.first_line=N.lines=N.source_range=N.line_begins=N.line_index_for_position=N.line_range=G,O.$attr_reader("name","first_line"),r(M[0],"ENCODING_RE",i([a("[\\s#](en)?coding\\s*[:=]\\s*","ASCII-8BIT"),a("(","ASCII-8BIT"),a("","ASCII-8BIT"),a("(utf8-mac)","ASCII-8BIT"),a("|","ASCII-8BIT"),a("","ASCII-8BIT"),a("([A-Za-z0-9_-]+?)(-unix|-dos|-mac)","ASCII-8BIT"),a("|","ASCII-8BIT"),a("([A-Za-z0-9_-]+)","ASCII-8BIT"),a(")","ASCII-8BIT"),a("","ASCII-8BIT")])),l(O,"$recognize_encoding",(function(t){var n,r,i,l=G,c=G,_=G,d=G,p=G,f=G;if(s(t["$empty?"]()))return G;if(t["$=~"](/^(.*)\n?(.*\n)?/),i=(n=[(r=o["~"])===G?G:r["$[]"](1),(r=o["~"])===G?G:r["$[]"](2)])[1],s((l=n[0])["$start_with?"](a("","ASCII-8BIT").$freeze())))return E(A("Encoding"),"UTF_8");if(c=$(l["$[]"](0,2),a("#!","ASCII-8BIT").$freeze())?i:l,s(c["$nil?"]())||u(c["$[]"](0),a("#","ASCII-8BIT")))return G;if(!s(_=A("ENCODING_RE").$match(c)))return G;try{return A("Encoding").$find(s(d=s(p=_["$[]"](3))?p:_["$[]"](4))?d:_["$[]"](6))}catch(t){if(!e.rescue(t,[A("ArgumentError")]))throw t;f=t;try{return this.$raise(E(A("Parser"),"UnknownEncodingInMagicComment"),f.$message())}finally{e.pop_exception(t)}}})),l(O,"$reencode_string",(function(e){var t,n=G;return t=e.$encoding(),n=this.$recognize_encoding(e.$force_encoding(E(A("Encoding"),"BINARY"))),s(n["$nil?"]())?e.$force_encoding(t):$(n,E(A("Encoding"),"BINARY"))?e:e.$force_encoding(n).$encode(E(A("Encoding"),"UTF_8"))})),h(O,"$initialize",(function(e,t,n){var r,i,a,o,$,u=this;return r=c(arguments,1),i=_(r),i=d(i),r.length>0&&(a=r.shift()),null==a&&(a=1),null==(o=p(i,"source"))&&(o=G),u.name=e.$to_s(),u.source=G,u.first_line=a,u.lines=G,u.line_begins=G,u.slice_source=G,u.line_index_for_position=new Map,s(o)?(f(u,"source=",$=[o]),$[$.length-1]):G}),-2),h(O,"$read",(function(){var e=this;return f(A("File"),"open",[e.name,a("rb","ASCII-8BIT")],(function e(t){var n,r=null==e.$$s?this:e.$$s;return null==t&&(t=G),n=[t.$read()],f(r,"source=",n),n[n.length-1]}),{$$s:e}),e})),h(O,"$source",(function(){var e=this;return s(e.source["$nil?"]())&&e.$raise(A("RuntimeError"),a("Cannot extract source from uninitialized Source::Buffer","ASCII-8BIT")),e.source})),h(O,"$source=",(function(e){var t,n=this;return s(e["$frozen?"]())&&(e=e.$dup()),e=n.$class().$reencode_string(e),s(e["$valid_encoding?"]())||n.$raise(A("EncodingError"),a("invalid byte sequence in ","ASCII-8BIT")+e.$encoding().$name()),f(n,"raw_source=",t=[e]),t[t.length-1]})),h(O,"$raw_source=",(function(e){var t=this;return s(t.source)&&t.$raise(A("ArgumentError"),a("Source::Buffer is immutable","ASCII-8BIT")),t.source=e.$gsub(a("\r\n","ASCII-8BIT").$freeze(),a("\n","ASCII-8BIT").$freeze()).$freeze(),m(t.source["$ascii_only?"]())&&u(t.source.$encoding(),E(A("Encoding"),"UTF_32LE"))&&u(t.source.$encoding(),E(A("Encoding"),"BINARY"))?t.slice_source=t.source.$encode(E(A("Encoding"),"UTF_32LE")):G})),h(O,"$slice",(function(e,t){var n=this;return null==t&&(t=G),s(t["$nil?"]())&&(s(e["$is_a?"](E("Range")))?(t=e.$size(),e=e.$begin()):t=1),s(n.slice_source["$nil?"]())?n.source["$[]"](e,t):n.slice_source["$[]"](e,t).$encode(n.source.$encoding())}),-2),h(O,"$decompose_position",(function(e){var t,n,r=this;return t=r.$line_index_for_position(e),n=r.$line_begins()["$[]"](t),[g(r.first_line,t),v(e,n)]})),h(O,"$line_for_position",(function(e){return g(this.$line_index_for_position(e),this.first_line)})),h(O,"$column_for_position",(function(e){var t;return t=this.$line_index_for_position(e),v(e,this.$line_begins()["$[]"](t))})),h(O,"$source_lines",(function(){var e,t=this,n=G;return t.lines=s(e=t.lines)?e:(n=t.source.$lines().$to_a(),s(t.source["$end_with?"](a("\n","ASCII-8BIT").$freeze()))&&n["$<<"](a("","ASCII-8BIT").$dup()),f(n,"each",[],(function(e){return null==e&&(e=G),e["$chomp!"](a("\n","ASCII-8BIT").$freeze()),e.$freeze()})),n.$freeze())})),h(O,"$source_line",(function(e){return this.$source_lines().$fetch(v(e,this.first_line)).$dup()})),h(O,"$line_range",(function(e){var t,n=this;return t=v(e,n.first_line),s(y(t,0))||s(b(g(t,1),n.$line_begins().$size()))?n.$raise(A("IndexError"),a("Parser::Source::Buffer: range for line ","ASCII-8BIT")+""+e+a(" requested, valid line numbers are ","ASCII-8BIT")+n.first_line+a("..","ASCII-8BIT")+v(g(n.first_line,n.$line_begins().$size()),2)):A("Range").$new(n,n.$line_begins()["$[]"](t),v(n.$line_begins()["$[]"](g(t,1)),1))})),h(O,"$source_range",(function(){var e,t=this;return t.source_range=s(e=t.source_range)?e:A("Range").$new(t,0,t.$source().$size())})),h(O,"$last_line",(function(){return v(g(this.$line_begins().$size(),this.first_line),2)})),h(O,"$freeze",(function e(){var t=e.$$p||G,n=this;return e.$$p=null,n.$source_lines(),n.$line_begins(),n.$source_range(),w(n,x(n,"freeze",e,!1,!0),"freeze",[],t)})),h(O,"$inspect",(function(){return a("#<","ASCII-8BIT")+this.$class()+a(" ","ASCII-8BIT")+this.$name()+a(">","ASCII-8BIT")})),O.$private(),h(O,"$line_begins",(function(){var e,t=this,n=G,r=G;return t.line_begins=s(e=t.line_begins)?e:(n=[0],r=0,function(){for(;s(r=t.source.$index(a("\n","ASCII-8BIT").$freeze(),r));)r=g(r,1),n["$<<"](r)}(),n["$<<"](g(t.source.$size(),1)),n)})),h(O,"$line_index_for_position",(function(e){var t,n=this,r=G;return s(t=n.line_index_for_position["$[]"](e))?t:(r=v(n.$bsearch(n.$line_begins(),e),1),s(n.line_index_for_position["$frozen?"]())||n.line_index_for_position["$[]="](e,r),r)})),s(A("Array")["$method_defined?"]("bsearch_index"))?h(O,"$bsearch",(function(e,t){var n;return s(n=f(e,"bsearch_index",[],(function(e){return null==e&&(e=G),y(t,e)})))?n:v(e.$size(),1)})):h(O,"$bsearch",(function(t,n){var r=this,i=G;return r.line_range=s(i=r.line_range)?i:e.Range.$new(0,t.$size(),!0),s(i=f(r.line_range,"bsearch",[],(function(e){return null==e&&(e=G),y(n,t["$[]"](e))})))?i:v(t.$size(),1)}))}(O[0],0,O)}(O[0],O)}(k[0],k)},Opal.modules["parser/source/range"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.rb_lt,a=e.def,s=e.rb_minus,o=e.alias,$=e.neqeq,u=e.slice,l=e.to_ary,c=e.rb_plus,_=e.ensure_kwargs,d=e.hash_get,p=e.rb_ge,f=e.rb_times,h=e.eqeq,m=[],g=e.nil,v=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(m,b){var y=[t(m,"Parser")].concat(b);return function(m,b){var y=[t(m,"Source")].concat(b);return function(t,m,b){var y=n(t,null,"Range"),w=[y].concat(b),x=e.$r(w),k=y.$$prototype;return k.begin_pos=k.end_pos=k.source_buffer=g,y.$include(x("Comparable")),y.$attr_reader("source_buffer"),y.$attr_reader("begin_pos","end_pos"),a(y,"$initialize",(function(e,t,n){var a,s=this;return r(i(n,t))&&s.$raise(x("ArgumentError"),"Parser::Source::Range: end_pos must not be less than begin_pos"),r(e["$nil?"]())&&s.$raise(x("ArgumentError"),"Parser::Source::Range: source_buffer must not be nil"),s.source_buffer=e,a=[t,n],s.begin_pos=a[0],s.end_pos=a[1],s.$freeze()})),a(y,"$begin",(function(){return this.$with(new Map([["end_pos",this.begin_pos]]))})),a(y,"$end",(function(){return this.$with(new Map([["begin_pos",this.end_pos]]))})),a(y,"$size",(function(){return s(this.end_pos,this.begin_pos)})),o(y,"length","size"),a(y,"$line",(function(){return this.source_buffer.$line_for_position(this.begin_pos)})),y.$alias_method("first_line","line"),a(y,"$column",(function(){return this.source_buffer.$column_for_position(this.begin_pos)})),a(y,"$last_line",(function(){return this.source_buffer.$line_for_position(this.end_pos)})),a(y,"$last_column",(function(){return this.source_buffer.$column_for_position(this.end_pos)})),a(y,"$column_range",(function(){var t=this;return $(t.$line(),t.$last_line())&&t.$raise(x("RangeError"),t.$inspect()+" spans more than one line"),e.Range.$new(t.$column(),t.$last_column(),!0)})),a(y,"$source_line",(function(){return this.source_buffer.$source_line(this.$line())})),a(y,"$source",(function(){var e=this;return e.source_buffer.$slice(e.begin_pos,s(e.end_pos,e.begin_pos))})),a(y,"$is?",(function(e){return u(arguments)["$include?"](this.$source())}),-1),a(y,"$to_a",(function(){return e.Range.$new(this.begin_pos,this.end_pos,!0).$to_a()})),a(y,"$to_range",(function(){return e.Range.$new(this.$begin_pos(),this.$end_pos(),!0)})),a(y,"$to_s",(function(){var e,t,n,r=this,i=g;return t=r.source_buffer.$decompose_position(r.begin_pos),i=null==(e=l(t))[0]?g:e[0],n=null==e[1]?g:e[1],[r.source_buffer.$name(),i,c(n,1)].$join(":")})),a(y,"$with",(function(e){var t,n,r=this;return e=_(e),null==(t=d(e,"begin_pos"))&&(t=r.begin_pos),null==(n=d(e,"end_pos"))&&(n=r.end_pos),x("Range").$new(r.source_buffer,t,n)}),-1),a(y,"$adjust",(function(e){var t,n,r=this;return e=_(e),null==(t=d(e,"begin_pos"))&&(t=0),null==(n=d(e,"end_pos"))&&(n=0),x("Range").$new(r.source_buffer,c(r.begin_pos,t),c(r.end_pos,n))}),-1),a(y,"$resize",(function(e){return this.$with(new Map([["end_pos",c(this.begin_pos,e)]]))})),a(y,"$join",(function(e){var t=this;return x("Range").$new(t.source_buffer,[t.begin_pos,e.$begin_pos()].$min(),[t.end_pos,e.$end_pos()].$max())})),a(y,"$intersect",(function(e){var t=this;return r(t["$disjoint?"](e))?g:x("Range").$new(t.source_buffer,[t.begin_pos,e.$begin_pos()].$max(),[t.end_pos,e.$end_pos()].$min())})),a(y,"$disjoint?",(function(e){var t=this,n=g;return r(t["$empty?"]())&&r(e["$empty?"]())?t.begin_pos["$!="](e.$begin_pos()):r(n=p(t.begin_pos,e.$end_pos()))?n:p(e.$begin_pos(),t.end_pos)})),a(y,"$overlaps?",(function(e){return this["$disjoint?"](e)["$!"]()})),a(y,"$contains?",(function(e){return p(c(e.$begin_pos()["$<=>"](this.begin_pos),this.end_pos["$<=>"](e.$end_pos())),r(e["$empty?"]())?2:1)})),a(y,"$contained?",(function(e){return e["$contains?"](this)})),a(y,"$crossing?",(function(e){var t=this;return!!r(t["$overlaps?"](e))&&f(t.begin_pos["$<=>"](e.$begin_pos()),t.end_pos["$<=>"](e.$end_pos()))["$=="](1)})),a(y,"$empty?",(function(){return this.begin_pos["$=="](this.end_pos)})),a(y,"$<=>",(function(e){var t,n=this;return r(e["$is_a?"](v(v(v("Parser"),"Source"),"Range")))&&h(n.source_buffer,e.$source_buffer())?r(t=n.begin_pos["$<=>"](e.$begin_pos())["$nonzero?"]())?t:n.end_pos["$<=>"](e.$end_pos()):g})),y.$alias_method("eql?","=="),a(y,"$hash",(function(){var e=this;return[e.source_buffer,e.begin_pos,e.end_pos].$hash()})),a(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)}(m[0],m)},Opal.modules["parser/source/comment"]=function(e){var t=e.module,n=e.klass,r=e.defs,i=e.def,a=e.truthy,s=[],o=e.nil,$=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(s,u){var l=[t(s,"Parser")].concat(u);return function(s,u){var l=[t(s,"Source")].concat(u);return function(t,s,u){var l=n(t,null,"Comment"),c=[l].concat(u),_=e.$r(c);return l.$$prototype.location=o,l.$attr_reader("text"),l.$attr_reader("location"),l.$alias_method("loc","location"),r(l,"$associate",(function(e,t){return _("Associator").$new(e,t).$associate()})),r(l,"$associate_locations",(function(e,t){return _("Associator").$new(e,t).$associate_locations()})),r(l,"$associate_by_identity",(function(e,t){return _("Associator").$new(e,t).$associate_by_identity()})),i(l,"$initialize",(function(e){var t=this;return t.location=$($(_("Parser"),"Source"),"Map").$new(e),t.text=e.$source().$freeze(),t.$freeze()})),i(l,"$type",(function(){return a(this.$text()["$start_with?"]("#".$freeze()))?"inline":a(this.$text()["$start_with?"]("=begin".$freeze()))?"document":o})),i(l,"$inline?",(function(){return this.$type()["$=="]("inline")})),i(l,"$document?",(function(){return this.$type()["$=="]("document")})),i(l,"$==",(function(e){var t;return a(t=e["$is_a?"]($(_("Source"),"Comment")))?this.location["$=="](e.$location()):t})),i(l,"$inspect",(function(){return"#<Parser::Source::Comment "+this.location.$expression().$to_s()+" "+this.$text().$inspect()+">"}))}(l[0],0,l)}(l[0],l)}(s[0],s)},Opal.modules["parser/source/comment/associator"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.const_set,a=e.truthy,s=e.send,o=e.eqeq,$=e.rb_le,u=e.rb_plus,l=e.not,c=[],_=e.nil,d=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(c,p){var f=[t(c,"Parser")].concat(p);return function(c,p){var f=[t(c,"Source")].concat(p);return function(t,c,p){var f=n(t,null,"Associator"),h=[f].concat(p),m=e.$r(h),g=f.$$prototype;return g.map_using=g.mapping=g.skip_directives=g.ast=g.current_comment=g.comment_num=g.comments=_,f.$attr_accessor("skip_directives"),r(f,"$initialize",(function(e,t){var n=this;return n.ast=e,n.comments=t,n.skip_directives=!0})),r(f,"$associate",(function(){return this.map_using="eql",this.$do_associate()})),r(f,"$associate_locations",(function(){return this.map_using="location",this.$do_associate()})),r(f,"$associate_by_identity",(function(){return this.map_using="identity",this.$do_associate()})),f.$private(),i(h[0],"POSTFIX_TYPES",m("Set")["$[]"]("if","while","while_post","until","until_post","masgn").$freeze()),r(f,"$children_in_source_order",(function(e){return a(m("POSTFIX_TYPES")["$include?"](e.$type()))?s(e.$children().$compact(),"sort_by",[],(function(e){return null==e&&(e=_),e.$loc().$expression().$begin_pos()})):s(e.$children(),"select",[],(function(e){var t,n;return null==e&&(e=_),a(t=a(n=e["$is_a?"](d(m("AST"),"Node")))?e.$loc():n)?e.$loc().$expression():t}))})),r(f,"$do_associate",(function(){var e=this;return e.mapping=s(m("Hash"),"new",[],(function(e,t){var n;return null==e&&(e=_),null==t&&(t=_),s(e,"[]=",n=[t,[]]),n[n.length-1]})),o(e.map_using,"identity")&&e.mapping.$compare_by_identity(),e.comment_num=-1,e.$advance_comment(),a(e.skip_directives)&&e.$advance_through_directives(),a(e.ast)&&e.$visit(e.ast),e.mapping})),r(f,"$visit",(function(e){var t=this,n=_;return t.$process_leading_comments(e),a(t.current_comment)?(n=e.$location(),a($(t.current_comment.$location().$line(),n.$last_line()))||a(n["$is_a?"](d(m("Map"),"Heredoc")))?(s(t.$children_in_source_order(e),"each",[],(function e(t){return null==t&&(t=_),(null==e.$$s?this:e.$$s).$visit(t)}),{$$s:t}),t.$process_trailing_comments(e)):_):_})),r(f,"$process_leading_comments",(function(e){if(o(e.$type(),"begin"))return _;for(;a(this["$current_comment_before?"](e));)this.$associate_and_advance_comment(e)})),r(f,"$process_trailing_comments",(function(e){for(var t=this;a(t["$current_comment_before_end?"](e));)t.$associate_and_advance_comment(e);for(;a(t["$current_comment_decorates?"](e));)t.$associate_and_advance_comment(e)})),r(f,"$advance_comment",(function(){var e=this;return e.comment_num=u(e.comment_num,1),e.current_comment=e.comments["$[]"](e.comment_num)})),r(f,"$current_comment_before?",(function(e){var t=_,n=_;return!l(this.current_comment)&&(t=this.current_comment.$location().$expression(),n=e.$location().$expression(),$(t.$end_pos(),n.$begin_pos()))})),r(f,"$current_comment_before_end?",(function(e){var t=_,n=_;return!l(this.current_comment)&&(t=this.current_comment.$location().$expression(),n=e.$location().$expression(),$(t.$end_pos(),n.$end_pos()))})),r(f,"$current_comment_decorates?",(function(e){return!l(this.current_comment)&&this.current_comment.$location().$line()["$=="](e.$location().$last_line())})),r(f,"$associate_and_advance_comment",(function(e){var t,n=this;return t=o(n.map_using,"location")?e.$location():e,n.mapping["$[]"](t)["$<<"](n.current_comment),n.$advance_comment()})),i(h[0],"MAGIC_COMMENT_RE",/^#\s*(-\*-|)\s*(frozen_string_literal|warn_indent|warn_past_scope):.*\1$/),r(f,"$advance_through_directives",(function(){var e=this;return a(e.current_comment)&&a(e.current_comment.$text()["$start_with?"]("#!".$freeze()))&&e.$advance_comment(),a(e.current_comment)&&a(e.current_comment.$text()["$=~"](m("MAGIC_COMMENT_RE")))&&e.$advance_comment(),a(e.current_comment)&&a(e.current_comment.$text()["$=~"](d(m("Buffer"),"ENCODING_RE")))?e.$advance_comment():_}))}(e.$r(f)("Comment"),0,f)}(f[0],f)}(c[0],c)},Opal.modules["parser/source/rewriter"]=function(e){var t=e.module,n=e.klass,r=e.send,i=e.gvars,a=e.def,s=e.rb_minus,o=e.rb_plus,$=e.truthy,u=e.not,l=e.neqeq,c=e.rb_le,_=e.rb_ge,d=e.rb_lt,p=e.const_set,f=[],h=e.nil,m=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(f,g){var v=[t(f,"Parser")].concat(g);return function(f,g){var v=[t(f,"Source")].concat(g);return function(t,f,g){var v=n(t,null,"Rewriter"),b=[v].concat(g),y=e.$r(b),w=v.$$prototype;return w.diagnostics=w.insert_before_multi_order=w.insert_after_multi_order=w.source_buffer=w.queue=w.clobber=w.insertions=w.pending_queue=w.pending_clobber=w.pending_insertions=h,v.$attr_reader("source_buffer"),v.$attr_reader("diagnostics"),a(v,"$initialize",(function(e){var t=this;return t.$class().$warn_of_deprecation(),t.diagnostics=m(y("Diagnostic"),"Engine").$new(),t.diagnostics["$consumer="](r(t,"lambda",[],(function(e){return null==i.stderr&&(i.stderr=h),null==e&&(e=h),i.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=h,t.pending_clobber=h,t.pending_insertions=h})),a(v,"$remove",(function(e){return this.$append(m(y("Rewriter"),"Action").$new(e,"".$freeze()))})),a(v,"$insert_before",(function(e,t){return this.$append(m(y("Rewriter"),"Action").$new(e.$begin(),t))})),a(v,"$wrap",(function(e,t,n){return this.$append(m(y("Rewriter"),"Action").$new(e.$begin(),t)),this.$append(m(y("Rewriter"),"Action").$new(e.$end(),n))})),a(v,"$insert_before_multi",(function(e,t){var n=this;return n.insert_before_multi_order=s(n.insert_before_multi_order,1),n.$append(m(y("Rewriter"),"Action").$new(e.$begin(),t,!0,n.insert_before_multi_order))})),a(v,"$insert_after",(function(e,t){return this.$append(m(y("Rewriter"),"Action").$new(e.$end(),t))})),a(v,"$insert_after_multi",(function(e,t){var n=this;return n.insert_after_multi_order=o(n.insert_after_multi_order,1),n.$append(m(y("Rewriter"),"Action").$new(e.$end(),t,!0,n.insert_after_multi_order))})),a(v,"$replace",(function(e,t){return this.$append(m(y("Rewriter"),"Action").$new(e,t))})),a(v,"$process",(function(){var t=this,n=h,i=h;return $(t["$in_transaction?"]())&&t.$raise("Do not call "+t.$class()+"#process inside a transaction"),n=0,i=t.source_buffer.$source().$dup(),r(t.queue.$sort(),"each",[],(function(t){var r,a;return null==t&&(t=h),r=o(t.$range().$begin_pos(),n),a=o(r,t.$range().$length()),i["$[]="](e.Range.$new(r,a,!0),t.$replacement()),n=o(n,s(t.$replacement().$length(),t.$range().$length()))})),i})),a(v,"$transaction",(function t(){var n=t.$$p||h,r=this;return t.$$p=null,function(){try{return n===h&&r.$raise(r.$class()+"#transaction requires block"),$(r["$in_transaction?"]())&&r.$raise("Nested transaction is not supported"),r.pending_queue=r.queue.$dup(),r.pending_clobber=r.clobber,r.pending_insertions=r.insertions,e.yieldX(n,[]),r.queue=r.pending_queue,r.clobber=r.pending_clobber,r.insertions=r.pending_insertions,r}finally{r.pending_queue=h,r.pending_clobber=h,r.pending_insertions=h}}()})),v.$private(),a(v,"$append",(function(e){var t=this,n=h,i=h,a=h,s=h;if(n=e.$range(),$(n["$empty?"]())){if($(e.$replacement()["$empty?"]()))return t;u(e["$allow_multiple_insertions?"]())&&$(i=t["$clobbered_insertion?"](n))&&t.$raise_clobber_error(e,[i]),t.$record_insertion(n),$(a=t["$adjacent_updates?"](n))?(i=r(a,"find",[],(function t(r){var i,a=null==t.$$s?this:t.$$s;return null==r&&(r=h),$(i=r.$range()["$overlaps?"](n))?a["$replace_compatible_with_insertion?"](r,e)["$!"]():i}),{$$s:t}),$(i)&&t.$raise_clobber_error(e,[i]),t["$merge_actions!"](e,a)):t.$active_queue()["$<<"](e)}else $(s=t["$adjacent_insertions?"](n))&&r(s,"each",[],(function t(r){var i=null==t.$$s?this:t.$$s;return null==r&&(r=h),$(n["$overlaps?"](r.$range()))&&u(i["$replace_compatible_with_insertion?"](e,r))?i.$raise_clobber_error(e,[r]):(e=i.$merge_actions(e,[r]),i.$active_queue().$delete(r))}),{$$s:t}),$(a=t["$adjacent_updates?"](n))?$(t["$can_merge?"](e,a))?(t.$record_replace(n),t["$merge_actions!"](e,a)):t.$raise_clobber_error(e,a):(t.$record_replace(n),t.$active_queue()["$<<"](e));return t})),a(v,"$record_insertion",(function(e){var t;return t=[this.$active_insertions()["$|"](1["$<<"](e.$begin_pos()))],r(this,"active_insertions=",t),t[t.length-1]})),a(v,"$record_replace",(function(e){var t,n=this;return t=[n.$active_clobber()["$|"](n.$clobbered_position_mask(e))],r(n,"active_clobber=",t),t[t.length-1]})),a(v,"$clobbered_position_mask",(function(e){return s(1["$<<"](e.$size()),1)["$<<"](e.$begin_pos())})),a(v,"$adjacent_position_mask",(function(e){return s(1["$<<"](o(e.$size(),2)),1)["$<<"](s(e.$begin_pos(),1))})),a(v,"$adjacent_insertion_mask",(function(e){return s(1["$<<"](o(e.$size(),1)),1)["$<<"](e.$begin_pos())})),a(v,"$clobbered_insertion?",(function(e){var t;return t=e.$begin_pos(),l(this.$active_insertions()["$&"](1["$<<"](t)),0)?r(this.$active_queue(),"find",[],(function(e){var n;return null==e&&(e=h),$(n=c(e.$range().$begin_pos(),t))?c(t,e.$range().$end_pos()):n})):h})),a(v,"$adjacent_insertions?",(function(e){var t=this,n=h;return l(t.$active_insertions()["$&"](t.$adjacent_insertion_mask(e)),0)?(n=r(t.$active_queue(),"select",[],(function t(n){var r,i=null==t.$$s?this:t.$$s;return null==n&&(n=h),$(r=n.$range()["$empty?"]())?i["$adjacent?"](e,n.$range()):r}),{$$s:t}),$(n["$empty?"]())?h:n):h})),a(v,"$adjacent_updates?",(function(e){var t=this;return l(t.$active_clobber()["$&"](t.$adjacent_position_mask(e)),0)?r(t.$active_queue(),"select",[],(function t(n){return null==n&&(n=h),(null==t.$$s?this:t.$$s)["$adjacent?"](e,n.$range())}),{$$s:t}):h})),a(v,"$replace_compatible_with_insertion?",(function(e,t){var n,r,i=h;return $(n=$(r=_(s(e.$replacement().$length(),e.$range().$size()),t.$range().$size()))?i=s(t.$range().$begin_pos(),e.$range().$begin_pos()):r)?e.$replacement()["$[]"](i,t.$replacement().$length())["$=="](t.$replacement()):n})),a(v,"$can_merge?",(function(e,t){var n=h;return n=e.$range(),r(t,"all?",[],(function(t){var r,i,a,o,u,l=h,c=h,_=h;return null==t&&(t=h),l=n.$intersect(t.$range()),!!$(l["$nil?"]())||(r=s(l.$begin_pos(),n.$begin_pos()),i=s(l.$begin_pos(),t.$range().$begin_pos()),a=[s(t.$range().$length(),i),s(t.$replacement().$length(),i)].$max(),o=[s(n.$length(),r),s(e.$replacement().$length(),r)].$max(),c=$(_=e.$replacement()["$[]"](r,a))?_:"".$freeze(),u=$(_=t.$replacement()["$[]"](i,o))?_:"".$freeze(),c["$=="](u))}))})),a(v,"$merge_actions",(function(e,t){var n,i=h;return n=(i=r(t.$push(e),"sort_by",[],(function(e){return null==e&&(e=h),[e.$range().$begin_pos(),e.$range().$end_pos()]}))).$first().$range().$join(r(i,"max_by",[],(function(e){return null==e&&(e=h),e.$range().$end_pos()})).$range()),m(y("Rewriter"),"Action").$new(n,this.$merge_replacements(i))})),a(v,"$merge_actions!",(function(e,t){var n,r=this;return n=r.$merge_actions(e,t),r.$active_queue().$delete(e),r.$replace_actions(t,n)})),a(v,"$merge_replacements",(function(t){var n=h,i=h;return n="".$dup(),i=h,r(t,"each",[],(function(t){var r=h,a=h;return null==t&&(t=h),u(i)||$(t.$range()["$disjoint?"](i.$range()))?n["$<<"](t.$replacement()):(r=[o(i.$range().$begin_pos(),i.$replacement().$length()),i.$range().$end_pos()].$max(),a=s(r,t.$range().$begin_pos()),$(d(a,t.$replacement().$size()))&&n["$<<"](t.$replacement()["$[]"](e.Range.$new(a,-1,!1)))),i=t})),n})),a(v,"$replace_actions",(function(e,t){return r(e,"each",[],(function e(t){return null==t&&(t=h),(null==e.$$s?this:e.$$s).$active_queue().$delete(t)}),{$$s:this}),this.$active_queue()["$<<"](t)})),a(v,"$raise_clobber_error",(function(e,t){var n=this,r=h;return r=y("Diagnostic").$new("error","invalid_action",new Map([["action",e]]),e.$range()),n.diagnostics.$process(r),r=y("Diagnostic").$new("note","clobbered",new Map([["action",t["$[]"](0)]]),t["$[]"](0).$range()),n.diagnostics.$process(r),n.$raise(y("ClobberingError"),"Parser::Source::Rewriter detected clobbering")})),a(v,"$in_transaction?",(function(){return this.pending_queue["$nil?"]()["$!"]()})),a(v,"$active_queue",(function(){var e;return $(e=this.pending_queue)?e:this.queue})),a(v,"$active_clobber",(function(){var e;return $(e=this.pending_clobber)?e:this.clobber})),a(v,"$active_insertions",(function(){var e;return $(e=this.pending_insertions)?e:this.insertions})),a(v,"$active_clobber=",(function(e){var t=this;return $(t.pending_clobber)?t.pending_clobber=e:t.clobber=e})),a(v,"$active_insertions=",(function(e){var t=this;return $(t.pending_insertions)?t.pending_insertions=e:t.insertions=e})),a(v,"$adjacent?",(function(e,t){var n;return $(n=c(e.$begin_pos(),t.$end_pos()))?c(t.$begin_pos(),e.$end_pos()):n})),p(b[0],"DEPRECATION_WARNING",["Parser::Source::Rewriter is deprecated.","Please update your code to use Parser::Source::TreeRewriter instead"].$join("\n").$freeze()),v.$extend(y("Deprecation"))}(v[0],0,v)}(v[0],v)}(f[0],f)},Opal.modules["parser/source/rewriter/action"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.truthy,a=e.eqeq,s=[],o=e.nil;return e.add_stubs("include,attr_reader,alias_method,freeze,<=>,begin_pos,range,zero?,order,empty?,==,length,inspect"),function(s,$){var u=[t(s,"Parser")].concat($);return function(s,$){var u=[t(s,"Source")].concat($);return function(t,s,$){var u=n(t,null,"Action"),l=[u].concat($),c=e.$r(l),_=u.$$prototype;return _.replacement=_.range=o,u.$include(c("Comparable")),u.$attr_reader("range","replacement","allow_multiple_insertions","order"),u.$alias_method("allow_multiple_insertions?","allow_multiple_insertions"),r(u,"$initialize",(function(e,t,n,r){var i=this;return null==t&&(t=""),null==n&&(n=!1),null==r&&(r=0),i.range=e,i.replacement=t,i.allow_multiple_insertions=n,i.order=r,i.$freeze()}),-2),r(u,"$<=>",(function(e){var t=o;return t=this.$range().$begin_pos()["$<=>"](e.$range().$begin_pos()),i(t["$zero?"]())?this.$order()["$<=>"](e.$order()):t})),r(u,"$to_s",(function(){var e=this;return a(e.range.$length(),0)&&i(e.replacement["$empty?"]())?"do nothing":a(e.range.$length(),0)?"insert "+e.replacement.$inspect():i(e.replacement["$empty?"]())?"remove "+e.range.$length()+" character(s)":"replace "+e.range.$length()+" character(s) with "+e.replacement.$inspect()}))}(e.$r(u)("Rewriter"),0,u)}(u[0],u)}(s[0],s)},Opal.modules["parser/source/tree_rewriter"]=function(e){var t=e.module,n=e.klass,r=e.ensure_kwargs,i=e.hash_get,a=e.lambda,s=e.gvars,o=e.def,$=e.eqeq,u=e.truthy,l=e.rb_plus,c=e.send,_=e.return_ivar,d=e.const_set,p=e.eqeqeq,f=e.range,h=e.to_ary,m=e.rb_minus,g=e.rb_gt,v=e.rb_lt,b=e.kwrestargs,y=e.slice,w=[],x=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(w,G){var E=[t(w,"Parser")].concat(G);return function(w,G){var E=[t(w,"Source")].concat(G);return function(t,w,G){var E=n(t,null,"TreeRewriter"),S=[E].concat(G),O=e.$r(S),M=E.$$prototype;return M.diagnostics=M.source_buffer=M.enforcer=M.action_root=M.in_transaction=M.policy=x,E.$attr_reader("source_buffer"),E.$attr_reader("diagnostics"),o(E,"$initialize",(function(e,t){var n,o,$,u,l=this;return t=r(t),null==(n=i(t,"crossing_deletions"))&&(n="accept"),null==(o=i(t,"different_replacements"))&&(o="accept"),null==($=i(t,"swallowed_insertions"))&&($="accept"),l.diagnostics=k(O("Diagnostic"),"Engine").$new(),l.diagnostics["$consumer="](a((function(e){return null==s.stderr&&(s.stderr=x),null==e&&(e=x),s.stderr.$puts(e.$render())}))),l.source_buffer=e,l.in_transaction=!1,l.policy=new Map([["crossing_deletions",n],["different_replacements",o],["swallowed_insertions",$]]).$freeze(),l.$check_policy_validity(),l.enforcer=l.$method("enforce_policy"),u=l.source_buffer.$source_range().$adjust(new Map([["begin_pos",-1],["end_pos",1]])),l.action_root=k(O("TreeRewriter"),"Action").$new(u,l.enforcer)}),-2),o(E,"$empty?",(function(){return this.action_root["$empty?"]()})),o(E,"$merge!",(function(e){var t=this;return $(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 n,a,s,o=this,$=x;return t=r(t),null==(n=i(t,"offset"))&&(n=0),u(e["$empty?"]())||($=e.$action_root().$contract(),a=k(k(k("Parser"),"Source"),"Range").$new(o.source_buffer,l($.$range().$begin_pos(),n),l($.$range().$end_pos(),n)),o.$check_range_validity(a),s=$.$moved(o.source_buffer,n),o.action_root=o.action_root.$combine(s)),o}),-2),o(E,"$replace",(function(e,t){return this.$combine(e,new Map([["replacement",t]]))})),o(E,"$wrap",(function(e,t,n){return this.$combine(e,new Map([["insert_before",t.$to_s()],["insert_after",n.$to_s()]]))})),o(E,"$remove",(function(e){return this.$replace(e,"".$freeze())})),o(E,"$insert_before",(function(e,t){return this.$wrap(e,t,x)})),o(E,"$insert_after",(function(e,t){return this.$wrap(e,x,t)})),o(E,"$process",(function(){var t=x,n=x,r=x;return t=this.source_buffer.$source(),n=[],r=0,c(this.action_root.$ordered_replacements(),"each",[],(function(i,a){return null==i&&(i=x),null==a&&(a=x),n["$<<"](t["$[]"](e.Range.$new(r,i.$begin_pos(),!0)))["$<<"](a),r=i.$end_pos()})),n["$<<"](t["$[]"](e.Range.$new(r,t.$length(),!0))),n.$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 n=t.$$p||x,r=this,i=x,a=x;return t.$$p=null,function(){try{return n===x&&r.$raise(r.$class()+"#transaction requires block"),i=r.in_transaction,r.in_transaction=!0,a=r.action_root,e.yieldX(n,[]),a=x,r}finally{u(a)&&(r.action_root=a),r.in_transaction=i}}()})),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)})),d(S[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(O("Deprecation")),E.$protected(),E.$attr_reader("action_root"),E.$private(),o(E,"$action_summary",(function(){var e,t=x,n=x,r=x;return t=this.$as_replacements(),p(0,e=t.$size())?"empty":(p(f(1,3,!1),e)||(t=t.$first(3),n="…"),r=c(t,"map",[],(function(e){var t,n=x,r=x;return null==e&&(e=x),n=null==(t=h(e))[0]?x:t[0],r=null==t[1]?x:t[1],u(r["$empty?"]())?"-"+n.$to_range():$(n.$size(),0)?"+"+r.$inspect()+"@"+n.$begin_pos():"^"+r.$inspect()+"@"+n.$to_range()}),{$$has_top_level_mlhs_arg:!0}),u(n)&&r["$<<"](n),r.$join(", "))})),d(S[0],"ACTIONS",["accept","warn","raise"].$freeze()),o(E,"$check_policy_validity",(function(){var e=x;return e=m(this.policy.$values(),O("ACTIONS")),u(e["$empty?"]())?x:this.$raise(O("ArgumentError"),"Invalid policy: "+e.$join(", "))})),o(E,"$combine",(function(t,n){var r,i=this;return t=i.$check_range_validity(t),r=k(O("TreeRewriter"),"Action").$new(t,i.enforcer,e.to_hash(n)),i.action_root=i.action_root.$combine(r),i})),o(E,"$check_range_validity",(function(e){return(u(v(e.$begin_pos(),0))||u(g(e.$end_pos(),this.source_buffer.$source().$size())))&&this.$raise(O("IndexError"),"The range "+e.$to_range()+" is outside the bounds of the source"),e})),o(E,"$enforce_policy",(function t(n){var r,i=t.$$p||x;return t.$$p=null,$(this.policy["$[]"](n),"accept")?x:u(r=e.yieldX(i,[]))?this.$trigger_policy(n,e.to_hash(r)):x})),d(S[0],"POLICY_TO_LEVEL",new Map([["warn","warning"],["raise","error"]]).$freeze()),o(E,"$trigger_policy",(function(e,t){var n,a,s,o,l,c,_=this,d=x,p=x;return t=r(t),null==(n=i(t,"range"))&&(n=_.$raise()),null==(a=i(t,"conflict"))&&(a=x),s=b(t,{range:!0,conflict:!0}),l=u(c=_.policy["$[]"](e))?c:"raise",d=k(O("Parser"),"Diagnostic").$new(O("POLICY_TO_LEVEL")["$[]"](l),e,s,n),_.diagnostics.$process(d),u(a)&&(n=null==(o=h(a))[0]?x:o[0],p=y(o,1),d=k(O("Parser"),"Diagnostic").$new(O("POLICY_TO_LEVEL")["$[]"](l),e+"_conflict",s,n,p),_.diagnostics.$process(d)),$(l,"raise")?_.$raise(k(O("Parser"),"ClobberingError"),"Parser::Source::TreeRewriter detected clobbering"):x}),-2)}(E[0],0,E)}(E[0],E)}(w[0],w)},Opal.modules["parser/source/tree_rewriter/action"]=function(e){var t=e.module,n=e.klass,r=e.ensure_kwargs,i=e.hash_get,a=e.def,s=e.truthy,o=e.send,$=e.not,u=e.rb_plus,l=e.eqeq,c=e.to_a,_=e.rb_gt,d=e.rb_minus,p=e.rb_ge,f=e.rb_le,h=e.rb_lt,m=e.slice,g=e.neqeq,v=[],b=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(v,w){var x=[t(v,"Parser")].concat(w);return function(v,w){var x=[t(v,"Source")].concat(w);return function(t,v){var w=n(t,null,"Action"),x=w.$$prototype;return x.insert_before=x.insert_after=x.children=x.replacement=x.range=x.enforcer=b,w.$attr_reader("range","replacement","insert_before","insert_after"),a(w,"$initialize",(function(e,t,n){var a,s,o,$,u,l=this;return n=r(n),null==(a=i(n,"insert_before"))&&(a=""),null==(s=i(n,"replacement"))&&(s=b),null==(o=i(n,"insert_after"))&&(o=""),null==($=i(n,"children"))&&($=[]),u=[e,t,$.$freeze(),a.$freeze(),s,o.$freeze()],l.range=u[0],l.enforcer=u[1],l.children=u[2],l.insert_before=u[3],l.replacement=u[4],l.insert_after=u[5],l.$freeze()}),-3),a(w,"$combine",(function(e){return s(e["$empty?"]())?this:this.$do_combine(e)})),a(w,"$empty?",(function(){var e,t=this,n=b,r=b;return s(e=s(n=s(r=t.insert_before["$empty?"]())?t.insert_after["$empty?"]():r)?t.children["$empty?"]():n)?s(n=t.replacement["$=="](b))?n:s(r=t.replacement["$empty?"]())?t.range["$empty?"]():r:e})),a(w,"$ordered_replacements",(function(){var e=this,t=b;return t=[],s(e.insert_before["$empty?"]())||t["$<<"]([e.range.$begin(),e.insert_before]),s(e.replacement)&&t["$<<"]([e.range,e.replacement]),t.$concat(o(e.children,"flat_map",[],"ordered_replacements".$to_proc())),s(e.insert_after["$empty?"]())||t["$<<"]([e.range.$end(),e.insert_after]),t})),a(w,"$nested_actions",(function(){var e=this,t=b;return t=[],($(e.insert_before["$empty?"]())||$(e.insert_after["$empty?"]()))&&t["$<<"](["wrap",e.range,e.insert_before,e.insert_after]),s(e.replacement)&&t["$<<"](["replace",e.range,e.replacement]),t.$concat(o(e.children,"flat_map",[],"nested_actions".$to_proc()))})),a(w,"$insertion?",(function(){var e,t=this,n=b;return s(e=s(n=t.$insert_before()["$empty?"]()["$!"]())?n:t.$insert_after()["$empty?"]()["$!"]())?e:s(n=t.$replacement())?t.$replacement()["$empty?"]()["$!"]():n})),a(w,"$contract",(function(){var e,t=this;return s(t["$empty?"]())&&t.$raise("Empty actions can not be contracted"),s(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]])))})),a(w,"$moved",(function(e,t){var n,r=this;return n=y(y(y("Parser"),"Source"),"Range").$new(e,u(r.range.$begin_pos(),t),u(r.range.$end_pos(),t)),r.$with(new Map([["range",n],["children",o(r.$children(),"map",[],(function(n){return null==n&&(n=b),n.$moved(e,t)}))]]))})),w.$protected(),w.$attr_reader("children"),a(w,"$with",(function(e){var t,n,a,o,$,u,l=this;return e=r(e),null==(t=i(e,"range"))&&(t=l.range),null==(n=i(e,"enforcer"))&&(n=l.enforcer),null==(a=i(e,"children"))&&(a=l.children),null==(o=i(e,"insert_before"))&&(o=l.insert_before),null==($=i(e,"replacement"))&&($=l.replacement),null==(u=i(e,"insert_after"))&&(u=l.insert_after),s($)&&(a=l.$swallow(a)),l.$class().$new(t,n,new Map([["children",a],["insert_before",o],["replacement",$],["insert_after",u]]))}),-1),a(w,"$do_combine",(function(e){var t=this;return l(e.$range(),t.range)?t.$merge(e):t.$place_in_hierarchy(e)})),a(w,"$place_in_hierarchy",(function(e){var t=this,n=b,r=b;return n=t.$analyse_hierarchy(e),s(n["$[]"]("fusible"))?t.$fuse_deletions(e,n["$[]"]("fusible"),[].concat(c(n["$[]"]("sibbling_left"))).concat(c(n["$[]"]("child"))).concat(c(n["$[]"]("sibbling_right")))):(r=s(n["$[]"]("parent"))?n["$[]"]("parent").$do_combine(e):s(n["$[]"]("child"))?e.$with(new Map([["children",n["$[]"]("child")],["enforcer",t.enforcer]])).$combine_children(e.$children()):e,t.$with(new Map([["children",[].concat(c(n["$[]"]("sibbling_left"))).concat([r]).concat(c(n["$[]"]("sibbling_right")))]])))})),a(w,"$combine_children",(function(e){return o(e,"inject",[this],(function(e,t){return null==e&&(e=b),null==t&&(t=b),e.$place_in_hierarchy(t)}))})),a(w,"$fuse_deletions",(function(e,t,n){var r,i,a=b;return a=this.$with(new Map([["children",n]])),r=o([e].concat(c(t)),"map",[],"range".$to_proc()).$inject("join"),i=e.$with(new Map([["range",r]])),a.$do_combine(i)})),a(w,"$bsearch_child_index",(function t(n){var r,i,a=t.$$p||b;return t.$$p=null,null==n&&(n=0),r=this.children.$size(),s(i=o(e.Range.$new(n,r,!0),"bsearch",[],(function t(n){var r=null==t.$$s?this:t.$$s;return null==r.children&&(r.children=b),null==n&&(n=b),e.yield1(a,r.children["$[]"](n))}),{$$s:this}))?i:r}),-1),a(w,"$analyse_hierarchy",(function(t){var n,r=this,i=b,a=b,$=b,c=b,m=b,g=b,v=b,y=b,w=b;switch(i=t.$range(),a=o(r,"bsearch_child_index",[],(function(e){return null==e&&(e=b),_(e.$range().$end_pos(),i.$begin_pos())})),n=l(a,0)?0:d(a,1),$=o(r,"bsearch_child_index",[n],(function(e){return null==e&&(e=b),p(e.$range().$begin_pos(),i.$end_pos())})),(c=d($,a)).valueOf()){case 0:break;case-1:a=d(a,1),$=u($,1),m=r.children["$[]"](a);break;default:g=r.children["$[]"](a).$range().$begin_pos()["$<=>"](i.$begin_pos()),v=r.children["$[]"](d($,1)).$range().$end_pos()["$<=>"](i.$end_pos()),l(c,1)&&s(f(g,0))&&s(p(v,0))?m=r.children["$[]"](a):(y=r.children["$[]"](e.Range.$new(a,$,!0)),w=r.$check_fusible(t,s(h(g,0))?y.$shift():b,s(_(v,0))?y.$pop():b))}return new Map([["parent",m],["sibbling_left",r.children["$[]"](e.Range.$new(0,a,!0))],["sibbling_right",r.children["$[]"](e.Range.$new($,r.children.$size(),!0))],["fusible",w],["child",y]])})),a(w,"$check_fusible",(function(e,t){var n;return(n=m(arguments,1))["$compact!"](),s(n["$empty?"]())?b:(o(n,"each",[],(function t(n){var r,i=null==t.$$s?this:t.$$s;return null==i.enforcer&&(i.enforcer=b),null==n&&(n=b),r=s(e["$insertion?"]())||s(n["$insertion?"]())?"crossing_insertions":"crossing_deletions",o(i.enforcer,"call",[r],(function(){return new Map([["range",e.$range()],["conflict",n.$range()]])}))}),{$$s:this}),n)}),-2),a(w,"$merge",(function(e){var t,n=this;return n.$call_enforcer_for_merge(e),n.$with(new Map([["insert_before",""+e.$insert_before()+n.$insert_before()],["replacement",s(t=e.$replacement())?t:n.replacement],["insert_after",""+n.$insert_after()+e.$insert_after()]])).$combine_children(e.$children())})),a(w,"$call_enforcer_for_merge",(function(e){return o(this.enforcer,"call",["different_replacements"],(function t(){var n=null==t.$$s?this:t.$$s;return null==n.replacement&&(n.replacement=b),null==n.range&&(n.range=b),s(n.replacement)&&s(e.$replacement())&&g(n.replacement,e.$replacement())?new Map([["range",n.range],["replacement",e.$replacement()],["other_replacement",n.replacement]]):b}),{$$s:this})})),a(w,"$swallow",(function(e){return o(this.enforcer,"call",["swallowed_insertions"],(function t(){var n=null==t.$$s?this:t.$$s,r=b;return null==n.range&&(n.range=b),r=o(e,"select",[],"insertion?".$to_proc()),s(r["$empty?"]())?b:new Map([["range",n.range],["conflict",o(r,"map",[],"range".$to_proc())]])}),{$$s:this}),[]}))}(e.$r(x)("TreeRewriter"))}(x[0],x)}(v[0],v)},Opal.modules["parser/source/map"]=function(e){var t=e.module,n=e.klass,r=e.assign_ivar,i=e.def,a=e.send2,s=e.find_super,o=e.send,$=e.truthy,u=e.eqeq,l=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 d=[t(e,"Parser")].concat(c);return function(e,c){return function(e,t){var c=n(e,null,"Map"),d=c.$$prototype;return d.node=d.expression=_,c.$attr_reader("node"),c.$attr_reader("expression"),i(c,"$initialize",r("expression")),i(c,"$initialize_copy",(function e(t){var n=e.$$p||_,r=this;return e.$$p=null,a(r,s(r,"initialize_copy",e,!1,!0),"initialize_copy",[t],n),r.node=_})),i(c,"$node=",(function(e){var t=this;return t.node=e,t.$freeze(),t.node})),i(c,"$line",(function(){return this.expression.$line()})),c.$alias_method("first_line","line"),i(c,"$column",(function(){return this.expression.$column()})),i(c,"$last_line",(function(){return this.expression.$last_line()})),i(c,"$last_column",(function(){return this.expression.$last_column()})),i(c,"$with_expression",(function(e){return o(this,"with",[],(function(t){return null==t&&(t=_),t.$update_expression(e)}))})),i(c,"$==",(function(e){var t,n=this;return $(t=e.$class()["$=="](n.$class()))?o(n.$instance_variables(),"map",[],(function t(n){return null==n&&(n=_),(null==t.$$s?this:t.$$s).$instance_variable_get(n)["$=="](e.$send("instance_variable_get",n))}),{$$s:n}).$reduce("&"):t})),i(c,"$to_hash",(function(){return o(this.$instance_variables(),"inject",[new Map],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==t&&(t=_),null==n&&(n=_),u(n.$to_sym(),"@node")||t["$[]="](n["$[]"](l(1,-1,!1)).$to_sym(),r.$instance_variable_get(n)),t}),{$$s:this})})),c.$protected(),i(c,"$with",(function e(){var t=e.$$p||_;return e.$$p=null,o(this.$dup(),"tap",[],t.$to_proc())})),i(c,"$update_expression",r("expression"))}([t(e,"Source")].concat(c)[0])}(d[0],d)}(c[0],c)},Opal.modules["parser/source/map/operator"]=function(e){var t=e.module,n=e.klass,r=e.send2,i=e.find_super,a=e.def,s=[];e.nil;return e.add_stubs("attr_reader"),function(s,o){var $=[t(s,"Parser")].concat(o);return function(s,o){var $=[t(s,"Source")].concat(o),u=e.$r($);return function(e,t){var s=n(e,t,"Operator");return s.$attr_reader("operator"),a(s,"$initialize",(function e(t,n){var a=this;return e.$$p=null,a.operator=t,r(a,i(a,"initialize",e,!1,!0),"initialize",[n],null)}))}(u("Map"),u("Map"))}($[0],$)}(s[0],s)},Opal.modules["parser/source/map/collection"]=function(e){var t=e.module,n=e.klass,r=e.send2,i=e.find_super,a=e.def,s=[];e.nil;return e.add_stubs("attr_reader"),function(s,o){var $=[t(s,"Parser")].concat(o);return function(s,o){var $=[t(s,"Source")].concat(o),u=e.$r($);return function(e,t){var s=n(e,t,"Collection");return s.$attr_reader("begin"),s.$attr_reader("end"),a(s,"$initialize",(function e(t,n,a){var s,o=this;return e.$$p=null,s=[t,n],o.begin=s[0],o.end=s[1],r(o,i(o,"initialize",e,!1,!0),"initialize",[a],null)}))}(u("Map"),u("Map"))}($[0],$)}(s[0],s)},Opal.modules["parser/source/map/constant"]=function(e){var t=e.module,n=e.klass,r=e.send2,i=e.find_super,a=e.def,s=e.send,o=e.assign_ivar,$=[],u=e.nil;return e.add_stubs("attr_reader,with,update_operator,protected"),function($,l){var c=[t($,"Parser")].concat(l);return function($,l){var c=[t($,"Source")].concat(l),_=e.$r(c);return function(e,t){var $=n(e,t,"Constant");return $.$attr_reader("double_colon"),$.$attr_reader("name"),$.$attr_reader("operator"),a($,"$initialize",(function e(t,n,a){var s,o=this;return e.$$p=null,s=[t,n],o.double_colon=s[0],o.name=s[1],r(o,i(o,"initialize",e,!1,!0),"initialize",[a],null)})),a($,"$with_operator",(function(e){return s(this,"with",[],(function(t){return null==t&&(t=u),t.$update_operator(e)}))})),$.$protected(),a($,"$update_operator",o("operator"))}(_("Map"),_("Map"))}(c[0],c)}($[0],$)},Opal.modules["parser/source/map/variable"]=function(e){var t=e.module,n=e.klass,r=e.send2,i=e.find_super,a=e.def,s=e.send,o=e.assign_ivar,$=[],u=e.nil;return e.add_stubs("attr_reader,with,update_operator,protected"),function($,l){var c=[t($,"Parser")].concat(l);return function($,l){var c=[t($,"Source")].concat(l),_=e.$r(c);return function(e,t){var $=n(e,t,"Variable");return $.$attr_reader("name"),$.$attr_reader("operator"),a($,"$initialize",(function e(t,n){var a=this;return e.$$p=null,null==n&&(n=t),a.name=t,r(a,i(a,"initialize",e,!1,!0),"initialize",[n],null)}),-2),a($,"$with_operator",(function(e){return s(this,"with",[],(function(t){return null==t&&(t=u),t.$update_operator(e)}))})),$.$protected(),a($,"$update_operator",o("operator"))}(_("Map"),_("Map"))}(c[0],c)}($[0],$)},Opal.modules["parser/source/map/keyword"]=function(e){var t=e.module,n=e.klass,r=e.send2,i=e.find_super,a=e.def,s=[];e.nil;return e.add_stubs("attr_reader"),function(s,o){var $=[t(s,"Parser")].concat(o);return function(s,o){var $=[t(s,"Source")].concat(o),u=e.$r($);return function(e,t){var s=n(e,t,"Keyword");return s.$attr_reader("keyword"),s.$attr_reader("begin"),s.$attr_reader("end"),a(s,"$initialize",(function e(t,n,a,s){var o,$=this;return e.$$p=null,$.keyword=t,o=[n,a],$.begin=o[0],$.end=o[1],r($,i($,"initialize",e,!1,!0),"initialize",[s],null)}))}(u("Map"),u("Map"))}($[0],$)}(s[0],s)},Opal.modules["parser/source/map/definition"]=function(e){var t=e.module,n=e.klass,r=e.send2,i=e.find_super,a=e.def,s=[],o=e.nil;return e.add_stubs("attr_reader,join"),function(s,$){var u=[t(s,"Parser")].concat($);return function(s,$){var u=[t(s,"Source")].concat($),l=e.$r(u);return function(e,t){var s=n(e,t,"Definition"),$=s.$$prototype;return $.keyword=$.end=o,s.$attr_reader("keyword"),s.$attr_reader("operator"),s.$attr_reader("name"),s.$attr_reader("end"),a(s,"$initialize",(function e(t,n,a,s){var o=this;return e.$$p=null,o.keyword=t,o.operator=n,o.name=a,o.end=s,r(o,i(o,"initialize",e,!1,!0),"initialize",[o.keyword.$join(o.end)],null)}))}(l("Map"),l("Map"))}(u[0],u)}(s[0],s)},Opal.modules["parser/source/map/method_definition"]=function(e){var t=e.module,n=e.klass,r=e.send2,i=e.find_super,a=e.truthy,s=e.def,o=[],$=e.nil;return e.add_stubs("attr_reader,join"),function(o,u){var l=[t(o,"Parser")].concat(u);return function(o,u){var l=[t(o,"Source")].concat(u),c=e.$r(l);return function(e,t){var o=n(e,t,"MethodDefinition");return o.$$prototype.keyword=$,o.$attr_reader("keyword"),o.$attr_reader("operator"),o.$attr_reader("name"),o.$attr_reader("end"),o.$attr_reader("assignment"),s(o,"$initialize",(function e(t,n,s,o,$,u){var l,c=this;return e.$$p=null,c.keyword=t,c.operator=n,c.name=s,c.end=o,c.assignment=$,r(c,i(c,"initialize",e,!1,!0),"initialize",[c.keyword.$join(a(l=o)?l:u)],null)}))}(c("Map"),c("Map"))}(l[0],l)}(o[0],o)},Opal.modules["parser/source/map/send"]=function(e){var t=e.module,n=e.klass,r=e.send2,i=e.find_super,a=e.def,s=e.send,o=e.assign_ivar,$=[],u=e.nil;return e.add_stubs("attr_reader,with,update_operator,protected"),function($,l){var c=[t($,"Parser")].concat(l);return function($,l){var c=[t($,"Source")].concat(l),_=e.$r(c);return function(e,t){var $=n(e,t,"Send");return $.$attr_reader("dot"),$.$attr_reader("selector"),$.$attr_reader("operator"),$.$attr_reader("begin"),$.$attr_reader("end"),a($,"$initialize",(function e(t,n,a,s,o){var $,u=this;return e.$$p=null,u.dot=t,u.selector=n,$=[a,s],u.begin=$[0],u.end=$[1],r(u,i(u,"initialize",e,!1,!0),"initialize",[o],null)})),a($,"$with_operator",(function(e){return s(this,"with",[],(function(t){return null==t&&(t=u),t.$update_operator(e)}))})),$.$protected(),a($,"$update_operator",o("operator"))}(_("Map"),_("Map"))}(c[0],c)}($[0],$)},Opal.modules["parser/source/map/index"]=function(e){var t=e.module,n=e.klass,r=e.send2,i=e.find_super,a=e.def,s=e.send,o=e.assign_ivar,$=[],u=e.nil;return e.add_stubs("attr_reader,with,update_operator,protected"),function($,l){var c=[t($,"Parser")].concat(l);return function($,l){var c=[t($,"Source")].concat(l),_=e.$r(c);return function(e,t){var $=n(e,t,"Index");return $.$attr_reader("begin"),$.$attr_reader("end"),$.$attr_reader("operator"),a($,"$initialize",(function e(t,n,a){var s,o=this;return e.$$p=null,s=[t,n],o.begin=s[0],o.end=s[1],o.operator=u,r(o,i(o,"initialize",e,!1,!0),"initialize",[a],null)})),a($,"$with_operator",(function(e){return s(this,"with",[],(function(t){return null==t&&(t=u),t.$update_operator(e)}))})),$.$protected(),a($,"$update_operator",o("operator"))}(_("Map"),_("Map"))}(c[0],c)}($[0],$)},Opal.modules["parser/source/map/condition"]=function(e){var t=e.module,n=e.klass,r=e.send2,i=e.find_super,a=e.def,s=[];e.nil;return e.add_stubs("attr_reader"),function(s,o){var $=[t(s,"Parser")].concat(o);return function(s,o){var $=[t(s,"Source")].concat(o),u=e.$r($);return function(e,t){var s=n(e,t,"Condition");return s.$attr_reader("keyword"),s.$attr_reader("begin"),s.$attr_reader("else"),s.$attr_reader("end"),a(s,"$initialize",(function e(t,n,a,s,o){var $,u=this;return e.$$p=null,u.keyword=t,$=[n,a,s],u.begin=$[0],u.else=$[1],u.end=$[2],r(u,i(u,"initialize",e,!1,!0),"initialize",[o],null)}))}(u("Map"),u("Map"))}($[0],$)}(s[0],s)},Opal.modules["parser/source/map/ternary"]=function(e){var t=e.module,n=e.klass,r=e.send2,i=e.find_super,a=e.def,s=[];e.nil;return e.add_stubs("attr_reader"),function(s,o){var $=[t(s,"Parser")].concat(o);return function(s,o){var $=[t(s,"Source")].concat(o),u=e.$r($);return function(e,t){var s=n(e,t,"Ternary");return s.$attr_reader("question"),s.$attr_reader("colon"),a(s,"$initialize",(function e(t,n,a){var s,o=this;return e.$$p=null,s=[t,n],o.question=s[0],o.colon=s[1],r(o,i(o,"initialize",e,!1,!0),"initialize",[a],null)}))}(u("Map"),u("Map"))}($[0],$)}(s[0],s)},Opal.modules["parser/source/map/for"]=function(e){var t=e.module,n=e.klass,r=e.send2,i=e.find_super,a=e.def,s=[];e.nil;return e.add_stubs("attr_reader"),function(s,o){var $=[t(s,"Parser")].concat(o);return function(s,o){var $=[t(s,"Source")].concat(o),u=e.$r($);return function(e,t){var s=n(e,t,"For");return s.$attr_reader("keyword","in"),s.$attr_reader("begin","end"),a(s,"$initialize",(function e(t,n,a,s,o){var $,u=this;return e.$$p=null,$=[t,n],u.keyword=$[0],u.in=$[1],$=[a,s],u.begin=$[0],u.end=$[1],r(u,i(u,"initialize",e,!1,!0),"initialize",[o],null)}))}(u("Map"),u("Map"))}($[0],$)}(s[0],s)},Opal.modules["parser/source/map/rescue_body"]=function(e){var t=e.module,n=e.klass,r=e.send2,i=e.find_super,a=e.def,s=[];e.nil;return e.add_stubs("attr_reader"),function(s,o){var $=[t(s,"Parser")].concat(o);return function(s,o){var $=[t(s,"Source")].concat(o),u=e.$r($);return function(e,t){var s=n(e,t,"RescueBody");return s.$attr_reader("keyword"),s.$attr_reader("assoc"),s.$attr_reader("begin"),a(s,"$initialize",(function e(t,n,a,s){var o=this;return e.$$p=null,o.keyword=t,o.assoc=n,o.begin=a,r(o,i(o,"initialize",e,!1,!0),"initialize",[s],null)}))}(u("Map"),u("Map"))}($[0],$)}(s[0],s)},Opal.modules["parser/source/map/heredoc"]=function(e){var t=e.module,n=e.klass,r=e.send2,i=e.find_super,a=e.def,s=[];e.nil;return e.add_stubs("attr_reader"),function(s,o){var $=[t(s,"Parser")].concat(o);return function(s,o){var $=[t(s,"Source")].concat(o),u=e.$r($);return function(e,t){var s=n(e,t,"Heredoc");return s.$attr_reader("heredoc_body"),s.$attr_reader("heredoc_end"),a(s,"$initialize",(function e(t,n,a){var s=this;return e.$$p=null,s.heredoc_body=n,s.heredoc_end=a,r(s,i(s,"initialize",e,!1,!0),"initialize",[t],null)}))}(u("Map"),u("Map"))}($[0],$)}(s[0],s)},Opal.modules["parser/source/map/objc_kwarg"]=function(e){var t=e.module,n=e.klass,r=e.send2,i=e.find_super,a=e.def,s=[];e.nil;return e.add_stubs("attr_reader"),function(s,o){var $=[t(s,"Parser")].concat(o);return function(s,o){var $=[t(s,"Source")].concat(o),u=e.$r($);return function(e,t){var s=n(e,t,"ObjcKwarg");return s.$attr_reader("keyword"),s.$attr_reader("operator"),s.$attr_reader("argument"),a(s,"$initialize",(function e(t,n,a,s){var o,$=this;return e.$$p=null,o=[t,n,a],$.keyword=o[0],$.operator=o[1],$.argument=o[2],r($,i($,"initialize",e,!1,!0),"initialize",[s],null)}))}(u("Map"),u("Map"))}($[0],$)}(s[0],s)},Opal.modules["parser/syntax_error"]=function(e){var t=e.module,n=e.klass,r=e.send2,i=e.find_super,a=e.def,s=[];e.nil;return e.add_stubs("attr_reader,message"),function(s,o){var $=[t(s,"Parser")].concat(o),u=e.$r($);return function(e,t){var s=n(e,t,"SyntaxError");return s.$attr_reader("diagnostic"),a(s,"$initialize",(function e(t){var n=this;return e.$$p=null,n.diagnostic=t,r(n,i(n,"initialize",e,!1,!0),"initialize",[t.$message()],null)}))}($[0],u("StandardError"))}(s[0],s)},Opal.modules["parser/clobbering_error"]=function(e){var t=e.module,n=e.klass,r=[],i=e.nil;return function(r,a){var s=[t(r,"Parser")].concat(a),o=e.$r(s);return n(s[0],o("RuntimeError"),"ClobberingError"),i}(r[0],r)},Opal.modules["parser/unknown_encoding_in_magic_comment_error"]=function(e){var t=e.module,n=e.klass,r=[],i=e.nil;return function(r,a){var s=[t(r,"Parser")].concat(a),o=e.$r(s);return n(s[0],o("ArgumentError"),"UnknownEncodingInMagicComment"),i}(r[0],r)},Opal.modules["parser/diagnostic"]=function(e){var t=e.module,n=e.klass,r=e.const_set,i=e.truthy,a=e.def,s=e.eqeq,o=e.rb_plus,$=e.rb_minus,u=e.to_ary,l=e.rb_gt,c=e.rb_times,_=e.send,d=e.rb_ge,p=e.not,f=e.neqeq,h=[],m=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,g){var v=[t(h,"Parser")].concat(g);return function(t,h,g){var v=n(t,null,"Diagnostic"),b=[v].concat(g),y=e.$r(b),w=v.$$prototype;return w.reason=w.arguments=w.location=w.level=w.highlights=m,r(b[0],"LEVELS",["note","warning","error","fatal"].$freeze()),v.$attr_reader("level","reason","arguments"),v.$attr_reader("location","highlights"),a(v,"$initialize",(function(e,t,n,r,a){var s,o=this;return null==a&&(a=[]),i(y("LEVELS")["$include?"](e))||o.$raise(y("ArgumentError"),"Diagnostic#level must be one of "+y("LEVELS").$join(", ")+"; "+e.$inspect()+" provided."),i(r)||o.$raise("Expected a location"),o.level=e,o.reason=t,o.arguments=(i(s=n)?s:new Map).$dup().$freeze(),o.location=r,o.highlights=a.$dup().$freeze(),o.$freeze()}),-5),a(v,"$message",(function(){return y("Messages").$compile(this.reason,this.arguments)})),a(v,"$render",(function(){var e,t,n=this,r=m,a=m,c=m,_=m,d=m;return s(n.location.$line(),n.location.$last_line())||i(n.location["$is?"]("\n"))?o([n.location+": "+n.level+": "+n.$message()],n.$render_line(n.location)):(r=n.$first_line_only(n.location),a=n.$last_line_only(n.location),c=o($(n.location.$last_line(),n.location.$line()),1),t=n.location.$source_buffer().$decompose_position(n.location.$end_pos()),_=null==(e=u(t))[0]?m:e[0],d=null==e[1]?m:e[1],o(o([n.location+"-"+_+":"+d+": "+n.level+": "+n.$message()],n.$render_line(r,l(c,2),!1)),n.$render_line(a,!1,!0)))})),v.$private(),a(v,"$render_line",(function(e,t,n){var r=m,a=m;return null==t&&(t=!1),null==n&&(n=!1),r=e.$source_line(),a=c(" ",r.$length()),_(this.highlights,"each",[],(function(t){var n,r;return null==t&&(t=m),r=e.$source_buffer().$line_range(e.$line()),i(t=t.$intersect(r))?(n=[t.$column_range(),c("~",t.$size())],_(a,"[]=",n),n[n.length-1]):m})),i(e["$is?"]("\n"))?a=o(a,"^"):p(n)&&i(d(e.$size(),1))?a["$[]="](e.$column_range(),o("^",c("~",$(e.$size(),1)))):a["$[]="](e.$column_range(),c("~",e.$size())),i(t)&&(a=o(a,"...")),_([r,a],"map",[],(function(t){return null==t&&(t=m),e.$source_buffer().$name()+":"+e.$line()+": "+t}))}),-2),a(v,"$first_line_only",(function(e){return f(e.$line(),e.$last_line())?e.$resize(e.$source()["$=~"](/\n/)):e})),a(v,"$last_line_only",(function(e){return f(e.$line(),e.$last_line())?e.$adjust(new Map([["begin_pos",e.$source()["$=~"](/[^\n]*$/)]])):e}))}(v[0],0,v)}(h[0],h)},Opal.modules["parser/diagnostic/engine"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.truthy,a=[],s=e.nil,o=e.$$$;return e.add_stubs("attr_accessor,ignore?,call,raise?,raise,protected,==,level"),function(a,$){var u=[t(a,"Parser")].concat($);return function(t,a,$){var u=n(t,null,"Engine"),l=[u].concat($),c=e.$r(l),_=u.$$prototype;return _.consumer=_.ignore_warnings=_.all_errors_are_fatal=s,u.$attr_accessor("consumer"),u.$attr_accessor("all_errors_are_fatal"),u.$attr_accessor("ignore_warnings"),r(u,"$initialize",(function(e){var t=this;return null==e&&(e=s),t.consumer=e,t.all_errors_are_fatal=!1,t.ignore_warnings=!1}),-1),r(u,"$process",(function(e){var t=this;return i(t["$ignore?"](e))||i(t.consumer)&&t.consumer.$call(e),i(t["$raise?"](e))&&t.$raise(o(c("Parser"),"SyntaxError"),e),t})),u.$protected(),r(u,"$ignore?",(function(e){var t;return i(t=this.ignore_warnings)?e.$level()["$=="]("warning"):t})),r(u,"$raise?",(function(e){var t,n;return i(t=i(n=this.all_errors_are_fatal)?e.$level()["$=="]("error"):n)?t:e.$level()["$=="]("fatal")}))}(e.$r(u)("Diagnostic"),0,u)}(a[0],a)},Opal.modules["parser/static_environment"]=function(e){var t=e.module,n=e.klass,r=e.const_set,i=e.def,a=e.truthy,s=e.send,o=[],$=e.nil;return e.add_stubs("reset,[],push,dup,delete,add,pop,to_sym,include?,declare,declared?,any?,empty?"),function(o,u){var l=[t(o,"Parser")].concat(u);return function(t,o,u){var l=n(t,null,"StaticEnvironment"),c=[l].concat(u),_=e.$r(c),d=l.$$prototype;return d.stack=d.variables=$,r(c[0],"FORWARD_ARGS","FORWARD_ARGS"),r(c[0],"ANONYMOUS_RESTARG_IN_CURRENT_SCOPE","ANONYMOUS_RESTARG_IN_CURRENT_SCOPE"),r(c[0],"ANONYMOUS_RESTARG_INHERITED","ANONYMOUS_RESTARG_INHERITED"),r(c[0],"ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE","ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE"),r(c[0],"ANONYMOUS_KWRESTARG_INHERITED","ANONYMOUS_KWRESTARG_INHERITED"),r(c[0],"ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE","ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE"),r(c[0],"ANONYMOUS_BLOCKARG_INHERITED","ANONYMOUS_BLOCKARG_INHERITED"),i(l,"$initialize",(function(){return this.$reset()})),i(l,"$reset",(function(){return this.variables=_("Set")["$[]"](),this.stack=[]})),i(l,"$extend_static",(function(){var e=this;return e.stack.$push(e.variables),e.variables=_("Set")["$[]"](),e})),i(l,"$extend_dynamic",(function(){var e=this;return e.stack.$push(e.variables),e.variables=e.variables.$dup(),a(e.variables.$delete(_("ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE")))&&e.variables.$add(_("ANONYMOUS_BLOCKARG_INHERITED")),a(e.variables.$delete(_("ANONYMOUS_RESTARG_IN_CURRENT_SCOPE")))&&e.variables.$add(_("ANONYMOUS_RESTARG_INHERITED")),a(e.variables.$delete(_("ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE")))&&e.variables.$add(_("ANONYMOUS_KWRESTARG_INHERITED")),e})),i(l,"$unextend",(function(){var e=this;return e.variables=e.stack.$pop(),e})),i(l,"$declare",(function(e){return this.variables.$add(e.$to_sym()),this})),i(l,"$declared?",(function(e){return this.variables["$include?"](e.$to_sym())})),i(l,"$declare_forward_args",(function(){return this.$declare(_("FORWARD_ARGS"))})),i(l,"$declared_forward_args?",(function(){return this["$declared?"](_("FORWARD_ARGS"))})),i(l,"$declare_anonymous_blockarg",(function(){return this.$declare(_("ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE"))})),i(l,"$declared_anonymous_blockarg?",(function(){var e;return a(e=this["$declared?"](_("ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE")))?e:this["$declared?"](_("ANONYMOUS_BLOCKARG_INHERITED"))})),i(l,"$declared_anonymous_blockarg_in_current_scpe?",(function(){return this["$declared?"](_("ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE"))})),i(l,"$parent_has_anonymous_blockarg?",(function(){return s(this.stack,"any?",[],(function(e){return null==e&&(e=$),e["$include?"](_("ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE"))}))})),i(l,"$declare_anonymous_restarg",(function(){return this.$declare(_("ANONYMOUS_RESTARG_IN_CURRENT_SCOPE"))})),i(l,"$declared_anonymous_restarg?",(function(){var e;return a(e=this["$declared?"](_("ANONYMOUS_RESTARG_IN_CURRENT_SCOPE")))?e:this["$declared?"](_("ANONYMOUS_RESTARG_INHERITED"))})),i(l,"$declared_anonymous_restarg_in_current_scope?",(function(){return this["$declared?"](_("ANONYMOUS_RESTARG_IN_CURRENT_SCOPE"))})),i(l,"$parent_has_anonymous_restarg?",(function(){return s(this.stack,"any?",[],(function(e){return null==e&&(e=$),e["$include?"](_("ANONYMOUS_RESTARG_IN_CURRENT_SCOPE"))}))})),i(l,"$declare_anonymous_kwrestarg",(function(){return this.$declare(_("ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE"))})),i(l,"$declared_anonymous_kwrestarg?",(function(){var e;return a(e=this["$declared?"](_("ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE")))?e:this["$declared?"](_("ANONYMOUS_KWRESTARG_INHERITED"))})),i(l,"$declared_anonymous_kwrestarg_in_current_scope?",(function(){return this["$declared?"](_("ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE"))})),i(l,"$parent_has_anonymous_kwrestarg?",(function(){return s(this.stack,"any?",[],(function(e){return null==e&&(e=$),e["$include?"](_("ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE"))}))})),i(l,"$empty?",(function(){return this.stack["$empty?"]()}))}(l[0],0,l)}(o[0],o)},Opal.modules["parser/lexer-F0"]=function(e){var t=e.klass,n=e.truthy,r=e.send,i=e.rb_minus,a=e.def,s=e.gvars,o=e.eqeq,$=e.const_set,u=e.rb_plus,l=e.to_ary,c=e.rb_le,_=e.rb_gt,d=e.neqeq,p=e.eqeqeq,f=e.range,h=e.rb_ge,m=e.not,g=e.rb_lt,v=e.slice,b=[],y=e.$r(b),w=e.nil,x=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,-,construct_float,reset,Float,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(b,y,k){var G=t(b,null,"Lexer"),E=[G].concat(k),S=e.$r(E),O=G.$$prototype;return O.version=O.source_buffer=O.source_pts=O.strings=O.cs=O.cmdarg_stack=O.cmdarg=O.cond_stack=O.cond=O.token_queue=O._lex_actions=O.p=O.command_start=O.emit_integer=O.emit_rational=O.emit_imaginary=O.emit_imaginary_rational=O.emit_integer_re=O.emit_integer_if=O.emit_integer_rescue=O.emit_float=O.emit_imaginary_float=O.emit_float_if=O.emit_float_rescue=O.paren_nest=O.ts=O.te=O.stack=O.top=O.act=O.context=O.lambda_stack=O.static_env=O.newline_s=O.num_base=O.num_suffix_s=O.num_xfrm=O.eq_begin_s=O.cs_before_block_comment=O.tokens=O.comments=O.sharp_s=O.diagnostics=O.num_digits_s=w,function(e,t){e.$attr_accessor("_lex_actions"),e.$private("_lex_actions","_lex_actions=")}(e.get_singleton_class(G)),G["$_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(G)),G["$_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(G)),G["$_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(G)),G["$_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(G)),G["$_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(G)),G["$_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(G)),G["$_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(G)),G["$_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(G)),G["$_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(G)),G["$_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(G)),G["$lex_start="](128),function(e,t){e.$attr_accessor("lex_error")}(e.get_singleton_class(G)),G["$lex_error="](0),function(e,t){e.$attr_accessor("lex_en_expr_variable")}(e.get_singleton_class(G)),G["$lex_en_expr_variable="](129),function(e,t){e.$attr_accessor("lex_en_expr_fname")}(e.get_singleton_class(G)),G["$lex_en_expr_fname="](134),function(e,t){e.$attr_accessor("lex_en_expr_endfn")}(e.get_singleton_class(G)),G["$lex_en_expr_endfn="](247),function(e,t){e.$attr_accessor("lex_en_expr_dot")}(e.get_singleton_class(G)),G["$lex_en_expr_dot="](255),function(e,t){e.$attr_accessor("lex_en_expr_arg")}(e.get_singleton_class(G)),G["$lex_en_expr_arg="](276),function(e,t){e.$attr_accessor("lex_en_expr_cmdarg")}(e.get_singleton_class(G)),G["$lex_en_expr_cmdarg="](307),function(e,t){e.$attr_accessor("lex_en_expr_endarg")}(e.get_singleton_class(G)),G["$lex_en_expr_endarg="](313),function(e,t){e.$attr_accessor("lex_en_expr_mid")}(e.get_singleton_class(G)),G["$lex_en_expr_mid="](321),function(e,t){e.$attr_accessor("lex_en_expr_beg")}(e.get_singleton_class(G)),G["$lex_en_expr_beg="](345),function(e,t){e.$attr_accessor("lex_en_expr_labelarg")}(e.get_singleton_class(G)),G["$lex_en_expr_labelarg="](501),function(e,t){e.$attr_accessor("lex_en_expr_value")}(e.get_singleton_class(G)),G["$lex_en_expr_value="](508),function(e,t){e.$attr_accessor("lex_en_expr_end")}(e.get_singleton_class(G)),G["$lex_en_expr_end="](516),function(e,t){e.$attr_accessor("lex_en_leading_dot")}(e.get_singleton_class(G)),G["$lex_en_leading_dot="](696),function(e,t){e.$attr_accessor("lex_en_line_comment")}(e.get_singleton_class(G)),G["$lex_en_line_comment="](704),function(e,t){e.$attr_accessor("lex_en_line_begin")}(e.get_singleton_class(G)),G["$lex_en_line_begin="](710),function(e,t){e.$attr_accessor("lex_en_inside_string")}(e.get_singleton_class(G)),G["$lex_en_inside_string="](128),G.$attr_reader("source_buffer"),G.$attr_accessor("diagnostics"),G.$attr_accessor("static_env"),G.$attr_accessor("force_utf32"),G.$attr_accessor("cond","cmdarg","context","command_start"),G.$attr_accessor("tokens","comments"),G.$attr_reader("paren_nest","cmdarg_stack","cond_stack","lambda_stack","version"),a(G,"$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=n(t.$class()["$respond_to?"]("_lex_actions",!0))?t.$class().$send("_lex_actions"):[],t.emit_integer=r(t,"lambda",[],(function e(t,n){return null==t&&(t=w),null==n&&(n=w),(null==e.$$s?this:e.$$s).$emit("tINTEGER",t),n}),{$$s:t}),t.emit_rational=r(t,"lambda",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==t&&(t=w),null==n&&(n=w),r.$emit("tRATIONAL",r.$Rational(t)),n}),{$$s:t}),t.emit_imaginary=r(t,"lambda",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==t&&(t=w),null==n&&(n=w),r.$emit("tIMAGINARY",r.$Complex(0,t)),n}),{$$s:t}),t.emit_imaginary_rational=r(t,"lambda",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==t&&(t=w),null==n&&(n=w),r.$emit("tIMAGINARY",r.$Complex(0,r.$Rational(t))),n}),{$$s:t}),t.emit_integer_re=r(t,"lambda",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==r.ts&&(r.ts=w),null==r.te&&(r.te=w),null==t&&(t=w),null==n&&(n=w),r.$emit("tINTEGER",t,r.ts,i(r.te,2)),i(n,2)}),{$$s:t}),t.emit_integer_if=r(t,"lambda",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==r.ts&&(r.ts=w),null==r.te&&(r.te=w),null==t&&(t=w),null==n&&(n=w),r.$emit("tINTEGER",t,r.ts,i(r.te,2)),i(n,2)}),{$$s:t}),t.emit_integer_rescue=r(t,"lambda",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==r.ts&&(r.ts=w),null==r.te&&(r.te=w),null==t&&(t=w),null==n&&(n=w),r.$emit("tINTEGER",t,r.ts,i(r.te,6)),i(n,6)}),{$$s:t}),t.emit_float=r(t,"lambda",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==t&&(t=w),null==n&&(n=w),r.$emit("tFLOAT",r.$construct_float(t)),n}),{$$s:t}),t.emit_imaginary_float=r(t,"lambda",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==t&&(t=w),null==n&&(n=w),r.$emit("tIMAGINARY",r.$Complex(0,r.$construct_float(t))),n}),{$$s:t}),t.emit_float_if=r(t,"lambda",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==r.ts&&(r.ts=w),null==r.te&&(r.te=w),null==t&&(t=w),null==n&&(n=w),r.$emit("tFLOAT",r.$construct_float(t),r.ts,i(r.te,2)),i(n,2)}),{$$s:t}),t.emit_float_rescue=r(t,"lambda",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==r.ts&&(r.ts=w),null==r.te&&(r.te=w),null==t&&(t=w),null==n&&(n=w),r.$emit("tFLOAT",r.$construct_float(t),r.ts,i(r.te,6)),i(n,6)}),{$$s:t}),t.$reset()})),a(G,"$construct_float",(function(e){var t,n=this,r=w;return null==s.VERBOSE&&(s.VERBOSE=w),function(){try{return t=[s.VERBOSE,w],r=t[0],s.VERBOSE=t[1],n.$Float(e)}finally{s.VERBOSE=r}}()})),a(G,"$reset",(function(e){var t=this;return null==e&&(e=!0),n(e)&&(t.cs=t.$class().$lex_en_line_begin(),t.cond=S("StackState").$new("cond"),t.cmdarg=S("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=x(S("Parser"),"LexerStrings").$new(t,t.version)}),-1),a(G,"$source_buffer=",(function(e){var t,i=this,a=w;return i.source_buffer=e,n(i.source_buffer)?(a=i.source_buffer.$source(),o(a.$encoding(),x(S("Encoding"),"UTF_8"))?i.source_pts=a.$unpack("U*"):i.source_pts=a.$unpack("C*"),o(i.source_pts["$[]"](0),65279)&&(i.p=1)):i.source_pts=w,i.strings["$source_buffer="](i.source_buffer),t=[i.source_pts],r(i.strings,"source_pts=",t),t[t.length-1]})),a(G,"$encoding",(function(){return this.source_buffer.$source().$encoding()})),$(E[0],"LEX_STATES",new Map([["line_begin",G.$lex_en_line_begin()],["expr_dot",G.$lex_en_expr_dot()],["expr_fname",G.$lex_en_expr_fname()],["expr_value",G.$lex_en_expr_value()],["expr_beg",G.$lex_en_expr_beg()],["expr_mid",G.$lex_en_expr_mid()],["expr_arg",G.$lex_en_expr_arg()],["expr_cmdarg",G.$lex_en_expr_cmdarg()],["expr_end",G.$lex_en_expr_end()],["expr_endarg",G.$lex_en_expr_endarg()],["expr_endfn",G.$lex_en_expr_endfn()],["expr_labelarg",G.$lex_en_expr_labelarg()],["inside_string",G.$lex_en_inside_string()]])),a(G,"$state",(function(){return S("LEX_STATES").$invert().$fetch(this.cs,this.cs)})),a(G,"$state=",(function(e){return this.cs=S("LEX_STATES").$fetch(e)})),a(G,"$push_cmdarg",(function(){var e=this;return e.cmdarg_stack.$push(e.cmdarg),e.cmdarg=S("StackState").$new("cmdarg."+e.cmdarg_stack.$count())})),a(G,"$pop_cmdarg",(function(){return this.cmdarg=this.cmdarg_stack.$pop()})),a(G,"$push_cond",(function(){var e=this;return e.cond_stack.$push(e.cond),e.cond=S("StackState").$new("cond."+e.cond_stack.$count())})),a(G,"$pop_cond",(function(){return this.cond=this.cond_stack.$pop()})),a(G,"$dedent_level",(function(){return this.strings.$dedent_level()})),a(G,"$advance",(function(){var e,t,r,a,$,v=this,b=w,y=w,x=w,k=w,G=w,E=w,O=w,M=w,A=w,N=w,z=w,D=w,I=w,T=w,R=w,q=w,C=w,j=w,B=w,P=w,L=w,H=w,F=w,U=w,Y=w,V=w,K=w,W=w,X=w,J=w,Q=w,Z=w,ee=w,te=w,ne=w,re=w,ie=w,ae=w,se=w,oe=w,$e=w,ue=w,le=w;if(!n(v.token_queue["$empty?"]()))return v.token_queue.$shift();for(y=(b=v.$class()).$send("_lex_trans_keys"),x=b.$send("_lex_key_spans"),k=b.$send("_lex_index_offsets"),G=b.$send("_lex_indicies"),E=b.$send("_lex_trans_targs"),O=b.$send("_lex_trans_actions"),M=b.$send("_lex_to_state_actions"),A=b.$send("_lex_from_state_actions"),N=b.$send("_lex_eof_trans"),z=v._lex_actions,r=u(v.source_pts.$size(),2),D=(e=[v.p,r])[0],I=e[1],T=v.command_start,v.command_start=!1,!1,R=null==(e=l(t=w))[0]?w:e[0],q=null==e[1]?w:e[1],C=null==e[2]?w:e[2],j=null==e[3]?w:e[3],B=null==e[4]?w:e[4],P=null==e[5]?w:e[5],L=0,10,15,a=20,30,$=40;n(!0);){if(H=!1,n(c(L,0))){if(o(D,r)){L=30;continue}if(o(v.cs,0)){L=$;continue}}if(n(c(L,10))){for(B=A["$[]"](v.cs),P=z["$[]"](B),B=u(B,1);n(_(P,0));)if(P=i(P,1),B=u(B,1),52===z["$[]"](i(B,1)).valueOf())v.ts=D;if(n(H))continue;C=v.cs["$<<"](1),j=k["$[]"](v.cs),R=x["$[]"](v.cs),F=n(U=v.source_pts["$[]"](D))?U:0,q=n(_(R,0))&&n(c(y["$[]"](C),F))&&n(c(F,y["$[]"](u(C,1))))?G["$[]"](i(u(j,F),y["$[]"](C))):G["$[]"](u(j,R))}if(n(c(L,15))){if(v.cs=E["$[]"](q),d(O["$[]"](q),0))for(B=O["$[]"](q),P=z["$[]"](B),B=u(B,1);n(_(P,0));)if(P=i(P,1),B=u(B,1),p(0,U=z["$[]"](i(B,1))))v.newline_s=D;else if(p(1,U))v.num_xfrm=v.emit_integer;else if(p(2,U))v.num_xfrm=v.emit_rational;else if(p(3,U))v.num_xfrm=v.emit_imaginary;else if(p(4,U))v.num_xfrm=v.emit_imaginary_rational;else if(p(5,U))v.num_xfrm=v.emit_integer_re;else if(p(6,U))v.num_xfrm=v.emit_integer_if;else if(p(7,U))v.num_xfrm=v.emit_integer_rescue;else if(p(8,U))v.num_xfrm=v.emit_float;else if(p(9,U))v.num_xfrm=v.emit_imaginary_float;else if(p(10,U))v.num_xfrm=v.emit_float_if;else if(p(11,U))v.num_xfrm=v.emit_rational;else if(p(12,U))v.num_xfrm=v.emit_imaginary_rational;else if(p(13,U))v.num_xfrm=v.emit_float_rescue;else if(p(14,U))v.$e_lbrace();else if(p(15,U)){if(n(v.strings.$close_interp_on_current_literal(D))){D=i(D,1),v.cs=128,D=u(D,1),H=!0,L=$;break}v.paren_nest=i(v.paren_nest,1)}else if(p(16,U))D=v.$on_newline(D);else if(p(17,U))v.sharp_s=i(D,1);else if(p(18,U))v.$emit_comment_from_range(D,r);else if(p(19,U))Y=D;else if(p(20,U))Y=i(D,2);else if(p(21,U))Y=D;else if(p(22,U))Y=i(D,2);else if(p(23,U))Y=i(D,2);else if(p(24,U))Y=i(D,2);else if(p(25,U))Y=i(D,3);else if(p(26,U))Y=i(D,2);else if(p(27,U))Y=i(D,2);else if(p(28,U))v.cond.$push(!1),v.cmdarg.$push(!1),v.paren_nest=u(v.paren_nest,1);else if(p(29,U))v.paren_nest=i(v.paren_nest,1);else if(p(30,U))v.cond.$push(!1),v.cmdarg.$push(!1),v.paren_nest=u(v.paren_nest,1),n(v["$version?"](18))&&(v.command_start=!0);else if(p(31,U))v.paren_nest=i(v.paren_nest,1);else if(p(32,U))Y=D;else if(p(33,U))Y=D;else if(p(34,U))Y=D;else if(p(35,U))V=D;else if(p(36,U))K=D;else if(p(37,U))Y=i(D,1),W="ivar_name";else if(p(38,U))Y=i(D,2),W="cvar_name";else if(p(39,U))Y=D;else if(p(40,U))X=v.$tok(),J=v.ts,Q=v.te;else if(p(41,U))v.num_base=16,v.num_digits_s=D;else if(p(42,U))v.num_base=10,v.num_digits_s=D;else if(p(43,U))v.num_base=8,v.num_digits_s=D;else if(p(44,U))v.num_base=2,v.num_digits_s=D;else if(p(45,U))v.num_base=10,v.num_digits_s=v.ts;else if(p(46,U))v.num_base=8,v.num_digits_s=v.ts;else if(p(47,U))v.num_suffix_s=D;else if(p(48,U))v.num_suffix_s=D;else if(p(49,U))v.num_suffix_s=D;else if(p(50,U))Y=D;else if(p(53,U))v.te=u(D,1);else{if(p(54,U)){v.te=u(D,1),v.$emit_global_var(),v.cs=v.$stack_pop(),D=u(D,1),H=!0,L=$;break}if(p(55,U)){v.te=D,D=i(D,1),v.$emit_global_var(),v.cs=v.$stack_pop(),D=u(D,1),H=!0,L=$;break}if(p(56,U)){v.te=D,D=i(D,1),v.$emit_class_var(),v.cs=v.$stack_pop(),D=u(D,1),H=!0,L=$;break}if(p(57,U)){v.te=D,D=i(D,1),v.$emit_instance_var(),v.cs=v.$stack_pop(),D=u(D,1),H=!0,L=$;break}if(p(58,U))v.act=4;else if(p(59,U))v.act=5;else if(p(60,U))v.act=6;else{if(p(61,U)){v.te=u(D,1),v.$emit_table(S("KEYWORDS_BEGIN")),v.cs=247,D=u(D,1),H=!0,L=$;break}if(p(62,U)){v.te=u(D,1),v.$emit("tIDENTIFIER"),v.cs=247,D=u(D,1),H=!0,L=$;break}if(p(63,U)){v.te=u(D,1),D=i(v.ts,1),v.cs=516,v.stack["$[]="](v.top,v.cs),v.top=u(v.top,1),v.cs=129,H=!0,L=a;break}if(p(64,U)){v.te=u(D,1),v.$emit_table(S("PUNCTUATION")),v.cs=247,D=u(D,1),H=!0,L=$;break}if(p(65,U)){v.te=u(D,1),D=i(D,1),D=i(D,1),v.cs=516,H=!0,L=a;break}if(p(66,U)){if(v.te=u(D,1),n(v["$version?"](23))){Z=(e=[v.$tok()["$[]"](f(0,-2,!1)),v.$tok()["$[]"](-1).$chr()])[0],ee=e[1],v.strings.$push_literal(Z,ee,v.ts),v.cs=128,H=!0,L=a;break}D=i(v.ts,1),v.cs=516,H=!0,L=a;break}if(p(67,U)){v.te=u(D,1),D=i(D,1),v.cs=516,H=!0,L=a;break}if(p(68,U)){v.te=u(D,1),D=i(D,1),D=u(D,1),H=!0,L=$;break}if(p(69,U)){v.te=D,D=i(D,1),v.$emit_table(S("KEYWORDS_BEGIN")),v.cs=247,D=u(D,1),H=!0,L=$;break}if(p(70,U)){v.te=D,D=i(D,1),v.$emit("tCONSTANT"),v.cs=247,D=u(D,1),H=!0,L=$;break}if(p(71,U)){v.te=D,D=i(D,1),v.$emit("tIDENTIFIER"),v.cs=247,D=u(D,1),H=!0,L=$;break}if(p(72,U)){v.te=D,D=i(D,1),D=i(v.ts,1),v.cs=516,v.stack["$[]="](v.top,v.cs),v.top=u(v.top,1),v.cs=129,H=!0,L=a;break}if(p(73,U)){v.te=D,D=i(D,1),v.$emit_table(S("PUNCTUATION")),v.cs=247,D=u(D,1),H=!0,L=$;break}if(p(74,U)){v.te=D,D=i(D,1),D=i(D,1),v.cs=345,H=!0,L=a;break}if(p(75,U))v.te=D,D=i(D,1);else{if(p(76,U)){v.te=D,D=i(D,1),D=i(D,1),v.cs=516,H=!0,L=a;break}if(p(77,U)){D=i(v.te,1),v.$emit_table(S("PUNCTUATION")),v.cs=247,D=u(D,1),H=!0,L=$;break}if(p(78,U)){D=i(v.te,1),D=i(D,1),v.cs=516,H=!0,L=a;break}if(p(79,U)){if(p(4,te=v.act)){D=i(v.te,1),v.$emit_table(S("KEYWORDS_BEGIN")),v.cs=247,D=u(D,1),H=!0,L=$;break}if(p(5,te)){D=i(v.te,1),v.$emit("tCONSTANT"),v.cs=247,D=u(D,1),H=!0,L=$;break}if(p(6,te)){D=i(v.te,1),v.$emit("tIDENTIFIER"),v.cs=247,D=u(D,1),H=!0,L=$;break}}else{if(p(80,U)){v.te=u(D,1),v.$emit("tLABEL",v.$tok(v.ts,i(v.te,2)),v.ts,i(v.te,1)),D=i(D,1),v.cs=501,D=u(D,1),H=!0,L=$;break}if(p(81,U)){if(v.te=u(D,1),n(h(v.version,31))&&n(v.context.$in_argdef())){v.$emit("tBDOT3","...".$freeze()),v.cs=516,D=u(D,1),H=!0,L=$;break}D=i(D,3),v.cs=516,H=!0,L=a;break}if(p(82,U)){v.te=u(D,1),D=i(D,1),v.cs=516,H=!0,L=a;break}if(p(83,U)){v.te=u(D,1),D=i(D,1),D=u(D,1),H=!0,L=$;break}if(p(84,U))v.te=D,D=i(D,1);else{if(p(85,U)){v.te=D,D=i(D,1),D=i(D,1),v.cs=516,H=!0,L=a;break}if(p(86,U)){D=i(v.te,1),D=i(D,1),v.cs=516,H=!0,L=a;break}if(p(87,U)){v.te=u(D,1),v.$emit_table(S("PUNCTUATION")),v.cs=276,D=u(D,1),H=!0,L=$;break}if(p(88,U)){v.te=u(D,1),D=i(D,1),v.cs=516,H=!0,L=a;break}if(p(89,U)){v.te=u(D,1),D=i(D,1),D=u(D,1),H=!0,L=$;break}if(p(90,U)){v.te=D,D=i(D,1),v.$emit("tCONSTANT"),v.cs=v.$arg_or_cmdarg(T),D=u(D,1),H=!0,L=$;break}if(p(91,U)){v.te=D,D=i(D,1),v.$emit("tIDENTIFIER"),v.cs=v.$arg_or_cmdarg(T),D=u(D,1),H=!0,L=$;break}if(p(92,U)){v.te=D,D=i(D,1),v.$emit("tFID",v.$tok(v.ts,Y),v.ts,Y),v.cs=v.$arg_or_cmdarg(T),D=i(Y,1),D=u(D,1),H=!0,L=$;break}if(p(93,U)){v.te=D,D=i(D,1),v.$emit_table(S("PUNCTUATION")),v.cs=276,D=u(D,1),H=!0,L=$;break}if(p(94,U))v.te=D,D=i(D,1);else{if(p(95,U)){v.te=D,D=i(D,1),D=i(D,1),v.cs=516,H=!0,L=a;break}if(p(96,U))v.act=33;else if(p(97,U))v.act=34;else if(p(98,U))v.act=39;else if(p(99,U))v.act=40;else{if(p(100,U)){v.te=u(D,1),D=i(v.ts,1),v.cs=516,H=!0,L=a;break}if(p(101,U)){v.te=u(D,1),v.$check_ambiguous_slash(Y),D=i(Y,1),v.cs=345,H=!0,L=a;break}if(p(102,U)){v.te=u(D,1),D=i(D,1),D=i(D,1),v.cs=345,H=!0,L=a;break}if(p(103,U)){v.te=u(D,1),D=i(v.ts,1),v.cs=345,H=!0,L=a;break}if(p(104,U)){v.te=u(D,1),D=i(Y,1),v.cs=516,H=!0,L=a;break}if(p(105,U)){v.te=u(D,1),D=i(v.ts,1),v.cs=516,H=!0,L=a;break}if(p(106,U)){v.te=u(D,1),D=i(D,1),v.cs=345,H=!0,L=a;break}if(p(107,U)){v.te=u(D,1),D=i(D,1),D=u(D,1),H=!0,L=$;break}if(p(108,U)){if(v.te=D,D=i(D,1),n(v["$version?"](18))){v.$emit("tLPAREN2","(".$freeze(),i(v.te,1),v.te),v.cs=508,D=u(D,1),H=!0,L=$;break}v.$emit("tLPAREN_ARG","(".$freeze(),i(v.te,1),v.te),v.cs=345,D=u(D,1),H=!0,L=$;break}if(p(109,U)){v.te=D,D=i(D,1),v.$emit("tLPAREN2","(".$freeze()),v.cs=345,D=u(D,1),H=!0,L=$;break}if(p(110,U)){v.te=D,D=i(D,1),v.$emit("tLBRACK","[".$freeze(),i(v.te,1),v.te),v.cs=345,D=u(D,1),H=!0,L=$;break}if(p(111,U)){v.te=D,D=i(D,1),o(v.lambda_stack.$last(),v.paren_nest)?(v.lambda_stack.$pop(),v.$emit("tLAMBEG","{".$freeze(),i(v.te,1),v.te)):v.$emit("tLCURLY","{".$freeze(),i(v.te,1),v.te),v.command_start=!0,v.paren_nest=u(v.paren_nest,1),v.cs=508,D=u(D,1),H=!0,L=$;break}if(p(112,U)){v.te=D,D=i(D,1),D=i(D,1),v.cs=345,H=!0,L=a;break}if(p(113,U)){v.te=D,D=i(D,1),v.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",v.$tok(Y,v.te)]]),v.$range(Y,v.te)),D=i(Y,1),v.cs=345,H=!0,L=a;break}if(p(114,U)){v.te=D,D=i(D,1),D=i(D,1),v.cs=345,H=!0,L=a;break}if(p(115,U)){v.te=D,D=i(D,1),D=i(v.ts,1),v.cs=516,H=!0,L=a;break}if(p(116,U))v.te=D,D=i(D,1);else{if(p(117,U)){v.te=D,D=i(D,1),v.cs=516,H=!0,L=a;break}if(p(118,U)){v.te=D,D=i(D,1),D=i(D,1),v.cs=516,H=!0,L=a;break}if(p(119,U)){v.te=D,D=i(D,1),D=i(D,1),v.cs=345,H=!0,L=a;break}if(p(120,U))D=i(v.te,1);else{if(p(121,U)){D=i(v.te,1),D=i(D,1),v.cs=345,H=!0,L=a;break}if(p(122,U)){if(p(33,te=v.act)){D=i(v.te,1),v.$check_ambiguous_slash(Y),D=i(Y,1),v.cs=345,H=!0,L=a;break}if(p(34,te)){D=i(v.te,1),v.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",v.$tok(Y,v.te)]]),v.$range(Y,v.te)),D=i(Y,1),v.cs=345,H=!0,L=a;break}if(p(39,te)){D=i(v.te,1),D=i(v.ts,1),v.cs=516,H=!0,L=a;break}D=i(v.te,1)}else if(p(123,U))v.act=46;else if(p(124,U))v.act=47;else{if(p(125,U)){v.te=u(D,1),D=i(v.ts,1),v.cs=276,H=!0,L=a;break}if(p(126,U)){v.te=u(D,1),D=i(D,1),D=u(D,1),H=!0,L=$;break}if(p(127,U)){if(v.te=D,D=i(D,1),v.$emit("tLPAREN_ARG","(".$freeze(),i(v.te,1),v.te),n(v["$version?"](18))){v.cs=508,D=u(D,1),H=!0,L=$;break}v.cs=345,D=u(D,1),H=!0,L=$;break}if(p(128,U)){v.te=D,D=i(D,1),D=i(v.ts,1),v.cs=276,H=!0,L=a;break}if(p(129,U)){D=i(v.te,1),D=i(v.ts,1),v.cs=276,H=!0,L=a;break}if(p(130,U)){if(p(46,te=v.act)){D=i(v.te,1),n(v.cond["$active?"]())?v.$emit("kDO_COND","do".$freeze(),i(v.te,2),v.te):v.$emit("kDO","do".$freeze(),i(v.te,2),v.te),v.cs=508,D=u(D,1),H=!0,L=$;break}if(p(47,te)){D=i(v.te,1),D=i(v.ts,1),v.cs=276,H=!0,L=a;break}}else{if(p(131,U)){v.te=u(D,1),v.$emit_do(!0),v.cs=508,D=u(D,1),H=!0,L=$;break}if(p(132,U)){v.te=u(D,1),D=i(D,1),v.cs=516,H=!0,L=a;break}if(p(133,U)){v.te=u(D,1),D=i(D,1),D=u(D,1),H=!0,L=$;break}if(p(134,U)){v.te=D,D=i(D,1),o(v.lambda_stack.$last(),v.paren_nest)?(v.lambda_stack.$pop(),v.$emit("tLAMBEG","{".$freeze())):v.$emit("tLBRACE_ARG","{".$freeze()),v.paren_nest=u(v.paren_nest,1),v.command_start=!0,v.cs=508,D=u(D,1),H=!0,L=$;break}if(p(135,U))v.te=D,D=i(D,1);else{if(p(136,U)){v.te=D,D=i(D,1),D=i(D,1),v.cs=516,H=!0,L=a;break}if(p(137,U))v.act=54;else if(p(138,U))v.act=55;else{if(p(139,U)){v.te=u(D,1),D=i(D,1),v.cs=345,H=!0,L=a;break}if(p(140,U)){v.te=u(D,1),D=i(D,1),D=u(D,1),H=!0,L=$;break}if(p(141,U)){v.te=D,D=i(D,1),D=i(v.ts,1),v.cs=345,H=!0,L=a;break}if(p(142,U))v.te=D,D=i(D,1);else{if(p(143,U)){v.te=D,D=i(D,1),D=i(D,1),v.cs=516,H=!0,L=a;break}if(p(144,U)){v.te=D,D=i(D,1),D=i(D,1),v.cs=345,H=!0,L=a;break}if(p(145,U)){if(p(54,te=v.act)){D=i(v.te,1),v.$emit_table(S("KEYWORDS")),v.cs=345,D=u(D,1),H=!0,L=$;break}if(p(55,te)){D=i(v.te,1),D=i(v.ts,1),v.cs=345,H=!0,L=a;break}}else if(p(146,U))v.act=60;else if(p(147,U))v.act=67;else if(p(148,U))v.act=76;else if(p(149,U))v.act=80;else if(p(150,U))v.act=81;else if(p(151,U))v.act=82;else if(p(152,U))v.act=86;else if(p(153,U))v.act=87;else if(p(154,U))v.act=91;else{if(p(155,U)){v.te=u(D,1),v.$emit("tUNARY_NUM",v.$tok(v.ts,u(v.ts,1)),v.ts,u(v.ts,1)),D=i(D,1),v.cs=516,D=u(D,1),H=!0,L=$;break}if(p(156,U)){v.te=u(D,1),Z=ee=v.$tok()["$[]"](0).$chr(),v.strings.$push_literal(Z,ee,v.ts),D=i(D,1),v.cs=128,H=!0,L=a;break}if(p(157,U)){v.te=u(D,1),Z=(e=[v.source_buffer.$slice(v.ts,1).$chr(),v.$tok()["$[]"](-1).$chr()])[0],ee=e[1],v.strings.$push_literal(Z,ee,v.ts),v.cs=128,H=!0,L=a;break}if(p(158,U)){v.te=u(D,1),Z=(e=[v.$tok()["$[]"](f(0,-2,!1)),v.$tok()["$[]"](-1).$chr()])[0],ee=e[1],v.strings.$push_literal(Z,ee,v.ts),v.cs=128,H=!0,L=a;break}if(p(159,U)){v.te=u(D,1),D=i(D,1),D=i(D,1),v.$emit("tSYMBEG",v.$tok(v.ts,u(v.ts,1)),v.ts,u(v.ts,1)),v.cs=134,H=!0,L=a;break}if(p(160,U)){v.te=u(D,1),Z=(e=[v.$tok(),v.$tok()["$[]"](-1).$chr()])[0],ee=e[1],v.strings.$push_literal(Z,ee,v.ts),v.cs=128,H=!0,L=a;break}if(p(161,U)){v.te=u(D,1),v.$emit("tSYMBOL",v.$tok(u(v.ts,1),u(v.ts,2))),v.cs=516,D=u(D,1),H=!0,L=$;break}if(p(162,U)){v.te=u(D,1),ne=v.$tok(u(v.ts,1)),n(h(v.version,33))&&n(ne["$start_with?"]("$0"))&&n(_(ne.$length(),2))&&v.$diagnostic("error","gvar_name",new Map([["name",ne]]),v.$range(u(v.ts,1),v.te)),v.$emit("tSYMBOL",ne,v.ts),v.cs=516,D=u(D,1),H=!0,L=$;break}if(p(163,U)){if(v.te=u(D,1),t=v.strings.$read_character_constant(v.ts),D=null==(e=l(t))[0]?w:e[0],re=null==e[1]?w:e[1],D=i(D,1),n(v.token_queue["$empty?"]())){v.cs=re,H=!0,L=a;break}v.cs=re,D=u(D,1),H=!0,L=$;break}if(p(164,U))v.te=u(D,1),v.$diagnostic("fatal","incomplete_escape",w,v.$range(v.ts,u(v.ts,1)));else{if(p(165,U)){v.te=u(D,1),v.$emit_table(S("PUNCTUATION_BEGIN")),D=u(D,1),H=!0,L=$;break}if(p(166,U)){v.te=u(D,1),D=i(D,1),n(v["$version?"](18))?(ie=v.$tok(v.ts,i(v.te,2)),v.$emit(n(v.source_buffer.$slice(v.ts,1)["$=~"](/[A-Z]/))?"tCONSTANT":"tIDENTIFIER",ie,v.ts,i(v.te,2)),D=i(D,1),m(v.static_env["$nil?"]())&&n(v.static_env["$declared?"](ie))?v.cs=516:v.cs=v.$arg_or_cmdarg(T)):(v.$emit("tLABEL",v.$tok(v.ts,i(v.te,2)),v.ts,i(v.te,1)),v.cs=501),D=u(D,1),H=!0,L=$;break}if(p(167,U)){v.te=u(D,1),ae=i(v.te,1)["$=="](v.newline_s),se=!1,oe=n(ae)?i(v.te,1):v.te,n(h(v.version,30))?n(v.lambda_stack["$any?"]())&&o(u(v.lambda_stack.$last(),1),v.paren_nest)?v.$emit("tDOT3","...".$freeze(),v.ts,oe):(v.$emit("tBDOT3","...".$freeze(),v.ts,oe),n(h(v.version,31))&&n(ae)&&n(v.context.$in_argdef())&&(v.$emit("tNL",i(v.te,1),v.te),se=!0)):n(h(v.version,27))?v.$emit("tBDOT3","...".$freeze(),v.ts,oe):v.$emit("tDOT3","...".$freeze(),v.ts,oe),n(ae)&&m(se)&&(D=i(D,1)),v.cs=345,D=u(D,1),H=!0,L=$;break}if(p(168,U)){v.te=u(D,1),v.$emit("tIDENTIFIER",X,J,Q),D=i(Q,1),m(v.static_env["$nil?"]())&&n(v.static_env["$declared?"](X))&&n(g(v.version,25))?v.cs=247:v.cs=307,D=u(D,1),H=!0,L=$;break}if(p(169,U)){v.te=u(D,1),D=i(v.ts,1),v.cs_before_block_comment=v.cs,v.cs=710,H=!0,L=a;break}if(p(170,U)){v.te=u(D,1),D=i(v.ts,1),v.cs=516,H=!0,L=a;break}if(p(171,U)){v.te=u(D,1),D=i(D,1),D=u(D,1),H=!0,L=$;break}if(p(172,U)){v.te=D,D=i(D,1),v.$emit("tUNARY_NUM",v.$tok(v.ts,u(v.ts,1)),v.ts,u(v.ts,1)),D=i(D,1),v.cs=516,D=u(D,1),H=!0,L=$;break}if(p(173,U)){v.te=D,D=i(D,1),v.$emit("tSTAR","*".$freeze()),D=u(D,1),H=!0,L=$;break}if(p(174,U))v.te=D,D=i(D,1),v.$diagnostic("fatal","string_eof",w,v.$range(v.ts,u(v.ts,1)));else if(p(175,U)){if(v.te=D,D=i(D,1),v.$tok(v.ts,V)["$=~"](/^<<(-?)(~?)(["'`]?)(.*)\3$/m),$e=n(te=((e=s["~"])===w?w:e["$[]"](1))["$empty?"]()["$!"]())?te:((e=s["~"])===w?w:e["$[]"](2))["$empty?"]()["$!"](),ue=((e=s["~"])===w?w:e["$[]"](2))["$empty?"]()["$!"](),Z=n(((e=s["~"])===w?w:e["$[]"](3))["$empty?"]())?'<<"'.$freeze():u("<<".$freeze(),(e=s["~"])===w?w:e["$[]"](3)),ee=(e=s["~"])===w?w:e["$[]"](4),n(h(v.version,27))?(n(_(ee.$count("\n"),0))||n(_(ee.$count("\r"),0)))&&v.$diagnostic("error","unterminated_heredoc_id",w,v.$range(v.ts,u(v.ts,1))):n(h(v.version,24))&&n(_(ee.$count("\n"),0))&&(n(ee["$end_with?"]("\n"))?(v.$diagnostic("warning","heredoc_id_ends_with_nl",w,v.$range(v.ts,u(v.ts,1))),ee=ee.$rstrip()):v.$diagnostic("fatal","heredoc_id_has_newline",w,v.$range(v.ts,u(v.ts,1)))),n(ue)&&n(v["$version?"](18,19,20,21,22))){v.$emit("tLSHFT","<<".$freeze(),v.ts,u(v.ts,2)),D=u(v.ts,1),v.cs=345,D=u(D,1),H=!0,L=$;break}v.strings.$push_literal(Z,ee,v.ts,V,$e,ue),n(te=v.strings.$herebody_s())||v.strings["$herebody_s="](K),D=i(v.strings.$herebody_s(),1),v.cs=128}else if(p(176,U))v.te=D,D=i(D,1),v.$diagnostic("error","unterminated_heredoc_id",w,v.$range(v.ts,u(v.ts,1)));else{if(p(177,U)){v.te=D,D=i(D,1),v.$emit("tSYMBOL",v.$tok(u(v.ts,1),Y),v.ts,Y),D=i(Y,1),v.cs=516,D=u(D,1),H=!0,L=$;break}if(p(178,U)){v.te=D,D=i(D,1),ne=v.$tok(u(v.ts,1)),n(h(v.version,33))&&n(ne["$start_with?"]("$0"))&&n(_(ne.$length(),2))&&v.$diagnostic("error","gvar_name",new Map([["name",ne]]),v.$range(u(v.ts,1),v.te)),v.$emit("tSYMBOL",ne,v.ts),v.cs=516,D=u(D,1),H=!0,L=$;break}if(p(179,U)){v.te=D,D=i(D,1),v.$emit_colon_with_digits(D,Y,W),v.cs=516,D=u(D,1),H=!0,L=$;break}if(p(180,U))v.te=D,D=i(D,1),v.$diagnostic("fatal","incomplete_escape",w,v.$range(v.ts,u(v.ts,1)));else{if(p(181,U)){v.te=D,D=i(D,1),o(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=u(v.paren_nest,1),D=u(D,1),H=!0,L=$;break}if(p(182,U)){v.te=D,D=i(D,1),v.$emit("tLBRACK","[".$freeze()),D=u(D,1),H=!0,L=$;break}if(p(183,U)){v.te=D,D=i(D,1),v.$emit("tLPAREN","(".$freeze()),D=u(D,1),H=!0,L=$;break}if(p(184,U)){v.te=D,D=i(D,1),v.$emit_table(S("PUNCTUATION_BEGIN")),D=u(D,1),H=!0,L=$;break}if(p(185,U)){v.te=D,D=i(D,1),v.$emit("kRESCUE","rescue".$freeze(),v.ts,Y),D=i(Y,1),v.cs=321,D=u(D,1),H=!0,L=$;break}if(p(186,U)){v.te=D,D=i(D,1),n(h(v.version,27))?v.$emit("tBDOT2"):v.$emit("tDOT2"),v.cs=345,D=u(D,1),H=!0,L=$;break}if(p(187,U)){v.te=D,D=i(D,1),ae=i(v.te,1)["$=="](v.newline_s),se=!1,oe=n(ae)?i(v.te,1):v.te,n(h(v.version,30))?n(v.lambda_stack["$any?"]())&&o(u(v.lambda_stack.$last(),1),v.paren_nest)?v.$emit("tDOT3","...".$freeze(),v.ts,oe):(v.$emit("tBDOT3","...".$freeze(),v.ts,oe),n(h(v.version,31))&&n(ae)&&n(v.context.$in_argdef())&&(v.$emit("tNL",i(v.te,1),v.te),se=!0)):n(h(v.version,27))?v.$emit("tBDOT3","...".$freeze(),v.ts,oe):v.$emit("tDOT3","...".$freeze(),v.ts,oe),n(ae)&&m(se)&&(D=i(D,1)),v.cs=345,D=u(D,1),H=!0,L=$;break}if(p(188,U)){v.te=D,D=i(D,1),D=i(v.ts,1),v.cs=516,H=!0,L=a;break}if(p(189,U)){if(v.te=D,D=i(D,1),v.$emit("tIDENTIFIER"),m(v.static_env["$nil?"]())&&n(v.static_env["$declared?"](v.$tok()))){v.cs=247,D=u(D,1),H=!0,L=$;break}if(n(h(v.version,32))&&n(v.$tok()["$=~"](/^_[1-9]$/))){v.cs=247,D=u(D,1),H=!0,L=$;break}v.cs=v.$arg_or_cmdarg(T),D=u(D,1),H=!0,L=$;break}if(p(190,U))v.te=D,D=i(D,1);else{if(p(191,U)){v.te=D,D=i(D,1),D=i(v.ts,1),v.cs_before_block_comment=v.cs,v.cs=710,H=!0,L=a;break}if(p(192,U)){v.te=D,D=i(D,1),D=i(v.ts,1),v.cs=516,H=!0,L=a;break}if(p(193,U))D=i(v.te,1),v.$diagnostic("fatal","string_eof",w,v.$range(v.ts,u(v.ts,1)));else if(p(194,U))D=i(v.te,1),v.$diagnostic("error","unterminated_heredoc_id",w,v.$range(v.ts,u(v.ts,1)));else{if(p(195,U)){if(D=i(v.te,1),v.$emit("tIDENTIFIER"),m(v.static_env["$nil?"]())&&n(v.static_env["$declared?"](v.$tok()))){v.cs=247,D=u(D,1),H=!0,L=$;break}if(n(h(v.version,32))&&n(v.$tok()["$=~"](/^_[1-9]$/))){v.cs=247,D=u(D,1),H=!0,L=$;break}v.cs=v.$arg_or_cmdarg(T),D=u(D,1),H=!0,L=$;break}if(p(196,U))D=i(v.te,1);else{if(p(197,U)){D=i(v.te,1),D=i(v.ts,1),v.cs=516,H=!0,L=a;break}if(p(198,U)){if(p(60,te=v.act)){D=i(v.te,1),v.$emit("tUNARY_NUM",v.$tok(v.ts,u(v.ts,1)),v.ts,u(v.ts,1)),D=i(D,1),v.cs=516,D=u(D,1),H=!0,L=$;break}if(p(67,te))D=i(v.te,1),v.$diagnostic("error","unterminated_heredoc_id",w,v.$range(v.ts,u(v.ts,1)));else{if(p(76,te)){if(D=i(v.te,1),n(h(v.version,27))){v.$emit("tPIPE",v.$tok(v.ts,u(v.ts,1)),v.ts,u(v.ts,1)),D=i(D,1),v.cs=345,D=u(D,1),H=!0,L=$;break}D=i(D,2),v.cs=516,H=!0,L=a;break}if(p(80,te)){D=i(v.te,1),v.$emit_table(S("PUNCTUATION_BEGIN")),D=u(D,1),H=!0,L=$;break}if(p(81,te)){D=i(v.te,1),v.$emit("kRESCUE","rescue".$freeze(),v.ts,Y),D=i(Y,1),v.cs=321,D=u(D,1),H=!0,L=$;break}if(p(82,te)){D=i(v.te,1),v.$emit_table(S("KEYWORDS_BEGIN")),v.command_start=!0,v.cs=508,D=u(D,1),H=!0,L=$;break}if(p(86,te)){D=i(v.te,1),D=i(v.ts,1),v.cs=516,H=!0,L=a;break}if(p(87,te)){if(D=i(v.te,1),v.$emit("tIDENTIFIER"),m(v.static_env["$nil?"]())&&n(v.static_env["$declared?"](v.$tok()))){v.cs=247,D=u(D,1),H=!0,L=$;break}if(n(h(v.version,32))&&n(v.$tok()["$=~"](/^_[1-9]$/))){v.cs=247,D=u(D,1),H=!0,L=$;break}v.cs=v.$arg_or_cmdarg(T),D=u(D,1),H=!0,L=$;break}if(p(91,te)){D=i(v.te,1),D=i(v.ts,1),v.cs=516,H=!0,L=a;break}}}else{if(p(199,U)){v.te=u(D,1),D=i(D,1),v.cs=345,H=!0,L=a;break}if(p(200,U)){v.te=u(D,1),D=i(D,1),D=u(D,1),H=!0,L=$;break}if(p(201,U))v.te=D,D=i(D,1);else{if(p(202,U)){if(v.te=D,D=i(D,1),n(v.context.$in_kwarg())){D=i(D,1),v.cs=516,H=!0,L=a;break}v.cs=710,H=!0,L=a;break}if(p(203,U)){v.te=D,D=i(D,1),D=i(D,1),v.cs=345,H=!0,L=a;break}if(p(204,U)){v.te=u(D,1),D=i(v.ts,1),v.cs=516,H=!0,L=a;break}if(p(205,U)){v.te=u(D,1),v.strings.$push_literal(v.$tok(),v.$tok(),v.ts),v.cs=128,H=!0,L=a;break}if(p(206,U)){v.te=u(D,1),D=i(D,1),v.cs=345,H=!0,L=a;break}if(p(207,U)){v.te=u(D,1),D=i(D,1),D=u(D,1),H=!0,L=$;break}if(p(208,U))v.te=D,D=i(D,1);else{if(p(209,U)){v.te=D,D=i(D,1),v.cs=710,H=!0,L=a;break}if(p(210,U)){v.te=D,D=i(D,1),D=i(D,1),v.cs=345,H=!0,L=a;break}if(p(211,U)){D=i(v.te,1),D=i(D,1),v.cs=345,H=!0,L=a;break}if(p(212,U))v.act=104;else if(p(213,U))v.act=105;else if(p(214,U))v.act=106;else if(p(215,U))v.act=107;else if(p(216,U))v.act=108;else if(p(217,U))v.act=109;else if(p(218,U))v.act=110;else if(p(219,U))v.act=111;else if(p(220,U))v.act=112;else if(p(221,U))v.act=113;else if(p(222,U))v.act=115;else if(p(223,U))v.act=116;else if(p(224,U))v.act=117;else if(p(225,U))v.act=119;else if(p(226,U))v.act=123;else if(p(227,U))v.act=124;else if(p(228,U))v.act=126;else if(p(229,U))v.act=127;else{if(p(230,U)){v.te=u(D,1),v.$emit("tLAMBDA","->".$freeze(),v.ts,u(v.ts,2)),v.lambda_stack.$push(v.paren_nest),v.cs=247,D=u(D,1),H=!0,L=$;break}if(p(231,U)){v.te=u(D,1),v.$emit_singleton_class(),v.cs=508,D=u(D,1),H=!0,L=$;break}if(p(232,U)){v.te=u(D,1),Z=(e=[v.$tok(),v.$tok()["$[]"](-1).$chr()])[0],ee=e[1],v.strings.$push_literal(Z,ee,v.ts,w,!1,!1,!0),v.cs=128,H=!0,L=a;break}if(p(233,U)){v.te=u(D,1),D=i(v.ts,1),v.stack["$[]="](v.top,v.cs),v.top=u(v.top,1),v.cs=129,H=!0,L=a;break}if(p(234,U)){v.te=u(D,1),v.$emit_table(S("PUNCTUATION")),v.cs=255,D=u(D,1),H=!0,L=$;break}if(p(235,U)){v.te=u(D,1),v.$emit_table(S("PUNCTUATION")),v.cs=508,D=u(D,1),H=!0,L=$;break}if(p(236,U)){v.te=u(D,1),v.$emit_table(S("PUNCTUATION")),v.cs=508,D=u(D,1),H=!0,L=$;break}if(p(237,U)){v.te=u(D,1),v.$emit("tOP_ASGN",v.$tok(v.ts,i(v.te,1))),v.cs=345,D=u(D,1),H=!0,L=$;break}if(p(238,U)){v.te=u(D,1),v.$emit("tEH","?".$freeze()),v.cs=508,D=u(D,1),H=!0,L=$;break}if(p(239,U)){v.te=u(D,1),o(v.paren_nest,0)&&v.$diagnostic("warning","triple_dot_at_eol",w,v.$range(v.ts,i(v.te,1))),v.$emit("tDOT3","...".$freeze(),v.ts,i(v.te,1)),D=i(D,1),v.cs=345,D=u(D,1),H=!0,L=$;break}if(p(240,U)){v.te=u(D,1),v.$emit_table(S("PUNCTUATION")),v.cs=345,D=u(D,1),H=!0,L=$;break}if(p(241,U)){v.te=u(D,1),v.$emit("tSEMI",";".$freeze()),v.command_start=!0,v.cs=508,D=u(D,1),H=!0,L=$;break}if(p(242,U))v.te=u(D,1),v.$diagnostic("error","bare_backslash",w,v.$range(v.ts,u(v.ts,1))),D=i(D,1);else if(p(243,U))v.te=u(D,1),v.$diagnostic("fatal","unexpected",new Map([["character",v.$tok().$inspect()["$[]"](f(1,-2,!1))]]));else{if(p(244,U)){v.te=u(D,1),D=i(D,1),D=u(D,1),H=!0,L=$;break}if(p(245,U)){v.te=D,D=i(D,1),o(v.lambda_stack.$last(),v.paren_nest)?(v.lambda_stack.$pop(),o(v.$tok(),"{".$freeze())?v.$emit("tLAMBEG","{".$freeze()):v.$emit("kDO_LAMBDA","do".$freeze())):o(v.$tok(),"{".$freeze())?v.$emit("tLCURLY","{".$freeze()):v.$emit_do(),o(v.$tok(),"{".$freeze())&&(v.paren_nest=u(v.paren_nest,1)),v.command_start=!0,v.cs=508,D=u(D,1),H=!0,L=$;break}if(p(246,U)){v.te=D,D=i(D,1),v.$emit_table(S("KEYWORDS")),v.cs=134,D=u(D,1),H=!0,L=$;break}if(p(247,U)){v.te=D,D=i(D,1),v.$emit_singleton_class(),v.cs=508,D=u(D,1),H=!0,L=$;break}if(p(248,U)){v.te=D,D=i(D,1),v.$emit_table(S("KEYWORDS")),v.command_start=!0,v.cs=508,D=u(D,1),H=!0,L=$;break}if(p(249,U)){v.te=D,D=i(D,1),le=v.$numeric_literal_int(),n(v["$version?"](18,19,20))?(v.$emit("tINTEGER",le.$to_i(v.num_base),v.ts,v.num_suffix_s),D=i(v.num_suffix_s,1)):D=v.num_xfrm.$call(le.$to_i(v.num_base),D),D=u(D,1),H=!0,L=$;break}if(p(250,U))v.te=D,D=i(D,1),v.$diagnostic("error","no_dot_digit_literal");else{if(p(251,U)){v.te=D,D=i(D,1),le=v.$tok(v.ts,v.num_suffix_s),n(v["$version?"](18,19,20))?(v.$emit("tFLOAT",v.$Float(le),v.ts,v.num_suffix_s),D=i(v.num_suffix_s,1)):D=v.num_xfrm.$call(le,D),D=u(D,1),H=!0,L=$;break}if(p(252,U)){v.te=D,D=i(D,1),v.$emit("tCONSTANT"),v.cs=v.$arg_or_cmdarg(T),D=u(D,1),H=!0,L=$;break}if(p(253,U)){v.te=D,D=i(D,1),v.$emit("tCONSTANT",v.$tok(v.ts,Y),v.ts,Y),D=i(Y,1),D=u(D,1),H=!0,L=$;break}if(p(254,U)){v.te=D,D=i(D,1),D=i(v.ts,1),v.stack["$[]="](v.top,v.cs),v.top=u(v.top,1),v.cs=129,H=!0,L=a;break}if(p(255,U)){v.te=D,D=i(D,1),v.$emit_table(S("PUNCTUATION")),v.cs=255,D=u(D,1),H=!0,L=$;break}if(p(256,U)){if(v.te=D,D=i(D,1),v.$emit("tIDENTIFIER"),m(v.static_env["$nil?"]())&&n(v.static_env["$declared?"](v.$tok()))){v.cs=247,D=u(D,1),H=!0,L=$;break}if(n(h(v.version,32))&&n(v.$tok()["$=~"](/^_[1-9]$/))){v.cs=247,D=u(D,1),H=!0,L=$;break}v.cs=v.$arg_or_cmdarg(T),D=u(D,1),H=!0,L=$;break}if(p(257,U)){v.te=D,D=i(D,1),o(Y,v.te)?v.$emit("tFID"):(v.$emit("tIDENTIFIER",v.$tok(v.ts,Y),v.ts,Y),D=i(Y,1)),v.cs=276,D=u(D,1),H=!0,L=$;break}if(p(258,U)){v.te=D,D=i(D,1),v.$emit_table(S("PUNCTUATION")),v.cs=508,D=u(D,1),H=!0,L=$;break}if(p(259,U)){v.te=D,D=i(D,1),v.$emit_table(S("PUNCTUATION")),v.cs=508,D=u(D,1),H=!0,L=$;break}if(p(260,U)){v.te=D,D=i(D,1),v.$emit_table(S("PUNCTUATION")),v.cs=345,D=u(D,1),H=!0,L=$;break}if(p(261,U)){v.te=D,D=i(D,1),v.$emit_rbrace_rparen_rbrack(),(o(v.$tok(),"}".$freeze())||o(v.$tok(),"]".$freeze()))&&(n(h(v.version,25))?v.cs=516:v.cs=313),D=u(D,1),H=!0,L=$;break}if(p(262,U)){v.te=D,D=i(D,1),v.$emit("tLBRACK2","[".$freeze()),v.cs=345,D=u(D,1),H=!0,L=$;break}if(p(263,U)){v.te=D,D=i(D,1),v.$emit_table(S("PUNCTUATION")),v.cs=345,D=u(D,1),H=!0,L=$;break}if(p(264,U))v.te=D,D=i(D,1);else{if(p(265,U)){v.te=D,D=i(D,1),v.cs=696,H=!0,L=a;break}if(p(266,U))v.te=D,D=i(D,1),v.$diagnostic("fatal","unexpected",new Map([["character",v.$tok().$inspect()["$[]"](f(1,-2,!1))]]));else{if(p(267,U)){D=i(v.te,1),le=v.$numeric_literal_int(),n(v["$version?"](18,19,20))?(v.$emit("tINTEGER",le.$to_i(v.num_base),v.ts,v.num_suffix_s),D=i(v.num_suffix_s,1)):D=v.num_xfrm.$call(le.$to_i(v.num_base),D),D=u(D,1),H=!0,L=$;break}if(p(268,U))D=i(v.te,1),v.$diagnostic("error","no_dot_digit_literal");else{if(p(269,U)){D=i(v.te,1),le=v.$tok(v.ts,v.num_suffix_s),n(v["$version?"](18,19,20))?(v.$emit("tFLOAT",v.$Float(le),v.ts,v.num_suffix_s),D=i(v.num_suffix_s,1)):D=v.num_xfrm.$call(le,D),D=u(D,1),H=!0,L=$;break}if(p(270,U))D=i(v.te,1),v.$diagnostic("fatal","unexpected",new Map([["character",v.$tok().$inspect()["$[]"](f(1,-2,!1))]]));else if(p(271,U)){if(p(104,te=v.act)){D=i(v.te,1),o(v.lambda_stack.$last(),v.paren_nest)?(v.lambda_stack.$pop(),o(v.$tok(),"{".$freeze())?v.$emit("tLAMBEG","{".$freeze()):v.$emit("kDO_LAMBDA","do".$freeze())):o(v.$tok(),"{".$freeze())?v.$emit("tLCURLY","{".$freeze()):v.$emit_do(),o(v.$tok(),"{".$freeze())&&(v.paren_nest=u(v.paren_nest,1)),v.command_start=!0,v.cs=508,D=u(D,1),H=!0,L=$;break}if(p(105,te)){D=i(v.te,1),v.$emit_table(S("KEYWORDS")),v.cs=134,D=u(D,1),H=!0,L=$;break}if(p(106,te)){D=i(v.te,1),v.$emit_singleton_class(),v.cs=508,D=u(D,1),H=!0,L=$;break}if(p(107,te)){D=i(v.te,1),v.$emit_table(S("KEYWORDS")),v.cs=345,D=u(D,1),H=!0,L=$;break}if(p(108,te)){D=i(v.te,1),v.$emit_table(S("KEYWORDS")),v.command_start=!0,v.cs=508,D=u(D,1),H=!0,L=$;break}if(p(109,te)){D=i(v.te,1),v.$emit_table(S("KEYWORDS")),v.cs=321,D=u(D,1),H=!0,L=$;break}if(p(110,te)){if(D=i(v.te,1),v.$emit_table(S("KEYWORDS")),n(v["$version?"](18))&&o(v.$tok(),"not".$freeze())){v.cs=345,D=u(D,1),H=!0,L=$;break}v.cs=276,D=u(D,1),H=!0,L=$;break}if(p(111,te)){D=i(v.te,1),n(v["$version?"](18))?(v.$emit("tIDENTIFIER"),m(v.static_env["$nil?"]())&&n(v.static_env["$declared?"](v.$tok()))||(v.cs=v.$arg_or_cmdarg(T))):v.$emit("k__ENCODING__","__ENCODING__".$freeze()),D=u(D,1),H=!0,L=$;break}if(p(112,te)){D=i(v.te,1),v.$emit_table(S("KEYWORDS")),D=u(D,1),H=!0,L=$;break}if(p(113,te)){D=i(v.te,1),le=v.$numeric_literal_int(),n(v["$version?"](18,19,20))?(v.$emit("tINTEGER",le.$to_i(v.num_base),v.ts,v.num_suffix_s),D=i(v.num_suffix_s,1)):D=v.num_xfrm.$call(le.$to_i(v.num_base),D),D=u(D,1),H=!0,L=$;break}if(p(115,te)){if(D=i(v.te,1),!n(v["$version?"](18,19,20))){v.$emit("tINTEGER",v.$tok(v.ts,i(v.te,1)).$to_i(),v.ts,i(v.te,1)),D=i(D,1),D=u(D,1),H=!0,L=$;break}v.$diagnostic("error","trailing_in_number",new Map([["character",v.$tok(i(v.te,1),v.te)]]),v.$range(i(v.te,1),v.te))}else if(p(116,te)){if(D=i(v.te,1),!n(v["$version?"](18,19,20))){v.$emit("tFLOAT",v.$tok(v.ts,i(v.te,1)).$to_f(),v.ts,i(v.te,1)),D=i(D,1),D=u(D,1),H=!0,L=$;break}v.$diagnostic("error","trailing_in_number",new Map([["character",v.$tok(i(v.te,1),v.te)]]),v.$range(i(v.te,1),v.te))}else{if(p(117,te)){D=i(v.te,1),le=v.$tok(v.ts,v.num_suffix_s),n(v["$version?"](18,19,20))?(v.$emit("tFLOAT",v.$Float(le),v.ts,v.num_suffix_s),D=i(v.num_suffix_s,1)):D=v.num_xfrm.$call(le,D),D=u(D,1),H=!0,L=$;break}if(p(119,te)){D=i(v.te,1),v.$emit("tCONSTANT"),v.cs=v.$arg_or_cmdarg(T),D=u(D,1),H=!0,L=$;break}if(p(123,te)){if(D=i(v.te,1),v.$emit("tIDENTIFIER"),m(v.static_env["$nil?"]())&&n(v.static_env["$declared?"](v.$tok()))){v.cs=247,D=u(D,1),H=!0,L=$;break}if(n(h(v.version,32))&&n(v.$tok()["$=~"](/^_[1-9]$/))){v.cs=247,D=u(D,1),H=!0,L=$;break}v.cs=v.$arg_or_cmdarg(T),D=u(D,1),H=!0,L=$;break}if(p(124,te)){D=i(v.te,1),o(Y,v.te)?v.$emit("tFID"):(v.$emit("tIDENTIFIER",v.$tok(v.ts,Y),v.ts,Y),D=i(Y,1)),v.cs=276,D=u(D,1),H=!0,L=$;break}if(p(126,te)){D=i(v.te,1),v.$emit_table(S("PUNCTUATION")),v.cs=508,D=u(D,1),H=!0,L=$;break}if(p(127,te)){D=i(v.te,1),v.$emit_table(S("PUNCTUATION")),v.cs=345,D=u(D,1),H=!0,L=$;break}}}else if(p(272,U))v.act=140;else if(p(273,U))v.act=144;else{if(p(274,U)){if(v.te=u(D,1),v.$emit("tNL",w,v.newline_s,u(v.newline_s,1)),n(g(v.version,27))){D=i(D,1),v.cs=710,D=u(D,1),H=!0,L=$;break}v.$emit("tBDOT3"),v.cs=345,D=u(D,1),H=!0,L=$;break}if(p(275,U)){v.te=u(D,1),D=i(Y,1),v.cs=516,H=!0,L=a;break}if(p(276,U)){v.te=u(D,1),v.$emit("tNL",w,v.newline_s,u(v.newline_s,1)),D=i(D,1),v.cs=710,D=u(D,1),H=!0,L=$;break}if(p(277,U)){if(v.te=D,D=i(D,1),n(g(v.version,27))){v.$emit("tNL",w,v.newline_s,u(v.newline_s,1)),D=i(D,1),v.cs=710,D=u(D,1),H=!0,L=$;break}}else{if(p(278,U)){if(v.te=D,D=i(D,1),v.$emit("tNL",w,v.newline_s,u(v.newline_s,1)),n(g(v.version,27))){D=i(D,1),v.cs=710,D=u(D,1),H=!0,L=$;break}v.$emit("tBDOT2"),v.cs=345,D=u(D,1),H=!0,L=$;break}if(p(279,U)){v.te=D,D=i(D,1),D=i(Y,1),v.cs=516,H=!0,L=a;break}if(p(280,U)){v.te=D,D=i(D,1),v.$emit("tNL",w,v.newline_s,u(v.newline_s,1)),D=i(D,1),v.cs=710,D=u(D,1),H=!0,L=$;break}if(p(281,U)){if(D=i(v.te,1),n(g(v.version,27))){v.$emit("tNL",w,v.newline_s,u(v.newline_s,1)),D=i(D,1),v.cs=710,D=u(D,1),H=!0,L=$;break}}else{if(p(282,U)){D=i(v.te,1),v.$emit("tNL",w,v.newline_s,u(v.newline_s,1)),D=i(D,1),v.cs=710,D=u(D,1),H=!0,L=$;break}if(p(283,U)){if(p(140,te=v.act)){if(D=i(v.te,1),n(g(v.version,27))){v.$emit("tNL",w,v.newline_s,u(v.newline_s,1)),D=i(D,1),v.cs=710,D=u(D,1),H=!0,L=$;break}}else if(p(144,te)){D=i(v.te,1),v.$emit("tNL",w,v.newline_s,u(v.newline_s,1)),D=i(D,1),v.cs=710,D=u(D,1),H=!0,L=$;break}}else{if(p(284,U)){v.te=u(D,1),v.$emit_comment(v.eq_begin_s,v.te),v.cs=v.cs_before_block_comment,H=!0,L=a;break}if(p(285,U))v.te=u(D,1);else{if(p(286,U)){v.te=D,D=i(D,1),v.$emit_comment(v.eq_begin_s,v.te),v.cs=v.cs_before_block_comment,H=!0,L=a;break}if(p(287,U))v.te=D,D=i(D,1),v.$diagnostic("fatal","embedded_document",w,v.$range(v.eq_begin_s,u(v.eq_begin_s,"=begin".$length())));else{if(p(288,U)){v.te=u(D,1),v.eq_begin_s=v.ts,v.cs=704,H=!0,L=a;break}if(p(289,U))v.te=u(D,1),D=i(r,3);else{if(p(290,U)){v.te=u(D,1),T=!0,D=i(D,1),v.cs=508,H=!0,L=a;break}if(p(291,U)){v.te=u(D,1),D=i(D,1),D=u(D,1),H=!0,L=$;break}if(p(292,U))v.te=D,D=i(D,1);else{if(p(293,U)){v.te=D,D=i(D,1),v.eq_begin_s=v.ts,v.cs=704,H=!0,L=a;break}if(p(294,U)){v.te=D,D=i(D,1),T=!0,D=i(D,1),v.cs=508,H=!0,L=a;break}if(p(295,U)){D=i(v.te,1),T=!0,D=i(D,1),v.cs=508,H=!0,L=a;break}if(p(296,U)){v.te=u(D,1),t=v.strings.$advance(D),D=null==(e=l(t))[0]?w:e[0],re=null==e[1]?w:e[1],D=i(D,1),v.cs=re,D=u(D,1),H=!0,L=$;break}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}if(n(H))continue}if(n(c(L,a))){for(B=M["$[]"](v.cs),P=z["$[]"](B),B=u(B,1);n(_(P,0));)if(P=i(P,1),B=u(B,1),51===z["$[]"](i(B,1)).valueOf())v.ts=w;if(n(H))continue;if(o(v.cs,0)){L=$;continue}if(D=u(D,1),d(D,r)){L=10;continue}}if(n(c(L,30))&&o(D,I)&&n(_(N["$[]"](v.cs),0)))q=i(N["$[]"](v.cs),1),L=15;else if(n(c(L,$)))break}return n(!1),v.p=D,n(v.token_queue["$any?"]())?v.token_queue.$shift():o(v.cs,b.$lex_error())?[!1,["$error".$freeze(),v.$range(i(D,1),D)]]:(I=v.source_pts.$size(),[!1,["$eof".$freeze(),v.$range(I,I)]])})),G.$protected(),a(G,"$version?",(function(e){return v(arguments)["$include?"](this.version)}),-1),a(G,"$stack_pop",(function(){var e=this;return e.top=i(e.top,1),e.stack["$[]"](e.top)})),a(G,"$tok",(function(e,t){var n=this;return null==e&&(e=n.ts),null==t&&(t=n.te),n.source_buffer.$slice(e,i(t,e))}),-1),a(G,"$range",(function(e,t){var n=this;return null==e&&(e=n.ts),null==t&&(t=n.te),x(x(S("Parser"),"Source"),"Range").$new(n.source_buffer,e,t)}),-1),a(G,"$emit",(function(e,t,r,i){var a,s=this;return null==t&&(t=s.$tok()),null==r&&(r=s.ts),null==i&&(i=s.te),a=[e,[t,s.$range(r,i)]],s.token_queue.$push(a),n(s.tokens)&&s.tokens.$push(a),a}),-2),a(G,"$emit_table",(function(e,t,n){var r,i=this;return null==t&&(t=i.ts),null==n&&(n=i.te),r=i.$tok(t,n),i.$emit(e["$[]"](r),r,t,n)}),-2),a(G,"$emit_do",(function(e){var t=this;return null==e&&(e=!1),n(t.cond["$active?"]())?t.$emit("kDO_COND","do".$freeze()):n(t.cmdarg["$active?"]())||n(e)?t.$emit("kDO_BLOCK","do".$freeze()):t.$emit("kDO","do".$freeze())}),-1),a(G,"$arg_or_cmdarg",(function(e){return n(e)?this.$class().$lex_en_expr_cmdarg():this.$class().$lex_en_expr_arg()})),a(G,"$emit_comment",(function(e,t){var r=this;return null==e&&(e=r.ts),null==t&&(t=r.te),n(r.comments)&&r.comments.$push(x(x(S("Parser"),"Source"),"Comment").$new(r.$range(e,t))),n(r.tokens)&&r.tokens.$push(["tCOMMENT",[r.$tok(e,t),r.$range(e,t)]]),w}),-1),a(G,"$emit_comment_from_range",(function(e,t){return this.$emit_comment(this.sharp_s,o(e,t)?i(e,2):e)})),a(G,"$diagnostic",(function(e,t,n,r,i){return null==n&&(n=w),null==r&&(r=this.$range()),null==i&&(i=[]),this.diagnostics.$process(x(S("Parser"),"Diagnostic").$new(e,t,n,r,i))}),-3),a(G,"$e_lbrace",(function(){var e=this,t=w;return e.cond.$push(!1),e.cmdarg.$push(!1),t=e.strings.$literal(),n(t)?t.$start_interp_brace():w})),a(G,"$numeric_literal_int",(function(){var e=this,t=w,r=w,a=w;return t=e.$tok(e.num_digits_s,e.num_suffix_s),n(t["$end_with?"]("_".$freeze()))?e.$diagnostic("error","trailing_in_number",new Map([["character","_".$freeze()]]),e.$range(i(e.te,1),e.te)):n(t["$empty?"]())&&o(e.num_base,8)&&n(e["$version?"](18))?t="0".$freeze():n(t["$empty?"]())?e.$diagnostic("error","empty_numeric"):o(e.num_base,8)&&n(r=t.$index(/[89]/))&&(a=u(e.num_digits_s,r),e.$diagnostic("error","invalid_octal",w,e.$range(a,u(a,1)))),t})),a(G,"$on_newline",(function(e){return this.strings.$on_newline(e)})),a(G,"$check_ambiguous_slash",(function(e){var t=this;return o(t.$tok(e,u(e,1)),"/".$freeze())?n(g(t.version,30))?t.$diagnostic("warning","ambiguous_literal",w,t.$range(e,u(e,1))):t.$diagnostic("warning","ambiguous_regexp",w,t.$range(e,u(e,1))):w})),a(G,"$emit_global_var",(function(e,t){var r=this;return null==e&&(e=r.ts),null==t&&(t=r.te),n(r.$tok(e,t)["$=~"](/^\$([1-9][0-9]*)$/))?r.$emit("tNTH_REF",r.$tok(u(e,1),t).$to_i(),e,t):n(r.$tok()["$=~"](/^\$([&`'+])$/))?r.$emit("tBACK_REF",r.$tok(e,t),e,t):r.$emit("tGVAR",r.$tok(e,t),e,t)}),-1),a(G,"$emit_class_var",(function(e,t){var r=this;return null==e&&(e=r.ts),null==t&&(t=r.te),n(r.$tok(e,t)["$=~"](/^@@[0-9]/))&&r.$diagnostic("error","cvar_name",new Map([["name",r.$tok(e,t)]])),r.$emit("tCVAR",r.$tok(e,t),e,t)}),-1),a(G,"$emit_instance_var",(function(e,t){var r=this;return null==e&&(e=r.ts),null==t&&(t=r.te),n(r.$tok(e,t)["$=~"](/^@[0-9]/))&&r.$diagnostic("error","ivar_name",new Map([["name",r.$tok(e,t)]])),r.$emit("tIVAR",r.$tok(e,t),e,t)}),-1),a(G,"$emit_rbrace_rparen_rbrack",(function(){var e=this;return e.$emit_table(S("PUNCTUATION")),n(g(e.version,24))?(e.cond.$lexpop(),e.cmdarg.$lexpop()):(e.cond.$pop(),e.cmdarg.$pop())})),a(G,"$emit_colon_with_digits",(function(e,t,r){var i=this;return n(h(i.version,27))?i.$diagnostic("error",r,new Map([["name",i.$tok(t,i.te)]]),i.$range(t,i.te)):(i.$emit("tCOLON",i.$tok(i.ts,u(i.ts,1)),i.ts,u(i.ts,1)),e=i.ts),e})),a(G,"$emit_singleton_class",(function(){var e=this;return e.$emit("kCLASS","class".$freeze(),e.ts,u(e.ts,5)),e.$emit("tLSHFT","<<".$freeze(),i(e.te,2),e.te)})),$(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"]])),$(E[0],"PUNCTUATION_BEGIN",new Map([["&","tAMPER"],["*","tSTAR"],["**","tDSTAR"],["+","tUPLUS"],["-","tUMINUS"],["::","tCOLON3"],["(","tLPAREN"],["{","tLBRACE"],["[","tLBRACK"]])),$(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"]])),$(E[0],"KEYWORDS_BEGIN",new Map([["if","kIF"],["unless","kUNLESS"],["while","kWHILE"],["until","kUNTIL"],["rescue","kRESCUE"],["defined?","kDEFINED"],["BEGIN","klBEGIN"],["END","klEND"]])),$(E[0],"ESCAPE_WHITESPACE",new Map([[" ","\\s"],["\r","\\r"],["\n","\\n"],["\t","\\t"],["\v","\\v"],["\f","\\f"]])),r(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,n;return null==e&&(e=w),t=[e,(n=[e,"k"+e.$upcase()],r(S("KEYWORDS"),"[]=",n),n[n.length-1])],r(S("KEYWORDS_BEGIN"),"[]=",t),t[t.length-1]}))}(y("Parser"),0,b)},Opal.modules["parser/lexer-F1"]=function(e){var t=e.klass,n=e.truthy,r=e.send,i=e.rb_minus,a=e.def,s=e.gvars,o=e.eqeq,$=e.const_set,u=e.rb_plus,l=e.to_ary,c=e.rb_le,_=e.rb_gt,d=e.neqeq,p=e.range,f=e.rb_ge,h=e.not,m=e.rb_lt,g=e.slice,v=[],b=e.$r(v),y=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,-,construct_float,reset,Float,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,b,x){var k=t(v,null,"Lexer"),G=[k].concat(x),E=e.$r(G),S=k.$$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.ts=S.te=S.stack=S.top=S.act=S.context=S.static_env=S.newline_s=S.lambda_stack=S.paren_nest=S.num_base=S.num_suffix_s=S.num_xfrm=S.eq_begin_s=S.cs_before_block_comment=S.emit_rational=S.emit_imaginary=S.emit_imaginary_rational=S.emit_integer_re=S.emit_integer_if=S.emit_integer_rescue=S.emit_imaginary_float=S.emit_float_if=S.emit_float_rescue=S.emit_integer=S.emit_float=S.tokens=S.comments=S.sharp_s=S.diagnostics=S.num_digits_s=y,function(e,t){e.$attr_accessor("_lex_trans_keys"),e.$private("_lex_trans_keys","_lex_trans_keys=")}(e.get_singleton_class(k)),k["$_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(k)),k["$_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(k)),k["$_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(k)),k["$_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(k)),k["$_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(k)),k["$_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(k)),k["$_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(k)),k["$_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(k)),k["$_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(k)),k["$lex_start="](128),function(e,t){e.$attr_accessor("lex_error")}(e.get_singleton_class(k)),k["$lex_error="](0),function(e,t){e.$attr_accessor("lex_en_expr_variable")}(e.get_singleton_class(k)),k["$lex_en_expr_variable="](129),function(e,t){e.$attr_accessor("lex_en_expr_fname")}(e.get_singleton_class(k)),k["$lex_en_expr_fname="](134),function(e,t){e.$attr_accessor("lex_en_expr_endfn")}(e.get_singleton_class(k)),k["$lex_en_expr_endfn="](247),function(e,t){e.$attr_accessor("lex_en_expr_dot")}(e.get_singleton_class(k)),k["$lex_en_expr_dot="](255),function(e,t){e.$attr_accessor("lex_en_expr_arg")}(e.get_singleton_class(k)),k["$lex_en_expr_arg="](276),function(e,t){e.$attr_accessor("lex_en_expr_cmdarg")}(e.get_singleton_class(k)),k["$lex_en_expr_cmdarg="](307),function(e,t){e.$attr_accessor("lex_en_expr_endarg")}(e.get_singleton_class(k)),k["$lex_en_expr_endarg="](313),function(e,t){e.$attr_accessor("lex_en_expr_mid")}(e.get_singleton_class(k)),k["$lex_en_expr_mid="](321),function(e,t){e.$attr_accessor("lex_en_expr_beg")}(e.get_singleton_class(k)),k["$lex_en_expr_beg="](345),function(e,t){e.$attr_accessor("lex_en_expr_labelarg")}(e.get_singleton_class(k)),k["$lex_en_expr_labelarg="](501),function(e,t){e.$attr_accessor("lex_en_expr_value")}(e.get_singleton_class(k)),k["$lex_en_expr_value="](508),function(e,t){e.$attr_accessor("lex_en_expr_end")}(e.get_singleton_class(k)),k["$lex_en_expr_end="](516),function(e,t){e.$attr_accessor("lex_en_leading_dot")}(e.get_singleton_class(k)),k["$lex_en_leading_dot="](696),function(e,t){e.$attr_accessor("lex_en_line_comment")}(e.get_singleton_class(k)),k["$lex_en_line_comment="](704),function(e,t){e.$attr_accessor("lex_en_line_begin")}(e.get_singleton_class(k)),k["$lex_en_line_begin="](710),function(e,t){e.$attr_accessor("lex_en_inside_string")}(e.get_singleton_class(k)),k["$lex_en_inside_string="](128),k.$attr_reader("source_buffer"),k.$attr_accessor("diagnostics"),k.$attr_accessor("static_env"),k.$attr_accessor("force_utf32"),k.$attr_accessor("cond","cmdarg","context","command_start"),k.$attr_accessor("tokens","comments"),k.$attr_reader("paren_nest","cmdarg_stack","cond_stack","lambda_stack","version"),a(k,"$initialize",(function(e){var t=this;return t.version=e,t.static_env=y,t.context=y,t.tokens=y,t.comments=y,t._lex_actions=n(t.$class()["$respond_to?"]("_lex_actions",!0))?t.$class().$send("_lex_actions"):[],t.emit_integer=r(t,"lambda",[],(function e(t,n){return null==t&&(t=y),null==n&&(n=y),(null==e.$$s?this:e.$$s).$emit("tINTEGER",t),n}),{$$s:t}),t.emit_rational=r(t,"lambda",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==t&&(t=y),null==n&&(n=y),r.$emit("tRATIONAL",r.$Rational(t)),n}),{$$s:t}),t.emit_imaginary=r(t,"lambda",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==t&&(t=y),null==n&&(n=y),r.$emit("tIMAGINARY",r.$Complex(0,t)),n}),{$$s:t}),t.emit_imaginary_rational=r(t,"lambda",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==t&&(t=y),null==n&&(n=y),r.$emit("tIMAGINARY",r.$Complex(0,r.$Rational(t))),n}),{$$s:t}),t.emit_integer_re=r(t,"lambda",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==r.ts&&(r.ts=y),null==r.te&&(r.te=y),null==t&&(t=y),null==n&&(n=y),r.$emit("tINTEGER",t,r.ts,i(r.te,2)),i(n,2)}),{$$s:t}),t.emit_integer_if=r(t,"lambda",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==r.ts&&(r.ts=y),null==r.te&&(r.te=y),null==t&&(t=y),null==n&&(n=y),r.$emit("tINTEGER",t,r.ts,i(r.te,2)),i(n,2)}),{$$s:t}),t.emit_integer_rescue=r(t,"lambda",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==r.ts&&(r.ts=y),null==r.te&&(r.te=y),null==t&&(t=y),null==n&&(n=y),r.$emit("tINTEGER",t,r.ts,i(r.te,6)),i(n,6)}),{$$s:t}),t.emit_float=r(t,"lambda",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==t&&(t=y),null==n&&(n=y),r.$emit("tFLOAT",r.$construct_float(t)),n}),{$$s:t}),t.emit_imaginary_float=r(t,"lambda",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==t&&(t=y),null==n&&(n=y),r.$emit("tIMAGINARY",r.$Complex(0,r.$construct_float(t))),n}),{$$s:t}),t.emit_float_if=r(t,"lambda",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==r.ts&&(r.ts=y),null==r.te&&(r.te=y),null==t&&(t=y),null==n&&(n=y),r.$emit("tFLOAT",r.$construct_float(t),r.ts,i(r.te,2)),i(n,2)}),{$$s:t}),t.emit_float_rescue=r(t,"lambda",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==r.ts&&(r.ts=y),null==r.te&&(r.te=y),null==t&&(t=y),null==n&&(n=y),r.$emit("tFLOAT",r.$construct_float(t),r.ts,i(r.te,6)),i(n,6)}),{$$s:t}),t.$reset()})),a(k,"$construct_float",(function(e){var t,n=this,r=y;return null==s.VERBOSE&&(s.VERBOSE=y),function(){try{return t=[s.VERBOSE,y],r=t[0],s.VERBOSE=t[1],n.$Float(e)}finally{s.VERBOSE=r}}()})),a(k,"$reset",(function(e){var t=this;return null==e&&(e=!0),n(e)&&(t.cs=t.$class().$lex_en_line_begin(),t.cond=E("StackState").$new("cond"),t.cmdarg=E("StackState").$new("cmdarg"),t.cond_stack=[],t.cmdarg_stack=[]),t.force_utf32=!1,t.source_pts=y,t.p=0,t.ts=y,t.te=y,t.act=0,t.stack=[],t.top=0,t.token_queue=[],t.eq_begin_s=y,t.sharp_s=y,t.newline_s=y,t.num_base=y,t.num_digits_s=y,t.num_suffix_s=y,t.num_xfrm=y,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(E("Parser"),"LexerStrings").$new(t,t.version)}),-1),a(k,"$source_buffer=",(function(e){var t,i=this,a=y;return i.source_buffer=e,n(i.source_buffer)?(a=i.source_buffer.$source(),o(a.$encoding(),w(E("Encoding"),"UTF_8"))?i.source_pts=a.$unpack("U*"):i.source_pts=a.$unpack("C*"),o(i.source_pts["$[]"](0),65279)&&(i.p=1)):i.source_pts=y,i.strings["$source_buffer="](i.source_buffer),t=[i.source_pts],r(i.strings,"source_pts=",t),t[t.length-1]})),a(k,"$encoding",(function(){return this.source_buffer.$source().$encoding()})),$(G[0],"LEX_STATES",new Map([["line_begin",k.$lex_en_line_begin()],["expr_dot",k.$lex_en_expr_dot()],["expr_fname",k.$lex_en_expr_fname()],["expr_value",k.$lex_en_expr_value()],["expr_beg",k.$lex_en_expr_beg()],["expr_mid",k.$lex_en_expr_mid()],["expr_arg",k.$lex_en_expr_arg()],["expr_cmdarg",k.$lex_en_expr_cmdarg()],["expr_end",k.$lex_en_expr_end()],["expr_endarg",k.$lex_en_expr_endarg()],["expr_endfn",k.$lex_en_expr_endfn()],["expr_labelarg",k.$lex_en_expr_labelarg()],["inside_string",k.$lex_en_inside_string()]])),a(k,"$state",(function(){return E("LEX_STATES").$invert().$fetch(this.cs,this.cs)})),a(k,"$state=",(function(e){return this.cs=E("LEX_STATES").$fetch(e)})),a(k,"$push_cmdarg",(function(){var e=this;return e.cmdarg_stack.$push(e.cmdarg),e.cmdarg=E("StackState").$new("cmdarg."+e.cmdarg_stack.$count())})),a(k,"$pop_cmdarg",(function(){return this.cmdarg=this.cmdarg_stack.$pop()})),a(k,"$push_cond",(function(){var e=this;return e.cond_stack.$push(e.cond),e.cond=E("StackState").$new("cond."+e.cond_stack.$count())})),a(k,"$pop_cond",(function(){return this.cond=this.cond_stack.$pop()})),a(k,"$dedent_level",(function(){return this.strings.$dedent_level()})),a(k,"$advance",(function(){var e,t,r,a,$,g=this,v=y,b=y,w=y,x=y,k=y,G=y,S=y,O=y,M=y,A=y,N=y,z=y,D=y,I=y,T=y,R=y,q=y,C=y,j=y,B=y,P=y,L=y,H=y,F=y,U=y,Y=y,V=y,K=y,W=y,X=y,J=y,Q=y,Z=y,ee=y,te=y,ne=y,re=y,ie=y,ae=y;if(!n(g.token_queue["$empty?"]()))return g.token_queue.$shift();for(b=(v=g.$class()).$send("_lex_trans_keys"),w=v.$send("_lex_key_spans"),x=v.$send("_lex_index_offsets"),k=v.$send("_lex_indicies"),G=v.$send("_lex_trans_targs"),S=v.$send("_lex_trans_actions"),O=v.$send("_lex_to_state_actions"),M=v.$send("_lex_from_state_actions"),A=v.$send("_lex_eof_trans"),g._lex_actions,r=u(g.source_pts.$size(),2),N=(e=[g.p,r])[0],z=e[1],D=g.command_start,g.command_start=!1,!1,I=null==(e=l(t=y))[0]?y:e[0],T=null==e[1]?y:e[1],R=null==e[2]?y:e[2],q=null==e[3]?y:e[3],null==e[4]?y:e[4],null==e[5]?y:e[5],C=0,10,15,a=20,30,$=40;n(!0);){if(n(c(C,0))){if(o(N,r)){C=30;continue}if(o(g.cs,0)){C=$;continue}}if(n(c(C,10))){if(85===M["$[]"](g.cs).valueOf())g.ts=N;R=g.cs["$<<"](1),q=x["$[]"](g.cs),I=w["$[]"](g.cs),j=n(B=g.source_pts["$[]"](N))?B:0,T=n(_(I,0))&&n(c(b["$[]"](R),j))&&n(c(j,b["$[]"](u(R,1))))?k["$[]"](i(u(q,j),b["$[]"](R))):k["$[]"](u(q,I))}if(n(c(C,15))&&(g.cs=G["$[]"](T),d(S["$[]"](T),0)))switch(S["$[]"](T).valueOf()){case 14:g.newline_s=N;break;case 15:N=g.$on_newline(N);break;case 45:g.sharp_s=i(N,1);break;case 49:g.$emit_comment_from_range(N,r);break;case 190:case 22:case 24:case 26:case 244:case 74:P=N;break;case 56:L=N;break;case 229:P=i(N,1),H="ivar_name";break;case 232:P=i(N,2),H="cvar_name";break;case 188:F=g.$tok(),U=g.ts,Y=g.te;break;case 331:g.num_base=16,g.num_digits_s=N;break;case 325:g.num_base=10,g.num_digits_s=N;break;case 328:g.num_base=8,g.num_digits_s=N;break;case 322:g.num_base=2,g.num_digits_s=N;break;case 337:g.num_base=10,g.num_digits_s=g.ts;break;case 299:g.num_base=8,g.num_digits_s=g.ts;break;case 314:case 307:case 304:g.num_suffix_s=N;break;case 65:g.te=u(N,1);break;case 1:g.te=u(N,1),g.$emit_global_var(),g.cs=g.$stack_pop(),N=u(N,1),C=$;continue;case 87:g.te=N,N=i(N,1),g.$emit_global_var(),g.cs=g.$stack_pop(),N=u(N,1),C=$;continue;case 89:g.te=N,N=i(N,1),g.$emit_class_var(),g.cs=g.$stack_pop(),N=u(N,1),C=$;continue;case 88:g.te=N,N=i(N,1),g.$emit_instance_var(),g.cs=g.$stack_pop(),N=u(N,1),C=$;continue;case 110:g.te=u(N,1),g.$emit_table(E("KEYWORDS_BEGIN")),g.cs=247,N=u(N,1),C=$;continue;case 96:g.te=u(N,1),g.$emit("tIDENTIFIER"),g.cs=247,N=u(N,1),C=$;continue;case 3:g.te=u(N,1),N=i(g.ts,1),g.cs=516,g.stack["$[]="](g.top,g.cs),g.top=u(g.top,1),g.cs=129,C=a;continue;case 93:g.te=u(N,1),g.$emit_table(E("PUNCTUATION")),g.cs=247,N=u(N,1),C=$;continue;case 105:g.te=u(N,1),N=i(N,1),N=i(N,1),g.cs=516,C=a;continue;case 5:if(g.te=u(N,1),n(g["$version?"](23))){V=(e=[g.$tok()["$[]"](p(0,-2,!1)),g.$tok()["$[]"](-1).$chr()])[0],K=e[1],g.strings.$push_literal(V,K,g.ts),g.cs=128,C=a;continue}N=i(g.ts,1),g.cs=516,C=a;continue;case 92:case 112:case 119:case 161:g.te=u(N,1),N=i(N,1),g.cs=516,C=a;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:g.te=u(N,1),N=i(N,1),N=u(N,1),C=$;continue;case 109:g.te=N,N=i(N,1),g.$emit_table(E("KEYWORDS_BEGIN")),g.cs=247,N=u(N,1),C=$;continue;case 106:g.te=N,N=i(N,1),g.$emit("tCONSTANT"),g.cs=247,N=u(N,1),C=$;continue;case 108:g.te=N,N=i(N,1),g.$emit("tIDENTIFIER"),g.cs=247,N=u(N,1),C=$;continue;case 103:g.te=N,N=i(N,1),N=i(g.ts,1),g.cs=516,g.stack["$[]="](g.top,g.cs),g.top=u(g.top,1),g.cs=129,C=a;continue;case 99:g.te=N,N=i(N,1),g.$emit_table(E("PUNCTUATION")),g.cs=247,N=u(N,1),C=$;continue;case 104:case 143:case 141:case 152:case 178:case 253:case 258:g.te=N,N=i(N,1),N=i(N,1),g.cs=345,C=a;continue;case 97:case 114:case 124:case 134:case 163:case 174:case 197:case 249:case 259:case 278:case 375:g.te=N,N=i(N,1);break;case 102:case 113:case 129:case 166:g.te=N,N=i(N,1),N=i(N,1),g.cs=516,C=a;continue;case 4:N=i(g.te,1),g.$emit_table(E("PUNCTUATION")),g.cs=247,N=u(N,1),C=$;continue;case 2:case 6:N=i(g.te,1),N=i(N,1),g.cs=516,C=a;continue;case 95:switch(g.act.valueOf()){case 4:N=i(g.te,1),g.$emit_table(E("KEYWORDS_BEGIN")),g.cs=247,N=u(N,1),C=$;continue;case 5:N=i(g.te,1),g.$emit("tCONSTANT"),g.cs=247,N=u(N,1),C=$;continue;case 6:N=i(g.te,1),g.$emit("tIDENTIFIER"),g.cs=247,N=u(N,1),C=$;continue}break;case 7:g.te=u(N,1),g.$emit("tLABEL",g.$tok(g.ts,i(g.te,2)),g.ts,i(g.te,1)),N=i(N,1),g.cs=501,N=u(N,1),C=$;continue;case 8:if(g.te=u(N,1),n(f(g.version,31))&&n(g.context.$in_argdef())){g.$emit("tBDOT3","...".$freeze()),g.cs=516,N=u(N,1),C=$;continue}N=i(N,3),g.cs=516,C=a;continue;case 120:g.te=u(N,1),g.$emit_table(E("PUNCTUATION")),g.cs=276,N=u(N,1),C=$;continue;case 130:case 343:g.te=N,N=i(N,1),g.$emit("tCONSTANT"),g.cs=g.$arg_or_cmdarg(D),N=u(N,1),C=$;continue;case 121:g.te=N,N=i(N,1),g.$emit("tIDENTIFIER"),g.cs=g.$arg_or_cmdarg(D),N=u(N,1),C=$;continue;case 126:g.te=N,N=i(N,1),g.$emit_table(E("PUNCTUATION")),g.cs=276,N=u(N,1),C=$;continue;case 153:case 25:case 41:case 61:g.te=u(N,1),N=i(g.ts,1),g.cs=516,C=a;continue;case 136:g.te=u(N,1),g.$check_ambiguous_slash(P),N=i(P,1),g.cs=345,C=a;continue;case 142:g.te=u(N,1),N=i(N,1),N=i(N,1),g.cs=345,C=a;continue;case 10:g.te=u(N,1),N=i(g.ts,1),g.cs=345,C=a;continue;case 144:case 80:g.te=u(N,1),N=i(P,1),g.cs=516,C=a;continue;case 131:case 172:case 247:case 256:g.te=u(N,1),N=i(N,1),g.cs=345,C=a;continue;case 139:g.te=N,N=i(N,1),g.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",g.$tok(P,g.te)]]),g.$range(P,g.te)),N=i(P,1),g.cs=345,C=a;continue;case 135:case 202:g.te=N,N=i(N,1),N=i(g.ts,1),g.cs=516,C=a;continue;case 11:case 38:N=i(g.te,1);break;case 27:case 60:N=i(g.te,1),N=i(N,1),g.cs=345,C=a;continue;case 9:switch(g.act.valueOf()){case 33:N=i(g.te,1),g.$check_ambiguous_slash(P),N=i(P,1),g.cs=345,C=a;continue;case 34:N=i(g.te,1),g.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",g.$tok(P,g.te)]]),g.$range(P,g.te)),N=i(P,1),g.cs=345,C=a;continue;case 39:N=i(g.te,1),N=i(g.ts,1),g.cs=516,C=a;continue;default:N=i(g.te,1)}break;case 29:g.te=u(N,1),N=i(g.ts,1),g.cs=276,C=a;continue;case 158:g.te=N,N=i(N,1),N=i(g.ts,1),g.cs=276,C=a;continue;case 30:N=i(g.te,1),N=i(g.ts,1),g.cs=276,C=a;continue;case 28:switch(g.act.valueOf()){case 46:N=i(g.te,1),n(g.cond["$active?"]())?g.$emit("kDO_COND","do".$freeze(),i(g.te,2),g.te):g.$emit("kDO","do".$freeze(),i(g.te,2),g.te),g.cs=508,N=u(N,1),C=$;continue;case 47:N=i(g.te,1),N=i(g.ts,1),g.cs=276,C=a;continue}break;case 168:g.te=u(N,1),g.$emit_do(!0),g.cs=508,N=u(N,1),C=$;continue;case 180:g.te=N,N=i(N,1),N=i(g.ts,1),g.cs=345,C=a;continue;case 173:switch(g.act.valueOf()){case 54:N=i(g.te,1),g.$emit_table(E("KEYWORDS")),g.cs=345,N=u(N,1),C=$;continue;case 55:N=i(g.te,1),N=i(g.ts,1),g.cs=345,C=a;continue}break;case 42:g.te=u(N,1),g.$emit("tUNARY_NUM",g.$tok(g.ts,u(g.ts,1)),g.ts,u(g.ts,1)),N=i(N,1),g.cs=516,N=u(N,1),C=$;continue;case 214:g.te=u(N,1),V=K=g.$tok()["$[]"](0).$chr(),g.strings.$push_literal(V,K,g.ts),N=i(N,1),g.cs=128,C=a;continue;case 206:g.te=u(N,1),V=(e=[g.source_buffer.$slice(g.ts,1).$chr(),g.$tok()["$[]"](-1).$chr()])[0],K=e[1],g.strings.$push_literal(V,K,g.ts),g.cs=128,C=a;continue;case 40:g.te=u(N,1),V=(e=[g.$tok()["$[]"](p(0,-2,!1)),g.$tok()["$[]"](-1).$chr()])[0],K=e[1],g.strings.$push_literal(V,K,g.ts),g.cs=128,C=a;continue;case 227:g.te=u(N,1),N=i(N,1),N=i(N,1),g.$emit("tSYMBEG",g.$tok(g.ts,u(g.ts,1)),g.ts,u(g.ts,1)),g.cs=134,C=a;continue;case 215:g.te=u(N,1),V=(e=[g.$tok(),g.$tok()["$[]"](-1).$chr()])[0],K=e[1],g.strings.$push_literal(V,K,g.ts),g.cs=128,C=a;continue;case 226:g.te=u(N,1),g.$emit("tSYMBOL",g.$tok(u(g.ts,1),u(g.ts,2))),g.cs=516,N=u(N,1),C=$;continue;case 54:g.te=u(N,1),W=g.$tok(u(g.ts,1)),n(f(g.version,33))&&n(W["$start_with?"]("$0"))&&n(_(W.$length(),2))&&g.$diagnostic("error","gvar_name",new Map([["name",W]]),g.$range(u(g.ts,1),g.te)),g.$emit("tSYMBOL",W,g.ts),g.cs=516,N=u(N,1),C=$;continue;case 236:if(g.te=u(N,1),t=g.strings.$read_character_constant(g.ts),N=null==(e=l(t))[0]?y:e[0],X=null==e[1]?y:e[1],N=i(N,1),n(g.token_queue["$empty?"]())){g.cs=X,C=a;continue}g.cs=X,N=u(N,1),C=$;continue;case 237:g.te=u(N,1),g.$diagnostic("fatal","incomplete_escape",y,g.$range(g.ts,u(g.ts,1)));break;case 216:g.te=u(N,1),g.$emit_table(E("PUNCTUATION_BEGIN")),N=u(N,1),C=$;continue;case 37:g.te=u(N,1),N=i(N,1),n(g["$version?"](18))?(J=g.$tok(g.ts,i(g.te,2)),g.$emit(n(g.source_buffer.$slice(g.ts,1)["$=~"](/[A-Z]/))?"tCONSTANT":"tIDENTIFIER",J,g.ts,i(g.te,2)),N=i(N,1),h(g.static_env["$nil?"]())&&n(g.static_env["$declared?"](J))?g.cs=516:g.cs=g.$arg_or_cmdarg(D)):(g.$emit("tLABEL",g.$tok(g.ts,i(g.te,2)),g.ts,i(g.te,1)),g.cs=501),N=u(N,1),C=$;continue;case 34:g.te=u(N,1),g.$emit("tIDENTIFIER",F,U,Y),N=i(Y,1),h(g.static_env["$nil?"]())&&n(g.static_env["$declared?"](F))&&n(m(g.version,25))?g.cs=247:g.cs=307,N=u(N,1),C=$;continue;case 200:g.te=u(N,1),N=i(g.ts,1),g.cs_before_block_comment=g.cs,g.cs=710,C=a;continue;case 210:g.te=N,N=i(N,1),g.$emit("tUNARY_NUM",g.$tok(g.ts,u(g.ts,1)),g.ts,u(g.ts,1)),N=i(N,1),g.cs=516,N=u(N,1),C=$;continue;case 209:g.te=N,N=i(N,1),g.$emit("tSTAR","*".$freeze()),N=u(N,1),C=$;continue;case 205:g.te=N,N=i(N,1),g.$diagnostic("fatal","string_eof",y,g.$range(g.ts,u(g.ts,1)));break;case 234:g.te=N,N=i(N,1),g.$diagnostic("error","unterminated_heredoc_id",y,g.$range(g.ts,u(g.ts,1)));break;case 217:g.te=N,N=i(N,1),W=g.$tok(u(g.ts,1)),n(f(g.version,33))&&n(W["$start_with?"]("$0"))&&n(_(W.$length(),2))&&g.$diagnostic("error","gvar_name",new Map([["name",W]]),g.$range(u(g.ts,1),g.te)),g.$emit("tSYMBOL",W,g.ts),g.cs=516,N=u(N,1),C=$;continue;case 230:g.te=N,N=i(N,1),g.$emit_colon_with_digits(N,P,H),g.cs=516,N=u(N,1),C=$;continue;case 235:g.te=N,N=i(N,1),g.$diagnostic("fatal","incomplete_escape",y,g.$range(g.ts,u(g.ts,1)));break;case 207:g.te=N,N=i(N,1),g.$emit_table(E("PUNCTUATION_BEGIN")),N=u(N,1),C=$;continue;case 211:g.te=N,N=i(N,1),n(f(g.version,27))?g.$emit("tBDOT2"):g.$emit("tDOT2"),g.cs=345,N=u(N,1),C=$;continue;case 212:g.te=N,N=i(N,1),Q=i(g.te,1)["$=="](g.newline_s),Z=!1,ee=n(Q)?i(g.te,1):g.te,n(f(g.version,30))?n(g.lambda_stack["$any?"]())&&o(u(g.lambda_stack.$last(),1),g.paren_nest)?g.$emit("tDOT3","...".$freeze(),g.ts,ee):(g.$emit("tBDOT3","...".$freeze(),g.ts,ee),n(f(g.version,31))&&n(Q)&&n(g.context.$in_argdef())&&(g.$emit("tNL",i(g.te,1),g.te),Z=!0)):n(f(g.version,27))?g.$emit("tBDOT3","...".$freeze(),g.ts,ee):g.$emit("tDOT3","...".$freeze(),g.ts,ee),n(Q)&&h(Z)&&(N=i(N,1)),g.cs=345,N=u(N,1),C=$;continue;case 187:case 349:if(g.te=N,N=i(N,1),g.$emit("tIDENTIFIER"),h(g.static_env["$nil?"]())&&n(g.static_env["$declared?"](g.$tok()))){g.cs=247,N=u(N,1),C=$;continue}if(n(f(g.version,32))&&n(g.$tok()["$=~"](/^_[1-9]$/))){g.cs=247,N=u(N,1),C=$;continue}g.cs=g.$arg_or_cmdarg(D),N=u(N,1),C=$;continue;case 199:g.te=N,N=i(N,1),N=i(g.ts,1),g.cs_before_block_comment=g.cs,g.cs=710,C=a;continue;case 39:N=i(g.te,1),g.$diagnostic("fatal","string_eof",y,g.$range(g.ts,u(g.ts,1)));break;case 58:N=i(g.te,1),g.$diagnostic("error","unterminated_heredoc_id",y,g.$range(g.ts,u(g.ts,1)));break;case 33:if(N=i(g.te,1),g.$emit("tIDENTIFIER"),h(g.static_env["$nil?"]())&&n(g.static_env["$declared?"](g.$tok()))){g.cs=247,N=u(N,1),C=$;continue}if(n(f(g.version,32))&&n(g.$tok()["$=~"](/^_[1-9]$/))){g.cs=247,N=u(N,1),C=$;continue}g.cs=g.$arg_or_cmdarg(D),N=u(N,1),C=$;continue;case 53:N=i(g.te,1),N=i(g.ts,1),g.cs=516,C=a;continue;case 36:switch(g.act.valueOf()){case 60:N=i(g.te,1),g.$emit("tUNARY_NUM",g.$tok(g.ts,u(g.ts,1)),g.ts,u(g.ts,1)),N=i(N,1),g.cs=516,N=u(N,1),C=$;continue;case 67:N=i(g.te,1),g.$diagnostic("error","unterminated_heredoc_id",y,g.$range(g.ts,u(g.ts,1)));break;case 76:if(N=i(g.te,1),n(f(g.version,27))){g.$emit("tPIPE",g.$tok(g.ts,u(g.ts,1)),g.ts,u(g.ts,1)),N=i(N,1),g.cs=345,N=u(N,1),C=$;continue}N=i(N,2),g.cs=516,C=a;continue;case 80:N=i(g.te,1),g.$emit_table(E("PUNCTUATION_BEGIN")),N=u(N,1),C=$;continue;case 81:N=i(g.te,1),g.$emit("kRESCUE","rescue".$freeze(),g.ts,P),N=i(P,1),g.cs=321,N=u(N,1),C=$;continue;case 82:N=i(g.te,1),g.$emit_table(E("KEYWORDS_BEGIN")),g.command_start=!0,g.cs=508,N=u(N,1),C=$;continue;case 86:case 91:N=i(g.te,1),N=i(g.ts,1),g.cs=516,C=a;continue;case 87:if(N=i(g.te,1),g.$emit("tIDENTIFIER"),h(g.static_env["$nil?"]())&&n(g.static_env["$declared?"](g.$tok()))){g.cs=247,N=u(N,1),C=$;continue}if(n(f(g.version,32))&&n(g.$tok()["$=~"](/^_[1-9]$/))){g.cs=247,N=u(N,1),C=$;continue}g.cs=g.$arg_or_cmdarg(D),N=u(N,1),C=$;continue}break;case 257:g.te=u(N,1),g.strings.$push_literal(g.$tok(),g.$tok(),g.ts),g.cs=128,C=a;continue;case 292:g.te=u(N,1),g.$emit("tLAMBDA","->".$freeze(),g.ts,u(g.ts,2)),g.lambda_stack.$push(g.paren_nest),g.cs=247,N=u(N,1),C=$;continue;case 71:g.te=u(N,1),g.$emit_singleton_class(),g.cs=508,N=u(N,1),C=$;continue;case 267:g.te=u(N,1),V=(e=[g.$tok(),g.$tok()["$[]"](-1).$chr()])[0],K=e[1],g.strings.$push_literal(V,K,g.ts,y,!1,!1,!0),g.cs=128,C=a;continue;case 63:g.te=u(N,1),N=i(g.ts,1),g.stack["$[]="](g.top,g.cs),g.top=u(g.top,1),g.cs=129,C=a;continue;case 288:g.te=u(N,1),g.$emit_table(E("PUNCTUATION")),g.cs=255,N=u(N,1),C=$;continue;case 341:case 281:g.te=u(N,1),g.$emit_table(E("PUNCTUATION")),g.cs=508,N=u(N,1),C=$;continue;case 286:g.te=u(N,1),g.$emit("tOP_ASGN",g.$tok(g.ts,i(g.te,1))),g.cs=345,N=u(N,1),C=$;continue;case 272:g.te=u(N,1),g.$emit("tEH","?".$freeze()),g.cs=508,N=u(N,1),C=$;continue;case 269:g.te=u(N,1),g.$emit_table(E("PUNCTUATION")),g.cs=345,N=u(N,1),C=$;continue;case 271:g.te=u(N,1),g.$emit("tSEMI",";".$freeze()),g.command_start=!0,g.cs=508,N=u(N,1),C=$;continue;case 346:g.te=u(N,1),g.$diagnostic("error","bare_backslash",y,g.$range(g.ts,u(g.ts,1))),N=i(N,1);break;case 266:g.te=u(N,1),g.$diagnostic("fatal","unexpected",new Map([["character",g.$tok().$inspect()["$[]"](p(1,-2,!1))]]));break;case 357:g.te=N,N=i(N,1),g.$emit_table(E("KEYWORDS")),g.cs=134,N=u(N,1),C=$;continue;case 355:g.te=N,N=i(N,1),g.$emit_singleton_class(),g.cs=508,N=u(N,1),C=$;continue;case 354:g.te=N,N=i(N,1),g.$emit_table(E("KEYWORDS")),g.command_start=!0,g.cs=508,N=u(N,1),C=$;continue;case 296:g.te=N,N=i(N,1),g.$diagnostic("error","no_dot_digit_literal");break;case 285:g.te=N,N=i(N,1),N=i(g.ts,1),g.stack["$[]="](g.top,g.cs),g.top=u(g.top,1),g.cs=129,C=a;continue;case 293:g.te=N,N=i(N,1),g.$emit_table(E("PUNCTUATION")),g.cs=255,N=u(N,1),C=$;continue;case 291:case 287:g.te=N,N=i(N,1),g.$emit_table(E("PUNCTUATION")),g.cs=508,N=u(N,1),C=$;continue;case 280:case 294:g.te=N,N=i(N,1),g.$emit_table(E("PUNCTUATION")),g.cs=345,N=u(N,1),C=$;continue;case 284:g.te=N,N=i(N,1),g.$diagnostic("fatal","unexpected",new Map([["character",g.$tok().$inspect()["$[]"](p(1,-2,!1))]]));break;case 69:N=i(g.te,1),te=g.$numeric_literal_int(),n(g["$version?"](18,19,20))?(g.$emit("tINTEGER",te.$to_i(g.num_base),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te.$to_i(g.num_base),N),N=u(N,1),C=$;continue;case 64:N=i(g.te,1),g.$diagnostic("error","no_dot_digit_literal");break;case 68:N=i(g.te,1),te=g.$tok(g.ts,g.num_suffix_s),n(g["$version?"](18,19,20))?(g.$emit("tFLOAT",g.$Float(te),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te,N),N=u(N,1),C=$;continue;case 62:N=i(g.te,1),g.$diagnostic("fatal","unexpected",new Map([["character",g.$tok().$inspect()["$[]"](p(1,-2,!1))]]));break;case 66:switch(g.act.valueOf()){case 104:N=i(g.te,1),o(g.lambda_stack.$last(),g.paren_nest)?(g.lambda_stack.$pop(),o(g.$tok(),"{".$freeze())?g.$emit("tLAMBEG","{".$freeze()):g.$emit("kDO_LAMBDA","do".$freeze())):o(g.$tok(),"{".$freeze())?g.$emit("tLCURLY","{".$freeze()):g.$emit_do(),o(g.$tok(),"{".$freeze())&&(g.paren_nest=u(g.paren_nest,1)),g.command_start=!0,g.cs=508,N=u(N,1),C=$;continue;case 105:N=i(g.te,1),g.$emit_table(E("KEYWORDS")),g.cs=134,N=u(N,1),C=$;continue;case 106:N=i(g.te,1),g.$emit_singleton_class(),g.cs=508,N=u(N,1),C=$;continue;case 107:N=i(g.te,1),g.$emit_table(E("KEYWORDS")),g.cs=345,N=u(N,1),C=$;continue;case 108:N=i(g.te,1),g.$emit_table(E("KEYWORDS")),g.command_start=!0,g.cs=508,N=u(N,1),C=$;continue;case 109:N=i(g.te,1),g.$emit_table(E("KEYWORDS")),g.cs=321,N=u(N,1),C=$;continue;case 110:if(N=i(g.te,1),g.$emit_table(E("KEYWORDS")),n(g["$version?"](18))&&o(g.$tok(),"not".$freeze())){g.cs=345,N=u(N,1),C=$;continue}g.cs=276,N=u(N,1),C=$;continue;case 111:N=i(g.te,1),n(g["$version?"](18))?(g.$emit("tIDENTIFIER"),h(g.static_env["$nil?"]())&&n(g.static_env["$declared?"](g.$tok()))||(g.cs=g.$arg_or_cmdarg(D))):g.$emit("k__ENCODING__","__ENCODING__".$freeze()),N=u(N,1),C=$;continue;case 112:N=i(g.te,1),g.$emit_table(E("KEYWORDS")),N=u(N,1),C=$;continue;case 113:N=i(g.te,1),te=g.$numeric_literal_int(),n(g["$version?"](18,19,20))?(g.$emit("tINTEGER",te.$to_i(g.num_base),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te.$to_i(g.num_base),N),N=u(N,1),C=$;continue;case 115:if(N=i(g.te,1),!n(g["$version?"](18,19,20))){g.$emit("tINTEGER",g.$tok(g.ts,i(g.te,1)).$to_i(),g.ts,i(g.te,1)),N=i(N,1),N=u(N,1),C=$;continue}g.$diagnostic("error","trailing_in_number",new Map([["character",g.$tok(i(g.te,1),g.te)]]),g.$range(i(g.te,1),g.te));break;case 116:if(N=i(g.te,1),!n(g["$version?"](18,19,20))){g.$emit("tFLOAT",g.$tok(g.ts,i(g.te,1)).$to_f(),g.ts,i(g.te,1)),N=i(N,1),N=u(N,1),C=$;continue}g.$diagnostic("error","trailing_in_number",new Map([["character",g.$tok(i(g.te,1),g.te)]]),g.$range(i(g.te,1),g.te));break;case 117:N=i(g.te,1),te=g.$tok(g.ts,g.num_suffix_s),n(g["$version?"](18,19,20))?(g.$emit("tFLOAT",g.$Float(te),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te,N),N=u(N,1),C=$;continue;case 119:N=i(g.te,1),g.$emit("tCONSTANT"),g.cs=g.$arg_or_cmdarg(D),N=u(N,1),C=$;continue;case 123:if(N=i(g.te,1),g.$emit("tIDENTIFIER"),h(g.static_env["$nil?"]())&&n(g.static_env["$declared?"](g.$tok()))){g.cs=247,N=u(N,1),C=$;continue}if(n(f(g.version,32))&&n(g.$tok()["$=~"](/^_[1-9]$/))){g.cs=247,N=u(N,1),C=$;continue}g.cs=g.$arg_or_cmdarg(D),N=u(N,1),C=$;continue;case 124:N=i(g.te,1),o(P,g.te)?g.$emit("tFID"):(g.$emit("tIDENTIFIER",g.$tok(g.ts,P),g.ts,P),N=i(P,1)),g.cs=276,N=u(N,1),C=$;continue;case 126:N=i(g.te,1),g.$emit_table(E("PUNCTUATION")),g.cs=508,N=u(N,1),C=$;continue;case 127:N=i(g.te,1),g.$emit_table(E("PUNCTUATION")),g.cs=345,N=u(N,1),C=$;continue}break;case 368:if(g.te=u(N,1),g.$emit("tNL",y,g.newline_s,u(g.newline_s,1)),n(m(g.version,27))){N=i(N,1),g.cs=710,N=u(N,1),C=$;continue}g.$emit("tBDOT3"),g.cs=345,N=u(N,1),C=$;continue;case 362:g.te=u(N,1),g.$emit("tNL",y,g.newline_s,u(g.newline_s,1)),N=i(N,1),g.cs=710,N=u(N,1),C=$;continue;case 365:if(g.te=N,N=i(N,1),n(m(g.version,27))){g.$emit("tNL",y,g.newline_s,u(g.newline_s,1)),N=i(N,1),g.cs=710,N=u(N,1),C=$;continue}break;case 367:if(g.te=N,N=i(N,1),g.$emit("tNL",y,g.newline_s,u(g.newline_s,1)),n(m(g.version,27))){N=i(N,1),g.cs=710,N=u(N,1),C=$;continue}g.$emit("tBDOT2"),g.cs=345,N=u(N,1),C=$;continue;case 366:g.te=N,N=i(N,1),N=i(P,1),g.cs=516,C=a;continue;case 364:g.te=N,N=i(N,1),g.$emit("tNL",y,g.newline_s,u(g.newline_s,1)),N=i(N,1),g.cs=710,N=u(N,1),C=$;continue;case 75:if(N=i(g.te,1),n(m(g.version,27))){g.$emit("tNL",y,g.newline_s,u(g.newline_s,1)),N=i(N,1),g.cs=710,N=u(N,1),C=$;continue}break;case 72:N=i(g.te,1),g.$emit("tNL",y,g.newline_s,u(g.newline_s,1)),N=i(N,1),g.cs=710,N=u(N,1),C=$;continue;case 76:switch(g.act.valueOf()){case 140:if(N=i(g.te,1),n(m(g.version,27))){g.$emit("tNL",y,g.newline_s,u(g.newline_s,1)),N=i(N,1),g.cs=710,N=u(N,1),C=$;continue}break;case 144:N=i(g.te,1),g.$emit("tNL",y,g.newline_s,u(g.newline_s,1)),N=i(N,1),g.cs=710,N=u(N,1),C=$;continue}break;case 371:g.te=N,N=i(N,1),g.$emit_comment(g.eq_begin_s,g.te),g.cs=g.cs_before_block_comment,C=a;continue;case 370:g.te=N,N=i(N,1),g.$diagnostic("fatal","embedded_document",y,g.$range(g.eq_begin_s,u(g.eq_begin_s,"=begin".$length())));break;case 381:g.te=u(N,1),g.eq_begin_s=g.ts,g.cs=704,C=a;continue;case 82:g.te=u(N,1),N=i(r,3);break;case 373:g.te=u(N,1),D=!0,N=i(N,1),g.cs=508,C=a;continue;case 380:g.te=N,N=i(N,1),g.eq_begin_s=g.ts,g.cs=704,C=a;continue;case 379:g.te=N,N=i(N,1),D=!0,N=i(N,1),g.cs=508,C=a;continue;case 81:N=i(g.te,1),D=!0,N=i(N,1),g.cs=508,C=a;continue;case 86:g.te=u(N,1),t=g.strings.$advance(N),N=null==(e=l(t))[0]?y:e[0],X=null==e[1]?y:e[1],N=i(N,1),g.cs=X,N=u(N,1),C=$;continue;case 52:g.newline_s=N,g.$emit_comment_from_range(N,r);break;case 154:case 137:g.newline_s=N,g.te=u(N,1),N=i(g.ts,1),g.cs=516,C=a;continue;case 145:g.newline_s=N,g.te=u(N,1),N=i(P,1),g.cs=516,C=a;continue;case 213:g.newline_s=N,g.te=u(N,1),Q=i(g.te,1)["$=="](g.newline_s),Z=!1,ee=n(Q)?i(g.te,1):g.te,n(f(g.version,30))?n(g.lambda_stack["$any?"]())&&o(u(g.lambda_stack.$last(),1),g.paren_nest)?g.$emit("tDOT3","...".$freeze(),g.ts,ee):(g.$emit("tBDOT3","...".$freeze(),g.ts,ee),n(f(g.version,31))&&n(Q)&&n(g.context.$in_argdef())&&(g.$emit("tNL",i(g.te,1),g.te),Z=!0)):n(f(g.version,27))?g.$emit("tBDOT3","...".$freeze(),g.ts,ee):g.$emit("tDOT3","...".$freeze(),g.ts,ee),n(Q)&&h(Z)&&(N=i(N,1)),g.cs=345,N=u(N,1),C=$;continue;case 201:g.newline_s=N,g.te=u(N,1),N=i(g.ts,1),g.cs_before_block_comment=g.cs,g.cs=710,C=a;continue;case 295:g.newline_s=N,g.te=u(N,1),o(g.paren_nest,0)&&g.$diagnostic("warning","triple_dot_at_eol",y,g.$range(g.ts,i(g.te,1))),g.$emit("tDOT3","...".$freeze(),g.ts,i(g.te,1)),N=i(N,1),g.cs=345,N=u(N,1),C=$;continue;case 372:g.newline_s=N,g.te=u(N,1),g.$emit_comment(g.eq_begin_s,g.te),g.cs=g.cs_before_block_comment,C=a;continue;case 369:g.newline_s=N,g.te=u(N,1);break;case 382:g.newline_s=N,g.te=u(N,1),g.eq_begin_s=g.ts,g.cs=704,C=a;continue;case 83:g.newline_s=N,g.te=u(N,1),N=i(r,3);break;case 317:g.num_xfrm=g.emit_rational,g.te=N,N=i(N,1),te=g.$numeric_literal_int(),n(g["$version?"](18,19,20))?(g.$emit("tINTEGER",te.$to_i(g.num_base),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te.$to_i(g.num_base),N),N=u(N,1),C=$;continue;case 315:g.num_xfrm=g.emit_imaginary,g.te=N,N=i(N,1),te=g.$numeric_literal_int(),n(g["$version?"](18,19,20))?(g.$emit("tINTEGER",te.$to_i(g.num_base),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te.$to_i(g.num_base),N),N=u(N,1),C=$;continue;case 320:g.num_xfrm=g.emit_imaginary_rational,g.te=N,N=i(N,1),te=g.$numeric_literal_int(),n(g["$version?"](18,19,20))?(g.$emit("tINTEGER",te.$to_i(g.num_base),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te.$to_i(g.num_base),N),N=u(N,1),C=$;continue;case 318:g.num_xfrm=g.emit_integer_re,g.te=N,N=i(N,1),te=g.$numeric_literal_int(),n(g["$version?"](18,19,20))?(g.$emit("tINTEGER",te.$to_i(g.num_base),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te.$to_i(g.num_base),N),N=u(N,1),C=$;continue;case 316:g.num_xfrm=g.emit_integer_if,g.te=N,N=i(N,1),te=g.$numeric_literal_int(),n(g["$version?"](18,19,20))?(g.$emit("tINTEGER",te.$to_i(g.num_base),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te.$to_i(g.num_base),N),N=u(N,1),C=$;continue;case 319:g.num_xfrm=g.emit_integer_rescue,g.te=N,N=i(N,1),te=g.$numeric_literal_int(),n(g["$version?"](18,19,20))?(g.$emit("tINTEGER",te.$to_i(g.num_base),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te.$to_i(g.num_base),N),N=u(N,1),C=$;continue;case 308:g.num_xfrm=g.emit_imaginary_float,g.te=N,N=i(N,1),te=g.$tok(g.ts,g.num_suffix_s),n(g["$version?"](18,19,20))?(g.$emit("tFLOAT",g.$Float(te),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te,N),N=u(N,1),C=$;continue;case 309:g.num_xfrm=g.emit_float_if,g.te=N,N=i(N,1),te=g.$tok(g.ts,g.num_suffix_s),n(g["$version?"](18,19,20))?(g.$emit("tFLOAT",g.$Float(te),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te,N),N=u(N,1),C=$;continue;case 310:g.num_xfrm=g.emit_rational,g.te=N,N=i(N,1),te=g.$tok(g.ts,g.num_suffix_s),n(g["$version?"](18,19,20))?(g.$emit("tFLOAT",g.$Float(te),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te,N),N=u(N,1),C=$;continue;case 312:g.num_xfrm=g.emit_imaginary_rational,g.te=N,N=i(N,1),te=g.$tok(g.ts,g.num_suffix_s),n(g["$version?"](18,19,20))?(g.$emit("tFLOAT",g.$Float(te),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te,N),N=u(N,1),C=$;continue;case 311:g.num_xfrm=g.emit_float_rescue,g.te=N,N=i(N,1),te=g.$tok(g.ts,g.num_suffix_s),n(g["$version?"](18,19,20))?(g.$emit("tFLOAT",g.$Float(te),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te,N),N=u(N,1),C=$;continue;case 147:g.$e_lbrace(),g.te=N,N=i(N,1),o(g.lambda_stack.$last(),g.paren_nest)?(g.lambda_stack.$pop(),g.$emit("tLAMBEG","{".$freeze(),i(g.te,1),g.te)):g.$emit("tLCURLY","{".$freeze(),i(g.te,1),g.te),g.command_start=!0,g.paren_nest=u(g.paren_nest,1),g.cs=508,N=u(N,1),C=$;continue;case 169:g.$e_lbrace(),g.te=N,N=i(N,1),o(g.lambda_stack.$last(),g.paren_nest)?(g.lambda_stack.$pop(),g.$emit("tLAMBEG","{".$freeze())):g.$emit("tLBRACE_ARG","{".$freeze()),g.paren_nest=u(g.paren_nest,1),g.command_start=!0,g.cs=508,N=u(N,1),C=$;continue;case 245:g.$e_lbrace(),g.te=N,N=i(N,1),o(g.lambda_stack.$last(),g.paren_nest)?(g.lambda_stack.$pop(),g.command_start=!0,g.$emit("tLAMBEG","{".$freeze())):g.$emit("tLBRACE","{".$freeze()),g.paren_nest=u(g.paren_nest,1),N=u(N,1),C=$;continue;case 360:g.$e_lbrace(),g.te=N,N=i(N,1),o(g.lambda_stack.$last(),g.paren_nest)?(g.lambda_stack.$pop(),o(g.$tok(),"{".$freeze())?g.$emit("tLAMBEG","{".$freeze()):g.$emit("kDO_LAMBDA","do".$freeze())):o(g.$tok(),"{".$freeze())?g.$emit("tLCURLY","{".$freeze()):g.$emit_do(),o(g.$tok(),"{".$freeze())&&(g.paren_nest=u(g.paren_nest,1)),g.command_start=!0,g.cs=508,N=u(N,1),C=$;continue;case 361:if(n(g.strings.$close_interp_on_current_literal(N))){N=i(N,1),g.cs=128,N=u(N,1),C=$;continue}g.paren_nest=i(g.paren_nest,1),g.te=N,N=i(N,1),g.$emit_rbrace_rparen_rbrack(),(o(g.$tok(),"}".$freeze())||o(g.$tok(),"]".$freeze()))&&(n(f(g.version,25))?g.cs=516:g.cs=313),N=u(N,1),C=$;continue;case 43:N=g.$on_newline(N),g.newline_s=N;break;case 16:case 18:case 20:P=N=g.$on_newline(N);break;case 98:case 117:case 125:case 156:case 167:case 179:case 198:case 254:case 263:case 347:case 376:N=g.$on_newline(N),g.te=N,N=i(N,1);break;case 19:N=g.$on_newline(N),g.te=u(N,1),N=i(g.ts,1),g.cs=516,C=a;continue;case 148:case 175:N=g.$on_newline(N),g.te=N,N=i(N,1),N=i(N,1),g.cs=516,C=a;continue;case 44:N=g.$on_newline(N),g.te=u(N,1),g.$emit("tUNARY_NUM",g.$tok(g.ts,u(g.ts,1)),g.ts,u(g.ts,1)),N=i(N,1),g.cs=516,N=u(N,1),C=$;continue;case 35:N=g.$on_newline(N),g.te=u(N,1),g.$emit("tIDENTIFIER",F,U,Y),N=i(Y,1),h(g.static_env["$nil?"]())&&n(g.static_env["$declared?"](F))&&n(m(g.version,25))?g.cs=247:g.cs=307,N=u(N,1),C=$;continue;case 250:if(N=g.$on_newline(N),g.te=N,N=i(N,1),n(g.context.$in_kwarg())){N=i(N,1),g.cs=516,C=a;continue}g.cs=710,C=a;continue;case 260:N=g.$on_newline(N),g.te=N,N=i(N,1),g.cs=710,C=a;continue;case 279:N=g.$on_newline(N),g.te=N,N=i(N,1),g.cs=696,C=a;continue;case 46:g.sharp_s=i(N,1),g.$emit_comment_from_range(N,r);break;case 50:g.$emit_comment_from_range(N,r),g.newline_s=N;break;case 101:case 116:case 128:case 165:case 177:case 204:case 252:case 262:case 283:case 378:g.$emit_comment_from_range(N,r),g.te=N,N=i(N,1);break;case 150:g.$emit_comment_from_range(N,r),g.te=N,N=i(N,1),g.cs=516,C=a;continue;case 122:P=N,g.te=N,N=i(N,1),g.$emit("tFID",g.$tok(g.ts,P),g.ts,P),g.cs=g.$arg_or_cmdarg(D),N=i(P,1),N=u(N,1),C=$;continue;case 218:case 220:P=N,g.te=N,N=i(N,1),g.$emit("tSYMBOL",g.$tok(u(g.ts,1),P),g.ts,P),N=i(P,1),g.cs=516,N=u(N,1),C=$;continue;case 189:case 192:P=N,g.te=N,N=i(N,1),N=i(g.ts,1),g.cs=516,C=a;continue;case 276:switch(P=N,g.act.valueOf()){case 104:N=i(g.te,1),o(g.lambda_stack.$last(),g.paren_nest)?(g.lambda_stack.$pop(),o(g.$tok(),"{".$freeze())?g.$emit("tLAMBEG","{".$freeze()):g.$emit("kDO_LAMBDA","do".$freeze())):o(g.$tok(),"{".$freeze())?g.$emit("tLCURLY","{".$freeze()):g.$emit_do(),o(g.$tok(),"{".$freeze())&&(g.paren_nest=u(g.paren_nest,1)),g.command_start=!0,g.cs=508,N=u(N,1),C=$;continue;case 105:N=i(g.te,1),g.$emit_table(E("KEYWORDS")),g.cs=134,N=u(N,1),C=$;continue;case 106:N=i(g.te,1),g.$emit_singleton_class(),g.cs=508,N=u(N,1),C=$;continue;case 107:N=i(g.te,1),g.$emit_table(E("KEYWORDS")),g.cs=345,N=u(N,1),C=$;continue;case 108:N=i(g.te,1),g.$emit_table(E("KEYWORDS")),g.command_start=!0,g.cs=508,N=u(N,1),C=$;continue;case 109:N=i(g.te,1),g.$emit_table(E("KEYWORDS")),g.cs=321,N=u(N,1),C=$;continue;case 110:if(N=i(g.te,1),g.$emit_table(E("KEYWORDS")),n(g["$version?"](18))&&o(g.$tok(),"not".$freeze())){g.cs=345,N=u(N,1),C=$;continue}g.cs=276,N=u(N,1),C=$;continue;case 111:N=i(g.te,1),n(g["$version?"](18))?(g.$emit("tIDENTIFIER"),h(g.static_env["$nil?"]())&&n(g.static_env["$declared?"](g.$tok()))||(g.cs=g.$arg_or_cmdarg(D))):g.$emit("k__ENCODING__","__ENCODING__".$freeze()),N=u(N,1),C=$;continue;case 112:N=i(g.te,1),g.$emit_table(E("KEYWORDS")),N=u(N,1),C=$;continue;case 113:N=i(g.te,1),te=g.$numeric_literal_int(),n(g["$version?"](18,19,20))?(g.$emit("tINTEGER",te.$to_i(g.num_base),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te.$to_i(g.num_base),N),N=u(N,1),C=$;continue;case 115:if(N=i(g.te,1),!n(g["$version?"](18,19,20))){g.$emit("tINTEGER",g.$tok(g.ts,i(g.te,1)).$to_i(),g.ts,i(g.te,1)),N=i(N,1),N=u(N,1),C=$;continue}g.$diagnostic("error","trailing_in_number",new Map([["character",g.$tok(i(g.te,1),g.te)]]),g.$range(i(g.te,1),g.te));break;case 116:if(N=i(g.te,1),!n(g["$version?"](18,19,20))){g.$emit("tFLOAT",g.$tok(g.ts,i(g.te,1)).$to_f(),g.ts,i(g.te,1)),N=i(N,1),N=u(N,1),C=$;continue}g.$diagnostic("error","trailing_in_number",new Map([["character",g.$tok(i(g.te,1),g.te)]]),g.$range(i(g.te,1),g.te));break;case 117:N=i(g.te,1),te=g.$tok(g.ts,g.num_suffix_s),n(g["$version?"](18,19,20))?(g.$emit("tFLOAT",g.$Float(te),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te,N),N=u(N,1),C=$;continue;case 119:N=i(g.te,1),g.$emit("tCONSTANT"),g.cs=g.$arg_or_cmdarg(D),N=u(N,1),C=$;continue;case 123:if(N=i(g.te,1),g.$emit("tIDENTIFIER"),h(g.static_env["$nil?"]())&&n(g.static_env["$declared?"](g.$tok()))){g.cs=247,N=u(N,1),C=$;continue}if(n(f(g.version,32))&&n(g.$tok()["$=~"](/^_[1-9]$/))){g.cs=247,N=u(N,1),C=$;continue}g.cs=g.$arg_or_cmdarg(D),N=u(N,1),C=$;continue;case 124:N=i(g.te,1),o(P,g.te)?g.$emit("tFID"):(g.$emit("tIDENTIFIER",g.$tok(g.ts,P),g.ts,P),N=i(P,1)),g.cs=276,N=u(N,1),C=$;continue;case 126:N=i(g.te,1),g.$emit_table(E("PUNCTUATION")),g.cs=508,N=u(N,1),C=$;continue;case 127:N=i(g.te,1),g.$emit_table(E("PUNCTUATION")),g.cs=345,N=u(N,1),C=$;continue}break;case 123:P=i(N,2),g.te=N,N=i(N,1),g.$emit("tFID",g.$tok(g.ts,P),g.ts,P),g.cs=g.$arg_or_cmdarg(D),N=i(P,1),N=u(N,1),C=$;continue;case 219:case 221:case 225:case 224:case 223:P=i(N,2),g.te=N,N=i(N,1),g.$emit("tSYMBOL",g.$tok(u(g.ts,1),P),g.ts,P),N=i(P,1),g.cs=516,N=u(N,1),C=$;continue;case 191:case 193:case 196:P=i(N,2),g.te=N,N=i(N,1),N=i(g.ts,1),g.cs=516,C=a;continue;case 277:P=i(N,2),g.te=N,N=i(N,1),o(P,g.te)?g.$emit("tFID"):(g.$emit("tIDENTIFIER",g.$tok(g.ts,P),g.ts,P),N=i(P,1)),g.cs=276,N=u(N,1),C=$;continue;case 195:switch(P=i(N,2),g.act.valueOf()){case 60:N=i(g.te,1),g.$emit("tUNARY_NUM",g.$tok(g.ts,u(g.ts,1)),g.ts,u(g.ts,1)),N=i(N,1),g.cs=516,N=u(N,1),C=$;continue;case 67:N=i(g.te,1),g.$diagnostic("error","unterminated_heredoc_id",y,g.$range(g.ts,u(g.ts,1)));break;case 76:if(N=i(g.te,1),n(f(g.version,27))){g.$emit("tPIPE",g.$tok(g.ts,u(g.ts,1)),g.ts,u(g.ts,1)),N=i(N,1),g.cs=345,N=u(N,1),C=$;continue}N=i(N,2),g.cs=516,C=a;continue;case 80:N=i(g.te,1),g.$emit_table(E("PUNCTUATION_BEGIN")),N=u(N,1),C=$;continue;case 81:N=i(g.te,1),g.$emit("kRESCUE","rescue".$freeze(),g.ts,P),N=i(P,1),g.cs=321,N=u(N,1),C=$;continue;case 82:N=i(g.te,1),g.$emit_table(E("KEYWORDS_BEGIN")),g.command_start=!0,g.cs=508,N=u(N,1),C=$;continue;case 86:case 91:N=i(g.te,1),N=i(g.ts,1),g.cs=516,C=a;continue;case 87:if(N=i(g.te,1),g.$emit("tIDENTIFIER"),h(g.static_env["$nil?"]())&&n(g.static_env["$declared?"](g.$tok()))){g.cs=247,N=u(N,1),C=$;continue}if(n(f(g.version,32))&&n(g.$tok()["$=~"](/^_[1-9]$/))){g.cs=247,N=u(N,1),C=$;continue}g.cs=g.$arg_or_cmdarg(D),N=u(N,1),C=$;continue}break;case 222:P=i(N,3),g.te=N,N=i(N,1),g.$emit("tSYMBOL",g.$tok(u(g.ts,1),P),g.ts,P),N=i(P,1),g.cs=516,N=u(N,1),C=$;continue;case 194:P=i(N,3),g.te=N,N=i(N,1),N=i(g.ts,1),g.cs=516,C=a;continue;case 342:P=i(N,2),g.te=N,N=i(N,1),g.$emit("tCONSTANT",g.$tok(g.ts,P),g.ts,P),N=i(P,1),N=u(N,1),C=$;continue;case 146:g.cond.$push(!1),g.cmdarg.$push(!1),g.paren_nest=u(g.paren_nest,1),g.te=N,N=i(N,1),g.$emit("tLBRACK","[".$freeze(),i(g.te,1),g.te),g.cs=345,N=u(N,1),C=$;continue;case 238:g.cond.$push(!1),g.cmdarg.$push(!1),g.paren_nest=u(g.paren_nest,1),g.te=N,N=i(N,1),g.$emit("tLBRACK","[".$freeze()),N=u(N,1),C=$;continue;case 345:g.cond.$push(!1),g.cmdarg.$push(!1),g.paren_nest=u(g.paren_nest,1),g.te=N,N=i(N,1),g.$emit("tLBRACK2","[".$freeze()),g.cs=345,N=u(N,1),C=$;continue;case 348:case 290:g.paren_nest=i(g.paren_nest,1),g.te=N,N=i(N,1),g.$emit_rbrace_rparen_rbrack(),(o(g.$tok(),"}".$freeze())||o(g.$tok(),"]".$freeze()))&&(n(f(g.version,25))?g.cs=516:g.cs=313),N=u(N,1),C=$;continue;case 138:if(g.cond.$push(!1),g.cmdarg.$push(!1),g.paren_nest=u(g.paren_nest,1),n(g["$version?"](18))&&(g.command_start=!0),g.te=N,N=i(N,1),n(g["$version?"](18))){g.$emit("tLPAREN2","(".$freeze(),i(g.te,1),g.te),g.cs=508,N=u(N,1),C=$;continue}g.$emit("tLPAREN_ARG","(".$freeze(),i(g.te,1),g.te),g.cs=345,N=u(N,1),C=$;continue;case 151:g.cond.$push(!1),g.cmdarg.$push(!1),g.paren_nest=u(g.paren_nest,1),n(g["$version?"](18))&&(g.command_start=!0),g.te=N,N=i(N,1),g.$emit("tLPAREN2","(".$freeze()),g.cs=345,N=u(N,1),C=$;continue;case 159:if(g.cond.$push(!1),g.cmdarg.$push(!1),g.paren_nest=u(g.paren_nest,1),n(g["$version?"](18))&&(g.command_start=!0),g.te=N,N=i(N,1),g.$emit("tLPAREN_ARG","(".$freeze(),i(g.te,1),g.te),n(g["$version?"](18))){g.cs=508,N=u(N,1),C=$;continue}g.cs=345,N=u(N,1),C=$;continue;case 208:g.cond.$push(!1),g.cmdarg.$push(!1),g.paren_nest=u(g.paren_nest,1),n(g["$version?"](18))&&(g.command_start=!0),g.te=N,N=i(N,1),g.$emit("tLPAREN","(".$freeze()),N=u(N,1),C=$;continue;case 289:g.cond.$push(!1),g.cmdarg.$push(!1),g.paren_nest=u(g.paren_nest,1),n(g["$version?"](18))&&(g.command_start=!0),g.te=N,N=i(N,1),g.$emit_table(E("PUNCTUATION")),g.cs=345,N=u(N,1),C=$;continue;case 57:L=N,g.newline_s=N;break;case 233:if(ne=N,g.te=N,N=i(N,1),g.$tok(g.ts,L)["$=~"](/^<<(-?)(~?)(["'`]?)(.*)\3$/m),re=n(ie=((e=s["~"])===y?y:e["$[]"](1))["$empty?"]()["$!"]())?ie:((e=s["~"])===y?y:e["$[]"](2))["$empty?"]()["$!"](),ae=((e=s["~"])===y?y:e["$[]"](2))["$empty?"]()["$!"](),V=n(((e=s["~"])===y?y:e["$[]"](3))["$empty?"]())?'<<"'.$freeze():u("<<".$freeze(),(e=s["~"])===y?y:e["$[]"](3)),K=(e=s["~"])===y?y:e["$[]"](4),n(f(g.version,27))?(n(_(K.$count("\n"),0))||n(_(K.$count("\r"),0)))&&g.$diagnostic("error","unterminated_heredoc_id",y,g.$range(g.ts,u(g.ts,1))):n(f(g.version,24))&&n(_(K.$count("\n"),0))&&(n(K["$end_with?"]("\n"))?(g.$diagnostic("warning","heredoc_id_ends_with_nl",y,g.$range(g.ts,u(g.ts,1))),K=K.$rstrip()):g.$diagnostic("fatal","heredoc_id_has_newline",y,g.$range(g.ts,u(g.ts,1)))),n(ae)&&n(g["$version?"](18,19,20,21,22))){g.$emit("tLSHFT","<<".$freeze(),g.ts,u(g.ts,2)),N=u(g.ts,1),g.cs=345,N=u(N,1),C=$;continue}g.strings.$push_literal(V,K,g.ts,L,re,ae),n(ie=g.strings.$herebody_s())||g.strings["$herebody_s="](ne),N=i(g.strings.$herebody_s(),1),g.cs=128;break;case 228:P=i(N,1),H="ivar_name",g.te=N,N=i(N,1),g.$emit_colon_with_digits(N,P,H),g.cs=516,N=u(N,1),C=$;continue;case 231:P=i(N,2),H="cvar_name",g.te=N,N=i(N,1),g.$emit_colon_with_digits(N,P,H),g.cs=516,N=u(N,1),C=$;continue;case 241:P=N,g.te=N,N=i(N,1),g.$emit("kRESCUE","rescue".$freeze(),g.ts,P),N=i(P,1),g.cs=321,N=u(N,1),C=$;continue;case 332:g.num_base=16,g.num_digits_s=N,g.num_suffix_s=N;break;case 326:g.num_base=10,g.num_digits_s=N,g.num_suffix_s=N;break;case 329:g.num_base=8,g.num_digits_s=N,g.num_suffix_s=N;break;case 323:g.num_base=2,g.num_digits_s=N,g.num_suffix_s=N;break;case 338:g.num_base=10,g.num_digits_s=g.ts,g.num_suffix_s=N;break;case 301:g.num_base=8,g.num_digits_s=g.ts,g.num_suffix_s=N;break;case 339:g.num_suffix_s=N,g.num_xfrm=g.emit_integer;break;case 184:g.te=u(N,1),g.newline_s=N;break;case 305:g.te=u(N,1),g.num_suffix_s=N;break;case 107:g.te=u(N,1),g.act=4;break;case 94:g.te=u(N,1),g.act=5;break;case 90:g.te=u(N,1),g.act=6;break;case 12:g.te=u(N,1),g.act=33;break;case 140:g.te=u(N,1),g.act=34;break;case 13:g.te=u(N,1),g.act=39;break;case 133:g.te=u(N,1),g.act=40;break;case 160:g.te=u(N,1),g.act=46;break;case 31:g.te=u(N,1),g.act=47;break;case 181:g.te=u(N,1),g.act=54;break;case 170:g.te=u(N,1),g.act=55;break;case 55:g.te=u(N,1),g.act=67;break;case 246:g.te=u(N,1),g.act=76;break;case 185:g.te=u(N,1),g.act=80;break;case 240:g.te=u(N,1),g.act=81;break;case 239:g.te=u(N,1),g.act=82;break;case 59:g.te=u(N,1),g.act=86;break;case 182:g.te=u(N,1),g.act=87;break;case 186:g.te=u(N,1),g.act=91;break;case 356:g.te=u(N,1),g.act=104;break;case 351:g.te=u(N,1),g.act=105;break;case 359:g.te=u(N,1),g.act=107;break;case 352:g.te=u(N,1),g.act=108;break;case 353:g.te=u(N,1),g.act=109;break;case 358:g.te=u(N,1),g.act=110;break;case 350:g.te=u(N,1),g.act=111;break;case 344:g.te=u(N,1),g.act=112;break;case 270:g.te=u(N,1),g.act=113;break;case 303:g.te=u(N,1),g.act=116;break;case 67:g.te=u(N,1),g.act=117;break;case 273:g.te=u(N,1),g.act=119;break;case 264:g.te=u(N,1),g.act=123;break;case 275:g.te=u(N,1),g.act=124;break;case 268:g.te=u(N,1),g.act=126;break;case 274:g.te=u(N,1),g.act=127;break;case 73:g.te=u(N,1),g.act=140;break;case 363:g.te=u(N,1),g.act=144;break;case 47:g.sharp_s=i(N,1),g.$emit_comment_from_range(N,r),g.newline_s=N;break;case 100:case 115:case 127:case 164:case 176:case 203:case 251:case 261:case 282:case 377:g.sharp_s=i(N,1),g.$emit_comment_from_range(N,r),g.te=N,N=i(N,1);break;case 149:g.sharp_s=i(N,1),g.$emit_comment_from_range(N,r),g.te=N,N=i(N,1),g.cs=516,C=a;continue;case 334:g.num_base=10,g.num_digits_s=g.ts,g.num_suffix_s=N,g.num_xfrm=g.emit_integer;break;case 298:g.num_base=8,g.num_digits_s=g.ts,g.num_suffix_s=N,g.num_xfrm=g.emit_integer;break;case 313:g.num_suffix_s=N,g.num_xfrm=g.emit_integer,g.te=N,N=i(N,1),te=g.$numeric_literal_int(),n(g["$version?"](18,19,20))?(g.$emit("tINTEGER",te.$to_i(g.num_base),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te.$to_i(g.num_base),N),N=u(N,1),C=$;continue;case 306:case 302:g.num_suffix_s=N,g.num_xfrm=g.emit_float,g.te=N,N=i(N,1),te=g.$tok(g.ts,g.num_suffix_s),n(g["$version?"](18,19,20))?(g.$emit("tFLOAT",g.$Float(te),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te,N),N=u(N,1),C=$;continue;case 155:g.te=u(N,1),g.newline_s=N,g.act=40;break;case 21:g.te=u(N,1),N=g.$on_newline(N),g.act=39;break;case 32:g.te=u(N,1),N=g.$on_newline(N),g.act=47;break;case 79:g.te=u(N,1),N=g.$on_newline(N),g.act=140;break;case 51:g.te=u(N,1),g.$emit_comment_from_range(N,r),g.act=60;break;case 70:g.te=u(N,1),g.$emit_comment_from_range(N,r),g.act=106;break;case 78:g.te=u(N,1),g.$emit_comment_from_range(N,r),g.act=140;break;case 23:g.te=u(N,1),P=N,g.act=34;break;case 243:g.te=u(N,1),P=N,g.act=86;break;case 242:g.te=u(N,1),P=N,g.act=87;break;case 335:g.te=u(N,1),g.num_base=10,g.num_digits_s=g.ts,g.act=113;break;case 330:g.num_base=16,g.num_digits_s=N,g.num_suffix_s=N,g.num_xfrm=g.emit_integer,g.te=N,N=i(N,1),te=g.$numeric_literal_int(),n(g["$version?"](18,19,20))?(g.$emit("tINTEGER",te.$to_i(g.num_base),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te.$to_i(g.num_base),N),N=u(N,1),C=$;continue;case 324:g.num_base=10,g.num_digits_s=N,g.num_suffix_s=N,g.num_xfrm=g.emit_integer,g.te=N,N=i(N,1),te=g.$numeric_literal_int(),n(g["$version?"](18,19,20))?(g.$emit("tINTEGER",te.$to_i(g.num_base),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te.$to_i(g.num_base),N),N=u(N,1),C=$;continue;case 327:g.num_base=8,g.num_digits_s=N,g.num_suffix_s=N,g.num_xfrm=g.emit_integer,g.te=N,N=i(N,1),te=g.$numeric_literal_int(),n(g["$version?"](18,19,20))?(g.$emit("tINTEGER",te.$to_i(g.num_base),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te.$to_i(g.num_base),N),N=u(N,1),C=$;continue;case 321:g.num_base=2,g.num_digits_s=N,g.num_suffix_s=N,g.num_xfrm=g.emit_integer,g.te=N,N=i(N,1),te=g.$numeric_literal_int(),n(g["$version?"](18,19,20))?(g.$emit("tINTEGER",te.$to_i(g.num_base),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te.$to_i(g.num_base),N),N=u(N,1),C=$;continue;case 333:g.num_base=10,g.num_digits_s=g.ts,g.num_suffix_s=N,g.num_xfrm=g.emit_integer,g.te=N,N=i(N,1),te=g.$numeric_literal_int(),n(g["$version?"](18,19,20))?(g.$emit("tINTEGER",te.$to_i(g.num_base),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te.$to_i(g.num_base),N),N=u(N,1),C=$;continue;case 297:g.num_base=8,g.num_digits_s=g.ts,g.num_suffix_s=N,g.num_xfrm=g.emit_integer,g.te=N,N=i(N,1),te=g.$numeric_literal_int(),n(g["$version?"](18,19,20))?(g.$emit("tINTEGER",te.$to_i(g.num_base),g.ts,g.num_suffix_s),N=i(g.num_suffix_s,1)):N=g.num_xfrm.$call(te.$to_i(g.num_base),N),N=u(N,1),C=$;continue;case 17:g.te=u(N,1),P=N=g.$on_newline(N),g.act=34;break;case 48:g.te=u(N,1),g.sharp_s=i(N,1),g.$emit_comment_from_range(N,r),g.act=60;break;case 77:g.te=u(N,1),g.sharp_s=i(N,1),g.$emit_comment_from_range(N,r),g.act=140;break;case 340:g.te=u(N,1),g.num_suffix_s=N,g.num_xfrm=g.emit_integer,g.act=115;break;case 336:g.te=u(N,1),g.num_base=10,g.num_digits_s=g.ts,g.num_suffix_s=N,g.num_xfrm=g.emit_integer,g.act=115;break;case 300:g.te=u(N,1),g.num_base=8,g.num_digits_s=g.ts,g.num_suffix_s=N,g.num_xfrm=g.emit_integer,g.act=115}if(n(c(C,a))){if(84===O["$[]"](g.cs).valueOf())g.ts=y;if(o(g.cs,0)){C=$;continue}if(N=u(N,1),d(N,r)){C=10;continue}}if(n(c(C,30))&&o(N,z)&&n(_(A["$[]"](g.cs),0)))T=i(A["$[]"](g.cs),1),C=15;else if(n(c(C,$)))break}return n(!1),g.p=N,n(g.token_queue["$any?"]())?g.token_queue.$shift():o(g.cs,v.$lex_error())?[!1,["$error".$freeze(),g.$range(i(N,1),N)]]:(z=g.source_pts.$size(),[!1,["$eof".$freeze(),g.$range(z,z)]])})),k.$protected(),a(k,"$version?",(function(e){return g(arguments)["$include?"](this.version)}),-1),a(k,"$stack_pop",(function(){var e=this;return e.top=i(e.top,1),e.stack["$[]"](e.top)})),a(k,"$tok",(function(e,t){var n=this;return null==e&&(e=n.ts),null==t&&(t=n.te),n.source_buffer.$slice(e,i(t,e))}),-1),a(k,"$range",(function(e,t){var n=this;return null==e&&(e=n.ts),null==t&&(t=n.te),w(w(E("Parser"),"Source"),"Range").$new(n.source_buffer,e,t)}),-1),a(k,"$emit",(function(e,t,r,i){var a,s=this;return null==t&&(t=s.$tok()),null==r&&(r=s.ts),null==i&&(i=s.te),a=[e,[t,s.$range(r,i)]],s.token_queue.$push(a),n(s.tokens)&&s.tokens.$push(a),a}),-2),a(k,"$emit_table",(function(e,t,n){var r,i=this;return null==t&&(t=i.ts),null==n&&(n=i.te),r=i.$tok(t,n),i.$emit(e["$[]"](r),r,t,n)}),-2),a(k,"$emit_do",(function(e){var t=this;return null==e&&(e=!1),n(t.cond["$active?"]())?t.$emit("kDO_COND","do".$freeze()):n(t.cmdarg["$active?"]())||n(e)?t.$emit("kDO_BLOCK","do".$freeze()):t.$emit("kDO","do".$freeze())}),-1),a(k,"$arg_or_cmdarg",(function(e){return n(e)?this.$class().$lex_en_expr_cmdarg():this.$class().$lex_en_expr_arg()})),a(k,"$emit_comment",(function(e,t){var r=this;return null==e&&(e=r.ts),null==t&&(t=r.te),n(r.comments)&&r.comments.$push(w(w(E("Parser"),"Source"),"Comment").$new(r.$range(e,t))),n(r.tokens)&&r.tokens.$push(["tCOMMENT",[r.$tok(e,t),r.$range(e,t)]]),y}),-1),a(k,"$emit_comment_from_range",(function(e,t){return this.$emit_comment(this.sharp_s,o(e,t)?i(e,2):e)})),a(k,"$diagnostic",(function(e,t,n,r,i){return null==n&&(n=y),null==r&&(r=this.$range()),null==i&&(i=[]),this.diagnostics.$process(w(E("Parser"),"Diagnostic").$new(e,t,n,r,i))}),-3),a(k,"$e_lbrace",(function(){var e=this,t=y;return e.cond.$push(!1),e.cmdarg.$push(!1),t=e.strings.$literal(),n(t)?t.$start_interp_brace():y})),a(k,"$numeric_literal_int",(function(){var e=this,t=y,r=y,a=y;return t=e.$tok(e.num_digits_s,e.num_suffix_s),n(t["$end_with?"]("_".$freeze()))?e.$diagnostic("error","trailing_in_number",new Map([["character","_".$freeze()]]),e.$range(i(e.te,1),e.te)):n(t["$empty?"]())&&o(e.num_base,8)&&n(e["$version?"](18))?t="0".$freeze():n(t["$empty?"]())?e.$diagnostic("error","empty_numeric"):o(e.num_base,8)&&n(r=t.$index(/[89]/))&&(a=u(e.num_digits_s,r),e.$diagnostic("error","invalid_octal",y,e.$range(a,u(a,1)))),t})),a(k,"$on_newline",(function(e){return this.strings.$on_newline(e)})),a(k,"$check_ambiguous_slash",(function(e){var t=this;return o(t.$tok(e,u(e,1)),"/".$freeze())?n(m(t.version,30))?t.$diagnostic("warning","ambiguous_literal",y,t.$range(e,u(e,1))):t.$diagnostic("warning","ambiguous_regexp",y,t.$range(e,u(e,1))):y})),a(k,"$emit_global_var",(function(e,t){var r=this;return null==e&&(e=r.ts),null==t&&(t=r.te),n(r.$tok(e,t)["$=~"](/^\$([1-9][0-9]*)$/))?r.$emit("tNTH_REF",r.$tok(u(e,1),t).$to_i(),e,t):n(r.$tok()["$=~"](/^\$([&`'+])$/))?r.$emit("tBACK_REF",r.$tok(e,t),e,t):r.$emit("tGVAR",r.$tok(e,t),e,t)}),-1),a(k,"$emit_class_var",(function(e,t){var r=this;return null==e&&(e=r.ts),null==t&&(t=r.te),n(r.$tok(e,t)["$=~"](/^@@[0-9]/))&&r.$diagnostic("error","cvar_name",new Map([["name",r.$tok(e,t)]])),r.$emit("tCVAR",r.$tok(e,t),e,t)}),-1),a(k,"$emit_instance_var",(function(e,t){var r=this;return null==e&&(e=r.ts),null==t&&(t=r.te),n(r.$tok(e,t)["$=~"](/^@[0-9]/))&&r.$diagnostic("error","ivar_name",new Map([["name",r.$tok(e,t)]])),r.$emit("tIVAR",r.$tok(e,t),e,t)}),-1),a(k,"$emit_rbrace_rparen_rbrack",(function(){var e=this;return e.$emit_table(E("PUNCTUATION")),n(m(e.version,24))?(e.cond.$lexpop(),e.cmdarg.$lexpop()):(e.cond.$pop(),e.cmdarg.$pop())})),a(k,"$emit_colon_with_digits",(function(e,t,r){var i=this;return n(f(i.version,27))?i.$diagnostic("error",r,new Map([["name",i.$tok(t,i.te)]]),i.$range(t,i.te)):(i.$emit("tCOLON",i.$tok(i.ts,u(i.ts,1)),i.ts,u(i.ts,1)),e=i.ts),e})),a(k,"$emit_singleton_class",(function(){var e=this;return e.$emit("kCLASS","class".$freeze(),e.ts,u(e.ts,5)),e.$emit("tLSHFT","<<".$freeze(),i(e.te,2),e.te)})),$(G[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"]])),$(G[0],"PUNCTUATION_BEGIN",new Map([["&","tAMPER"],["*","tSTAR"],["**","tDSTAR"],["+","tUPLUS"],["-","tUMINUS"],["::","tCOLON3"],["(","tLPAREN"],["{","tLBRACE"],["[","tLBRACK"]])),$(G[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"]])),$(G[0],"KEYWORDS_BEGIN",new Map([["if","kIF"],["unless","kUNLESS"],["while","kWHILE"],["until","kUNTIL"],["rescue","kRESCUE"],["defined?","kDEFINED"],["BEGIN","klBEGIN"],["END","klEND"]])),$(G[0],"ESCAPE_WHITESPACE",new Map([[" ","\\s"],["\r","\\r"],["\n","\\n"],["\t","\\t"],["\v","\\v"],["\f","\\f"]])),r(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,n;return null==e&&(e=y),t=[e,(n=[e,"k"+e.$upcase()],r(E("KEYWORDS"),"[]=",n),n[n.length-1])],r(E("KEYWORDS_BEGIN"),"[]=",t),t[t.length-1]}))}(b("Parser"),0,v)},Opal.modules["parser/lexer-strings"]=function(e){var t=e.klass,n=e.const_set,r=e.hash_rehash,i=e.send,a=e.to_a,s=e.truthy,o=e.def,$=e.rb_plus,u=e.to_ary,l=e.rb_le,c=e.eqeq,_=e.rb_gt,d=e.rb_minus,p=e.neqeq,f=e.eqeqeq,h=e.not,m=e.slice,g=e.rb_lt,v=e.rb_ge,b=e.thrower,y=e.range,w=[],x=e.$r(w),k=e.nil,G=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,x,E){var S=t(w,null,"LexerStrings"),O=[S].concat(E),M=e.$r(O),A=S.$$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=k,function(e,t){e.$attr_accessor("_lex_actions"),e.$private("_lex_actions","_lex_actions=")}(e.get_singleton_class(S)),S["$_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(S)),S["$_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(S)),S["$_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(S)),S["$_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(S)),S["$_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(S)),S["$_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(S)),S["$_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(S)),S["$_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(S)),S["$_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(S)),S["$_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(S)),S["$lex_start="](60),function(e,t){e.$attr_accessor("lex_error")}(e.get_singleton_class(S)),S["$lex_error="](0),function(e,t){e.$attr_accessor("lex_en_interp_words")}(e.get_singleton_class(S)),S["$lex_en_interp_words="](61),function(e,t){e.$attr_accessor("lex_en_interp_string")}(e.get_singleton_class(S)),S["$lex_en_interp_string="](131),function(e,t){e.$attr_accessor("lex_en_plain_words")}(e.get_singleton_class(S)),S["$lex_en_plain_words="](200),function(e,t){e.$attr_accessor("lex_en_plain_string")}(e.get_singleton_class(S)),S["$lex_en_plain_string="](203),function(e,t){e.$attr_accessor("lex_en_interp_backslash_delimited")}(e.get_singleton_class(S)),S["$lex_en_interp_backslash_delimited="](205),function(e,t){e.$attr_accessor("lex_en_plain_backslash_delimited")}(e.get_singleton_class(S)),S["$lex_en_plain_backslash_delimited="](214),function(e,t){e.$attr_accessor("lex_en_interp_backslash_delimited_words")}(e.get_singleton_class(S)),S["$lex_en_interp_backslash_delimited_words="](215),function(e,t){e.$attr_accessor("lex_en_plain_backslash_delimited_words")}(e.get_singleton_class(S)),S["$lex_en_plain_backslash_delimited_words="](225),function(e,t){e.$attr_accessor("lex_en_regexp_modifiers")}(e.get_singleton_class(S)),S["$lex_en_regexp_modifiers="](227),function(e,t){e.$attr_accessor("lex_en_character")}(e.get_singleton_class(S)),S["$lex_en_character="](229),function(e,t){e.$attr_accessor("lex_en_unknown")}(e.get_singleton_class(S)),S["$lex_en_unknown="](60),n(O[0],"ESCAPES",r(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()),n(O[0],"REGEXP_META_CHARACTERS",i(M("Regexp"),"union",a("\\$()*+.<>?[]^{|}".$chars())).$freeze()),S.$attr_accessor("herebody_s"),S.$attr_accessor("source_buffer","source_pts"),o(S,"$initialize",(function(e,t){var n=this;return n.lexer=e,n.version=t,n._lex_actions=s(n.$class()["$respond_to?"]("_lex_actions",!0))?n.$class().$send("_lex_actions"):[],n.$reset()})),o(S,"$reset",(function(){var e=this;return e.cs=e.$class().$lex_en_unknown(),e.literal_stack=[],e.escape_s=k,e.escape=k,e.herebody_s=k,e.dedent_level=k})),n(O[0],"LEX_STATES",new Map([["interp_string",S.$lex_en_interp_string()],["interp_words",S.$lex_en_interp_words()],["plain_string",S.$lex_en_plain_string()],["plain_words",S.$lex_en_plain_string()]])),o(S,"$advance",(function(e){var t,n,r,i,a=this,o=k,m=k,g=k,v=k,b=k,y=k,w=k,x=k,E=k,S=k,O=k,A=k,N=k,z=k,D=k,I=k,T=k,R=k,q=k,C=k,j=k,B=k,P=k,L=k,H=k,F=k,U=k,Y=k,V=k,K=k;for(m=(o=a.$class()).$send("_lex_trans_keys"),g=o.$send("_lex_key_spans"),v=o.$send("_lex_index_offsets"),b=o.$send("_lex_indicies"),y=o.$send("_lex_trans_targs"),w=o.$send("_lex_trans_actions"),x=o.$send("_lex_to_state_actions"),E=o.$send("_lex_from_state_actions"),S=o.$send("_lex_eof_trans"),O=a._lex_actions,r=n=$(a.$source_pts().$size(),2),!1,A=null==(t=u(k))[0]?k:t[0],N=null==t[1]?k:t[1],z=null==t[2]?k:t[2],D=null==t[3]?k:t[3],I=null==t[4]?k:t[4],T=null==t[5]?k:t[5],R=0,10,15,20,30,i=40;s(!0);){if(q=!1,s(l(R,0))){if(c(e,n)){R=30;continue}if(c(a.cs,0)){R=i;continue}}if(s(l(R,10))){for(I=E["$[]"](a.cs),T=O["$[]"](I),I=$(I,1);s(_(T,0));)if(T=d(T,1),I=$(I,1),24===O["$[]"](d(I,1)).valueOf())a.ts=e;if(s(q))continue;z=a.cs["$<<"](1),D=v["$[]"](a.cs),A=g["$[]"](a.cs),C=s(j=a.$source_pts()["$[]"](e))?j:0,N=s(_(A,0))&&s(l(m["$[]"](z),C))&&s(l(C,m["$[]"]($(z,1))))?b["$[]"](d($(D,C),m["$[]"](z))):b["$[]"]($(D,A))}if(s(l(R,15))){if(a.cs=y["$[]"](N),p(w["$[]"](N),0))for(I=w["$[]"](N),T=O["$[]"](I),I=$(I,1);s(_(T,0));)if(T=d(T,1),I=$(I,1),f(0,j=O["$[]"](d(I,1))))a.newline_s=e;else if(f(1,j))a.$unicode_points(e);else if(f(2,j))a.$unescape_char(e);else if(f(3,j))a.$diagnostic("fatal","invalid_escape");else if(f(4,j))a.$read_post_meta_or_ctrl_char(e);else if(f(5,j))a.$slash_c_char();else if(f(6,j))a.$slash_m_char();else if(f(7,j))a.$encode_escaped_char(e);else if(f(8,j))a.escape="";else if(f(9,j))a.$encode_escaped_char(e);else if(f(10,j))a.escape=a.$encode_escape(a.$tok(a.escape_s,e).$to_i(8)["$%"](256));else if(f(11,j))a.escape=a.$encode_escape(a.$tok($(a.escape_s,1),e).$to_i(16));else if(f(12,j))a.$diagnostic("fatal","invalid_hex_escape",k,a.$range(d(a.escape_s,1),$(e,2)));else if(f(13,j))a.escape=a.$tok($(a.escape_s,1),e).$to_i(16).$chr(G(M("Encoding"),"UTF_8"));else if(f(14,j))a.$check_invalid_escapes(e);else if(f(15,j))a.$check_invalid_escapes(e);else if(f(16,j))a.$diagnostic("fatal","unterminated_unicode",k,a.$range(d(e,1),e));else if(f(17,j))a.$diagnostic("fatal","escape_eof",k,a.$range(d(e,1),e));else if(f(18,j))a.escape_s=e,a.escape=k;else if(f(19,j))B="gvar";else if(f(20,j))B="cvar";else if(f(21,j))B="ivar";else if(f(22,j))a.escape=k;else if(f(25,j))a.te=$(e,1);else{if(f(26,j)){a.te=$(e,1),P=a.$literal(),a.$extend_interp_code(P),a.root_lexer_state=a.lexer.$class().$lex_en_expr_value(),e=$(e,1),q=!0,R=i;break}if(f(27,j)){if(a.te=$(e,1),P=a.$literal(),a.$extend_string_eol_check_eof(P,n),s(P["$heredoc?"]())){if(L=a.$extend_string_eol_heredoc_line(),s(P.$nest_and_try_closing(L,a.herebody_s,a.ts))){a.herebody_s=a.te,e=d(P.$heredoc_e(),1),a.cs=a.$pop_literal(),e=$(e,1),q=!0,R=i;break}P.$infer_indent_level(L),a.herebody_s=a.te}else{if(s(P.$nest_and_try_closing(a.$tok(),a.ts,a.te))){a.cs=a.$pop_literal(),e=$(e,1),q=!0,R=i;break}e=a.$extend_string_eol_heredoc_intertwined(e)}a.$extend_string_eol_words(P,e)}else if(f(28,j)){if(a.te=$(e,1),H=a.$tok(),F=a.$extend_string_slice_end(F),P=a.$literal(),h(P["$heredoc?"]())&&s(U=P.$nest_and_try_closing(H,a.ts,a.te,F))){c(U["$[]"](0),"tLABEL_END")?(e=$(e,1),a.$pop_literal(),a.root_lexer_state=a.lexer.$class().$lex_en_expr_labelarg()):s(Y=a.$pop_literal())&&(a.cs=Y),e=$(e,1),q=!0,R=i;break}a.$extend_string_for_token_range(P,H)}else if(f(29,j))a.te=e,e=d(e,1),a.$extend_interp_digit_var();else if(f(30,j))a.te=e,e=d(e,1),P=a.$literal(),a.$extend_interp_var(P),a.$emit_interp_var(B);else if(f(31,j))a.te=e,e=d(e,1),a.$extend_string_escaped();else if(f(32,j))a.te=e,e=d(e,1),a.$literal().$extend_space(a.ts,a.te);else if(f(33,j)){if(a.te=e,e=d(e,1),H=a.$tok(),F=a.$extend_string_slice_end(F),P=a.$literal(),h(P["$heredoc?"]())&&s(U=P.$nest_and_try_closing(H,a.ts,a.te,F))){c(U["$[]"](0),"tLABEL_END")?(e=$(e,1),a.$pop_literal(),a.root_lexer_state=a.lexer.$class().$lex_en_expr_labelarg()):s(Y=a.$pop_literal())&&(a.cs=Y),e=$(e,1),q=!0,R=i;break}a.$extend_string_for_token_range(P,H)}else if(f(34,j))e=d(a.te,1),a.$extend_string_escaped();else if(f(35,j)){if(e=d(a.te,1),H=a.$tok(),F=a.$extend_string_slice_end(F),P=a.$literal(),h(P["$heredoc?"]())&&s(U=P.$nest_and_try_closing(H,a.ts,a.te,F))){c(U["$[]"](0),"tLABEL_END")?(e=$(e,1),a.$pop_literal(),a.root_lexer_state=a.lexer.$class().$lex_en_expr_labelarg()):s(Y=a.$pop_literal())&&(a.cs=Y),e=$(e,1),q=!0,R=i;break}a.$extend_string_for_token_range(P,H)}else{if(f(36,j)){a.te=$(e,1),P=a.$literal(),a.$extend_interp_code(P),a.root_lexer_state=a.lexer.$class().$lex_en_expr_value(),e=$(e,1),q=!0,R=i;break}if(f(37,j)){if(a.te=$(e,1),P=a.$literal(),a.$extend_string_eol_check_eof(P,n),s(P["$heredoc?"]())){if(L=a.$extend_string_eol_heredoc_line(),s(P.$nest_and_try_closing(L,a.herebody_s,a.ts))){a.herebody_s=a.te,e=d(P.$heredoc_e(),1),a.cs=a.$pop_literal(),e=$(e,1),q=!0,R=i;break}P.$infer_indent_level(L),a.herebody_s=a.te}else{if(s(P.$nest_and_try_closing(a.$tok(),a.ts,a.te))){a.cs=a.$pop_literal(),e=$(e,1),q=!0,R=i;break}e=a.$extend_string_eol_heredoc_intertwined(e)}a.$extend_string_eol_words(P,e)}else if(f(38,j)){if(a.te=$(e,1),H=a.$tok(),F=a.$extend_string_slice_end(F),P=a.$literal(),h(P["$heredoc?"]())&&s(U=P.$nest_and_try_closing(H,a.ts,a.te,F))){c(U["$[]"](0),"tLABEL_END")?(e=$(e,1),a.$pop_literal(),a.root_lexer_state=a.lexer.$class().$lex_en_expr_labelarg()):s(Y=a.$pop_literal())&&(a.cs=Y),e=$(e,1),q=!0,R=i;break}a.$extend_string_for_token_range(P,H)}else if(f(39,j))a.te=e,e=d(e,1),a.$extend_interp_digit_var();else if(f(40,j))a.te=e,e=d(e,1),P=a.$literal(),a.$extend_interp_var(P),a.$emit_interp_var(B);else if(f(41,j))a.te=e,e=d(e,1),a.$extend_string_escaped();else if(f(42,j)){if(a.te=e,e=d(e,1),H=a.$tok(),F=a.$extend_string_slice_end(F),P=a.$literal(),h(P["$heredoc?"]())&&s(U=P.$nest_and_try_closing(H,a.ts,a.te,F))){c(U["$[]"](0),"tLABEL_END")?(e=$(e,1),a.$pop_literal(),a.root_lexer_state=a.lexer.$class().$lex_en_expr_labelarg()):s(Y=a.$pop_literal())&&(a.cs=Y),e=$(e,1),q=!0,R=i;break}a.$extend_string_for_token_range(P,H)}else if(f(43,j))e=d(a.te,1),a.$extend_string_escaped();else if(f(44,j)){if(e=d(a.te,1),H=a.$tok(),F=a.$extend_string_slice_end(F),P=a.$literal(),h(P["$heredoc?"]())&&s(U=P.$nest_and_try_closing(H,a.ts,a.te,F))){c(U["$[]"](0),"tLABEL_END")?(e=$(e,1),a.$pop_literal(),a.root_lexer_state=a.lexer.$class().$lex_en_expr_labelarg()):s(Y=a.$pop_literal())&&(a.cs=Y),e=$(e,1),q=!0,R=i;break}a.$extend_string_for_token_range(P,H)}else if(f(45,j))a.te=$(e,1),a.$extend_string_escaped();else if(f(46,j)){if(a.te=$(e,1),P=a.$literal(),a.$extend_string_eol_check_eof(P,n),s(P["$heredoc?"]())){if(L=a.$extend_string_eol_heredoc_line(),s(P.$nest_and_try_closing(L,a.herebody_s,a.ts))){a.herebody_s=a.te,e=d(P.$heredoc_e(),1),a.cs=a.$pop_literal(),e=$(e,1),q=!0,R=i;break}P.$infer_indent_level(L),a.herebody_s=a.te}else{if(s(P.$nest_and_try_closing(a.$tok(),a.ts,a.te))){a.cs=a.$pop_literal(),e=$(e,1),q=!0,R=i;break}e=a.$extend_string_eol_heredoc_intertwined(e)}a.$extend_string_eol_words(P,e)}else if(f(47,j)){if(a.te=$(e,1),H=a.$tok(),F=a.$extend_string_slice_end(F),P=a.$literal(),h(P["$heredoc?"]())&&s(U=P.$nest_and_try_closing(H,a.ts,a.te,F))){c(U["$[]"](0),"tLABEL_END")?(e=$(e,1),a.$pop_literal(),a.root_lexer_state=a.lexer.$class().$lex_en_expr_labelarg()):s(Y=a.$pop_literal())&&(a.cs=Y),e=$(e,1),q=!0,R=i;break}a.$extend_string_for_token_range(P,H)}else if(f(48,j))a.te=e,e=d(e,1),a.$literal().$extend_space(a.ts,a.te);else if(f(49,j)){if(a.te=e,e=d(e,1),H=a.$tok(),F=a.$extend_string_slice_end(F),P=a.$literal(),h(P["$heredoc?"]())&&s(U=P.$nest_and_try_closing(H,a.ts,a.te,F))){c(U["$[]"](0),"tLABEL_END")?(e=$(e,1),a.$pop_literal(),a.root_lexer_state=a.lexer.$class().$lex_en_expr_labelarg()):s(Y=a.$pop_literal())&&(a.cs=Y),e=$(e,1),q=!0,R=i;break}a.$extend_string_for_token_range(P,H)}else if(f(50,j)){if(a.te=$(e,1),P=a.$literal(),a.$extend_string_eol_check_eof(P,n),s(P["$heredoc?"]())){if(L=a.$extend_string_eol_heredoc_line(),s(P.$nest_and_try_closing(L,a.herebody_s,a.ts))){a.herebody_s=a.te,e=d(P.$heredoc_e(),1),a.cs=a.$pop_literal(),e=$(e,1),q=!0,R=i;break}P.$infer_indent_level(L),a.herebody_s=a.te}else{if(s(P.$nest_and_try_closing(a.$tok(),a.ts,a.te))){a.cs=a.$pop_literal(),e=$(e,1),q=!0,R=i;break}e=a.$extend_string_eol_heredoc_intertwined(e)}a.$extend_string_eol_words(P,e)}else if(f(51,j))a.te=$(e,1),a.$extend_string_escaped();else if(f(52,j)){if(a.te=$(e,1),P=a.$literal(),a.$extend_string_eol_check_eof(P,n),s(P["$heredoc?"]())){if(L=a.$extend_string_eol_heredoc_line(),s(P.$nest_and_try_closing(L,a.herebody_s,a.ts))){a.herebody_s=a.te,e=d(P.$heredoc_e(),1),a.cs=a.$pop_literal(),e=$(e,1),q=!0,R=i;break}P.$infer_indent_level(L),a.herebody_s=a.te}else{if(s(P.$nest_and_try_closing(a.$tok(),a.ts,a.te))){a.cs=a.$pop_literal(),e=$(e,1),q=!0,R=i;break}e=a.$extend_string_eol_heredoc_intertwined(e)}a.$extend_string_eol_words(P,e)}else if(f(53,j)){if(a.te=$(e,1),H=a.$tok(),F=a.$extend_string_slice_end(F),P=a.$literal(),h(P["$heredoc?"]())&&s(U=P.$nest_and_try_closing(H,a.ts,a.te,F))){c(U["$[]"](0),"tLABEL_END")?(e=$(e,1),a.$pop_literal(),a.root_lexer_state=a.lexer.$class().$lex_en_expr_labelarg()):s(Y=a.$pop_literal())&&(a.cs=Y),e=$(e,1),q=!0,R=i;break}a.$extend_string_for_token_range(P,H)}else if(f(54,j)){if(a.te=e,e=d(e,1),H=a.$tok(),F=a.$extend_string_slice_end(F),P=a.$literal(),h(P["$heredoc?"]())&&s(U=P.$nest_and_try_closing(H,a.ts,a.te,F))){c(U["$[]"](0),"tLABEL_END")?(e=$(e,1),a.$pop_literal(),a.root_lexer_state=a.lexer.$class().$lex_en_expr_labelarg()):s(Y=a.$pop_literal())&&(a.cs=Y),e=$(e,1),q=!0,R=i;break}a.$extend_string_for_token_range(P,H)}else{if(f(55,j)){a.te=$(e,1),P=a.$literal(),a.$extend_interp_code(P),a.root_lexer_state=a.lexer.$class().$lex_en_expr_value(),e=$(e,1),q=!0,R=i;break}if(f(56,j)){if(a.te=$(e,1),P=a.$literal(),a.$extend_string_eol_check_eof(P,n),s(P["$heredoc?"]())){if(L=a.$extend_string_eol_heredoc_line(),s(P.$nest_and_try_closing(L,a.herebody_s,a.ts))){a.herebody_s=a.te,e=d(P.$heredoc_e(),1),a.cs=a.$pop_literal(),e=$(e,1),q=!0,R=i;break}P.$infer_indent_level(L),a.herebody_s=a.te}else{if(s(P.$nest_and_try_closing(a.$tok(),a.ts,a.te))){a.cs=a.$pop_literal(),e=$(e,1),q=!0,R=i;break}e=a.$extend_string_eol_heredoc_intertwined(e)}a.$extend_string_eol_words(P,e)}else if(f(57,j)){if(a.te=$(e,1),H=a.$tok(),F=a.$extend_string_slice_end(F),P=a.$literal(),h(P["$heredoc?"]())&&s(U=P.$nest_and_try_closing(H,a.ts,a.te,F))){c(U["$[]"](0),"tLABEL_END")?(e=$(e,1),a.$pop_literal(),a.root_lexer_state=a.lexer.$class().$lex_en_expr_labelarg()):s(Y=a.$pop_literal())&&(a.cs=Y),e=$(e,1),q=!0,R=i;break}a.$extend_string_for_token_range(P,H)}else if(f(58,j))a.te=e,e=d(e,1),a.$extend_interp_digit_var();else if(f(59,j))a.te=e,e=d(e,1),P=a.$literal(),a.$extend_interp_var(P),a.$emit_interp_var(B);else if(f(60,j)){if(a.te=e,e=d(e,1),H=a.$tok(),F=a.$extend_string_slice_end(F),P=a.$literal(),h(P["$heredoc?"]())&&s(U=P.$nest_and_try_closing(H,a.ts,a.te,F))){c(U["$[]"](0),"tLABEL_END")?(e=$(e,1),a.$pop_literal(),a.root_lexer_state=a.lexer.$class().$lex_en_expr_labelarg()):s(Y=a.$pop_literal())&&(a.cs=Y),e=$(e,1),q=!0,R=i;break}a.$extend_string_for_token_range(P,H)}else if(f(61,j)){if(e=d(a.te,1),H=a.$tok(),F=a.$extend_string_slice_end(F),P=a.$literal(),h(P["$heredoc?"]())&&s(U=P.$nest_and_try_closing(H,a.ts,a.te,F))){c(U["$[]"](0),"tLABEL_END")?(e=$(e,1),a.$pop_literal(),a.root_lexer_state=a.lexer.$class().$lex_en_expr_labelarg()):s(Y=a.$pop_literal())&&(a.cs=Y),e=$(e,1),q=!0,R=i;break}a.$extend_string_for_token_range(P,H)}else if(f(62,j)){if(a.te=$(e,1),P=a.$literal(),a.$extend_string_eol_check_eof(P,n),s(P["$heredoc?"]())){if(L=a.$extend_string_eol_heredoc_line(),s(P.$nest_and_try_closing(L,a.herebody_s,a.ts))){a.herebody_s=a.te,e=d(P.$heredoc_e(),1),a.cs=a.$pop_literal(),e=$(e,1),q=!0,R=i;break}P.$infer_indent_level(L),a.herebody_s=a.te}else{if(s(P.$nest_and_try_closing(a.$tok(),a.ts,a.te))){a.cs=a.$pop_literal(),e=$(e,1),q=!0,R=i;break}e=a.$extend_string_eol_heredoc_intertwined(e)}a.$extend_string_eol_words(P,e)}else if(f(63,j)){if(a.te=$(e,1),H=a.$tok(),F=a.$extend_string_slice_end(F),P=a.$literal(),h(P["$heredoc?"]())&&s(U=P.$nest_and_try_closing(H,a.ts,a.te,F))){c(U["$[]"](0),"tLABEL_END")?(e=$(e,1),a.$pop_literal(),a.root_lexer_state=a.lexer.$class().$lex_en_expr_labelarg()):s(Y=a.$pop_literal())&&(a.cs=Y),e=$(e,1),q=!0,R=i;break}a.$extend_string_for_token_range(P,H)}else{if(f(64,j)){a.te=$(e,1),P=a.$literal(),a.$extend_interp_code(P),a.root_lexer_state=a.lexer.$class().$lex_en_expr_value(),e=$(e,1),q=!0,R=i;break}if(f(65,j)){if(a.te=$(e,1),P=a.$literal(),a.$extend_string_eol_check_eof(P,n),s(P["$heredoc?"]())){if(L=a.$extend_string_eol_heredoc_line(),s(P.$nest_and_try_closing(L,a.herebody_s,a.ts))){a.herebody_s=a.te,e=d(P.$heredoc_e(),1),a.cs=a.$pop_literal(),e=$(e,1),q=!0,R=i;break}P.$infer_indent_level(L),a.herebody_s=a.te}else{if(s(P.$nest_and_try_closing(a.$tok(),a.ts,a.te))){a.cs=a.$pop_literal(),e=$(e,1),q=!0,R=i;break}e=a.$extend_string_eol_heredoc_intertwined(e)}a.$extend_string_eol_words(P,e)}else if(f(66,j)){if(a.te=$(e,1),H=a.$tok(),F=a.$extend_string_slice_end(F),P=a.$literal(),h(P["$heredoc?"]())&&s(U=P.$nest_and_try_closing(H,a.ts,a.te,F))){c(U["$[]"](0),"tLABEL_END")?(e=$(e,1),a.$pop_literal(),a.root_lexer_state=a.lexer.$class().$lex_en_expr_labelarg()):s(Y=a.$pop_literal())&&(a.cs=Y),e=$(e,1),q=!0,R=i;break}a.$extend_string_for_token_range(P,H)}else if(f(67,j))a.te=e,e=d(e,1),a.$extend_interp_digit_var();else if(f(68,j))a.te=e,e=d(e,1),P=a.$literal(),a.$extend_interp_var(P),a.$emit_interp_var(B);else if(f(69,j))a.te=e,e=d(e,1),a.$literal().$extend_space(a.ts,a.te);else if(f(70,j)){if(a.te=e,e=d(e,1),H=a.$tok(),F=a.$extend_string_slice_end(F),P=a.$literal(),h(P["$heredoc?"]())&&s(U=P.$nest_and_try_closing(H,a.ts,a.te,F))){c(U["$[]"](0),"tLABEL_END")?(e=$(e,1),a.$pop_literal(),a.root_lexer_state=a.lexer.$class().$lex_en_expr_labelarg()):s(Y=a.$pop_literal())&&(a.cs=Y),e=$(e,1),q=!0,R=i;break}a.$extend_string_for_token_range(P,H)}else if(f(71,j)){if(e=d(a.te,1),H=a.$tok(),F=a.$extend_string_slice_end(F),P=a.$literal(),h(P["$heredoc?"]())&&s(U=P.$nest_and_try_closing(H,a.ts,a.te,F))){c(U["$[]"](0),"tLABEL_END")?(e=$(e,1),a.$pop_literal(),a.root_lexer_state=a.lexer.$class().$lex_en_expr_labelarg()):s(Y=a.$pop_literal())&&(a.cs=Y),e=$(e,1),q=!0,R=i;break}a.$extend_string_for_token_range(P,H)}else if(f(72,j)){if(a.te=$(e,1),P=a.$literal(),a.$extend_string_eol_check_eof(P,n),s(P["$heredoc?"]())){if(L=a.$extend_string_eol_heredoc_line(),s(P.$nest_and_try_closing(L,a.herebody_s,a.ts))){a.herebody_s=a.te,e=d(P.$heredoc_e(),1),a.cs=a.$pop_literal(),e=$(e,1),q=!0,R=i;break}P.$infer_indent_level(L),a.herebody_s=a.te}else{if(s(P.$nest_and_try_closing(a.$tok(),a.ts,a.te))){a.cs=a.$pop_literal(),e=$(e,1),q=!0,R=i;break}e=a.$extend_string_eol_heredoc_intertwined(e)}a.$extend_string_eol_words(P,e)}else if(f(73,j)){if(a.te=$(e,1),H=a.$tok(),F=a.$extend_string_slice_end(F),P=a.$literal(),h(P["$heredoc?"]())&&s(U=P.$nest_and_try_closing(H,a.ts,a.te,F))){c(U["$[]"](0),"tLABEL_END")?(e=$(e,1),a.$pop_literal(),a.root_lexer_state=a.lexer.$class().$lex_en_expr_labelarg()):s(Y=a.$pop_literal())&&(a.cs=Y),e=$(e,1),q=!0,R=i;break}a.$extend_string_for_token_range(P,H)}else if(f(74,j))a.te=e,e=d(e,1),a.$literal().$extend_space(a.ts,a.te);else{if(f(75,j)){a.te=$(e,1),a.$emit("tREGEXP_OPT",a.$tok(a.ts,d(a.te,1)),a.ts,d(a.te,1)),e=d(e,1),a.root_lexer_state=a.lexer.$class().$lex_en_expr_end(),e=$(e,1),q=!0,R=i;break}if(f(76,j)){a.te=e,e=d(e,1),V=a.$tok().$scan(/[^imxouesn]/),s(V["$any?"]())&&a.$diagnostic("error","regexp_options",new Map([["options",V.$join()]])),a.$emit("tREGEXP_OPT"),a.root_lexer_state=a.lexer.$class().$lex_en_expr_end(),e=$(e,1),q=!0,R=i;break}if(f(77,j)){a.te=$(e,1),K=M("ESCAPE_WHITESPACE")["$[]"](a.$source_buffer().$slice($(a.ts,1),1)),a.$diagnostic("warning","invalid_escape_use",new Map([["escape",K]]),a.$range()),e=d(a.ts,1),a.root_lexer_state=a.lexer.$class().$lex_en_expr_end(),e=$(e,1),q=!0,R=i;break}if(f(78,j)){a.te=e,e=d(e,1),a.$emit_character_constant(),a.root_lexer_state=a.lexer.$class().$lex_en_expr_end(),e=$(e,1),q=!0,R=i;break}if(f(79,j)){a.te=e,e=d(e,1),e=d(a.ts,1),a.root_lexer_state=a.lexer.$class().$lex_en_expr_end(),e=$(e,1),q=!0,R=i;break}if(f(80,j)){e=d(a.te,1),a.$emit_character_constant(),a.root_lexer_state=a.lexer.$class().$lex_en_expr_end(),e=$(e,1),q=!0,R=i;break}f(81,j)&&(a.te=$(e,1),a.$raise("bug"))}}}}}if(s(q))continue}if(s(l(R,20))){for(I=x["$[]"](a.cs),T=O["$[]"](I),I=$(I,1);s(_(T,0));)if(T=d(T,1),I=$(I,1),23===O["$[]"](d(I,1)).valueOf())a.ts=k;if(s(q))continue;if(c(a.cs,0)){R=i;continue}if(e=$(e,1),p(e,n)){R=10;continue}}if(s(l(R,30))&&c(e,r)&&s(_(S["$[]"](a.cs),0)))N=d(S["$[]"](a.cs),1),R=15;else if(s(l(R,i)))break}return s(!1),[e,a.root_lexer_state]})),o(S,"$read_character_constant",(function(e){var t=this;return t.cs=t.$class().$lex_en_character(),t.$advance(e)})),o(S,"$push_literal",(function(e){var t,n,r=this;return t=m(arguments),n=i(G(G(M("Parser"),"Lexer"),"Literal"),"new",[r].concat(a(t))),r.literal_stack.$push(n),r.cs=r.$next_state_for_literal(n)}),-1),o(S,"$next_state_for_literal",(function(e){var t=this;return s(e["$words?"]())&&s(e["$backslash_delimited?"]())?s(e["$interpolate?"]())?t.$class().$lex_en_interp_backslash_delimited_words():t.$class().$lex_en_plain_backslash_delimited_words():s(e["$words?"]())&&h(e["$backslash_delimited?"]())?s(e["$interpolate?"]())?t.$class().$lex_en_interp_words():t.$class().$lex_en_plain_words():h(e["$words?"]())&&s(e["$backslash_delimited?"]())?s(e["$interpolate?"]())?t.$class().$lex_en_interp_backslash_delimited():t.$class().$lex_en_plain_backslash_delimited():s(e["$interpolate?"]())?t.$class().$lex_en_interp_string():t.$class().$lex_en_plain_string()})),o(S,"$continue_lexing",(function(e){return this.cs=this.$next_state_for_literal(e)})),o(S,"$literal",(function(){return this.literal_stack.$last()})),o(S,"$pop_literal",(function(){var e=this,t=k;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(),k)})),o(S,"$close_interp_on_current_literal",(function(e){var t=this,n=k;return n=t.$literal(),s(n)&&s(n.$end_interp_brace_and_try_closing())?(s(t["$version?"](18,19))?(t.$emit("tRCURLY","}".$freeze(),d(e,1),e),t.lexer.$cond().$lexpop(),t.lexer.$cmdarg().$lexpop()):t.$emit("tSTRING_DEND","}".$freeze(),d(e,1),e),s(n.$saved_herebody_s())&&(t.herebody_s=n.$saved_herebody_s()),t.$continue_lexing(n),!0):k})),o(S,"$dedent_level",(function(){var e,t;return t=(e=[this.dedent_level,k])[0],this.dedent_level=e[1],t})),o(S,"$on_newline",(function(e){var t=this;return s(t.herebody_s)&&(e=t.herebody_s,t.herebody_s=k),e})),S.$protected(),o(S,"$eof_codepoint?",(function(e){return[4,26,0]["$include?"](e)})),o(S,"$version?",(function(e){return m(arguments)["$include?"](this.version)}),-1),o(S,"$tok",(function(e,t){var n=this;return null==e&&(e=n.ts),null==t&&(t=n.te),n.source_buffer.$slice(e,d(t,e))}),-1),o(S,"$range",(function(e,t){var n=this;return null==e&&(e=n.ts),null==t&&(t=n.te),G(G(M("Parser"),"Source"),"Range").$new(n.source_buffer,e,t)}),-1),o(S,"$emit",(function(e,t,n,r){var i=this;return null==t&&(t=i.$tok()),null==n&&(n=i.ts),null==r&&(r=i.te),i.lexer.$send("emit",e,t,n,r)}),-2),o(S,"$diagnostic",(function(e,t,n,r,i){return null==n&&(n=k),null==r&&(r=this.$range()),null==i&&(i=[]),this.lexer.$send("diagnostic",e,t,n,r,i)}),-3),o(S,"$cond",(function(){return this.lexer.$cond()})),o(S,"$emit_invalid_escapes?",(function(){var e=this;return!!s(g(e.version,32))||(!!s(e.$literal()["$nil?"]())||e.$literal()["$regexp?"]()["$!"]())})),o(S,"$extend_string_escaped",(function(){var e,t=this,n=k,r=k;return n=t.$literal(),e=t.$source_buffer().$slice(t.escape_s,1).$chr(),s(n["$munge_escape?"](e))?s(n["$regexp?"]())&&s(M("REGEXP_META_CHARACTERS").$match(e))?n.$extend_string(t.$tok(),t.ts,t.te):n.$extend_string(e,t.ts,t.te):s(n["$squiggly_heredoc?"]())&&c(e,"\n".$freeze())?n.$extend_string(t.$tok(),t.ts,t.te):s(n["$supports_line_continuation_via_slash?"]())&&c(e,"\n".$freeze())?n.$extend_string(t.$tok().$gsub("\\\n".$freeze(),"".$freeze()),t.ts,t.te):s(n["$regexp?"]())&&s(v(t.version,31))&&s(["c","C","m","M"]["$include?"](e))?n.$extend_string(t.escape,t.ts,t.te):s(n["$regexp?"]())?n.$extend_string(t.$tok().$gsub("\\\n".$freeze(),"".$freeze()),t.ts,t.te):n.$extend_string(s(r=t.escape)?r:t.$tok(),t.ts,t.te)})),o(S,"$extend_interp_code",(function(e){var t,n=this;return e.$flush_string(),e.$extend_content(),n.$emit("tSTRING_DBEG","#{".$freeze()),s(e["$heredoc?"]())&&(e["$saved_herebody_s="](n.herebody_s),n.herebody_s=k),e.$start_interp_brace(),t=[!0],i(n.lexer,"command_start=",t),t[t.length-1]})),o(S,"$extend_interp_digit_var",(function(){var e=this,t=k;return s(v(e.version,27))?e.$literal().$extend_string(e.$tok(),e.ts,e.te):(t=s(e.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",e.$diagnostic("error",t,new Map([["name",e.$tok($(e.ts,1),e.te)]]),e.$range($(e.ts,1),e.te)))})),o(S,"$extend_string_eol_check_eof",(function(e,t){var n=this;return c(n.te,t)?n.$diagnostic("fatal","string_eof",k,n.$range(e.$str_s(),$(e.$str_s(),1))):k})),o(S,"$extend_string_eol_heredoc_line",(function(){var e=this,t=k;return t=e.$tok(e.herebody_s,e.ts).$gsub(/\r+$/,"".$freeze()),s(e["$version?"](18,19,20))&&(t=t.$gsub(/\r.*$/,"".$freeze())),t})),o(S,"$extend_string_eol_heredoc_intertwined",(function(e){var t=this;return s(t.herebody_s)&&(e=d(t.herebody_s,1),t.herebody_s=k),e})),o(S,"$extend_string_eol_words",(function(e,t){var n=this;return s(e["$words?"]())&&h(n["$eof_codepoint?"](n.$source_pts()["$[]"](t)))?e.$extend_space(n.ts,n.te):(e.$extend_string(n.$tok(),n.ts,n.te),e.$flush_string())})),o(S,"$extend_string_slice_end",(function(e){var t=this;return s(v(t.version,22))&&h(t.$cond()["$active?"]())&&(e=t.$source_buffer().$slice(t.te,2)),e})),o(S,"$extend_string_for_token_range",(function(e,t){return e.$extend_string(t,this.ts,this.te)})),o(S,"$encode_escape",(function(e){return e.$chr().$force_encoding(this.$source_buffer().$source().$encoding())})),o(S,"$unescape_char",(function(e){var t,n=this;return t=n.$source_pts()["$[]"](d(e,1)),s(v(n.version,30))&&(c(t,117)||c(t,85))&&n.$diagnostic("fatal","invalid_escape"),s((n.escape=M("ESCAPES")["$[]"](t))["$nil?"]())?n.escape=n.$encode_escape(n.$source_buffer().$slice(d(e,1),1)):k})),o(S,"$unicode_points",(function(e){var t=this,n=k,r=k,a=k;return t.escape="",n=t.$tok($(t.escape_s,2),d(e,1)),r=$(t.escape_s,2),s(g(t.version,24))&&((s(n["$start_with?"](" "))||s(n["$start_with?"]("\t")))&&t.$diagnostic("fatal","invalid_unicode_escape",k,t.$range($(t.escape_s,2),$(t.escape_s,3))),s(a=n.$index(/[ \t]{2}/))&&t.$diagnostic("fatal","invalid_unicode_escape",k,t.$range($($(r,a),1),$($(r,a),2))),(s(n["$end_with?"](" "))||s(n["$end_with?"]("\t")))&&t.$diagnostic("fatal","invalid_unicode_escape",k,t.$range(d(e,1),e))),function(){try{var e=b("break");return i(n.$scan(/([0-9a-fA-F]+)|([ \t]+)/),"each",[],(function t(n){var i,a=null==t.$$s?this:t.$$s,o=k,l=k,_=k;return null==a.escape&&(a.escape=k),null==n&&(n=k),o=null==(i=u(n))[0]?k:i[0],l=null==i[1]?k:i[1],s(l)?r=$(r,l.$length()):(_=o.$to_i(16),s(v(_,1114112))&&(a.$diagnostic("error","unicode_point_too_large",k,a.$range(r,$(r,o.$length()))),e.$throw(k,t.$$is_lambda)),c(_["$&"](4294965248),55296)&&(a.$diagnostic("error","invalid_unicode_escape",k,a.$range(r,$(r,o.$length()))),e.$throw(k,t.$$is_lambda)),a.escape=$(a.escape,_.$chr(G(M("Encoding"),"UTF_8"))),r=$(r,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(S,"$read_post_meta_or_ctrl_char",(function(e){var t=this;return t.escape=t.$source_buffer().$slice(d(e,1),1).$chr(),s(v(t.version,27))&&(s(y(0,8,!1)["$include?"](t.escape.$ord()))||s(y(14,31,!1)["$include?"](t.escape.$ord())))?t.$diagnostic("fatal","invalid_escape"):k})),o(S,"$extend_interp_var",(function(e){var t=this;return e.$flush_string(),e.$extend_content(),t.$emit("tSTRING_DVAR",k,t.ts,$(t.ts,1)),t.ts})),o(S,"$emit_interp_var",(function(e){var t=this;switch(e.valueOf()){case"cvar":return t.lexer.$send("emit_class_var",$(t.ts,1),t.te);case"ivar":return t.lexer.$send("emit_instance_var",$(t.ts,1),t.te);case"gvar":return t.lexer.$send("emit_global_var",$(t.ts,1),t.te);default:return k}})),o(S,"$encode_escaped_char",(function(e){var t=this;return t.escape=t.$encode_escape(t.$tok(d(e,2),e).$to_i(16))})),o(S,"$slash_c_char",(function(){var e=this;return e.escape=e.$encode_escape(e.escape["$[]"](0).$ord()["$&"](159))})),o(S,"$slash_m_char",(function(){var e=this;return e.escape=e.$encode_escape(e.escape["$[]"](0).$ord()["$|"](128))})),o(S,"$emit_character_constant",(function(){var e,t=this,n=k;return n=s(e=t.escape)?e:t.$tok($(t.ts,1)),s(t["$version?"](18))?t.$emit("tINTEGER",n.$getbyte(0)):t.$emit("tCHARACTER",n)})),o(S,"$check_ambiguous_slash",(function(e){var t=this;return c(t.$tok(e,$(e,1)),"/".$freeze())?s(g(t.version,30))?t.$diagnostic("warning","ambiguous_literal",k,t.$range(e,$(e,1))):t.$diagnostic("warning","ambiguous_regexp",k,t.$range(e,$(e,1))):k})),o(S,"$check_invalid_escapes",(function(e){var t=this;return s(t["$emit_invalid_escapes?"]())?t.$diagnostic("fatal","invalid_unicode_escape",k,t.$range(d(t.escape_s,1),e)):k})),n(O[0],"ESCAPE_WHITESPACE",new Map([[" ","\\s"],["\r","\\r"],["\n","\\n"],["\t","\\t"],["\v","\\v"],["\f","\\f"]]))}(x("Parser"),0,w)},Opal.modules["parser/lexer/literal"]=function(e){var t=e.module,n=e.klass,r=e.const_set,i=e.enc,a=e.truthy,s=e.rb_plus,o=e.to_ary,$=e.def,u=e.return_ivar,l=e.eqeq,c=e.rb_minus,_=e.neqeq,d=e.not,p=e.send,f=e.eqeqeq,h=e.rb_gt,m=e.thrower,g=e.assign_ivar_val,v=e.regexp,b=[],y=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(b,w){var x=[t(b,"Parser")].concat(w);return function(t,b,w){var x=n(t,null,"Literal"),k=[x].concat(w),G=e.$r(k),E=x.$$prototype;return E.lexer=E.start_tok=E.str_type=E.monolithic=E.heredoc_e=E.dedent_body=E.end_delim=E.start_delim=E.nesting=E.label_allowed=E.buffer=E.str_s=E.interp_braces=E.buffer_s=E.buffer_e=E.space_emitted=E.interpolate=E.indent=y,r(k[0],"DELIMITERS",new Map([["(",i(")","ASCII-8BIT")],["[",i("]","ASCII-8BIT")],["{",i("}","ASCII-8BIT")],["<",i(">","ASCII-8BIT")]])),r(k[0],"SPACE",i(" ","ASCII-8BIT").$ord()),r(k[0],"TAB",i("\t","ASCII-8BIT").$ord()),r(k[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]]])),x.$attr_reader("heredoc_e","str_s","dedent_level"),x.$attr_accessor("saved_herebody_s"),$(x,"$initialize",(function(e,t,n,r,$,u,l,c){var _,d,p,f,h=this;return null==$&&($=y),null==u&&(u=!1),null==l&&(l=!1),null==c&&(c=!1),h.lexer=e,h.nesting=1,t=h.$coerce_encoding(t),n=h.$coerce_encoding(n),a(G("TYPES")["$include?"](t))||e.$send("diagnostic","error","unexpected_percent_str",new Map([["type",t]]),h.lexer.$send("range",r,s(r,2))),h.str_type=t,h.str_s=r,d=G("TYPES")["$[]"](t),_=o(d),h.start_tok=null==_[0]?y:_[0],h.interpolate=null==_[1]?y:_[1],h.start_delim=a(G("DELIMITERS")["$include?"](n))?n:y,h.end_delim=G("DELIMITERS").$fetch(n,n),h.heredoc_e=$,h.indent=u,h.label_allowed=c,h.dedent_body=l,h.dedent_level=y,h.interp_braces=0,h.space_emitted=!0,h.monolithic=a(p=a(f=h.start_tok["$=="]("tSTRING_BEG"))?[i("'","ASCII-8BIT"),i('"',"ASCII-8BIT")]["$include?"](t):f)?h["$heredoc?"]()["$!"]():p,a(h.str_type["$start_with?"](i("%","ASCII-8BIT").$freeze()))&&(h.str_type=s(h.str_type,n)),h.$clear_buffer(),a(h.monolithic)?y:h.$emit_start_tok()}),-5),$(x,"$interpolate?",u("interpolate")),$(x,"$words?",(function(){var e,t,n,r=this;return a(e=a(t=a(n=r.$type()["$=="]("tWORDS_BEG"))?n:r.$type()["$=="]("tQWORDS_BEG"))?t:r.$type()["$=="]("tSYMBOLS_BEG"))?e:r.$type()["$=="]("tQSYMBOLS_BEG")})),$(x,"$regexp?",(function(){return this.$type()["$=="]("tREGEXP_BEG")})),$(x,"$heredoc?",(function(){return this.heredoc_e["$!"]()["$!"]()})),$(x,"$plain_heredoc?",(function(){var e;return a(e=this["$heredoc?"]())?this.dedent_body["$!"]():e})),$(x,"$squiggly_heredoc?",(function(){var e;return a(e=this["$heredoc?"]())?this.dedent_body:e})),$(x,"$backslash_delimited?",(function(){return this.end_delim["$=="](i("\\","ASCII-8BIT").$freeze())})),$(x,"$type",u("start_tok")),$(x,"$munge_escape?",(function(e){var t=this;return e=t.$coerce_encoding(e),!(!a(t["$words?"]())||!a(e["$=~"](/[ \t\v\r\f\n]/)))||[i("\\","ASCII-8BIT").$freeze(),t.start_delim,t.end_delim]["$include?"](e)})),$(x,"$nest_and_try_closing",(function(e,t,n,r){var o=this;return null==r&&(r=y),e=o.$coerce_encoding(e),a(o.start_delim)&&l(o.start_delim,e)?o.nesting=s(o.nesting,1):a(o["$delimiter?"](e))&&(o.nesting=c(o.nesting,1)),l(o.nesting,0)?(a(o["$words?"]())&&o.$extend_space(t,t),a(r)&&a(o.label_allowed)&&l(r["$[]"](0),i(":","ASCII-8BIT"))&&_(r["$[]"](1),i(":","ASCII-8BIT"))&&l(o.start_tok,"tSTRING_BEG")?(o.$flush_string(),o.$emit("tLABEL_END",o.end_delim,t,s(n,1))):a(o.monolithic)?o.$emit("tSTRING",o.buffer,o.str_s,n):(a(o["$heredoc?"]())||o.$flush_string(),o.$emit("tSTRING_END",o.end_delim,t,n))):y}),-4),$(x,"$infer_indent_level",(function(e){var t=this,n=y;return d(t.dedent_body)?y:(n=0,function(){try{var r=m("break");return p(e,"each_char",[],(function e(t){var i,o=null==e.$$s?this:e.$$s;return null==o.dedent_level&&(o.dedent_level=y),null==t&&(t=y),f(" ",i=t)?n=s(n,1):f("\t",i)?n=s(n,c(8,n["$%"](8))):((a(o.dedent_level["$nil?"]())||a(h(o.dedent_level,n)))&&(o.dedent_level=n),void r.$throw(y,e.$$is_lambda))}),{$$s:t})}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}}())})),$(x,"$start_interp_brace",(function(){return this.interp_braces=s(this.interp_braces,1)})),$(x,"$end_interp_brace_and_try_closing",(function(){var e=this;return e.interp_braces=c(e.interp_braces,1),e.interp_braces["$=="](0)})),$(x,"$extend_string",(function(e,t,n){var r,i=this;return i.buffer_s=a(r=i.buffer_s)?r:t,i.buffer_e=n,i.buffer["$<<"](e)})),$(x,"$flush_string",(function(){var e=this;return a(e.monolithic)&&(e.$emit_start_tok(),e.monolithic=!1),a(e.buffer["$empty?"]())?y:(e.$emit("tSTRING_CONTENT",e.buffer,e.buffer_s,e.buffer_e),e.$clear_buffer(),e.$extend_content())})),$(x,"$extend_content",g("space_emitted",!1)),$(x,"$extend_space",(function(e,t){var n=this;return n.$flush_string(),a(n.space_emitted)?y:(n.$emit("tSPACE",y,e,t),n.space_emitted=!0)})),$(x,"$supports_line_continuation_via_slash?",(function(){var e;return a(e=this["$words?"]()["$!"]())?this.interpolate:e})),x.$protected(),$(x,"$delimiter?",(function(e){var t=this,n=y;return a(t["$heredoc?"]())?a(n=e["$end_with?"](t.end_delim))?p(e.$sub(v([G("Regexp").$escape(t.end_delim),i("\\z","ASCII-8BIT")]),i("","ASCII-8BIT")).$bytes(),"all?",[],(function(e){var t;return null==e&&(e=y),a(t=e["$=="](G("SPACE")))?t:e["$=="](G("TAB"))})):n:a(t.indent)?t.end_delim["$=="](e.$lstrip()):t.end_delim["$=="](e)})),$(x,"$coerce_encoding",(function(e){return e.$b()})),$(x,"$clear_buffer",(function(){var e=this;return e.buffer=i("","ASCII-8BIT").$dup(),e.buffer.$force_encoding(e.lexer.$source_buffer().$source().$encoding()),e.buffer_s=y,e.buffer_e=y})),$(x,"$emit_start_tok",(function(){var e,t,n=this;return e=a(t=n.heredoc_e)?t:s(n.str_s,n.str_type.$length()),n.$emit(n.start_tok,n.str_type,n.str_s,e)})),$(x,"$emit",(function(e,t,n,r){return this.lexer.$send("emit",e,t,n,r)}))}(e.$r(x)("Lexer"),0,x)}(b[0],b)},Opal.modules["parser/lexer/stack_state"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.assign_ivar_val,a=e.truthy,s=e.alias,o=[],$=e.nil;return e.add_stubs("freeze,clear,|,<<,&,>>,==,[],to_s"),function(o,u){var l=[t(o,"Parser")].concat(u);return function(e,t){var o=n(e,null,"StackState"),u=o.$$prototype;return u.stack=u.name=$,r(o,"$initialize",(function(e){return this.name=e.$freeze(),this.$clear()})),r(o,"$clear",i("stack",0)),r(o,"$push",(function(e){var t;return t=a(e)?1:0,this.stack=this.stack["$<<"](1)["$|"](t),e})),r(o,"$pop",(function(){var e=this,t=$;return t=e.stack["$&"](1),e.stack=e.stack["$>>"](1),t["$=="](1)})),r(o,"$lexpop",(function(){var e=this;return e.stack=e.stack["$>>"](1)["$|"](e.stack["$&"](1)),e.stack["$[]"](0)["$=="](1)})),r(o,"$active?",(function(){return this.stack["$[]"](0)["$=="](1)})),r(o,"$empty?",(function(){return this.stack["$=="](0)})),r(o,"$to_s",(function(){return"["+this.stack.$to_s(2)+" <= "+this.name+"]"})),s(o,"inspect","to_s")}(e.$r(l)("Lexer"))}(o[0],o)},Opal.modules["parser/lexer/dedenter"]=function(e){var t=e.module,n=e.klass,r=e.const_set,i=e.def,a=e.eqeq,s=e.send,o=e.truthy,$=e.to_ary,u=e.slice,l=e.rb_le,c=e.eqeqeq,_=e.rb_plus,d=e.rb_minus,p=e.rb_gt,f=e.rb_times,h=e.rb_divide,m=e.thrower,g=e.assign_ivar_val,v=[],b=e.nil,y=e.$$$;return e.add_stubs("encoding,split,force_encoding,==,length,map!,each,each_char,<=,===,+,-,>,*,/,slice!,replace,join,end_with?"),function(v,w){var x=[t(v,"Parser")].concat(w);return function(t,v,w){var x=n(t,null,"Dedenter"),k=[x].concat(w),G=e.$r(k);return x.$$prototype.at_line_begin=b,r(k[0],"TAB_WIDTH",8),i(x,"$initialize",(function(e){var t=this;return t.dedent_level=e,t.at_line_begin=!0,t.indent_level=0})),i(x,"$dedent",(function(e){var t,n,r=this,i=b,g=b;return n=e.$encoding(),i=e.$force_encoding(y(G("Encoding"),"BINARY")).$split("\\\n"),a(i.$length(),1)?i=[e.$force_encoding(n)]:s(i,"map!",[],(function(e){return null==e&&(e=b),e.$force_encoding(n)})),o(r.at_line_begin)?g=i:(null==(t=$(i))[0]?b:t[0],g=u(t,1)),s(g,"each",[],(function e(t){var n=null==e.$$s?this:e.$$s,r=b,i=b;return null==n.dedent_level&&(n.dedent_level=b),null==t&&(t=b),r=n.dedent_level,i=0,function(){try{var e=m("break");return s(t,"each_char",[],(function t(n){var a,s=null==t.$$s?this:t.$$s;return null==s.dedent_level&&(s.dedent_level=b),null==n&&(n=b),o(l(r,0))&&e.$throw(b,t.$$is_lambda),c(" ",a=n)?(i=_(i,1),r=d(r,1)):c("\t",a)?(o(p(f(G("TAB_WIDTH"),_(h(i,G("TAB_WIDTH")),1)),s.dedent_level))&&e.$throw(b,t.$$is_lambda),i=_(i,1),r=d(r,G("TAB_WIDTH"))):void e.$throw(b,t.$$is_lambda)}),{$$s:n})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),t["$slice!"](0,i)}),{$$s:r}),e.$replace(i.$join()),r.at_line_begin=e["$end_with?"]("\n")})),i(x,"$interrupt",g("at_line_begin",!1))}(e.$r(x)("Lexer"),0,x)}(v[0],v)},Opal.modules["parser/builders/default"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.assign_ivar_val,a=e.to_a,s=e.truthy,o=e.eqeq,$=e.not,u=e.send,l=e.neqeq,c=e.to_ary,_=e.rb_ge,d=e.rb_gt,p=e.range,f=e.rb_minus,h=e.slice,m=e.rb_plus,g=e.rb_le,v=e.eqeqeq,b=e.rb_lt,y=e.thrower,w=e.gvars,x=[],k=e.nil,G=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(x,E){var S=[t(x,"Parser")].concat(E);return function(t,x,E){var S=n(t,null,"Default"),O=[S].concat(E),M=e.$r(O),A=S.$$prototype;return A.parser=A.emit_file_line_as_literals=k,function(e,t){e.$attr_accessor("emit_lambda")}(e.get_singleton_class(S)),S.emit_lambda=!1,function(e,t){e.$attr_accessor("emit_procarg0")}(e.get_singleton_class(S)),S.emit_procarg0=!1,function(e,t){e.$attr_accessor("emit_encoding")}(e.get_singleton_class(S)),S.emit_encoding=!1,function(e,t){e.$attr_accessor("emit_index")}(e.get_singleton_class(S)),S.emit_index=!1,function(e,t){e.$attr_accessor("emit_arg_inside_procarg0")}(e.get_singleton_class(S)),S.emit_arg_inside_procarg0=!1,function(e,t){e.$attr_accessor("emit_forward_arg")}(e.get_singleton_class(S)),S.emit_forward_arg=!1,function(e,t){e.$attr_accessor("emit_kwargs")}(e.get_singleton_class(S)),S.emit_kwargs=!1,function(e,t){e.$attr_accessor("emit_match_pattern")}(e.get_singleton_class(S)),S.emit_match_pattern=!1,function(e,t){r(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(S)),S.$attr_accessor("parser"),S.$attr_accessor("emit_file_line_as_literals"),r(S,"$initialize",i("emit_file_line_as_literals",!0)),r(S,"$nil",(function(e){return this.$n0("nil",this.$token_map(e))})),r(S,"$true",(function(e){return this.$n0("true",this.$token_map(e))})),r(S,"$false",(function(e){return this.$n0("false",this.$token_map(e))})),r(S,"$integer",(function(e){return this.$numeric("int",e)})),r(S,"$float",(function(e){return this.$numeric("float",e)})),r(S,"$rational",(function(e){return this.$numeric("rational",e)})),r(S,"$complex",(function(e){return this.$numeric("complex",e)})),r(S,"$numeric",(function(e,t){var n=this;return n.$n(e,[n.$value(t)],G(G(M("Source"),"Map"),"Operator").$new(k,n.$loc(t)))})),S.$private("numeric"),r(S,"$unary_num",(function(e,t){var n,r=k,i=k;switch(r=null==(n=[].concat(a(t)))[0]?k:n[0],i=this.$loc(e),this.$value(e).valueOf()){case"+":r=r["$+@"]();break;case"-":r=r["$-@"]()}return t.$updated(k,[r],new Map([["location",G(G(M("Source"),"Map"),"Operator").$new(i,i.$join(t.$loc().$expression()))]]))})),r(S,"$__LINE__",(function(e){return this.$n0("__LINE__",this.$token_map(e))})),r(S,"$string",(function(e){var t=this;return t.$n("str",[t.$string_value(e)],t.$delimited_string_map(e))})),r(S,"$string_internal",(function(e){var t=this;return t.$n("str",[t.$string_value(e)],t.$unquoted_map(e))})),r(S,"$string_compose",(function(e,t,n){var r=this;return s(r["$collapse_string_parts?"](t))?s(e["$nil?"]())&&s(n["$nil?"]())?t.$first():r.$n("str",t.$first().$children(),r.$string_map(e,t,n)):r.$n("dstr",[].concat(a(t)),r.$string_map(e,t,n))})),r(S,"$character",(function(e){var t=this;return t.$n("str",[t.$string_value(e)],t.$prefix_string_map(e))})),r(S,"$__FILE__",(function(e){return this.$n0("__FILE__",this.$token_map(e))})),r(S,"$symbol",(function(e){var t=this;return t.$n("sym",[t.$string_value(e).$to_sym()],t.$prefix_string_map(e))})),r(S,"$symbol_internal",(function(e){var t=this;return t.$n("sym",[t.$string_value(e).$to_sym()],t.$unquoted_map(e))})),r(S,"$symbol_compose",(function(e,t,n){var r=this,i=k;return s(r["$collapse_string_parts?"](t))?(i=t.$first(),r.$n("sym",[i.$children().$first().$to_sym()],r.$collection_map(e,i.$loc().$expression(),n))):o(r.parser.$version(),18)&&s(t["$empty?"]())?r.$diagnostic("error","empty_symbol",k,r.$loc(e).$join(r.$loc(n))):r.$n("dsym",[].concat(a(t)),r.$collection_map(e,t,n))})),r(S,"$xstring_compose",(function(e,t,n){return this.$n("xstr",[].concat(a(t)),this.$string_map(e,t,n))})),r(S,"$dedent_string",(function(e,t){var n=k,r=k,i=k;if($(t["$nil?"]()))switch(n=G(M("Lexer"),"Dedenter").$new(t),e.$type().valueOf()){case"str":r=e.$children().$first(),n.$dedent(r);break;case"dstr":case"xstr":i=u(e.$children(),"map",[],(function(e){if(null==e&&(e=k),o(e.$type(),"str")){if(r=e.$children().$first(),n.$dedent(r),s(r["$empty?"]()))return k}else n.$interrupt();return e})),e=e.$updated(k,i.$compact())}return e})),r(S,"$regexp_options",(function(e){var t,n=this;return t=u(n.$value(e).$each_char().$sort().$uniq(),"map",[],"to_sym".$to_proc()),n.$n("regopt",t,n.$token_map(e))})),r(S,"$regexp_compose",(function(t,n,r,i){var a=this,s=k;try{a.$static_regexp(n,i)}catch(n){if(!e.rescue(n,[M("RegexpError"),G(M("Encoding"),"UndefinedConversionError")]))throw n;s=n;try{a.$diagnostic("error","invalid_regexp",new Map([["message",s.$message()]]),a.$loc(t).$join(a.$loc(r)))}finally{e.pop_exception(n)}}return a.$n("regexp",n["$<<"](i),a.$regexp_map(t,r,i))})),r(S,"$array",(function(e,t,n){return this.$n("array",t,this.$collection_map(e,t,n))})),r(S,"$splat",(function(e,t){var n=this;return null==t&&(t=k),s(t["$nil?"]())?n.$n0("splat",n.$unary_op_map(e)):n.$n("splat",[t],n.$unary_op_map(e,t))}),-2),r(S,"$word",(function(e){var t=this;return s(t["$collapse_string_parts?"](e))?e.$first():t.$n("dstr",[].concat(a(e)),t.$collection_map(k,e,k))})),r(S,"$words_compose",(function(e,t,n){return this.$n("array",[].concat(a(t)),this.$collection_map(e,t,n))})),r(S,"$symbols_compose",(function(e,t,n){return t=u(t,"map",[],(function(e){var t,n=k;switch(null==e&&(e=k),e.$type().valueOf()){case"str":return n=null==(t=[].concat(a(e)))[0]?k:t[0],e.$updated("sym",[n.$to_sym()]);case"dstr":return e.$updated("dsym");default:return e}})),this.$n("array",[].concat(a(t)),this.$collection_map(e,t,n))})),r(S,"$pair",(function(e,t,n){return this.$n("pair",[e,n],this.$binary_op_map(e,t,n))})),r(S,"$pair_list_18",(function(e){return l(e.$size()["$%"](2),0)?this.$diagnostic("error","odd_hash",k,e.$last().$loc().$expression()):u(e.$each_slice(2),"map",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==t&&(t=k),null==n&&(n=k),r.$n("pair",[t,n],r.$binary_op_map(t,k,n))}),{$$s:this})})),r(S,"$pair_keyword",(function(e,t){var n,r,i,a,s,o=this;return r=o.$pair_keyword_map(e,t),i=null==(n=c(r))[0]?k:n[0],a=null==n[1]?k:n[1],s=o.$n("sym",[o.$value(e).$to_sym()],i),o.$n("pair",[s,t],a)})),r(S,"$pair_quoted",(function(e,t,n,r){var i,a,s,o,$=this;return a=$.$pair_quoted_map(e,n,r),n=null==(i=c(a))[0]?k:i[0],s=null==i[1]?k:i[1],o=$.$symbol_compose(e,t,n),$.$n("pair",[o,r],s)})),r(S,"$pair_label",(function(e){var t,n,r=this,i=k;return t=r.$loc(e).$adjust(new Map([["end_pos",-1]])),i=r.$value(e),n=s(i["$=~"](/^[[:upper:]]/))?r.$n("const",[k,i.$to_sym()],G(G(M("Source"),"Map"),"Constant").$new(k,t,t)):r.$n("ident",[i.$to_sym()],G(G(M("Source"),"Map"),"Variable").$new(t)),r.$pair_keyword(e,r.$accessible(n))})),r(S,"$kwsplat",(function(e,t){return this.$n("kwsplat",[t],this.$unary_op_map(e,t))})),r(S,"$associate",(function(e,t,n){var r=this,i=k;return i=M("Set").$new(),u(t,"each",[],(function e(t){var n,r=null==e.$$s?this:e.$$s,o=k;if(null==r.parser&&(r.parser=k),null==t&&(t=k),!s(t.$type()["$eql?"]("pair")))return k;switch((o=null==(n=[].concat(a(t)))[0]?k:n[0]).$type().valueOf()){case"sym":case"str":case"int":case"float":break;case"rational":case"complex":case"regexp":if(!s(_(r.parser.$version(),31)))return k;break;default:return k}return s(i["$add?"](o))?k:r.$diagnostic("warning","duplicate_hash_key",k,o.$loc().$expression())}),{$$s:r}),r.$n("hash",[].concat(a(t)),r.$collection_map(e,t,n))})),r(S,"$range_inclusive",(function(e,t,n){return this.$n("irange",[e,n],this.$range_map(e,t,n))})),r(S,"$range_exclusive",(function(e,t,n){return this.$n("erange",[e,n],this.$range_map(e,t,n))})),r(S,"$self",(function(e){return this.$n0("self",this.$token_map(e))})),r(S,"$ident",(function(e){var t=this;return t.$n("ident",[t.$value(e).$to_sym()],t.$variable_map(e))})),r(S,"$ivar",(function(e){var t=this;return t.$n("ivar",[t.$value(e).$to_sym()],t.$variable_map(e))})),r(S,"$gvar",(function(e){var t=this,n=k;return n=t.$value(e),s(n["$start_with?"]("$0"))&&s(d(n.$length(),2))&&t.$diagnostic("error","gvar_name",new Map([["name",n]]),t.$loc(e)),t.$n("gvar",[n.$to_sym()],t.$variable_map(e))})),r(S,"$cvar",(function(e){var t=this;return t.$n("cvar",[t.$value(e).$to_sym()],t.$variable_map(e))})),r(S,"$back_ref",(function(e){var t=this;return t.$n("back_ref",[t.$value(e).$to_sym()],t.$token_map(e))})),r(S,"$nth_ref",(function(e){var t=this;return t.$n("nth_ref",[t.$value(e)],t.$token_map(e))})),r(S,"$accessible",(function(e){var t,n=this,r=k;switch(e.$type().valueOf()){case"__FILE__":return s(n.emit_file_line_as_literals)?n.$n("str",[e.$loc().$expression().$source_buffer().$name()],e.$loc().$dup()):e;case"__LINE__":return s(n.emit_file_line_as_literals)?n.$n("int",[e.$loc().$expression().$line()],e.$loc().$dup()):e;case"__ENCODING__":return $(n.$class().$emit_encoding())?n.$n("const",[n.$n("const",[k,"Encoding"],k),"UTF_8"],e.$loc().$dup()):e;case"ident":return t=[].concat(a(e)),r=null==t[0]?k:t[0],s(u(["?","!"],"any?",[],(function(e){return null==e&&(e=k),r.$to_s()["$end_with?"](e)})))&&n.$diagnostic("error","invalid_id_to_get",new Map([["identifier",r.$to_s()]]),e.$loc().$expression()),s(_(n.parser.$version(),27))&&s(n.parser.$try_declare_numparam(e))?e.$updated("lvar"):s(n.parser.$static_env()["$declared?"](r))?(o(r.$to_s(),n.$parser().$current_arg_stack().$top())&&n.$diagnostic("error","circular_argument_reference",new Map([["var_name",r.$to_s()]]),e.$loc().$expression()),e.$updated("lvar")):(o(n.parser.$version(),33)&&o(r,"it")&&s(n.parser.$context().$in_block())&&$(n.parser.$max_numparam_stack()["$has_ordinary_params?"]())&&n.$diagnostic("warning","ambiguous_it_call",k,e.$loc().$expression()),n.$n("send",[k,r],n.$var_send_map(e)));default:return e}})),r(S,"$const",(function(e){var t=this;return t.$n("const",[k,t.$value(e).$to_sym()],t.$constant_map(k,k,e))})),r(S,"$const_global",(function(e,t){var n,r=this;return n=r.$n0("cbase",r.$token_map(e)),r.$n("const",[n,r.$value(t).$to_sym()],r.$constant_map(n,e,t))})),r(S,"$const_fetch",(function(e,t,n){var r=this;return r.$n("const",[e,r.$value(n).$to_sym()],r.$constant_map(e,t,n))})),r(S,"$__ENCODING__",(function(e){return this.$n0("__ENCODING__",this.$token_map(e))})),r(S,"$assignable",(function(e){var t,n=this,r=k,i=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 s(n.parser.$context().$in_def())&&n.$diagnostic("error","dynamic_const",k,e.$loc().$expression()),e.$updated("casgn");case"ident":return r=null==(t=[].concat(a(e)))[0]?k:t[0],i=e.$children()["$[]"](0).$to_s(),o=e.$loc().$expression(),n.$check_assignment_to_numparam(i,o),n.$check_reserved_for_numparam(i,o),n.parser.$static_env().$declare(r),e.$updated("lvasgn");case"match_var":return r=null==(t=[].concat(a(e)))[0]?k:t[0],i=e.$children()["$[]"](0).$to_s(),o=e.$loc().$expression(),n.$check_assignment_to_numparam(i,o),n.$check_reserved_for_numparam(i,o),e;case"nil":case"self":case"true":case"false":case"__FILE__":case"__LINE__":case"__ENCODING__":return n.$diagnostic("error","invalid_assignment",k,e.$loc().$expression());case"back_ref":case"nth_ref":return n.$diagnostic("error","backref_assignment",k,e.$loc().$expression());default:return k}})),r(S,"$const_op_assignable",(function(e){return e.$updated("casgn")})),r(S,"$assign",(function(e,t,n){return e["$<<"](n).$updated(k,k,new Map([["location",e.$loc().$with_operator(this.$loc(t)).$with_expression(this.$join_exprs(e,n))]]))})),r(S,"$op_assign",(function(e,t,n){var r=this,i=k,a=k;switch(e.$type().valueOf()){case"gvasgn":case"ivasgn":case"lvasgn":case"cvasgn":case"casgn":case"send":case"csend":case"index":switch(i=r.$value(t)["$[]"](p(0,-1,!1)).$to_sym(),a=e.$loc().$with_operator(r.$loc(t)).$with_expression(r.$join_exprs(e,n)),o(e.$type(),"index")&&(e=e.$updated("indexasgn")),i.valueOf()){case"&&":return r.$n("and_asgn",[e,n],a);case"||":return r.$n("or_asgn",[e,n],a);default:return r.$n("op_asgn",[e,i,n],a)}break;case"back_ref":case"nth_ref":return r.$diagnostic("error","backref_assignment",k,e.$loc().$expression());default:return k}})),r(S,"$multi_lhs",(function(e,t,n){return this.$n("mlhs",[].concat(a(t)),this.$collection_map(e,t,n))})),r(S,"$multi_assign",(function(e,t,n){return this.$n("masgn",[e,n],this.$binary_op_map(e,t,n))})),r(S,"$def_class",(function(e,t,n,r,i,a){return this.$n("class",[t,r,i],this.$module_definition_map(e,t,n,a))})),r(S,"$def_sclass",(function(e,t,n,r,i){return this.$n("sclass",[n,r],this.$module_definition_map(e,k,t,i))})),r(S,"$def_module",(function(e,t,n,r){return this.$n("module",[t,n],this.$module_definition_map(e,t,k,r))})),r(S,"$def_method",(function(e,t,n,r,i){var a=this;return a.$check_reserved_for_numparam(a.$value(t),a.$loc(t)),a.$n("def",[a.$value(t).$to_sym(),n,r],a.$definition_map(e,k,t,i))})),r(S,"$def_endless_method",(function(e,t,n,r,i){var a=this;return a.$check_reserved_for_numparam(a.$value(t),a.$loc(t)),a.$n("def",[a.$value(t).$to_sym(),n,i],a.$endless_definition_map(e,k,t,r,i))})),r(S,"$def_singleton",(function(e,t,n,r,i,a,s){var o=this;return o.$validate_definee(t),o.$check_reserved_for_numparam(o.$value(r),o.$loc(r)),o.$n("defs",[t,o.$value(r).$to_sym(),i,a],o.$definition_map(e,n,r,s))})),r(S,"$def_endless_singleton",(function(e,t,n,r,i,a,s){var o=this;return o.$validate_definee(t),o.$check_reserved_for_numparam(o.$value(r),o.$loc(r)),o.$n("defs",[t,o.$value(r).$to_sym(),i,s],o.$endless_definition_map(e,n,r,a,s))})),r(S,"$undef_method",(function(e,t){return this.$n("undef",[].concat(a(t)),this.$keyword_map(e,k,t,k))})),r(S,"$alias",(function(e,t,n){return this.$n("alias",[t,n],this.$keyword_map(e,k,[t,n],k))})),r(S,"$args",(function(e,t,n,r){var i,a=this;return null==r&&(r=!0),s(r)&&(t=a.$check_duplicate_args(t)),a.$validate_no_forward_arg_after_restarg(t),i=a.$collection_map(e,t,n),$(a.$class().$emit_forward_arg())&&o(t.$length(),1)&&o(t["$[]"](0).$type(),"forward_arg")?a.$n("forward_args",[],i):a.$n("args",t,i)}),-4),r(S,"$numargs",(function(e){return this.$n("numargs",[e],k)})),r(S,"$forward_only_args",(function(e,t,n){var r=this,i=k;return s(r.$class().$emit_forward_arg())?(i=r.$forward_arg(t),r.$n("args",[i],r.$collection_map(e,[i],n))):r.$n("forward_args",[],r.$collection_map(e,r.$token_map(t),n))})),r(S,"$forward_arg",(function(e){return this.$n("forward_arg",[],this.$token_map(e))})),r(S,"$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))})),r(S,"$optarg",(function(e,t,n){var r=this;return r.$check_reserved_for_numparam(r.$value(e),r.$loc(e)),r.$n("optarg",[r.$value(e).$to_sym(),n],r.$variable_map(e).$with_operator(r.$loc(t)).$with_expression(r.$loc(e).$join(n.$loc().$expression())))})),r(S,"$restarg",(function(e,t){var n=this;return null==t&&(t=k),s(t)?(n.$check_reserved_for_numparam(n.$value(t),n.$loc(t)),n.$n("restarg",[n.$value(t).$to_sym()],n.$arg_prefix_map(e,t))):n.$n0("restarg",n.$arg_prefix_map(e))}),-2),r(S,"$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))})),r(S,"$kwoptarg",(function(e,t){var n=this;return n.$check_reserved_for_numparam(n.$value(e),n.$loc(e)),n.$n("kwoptarg",[n.$value(e).$to_sym(),t],n.$kwarg_map(e,t))})),r(S,"$kwrestarg",(function(e,t){var n=this;return null==t&&(t=k),s(t)?(n.$check_reserved_for_numparam(n.$value(t),n.$loc(t)),n.$n("kwrestarg",[n.$value(t).$to_sym()],n.$arg_prefix_map(e,t))):n.$n0("kwrestarg",n.$arg_prefix_map(e))}),-2),r(S,"$kwnilarg",(function(e,t){return this.$n0("kwnilarg",this.$arg_prefix_map(e,t))})),r(S,"$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))})),r(S,"$blockarg",(function(e,t){var n,r=this;return $(t["$nil?"]())&&r.$check_reserved_for_numparam(r.$value(t),r.$loc(t)),n=s(t)?r.$value(t).$to_sym():k,r.$n("blockarg",[n],r.$arg_prefix_map(e,t))})),r(S,"$procarg0",(function(e){var t=this;return s(t.$class().$emit_procarg0())?o(e.$type(),"arg")&&s(t.$class().$emit_arg_inside_procarg0())?t.$n("procarg0",[e],G(G(M("Source"),"Map"),"Collection").$new(k,k,e.$location().$expression())):e.$updated("procarg0"):e})),r(S,"$arg_expr",(function(e){return o(e.$type(),"lvasgn")?e.$updated("arg"):this.$n("arg_expr",[e],e.$loc().$dup())})),r(S,"$restarg_expr",(function(e,t){var n=this;return null==t&&(t=k),s(t["$nil?"]())?n.$n0("restarg",n.$token_map(e)):o(t.$type(),"lvasgn")?t.$updated("restarg"):n.$n("restarg_expr",[t],t.$loc().$dup())}),-2),r(S,"$blockarg_expr",(function(e,t){return o(t.$type(),"lvasgn")?t.$updated("blockarg"):this.$n("blockarg_expr",[t],t.$loc().$dup())})),r(S,"$objc_kwarg",(function(e,t,n){var r=this,i=k,a=k;return i=r.$loc(e),a=s(t["$nil?"]())?(i=i.$resize(f(i.$size(),1))).$end().$resize(1):r.$loc(t),r.$n("objc_kwarg",[r.$value(e).$to_sym(),r.$value(n).$to_sym()],G(G(M("Source"),"Map"),"ObjcKwarg").$new(i,a,r.$loc(n),i.$join(r.$loc(n))))})),r(S,"$objc_restarg",(function(e,t){var n=this;return null==t&&(t=k),s(t["$nil?"]())?n.$n0("restarg",n.$arg_prefix_map(e)):o(t.$type(),"arg")?t.$updated("restarg",k,new Map([["location",t.$loc().$with_operator(n.$loc(e))]])):n.$n("objc_restarg",[t],n.$unary_op_map(e,t))}),-2),r(S,"$call_type_for_dot",(function(e){return $(e["$nil?"]())&&o(this.$value(e),"anddot")?"csend":"send"})),r(S,"$forwarded_args",(function(e){return this.$n("forwarded_args",[],this.$token_map(e))})),r(S,"$forwarded_restarg",(function(e){return this.$n("forwarded_restarg",[],this.$token_map(e))})),r(S,"$forwarded_kwrestarg",(function(e){return this.$n("forwarded_kwrestarg",[],this.$token_map(e))})),r(S,"$call_method",(function(e,t,n,r,i,o){var $,u=this;return null==r&&(r=k),null==i&&(i=[]),null==o&&(o=k),$=u.$call_type_for_dot(t),s(u.$class().$emit_kwargs())&&u.$rewrite_hash_args_to_kwargs(i),s(n["$nil?"]())?u.$n($,[e,"call"].concat(a(i)),u.$send_map(e,t,k,r,i,o)):u.$n($,[e,u.$value(n).$to_sym()].concat(a(i)),u.$send_map(e,t,n,r,i,o))}),-4),r(S,"$call_lambda",(function(e){var t=this;return s(t.$class().$emit_lambda())?t.$n0("lambda",t.$expr_map(t.$loc(e))):t.$n("send",[k,"lambda"],t.$send_map(k,k,e))})),r(S,"$block",(function(e,t,n,r,i){var $,u,c=this,_=k,d=k,p=k,f=k;return o(e.$type(),"yield")&&c.$diagnostic("error","block_given_to_yield",k,e.$loc().$keyword(),[c.$loc(t)]),o(e.$type(),"super")?(u=($=[].concat(a(e))).length-1,h($,0,u=u<0?0:u),_=null==$[u]?k:$[u]):(null==($=[].concat(a(e)))[0]?k:$[0],null==$[1]?k:$[1],u=$.length-1,h($,2,u=u<2?2:u),_=null==$[u]?k:$[u]),s(_)&&(o(_.$type(),"block_pass")||o(_.$type(),"forwarded_args"))&&(o(c.parser.$version(),33)&&l(e.$type(),"super")||l(c.parser.$version(),33))&&c.$diagnostic("error","block_and_blockarg",k,_.$loc().$expression(),[c.$loc(t)]),o(n.$type(),"numargs")?(d="numblock",n=n.$children()["$[]"](0)):d="block",s(["send","csend","index","super","zsuper","lambda"]["$include?"](e.$type()))?c.$n(d,[e,n,r],c.$block_map(e.$loc().$expression(),t,i)):(p=null==($=[].concat(a(e)))[0]?k:$[0],f=c.$n(d,[p,n,r],c.$block_map(p.$loc().$expression(),t,i)),c.$n(e.$type(),[f],e.$loc().$with_expression(c.$join_exprs(e,f))))})),r(S,"$block_pass",(function(e,t){return this.$n("block_pass",[t],this.$unary_op_map(e,t))})),r(S,"$objc_varargs",(function(e,t){var n,r,i=k,s=k;return r=null==(n=[].concat(a(e)))[0]?k:n[0],i=null==n[1]?k:n[1],s=this.$array(k,[i].concat(a(t)),k).$updated("objc_varargs"),e.$updated(k,[r,s],new Map([["location",e.$loc().$with_expression(e.$loc().$expression().$join(s.$loc().$expression()))]]))})),r(S,"$attr_asgn",(function(e,t,n){var r,i,a=this;return r=m(a.$value(n),"=").$to_sym(),i=a.$call_type_for_dot(t),a.$n(i,[e,r],a.$send_map(e,t,n))})),r(S,"$index",(function(e,t,n,r){var i=this;return s(i.$class().$emit_kwargs())&&i.$rewrite_hash_args_to_kwargs(n),s(i.$class().$emit_index())?i.$n("index",[e].concat(a(n)),i.$index_map(e,t,r)):i.$n("send",[e,"[]"].concat(a(n)),i.$send_index_map(e,t,r))})),r(S,"$index_asgn",(function(e,t,n,r){var i=this;return s(i.$class().$emit_kwargs())&&i.$rewrite_hash_args_to_kwargs(n),s(i.$class().$emit_index())?i.$n("indexasgn",[e].concat(a(n)),i.$index_map(e,t,r)):i.$n("send",[e,"[]="].concat(a(n)),i.$send_index_map(e,t,r))})),r(S,"$binary_op",(function(e,t,n){var r=this,i=k,a=k,$=k;return i=r.$send_binary_op_map(e,t,n),o(r.parser.$version(),18)&&(a=r.$value(t),o(a,"!=")?$=r.$n("send",[e,"==",n],i):o(a,"!~")&&($=r.$n("send",[e,"=~",n],i)),s(["!=","!~"]["$include?"](a)))?r.$n("not",[$],r.$expr_map(i.$expression())):r.$n("send",[e,r.$value(t).$to_sym(),n],i)})),r(S,"$match_op",(function(e,t,n){var r,i=this,a=k;return r=i.$send_binary_op_map(e,t,n),s(a=i.$static_regexp_node(e))?(u(a.$names(),"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.parser&&(n.parser=k),null==t&&(t=k),n.parser.$static_env().$declare(t)}),{$$s:i}),i.$n("match_with_lvasgn",[e,n],r)):i.$n("send",[e,"=~",n],r)})),r(S,"$unary_op",(function(e,t){var n=this,r=k;switch(n.$value(e).valueOf()){case"+":case"-":r=m(n.$value(e),"@");break;default:r=n.$value(e)}return n.$n("send",[t,r.$to_sym()],n.$send_unary_op_map(e,t))})),r(S,"$not_op",(function(e,t,n,r){var i=this,a=k;return null==t&&(t=k),null==n&&(n=k),null==r&&(r=k),o(i.parser.$version(),18)?i.$n("not",[i.$check_condition(n)],i.$unary_op_map(e,n)):s(n["$nil?"]())?(a=i.$n0("begin",i.$collection_map(t,k,r)),i.$n("send",[a,"!"],i.$send_unary_op_map(e,a))):i.$n("send",[i.$check_condition(n),"!"],i.$send_map(k,k,e,t,[n],r))}),-2),r(S,"$logical_op",(function(e,t,n,r){return this.$n(e,[t,r],this.$binary_op_map(t,n,r))})),r(S,"$condition",(function(e,t,n,r,i,a,s){var o=this;return o.$n("if",[o.$check_condition(t),r,a],o.$condition_map(e,t,n,r,i,a,s))})),r(S,"$condition_mod",(function(e,t,n,r){var i,a=this;return a.$n("if",[a.$check_condition(r),e,t],a.$keyword_mod_map(s(i=e)?i:t,n,r))})),r(S,"$ternary",(function(e,t,n,r,i){var a=this;return a.$n("if",[a.$check_condition(e),n,i],a.$ternary_map(e,t,n,r,i))})),r(S,"$when",(function(e,t,n,r){var i;return i=t["$<<"](r),this.$n("when",i,this.$keyword_map(e,n,i,k))})),r(S,"$case",(function(e,t,n,r,i,s){return this.$n("case",[t].concat(a(n["$<<"](i))),this.$condition_map(e,t,k,k,r,i,s))})),r(S,"$loop",(function(e,t,n,r,i,a){var s=this;return s.$n(e,[s.$check_condition(n),i],s.$keyword_map(t,r,k,a))})),r(S,"$loop_mod",(function(e,t,n,r){var i=this;return o(t.$type(),"kwbegin")&&(e+="_post"),i.$n(e,[i.$check_condition(r),t],i.$keyword_mod_map(t,n,r))})),r(S,"$for",(function(e,t,n,r,i,a,s){return this.$n("for",[t,r,a],this.$for_map(e,n,i,s))})),r(S,"$keyword_cmd",(function(e,t,n,r,i){var a=this,$=k;return null==n&&(n=k),null==r&&(r=[]),null==i&&(i=k),o(e,"yield")&&s(d(r.$count(),0))&&($=r.$last(),o($.$type(),"block_pass")&&a.$diagnostic("error","block_given_to_yield",k,a.$loc(t),[$.$loc().$expression()])),s(["yield","super"]["$include?"](e))&&s(a.$class().$emit_kwargs())&&a.$rewrite_hash_args_to_kwargs(r),a.$n(e,r,a.$keyword_map(t,n,r,i))}),-3),r(S,"$preexe",(function(e,t,n,r){return this.$n("preexe",[n],this.$keyword_map(e,t,[],r))})),r(S,"$postexe",(function(e,t,n,r){return this.$n("postexe",[n],this.$keyword_map(e,t,[],r))})),r(S,"$rescue_body",(function(e,t,n,r,i,a){return this.$n("resbody",[t,r,a],this.$rescue_body_map(e,t,n,r,i,a))})),r(S,"$begin_body",(function(e,t,n,r,i,u){var l=this,c=k;return null==t&&(t=[]),null==n&&(n=k),null==r&&(r=k),null==i&&(i=k),null==u&&(u=k),s(t["$any?"]())?e=s(n)?l.$n("rescue",[e].concat(a(m(t,[r]))),l.$eh_keyword_map(e,k,t,n,r)):l.$n("rescue",[e].concat(a(m(t,[k]))),l.$eh_keyword_map(e,k,t,k,k)):s(n)&&(c=[],$(e["$nil?"]())&&(o(e.$type(),"begin")?c=m(c,e.$children()):c.$push(e)),c.$push(l.$n("begin",[r],l.$collection_map(n,[r],k))),e=l.$n("begin",c,l.$collection_map(k,c,k))),s(i)&&(e=l.$n("ensure",[e,u],l.$eh_keyword_map(e,i,[u],k,k))),e}),-2),r(S,"$compstmt",(function(e){return s(e["$none?"]())?k:s(e["$one?"]())?e.$first():this.$n("begin",e,this.$collection_map(k,e,k))})),r(S,"$begin",(function(e,t,n){var r=this;return s(t["$nil?"]())?r.$n0("begin",r.$collection_map(e,k,n)):o(t.$type(),"mlhs")||o(t.$type(),"begin")&&s(t.$loc().$begin()["$nil?"]())&&s(t.$loc().$end()["$nil?"]())?r.$n(t.$type(),t.$children(),r.$collection_map(e,t.$children(),n)):r.$n("begin",[t],r.$collection_map(e,[t],n))})),r(S,"$begin_keyword",(function(e,t,n){var r=this;return s(t["$nil?"]())?r.$n0("kwbegin",r.$collection_map(e,k,n)):o(t.$type(),"begin")&&s(t.$loc().$begin()["$nil?"]())&&s(t.$loc().$end()["$nil?"]())?r.$n("kwbegin",t.$children(),r.$collection_map(e,t.$children(),n)):r.$n("kwbegin",[t],r.$collection_map(e,[t],n))})),r(S,"$case_match",(function(e,t,n,r,i,o){var u=this;return s(r)&&$(i)&&(i=u.$n("empty_else",k,u.$token_map(r))),u.$n("case_match",[t].concat(a(n["$<<"](i))),u.$condition_map(e,t,k,k,r,i,o))})),r(S,"$in_match",(function(e,t,n){return this.$n("in_match",[e,n],this.$binary_op_map(e,t,n))})),r(S,"$match_pattern",(function(e,t,n){return this.$n("match_pattern",[e,n],this.$binary_op_map(e,t,n))})),r(S,"$match_pattern_p",(function(e,t,n){return this.$n("match_pattern_p",[e,n],this.$binary_op_map(e,t,n))})),r(S,"$in_pattern",(function(e,t,n,r,i){var a=k;return a=[t,n,i],this.$n("in_pattern",a,this.$keyword_map(e,r,a.$compact(),k))})),r(S,"$if_guard",(function(e,t){return this.$n("if_guard",[t],this.$guard_map(e,t))})),r(S,"$unless_guard",(function(e,t){return this.$n("unless_guard",[t],this.$guard_map(e,t))})),r(S,"$match_var",(function(e){var t,n,r=this;return t=r.$value(e).$to_sym(),n=r.$loc(e),r.$check_lvar_name(t,n),r.$check_duplicate_pattern_variable(t,n),r.parser.$static_env().$declare(t),r.$n("match_var",[t],r.$variable_map(e))})),r(S,"$match_hash_var",(function(e){var t,n,r=this,i=k;return t=r.$value(e).$to_sym(),n=(i=r.$loc(e)).$adjust(new Map([["end_pos",-1]])),r.$check_lvar_name(t,n),r.$check_duplicate_pattern_variable(t,n),r.parser.$static_env().$declare(t),r.$n("match_var",[t],G(G(M("Source"),"Map"),"Variable").$new(n,i))})),r(S,"$match_hash_var_from_str",(function(e,t,n){var r,i=this,o=k,$=k,u=k,l=k,c=k,_=k;switch(s(d(t.$length(),1))&&i.$diagnostic("error","pm_interp_in_var_name",k,i.$loc(e).$join(i.$loc(n))),(o=t["$[]"](0)).$type().valueOf()){case"str":return $=null==(r=[].concat(a(o)))[0]?k:r[0],u=o.$loc().$expression(),i.$check_lvar_name($,u),i.$check_duplicate_pattern_variable($,u),i.parser.$static_env().$declare($),s(l=o.$loc().$begin())&&(u=u.$adjust(new Map([["begin_pos",l.$length()]]))),s(c=o.$loc().$end())&&(u=u.$adjust(new Map([["end_pos",c.$length()["$-@"]()]]))),_=i.$loc(e).$join(o.$loc().$expression()).$join(i.$loc(n)),i.$n("match_var",[$.$to_sym()],G(G(M("Source"),"Map"),"Variable").$new(u,_));case"begin":return i.$match_hash_var_from_str(e,o.$children(),n);default:return i.$diagnostic("error","pm_interp_in_var_name",k,i.$loc(e).$join(i.$loc(n)))}})),r(S,"$match_rest",(function(e,t){var n=this,r=k;return null==t&&(t=k),s(t["$nil?"]())?n.$n0("match_rest",n.$unary_op_map(e)):(r=n.$match_var(t),n.$n("match_rest",[r],n.$unary_op_map(e,r)))}),-2),r(S,"$hash_pattern",(function(e,t,n){var r,i=this;return r=i.$check_duplicate_args(t),i.$n("hash_pattern",r,i.$collection_map(e,r,n))})),r(S,"$array_pattern",(function(e,t,n){var r,i,a=this,$=k;return s(t["$nil?"]())?a.$n("array_pattern",k,a.$collection_map(e,[],n)):($=!1,r=u(t,"map",[],(function(e){return null==e&&(e=k),o(e.$type(),"match_with_trailing_comma")?($=!0,e.$children().$first()):($=!1,e)})),i=s($)?"array_pattern_with_tail":"array_pattern",a.$n(i,r,a.$collection_map(e,t,n)))})),r(S,"$find_pattern",(function(e,t,n){return this.$n("find_pattern",t,this.$collection_map(e,t,n))})),r(S,"$match_with_trailing_comma",(function(e,t){var n=this;return n.$n("match_with_trailing_comma",[e],n.$expr_map(e.$loc().$expression().$join(n.$loc(t))))})),r(S,"$const_pattern",(function(e,t,n,r){var i=this;return i.$n("const_pattern",[e,n],G(G(M("Source"),"Map"),"Collection").$new(i.$loc(t),i.$loc(r),e.$loc().$expression().$join(i.$loc(r))))})),r(S,"$pin",(function(e,t){return this.$n("pin",[t],this.$send_unary_op_map(e,t))})),r(S,"$match_alt",(function(e,t,n){var r;return r=this.$binary_op_map(e,t,n),this.$n("match_alt",[e,n],r)})),r(S,"$match_as",(function(e,t,n){var r;return r=this.$binary_op_map(e,t,n),this.$n("match_as",[e,n],r)})),r(S,"$match_nil_pattern",(function(e,t){return this.$n0("match_nil_pattern",this.$arg_prefix_map(e,t))})),r(S,"$match_pair",(function(e,t,n){var r,i=this,a=k,$=k,u=k,l=k,_=k;return o(e,"label")?(i.$check_duplicate_pattern_key(t["$[]"](0),t["$[]"](1)),i.$pair_keyword(t,n)):(a=null==(r=c(t))[0]?k:r[0],$=null==r[1]?k:r[1],u=null==r[2]?k:r[2],l=i.$loc(a).$join(i.$loc(u)),s(_=i.$static_string($))?i.$check_duplicate_pattern_key(_,l):i.$diagnostic("error","pm_interp_in_var_name",k,l),i.$pair_quoted(a,$,u,n))})),r(S,"$match_label",(function(e,t){var n,r=k,i=k,a=k;return o(e,"label")?this.$match_hash_var(t):(r=null==(n=c(t))[0]?k:n[0],i=null==n[1]?k:n[1],a=null==n[2]?k:n[2],this.$match_hash_var_from_str(r,i,a))})),S.$private(),r(S,"$check_condition",(function(e){var t,n=this,r=k,i=k,$=k,u=k,l=k,c=k;switch(e.$type().valueOf()){case"masgn":return s(g(n.parser.$version(),23))?n.$diagnostic("error","masgn_as_condition",k,e.$loc().$expression()):e;case"begin":return o(e.$children().$count(),1)?e.$updated(k,[n.$check_condition(e.$children().$last())]):e;case"and":case"or":return r=null==(t=[].concat(a(e)))[0]?k:t[0],i=null==t[1]?k:t[1],o(n.parser.$version(),18)?e:e.$updated(e.$type(),[n.$check_condition(r),n.$check_condition(i)]);case"irange":case"erange":return r=null==(t=[].concat(a(e)))[0]?k:t[0],i=null==t[1]?k:t[1],$=v("irange",u=e.$type())?"iflipflop":v("erange",u)?"eflipflop":k,s(r["$nil?"]())||(l=n.$check_condition(r)),s(i["$nil?"]())||(c=n.$check_condition(i)),e.$updated($,[l,c]);case"regexp":return n.$n("match_current_line",[e],n.$expr_map(e.$loc().$expression()));default:return e}})),r(S,"$check_duplicate_args",(function(e,t){return null==t&&(t=new Map),u(e,"each",[],(function e(n){var r=null==e.$$s?this:e.$$s;switch(null==n&&(n=k),n.$type().valueOf()){case"arg":case"optarg":case"restarg":case"blockarg":case"kwarg":case"kwoptarg":case"kwrestarg":case"shadowarg":return r.$check_duplicate_arg(n,t);case"procarg0":return s(n.$children()["$[]"](0)["$is_a?"](M("Symbol")))?r.$check_duplicate_arg(n,t):r.$check_duplicate_args(n.$children(),t);case"mlhs":return r.$check_duplicate_args(n.$children(),t);default:return k}}),{$$s:this})}),-2),r(S,"$check_duplicate_arg",(function(e,t){var n,r,i,o=k;return null==t&&(t=new Map),r=null==(n=[].concat(a(e)))[0]?k:n[0],o=t["$[]"](r),i=null==(n=[].concat(a(o)))[0]?k:n[0],s(o["$nil?"]())?(u(t,"[]=",n=[r,e]),n[n.length-1]):s(this["$arg_name_collides?"](r,i))?this.$diagnostic("error","duplicate_argument",k,e.$loc().$name(),[o.$loc().$name()]):k}),-2),r(S,"$validate_no_forward_arg_after_restarg",(function(e){var t=k,n=k;return t=k,n=k,u(e,"each",[],(function(e){switch(null==e&&(e=k),e.$type().valueOf()){case"restarg":return t=e;case"forward_arg":return n=e;default:return k}})),$(n["$nil?"]())&&$(t["$nil?"]())?this.$diagnostic("error","forward_arg_after_restarg",k,n.$loc().$expression(),[t.$loc().$expression()]):k})),r(S,"$check_assignment_to_numparam",(function(e,t){var n,r,i,a=this;return s(b(a.parser.$version(),27))?k:(n=s(r=s(i=a.parser.$context()["$in_dynamic_block?"]())?e["$=~"](/^_([1-9])$/):i)?a.parser.$max_numparam_stack()["$has_numparams?"]():r,s(n)?a.$diagnostic("error","cant_assign_to_numparam",new Map([["name",e]]),t):k)})),r(S,"$check_reserved_for_numparam",(function(e,t){return s(b(this.parser.$version(),30))?k:s(e["$=~"](/^_([1-9])$/))?this.$diagnostic("error","reserved_for_numparam",new Map([["name",e]]),t):k})),r(S,"$arg_name_collides?",(function(e,t){var n=k,r=k;switch(this.parser.$version().valueOf()){case 18:return e["$=="](t);case 19:return s(n=e["$!="]("_"))?e["$=="](t):n;default:return s(n=s(r=e)?e["$[]"](0)["$!="]("_"):r)?e["$=="](t):n}})),r(S,"$check_lvar_name",(function(e,t){return s(e["$=~"](/^[[[:lower:]]_][[[:alnum:]]_]*$/))?k:this.$diagnostic("error","lvar_name",new Map([["name",e]]),t)})),r(S,"$check_duplicate_pattern_variable",(function(e,t){var n=this;return s(e.$to_s()["$start_with?"]("_"))?k:(s(n.parser.$pattern_variables()["$declared?"](e))&&n.$diagnostic("error","duplicate_variable_name",new Map([["name",e.$to_s()]]),t),n.parser.$pattern_variables().$declare(e))})),r(S,"$check_duplicate_pattern_key",(function(e,t){var n=this;return s(n.parser.$pattern_hash_keys()["$declared?"](e))&&n.$diagnostic("error","duplicate_pattern_key",new Map([["name",e.$to_s()]]),t),n.parser.$pattern_hash_keys().$declare(e)})),r(S,"$n",(function(e,t,n){return G(M("AST"),"Node").$new(e,t,new Map([["location",n]]))})),r(S,"$n0",(function(e,t){return this.$n(e,[],t)})),r(S,"$join_exprs",(function(e,t){return e.$loc().$expression().$join(t.$loc().$expression())})),r(S,"$token_map",(function(e){return G(M("Source"),"Map").$new(this.$loc(e))})),r(S,"$delimited_string_map",(function(e){var t,n,r=k;return t=(r=this.$loc(e)).$with(new Map([["end_pos",m(r.$begin_pos(),1)]])),n=r.$with(new Map([["begin_pos",f(r.$end_pos(),1)]])),G(G(M("Source"),"Map"),"Collection").$new(t,n,this.$loc(e))})),r(S,"$prefix_string_map",(function(e){var t,n=k;return t=(n=this.$loc(e)).$with(new Map([["end_pos",m(n.$begin_pos(),1)]])),G(G(M("Source"),"Map"),"Collection").$new(t,k,this.$loc(e))})),r(S,"$unquoted_map",(function(e){return G(G(M("Source"),"Map"),"Collection").$new(k,k,this.$loc(e))})),r(S,"$pair_keyword_map",(function(e,t){var n,r,i=k;return n=(i=this.$loc(e)).$adjust(new Map([["end_pos",-1]])),r=i.$with(new Map([["begin_pos",f(i.$end_pos(),1)]])),[G(G(M("Source"),"Map"),"Collection").$new(k,k,n),G(G(M("Source"),"Map"),"Operator").$new(r,i.$join(t.$loc().$expression()))]})),r(S,"$pair_quoted_map",(function(e,t,n){var r,i,a=this,s=k;return r=(s=a.$loc(t)).$with(new Map([["begin_pos",f(s.$end_pos(),2)],["end_pos",f(s.$end_pos(),1)]])),i=s.$with(new Map([["begin_pos",f(s.$end_pos(),1)]])),[[a.$value(t),r],G(G(M("Source"),"Map"),"Operator").$new(i,a.$loc(e).$join(n.$loc().$expression()))]})),r(S,"$expr_map",(function(e){return G(M("Source"),"Map").$new(e)})),r(S,"$collection_map",(function(e,t,n){var r=this,i=k;return s(e["$nil?"]())||s(n["$nil?"]())?s(t["$any?"]())?i=r.$join_exprs(t.$first(),t.$last()):$(e["$nil?"]())?i=r.$loc(e):$(n["$nil?"]())&&(i=r.$loc(n)):i=r.$loc(e).$join(r.$loc(n)),G(G(M("Source"),"Map"),"Collection").$new(r.$loc(e),r.$loc(n),i)})),r(S,"$string_map",(function(e,t,n){var r=this,i=k;return s(e)&&s(r.$value(e)["$start_with?"]("<<"))?(i=s(t["$any?"]())?r.$join_exprs(t.$first(),t.$last()):r.$loc(n).$begin(),G(G(M("Source"),"Map"),"Heredoc").$new(r.$loc(e),i,r.$loc(n))):r.$collection_map(e,t,n)})),r(S,"$regexp_map",(function(e,t,n){var r=this;return G(G(M("Source"),"Map"),"Collection").$new(r.$loc(e),r.$loc(t),r.$loc(e).$join(n.$loc().$expression()))})),r(S,"$constant_map",(function(e,t,n){var r=this,i=k;return i=s(e["$nil?"]())?r.$loc(n):e.$loc().$expression().$join(r.$loc(n)),G(G(M("Source"),"Map"),"Constant").$new(r.$loc(t),r.$loc(n),i)})),r(S,"$variable_map",(function(e){return G(G(M("Source"),"Map"),"Variable").$new(this.$loc(e))})),r(S,"$binary_op_map",(function(e,t,n){return G(G(M("Source"),"Map"),"Operator").$new(this.$loc(t),this.$join_exprs(e,n))})),r(S,"$unary_op_map",(function(e,t){var n=this,r=k;return null==t&&(t=k),r=s(t["$nil?"]())?n.$loc(e):n.$loc(e).$join(t.$loc().$expression()),G(G(M("Source"),"Map"),"Operator").$new(n.$loc(e),r)}),-2),r(S,"$range_map",(function(e,t,n){var r=this,i=k;return s(e)&&s(n)?i=r.$join_exprs(e,n):s(e)?i=e.$loc().$expression().$join(r.$loc(t)):s(n)&&(i=r.$loc(t).$join(n.$loc().$expression())),G(G(M("Source"),"Map"),"Operator").$new(r.$loc(t),i)})),r(S,"$arg_prefix_map",(function(e,t){var n=this,r=k;return null==t&&(t=k),r=s(t["$nil?"]())?n.$loc(e):n.$loc(e).$join(n.$loc(t)),G(G(M("Source"),"Map"),"Variable").$new(n.$loc(t),r)}),-2),r(S,"$kwarg_map",(function(e,t){var n,r=this,i=k;return null==t&&(t=k),n=r.$loc(e).$adjust(new Map([["end_pos",-1]])),i=s(t)?r.$loc(e).$join(t.$loc().$expression()):r.$loc(e),G(G(M("Source"),"Map"),"Variable").$new(n,i)}),-2),r(S,"$module_definition_map",(function(e,t,n,r){var i=this,a=k;return s(t)&&(a=t.$loc().$expression()),G(G(M("Source"),"Map"),"Definition").$new(i.$loc(e),i.$loc(n),a,i.$loc(r))})),r(S,"$definition_map",(function(e,t,n,r){var i=this;return G(G(M("Source"),"Map"),"MethodDefinition").$new(i.$loc(e),i.$loc(t),i.$loc(n),i.$loc(r),k,k)})),r(S,"$endless_definition_map",(function(e,t,n,r,i){var a,s=this;return a=i.$loc().$expression(),G(G(M("Source"),"Map"),"MethodDefinition").$new(s.$loc(e),s.$loc(t),s.$loc(n),k,s.$loc(r),a)})),r(S,"$send_map",(function(e,t,n,r,i,a){var o=this,$=k,u=k;return null==r&&(r=k),null==i&&(i=[]),null==a&&(a=k),s(e)?$=e.$loc().$expression():s(n)&&($=o.$loc(n)),s(a)?u=o.$loc(a):s(i["$any?"]())?u=i.$last().$loc().$expression():s(n)&&(u=o.$loc(n)),G(G(M("Source"),"Map"),"Send").$new(o.$loc(t),o.$loc(n),o.$loc(r),o.$loc(a),$.$join(u))}),-4),r(S,"$var_send_map",(function(e){return G(G(M("Source"),"Map"),"Send").$new(k,e.$loc().$expression(),k,k,e.$loc().$expression())})),r(S,"$send_binary_op_map",(function(e,t,n){return G(G(M("Source"),"Map"),"Send").$new(k,this.$loc(t),k,k,this.$join_exprs(e,n))})),r(S,"$send_unary_op_map",(function(e,t){var n=this,r=k;return r=s(t["$nil?"]())?n.$loc(e):n.$loc(e).$join(t.$loc().$expression()),G(G(M("Source"),"Map"),"Send").$new(k,n.$loc(e),k,k,r)})),r(S,"$index_map",(function(e,t,n){var r=this;return G(G(M("Source"),"Map"),"Index").$new(r.$loc(t),r.$loc(n),e.$loc().$expression().$join(r.$loc(n)))})),r(S,"$send_index_map",(function(e,t,n){var r=this;return G(G(M("Source"),"Map"),"Send").$new(k,r.$loc(t).$join(r.$loc(n)),k,k,e.$loc().$expression().$join(r.$loc(n)))})),r(S,"$block_map",(function(e,t,n){var r=this;return G(G(M("Source"),"Map"),"Collection").$new(r.$loc(t),r.$loc(n),e.$join(r.$loc(n)))})),r(S,"$keyword_map",(function(e,t,n,r){var i,a=this,o=k;return n=s(i=n)?i:[],o=s(r)?a.$loc(r):s(n["$any?"]())&&$(n.$last()["$nil?"]())?n.$last().$loc().$expression():s(n["$any?"]())&&s(d(n.$count(),1))?n["$[]"](-2).$loc().$expression():a.$loc(e),G(G(M("Source"),"Map"),"Keyword").$new(a.$loc(e),a.$loc(t),a.$loc(r),a.$loc(e).$join(o))})),r(S,"$keyword_mod_map",(function(e,t,n){return G(G(M("Source"),"Map"),"Keyword").$new(this.$loc(t),k,k,this.$join_exprs(e,n))})),r(S,"$condition_map",(function(e,t,n,r,i,a,o){var $=this,u=k;return u=s(o)?$.$loc(o):s(a)&&s(a.$loc().$expression())?a.$loc().$expression():s($.$loc(i))?$.$loc(i):s(r)&&s(r.$loc().$expression())?r.$loc().$expression():s($.$loc(n))?$.$loc(n):t.$loc().$expression(),G(G(M("Source"),"Map"),"Condition").$new($.$loc(e),$.$loc(n),$.$loc(i),$.$loc(o),$.$loc(e).$join(u))})),r(S,"$ternary_map",(function(e,t,n,r,i){var a=this;return G(G(M("Source"),"Map"),"Ternary").$new(a.$loc(t),a.$loc(r),a.$join_exprs(e,i))})),r(S,"$for_map",(function(e,t,n,r){var i=this;return G(G(M("Source"),"Map"),"For").$new(i.$loc(e),i.$loc(t),i.$loc(n),i.$loc(r),i.$loc(e).$join(i.$loc(r)))})),r(S,"$rescue_body_map",(function(e,t,n,r,i,a){var o=this,$=k;return s(a)&&($=a.$loc().$expression()),s($["$nil?"]())&&s(i)&&($=o.$loc(i)),s($["$nil?"]())&&s(r)&&($=r.$loc().$expression()),s($["$nil?"]())&&s(t)&&($=t.$loc().$expression()),s($["$nil?"]())&&($=o.$loc(e)),G(G(M("Source"),"Map"),"RescueBody").$new(o.$loc(e),o.$loc(n),o.$loc(i),o.$loc(e).$join($))})),r(S,"$eh_keyword_map",(function(e,t,n,r,i){var a=this,o=k,u=k;return o=s(e["$nil?"]())?s(t["$nil?"]())?n.$first().$loc().$expression():a.$loc(t):e.$loc().$expression(),u=s(r)?s(i["$nil?"]())?a.$loc(r):i.$loc().$expression():$(n.$last()["$nil?"]())?n.$last().$loc().$expression():a.$loc(t),G(G(M("Source"),"Map"),"Condition").$new(a.$loc(t),k,a.$loc(r),k,o.$join(u))})),r(S,"$guard_map",(function(e,t){var n,r=k;return r=this.$loc(e),n=t.$loc().$expression(),G(G(M("Source"),"Map"),"Keyword").$new(r,k,k,r.$join(n))})),r(S,"$static_string",(function(e){try{var t=y("return");return u(e,"map",[],(function e(n){var r=null==e.$$s?this:e.$$s,i=k;switch(null==n&&(n=k),n.$type().valueOf()){case"str":return n.$children()["$[]"](0);case"begin":if(s(i=r.$static_string(n.$children())))return i;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}})),r(S,"$static_regexp",(function(e,t){var n,r=k,i=k;return null==w.VERBOSE&&(w.VERBOSE=k),r=this.$static_string(e),s(r["$nil?"]())?k:(r=s(t.$children()["$include?"]("u"))?r.$encode(G(M("Encoding"),"UTF_8")):s(t.$children()["$include?"]("e"))?r.$encode(G(M("Encoding"),"EUC_JP")):s(t.$children()["$include?"]("s"))?r.$encode(G(M("Encoding"),"WINDOWS_31J")):s(t.$children()["$include?"]("n"))?r.$encode(G(M("Encoding"),"BINARY")):r,function(){try{return n=[w.VERBOSE,k],i=n[0],w.VERBOSE=n[1],M("Regexp").$new(r,s(t.$children()["$include?"]("x"))?G(M("Regexp"),"EXTENDED"):k)}finally{w.VERBOSE=i}}())})),r(S,"$static_regexp_node",(function(e){var t,n=k,r=k;return o(e.$type(),"regexp")?s(_(this.parser.$version(),33))&&s(u(e.$children()["$[]"](p(0,-2,!1)),"any?",[],(function(e){return null==e&&(e=k),e.$type()["$!="]("str")})))?k:(n=(t=[e.$children()["$[]"](p(0,-2,!1)),e.$children()["$[]"](-1)])[0],r=t[1],this.$static_regexp(n,r)):k})),r(S,"$collapse_string_parts?",(function(e){var t;return s(t=e["$one?"]())?["str","dstr"]["$include?"](e.$first().$type()):t})),r(S,"$value",(function(e){return e["$[]"](0)})),r(S,"$string_value",(function(e){return s(e["$[]"](0)["$valid_encoding?"]())||this.$diagnostic("error","invalid_encoding",k,e["$[]"](1)),e["$[]"](0)})),r(S,"$loc",(function(e){return s(e)&&s(e["$[]"](0))?e["$[]"](1):k})),r(S,"$diagnostic",(function(e,t,n,r,i){return null==i&&(i=[]),this.parser.$diagnostics().$process(M("Diagnostic").$new(e,t,n,r,i)),o(e,"error")?this.parser.$send("yyerror"):k}),-5),r(S,"$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}})),r(S,"$rewrite_hash_args_to_kwargs",(function(e){var t;return s(e["$any?"]())&&s(this["$kwargs?"](e.$last()))?(t=[f(e.$length(),1),e["$[]"](f(e.$length(),1)).$updated("kwargs")],u(e,"[]=",t),t[t.length-1]):s(d(e.$length(),1))&&o(e.$last().$type(),"block_pass")&&s(this["$kwargs?"](e["$[]"](f(e.$length(),2))))?(t=[f(e.$length(),2),e["$[]"](f(e.$length(),2)).$updated("kwargs")],u(e,"[]=",t),t[t.length-1]):k})),r(S,"$kwargs?",(function(e){var t,n;return s(t=s(n=e.$type()["$=="]("hash"))?e.$loc().$begin()["$nil?"]():n)?e.$loc().$end()["$nil?"]():t}))}(e.$r(S)("Builders"),0,S)}(x[0],x)},Opal.modules["parser/context"]=function(e){var t=e.module,n=e.klass,r=e.const_set,i=e.def,a=e.send,s=e.to_a,o=e.truthy,$=[];e.nil;return e.add_stubs("reset,attr_accessor,in_block,in_lambda"),function($,u){var l=[t($,"Parser")].concat(u);return function(t,$,u){var l=n(t,null,"Context"),c=[l].concat(u),_=e.$r(c);return r(c[0],"FLAGS",["in_defined","in_kwarg","in_argdef","in_def","in_class","in_block","in_lambda","cant_return"]),i(l,"$initialize",(function(){return this.$reset()})),i(l,"$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,e.cant_return=!1})),a(l,"attr_accessor",s(_("FLAGS"))),i(l,"$in_dynamic_block?",(function(){var e;return o(e=this.$in_block())?e:this.$in_lambda()}))}(l[0],0,l)}($[0],$)},Opal.modules["parser/max_numparam_stack"]=function(e){var t=e.module,n=e.klass,r=e.const_set,i=e.def,a=e.truthy,s=e.rb_gt,o=e.ensure_kwargs,$=e.get_kwarg,u=e.send,l=[],c=e.nil;return e.add_stubs("attr_reader,==,size,set,top,>,max,[],last,push,pop,private,[]="),function(l,_){var d=[t(l,"Parser")].concat(_);return function(t,l,_){var d=n(t,null,"MaxNumparamStack"),p=[d].concat(_),f=e.$r(p);return d.$$prototype.stack=c,d.$attr_reader("stack"),r(p[0],"ORDINARY_PARAMS",-1),i(d,"$initialize",(function(){return this.stack=[]})),i(d,"$empty?",(function(){return this.stack.$size()["$=="](0)})),i(d,"$has_ordinary_params!",(function(){return this.$set(f("ORDINARY_PARAMS"))})),i(d,"$has_ordinary_params?",(function(){return this.$top()["$=="](f("ORDINARY_PARAMS"))})),i(d,"$has_numparams?",(function(){var e;return a(e=this.$top())?s(this.$top(),0):e})),i(d,"$register",(function(e){return this.$set([this.$top(),e].$max())})),i(d,"$top",(function(){return this.stack.$last()["$[]"]("value")})),i(d,"$push",(function(e){var t;return e=o(e),t=$(e,"static"),this.stack.$push(new Map([["value",0],["static",t]]))})),i(d,"$pop",(function(){return this.stack.$pop()["$[]"]("value")})),d.$private(),i(d,"$set",(function(e){var t;return t=["value",e],u(this.stack.$last(),"[]=",t),t[t.length-1]}))}(d[0],0,d)}(l[0],l)},Opal.modules["parser/current_arg_stack"]=function(e){var t,n=e.module,r=e.klass,i=e.def,a=e.rb_minus,s=e.send,o=[],$=e.nil;return e.add_stubs("attr_reader,freeze,==,size,<<,[]=,-,length,pop,clear,last"),t=o,function(e,t){var n=r(e,null,"CurrentArgStack");return n.$$prototype.stack=$,n.$attr_reader("stack"),i(n,"$initialize",(function(){return this.stack=[],this.$freeze()})),i(n,"$empty?",(function(){return this.stack.$size()["$=="](0)})),i(n,"$push",(function(e){return this.stack["$<<"](e)})),i(n,"$set",(function(e){var t;return t=[a(this.stack.$length(),1),e],s(this.stack,"[]=",t),t[t.length-1]})),i(n,"$pop",(function(){return this.stack.$pop()})),i(n,"$reset",(function(){return this.stack.$clear()})),i(n,"$top",(function(){return this.stack.$last()}))}([n(o[0],"Parser")].concat(t)[0])},Opal.modules["parser/variables_stack"]=function(e){var t=e.module,n=e.klass,r=e.def,i=[],a=e.nil;return e.add_stubs("push,empty?,<<,new,pop,clear,last,to_sym,include?"),function(i,s){var o=[t(i,"Parser")].concat(s);return function(t,i,s){var o=n(t,null,"VariablesStack"),$=[o].concat(s),u=e.$r($);return o.$$prototype.stack=a,r(o,"$initialize",(function(){return this.stack=[],this.$push()})),r(o,"$empty?",(function(){return this.stack["$empty?"]()})),r(o,"$push",(function(){return this.stack["$<<"](u("Set").$new())})),r(o,"$pop",(function(){return this.stack.$pop()})),r(o,"$reset",(function(){return this.stack.$clear()})),r(o,"$declare",(function(e){return this.stack.$last()["$<<"](e.$to_sym())})),r(o,"$declared?",(function(e){return this.stack.$last()["$include?"](e.$to_sym())}))}(o[0],0,o)}(i[0],i)},Opal.modules["parser/base"]=function(e){var t=e.module,n=e.klass,r=e.defs,i=e.send,a=e.gvars,s=e.eqeq,o=e.truthy,$=e.def,u=e.not,l=e.eqeqeq,c=e.to_ary,_=[],d=e.nil,p=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(_,f){var h=[t(_,"Parser")].concat(f),m=e.$r(h);return function(t,_,f){var h=n(t,_,"Base"),m=[h].concat(f),g=e.$r(m),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=d,r(h,"$parse",(function(e,t,n){var r,i=d;return null==t&&(t="(string)"),null==n&&(n=1),i=this.$default_parser(),r=this.$setup_source_buffer(t,n,e,i.$default_encoding()),i.$parse(r)}),-2),r(h,"$parse_with_comments",(function(e,t,n){var r,i=d;return null==t&&(t="(string)"),null==n&&(n=1),i=this.$default_parser(),r=this.$setup_source_buffer(t,n,e,i.$default_encoding()),i.$parse_with_comments(r)}),-2),r(h,"$parse_file",(function(e){return this.$parse(g("File").$read(e),e)})),r(h,"$parse_file_with_comments",(function(e){return this.$parse_with_comments(g("File").$read(e),e)})),r(h,"$default_parser",(function(){var e=d;return(e=this.$new()).$diagnostics()["$all_errors_are_fatal="](!0),e.$diagnostics()["$ignore_warnings="](!0),e.$diagnostics()["$consumer="](i(this,"lambda",[],(function(e){return null==a.stderr&&(a.stderr=d),null==e&&(e=d),a.stderr.$puts(e.$render())}))),e})),r(h,"$setup_source_buffer",(function(e,t,n,r){var i=d;return n=n.$dup().$force_encoding(r),i=p(g("Source"),"Buffer").$new(e,t),s(this.$name(),"Parser::Ruby18")?i["$raw_source="](n):i["$source="](n),i})),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"),$(h,"$initialize",(function(e){var t=this;return null==e&&(e=p(p(g("Parser"),"Builders"),"Default").$new()),t.diagnostics=p(g("Diagnostic"),"Engine").$new(),t.static_env=g("StaticEnvironment").$new(),t.context=g("Context").$new(),t.max_numparam_stack=g("MaxNumparamStack").$new(),t.current_arg_stack=g("CurrentArgStack").$new(),t.pattern_variables=g("VariablesStack").$new(),t.pattern_hash_keys=g("VariablesStack").$new(),t.lexer=g("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=d,o(p(t.$class(),"Racc_debug_parser"))&&o(g("ENV")["$[]"]("RACC_DEBUG"))&&(t.yydebug=!0),t.$reset()}),-1),$(h,"$reset",(function(){var e=this;return e.source_buffer=d,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})),$(h,"$parse",(function(e){var t,n=this,r=d;return function(){try{return n.lexer["$source_buffer="](e),n.source_buffer=e,o(r=n.$do_parse())?r:d}finally{n.source_buffer=d,t=[d],i(n.lexer,"source_buffer=",t)}}()})),$(h,"$parse_with_comments",(function(e){var t,n=this;return function(){try{return n.lexer["$comments="]([]),[n.$parse(e),n.lexer.$comments()]}finally{t=[d],i(n.lexer,"comments=",t)}}()})),$(h,"$tokenize",(function(t,n){var r,a=this,s=d;return null==n&&(n=!1),function(){try{a.lexer["$tokens="]([]),a.lexer["$comments="]([]);try{s=a.$parse(t)}catch(t){if(!e.rescue(t,[p(g("Parser"),"SyntaxError")]))throw t;try{u(n)&&a.$raise()}finally{e.pop_exception(t)}}return[s,a.lexer.$comments(),a.lexer.$tokens()]}finally{r=[d],i(a.lexer,"tokens=",r),r[r.length-1],r=[d],i(a.lexer,"comments=",r),r[r.length-1]}}()}),-2),h.$private(),$(h,"$next_token",(function(){var e;return e=this.lexer.$advance(),this.last_token=e,e})),$(h,"$check_kwarg_name",(function(e){var t;return l(/^[a-z_]/,t=e["$[]"](0))?d:l(/^[A-Z]/,t)?this.$diagnostic("error","argument_const",d,e):d})),$(h,"$diagnostic",(function(e,t,n,r,a){var o,$,u;return null==a&&(a=[]),o=c(r),null==o[0]?d:o[0],$=null==o[1]?d:o[1],u=i(a,"map",[],(function(e){var t;return null==e&&(e=d),t=c(e),null==t[0]?d:t[0],null==t[1]?d:t[1]})),this.diagnostics.$process(g("Diagnostic").$new(e,t,n,$,u)),s(e,"error")?this.$yyerror():d}),-5),$(h,"$on_error",(function(e,t,n){var r,i,a;return i=this.$token_to_str(e),null==(r=c(t))[0]?d:r[0],a=null==r[1]?d:r[1],this.diagnostics.$process(g("Diagnostic").$new("error","unexpected_token",new Map([["token",i]]),a))}))}(h[0],p(m("Racc"),"Parser"),h)}(_[0],_)},Opal.modules["parser/rewriter"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.const_set,a=e.slice,s=e.send2,o=e.find_super,$=e.to_a,u=[],l=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(u,_){var d=[t(u,"Parser")].concat(_),p=e.$r(d);return function(t,u,_){var d=n(t,u,"Rewriter"),p=[d].concat(_),f=e.$r(p);return d.$$prototype.source_rewriter=l,r(d,"$rewrite",(function(e,t){var n=this;return n.source_rewriter=c(f("Source"),"Rewriter").$new(e),n.$process(t),n.source_rewriter.$process()})),r(d,"$assignment?",(function(e){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]["$include?"](e.$type())})),r(d,"$remove",(function(e){return this.source_rewriter.$remove(e)})),r(d,"$wrap",(function(e,t,n){return this.source_rewriter.$wrap(e,t,n)})),r(d,"$insert_before",(function(e,t){return this.source_rewriter.$insert_before(e,t)})),r(d,"$insert_after",(function(e,t){return this.source_rewriter.$insert_after(e,t)})),r(d,"$replace",(function(e,t){return this.source_rewriter.$replace(e,t)})),i(p[0],"DEPRECATION_WARNING",["Parser::Rewriter is deprecated.","Please update your code to use Parser::TreeRewriter instead"].$join("\n").$freeze()),d.$extend(f("Deprecation")),r(d,"$initialize",(function e(t){var n,r=e.$$p||l,i=this;return e.$$p=null,n=a(arguments),i.$class().$warn_of_deprecation(),c(f("Source"),"Rewriter")["$warned_of_deprecation="](!0),s(i,o(i,"initialize",e,!1,!0),"initialize",$(n),r)}),-1)}(d[0],c(c(p("Parser"),"AST"),"Processor"),d)}(u[0],u)},Opal.modules["parser/tree_rewriter"]=function(e){var t=e.module,n=e.klass,r=e.ensure_kwargs,i=e.kwrestargs,a=e.def,s=[],o=e.nil,$=e.$$$;return e.add_stubs("new,process,include?,type,remove,wrap,insert_before,insert_after,replace"),function(s,u){var l=[t(s,"Parser")].concat(u),c=e.$r(l);return function(t,s,u){var l=n(t,s,"TreeRewriter"),c=[l].concat(u),_=e.$r(c);return l.$$prototype.source_rewriter=o,a(l,"$rewrite",(function(t,n,a){var s,o=this;return a=r(a),s=i(a,{}),o.source_rewriter=$($(_("Parser"),"Source"),"TreeRewriter").$new(t,e.to_hash(s)),o.$process(n),o.source_rewriter.$process()}),-3),a(l,"$assignment?",(function(e){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]["$include?"](e.$type())})),a(l,"$remove",(function(e){return this.source_rewriter.$remove(e)})),a(l,"$wrap",(function(e,t,n){return this.source_rewriter.$wrap(e,t,n)})),a(l,"$insert_before",(function(e,t){return this.source_rewriter.$insert_before(e,t)})),a(l,"$insert_after",(function(e,t){return this.source_rewriter.$insert_after(e,t)})),a(l,"$replace",(function(e,t){return this.source_rewriter.$replace(e,t)}))}(l[0],$($(c("Parser"),"AST"),"Processor"),l)}(s[0],s)},Opal.modules.parser=function(e){var t=e.truthy,n=e.module,r=e.eqeq,i=e.top,a=[],s=e.$r(a),o=(e.nil,e.$$$);return e.add_stubs("=~,raise,require,=="),t(s("RUBY_VERSION")["$=~"](/^1\.[89]\./))&&(i.$require("./parser.rb/../parser/version"),i.$raise(s("LoadError"),"parser v"+o(s("Parser"),"VERSION")+" cannot run on Ruby "+s("RUBY_VERSION")+".\nPlease upgrade to Ruby 2.0.0 or higher, or use an older version of the parser gem.\n")),i.$require("set"),i.$require("racc/parser"),i.$require("ast"),function(t,i){var a=n(t,"Parser"),s=[a].concat(i),o=e.$r(s);return a.$require("./parser.rb/../parser/version"),a.$require("./parser.rb/../parser/messages"),a.$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")}(s[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")}(s[0]),a.$require("./parser.rb/../parser/syntax_error"),a.$require("./parser.rb/../parser/clobbering_error"),a.$require("./parser.rb/../parser/unknown_encoding_in_magic_comment_error"),a.$require("./parser.rb/../parser/diagnostic"),a.$require("./parser.rb/../parser/diagnostic/engine"),a.$require("./parser.rb/../parser/static_environment"),r(o("RUBY_ENGINE"),"truffleruby")?a.$require("./parser.rb/../parser/lexer-F0"):a.$require("./parser.rb/../parser/lexer-F1"),a.$require("./parser.rb/../parser/lexer-strings"),a.$require("./parser.rb/../parser/lexer/literal"),a.$require("./parser.rb/../parser/lexer/stack_state"),a.$require("./parser.rb/../parser/lexer/dedenter"),function(e){n(e,"Builders").$require("./parser.rb/../parser/builders/default")}(s[0]),a.$require("./parser.rb/../parser/context"),a.$require("./parser.rb/../parser/max_numparam_stack"),a.$require("./parser.rb/../parser/current_arg_stack"),a.$require("./parser.rb/../parser/variables_stack"),a.$require("./parser.rb/../parser/base"),a.$require("./parser.rb/../parser/rewriter"),a.$require("./parser.rb/../parser/tree_rewriter")}(a[0],a)},Opal.modules["parser/ruby32"]=function(e){var t=e.module,n=e.klass,r=e.return_val,i=e.def,a=e.truthy,s=e.not,o=e.send,$=e.rb_gt,u=e.thrower,l=e.hash_rehash,c=e.const_set,_=e.to_a,d=e.to_ary,p=e.eqeq,f=e.slice,h=e.top,m=[],g=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,m){var b=[t(h,"Parser")].concat(m),y=e.$r(b);return function(t,h,m){var b,y,w,x,k,G,E,S,O,M,A=n(t,h,"Ruby32"),N=[A].concat(m),z=e.$r(N),D=A.$$prototype;return D.static_env=D.lexer=D.max_numparam_stack=D.context=D.current_arg_stack=D.builder=D.pattern_variables=D.pattern_hash_keys=D.last_token=g,i(A,"$version",r(32)),i(A,"$default_encoding",(function(){return v(z("Encoding"),"UTF_8")})),i(A,"$endless_method_name",(function(e){return s(["===","==","!=","<=",">="]["$include?"](e["$[]"](0)))&&a(e["$[]"](0)["$end_with?"]("="))?this.$diagnostic("error","endless_setter",g,e):g})),i(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]]))})),i(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()})),i(A,"$try_declare_numparam",(function(e){var t=this,n=g,r=g,i=g;return n=e.$children()["$[]"](0),!!(a(n["$=~"](/^_[1-9]$/))&&s(t.$static_env()["$declared?"](n))&&a(t.context["$in_dynamic_block?"]()))&&(r=e.$loc().$expression(),a(t.$max_numparam_stack()["$has_ordinary_params?"]())&&t.$diagnostic("error","ordinary_param_defined",g,[g,r]),(i=t.$max_numparam_stack().$stack().$dup()).$pop(),function(){try{var e=u("break");return o(i,"reverse_each",[],(function t(n){var i=null==t.$$s?this:t.$$s,s=g;if(null==n&&(n=g),!a(n["$[]"]("static")))return s=$(n["$[]"]("value"),0),a(s)?i.$diagnostic("error","numparam_used_in_outer_scope",g,[g,r]):g;e.$throw(g,t.$$is_lambda)}),{$$s:t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),t.$static_env().$declare(n),t.$max_numparam_stack().$register(n["$[]"](1).$to_i()),!0)})),b=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"),y=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,"),x=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"),k=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"),G=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"),E=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"),S=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"),O=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,M=l(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,c(N[0],"Racc_arg",[b,y,x,w,k,G,S,E,147,O,M,1234,741,true]),a(z("Ractor","skip_raise")?"constant":g)&&z("Ractor").$make_shareable(z("Racc_arg")),c(N[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")),a(z("Ractor","skip_raise")?"constant":g)&&z("Ractor").$make_shareable(z("Racc_token_to_s_table")),c(N[0],"Racc_debug_parser",!1),i(A,"$_reduce_1",(function(e,t,n){return this.current_arg_stack.$push(g),this.max_numparam_stack.$push(new Map([["static",!0]])),n})),i(A,"$_reduce_2",(function(e,t,n){return n=e["$[]"](1),this.current_arg_stack.$pop(),this.max_numparam_stack.$pop(),n})),i(A,"$_reduce_3",(function(e,t,n){return this.builder.$compstmt(e["$[]"](0))})),i(A,"$_reduce_4",(function(e,t,n){return[]})),i(A,"$_reduce_5",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_6",(function(e,t,n){return e["$[]"](0)["$<<"](e["$[]"](2))})),i(A,"$_reduce_7",(function(e,t,n){return[e["$[]"](1)]})),i(A,"$_reduce_9",(function(e,t,n){return o(this.builder,"preexe",[e["$[]"](0)].concat(_(e["$[]"](1))))})),i(A,"$_reduce_10",(function(e,t,n){return e})),i(A,"$_reduce_11",(function(e,t,n){var r,i,o,$,u,l=g,c=g;return l=e["$[]"](1),i=e["$[]"](2),c=null==(r=d(i))[0]?g:r[0],o=null==r[1]?g:r[1],i=e["$[]"](3),$=null==(r=d(i))[0]?g:r[0],u=null==r[1]?g:r[1],a(l["$empty?"]())&&s(c["$nil?"]())&&this.$diagnostic("error","useless_else",g,c),this.builder.$begin_body(e["$[]"](0),l,c,o,$,u)})),i(A,"$_reduce_12",(function(e,t,n){return this.builder.$compstmt(e["$[]"](0))})),i(A,"$_reduce_13",(function(e,t,n){return[]})),i(A,"$_reduce_14",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_15",(function(e,t,n){return e["$[]"](0)["$<<"](e["$[]"](2))})),i(A,"$_reduce_16",(function(e,t,n){return[e["$[]"](1)]})),i(A,"$_reduce_18",(function(e,t,n){return this.$diagnostic("error","begin_in_method",g,e["$[]"](0)),n})),i(A,"$_reduce_19",(function(e,t,n){return this.lexer["$state="]("expr_fname"),n})),i(A,"$_reduce_20",(function(e,t,n){return this.builder.$alias(e["$[]"](0),e["$[]"](1),e["$[]"](3))})),i(A,"$_reduce_21",(function(e,t,n){var r=this;return r.builder.$alias(e["$[]"](0),r.builder.$gvar(e["$[]"](1)),r.builder.$gvar(e["$[]"](2)))})),i(A,"$_reduce_22",(function(e,t,n){var r=this;return r.builder.$alias(e["$[]"](0),r.builder.$gvar(e["$[]"](1)),r.builder.$back_ref(e["$[]"](2)))})),i(A,"$_reduce_23",(function(e,t,n){return this.$diagnostic("error","nth_ref_alias",g,e["$[]"](2)),n})),i(A,"$_reduce_24",(function(e,t,n){return this.builder.$undef_method(e["$[]"](0),e["$[]"](1))})),i(A,"$_reduce_25",(function(e,t,n){return this.builder.$condition_mod(e["$[]"](0),g,e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_26",(function(e,t,n){return this.builder.$condition_mod(g,e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_27",(function(e,t,n){return this.builder.$loop_mod("while",e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_28",(function(e,t,n){return this.builder.$loop_mod("until",e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_29",(function(e,t,n){var r;return r=this.builder.$rescue_body(e["$[]"](1),g,g,g,g,e["$[]"](2)),this.builder.$begin_body(e["$[]"](0),[r])})),i(A,"$_reduce_30",(function(e,t,n){return this.builder.$postexe(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))})),i(A,"$_reduce_32",(function(e,t,n){return this.builder.$multi_assign(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_33",(function(e,t,n){return this.builder.$assign(e["$[]"](0),e["$[]"](1),this.builder.$array(g,e["$[]"](2),g))})),i(A,"$_reduce_34",(function(e,t,n){var r,i,a=this;return r=a.builder.$rescue_body(e["$[]"](3),g,g,g,g,e["$[]"](4)),i=a.builder.$begin_body(e["$[]"](2),[r]),a.builder.$multi_assign(e["$[]"](0),e["$[]"](1),i)})),i(A,"$_reduce_35",(function(e,t,n){return this.builder.$multi_assign(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_37",(function(e,t,n){return this.builder.$assign(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_38",(function(e,t,n){return this.builder.$op_assign(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_39",(function(e,t,n){return this.builder.$op_assign(this.builder.$index(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3)),e["$[]"](4),e["$[]"](5))})),i(A,"$_reduce_40",(function(e,t,n){return this.builder.$op_assign(this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2)),e["$[]"](3),e["$[]"](4))})),i(A,"$_reduce_41",(function(e,t,n){return this.builder.$op_assign(this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2)),e["$[]"](3),e["$[]"](4))})),i(A,"$_reduce_42",(function(e,t,n){var r,i=this;return r=i.builder.$const_op_assignable(i.builder.$const_fetch(e["$[]"](0),e["$[]"](1),e["$[]"](2))),i.builder.$op_assign(r,e["$[]"](3),e["$[]"](4))})),i(A,"$_reduce_43",(function(e,t,n){return this.builder.$op_assign(this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2)),e["$[]"](3),e["$[]"](4))})),i(A,"$_reduce_44",(function(e,t,n){var r,i,a,s,o,$=this,u=g;return i=e["$[]"](0),s=null==(r=d(i))[0]?g:r[0],o=null==(a=d(null==r[1]?g:r[1]))[0]?g:a[0],u=null==a[1]?g:a[1],$.$endless_method_name(o),n=$.builder.$def_endless_method(s,o,e["$[]"](1),e["$[]"](2),e["$[]"](3)),$.$local_pop(),$.current_arg_stack.$pop(),$.context["$in_def="](u.$in_def()),n})),i(A,"$_reduce_45",(function(e,t,n){var r,i,a,s,o,$,u,l=this,c=g;return i=e["$[]"](0),s=null==(r=d(i))[0]?g:r[0],o=null==(a=d(null==r[1]?g:r[1]))[0]?g:a[0],c=null==a[1]?g:a[1],l.$endless_method_name(o),$=l.builder.$rescue_body(e["$[]"](4),g,g,g,g,e["$[]"](5)),u=l.builder.$begin_body(e["$[]"](3),[$]),n=l.builder.$def_endless_method(s,o,e["$[]"](1),e["$[]"](2),u),l.$local_pop(),l.current_arg_stack.$pop(),l.context["$in_def="](c.$in_def()),n})),i(A,"$_reduce_46",(function(e,t,n){var r,i,a,s,o,$,u,l=this,c=g;return i=e["$[]"](0),s=null==(r=d(i))[0]?g:r[0],o=null==r[1]?g:r[1],$=null==r[2]?g:r[2],u=null==(a=d(null==r[3]?g:r[3]))[0]?g:a[0],c=null==a[1]?g:a[1],l.$endless_method_name(u),n=l.builder.$def_endless_singleton(s,o,$,u,e["$[]"](1),e["$[]"](2),e["$[]"](3)),l.$local_pop(),l.current_arg_stack.$pop(),l.context["$in_def="](c.$in_def()),n})),i(A,"$_reduce_47",(function(e,t,n){var r,i,a,s,o,$,u,l,c,_=this,p=g;return i=e["$[]"](0),s=null==(r=d(i))[0]?g:r[0],o=null==r[1]?g:r[1],$=null==r[2]?g:r[2],u=null==(a=d(null==r[3]?g:r[3]))[0]?g:a[0],p=null==a[1]?g:a[1],_.$endless_method_name(u),l=_.builder.$rescue_body(e["$[]"](4),g,g,g,g,e["$[]"](5)),c=_.builder.$begin_body(e["$[]"](3),[l]),n=_.builder.$def_endless_singleton(s,o,$,u,e["$[]"](1),e["$[]"](2),c),_.$local_pop(),_.current_arg_stack.$pop(),_.context["$in_def="](p.$in_def()),n})),i(A,"$_reduce_48",(function(e,t,n){return this.builder.$op_assign(e["$[]"](0),e["$[]"](1),e["$[]"](2)),n})),i(A,"$_reduce_50",(function(e,t,n){var r;return r=this.builder.$rescue_body(e["$[]"](1),g,g,g,g,e["$[]"](2)),this.builder.$begin_body(e["$[]"](0),[r])})),i(A,"$_reduce_53",(function(e,t,n){return this.builder.$logical_op("and",e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_54",(function(e,t,n){return this.builder.$logical_op("or",e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_55",(function(e,t,n){return this.builder.$not_op(e["$[]"](0),g,e["$[]"](2),g)})),i(A,"$_reduce_56",(function(e,t,n){return this.builder.$not_op(e["$[]"](0),g,e["$[]"](1),g)})),i(A,"$_reduce_57",(function(e,t,n){var r=this;return r.lexer["$state="]("expr_beg"),r.lexer["$command_start="](!1),r.pattern_variables.$push(),r.pattern_hash_keys.$push(),n=r.context.$in_kwarg(),r.context["$in_kwarg="](!0),n})),i(A,"$_reduce_58",(function(e,t,n){var r=this;return r.pattern_variables.$pop(),r.pattern_hash_keys.$pop(),r.context["$in_kwarg="](e["$[]"](2)),r.builder.$match_pattern(e["$[]"](0),e["$[]"](1),e["$[]"](3))})),i(A,"$_reduce_59",(function(e,t,n){var r=this;return r.lexer["$state="]("expr_beg"),r.lexer["$command_start="](!1),r.pattern_variables.$push(),r.pattern_hash_keys.$push(),n=r.context.$in_kwarg(),r.context["$in_kwarg="](!0),n})),i(A,"$_reduce_60",(function(e,t,n){var r=this;return r.pattern_variables.$pop(),r.pattern_hash_keys.$pop(),r.context["$in_kwarg="](e["$[]"](2)),r.builder.$match_pattern_p(e["$[]"](0),e["$[]"](1),e["$[]"](3))})),i(A,"$_reduce_63",(function(e,t,n){return this.lexer.$cond().$push(!0),n})),i(A,"$_reduce_64",(function(e,t,n){return this.lexer.$cond().$pop(),[e["$[]"](1),e["$[]"](2)]})),i(A,"$_reduce_65",(function(e,t,n){var r=this;return r.$local_push(),r.current_arg_stack.$push(g),n=[e["$[]"](0),r.context.$dup()],r.context["$in_def="](!0),n})),i(A,"$_reduce_66",(function(e,t,n){return[e["$[]"](0),e["$[]"](1)]})),i(A,"$_reduce_67",(function(e,t,n){return this.lexer["$state="]("expr_fname"),this.context["$in_argdef="](!0),n})),i(A,"$_reduce_68",(function(e,t,n){return[e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](4)]})),i(A,"$_reduce_72",(function(e,t,n){return this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),g,e["$[]"](3),g)})),i(A,"$_reduce_73",(function(e,t,n){return n=this.context.$dup(),this.context["$in_block="](!0),n})),i(A,"$_reduce_74",(function(e,t,n){return this.context["$in_block="](e["$[]"](1).$in_block()),[e["$[]"](0)].concat(_(e["$[]"](2))).concat([e["$[]"](3)])})),i(A,"$_reduce_76",(function(e,t,n){return this.builder.$call_method(g,g,e["$[]"](0),g,e["$[]"](1),g)})),i(A,"$_reduce_77",(function(e,t,n){var r,i,a,s,o,$,u;return a=this.builder.$call_method(g,g,e["$[]"](0),g,e["$[]"](1),g),i=e["$[]"](2),s=null==(r=d(i))[0]?g:r[0],o=null==r[1]?g:r[1],$=null==r[2]?g:r[2],u=null==r[3]?g:r[3],this.builder.$block(a,s,o,$,u)})),i(A,"$_reduce_78",(function(e,t,n){return this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),g,e["$[]"](3),g)})),i(A,"$_reduce_79",(function(e,t,n){var r,i,a,s,o,$,u;return a=this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),g,e["$[]"](3),g),i=e["$[]"](4),s=null==(r=d(i))[0]?g:r[0],o=null==r[1]?g:r[1],$=null==r[2]?g:r[2],u=null==r[3]?g:r[3],this.builder.$block(a,s,o,$,u)})),i(A,"$_reduce_80",(function(e,t,n){return this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),g,e["$[]"](3),g)})),i(A,"$_reduce_81",(function(e,t,n){var r,i,a,s,o,$,u;return a=this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),g,e["$[]"](3),g),i=e["$[]"](4),s=null==(r=d(i))[0]?g:r[0],o=null==r[1]?g:r[1],$=null==r[2]?g:r[2],u=null==r[3]?g:r[3],this.builder.$block(a,s,o,$,u)})),i(A,"$_reduce_82",(function(e,t,n){return this.builder.$keyword_cmd("super",e["$[]"](0),g,e["$[]"](1),g)})),i(A,"$_reduce_83",(function(e,t,n){return this.builder.$keyword_cmd("yield",e["$[]"](0),g,e["$[]"](1),g)})),i(A,"$_reduce_84",(function(e,t,n){return this.builder.$keyword_cmd("return",e["$[]"](0),g,e["$[]"](1),g)})),i(A,"$_reduce_85",(function(e,t,n){return this.builder.$keyword_cmd("break",e["$[]"](0),g,e["$[]"](1),g)})),i(A,"$_reduce_86",(function(e,t,n){return this.builder.$keyword_cmd("next",e["$[]"](0),g,e["$[]"](1),g)})),i(A,"$_reduce_87",(function(e,t,n){return this.builder.$multi_lhs(g,e["$[]"](0),g)})),i(A,"$_reduce_88",(function(e,t,n){return this.builder.$begin(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_89",(function(e,t,n){return this.builder.$multi_lhs(g,e["$[]"](0),g)})),i(A,"$_reduce_90",(function(e,t,n){return this.builder.$multi_lhs(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_92",(function(e,t,n){return e["$[]"](0).$push(e["$[]"](1))})),i(A,"$_reduce_93",(function(e,t,n){return e["$[]"](0).$push(this.builder.$splat(e["$[]"](1),e["$[]"](2)))})),i(A,"$_reduce_94",(function(e,t,n){return e["$[]"](0).$push(this.builder.$splat(e["$[]"](1),e["$[]"](2))).$concat(e["$[]"](4))})),i(A,"$_reduce_95",(function(e,t,n){return e["$[]"](0).$push(this.builder.$splat(e["$[]"](1)))})),i(A,"$_reduce_96",(function(e,t,n){return e["$[]"](0).$push(this.builder.$splat(e["$[]"](1))).$concat(e["$[]"](3))})),i(A,"$_reduce_97",(function(e,t,n){return[this.builder.$splat(e["$[]"](0),e["$[]"](1))]})),i(A,"$_reduce_98",(function(e,t,n){return[this.builder.$splat(e["$[]"](0),e["$[]"](1))].concat(_(e["$[]"](3)))})),i(A,"$_reduce_99",(function(e,t,n){return[this.builder.$splat(e["$[]"](0))]})),i(A,"$_reduce_100",(function(e,t,n){return[this.builder.$splat(e["$[]"](0))].concat(_(e["$[]"](2)))})),i(A,"$_reduce_102",(function(e,t,n){return this.builder.$begin(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_103",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_104",(function(e,t,n){return e["$[]"](0)["$<<"](e["$[]"](1))})),i(A,"$_reduce_105",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_106",(function(e,t,n){return e["$[]"](0)["$<<"](e["$[]"](2))})),i(A,"$_reduce_107",(function(e,t,n){return this.builder.$assignable(e["$[]"](0))})),i(A,"$_reduce_108",(function(e,t,n){return this.builder.$assignable(e["$[]"](0))})),i(A,"$_reduce_109",(function(e,t,n){return this.builder.$index_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))})),i(A,"$_reduce_110",(function(e,t,n){return p(e["$[]"](1)["$[]"](0),"anddot")&&this.$diagnostic("error","csend_in_lhs_of_masgn",g,e["$[]"](1)),this.builder.$attr_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_111",(function(e,t,n){return this.builder.$attr_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_112",(function(e,t,n){return p(e["$[]"](1)["$[]"](0),"anddot")&&this.$diagnostic("error","csend_in_lhs_of_masgn",g,e["$[]"](1)),this.builder.$attr_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_113",(function(e,t,n){return this.builder.$assignable(this.builder.$const_fetch(e["$[]"](0),e["$[]"](1),e["$[]"](2)))})),i(A,"$_reduce_114",(function(e,t,n){return this.builder.$assignable(this.builder.$const_global(e["$[]"](0),e["$[]"](1)))})),i(A,"$_reduce_115",(function(e,t,n){return this.builder.$assignable(e["$[]"](0))})),i(A,"$_reduce_116",(function(e,t,n){return this.builder.$assignable(e["$[]"](0))})),i(A,"$_reduce_117",(function(e,t,n){return this.builder.$assignable(e["$[]"](0))})),i(A,"$_reduce_118",(function(e,t,n){return this.builder.$index_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))})),i(A,"$_reduce_119",(function(e,t,n){return this.builder.$attr_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_120",(function(e,t,n){return this.builder.$attr_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_121",(function(e,t,n){return this.builder.$attr_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_122",(function(e,t,n){return this.builder.$assignable(this.builder.$const_fetch(e["$[]"](0),e["$[]"](1),e["$[]"](2)))})),i(A,"$_reduce_123",(function(e,t,n){return this.builder.$assignable(this.builder.$const_global(e["$[]"](0),e["$[]"](1)))})),i(A,"$_reduce_124",(function(e,t,n){return this.builder.$assignable(e["$[]"](0))})),i(A,"$_reduce_125",(function(e,t,n){return this.$diagnostic("error","module_name_const",g,e["$[]"](0)),n})),i(A,"$_reduce_127",(function(e,t,n){return this.builder.$const_global(e["$[]"](0),e["$[]"](1))})),i(A,"$_reduce_128",(function(e,t,n){return this.builder.$const(e["$[]"](0))})),i(A,"$_reduce_129",(function(e,t,n){return this.builder.$const_fetch(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_135",(function(e,t,n){return this.builder.$symbol_internal(e["$[]"](0))})),i(A,"$_reduce_137",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_138",(function(e,t,n){return this.lexer["$state="]("expr_fname"),n})),i(A,"$_reduce_139",(function(e,t,n){return e["$[]"](0)["$<<"](e["$[]"](3))})),i(A,"$_reduce_211",(function(e,t,n){return this.builder.$assign(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_212",(function(e,t,n){return this.builder.$op_assign(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_213",(function(e,t,n){return this.builder.$op_assign(this.builder.$index(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3)),e["$[]"](4),e["$[]"](5))})),i(A,"$_reduce_214",(function(e,t,n){return this.builder.$op_assign(this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2)),e["$[]"](3),e["$[]"](4))})),i(A,"$_reduce_215",(function(e,t,n){return this.builder.$op_assign(this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2)),e["$[]"](3),e["$[]"](4))})),i(A,"$_reduce_216",(function(e,t,n){return this.builder.$op_assign(this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2)),e["$[]"](3),e["$[]"](4))})),i(A,"$_reduce_217",(function(e,t,n){var r,i=this;return r=i.builder.$const_op_assignable(i.builder.$const_fetch(e["$[]"](0),e["$[]"](1),e["$[]"](2))),i.builder.$op_assign(r,e["$[]"](3),e["$[]"](4))})),i(A,"$_reduce_218",(function(e,t,n){var r,i=this;return r=i.builder.$const_op_assignable(i.builder.$const_global(e["$[]"](0),e["$[]"](1))),i.builder.$op_assign(r,e["$[]"](2),e["$[]"](3))})),i(A,"$_reduce_219",(function(e,t,n){return this.builder.$op_assign(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_220",(function(e,t,n){return this.builder.$range_inclusive(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_221",(function(e,t,n){return this.builder.$range_exclusive(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_222",(function(e,t,n){return this.builder.$range_inclusive(e["$[]"](0),e["$[]"](1),g)})),i(A,"$_reduce_223",(function(e,t,n){return this.builder.$range_exclusive(e["$[]"](0),e["$[]"](1),g)})),i(A,"$_reduce_224",(function(e,t,n){return this.builder.$range_inclusive(g,e["$[]"](0),e["$[]"](1))})),i(A,"$_reduce_225",(function(e,t,n){return this.builder.$range_exclusive(g,e["$[]"](0),e["$[]"](1))})),i(A,"$_reduce_226",(function(e,t,n){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_227",(function(e,t,n){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_228",(function(e,t,n){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_229",(function(e,t,n){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_230",(function(e,t,n){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_231",(function(e,t,n){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_232",(function(e,t,n){return this.builder.$unary_op(e["$[]"](0),this.builder.$binary_op(e["$[]"](1),e["$[]"](2),e["$[]"](3)))})),i(A,"$_reduce_233",(function(e,t,n){return this.builder.$unary_op(e["$[]"](0),e["$[]"](1))})),i(A,"$_reduce_234",(function(e,t,n){return this.builder.$unary_op(e["$[]"](0),e["$[]"](1))})),i(A,"$_reduce_235",(function(e,t,n){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_236",(function(e,t,n){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_237",(function(e,t,n){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_238",(function(e,t,n){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_240",(function(e,t,n){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_241",(function(e,t,n){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_242",(function(e,t,n){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_243",(function(e,t,n){return this.builder.$match_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_244",(function(e,t,n){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_245",(function(e,t,n){return this.builder.$not_op(e["$[]"](0),g,e["$[]"](1),g)})),i(A,"$_reduce_246",(function(e,t,n){return this.builder.$unary_op(e["$[]"](0),e["$[]"](1))})),i(A,"$_reduce_247",(function(e,t,n){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_248",(function(e,t,n){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_249",(function(e,t,n){return this.builder.$logical_op("and",e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_250",(function(e,t,n){return this.builder.$logical_op("or",e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_251",(function(e,t,n){return this.context["$in_defined="](!0),n})),i(A,"$_reduce_252",(function(e,t,n){return this.context["$in_defined="](!1),this.builder.$keyword_cmd("defined?",e["$[]"](0),g,[e["$[]"](3)],g)})),i(A,"$_reduce_253",(function(e,t,n){return this.builder.$ternary(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](4),e["$[]"](5))})),i(A,"$_reduce_254",(function(e,t,n){var r,i,a,s,o,$=this,u=g;return i=e["$[]"](0),s=null==(r=d(i))[0]?g:r[0],o=null==(a=d(null==r[1]?g:r[1]))[0]?g:a[0],u=null==a[1]?g:a[1],$.$endless_method_name(o),n=$.builder.$def_endless_method(s,o,e["$[]"](1),e["$[]"](2),e["$[]"](3)),$.$local_pop(),$.current_arg_stack.$pop(),$.context["$in_def="](u.$in_def()),n})),i(A,"$_reduce_255",(function(e,t,n){var r,i,a,s,o,$,u,l=this,c=g;return i=e["$[]"](0),s=null==(r=d(i))[0]?g:r[0],o=null==(a=d(null==r[1]?g:r[1]))[0]?g:a[0],c=null==a[1]?g:a[1],l.$endless_method_name(o),$=l.builder.$rescue_body(e["$[]"](4),g,g,g,g,e["$[]"](5)),u=l.builder.$begin_body(e["$[]"](3),[$]),n=l.builder.$def_endless_method(s,o,e["$[]"](1),e["$[]"](2),u),l.$local_pop(),l.current_arg_stack.$pop(),l.context["$in_def="](c.$in_def()),n})),i(A,"$_reduce_256",(function(e,t,n){var r,i,a,s,o,$,u,l=this,c=g;return i=e["$[]"](0),s=null==(r=d(i))[0]?g:r[0],o=null==r[1]?g:r[1],$=null==r[2]?g:r[2],u=null==(a=d(null==r[3]?g:r[3]))[0]?g:a[0],c=null==a[1]?g:a[1],l.$endless_method_name(u),n=l.builder.$def_endless_singleton(s,o,$,u,e["$[]"](1),e["$[]"](2),e["$[]"](3)),l.$local_pop(),l.current_arg_stack.$pop(),l.context["$in_def="](c.$in_def()),n})),i(A,"$_reduce_257",(function(e,t,n){var r,i,a,s,o,$,u,l,c,_=this,p=g;return i=e["$[]"](0),s=null==(r=d(i))[0]?g:r[0],o=null==r[1]?g:r[1],$=null==r[2]?g:r[2],u=null==(a=d(null==r[3]?g:r[3]))[0]?g:a[0],p=null==a[1]?g:a[1],_.$endless_method_name(u),l=_.builder.$rescue_body(e["$[]"](4),g,g,g,g,e["$[]"](5)),c=_.builder.$begin_body(e["$[]"](3),[l]),n=_.builder.$def_endless_singleton(s,o,$,u,e["$[]"](1),e["$[]"](2),c),_.$local_pop(),_.current_arg_stack.$pop(),_.context["$in_def="](p.$in_def()),n})),i(A,"$_reduce_263",(function(e,t,n){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_264",(function(e,t,n){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_268",(function(e,t,n){return e["$[]"](0)["$<<"](this.builder.$associate(g,e["$[]"](2),g))})),i(A,"$_reduce_269",(function(e,t,n){return[this.builder.$associate(g,e["$[]"](0),g)]})),i(A,"$_reduce_271",(function(e,t,n){var r;return r=this.builder.$rescue_body(e["$[]"](1),g,g,g,g,e["$[]"](2)),this.builder.$begin_body(e["$[]"](0),[r])})),i(A,"$_reduce_272",(function(e,t,n){return e})),i(A,"$_reduce_273",(function(e,t,n){var r=this;return a(r.static_env["$declared_forward_args?"]())||r.$diagnostic("error","unexpected_token",new Map([["token","tBDOT3"]]),e["$[]"](3)),[e["$[]"](0),[].concat(_(e["$[]"](1))).concat([r.builder.$forwarded_args(e["$[]"](3))]),e["$[]"](4)]})),i(A,"$_reduce_274",(function(e,t,n){var r=this;return a(r.static_env["$declared_forward_args?"]())||r.$diagnostic("error","unexpected_token",new Map([["token","tBDOT3"]]),e["$[]"](1)),[e["$[]"](0),[r.builder.$forwarded_args(e["$[]"](1))],e["$[]"](2)]})),i(A,"$_reduce_275",(function(e,t,n){return[g,[],g]})),i(A,"$_reduce_277",(function(e,t,n){return[]})),i(A,"$_reduce_280",(function(e,t,n){return e["$[]"](0)["$<<"](this.builder.$associate(g,e["$[]"](2),g))})),i(A,"$_reduce_281",(function(e,t,n){return[this.builder.$associate(g,e["$[]"](0),g)]})),i(A,"$_reduce_282",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_283",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](1))})),i(A,"$_reduce_284",(function(e,t,n){return(n=[this.builder.$associate(g,e["$[]"](0),g)]).$concat(e["$[]"](1)),n})),i(A,"$_reduce_285",(function(e,t,n){var r;return r=this.builder.$associate(g,e["$[]"](2),g),(n=e["$[]"](0)["$<<"](r)).$concat(e["$[]"](3)),n})),i(A,"$_reduce_286",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_287",(function(e,t,n){var r,i,s=this,o=g,$=g;return o=s.last_token["$[]"](0),r=a(i=o["$=="]("tLBRACK"))?i:o["$=="]("tLPAREN_ARG"),a(r)?($=s.lexer.$cmdarg().$pop(),s.lexer.$cmdarg().$push(!0),s.lexer.$cmdarg().$push($)):s.lexer.$cmdarg().$push(!0),n})),i(A,"$_reduce_288",(function(e,t,n){var r,i=this,s=g;return r=i.last_token["$[]"](0)["$=="]("tLBRACE_ARG"),a(r)?(s=i.lexer.$cmdarg().$pop(),i.lexer.$cmdarg().$pop(),i.lexer.$cmdarg().$push(s)):i.lexer.$cmdarg().$pop(),e["$[]"](1)})),i(A,"$_reduce_289",(function(e,t,n){return this.builder.$block_pass(e["$[]"](0),e["$[]"](1))})),i(A,"$_reduce_290",(function(e,t,n){var r=this;return s(r.static_env["$declared_anonymous_blockarg?"]())&&r.$diagnostic("error","no_anonymous_blockarg",g,e["$[]"](0)),r.builder.$block_pass(e["$[]"](0),g)})),i(A,"$_reduce_291",(function(e,t,n){return[e["$[]"](1)]})),i(A,"$_reduce_292",(function(e,t,n){return[]})),i(A,"$_reduce_293",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_294",(function(e,t,n){return[this.builder.$splat(e["$[]"](0),e["$[]"](1))]})),i(A,"$_reduce_295",(function(e,t,n){var r=this;return s(r.static_env["$declared_anonymous_restarg?"]())&&r.$diagnostic("error","no_anonymous_restarg",g,e["$[]"](0)),[r.builder.$forwarded_restarg(e["$[]"](0))]})),i(A,"$_reduce_296",(function(e,t,n){return e["$[]"](0)["$<<"](e["$[]"](2))})),i(A,"$_reduce_297",(function(e,t,n){return e["$[]"](0)["$<<"](this.builder.$splat(e["$[]"](2),e["$[]"](3)))})),i(A,"$_reduce_298",(function(e,t,n){var r=this;return s(r.static_env["$declared_anonymous_restarg?"]())&&r.$diagnostic("error","no_anonymous_restarg",g,e["$[]"](2)),e["$[]"](0)["$<<"](r.builder.$forwarded_restarg(e["$[]"](2)))})),i(A,"$_reduce_299",(function(e,t,n){return this.builder.$array(g,e["$[]"](0),g)})),i(A,"$_reduce_301",(function(e,t,n){return e["$[]"](0)["$<<"](e["$[]"](2))})),i(A,"$_reduce_302",(function(e,t,n){return e["$[]"](0)["$<<"](this.builder.$splat(e["$[]"](2),e["$[]"](3)))})),i(A,"$_reduce_303",(function(e,t,n){return[this.builder.$splat(e["$[]"](0),e["$[]"](1))]})),i(A,"$_reduce_314",(function(e,t,n){return this.builder.$call_method(g,g,e["$[]"](0))})),i(A,"$_reduce_315",(function(e,t,n){return this.lexer.$cmdarg().$push(!1),n})),i(A,"$_reduce_316",(function(e,t,n){return this.lexer.$cmdarg().$pop(),this.builder.$begin_keyword(e["$[]"](0),e["$[]"](2),e["$[]"](3))})),i(A,"$_reduce_317",(function(e,t,n){return this.lexer["$state="]("expr_endarg"),n})),i(A,"$_reduce_318",(function(e,t,n){return this.builder.$begin(e["$[]"](0),e["$[]"](1),e["$[]"](3))})),i(A,"$_reduce_319",(function(e,t,n){return this.lexer["$state="]("expr_endarg"),n})),i(A,"$_reduce_320",(function(e,t,n){return this.builder.$begin(e["$[]"](0),g,e["$[]"](3))})),i(A,"$_reduce_321",(function(e,t,n){return this.builder.$begin(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_322",(function(e,t,n){return this.builder.$const_fetch(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_323",(function(e,t,n){return this.builder.$const_global(e["$[]"](0),e["$[]"](1))})),i(A,"$_reduce_324",(function(e,t,n){return this.builder.$array(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_325",(function(e,t,n){return this.builder.$associate(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_326",(function(e,t,n){return this.builder.$keyword_cmd("return",e["$[]"](0))})),i(A,"$_reduce_327",(function(e,t,n){return this.builder.$keyword_cmd("yield",e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))})),i(A,"$_reduce_328",(function(e,t,n){return this.builder.$keyword_cmd("yield",e["$[]"](0),e["$[]"](1),[],e["$[]"](2))})),i(A,"$_reduce_329",(function(e,t,n){return this.builder.$keyword_cmd("yield",e["$[]"](0))})),i(A,"$_reduce_330",(function(e,t,n){return this.context["$in_defined="](!0),n})),i(A,"$_reduce_331",(function(e,t,n){return this.context["$in_defined="](!1),this.builder.$keyword_cmd("defined?",e["$[]"](0),e["$[]"](2),[e["$[]"](4)],e["$[]"](5))})),i(A,"$_reduce_332",(function(e,t,n){return this.builder.$not_op(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))})),i(A,"$_reduce_333",(function(e,t,n){return this.builder.$not_op(e["$[]"](0),e["$[]"](1),g,e["$[]"](2))})),i(A,"$_reduce_334",(function(e,t,n){var r,i,a,s,o,$,u;return a=this.builder.$call_method(g,g,e["$[]"](0)),i=e["$[]"](1),s=null==(r=d(i))[0]?g:r[0],o=null==r[1]?g:r[1],$=null==r[2]?g:r[2],u=null==r[3]?g:r[3],this.builder.$block(a,s,o,$,u)})),i(A,"$_reduce_336",(function(e,t,n){var r,i,a,s,o,$;return i=e["$[]"](1),a=null==(r=d(i))[0]?g:r[0],s=null==r[1]?g:r[1],o=null==r[2]?g:r[2],$=null==r[3]?g:r[3],this.builder.$block(e["$[]"](0),a,s,o,$)})),i(A,"$_reduce_338",(function(e,t,n){var r,i,a,s;return i=e["$[]"](4),a=null==(r=d(i))[0]?g:r[0],s=null==r[1]?g:r[1],this.builder.$condition(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3),a,s,e["$[]"](5))})),i(A,"$_reduce_339",(function(e,t,n){var r,i,a,s;return i=e["$[]"](4),a=null==(r=d(i))[0]?g:r[0],s=null==r[1]?g:r[1],this.builder.$condition(e["$[]"](0),e["$[]"](1),e["$[]"](2),s,a,e["$[]"](3),e["$[]"](5))})),i(A,"$_reduce_340",(function(e,t,n){return o(this.builder,"loop",["while",e["$[]"](0)].concat(_(e["$[]"](1))).concat([e["$[]"](2),e["$[]"](3)]))})),i(A,"$_reduce_341",(function(e,t,n){return o(this.builder,"loop",["until",e["$[]"](0)].concat(_(e["$[]"](1))).concat([e["$[]"](2),e["$[]"](3)]))})),i(A,"$_reduce_342",(function(e,t,n){var r,i,a,s,o,$;return i=(r=[].concat(_(e["$[]"](3)))).length-1,s=f(r,0,i=i<0?0:i),o=null==(a=d(null==r[i]?g:r[i]))[0]?g:a[0],$=null==a[1]?g:a[1],this.builder.$case(e["$[]"](0),e["$[]"](1),s,o,$,e["$[]"](4))})),i(A,"$_reduce_343",(function(e,t,n){var r,i,a,s,o,$;return i=(r=[].concat(_(e["$[]"](2)))).length-1,s=f(r,0,i=i<0?0:i),o=null==(a=d(null==r[i]?g:r[i]))[0]?g:a[0],$=null==a[1]?g:a[1],this.builder.$case(e["$[]"](0),g,s,o,$,e["$[]"](3))})),i(A,"$_reduce_344",(function(e,t,n){var r,i,a,s,o,$;return i=(r=[].concat(_(e["$[]"](3)))).length-1,s=f(r,0,i=i<0?0:i),o=null==(a=d(null==r[i]?g:r[i]))[0]?g:a[0],$=null==a[1]?g:a[1],this.builder.$case_match(e["$[]"](0),e["$[]"](1),s,o,$,e["$[]"](4))})),i(A,"$_reduce_345",(function(e,t,n){return o(this.builder,"for",[e["$[]"](0),e["$[]"](1),e["$[]"](2)].concat(_(e["$[]"](3))).concat([e["$[]"](4),e["$[]"](5)]))})),i(A,"$_reduce_346",(function(e,t,n){return this.context["$in_class="](!0),this.$local_push(),n})),i(A,"$_reduce_347",(function(e,t,n){var r,i,s,o,$,u=this,l=g;return i=e["$[]"](0),s=null==(r=d(i))[0]?g:r[0],l=null==r[1]?g:r[1],a(u.context.$in_def())&&u.$diagnostic("error","class_in_def",g,s),i=e["$[]"](2),o=null==(r=d(i))[0]?g:r[0],$=null==r[1]?g:r[1],n=u.builder.$def_class(s,e["$[]"](1),o,$,e["$[]"](4),e["$[]"](5)),u.$local_pop(),u.context["$in_class="](l.$in_class()),n})),i(A,"$_reduce_348",(function(e,t,n){var r=this;return r.context["$in_def="](!1),r.context["$in_class="](!1),r.$local_push(),n})),i(A,"$_reduce_349",(function(e,t,n){var r,i,a,s=this,o=g;return i=e["$[]"](0),a=null==(r=d(i))[0]?g:r[0],o=null==r[1]?g:r[1],n=s.builder.$def_sclass(a,e["$[]"](1),e["$[]"](2),e["$[]"](5),e["$[]"](6)),s.$local_pop(),s.context["$in_def="](o.$in_def()),s.context["$in_class="](o.$in_class()),n})),i(A,"$_reduce_350",(function(e,t,n){return this.context["$in_class="](!0),this.$local_push(),n})),i(A,"$_reduce_351",(function(e,t,n){var r,i,s,o=this,$=g;return i=e["$[]"](0),s=null==(r=d(i))[0]?g:r[0],$=null==r[1]?g:r[1],a(o.context.$in_def())&&o.$diagnostic("error","module_in_def",g,s),n=o.builder.$def_module(s,e["$[]"](1),e["$[]"](3),e["$[]"](4)),o.$local_pop(),o.context["$in_class="]($.$in_class()),n})),i(A,"$_reduce_352",(function(e,t,n){var r,i,a,s,o,$=this,u=g;return i=e["$[]"](0),s=null==(r=d(i))[0]?g:r[0],o=null==(a=d(null==r[1]?g:r[1]))[0]?g:a[0],u=null==a[1]?g:a[1],n=$.builder.$def_method(s,o,e["$[]"](1),e["$[]"](2),e["$[]"](3)),$.$local_pop(),$.current_arg_stack.$pop(),$.context["$in_def="](u.$in_def()),n})),i(A,"$_reduce_353",(function(e,t,n){var r,i,a,s,o,$,u,l=this,c=g;return i=e["$[]"](0),s=null==(r=d(i))[0]?g:r[0],o=null==r[1]?g:r[1],$=null==r[2]?g:r[2],u=null==(a=d(null==r[3]?g:r[3]))[0]?g:a[0],c=null==a[1]?g:a[1],n=l.builder.$def_singleton(s,o,$,u,e["$[]"](1),e["$[]"](2),e["$[]"](3)),l.$local_pop(),l.current_arg_stack.$pop(),l.context["$in_def="](c.$in_def()),n})),i(A,"$_reduce_354",(function(e,t,n){return this.builder.$keyword_cmd("break",e["$[]"](0))})),i(A,"$_reduce_355",(function(e,t,n){return this.builder.$keyword_cmd("next",e["$[]"](0))})),i(A,"$_reduce_356",(function(e,t,n){return this.builder.$keyword_cmd("redo",e["$[]"](0))})),i(A,"$_reduce_357",(function(e,t,n){return this.builder.$keyword_cmd("retry",e["$[]"](0))})),i(A,"$_reduce_359",(function(e,t,n){return[e["$[]"](0),this.context.$dup()]})),i(A,"$_reduce_360",(function(e,t,n){return[e["$[]"](0),this.context.$dup()]})),i(A,"$_reduce_361",(function(e,t,n){return n=e["$[]"](0),this.context["$in_argdef="](!0),n})),i(A,"$_reduce_362",(function(e,t,n){var r=this,i=g;return a(r.context.$in_class())&&s(r.context.$in_def())&&s(a(i=r.$context().$in_block())?i:r.$context().$in_lambda())&&r.$diagnostic("error","invalid_return",g,e["$[]"](0)),n})),i(A,"$_reduce_365",(function(e,t,n){return e["$[]"](1)})),i(A,"$_reduce_369",(function(e,t,n){var r,i,a,s;return i=e["$[]"](4),a=null==(r=d(i))[0]?g:r[0],s=null==r[1]?g:r[1],[e["$[]"](0),this.builder.$condition(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3),a,s,g)]})),i(A,"$_reduce_371",(function(e,t,n){return e})),i(A,"$_reduce_374",(function(e,t,n){return this.builder.$arg(e["$[]"](0))})),i(A,"$_reduce_375",(function(e,t,n){return this.builder.$multi_lhs(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_376",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_377",(function(e,t,n){return e["$[]"](0)["$<<"](e["$[]"](2))})),i(A,"$_reduce_379",(function(e,t,n){return e["$[]"](0).$push(e["$[]"](2))})),i(A,"$_reduce_380",(function(e,t,n){return e["$[]"](0).$push(e["$[]"](2)).$concat(e["$[]"](4))})),i(A,"$_reduce_381",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_382",(function(e,t,n){return[e["$[]"](0)].concat(_(e["$[]"](2)))})),i(A,"$_reduce_383",(function(e,t,n){return this.builder.$restarg(e["$[]"](0),e["$[]"](1))})),i(A,"$_reduce_384",(function(e,t,n){return this.builder.$restarg(e["$[]"](0))})),i(A,"$_reduce_387",(function(e,t,n){return this.context["$in_argdef="](!1),n})),i(A,"$_reduce_388",(function(e,t,n){return e["$[]"](1)})),i(A,"$_reduce_389",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),i(A,"$_reduce_390",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](1))})),i(A,"$_reduce_391",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](1))})),i(A,"$_reduce_392",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_393",(function(e,t,n){return e["$[]"](1)})),i(A,"$_reduce_394",(function(e,t,n){return[]})),i(A,"$_reduce_396",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))})),i(A,"$_reduce_397",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](6)).$concat(e["$[]"](7))})),i(A,"$_reduce_398",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),i(A,"$_reduce_399",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))})),i(A,"$_reduce_400",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),i(A,"$_reduce_402",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))})),i(A,"$_reduce_403",(function(e,t,n){return a(e["$[]"](1)["$empty?"]())&&p(e["$[]"](0).$size(),1)?[this.builder.$procarg0(e["$[]"](0)["$[]"](0))]:e["$[]"](0).$concat(e["$[]"](1))})),i(A,"$_reduce_404",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),i(A,"$_reduce_405",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))})),i(A,"$_reduce_406",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](1))})),i(A,"$_reduce_407",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),i(A,"$_reduce_408",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](1))})),i(A,"$_reduce_409",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),i(A,"$_reduce_411",(function(e,t,n){return this.builder.$args(g,[],g)})),i(A,"$_reduce_412",(function(e,t,n){return this.lexer["$state="]("expr_value"),n})),i(A,"$_reduce_413",(function(e,t,n){var r=this;return r.max_numparam_stack["$has_ordinary_params!"](),r.current_arg_stack.$set(g),r.context["$in_argdef="](!1),r.builder.$args(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_414",(function(e,t,n){var r=this;return r.max_numparam_stack["$has_ordinary_params!"](),r.current_arg_stack.$set(g),r.context["$in_argdef="](!1),r.builder.$args(e["$[]"](0),e["$[]"](1).$concat(e["$[]"](2)),e["$[]"](3))})),i(A,"$_reduce_415",(function(e,t,n){return[]})),i(A,"$_reduce_416",(function(e,t,n){return e["$[]"](2)})),i(A,"$_reduce_417",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_418",(function(e,t,n){return e["$[]"](0)["$<<"](e["$[]"](2))})),i(A,"$_reduce_419",(function(e,t,n){return this.static_env.$declare(e["$[]"](0)["$[]"](0)),this.builder.$shadowarg(e["$[]"](0))})),i(A,"$_reduce_421",(function(e,t,n){var r=this;return r.static_env.$extend_dynamic(),r.max_numparam_stack.$push(new Map([["static",!1]])),n=r.context.$dup(),r.context["$in_lambda="](!0),n})),i(A,"$_reduce_422",(function(e,t,n){return this.lexer.$cmdarg().$push(!1),n})),i(A,"$_reduce_423",(function(e,t,n){var r,i,s,o,$,u,l,c=this;return s=c.builder.$call_lambda(e["$[]"](0)),o=a(c.max_numparam_stack["$has_numparams?"]())?c.builder.$numargs(c.max_numparam_stack.$top()):e["$[]"](2),i=e["$[]"](4),$=null==(r=d(i))[0]?g:r[0],u=null==r[1]?g:r[1],l=null==r[2]?g:r[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(s,$,o,u,l)})),i(A,"$_reduce_424",(function(e,t,n){var r=this;return r.context["$in_argdef="](!1),r.max_numparam_stack["$has_ordinary_params!"](),r.builder.$args(e["$[]"](0),e["$[]"](1).$concat(e["$[]"](2)),e["$[]"](3))})),i(A,"$_reduce_425",(function(e,t,n){var r=this;return r.context["$in_argdef="](!1),a(e["$[]"](0)["$any?"]())&&r.max_numparam_stack["$has_ordinary_params!"](),r.builder.$args(g,e["$[]"](0),g)})),i(A,"$_reduce_426",(function(e,t,n){return n=this.context.$dup(),this.context["$in_lambda="](!0),n})),i(A,"$_reduce_427",(function(e,t,n){return this.context["$in_lambda="](e["$[]"](1).$in_lambda()),[e["$[]"](0),e["$[]"](2),e["$[]"](3)]})),i(A,"$_reduce_428",(function(e,t,n){return n=this.context.$dup(),this.context["$in_lambda="](!0),n})),i(A,"$_reduce_429",(function(e,t,n){return this.context["$in_lambda="](e["$[]"](1).$in_lambda()),[e["$[]"](0),e["$[]"](2),e["$[]"](3)]})),i(A,"$_reduce_430",(function(e,t,n){return n=this.context.$dup(),this.context["$in_block="](!0),n})),i(A,"$_reduce_431",(function(e,t,n){return this.context["$in_block="](e["$[]"](1).$in_block()),[e["$[]"](0)].concat(_(e["$[]"](2))).concat([e["$[]"](3)])})),i(A,"$_reduce_432",(function(e,t,n){var r,i,a,s,o,$;return i=e["$[]"](1),a=null==(r=d(i))[0]?g:r[0],s=null==r[1]?g:r[1],o=null==r[2]?g:r[2],$=null==r[3]?g:r[3],this.builder.$block(e["$[]"](0),a,s,o,$)})),i(A,"$_reduce_433",(function(e,t,n){var r,i,a,s,o;return i=e["$[]"](3),a=null==(r=d(i))[0]?g:r[0],s=null==r[1]?g:r[1],o=null==r[2]?g:r[2],this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),a,s,o)})),i(A,"$_reduce_434",(function(e,t,n){var r,i,a,s,o,$,u,l,c=g;return i=e["$[]"](3),a=null==(r=d(i))[0]?g:r[0],c=null==r[1]?g:r[1],s=null==r[2]?g:r[2],o=this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),a,c,s),i=e["$[]"](4),$=null==(r=d(i))[0]?g:r[0],c=null==r[1]?g:r[1],u=null==r[2]?g:r[2],l=null==r[3]?g:r[3],this.builder.$block(o,$,c,u,l)})),i(A,"$_reduce_435",(function(e,t,n){var r,i,a,s,o,$,u;return a=this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),g,e["$[]"](3),g),i=e["$[]"](4),s=null==(r=d(i))[0]?g:r[0],o=null==r[1]?g:r[1],$=null==r[2]?g:r[2],u=null==r[3]?g:r[3],this.builder.$block(a,s,o,$,u)})),i(A,"$_reduce_436",(function(e,t,n){var r,i,a,s,o;return i=e["$[]"](1),a=null==(r=d(i))[0]?g:r[0],s=null==r[1]?g:r[1],o=null==r[2]?g:r[2],this.builder.$call_method(g,g,e["$[]"](0),a,s,o)})),i(A,"$_reduce_437",(function(e,t,n){var r,i,a,s,o;return i=e["$[]"](3),a=null==(r=d(i))[0]?g:r[0],s=null==r[1]?g:r[1],o=null==r[2]?g:r[2],this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),a,s,o)})),i(A,"$_reduce_438",(function(e,t,n){var r,i,a,s,o;return i=e["$[]"](3),a=null==(r=d(i))[0]?g:r[0],s=null==r[1]?g:r[1],o=null==r[2]?g:r[2],this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),a,s,o)})),i(A,"$_reduce_439",(function(e,t,n){return this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_440",(function(e,t,n){var r,i,a,s,o;return i=e["$[]"](2),a=null==(r=d(i))[0]?g:r[0],s=null==r[1]?g:r[1],o=null==r[2]?g:r[2],this.builder.$call_method(e["$[]"](0),e["$[]"](1),g,a,s,o)})),i(A,"$_reduce_441",(function(e,t,n){var r,i,a,s,o;return i=e["$[]"](2),a=null==(r=d(i))[0]?g:r[0],s=null==r[1]?g:r[1],o=null==r[2]?g:r[2],this.builder.$call_method(e["$[]"](0),e["$[]"](1),g,a,s,o)})),i(A,"$_reduce_442",(function(e,t,n){var r,i,a,s,o;return i=e["$[]"](1),a=null==(r=d(i))[0]?g:r[0],s=null==r[1]?g:r[1],o=null==r[2]?g:r[2],this.builder.$keyword_cmd("super",e["$[]"](0),a,s,o)})),i(A,"$_reduce_443",(function(e,t,n){return this.builder.$keyword_cmd("zsuper",e["$[]"](0))})),i(A,"$_reduce_444",(function(e,t,n){return this.builder.$index(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))})),i(A,"$_reduce_445",(function(e,t,n){return n=this.context.$dup(),this.context["$in_block="](!0),n})),i(A,"$_reduce_446",(function(e,t,n){return this.context["$in_block="](e["$[]"](1).$in_block()),[e["$[]"](0)].concat(_(e["$[]"](2))).concat([e["$[]"](3)])})),i(A,"$_reduce_447",(function(e,t,n){return n=this.context.$dup(),this.context["$in_block="](!0),n})),i(A,"$_reduce_448",(function(e,t,n){return this.context["$in_block="](e["$[]"](1).$in_block()),[e["$[]"](0)].concat(_(e["$[]"](2))).concat([e["$[]"](3)])})),i(A,"$_reduce_449",(function(e,t,n){return this.static_env.$extend_dynamic(),this.max_numparam_stack.$push(new Map([["static",!1]])),n})),i(A,"$_reduce_450",(function(e,t,n){var r=this;return n=[a(r.max_numparam_stack["$has_numparams?"]())?r.builder.$numargs(r.max_numparam_stack.$top()):e["$[]"](1),e["$[]"](2)],r.max_numparam_stack.$pop(),r.static_env.$unextend(),n})),i(A,"$_reduce_451",(function(e,t,n){return this.static_env.$extend_dynamic(),this.max_numparam_stack.$push(new Map([["static",!1]])),n})),i(A,"$_reduce_452",(function(e,t,n){return this.lexer.$cmdarg().$push(!1),n})),i(A,"$_reduce_453",(function(e,t,n){var r=this;return n=[a(r.max_numparam_stack["$has_numparams?"]())?r.builder.$numargs(r.max_numparam_stack.$top()):e["$[]"](2),e["$[]"](3)],r.max_numparam_stack.$pop(),r.static_env.$unextend(),r.lexer.$cmdarg().$pop(),n})),i(A,"$_reduce_454",(function(e,t,n){return[this.builder.$when(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))].concat(_(e["$[]"](4)))})),i(A,"$_reduce_455",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_457",(function(e,t,n){var r=this;return r.lexer["$state="]("expr_beg"),r.lexer["$command_start="](!1),r.pattern_variables.$push(),r.pattern_hash_keys.$push(),n=r.context.$in_kwarg(),r.context["$in_kwarg="](!0),n})),i(A,"$_reduce_458",(function(e,t,n){var r=this;return r.pattern_variables.$pop(),r.pattern_hash_keys.$pop(),r.context["$in_kwarg="](e["$[]"](1)),n})),i(A,"$_reduce_459",(function(e,t,n){return[o(this.builder,"in_pattern",[e["$[]"](0)].concat(_(e["$[]"](2))).concat([e["$[]"](3),e["$[]"](5)]))].concat(_(e["$[]"](6)))})),i(A,"$_reduce_460",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_462",(function(e,t,n){return[e["$[]"](0),g]})),i(A,"$_reduce_463",(function(e,t,n){return[e["$[]"](0),this.builder.$if_guard(e["$[]"](1),e["$[]"](2))]})),i(A,"$_reduce_464",(function(e,t,n){return[e["$[]"](0),this.builder.$unless_guard(e["$[]"](1),e["$[]"](2))]})),i(A,"$_reduce_466",(function(e,t,n){var r;return r=this.builder.$match_with_trailing_comma(e["$[]"](0),e["$[]"](1)),this.builder.$array_pattern(g,[r],g)})),i(A,"$_reduce_467",(function(e,t,n){return this.builder.$array_pattern(g,[e["$[]"](0)].$concat(e["$[]"](2)),g)})),i(A,"$_reduce_468",(function(e,t,n){return this.builder.$find_pattern(g,e["$[]"](0),g)})),i(A,"$_reduce_469",(function(e,t,n){return this.builder.$array_pattern(g,e["$[]"](0),g)})),i(A,"$_reduce_470",(function(e,t,n){return this.builder.$hash_pattern(g,e["$[]"](0),g)})),i(A,"$_reduce_472",(function(e,t,n){return this.builder.$match_as(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_474",(function(e,t,n){return this.builder.$match_alt(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_476",(function(e,t,n){return n=e["$[]"](0),this.pattern_hash_keys.$push(),n})),i(A,"$_reduce_477",(function(e,t,n){return n=e["$[]"](0),this.pattern_hash_keys.$push(),n})),i(A,"$_reduce_480",(function(e,t,n){var r,i=this;return i.pattern_hash_keys.$pop(),r=i.builder.$array_pattern(g,e["$[]"](2),g),i.builder.$const_pattern(e["$[]"](0),e["$[]"](1),r,e["$[]"](3))})),i(A,"$_reduce_481",(function(e,t,n){var r,i=this;return i.pattern_hash_keys.$pop(),r=i.builder.$find_pattern(g,e["$[]"](2),g),i.builder.$const_pattern(e["$[]"](0),e["$[]"](1),r,e["$[]"](3))})),i(A,"$_reduce_482",(function(e,t,n){var r,i=this;return i.pattern_hash_keys.$pop(),r=i.builder.$hash_pattern(g,e["$[]"](2),g),i.builder.$const_pattern(e["$[]"](0),e["$[]"](1),r,e["$[]"](3))})),i(A,"$_reduce_483",(function(e,t,n){var r;return r=this.builder.$array_pattern(e["$[]"](1),g,e["$[]"](2)),this.builder.$const_pattern(e["$[]"](0),e["$[]"](1),r,e["$[]"](2))})),i(A,"$_reduce_484",(function(e,t,n){var r,i=this;return i.pattern_hash_keys.$pop(),r=i.builder.$array_pattern(g,e["$[]"](2),g),i.builder.$const_pattern(e["$[]"](0),e["$[]"](1),r,e["$[]"](3))})),i(A,"$_reduce_485",(function(e,t,n){var r,i=this;return i.pattern_hash_keys.$pop(),r=i.builder.$find_pattern(g,e["$[]"](2),g),i.builder.$const_pattern(e["$[]"](0),e["$[]"](1),r,e["$[]"](3))})),i(A,"$_reduce_486",(function(e,t,n){var r,i=this;return i.pattern_hash_keys.$pop(),r=i.builder.$hash_pattern(g,e["$[]"](2),g),i.builder.$const_pattern(e["$[]"](0),e["$[]"](1),r,e["$[]"](3))})),i(A,"$_reduce_487",(function(e,t,n){var r;return r=this.builder.$array_pattern(e["$[]"](1),g,e["$[]"](2)),this.builder.$const_pattern(e["$[]"](0),e["$[]"](1),r,e["$[]"](2))})),i(A,"$_reduce_488",(function(e,t,n){return this.builder.$array_pattern(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_489",(function(e,t,n){return this.builder.$find_pattern(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_490",(function(e,t,n){return this.builder.$array_pattern(e["$[]"](0),[],e["$[]"](1))})),i(A,"$_reduce_491",(function(e,t,n){var r=this;return r.pattern_hash_keys.$push(),n=r.context.$in_kwarg(),r.context["$in_kwarg="](!1),n})),i(A,"$_reduce_492",(function(e,t,n){var r=this;return r.pattern_hash_keys.$pop(),r.context["$in_kwarg="](e["$[]"](1)),r.builder.$hash_pattern(e["$[]"](0),e["$[]"](2),e["$[]"](3))})),i(A,"$_reduce_493",(function(e,t,n){return this.builder.$hash_pattern(e["$[]"](0),[],e["$[]"](1))})),i(A,"$_reduce_494",(function(e,t,n){return this.pattern_hash_keys.$push(),n})),i(A,"$_reduce_495",(function(e,t,n){return this.pattern_hash_keys.$pop(),this.builder.$begin(e["$[]"](0),e["$[]"](2),e["$[]"](3))})),i(A,"$_reduce_496",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_497",(function(e,t,n){return e["$[]"](0)})),i(A,"$_reduce_498",(function(e,t,n){return[].concat(_(e["$[]"](0))).concat([e["$[]"](1)])})),i(A,"$_reduce_499",(function(e,t,n){return[].concat(_(e["$[]"](0))).concat([e["$[]"](1)])})),i(A,"$_reduce_500",(function(e,t,n){return[].concat(_(e["$[]"](0))).concat([e["$[]"](1)]).concat(_(e["$[]"](3)))})),i(A,"$_reduce_502",(function(e,t,n){return[this.builder.$match_with_trailing_comma(e["$[]"](0),e["$[]"](1))]})),i(A,"$_reduce_503",(function(e,t,n){var r;return r=this.builder.$match_with_trailing_comma(e["$[]"](1),e["$[]"](2)),[].concat(_(e["$[]"](0))).concat([r])})),i(A,"$_reduce_504",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_505",(function(e,t,n){return[e["$[]"](0)].concat(_(e["$[]"](2)))})),i(A,"$_reduce_506",(function(e,t,n){return[e["$[]"](0)].concat(_(e["$[]"](2))).concat([e["$[]"](4)])})),i(A,"$_reduce_507",(function(e,t,n){return this.builder.$match_rest(e["$[]"](0),e["$[]"](1))})),i(A,"$_reduce_508",(function(e,t,n){return this.builder.$match_rest(e["$[]"](0))})),i(A,"$_reduce_509",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_510",(function(e,t,n){return[].concat(_(e["$[]"](0))).concat([e["$[]"](2)])})),i(A,"$_reduce_512",(function(e,t,n){return[].concat(_(e["$[]"](0))).concat(_(e["$[]"](2)))})),i(A,"$_reduce_513",(function(e,t,n){return e["$[]"](0)})),i(A,"$_reduce_514",(function(e,t,n){return e["$[]"](0)})),i(A,"$_reduce_515",(function(e,t,n){return e["$[]"](0)})),i(A,"$_reduce_516",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_517",(function(e,t,n){return[].concat(_(e["$[]"](0))).concat([e["$[]"](2)])})),i(A,"$_reduce_518",(function(e,t,n){return o(this.builder,"match_pair",_(e["$[]"](0)).concat([e["$[]"](1)]))})),i(A,"$_reduce_519",(function(e,t,n){return o(this.builder,"match_label",_(e["$[]"](0)))})),i(A,"$_reduce_520",(function(e,t,n){return["label",e["$[]"](0)]})),i(A,"$_reduce_521",(function(e,t,n){return["quoted",[e["$[]"](0),e["$[]"](1),e["$[]"](2)]]})),i(A,"$_reduce_522",(function(e,t,n){return[this.builder.$match_rest(e["$[]"](0),e["$[]"](1))]})),i(A,"$_reduce_523",(function(e,t,n){return[this.builder.$match_rest(e["$[]"](0),g)]})),i(A,"$_reduce_524",(function(e,t,n){return e})),i(A,"$_reduce_526",(function(e,t,n){return[this.builder.$match_nil_pattern(e["$[]"](0)["$[]"](0),e["$[]"](0)["$[]"](1))]})),i(A,"$_reduce_528",(function(e,t,n){return this.builder.$range_inclusive(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_529",(function(e,t,n){return this.builder.$range_exclusive(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_530",(function(e,t,n){return this.builder.$range_inclusive(e["$[]"](0),e["$[]"](1),g)})),i(A,"$_reduce_531",(function(e,t,n){return this.builder.$range_exclusive(e["$[]"](0),e["$[]"](1),g)})),i(A,"$_reduce_535",(function(e,t,n){return this.builder.$range_inclusive(g,e["$[]"](0),e["$[]"](1))})),i(A,"$_reduce_536",(function(e,t,n){return this.builder.$range_exclusive(g,e["$[]"](0),e["$[]"](1))})),i(A,"$_reduce_545",(function(e,t,n){return this.builder.$accessible(e["$[]"](0))})),i(A,"$_reduce_547",(function(e,t,n){return this.builder.$assignable(this.builder.$match_var(e["$[]"](0)))})),i(A,"$_reduce_548",(function(e,t,n){var r,i,s=this;return r=e["$[]"](1)["$[]"](0),i=s.builder.$accessible(s.builder.$ident(e["$[]"](1))),a(s.$static_env()["$declared?"](r))||s.$diagnostic("error","undefined_lvar",new Map([["name",r]]),e["$[]"](1)),s.builder.$pin(e["$[]"](0),i)})),i(A,"$_reduce_549",(function(e,t,n){var r;return r=this.builder.$accessible(e["$[]"](1)),this.builder.$pin(e["$[]"](0),r)})),i(A,"$_reduce_550",(function(e,t,n){var r;return r=this.builder.$begin(e["$[]"](1),e["$[]"](2),e["$[]"](3)),this.builder.$pin(e["$[]"](0),r)})),i(A,"$_reduce_551",(function(e,t,n){return this.builder.$const_global(e["$[]"](0),e["$[]"](1))})),i(A,"$_reduce_552",(function(e,t,n){return this.builder.$const_fetch(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_553",(function(e,t,n){return this.builder.$const(e["$[]"](0))})),i(A,"$_reduce_554",(function(e,t,n){var r,i,s,o,$=g;return i=e["$[]"](2),s=null==(r=d(i))[0]?g:r[0],o=null==r[1]?g:r[1],a(e["$[]"](1))&&($=this.builder.$array(g,e["$[]"](1),g)),[this.builder.$rescue_body(e["$[]"](0),$,s,o,e["$[]"](3),e["$[]"](4))].concat(_(e["$[]"](5)))})),i(A,"$_reduce_555",(function(e,t,n){return[]})),i(A,"$_reduce_556",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_559",(function(e,t,n){return[e["$[]"](0),e["$[]"](1)]})),i(A,"$_reduce_561",(function(e,t,n){return[e["$[]"](0),e["$[]"](1)]})),i(A,"$_reduce_565",(function(e,t,n){return this.builder.$string_compose(g,e["$[]"](0),g)})),i(A,"$_reduce_566",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_567",(function(e,t,n){return e["$[]"](0)["$<<"](e["$[]"](1))})),i(A,"$_reduce_568",(function(e,t,n){var r,i=this;return r=i.builder.$string_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2)),i.builder.$dedent_string(r,i.lexer.$dedent_level())})),i(A,"$_reduce_569",(function(e,t,n){var r,i=this;return r=i.builder.$string(e["$[]"](0)),i.builder.$dedent_string(r,i.lexer.$dedent_level())})),i(A,"$_reduce_570",(function(e,t,n){return this.builder.$character(e["$[]"](0))})),i(A,"$_reduce_571",(function(e,t,n){var r,i=this;return r=i.builder.$xstring_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2)),i.builder.$dedent_string(r,i.lexer.$dedent_level())})),i(A,"$_reduce_572",(function(e,t,n){var r;return r=this.builder.$regexp_options(e["$[]"](3)),this.builder.$regexp_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2),r)})),i(A,"$_reduce_573",(function(e,t,n){return this.builder.$words_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_574",(function(e,t,n){return[]})),i(A,"$_reduce_575",(function(e,t,n){return e["$[]"](0)["$<<"](this.builder.$word(e["$[]"](1)))})),i(A,"$_reduce_576",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_577",(function(e,t,n){return e["$[]"](0)["$<<"](e["$[]"](1))})),i(A,"$_reduce_578",(function(e,t,n){return this.builder.$symbols_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_579",(function(e,t,n){return[]})),i(A,"$_reduce_580",(function(e,t,n){return e["$[]"](0)["$<<"](this.builder.$word(e["$[]"](1)))})),i(A,"$_reduce_581",(function(e,t,n){return this.builder.$words_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_582",(function(e,t,n){return this.builder.$symbols_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_583",(function(e,t,n){return[]})),i(A,"$_reduce_584",(function(e,t,n){return e["$[]"](0)["$<<"](this.builder.$string_internal(e["$[]"](1)))})),i(A,"$_reduce_585",(function(e,t,n){return[]})),i(A,"$_reduce_586",(function(e,t,n){return e["$[]"](0)["$<<"](this.builder.$symbol_internal(e["$[]"](1)))})),i(A,"$_reduce_587",(function(e,t,n){return[]})),i(A,"$_reduce_588",(function(e,t,n){return e["$[]"](0)["$<<"](e["$[]"](1))})),i(A,"$_reduce_589",(function(e,t,n){return[]})),i(A,"$_reduce_590",(function(e,t,n){return e["$[]"](0)["$<<"](e["$[]"](1))})),i(A,"$_reduce_591",(function(e,t,n){return[]})),i(A,"$_reduce_592",(function(e,t,n){return e["$[]"](0)["$<<"](e["$[]"](1))})),i(A,"$_reduce_593",(function(e,t,n){return this.builder.$string_internal(e["$[]"](0))})),i(A,"$_reduce_594",(function(e,t,n){return e["$[]"](1)})),i(A,"$_reduce_595",(function(e,t,n){return this.lexer.$cmdarg().$push(!1),this.lexer.$cond().$push(!1),n})),i(A,"$_reduce_596",(function(e,t,n){var r=this;return r.lexer.$cmdarg().$pop(),r.lexer.$cond().$pop(),r.builder.$begin(e["$[]"](0),e["$[]"](2),e["$[]"](3))})),i(A,"$_reduce_597",(function(e,t,n){return this.builder.$gvar(e["$[]"](0))})),i(A,"$_reduce_598",(function(e,t,n){return this.builder.$ivar(e["$[]"](0))})),i(A,"$_reduce_599",(function(e,t,n){return this.builder.$cvar(e["$[]"](0))})),i(A,"$_reduce_603",(function(e,t,n){return this.lexer["$state="]("expr_end"),this.builder.$symbol(e["$[]"](0))})),i(A,"$_reduce_604",(function(e,t,n){return this.lexer["$state="]("expr_end"),this.builder.$symbol_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_605",(function(e,t,n){return e["$[]"](0)})),i(A,"$_reduce_606",(function(e,t,n){var r=this;return a(r.builder["$respond_to?"]("negate"))?r.builder.$negate(e["$[]"](0),e["$[]"](1)):r.builder.$unary_num(e["$[]"](0),e["$[]"](1))})),i(A,"$_reduce_607",(function(e,t,n){return this.lexer["$state="]("expr_end"),this.builder.$integer(e["$[]"](0))})),i(A,"$_reduce_608",(function(e,t,n){return this.lexer["$state="]("expr_end"),this.builder.$float(e["$[]"](0))})),i(A,"$_reduce_609",(function(e,t,n){return this.lexer["$state="]("expr_end"),this.builder.$rational(e["$[]"](0))})),i(A,"$_reduce_610",(function(e,t,n){return this.lexer["$state="]("expr_end"),this.builder.$complex(e["$[]"](0))})),i(A,"$_reduce_611",(function(e,t,n){return this.builder.$ivar(e["$[]"](0))})),i(A,"$_reduce_612",(function(e,t,n){return this.builder.$gvar(e["$[]"](0))})),i(A,"$_reduce_613",(function(e,t,n){return this.builder.$cvar(e["$[]"](0))})),i(A,"$_reduce_614",(function(e,t,n){return this.builder.$ident(e["$[]"](0))})),i(A,"$_reduce_615",(function(e,t,n){return this.builder.$const(e["$[]"](0))})),i(A,"$_reduce_617",(function(e,t,n){return this.builder.$nil(e["$[]"](0))})),i(A,"$_reduce_618",(function(e,t,n){return this.builder.$self(e["$[]"](0))})),i(A,"$_reduce_619",(function(e,t,n){return this.builder.$true(e["$[]"](0))})),i(A,"$_reduce_620",(function(e,t,n){return this.builder.$false(e["$[]"](0))})),i(A,"$_reduce_621",(function(e,t,n){return this.builder.$__FILE__(e["$[]"](0))})),i(A,"$_reduce_622",(function(e,t,n){return this.builder.$__LINE__(e["$[]"](0))})),i(A,"$_reduce_623",(function(e,t,n){return this.builder.$__ENCODING__(e["$[]"](0))})),i(A,"$_reduce_624",(function(e,t,n){return this.builder.$accessible(e["$[]"](0))})),i(A,"$_reduce_625",(function(e,t,n){return this.builder.$accessible(e["$[]"](0))})),i(A,"$_reduce_626",(function(e,t,n){return this.builder.$assignable(e["$[]"](0))})),i(A,"$_reduce_627",(function(e,t,n){return this.builder.$assignable(e["$[]"](0))})),i(A,"$_reduce_628",(function(e,t,n){return this.builder.$nth_ref(e["$[]"](0))})),i(A,"$_reduce_629",(function(e,t,n){return this.builder.$back_ref(e["$[]"](0))})),i(A,"$_reduce_630",(function(e,t,n){return this.lexer["$state="]("expr_value"),n})),i(A,"$_reduce_631",(function(e,t,n){return[e["$[]"](0),e["$[]"](2)]})),i(A,"$_reduce_632",r(g)),i(A,"$_reduce_634",(function(e,t,n){return this.context["$in_argdef="](!1),this.builder.$args(g,[],g)})),i(A,"$_reduce_635",(function(e,t,n){var r=this;return n=r.builder.$args(e["$[]"](0),e["$[]"](1),e["$[]"](2)),r.lexer["$state="]("expr_value"),r.context["$in_argdef="](!1),n})),i(A,"$_reduce_637",(function(e,t,n){var r=this;return n=r.context.$dup(),r.context["$in_kwarg="](!0),r.context["$in_argdef="](!0),n})),i(A,"$_reduce_638",(function(e,t,n){var r=this;return r.context["$in_kwarg="](e["$[]"](0).$in_kwarg()),r.context["$in_argdef="](!1),r.builder.$args(g,e["$[]"](1),g)})),i(A,"$_reduce_639",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),i(A,"$_reduce_640",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](1))})),i(A,"$_reduce_641",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](1))})),i(A,"$_reduce_642",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_643",(function(e,t,n){return this.static_env.$declare_forward_args(),[this.builder.$forward_arg(e["$[]"](0))]})),i(A,"$_reduce_644",(function(e,t,n){return e["$[]"](1)})),i(A,"$_reduce_645",(function(e,t,n){return[]})),i(A,"$_reduce_646",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))})),i(A,"$_reduce_647",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](6)).$concat(e["$[]"](7))})),i(A,"$_reduce_648",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),i(A,"$_reduce_649",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))})),i(A,"$_reduce_650",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),i(A,"$_reduce_651",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))})),i(A,"$_reduce_652",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](1))})),i(A,"$_reduce_653",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),i(A,"$_reduce_654",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))})),i(A,"$_reduce_655",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](1))})),i(A,"$_reduce_656",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),i(A,"$_reduce_657",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](1))})),i(A,"$_reduce_658",(function(e,t,n){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),i(A,"$_reduce_659",(function(e,t,n){return e["$[]"](0)})),i(A,"$_reduce_660",(function(e,t,n){return[]})),i(A,"$_reduce_661",(function(e,t,n){return e["$[]"](0)})),i(A,"$_reduce_662",(function(e,t,n){return this.$diagnostic("error","argument_const",g,e["$[]"](0)),n})),i(A,"$_reduce_663",(function(e,t,n){return this.$diagnostic("error","argument_ivar",g,e["$[]"](0)),n})),i(A,"$_reduce_664",(function(e,t,n){return this.$diagnostic("error","argument_gvar",g,e["$[]"](0)),n})),i(A,"$_reduce_665",(function(e,t,n){return this.$diagnostic("error","argument_cvar",g,e["$[]"](0)),n})),i(A,"$_reduce_667",(function(e,t,n){return this.static_env.$declare(e["$[]"](0)["$[]"](0)),this.max_numparam_stack["$has_ordinary_params!"](),e["$[]"](0)})),i(A,"$_reduce_668",(function(e,t,n){return this.current_arg_stack.$set(e["$[]"](0)["$[]"](0)),e["$[]"](0)})),i(A,"$_reduce_669",(function(e,t,n){return this.current_arg_stack.$set(0),this.builder.$arg(e["$[]"](0))})),i(A,"$_reduce_670",(function(e,t,n){return this.builder.$multi_lhs(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_671",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_672",(function(e,t,n){return e["$[]"](0)["$<<"](e["$[]"](2))})),i(A,"$_reduce_673",(function(e,t,n){var r=this;return r.$check_kwarg_name(e["$[]"](0)),r.static_env.$declare(e["$[]"](0)["$[]"](0)),r.max_numparam_stack["$has_ordinary_params!"](),r.current_arg_stack.$set(e["$[]"](0)["$[]"](0)),r.context["$in_argdef="](!1),e["$[]"](0)})),i(A,"$_reduce_674",(function(e,t,n){var r=this;return r.current_arg_stack.$set(g),r.context["$in_argdef="](!0),r.builder.$kwoptarg(e["$[]"](0),e["$[]"](1))})),i(A,"$_reduce_675",(function(e,t,n){var r=this;return r.current_arg_stack.$set(g),r.context["$in_argdef="](!0),r.builder.$kwarg(e["$[]"](0))})),i(A,"$_reduce_676",(function(e,t,n){return this.context["$in_argdef="](!0),this.builder.$kwoptarg(e["$[]"](0),e["$[]"](1))})),i(A,"$_reduce_677",(function(e,t,n){return this.context["$in_argdef="](!0),this.builder.$kwarg(e["$[]"](0))})),i(A,"$_reduce_678",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_679",(function(e,t,n){return e["$[]"](0)["$<<"](e["$[]"](2))})),i(A,"$_reduce_680",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_681",(function(e,t,n){return e["$[]"](0)["$<<"](e["$[]"](2))})),i(A,"$_reduce_684",(function(e,t,n){return[this.builder.$kwnilarg(e["$[]"](0)["$[]"](0),e["$[]"](0)["$[]"](1))]})),i(A,"$_reduce_685",(function(e,t,n){return this.static_env.$declare(e["$[]"](1)["$[]"](0)),[this.builder.$kwrestarg(e["$[]"](0),e["$[]"](1))]})),i(A,"$_reduce_686",(function(e,t,n){return this.static_env.$declare_anonymous_kwrestarg(),[this.builder.$kwrestarg(e["$[]"](0))]})),i(A,"$_reduce_687",(function(e,t,n){var r=this;return r.current_arg_stack.$set(0),r.context["$in_argdef="](!0),r.builder.$optarg(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_688",(function(e,t,n){var r=this;return r.current_arg_stack.$set(0),r.context["$in_argdef="](!0),r.builder.$optarg(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_689",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_690",(function(e,t,n){return e["$[]"](0)["$<<"](e["$[]"](2))})),i(A,"$_reduce_691",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_692",(function(e,t,n){return e["$[]"](0)["$<<"](e["$[]"](2))})),i(A,"$_reduce_695",(function(e,t,n){return this.static_env.$declare(e["$[]"](1)["$[]"](0)),[this.builder.$restarg(e["$[]"](0),e["$[]"](1))]})),i(A,"$_reduce_696",(function(e,t,n){return this.static_env.$declare_anonymous_restarg(),[this.builder.$restarg(e["$[]"](0))]})),i(A,"$_reduce_699",(function(e,t,n){return this.static_env.$declare(e["$[]"](1)["$[]"](0)),this.builder.$blockarg(e["$[]"](0),e["$[]"](1))})),i(A,"$_reduce_700",(function(e,t,n){return this.static_env.$declare_anonymous_blockarg(),this.builder.$blockarg(e["$[]"](0),g)})),i(A,"$_reduce_701",(function(e,t,n){return[e["$[]"](1)]})),i(A,"$_reduce_702",(function(e,t,n){return[]})),i(A,"$_reduce_704",(function(e,t,n){return e["$[]"](1)})),i(A,"$_reduce_705",(function(e,t,n){return[]})),i(A,"$_reduce_707",(function(e,t,n){return[e["$[]"](0)]})),i(A,"$_reduce_708",(function(e,t,n){return e["$[]"](0)["$<<"](e["$[]"](2))})),i(A,"$_reduce_709",(function(e,t,n){return this.builder.$pair(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),i(A,"$_reduce_710",(function(e,t,n){return this.builder.$pair_keyword(e["$[]"](0),e["$[]"](1))})),i(A,"$_reduce_711",(function(e,t,n){return this.builder.$pair_label(e["$[]"](0))})),i(A,"$_reduce_712",(function(e,t,n){return this.builder.$pair_quoted(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))})),i(A,"$_reduce_713",(function(e,t,n){return this.builder.$kwsplat(e["$[]"](0),e["$[]"](1))})),i(A,"$_reduce_714",(function(e,t,n){var r=this;return s(r.static_env["$declared_anonymous_kwrestarg?"]())&&r.$diagnostic("error","no_anonymous_kwrestarg",g,e["$[]"](0)),r.builder.$forwarded_kwrestarg(e["$[]"](0))})),i(A,"$_reduce_725",(function(e,t,n){return["dot",e["$[]"](0)["$[]"](1)]})),i(A,"$_reduce_726",(function(e,t,n){return["anddot",e["$[]"](0)["$[]"](1)]})),i(A,"$_reduce_731",(function(e,t,n){return e["$[]"](1)})),i(A,"$_reduce_732",(function(e,t,n){return e["$[]"](1)})),i(A,"$_reduce_733",(function(e,t,n){return e["$[]"](1)})),i(A,"$_reduce_736",(function(e,t,n){return this.$yyerrok(),n})),i(A,"$_reduce_740",r(g)),i(A,"$_reduce_none",(function(e,t,n){return e["$[]"](0)}))}(b[0],v(y("Parser"),"Base"),b)}(m[0],m)},Opal.modules["opal/ast/builder"]=function(e){var t=e.module,n=e.klass,r=e.Opal,i=e.def,a=e.top,s=[],o=(e.nil,e.$$$);return e.add_stubs("require,emit_lambda=,new"),a.$require("opal/ast/node"),a.$require("parser/ruby32"),function(e,a){var s=[t(e,"Opal")].concat(a);return function(e,a){return function(e,t){var a=n(e,t,"Builder");return a["$emit_lambda="](!0),i(a,"$n",(function(e,t,n){return o(o(r,"AST"),"Node").$new(e,t,new Map([["location",n]]))}))}([t(e,"AST")].concat(a)[0],o(o(o("Parser"),"Builders"),"Default"))}(s[0],s)}(s[0],s)},Opal.modules["opal/rewriters/base"]=function(e){var t=e.module,n=e.klass,r=e.slice,i=e.def,a=e.return_self,s=e.return_val,o=e.const_set,$=e.truthy,u=e.Opal,l=e.defs,c=e.alias,_=e.rb_plus,d=e.send,p=e.to_a,f=e.send2,h=e.find_super,m=e.assign_ivar_val,g=e.top,v=[],b=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,v){var w=[t(g,"Opal")].concat(v);return function(g,v){var w=[t(g,"Rewriters")].concat(v);return function(t,g,v){var w=n(t,g,"Base"),x=[w].concat(v),k=e.$r(x);return w.$$prototype.dynamic_cache_result=b,function(t,o,$){var u=n(t,null,"DummyLocation"),l=[u].concat($),c=e.$r(l);i(u,"$node=",(function(e){return r(arguments),b}),-1),i(u,"$expression",a),i(u,"$begin_pos",s(0)),i(u,"$end_pos",s(0)),i(u,"$source",s("")),i(u,"$line",s(0)),i(u,"$column",s(0)),i(u,"$last_line",(function(){return y(c("Float"),"INFINITY")}))}(x[0],0,x),o(x[0],"DUMMY_LOCATION",k("DummyLocation").$new()),i(w,"$s",(function(e,t){var n,i;return n=r(arguments,1),i=$(this.$current_node())?this.$current_node().$loc():k("DUMMY_LOCATION"),y(y(u,"AST"),"Node").$new(e,n,new Map([["location",i]]))}),-2),l(w,"$s",(function(e,t){var n;return n=r(arguments,1),y(y(u,"AST"),"Node").$new(e,n,new Map([["location",k("DUMMY_LOCATION")]]))}),-2),c(w,"on_iter","process_regular_node"),c(w,"on_zsuper","process_regular_node"),c(w,"on_jscall","on_send"),c(w,"on_jsattr","process_regular_node"),c(w,"on_jsattrasgn","process_regular_node"),c(w,"on_kwsplat","process_regular_node"),i(w,"$prepend_to_body",(function(e,t){var n,r=this;return n=_(r.$stmts_of(t),r.$stmts_of(e)),r.$begin_with_stmts(n)})),i(w,"$append_to_body",(function(e,t){var n,r=this;return n=_(r.$stmts_of(e),r.$stmts_of(t)),r.$begin_with_stmts(n)})),i(w,"$stmts_of",(function(e){return $(e["$nil?"]())?[]:$(["begin","kwbegin"]["$include?"](e.$type()))?e.$children():[e]})),i(w,"$begin_with_stmts",(function(e){switch(e.$length().valueOf()){case 0:return b;case 1:return e["$[]"](0);default:return d(this,"s",["begin"].concat(p(e)))}})),w.$attr_accessor("current_node"),i(w,"$process",(function e(t){var n=e.$$p||b,r=this;return e.$$p=null,function(){try{return r["$current_node="](t),f(r,h(r,"process",e,!1,!0),"process",[t],n)}finally{d(r,"current_node=",[b])}}()})),i(w,"$error",(function(e){var t=this,n=b;return n=y(u,"RewritingError").$new(e),$(t.$current_node())&&n["$location="](t.$current_node().$loc()),t.$raise(n)})),i(w,"$on_top",(function(e){return e=this.$process_regular_node(e),$(this.dynamic_cache_result)&&e.$meta()["$[]="]("dynamic_cache_result",!0),e})),i(w,"$dynamic!",m("dynamic_cache_result",!0))}(w[0],y(y(y("Parser"),"AST"),"Processor"),w)}(w[0],w)}(v[0],v)},Opal.modules["opal/rewriters/opal_engine_check"]=function(e){var t=e.module,n=e.klass,r=e.to_a,i=e.truthy,a=e.send2,s=e.find_super,o=e.def,$=e.const_set,u=e.top,l=[],c=e.nil;return e.add_stubs("require,children,skip_check_present?,process,s,skip_check_present_not?,=="),u.$require("opal/rewriters/base"),function(u,l){var _=[t(u,"Opal")].concat(l);return function(u,l){var _=[t(u,"Rewriters")].concat(l),d=e.$r(_);return function(t,u,l){var _=n(t,u,"OpalEngineCheck"),d=[_].concat(l),p=e.$r(d);return o(_,"$on_if",(function e(t){var n,o,$,u,l=e.$$p||c,_=this,d=c;return e.$$p=null,o=null==(n=[].concat(r(t.$children())))[0]?c:n[0],$=null==n[1]?c:n[1],u=null==n[2]?c:n[2],i(_["$skip_check_present?"](o))?_.$process(i(d=$)?d:_.$s("nil")):i(_["$skip_check_present_not?"](o))?_.$process(i(d=u)?d:_.$s("nil")):a(_,s(_,"on_if",e,!1,!0),"on_if",[t],l)})),o(_,"$skip_check_present?",(function(e){var t;return i(t=e["$=="](p("RUBY_ENGINE_CHECK")))?t:e["$=="](p("RUBY_PLATFORM_CHECK"))})),o(_,"$skip_check_present_not?",(function(e){var t;return i(t=e["$=="](p("RUBY_ENGINE_CHECK_NOT")))?t:e["$=="](p("RUBY_PLATFORM_CHECK_NOT"))})),$(d[0],"RUBY_ENGINE_CHECK",_.$s("send",_.$s("const",c,"RUBY_ENGINE"),"==",_.$s("str","opal"))),$(d[0],"RUBY_ENGINE_CHECK_NOT",_.$s("send",_.$s("const",c,"RUBY_ENGINE"),"!=",_.$s("str","opal"))),$(d[0],"RUBY_PLATFORM_CHECK",_.$s("send",_.$s("const",c,"RUBY_PLATFORM"),"==",_.$s("str","opal"))),$(d[0],"RUBY_PLATFORM_CHECK_NOT",_.$s("send",_.$s("const",c,"RUBY_PLATFORM"),"!=",_.$s("str","opal")))}(_[0],d("Base"),_)}(_[0],_)}(l[0],l)},Opal.modules["opal/rewriters/targeted_patches"]=function(e){var t=e.module,n=e.klass,r=e.to_a,i=e.truthy,a=e.rb_ge,s=e.eqeq,o=e.to_ary,$=e.range,u=e.send2,l=e.find_super,c=e.def,_=e.rb_gt,d=e.send,p=e.not,f=e.top,h=[],m=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 g=[t(f,"Opal")].concat(h);return function(f,h){var g=[t(f,"Rewriters")].concat(h),v=e.$r(g);return function(e,t){var f=n(e,t,"TargetedPatches");return c(f,"$on_def",(function e(t){var n,c,_,d,p=e.$$p||m,f=this,h=m,g=m,v=m,b=m;return e.$$p=null,_=null==(n=[].concat(r(t)))[0]?m:n[0],d=null==n[1]?m:n[1],h=null==n[2]?m:n[2],i(h)&&s(h.$type(),"begin")&&i(a(h.$children().$length(),2))?(c=(g=h.$children()).$last(2),v=null==(n=o(c))[0]?m:n[0],b=null==n[1]?m:n[1],s(v.$type(),"lvasgn")&&s(b.$type(),"lvar")&&s(v.$children().$first(),b.$children().$first())?s(g.$length(),2)?t.$updated(m,[_,d,v.$children()["$[]"](1)]):(g=g["$[]"]($(0,-3,!1))["$<<"](v.$children()["$[]"](1)),t.$updated(m,[_,d,h.$updated(m,g)])):u(f,l(f,"on_def",e,!1,!0),"on_def",[t],p)):u(f,l(f,"on_def",e,!1,!0),"on_def",[t],p)})),c(f,"$on_array",(function e(t){var n=e.$$p||m,r=this,a=m,o=m,c=m;return e.$$p=null,a=t.$children(),i(_(a.$length(),32))?(o=d(a,"all?",[],(function(e){return null==e&&(e=m),!!i(["str","sym","int","nil"]["$include?"](e.$type()))&&((!i(["str","sym"]["$include?"](e.$type()))||!i(e.$children().$first().$to_s()["$=~"](/^[0-9-]|^$|,/)))&&(!s(e.$type(),"int")||!p($(-1e6,1e6,!1)["$cover?"](e.$children().$first()))))})),i(o)?(c=d(a,"map",[],(function(e){return null==e&&(e=m),e.$children().$first().$to_s()})).$join(","),t.$updated("jscall",[r.$s("js_tmp","Opal"),"large_array_unpack",r.$s("sym",c)])):u(r,l(r,"on_array",e,!1,!0),"on_array",[t],n)):u(r,l(r,"on_array",e,!1,!0),"on_array",[t],n)}))}(g[0],v("Base"))}(g[0],g)}(h[0],h)},Opal.modules["opal/rewriters/for_rewriter"]=function(e){var t=e.module,n=e.klass,r=e.assign_ivar_val,i=e.defs,a=e.truthy,s=e.rb_plus,o=e.to_a,$=e.def,u=e.send,l=e.send2,c=e.find_super,_=e.top,d=[],p=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(_,d){var f=[t(_,"Opal")].concat(d);return function(_,d){var f=[t(_,"Rewriters")].concat(d),h=e.$r(f);return function(t,_,d){var f=n(t,_,"ForRewriter"),h=[f].concat(d),m=e.$r(h);return i(f,"$reset_tmp_counter!",r("counter",0)),i(f,"$next_tmp",(function(){var e,t=this;return null==t.counter&&(t.counter=p),t.counter=a(e=t.counter)?e:0,t.counter=s(t.counter,1),"$for_tmp"+t.counter})),$(f,"$on_for",(function(e){var t,n,r,i,a,s,$=this,u=p;return n=null==(t=[].concat(o(e)))[0]?p:t[0],r=null==t[1]?p:t[1],u=null==t[2]?p:t[2],i=$.$generate_outer_assignments(n,u),a=$.$class().$next_tmp(),s=$.$s("js_tmp",a),u=$.$prepend_to_body(u,$.$assign_loop_variable(n,s)),(e=$.$transform_for_to_each_loop(e,r,a,u)).$updated("begin",[].concat(o(i)).concat([e]))})),f.$private(),$(f,"$generate_outer_assignments",(function(e,t){var n,r;return n=m("LocalVariableAssigns").$find(e),r=m("LocalVariableAssigns").$find(t),u(s(n,r),"map",[],(function e(t){return null==t&&(t=p),(null==e.$$s?this:e.$$s).$s("lvdeclare",t)}),{$$s:this})})),$(f,"$assign_loop_variable",(function(e,t){return"mlhs"===e.$type().valueOf()?e.$updated("masgn",[e,t]):e["$<<"](t)})),$(f,"$transform_for_to_each_loop",(function(e,t,n,r){var i=this;return e.$updated("send",[t,"each",e.$updated("iter",[i.$s("args",i.$s("arg",n)),i.$process(r)])])})),function(t,r,a){var s=n(t,r,"LocalVariableAssigns"),u=[s].concat(a),_=e.$r(u);return s.$attr_reader("result"),i(s,"$find",(function(e){var t=p;return(t=this.$new()).$process(e),t.$result().$to_a()})),$(s,"$initialize",(function(){return this.result=_("Set").$new()})),$(s,"$on_lvasgn",(function e(t){var n,r,i=e.$$p||p,a=this;return e.$$p=null,r=null==(n=[].concat(o(t)))[0]?p:n[0],null==n[1]?p:n[1],a.$result()["$<<"](r),l(a,c(a,"on_lvasgn",e,!1,!0),"on_lvasgn",[t],i)}))}(h[0],m("Base"),h)}(f[0],h("Base"),f)}(f[0],f)}(d[0],d)},Opal.modules["opal/rewriters/js_reserved_words"]=function(e){var t=e.module,n=e.klass,r=e.const_set,i=e.regexp,a=e.truthy,s=e.defs,o=e.def,$=e.range,u=e.to_a,l=e.send2,c=e.find_super,_=e.alias,d=e.top,p=[],f=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"),d.$require("opal/rewriters/base"),d.$require("opal/regexp_anchors"),function(d,p){var h=[t(d,"Opal")].concat(p);return function(d,p){var h=[t(d,"Rewriters")].concat(p),m=e.$r(h);return function(t,d,p){var h=n(t,d,"JsReservedWords"),m=[h].concat(p),g=e.$r(m);return r(m[0],"ES51_RESERVED_WORD",i([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()),r(m[0],"ES3_RESERVED_WORD_EXCLUSIVE",i([g("REGEXP_START"),"(?:int|byte|char|goto|long|final|float|short|double|native|throws|boolean|abstract|volatile|transient|synchronized)",g("REGEXP_END")]).$freeze()),r(m[0],"PROTO_SPECIAL_PROPS",i([g("REGEXP_START"),"(?:constructor|displayName|__proto__|__parent__|__noSuchMethod__|__count__)",g("REGEXP_END")]).$freeze()),r(m[0],"PROTO_SPECIAL_METHODS",i([g("REGEXP_START"),"(?:hasOwnProperty|valueOf)",g("REGEXP_END")]).$freeze()),r(m[0],"IMMUTABLE_PROPS",i([g("REGEXP_START"),"(?:NaN|Infinity|undefined)",g("REGEXP_END")]).$freeze()),r(m[0],"BASIC_IDENTIFIER_RULES",i([g("REGEXP_START"),"[$_a-z][$_a-z\\d]*",g("REGEXP_END")],"i").$freeze()),r(m[0],"RESERVED_FUNCTION_NAMES",i([g("REGEXP_START"),"(?:Array)",g("REGEXP_END")]).$freeze()),s(h,"$valid_name?",(function(e){var t,n=f,r=f;return a(t=g("BASIC_IDENTIFIER_RULES")["$=~"](e))?(a(n=a(r=g("ES51_RESERVED_WORD")["$=~"](e))?r:g("ES3_RESERVED_WORD_EXCLUSIVE")["$=~"](e))?n:g("IMMUTABLE_PROPS")["$=~"](e))["$!"]():t})),s(h,"$valid_ivar_name?",(function(e){var t;return(a(t=g("PROTO_SPECIAL_PROPS")["$=~"](e))?t:g("PROTO_SPECIAL_METHODS")["$=~"](e))["$!"]()})),o(h,"$fix_var_name",(function(e){return a(this.$class()["$valid_name?"](e))?e:(e+"$").$to_sym()})),o(h,"$fix_ivar_name",(function(e){return a(this.$class()["$valid_ivar_name?"](e.$to_s()["$[]"]($(1,-1,!1))))?e:(e+"$").$to_sym()})),o(h,"$on_lvar",(function e(t){var n,r,i=this;return e.$$p=null,r=null==(n=[].concat(u(t)))[0]?f:n[0],null==n[1]?f:n[1],t=t.$updated(f,[i.$fix_var_name(r)]),l(i,c(i,"on_lvar",e,!1,!0),"on_lvar",[t],null)})),o(h,"$on_lvasgn",(function e(t){var n,r,i,s=this;return e.$$p=null,r=null==(n=[].concat(u(t)))[0]?f:n[0],i=null==n[1]?f:n[1],t=a(i)?t.$updated(f,[s.$fix_var_name(r),i]):t.$updated(f,[s.$fix_var_name(r)]),l(s,c(s,"on_lvasgn",e,!1,!0),"on_lvasgn",[t],null)})),o(h,"$on_ivar",(function e(t){var n,r,i=this;return e.$$p=null,r=null==(n=[].concat(u(t)))[0]?f:n[0],null==n[1]?f:n[1],t=t.$updated(f,[i.$fix_ivar_name(r)]),l(i,c(i,"on_ivar",e,!1,!0),"on_ivar",[t],null)})),o(h,"$on_ivasgn",(function e(t){var n,r,i,s=this;return e.$$p=null,r=null==(n=[].concat(u(t)))[0]?f:n[0],i=null==n[1]?f:n[1],t=a(i)?t.$updated(f,[s.$fix_ivar_name(r),i]):t.$updated(f,[s.$fix_ivar_name(r)]),l(s,c(s,"on_ivasgn",e,!1,!0),"on_ivasgn",[t],null)})),o(h,"$on_restarg",(function(e){var t,n;return n=null==(t=[].concat(u(e)))[0]?f:t[0],null==t[1]?f:t[1],a(n)&&(e=e.$updated(f,[this.$fix_var_name(n)],new Map([["meta",new Map([["arg_name",n]])]]))),e})),_(h,"on_kwrestarg","on_restarg"),o(h,"$on_argument",(function e(t){var n,r,i,s,o,$=this;return e.$$p=null,t=l($,c($,"on_argument",e,!1,!0),"on_argument",[t],null),r=null==(n=[].concat(u(t)))[0]?f:n[0],i=null==n[1]?f:n[1],s=$.$fix_var_name(r),o=a(i)?[s,i]:[s],t.$updated(f,o,new Map([["meta",new Map([["arg_name",r]])]]))}))}(h[0],m("Base"),h)}(h[0],h)}(p[0],p)},Opal.modules["opal/rewriters/block_to_iter"]=function(e){var t=e.module,n=e.klass,r=e.to_a,i=e.rb_plus,a=e.def,s=e.top,o=[],$=e.nil;return e.add_stubs("require,s,process,updated,+,children"),s.$require("opal/rewriters/base"),function(s,o){var u=[t(s,"Opal")].concat(o);return function(s,o){var u=[t(s,"Rewriters")].concat(o),l=e.$r(u);return function(e,t){var s=n(e,t,"BlockToIter");return a(s,"$on_block",(function(e){var t,n,a,s,o=$;return o=null==(t=[].concat(r(e)))[0]?$:t[0],n=null==t[1]?$:t[1],a=null==t[2]?$:t[2],s=this.$s("iter",n,a),this.$process(o.$updated($,i(o.$children(),[s])))}))}(u[0],l("Base"))}(u[0],u)}(o[0],o)},Opal.modules["opal/rewriters/dot_js_syntax"]=function(e){var t=e.module,n=e.klass,r=e.to_a,i=e.slice,a=e.eqeq,s=e.truthy,o=e.neqeq,$=e.send2,u=e.find_super,l=e.def,c=e.send,_=e.top,d=[],p=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(_,d){var f=[t(_,"Opal")].concat(d);return function(_,d){var f=[t(_,"Rewriters")].concat(d),h=e.$r(f);return function(e,t){var _=n(e,t,"DotJsSyntax");return l(_,"$on_send",(function e(t){var n,l=e.$$p||p,c=this,_=p,d=p,f=p,h=p,m=p,g=p,v=p;if(e.$$p=null,_=null==(n=[].concat(r(t)))[0]?p:n[0],d=null==n[1]?p:n[1],f=i(n,2),s(_)&&a(_.$type(),"send")){if(h=null==(n=[].concat(r(_)))[0]?p:n[0],m=null==n[1]?p:n[1],null==n[2]?p:n[2],a(m,"JS")){switch(d.valueOf()){case"[]":o(f.$size(),1)&&c.$error(".JS[:property] syntax supports only one argument"),g=f.$first(),t=c.$to_js_attr_call(h,g);break;case"[]=":o(f.$size(),2)&&c.$error(".JS[:property]= syntax supports only two arguments"),g=null==(n=[].concat(r(f)))[0]?p:n[0],v=null==n[1]?p:n[1],t=c.$to_js_attr_assign_call(h,g,v);break;default:t=c.$to_native_js_call(h,d,f)}return $(c,u(c,"on_send",e,!1,!0),"on_send",[t],null)}return $(c,u(c,"on_send",e,!1,!0),"on_send",[t],l)}return $(c,u(c,"on_send",e,!1,!0),"on_send",[t],l)})),l(_,"$to_native_js_call",(function(e,t,n){return c(this,"s",["jscall",e,t].concat(r(n)))})),l(_,"$to_js_attr_call",(function(e,t){return this.$s("jsattr",e,t)})),l(_,"$to_js_attr_assign_call",(function(e,t,n){return this.$s("jsattrasgn",e,t,n)}))}(f[0],h("Base"))}(f[0],f)}(d[0],d)},Opal.modules["opal/rewriters/pattern_matching"]=function(e){var t=e.module,n=e.klass,r=e.send2,i=e.find_super,a=e.def,s=e.to_a,o=e.rb_plus,$=e.slice,u=e.truthy,l=e.send,c=e.not,_=e.neqeq,d=e.eqeq,p=e.return_ivar,f=e.alias,h=e.eqeqeq,m=e.Opal,g=e.top,v=[],b=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,v){var w=[t(g,"Opal")].concat(v);return function(g,v){var w=[t(g,"Rewriters")].concat(v),x=e.$r(w);return function(t,g,v){var w=n(t,g,"PatternMatching"),x=[w].concat(v),k=e.$r(x);return w.$$prototype.depth=b,a(w,"$initialize",(function e(){var t=e.$$p||b,n=this;return e.$$p=null,n.depth=0,r(n,i(n,"initialize",e,!1,!0),"initialize",[],t)})),a(w,"$on_match_pattern",(function(e){var t,n,r,i=this;return n=null==(t=[].concat(s(e)))[0]?b:t[0],r=null==t[1]?b:t[1],i.$s("begin",i.$s("lvasgn","$pmvar",n),i.$s("if",i.$convert_full_pattern(n,r),b,i.$raise_no_matching_pattern_error("$pmvar")))})),a(w,"$on_match_pattern_p",(function(e){var t,n,r,i=this;return n=null==(t=[].concat(s(e)))[0]?b:t[0],r=null==t[1]?b:t[1],i.$s("if",i.$convert_full_pattern(n,r),i.$s("true"),i.$s("false"))})),a(w,"$on_case_match",(function(e){var t,n,r,i,a=this,c=b,_=b;return a.depth=o(a.depth,1),c="$cmvar"+a.depth,r=null==(t=[].concat(s(e)))[0]?b:t[0],n=t.length-1,i=$(t,1,n=n<1?1:n),_=null==t[n]?b:t[n],u(_)?a.$process(_):_=a.$raise_no_matching_pattern_error(c),a.$s("begin",a.$s("lvasgn",c,r),l(a,"single_case_match",[c].concat(s(i)).concat([_])))})),w.$private(),a(w,"$raise_no_matching_pattern_error",(function(e){var t=this;return t.$s("send",b,"raise",t.$s("const",t.$s("cbase"),"NoMatchingPatternError"),t.$s("lvar",e))})),a(w,"$single_case_match",(function(e,t,n){var r,i,a,o,d,p,f=this,h=b,m=b,g=b;if(i=(r=$(arguments,1)).splice(0,r.length-1),null==(a=r.shift())&&(a=b),d=i.$shift(),h=null==(o=[].concat(s(d)))[0]?b:o[0],m=null==o[1]?b:o[1],p=null==o[2]?b:o[2],h=f.$convert_full_pattern(e,h),u(m))switch(g=null==(o=[].concat(s(m)))[0]?b:o[0],m.$type().valueOf()){case"if_guard":h=f.$s("and",h,g);break;case"unless_guard":h=f.$s("and",h,f.$s("send",g,"!"))}return f.$s("if",h,f.$process(p),c(i["$empty?"]())?l(f,"single_case_match",[e].concat(s(i)).concat([a])):_(a,f.$s("empty_else"))?a:b)}),-3),a(w,"$convert_full_pattern",(function(e,t){var n=this,r=b;return d(e.$class(),k("Symbol"))&&(e=n.$s("lvar",e)),(r=k("PatternConverter").$new(t))["$run!"](),n.$s("masgn",l(n,"s",["mlhs"].concat(s(r.$variables()))),n.$s("send",n.$s("const",n.$s("cbase"),"PatternMatching"),"call",e,r.$pattern()))})),function(t,r,i){var c=n(t,r,"PatternConverter"),_=[c].concat(i),d=e.$r(_),m=c.$$prototype;return m.pat=m.variables=b,a(c,"$initialize",(function(e){return this.pat=e,this.variables=[]})),a(c,"$run!",(function(){var e=this;return e.outpat=e.$process(e.pat)})),a(c,"$pattern",p("outpat")),a(c,"$variables",(function(){return l(this.variables,"map",[],(function e(t){return null==t&&(t=b),(null==e.$$s?this:e.$$s).$s("lvasgn",t)}),{$$s:this})})),a(c,"$on_match_var",(function(e){var t,n;return n=null==(t=[].concat(s(e)))[0]?b:t[0],this.variables["$<<"](n),this.$s("sym","var")})),a(c,"$on_match_as",(function(e){var t,n,r,i=this;return n=null==(t=[].concat(s(e)))[0]?b:t[0],r=null==t[1]?b:t[1],i.$process(r),i.$array(i.$s("sym","save"),i.$process(n))})),a(c,"$on_literal",(function(e){return this.$array(this.$s("sym","lit"),e)})),f(c,"on_int","on_literal"),f(c,"on_float","on_literal"),f(c,"on_complex","on_literal"),f(c,"on_rational","on_literal"),f(c,"on_array","on_literal"),f(c,"on_str","on_literal"),f(c,"on_dstr","on_literal"),f(c,"on_xstr","on_literal"),f(c,"on_sym","on_literal"),f(c,"on_irange","on_literal"),f(c,"on_erange","on_literal"),f(c,"on_const","on_literal"),f(c,"on_regexp","on_literal"),f(c,"on_lambda","on_literal"),f(c,"on_begin","on_literal"),a(c,"$on_pin",(function(e){return this.$on_literal(e.$children().$first())})),a(c,"$on_match_rest",(function(e){var t=this;return u(e.$children()["$empty?"]())?t.$array(t.$s("sym","rest")):t.$array(t.$s("sym","rest"),t.$process(e.$children().$first()))})),a(c,"$on_match_alt",(function(e){var t=this;return l(t,"array",[t.$s("sym","any")].concat(s(l(e.$children(),"map",[],t.$method("process").$to_proc()))))})),a(c,"$on_const_pattern",(function(e){var t=this;return l(t,"array",[t.$s("sym","all")].concat(s(l(e.$children(),"map",[],t.$method("process").$to_proc()))))})),a(c,"$on_array_pattern",(function(e,t){var n=this,r=b,i=b,a=b;return null==t&&(t=!1),r=[].concat(s(e)),u(t)&&r["$<<"](n.$s("match_rest")),i=!0,a=0,r=l(r,"each",[],(function(e){return null==e&&(e=b),"match_rest"===e.$type().valueOf()?i=!1:a=o(a,1)})),n.$array(n.$s("sym","array"),n.$to_ast(i),n.$to_ast(a),n.$to_ast(l(r,"map",[],n.$method("process").$to_proc())))}),-2),a(c,"$on_array_pattern_with_tail",(function(e){return this.$on_array_pattern(e,!0)})),a(c,"$on_hash_pattern",(function(e){var t=this,n=b,r=b;return n=[].concat(s(e)),r=u(n["$empty?"]())?t.$to_ast(!1):t.$to_ast(!0),n=l(n,"map",[],(function e(t){var n=null==e.$$s?this:e.$$s;switch(null==t&&(t=b),t.$type().valueOf()){case"pair":return n.$array(t.$children()["$[]"](0),n.$process(t.$children()["$[]"](1)));case"match_var":return n.$array(n.$s("sym",t.$children()["$[]"](0)),n.$process(t));case"match_nil_pattern":return r=n.$to_ast(!1),b;case"match_rest":return r=u(t.$children().$first())?n.$process(t.$children().$first()):n.$to_ast(!0),b;default:return b}}),{$$s:t}).$compact(),t.$array(t.$s("sym","hash"),r,l(t,"array",s(n)))})),a(c,"$on_find_pattern",(function(e){var t=this,n=b;return n=[].concat(s(e)),n=l(n,"map",[],t.$method("process").$to_proc()),t.$array(t.$s("sym","find"),l(t,"array",s(n)))})),c.$private(),a(c,"$array",(function(e){var t;return t=$(arguments),this.$to_ast(t)}),-1),a(c,"$to_ast",(function(e){var t,n=this;return h(d("Array"),t=e)?l(n,"s",["array"].concat(s(e))):h(d("Integer"),t)?n.$s("int",e):h(!0,t)?n.$s("true"):h(!1,t)?n.$s("false"):h(b,t)?n.$s("nil"):b}))}(x[0],y(y(m,"Rewriters"),"Base"),x)}(w[0],x("Base"),w)}(w[0],w)}(v[0],v)},Opal.modules["opal/rewriters/logical_operator_assignment"]=function(e){var t=e.module,n=e.klass,r=e.class_variable_set,i=e.defs,a=e.truthy,s=e.class_variable_get,o=e.rb_plus,$=e.const_set,u=e.lambda,l=e.eqeq,c=e.to_a,_=e.slice,d=e.send,p=e.def,f=e.send2,h=e.find_super,m=e.top,g=[],v=e.nil;return e.add_stubs("require,+,updated,s,==,include?,[],type,new_temp,freeze,call,fetch,error,process"),m.$require("opal/rewriters/base"),function(m,g){var b=[t(m,"Opal")].concat(g);return function(m,g){var b=[t(m,"Rewriters")].concat(g),y=e.$r(b);return function(t,m,g){var b=n(t,m,"LogicalOperatorAssignment"),y=[b].concat(g),w=e.$r(y);return i(b,"$reset_tmp_counter!",(function(){return r(y[0],"@@counter",0)})),i(b,"$new_temp",(function(){var e=v;return r(y[0],"@@counter",a(null!=y[0].$$cvars["@@counter"]?"class variable":v)&&a(e=s(y[0],"@@counter",!1))?e:0),r(y[0],"@@counter",o(s(y[0],"@@counter",!1),1)),"$logical_op_recvr_tmp_"+s(y[0],"@@counter",!1)})),$(y[0],"GET_SET",u((function e(t,n){return null==t&&(t=v),null==n&&(n=v),u((function e(r,i,s){var o,$=null==e.$$s?this:e.$$s,u=v,_=v;return null==r&&(r=v),null==i&&(i=v),null==s&&(s=v),o=r.$updated(t),u=$.$s(s,o,i),a(["const","cvar"]["$include?"](t))&&l(s,"or")&&(_=$.$s("defined?",o),u=$.$s("if",_,$.$s("begin",u),i)),r.$updated(n,[].concat(c(r)).concat([u]))}),{$$s:null==e.$$s?this:e.$$s})}),{$$s:b})),$(y[0],"LocalVariableHandler",w("GET_SET")["$[]"]("lvar","lvasgn")),$(y[0],"InstanceVariableHandler",w("GET_SET")["$[]"]("ivar","ivasgn")),$(y[0],"ConstantHandler",w("GET_SET")["$[]"]("const","casgn")),$(y[0],"GlobalVariableHandler",w("GET_SET")["$[]"]("gvar","gvasgn")),$(y[0],"ClassVariableHandler",w("GET_SET")["$[]"]("cvar","cvasgn")),function(e,t){var r=n(e,t,"SendHandler");i(r,"$call",(function(e,t,n){var r,i,s,o,$,u=this,d=v,p=v,f=v,h=v,m=v;return d=null==(r=[].concat(c(e)))[0]?v:r[0],p=null==r[1]?v:r[1],i=_(r,2),a(d)&&l(d.$type(),"send")&&(f=u.$new_temp(),h=u.$s("lvasgn",f,d),d=u.$s("js_tmp",f)),m=p+"=",s=e.$updated("send",[d,p].concat(c(i))),o=e.$updated("send",[d,m].concat(c(i)).concat([t])),$=u.$s(n,s,o),a(h)?u.$s("begin",h,$):$}))}(y[0],b),function(e,t){var r=n(e,t,"ConditionalSendHandler");i(r,"$call",(function(e,t,n){var r,i,a,s,o,$,u,l=this,d=v,p=v;return n+="_asgn",d=null==(r=[].concat(c(e)))[0]?v:r[0],p=null==r[1]?v:r[1],i=_(r,2),a=l.$new_temp(),s=l.$s("lvasgn",a,d),d=l.$s("js_tmp",a),o=l.$s("send",d,"nil?"),$=e.$updated("send",[d,p].concat(c(i))),u=l.$s(n,$,t),l.$s("begin",s,l.$s("if",o,l.$s("nil"),u))}))}(y[0],b),$(y[0],"HANDLERS",new Map([["lvasgn",w("LocalVariableHandler")],["ivasgn",w("InstanceVariableHandler")],["casgn",w("ConstantHandler")],["gvasgn",w("GlobalVariableHandler")],["cvasgn",w("ClassVariableHandler")],["send",w("SendHandler")],["csend",w("ConditionalSendHandler")]]).$freeze()),p(b,"$on_or_asgn",(function(e){var t,n,r,i=v;return t=[].concat(c(e)),i=null==t[0]?v:t[0],n=null==t[1]?v:t[1],r=d(w("HANDLERS"),"fetch",[i.$type()],(function e(){return(null==e.$$s?this:e.$$s).$error("cannot handle LHS type: "+i.$type())}),{$$s:this}).$call(i,n,"or"),this.$process(r)})),p(b,"$on_and_asgn",(function(e){var t,n,r,i=v;return t=[].concat(c(e)),i=null==t[0]?v:t[0],n=null==t[1]?v:t[1],r=d(w("HANDLERS"),"fetch",[i.$type()],(function e(){return(null==e.$$s?this:e.$$s).$error("cannot handle LHS type: "+i.$type())}),{$$s:this}).$call(i,n,"and"),this.$process(r)})),$(y[0],"ASSIGNMENT_STRING_NODE",b.$s("str","assignment")),p(b,"$on_defined?",(function e(t){var n,r=v;return e.$$p=null,r=null==(n=[].concat(c(t)))[0]?v:n[0],null==n[1]?v:n[1],a(["or_asgn","and_asgn"]["$include?"](r.$type()))?w("ASSIGNMENT_STRING_NODE"):f(this,h(this,"on_defined?",e,!1,!0),"on_defined?",[t],null)}))}(b[0],y("Base"),b)}(b[0],b)}(g[0],g)},Opal.modules["opal/rewriters/binary_operator_assignment"]=function(e){var t=e.module,n=e.klass,r=e.class_variable_set,i=e.defs,a=e.truthy,s=e.class_variable_get,o=e.rb_plus,$=e.const_set,u=e.lambda,l=e.to_a,c=e.slice,_=e.eqeq,d=e.send,p=e.def,f=e.send2,h=e.find_super,m=e.top,g=[],v=e.nil;return e.add_stubs("require,+,updated,[],==,type,new_temp,s,freeze,call,fetch,error,process"),m.$require("opal/rewriters/base"),function(m,g){var b=[t(m,"Opal")].concat(g);return function(m,g){var b=[t(m,"Rewriters")].concat(g),y=e.$r(b);return function(t,m,g){var b=n(t,m,"BinaryOperatorAssignment"),y=[b].concat(g),w=e.$r(y);return i(b,"$reset_tmp_counter!",(function(){return r(y[0],"@@counter",0)})),i(b,"$new_temp",(function(){var e=v;return r(y[0],"@@counter",a(null!=y[0].$$cvars["@@counter"]?"class variable":v)&&a(e=s(y[0],"@@counter",!1))?e:0),r(y[0],"@@counter",o(s(y[0],"@@counter",!1),1)),"$binary_op_recvr_tmp_"+s(y[0],"@@counter",!1)})),$(y[0],"GET_SET",u((function(e,t){return null==e&&(e=v),null==t&&(t=v),u((function(n,r,i,a){var s,o;return null==n&&(n=v),null==r&&(r=v),null==i&&(i=v),null==a&&(a=v),s=r.$updated(e),o=n.$updated("send",[s,i,a]),r.$updated(t,[].concat(l(r)).concat([o]))}))}))),$(y[0],"LocalVariableHandler",w("GET_SET")["$[]"]("lvar","lvasgn")),$(y[0],"InstanceVariableHandler",w("GET_SET")["$[]"]("ivar","ivasgn")),$(y[0],"ConstantHandler",w("GET_SET")["$[]"]("const","casgn")),$(y[0],"GlobalVariableHandler",w("GET_SET")["$[]"]("gvar","gvasgn")),$(y[0],"ClassVariableHandler",w("GET_SET")["$[]"]("cvar","cvasgn")),function(e,t){var r=n(e,t,"SendHandler");i(r,"$call",(function(e,t,n,r){var i,s,o,$,u,d=this,p=v,f=v,h=v,m=v,g=v;return p=null==(i=[].concat(l(t)))[0]?v:i[0],f=null==i[1]?v:i[1],s=c(i,2),a(p)&&_(p.$type(),"send")&&(h=d.$new_temp(),m=d.$s("lvasgn",h,p),p=d.$s("js_tmp",h)),g=f+"=",o=t.$updated("send",[p,f].concat(l(s))),$=e.$updated("send",[o,n,r]),u=t.$updated("send",[p,g].concat(l(s)).concat([$])),a(m)?e.$updated("begin",[m,u]):u}))}(y[0],b),function(e,t){var r=n(e,t,"ConditionalSendHandler");i(r,"$call",(function(e,t,n,r){var i,a,s,o,$,u,_,d=this,p=v,f=v;return p=null==(i=[].concat(l(t)))[0]?v:i[0],f=null==i[1]?v:i[1],a=c(i,2),s=d.$new_temp(),o=d.$s("lvasgn",s,p),p=d.$s("js_tmp",s),$=d.$s("send",p,"nil?"),u=t.$updated("send",[p,f].concat(l(a))),_=e.$updated("op_asgn",[u,n,r]),d.$s("begin",o,d.$s("if",$,d.$s("nil"),_))}))}(y[0],b),$(y[0],"HANDLERS",new Map([["lvasgn",w("LocalVariableHandler")],["ivasgn",w("InstanceVariableHandler")],["casgn",w("ConstantHandler")],["gvasgn",w("GlobalVariableHandler")],["cvasgn",w("ClassVariableHandler")],["send",w("SendHandler")],["csend",w("ConditionalSendHandler")]]).$freeze()),p(b,"$on_op_asgn",(function(e){var t,n,r,i,a=v;return t=[].concat(l(e)),a=null==t[0]?v:t[0],n=null==t[1]?v:t[1],r=null==t[2]?v:t[2],i=d(w("HANDLERS"),"fetch",[a.$type()],(function e(){return(null==e.$$s?this:e.$$s).$error("cannot handle LHS type: "+a.$type())}),{$$s:this}).$call(e,a,n,r),this.$process(i)})),$(y[0],"ASSIGNMENT_STRING_NODE",b.$s("str","assignment")),p(b,"$on_defined?",(function e(t){var n,r=v;return e.$$p=null,r=null==(n=[].concat(l(t)))[0]?v:n[0],null==n[1]?v:n[1],_(r.$type(),"op_asgn")?w("ASSIGNMENT_STRING_NODE"):f(this,h(this,"on_defined?",e,!1,!0),"on_defined?",[t],null)}))}(b[0],y("Base"),b)}(b[0],b)}(g[0],g)},Opal.modules["opal/rewriters/hashes/key_duplicates_rewriter"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.send2,a=e.find_super,s=e.to_a,o=e.truthy,$=e.eqeq,u=e.Opal,l=e.top,c=[],_=e.nil,d=e.$$$;return e.add_stubs("require,new,include?,type,<<,==,process_regular_node,updated,inspect,warn"),l.$require("opal/rewriters/base"),l.$require("set"),function(l,c){var p=[t(l,"Opal")].concat(c);return function(l,c){var p=[t(l,"Rewriters")].concat(c);return function(l,c){var p=[t(l,"Hashes")].concat(c);return function(t,u,l){var c=n(t,u,"KeyDuplicatesRewriter"),d=[c].concat(l),p=e.$r(d);return c.$$prototype.keys=_,r(c,"$initialize",(function(){return this.keys=p("UniqKeysSet").$new()})),r(c,"$on_hash",(function e(t){var n,r=this,s=_;return e.$$p=null,function(){try{return n=[r.keys,p("UniqKeysSet").$new()],s=n[0],r.keys=n[1],i(r,a(r,"on_hash",e,!1,!0),"on_hash",[t],null)}finally{r.keys=s}}()})),r(c,"$on_pair",(function e(t){var n,r=this,$=_;return e.$$p=null,$=null==(n=[].concat(s(t)))[0]?_:n[0],null==n[1]?_:n[1],o(["str","sym"]["$include?"]($.$type()))&&r.keys["$<<"]($),i(r,a(r,"on_pair",e,!1,!0),"on_pair",[t],null)})),r(c,"$on_kwsplat",(function(e){var t,n=_;return n=null==(t=[].concat(s(e)))[0]?_:t[0],null==t[1]?_:t[1],$(n.$type(),"hash")&&(n=this.$process_regular_node(n)),e.$updated(_,[n])})),function(t,i,a){var u=n(t,null,"UniqKeysSet"),l=[u].concat(a),c=e.$r(l);return u.$$prototype.set=_,r(u,"$initialize",(function(){return this.set=c("Set").$new()})),r(u,"$<<",(function(e){var t,n=_;return o(this.set["$include?"](e))?(n=null==(t=[].concat(s(e)))[0]?_:t[0],null==t[1]?_:t[1],n=$(e.$type(),"str")?n.$inspect():":"+n,c("Kernel").$warn("warning: key "+n+" is duplicated and overwritten")):this.set["$<<"](e)}))}(d[0],0,d)}(p[0],d(d(u,"Rewriters"),"Base"),p)}(p[0],p)}(p[0],p)}(c[0],c)},Opal.modules["opal/rewriters/dump_args"]=function(e){var t=e.module,n=e.klass,r=e.send2,i=e.find_super,a=e.to_a,s=e.def,o=e.top,$=[],u=e.nil;return e.add_stubs("require,updated"),o.$require("opal/rewriters/base"),function(o,$){var l=[t(o,"Opal")].concat($);return function(o,$){var l=[t(o,"Rewriters")].concat($),c=e.$r(l);return function(e,t){var o=n(e,t,"DumpArgs");return s(o,"$on_def",(function e(t){var n,s;return e.$$p=null,t=r(this,i(this,"on_def",e,!1,!0),"on_def",[t],null),null==(n=[].concat(a(t)))[0]?u:n[0],s=null==n[1]?u:n[1],null==n[2]?u:n[2],t.$updated(u,u,new Map([["meta",new Map([["original_args",s]])]]))})),s(o,"$on_defs",(function e(t){var n,s;return e.$$p=null,t=r(this,i(this,"on_defs",e,!1,!0),"on_defs",[t],null),null==(n=[].concat(a(t)))[0]?u:n[0],null==n[1]?u:n[1],s=null==n[2]?u:n[2],null==n[3]?u:n[3],t.$updated(u,u,new Map([["meta",new Map([["original_args",s]])]]))})),s(o,"$on_iter",(function e(t){var n,s;return e.$$p=null,t=r(this,i(this,"on_iter",e,!1,!0),"on_iter",[t],null),s=null==(n=[].concat(a(t)))[0]?u:n[0],null==n[1]?u:n[1],t.$updated(u,u,new Map([["meta",new Map([["original_args",s]])]]))}))}(l[0],c("Base"))}(l[0],l)}($[0],$)},Opal.modules["opal/rewriters/deduplicate_arg_name"]=function(e){var t=e.module,n=e.klass,r=e.send,i=e.send2,a=e.find_super,s=e.def,o=e.truthy,$=e.to_ary,u=e.rb_plus,l=e.rb_gt,c=[],_=e.nil;return e.add_stubs("new,map,children,rename_arg,updated,type,[],unique_name,[]=,+,>"),function(c,d){var p=[t(c,"Opal")].concat(d);return function(c,d){var p=[t(c,"Rewriters")].concat(d),f=e.$r(p);return function(t,c,d){var p=n(t,c,"DeduplicateArgName"),f=[p].concat(d),h=e.$r(f);return p.$$prototype.arg_name_count=_,s(p,"$on_args",(function e(t){var n,s=this;return e.$$p=null,s.arg_name_count=h("Hash").$new(0),n=r(t.$children(),"map",[],(function e(t){return null==t&&(t=_),(null==e.$$s?this:e.$$s).$rename_arg(t)}),{$$s:s}),i(s,a(s,"on_args",e,!1,!0),"on_args",[t.$updated(_,n)],null)})),s(p,"$rename_arg",(function(e){var t,n,i=this,a=_,s=_,u=_;switch(e.$type().valueOf()){case"arg":case"restarg":case"kwarg":case"kwrestarg":case"blockarg":return a=e.$children()["$[]"](0),o(a)?e.$updated(_,[i.$unique_name(a)]):e;case"optarg":case"kwoptarg":return n=e.$children(),a=null==(t=$(n))[0]?_:t[0],s=null==t[1]?_:t[1],e.$updated(_,[i.$unique_name(a),s]);case"mlhs":return u=r(e.$children(),"map",[],(function e(t){return null==t&&(t=_),(null==e.$$s?this:e.$$s).$rename_arg(t)}),{$$s:i}),e.$updated(_,u);default:return e}})),s(p,"$unique_name",(function(e){var t,n=_;return t=[e,u(this.arg_name_count["$[]"](e),1)],r(this.arg_name_count,"[]=",t),o(l(n=t[t.length-1],1))?e+"_$"+n:e}))}(p[0],f("Base"),p)}(p[0],p)}(c[0],c)},Opal.modules["opal/rewriters/mlhs_args"]=function(e){var t=e.module,n=e.klass,r=e.send2,i=e.find_super,a=e.to_a,s=e.truthy,o=e.def,$=e.assign_ivar_val,u=e.rb_plus,l=e.send,c=e.eqeq,_=e.top,d=[],p=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(_,d){var f=[t(_,"Opal")].concat(d);return function(_,d){var f=[t(_,"Rewriters")].concat(d),h=e.$r(f);return function(t,_,d){var f=n(t,_,"MlhsArgs"),h=[f].concat(d),m=e.$r(h);return o(f,"$on_def",(function e(t){var n,o,$=this,u=p,l=p,c=p,_=p;return e.$$p=null,t=r($,i($,"on_def",e,!1,!0),"on_def",[t],null),o=null==(n=[].concat(a(t)))[0]?p:n[0],u=null==n[1]?p:n[1],l=null==n[2]?p:n[2],c=m("Arguments").$new(u),u=u.$updated(p,c.$rewritten()),s(c.$initialization())&&(l=s(_=l)?_:$.$s("nil"),l=$.$prepend_to_body(l,c.$initialization())),t.$updated(p,[o,u,l])})),o(f,"$on_defs",(function e(t){var n,o,$,u=this,l=p,c=p,_=p,d=p;return e.$$p=null,t=r(u,i(u,"on_defs",e,!1,!0),"on_defs",[t],null),o=null==(n=[].concat(a(t)))[0]?p:n[0],$=null==n[1]?p:n[1],l=null==n[2]?p:n[2],c=null==n[3]?p:n[3],_=m("Arguments").$new(l),l=l.$updated(p,_.$rewritten()),s(_.$initialization())&&(c=s(d=c)?d:u.$s("nil"),c=u.$prepend_to_body(c,_.$initialization())),t.$updated(p,[o,$,l,c])})),o(f,"$on_iter",(function e(t){var n,o=this,$=p,u=p,l=p,c=p;return e.$$p=null,t=r(o,i(o,"on_iter",e,!1,!0),"on_iter",[t],null),$=null==(n=[].concat(a(t)))[0]?p:n[0],u=null==n[1]?p:n[1],l=m("Arguments").$new($),$=$.$updated(p,l.$rewritten()),s(l.$initialization())&&(u=s(c=u)?c:o.$s("nil"),u=o.$prepend_to_body(u,l.$initialization())),t.$updated(p,[$,u])})),function(t,r,i){var _=n(t,r,"Arguments"),d=[_].concat(i),f=e.$r(d),h=_.$$prototype;h.counter=h.args=h.initialization=p,_.$attr_reader("rewritten","initialization"),o(_,"$initialize",(function(e){var t=this;return t.args=e,t.rewritten=[],t.initialization=[],t.rewriter=f("MlhsRewriter").$new(),t["$split!"]()})),o(_,"$reset_tmp_counter!",$("counter",0)),o(_,"$new_mlhs_tmp",(function(){var e,t=this;return t.counter=s(e=t.counter)?e:0,t.counter=u(t.counter,1),"$mlhs_tmp"+t.counter})),o(_,"$split!",(function(){var e=this;return l(e.args.$children(),"each",[],(function e(t){var n=null==e.$$s?this:e.$$s,r=p,i=p,a=p;return null==n.rewriter&&(n.rewriter=p),null==n.initialization&&(n.initialization=p),null==n.rewritten&&(n.rewritten=p),null==t&&(t=p),c(t.$type(),"mlhs")?(r=n.$new_mlhs_tmp(),i=n.$s("lvar",r),a=n.rewriter.$process(t),n.initialization["$<<"](n.$s("masgn",a,i)),n.rewritten["$<<"](n.$s("arg",r).$updated(p,p,new Map([["meta",new Map([["arg_name",r]])]])))):n.rewritten["$<<"](t)}),{$$s:e}),c(e.initialization.$length(),1)?e.initialization=e.initialization["$[]"](0):s(e.initialization["$empty?"]())?e.initialization=p:e.initialization=l(e,"s",["begin"].concat(a(e.initialization)))}))}(h[0],m("Base"),h),function(e,t){var r=n(e,t,"MlhsRewriter");return o(r,"$on_arg",(function(e){return e.$updated("lvasgn")})),o(r,"$on_restarg",(function(e){var t;return t=e.$children()["$[]"](0),s(t)?this.$s("splat",e.$updated("lvasgn")):this.$s("splat")}))}(h[0],m("Base"))}(f[0],h("Base"),f)}(f[0],f)}(d[0],d)},Opal.modules["opal/rewriters/arguments"]=function(e){var t=e.module,n=e.klass,r=e.send,i=e.truthy,a=e.def,s=[],o=e.nil;return e.add_stubs("attr_reader,each,type,<<,any?,raise,!,nil?,has_any_kwargs?,can_inline_kwargs?,empty?"),function(e,s){var $=[t(e,"Opal")].concat(s);return function(e,s){return function(e,t){var s=n(e,null,"Arguments"),$=s.$$prototype;return $.restarg=$.postargs=$.kwargs=$.kwoptargs=$.kwrestarg=$.optargs=o,s.$attr_reader("args","optargs","restarg","postargs","kwargs","kwoptargs","kwrestarg","kwnilarg","shadowargs","blockarg"),a(s,"$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,r(e,"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;switch(null==n.optargs&&(n.optargs=o),null==n.restarg&&(n.restarg=o),null==n.postargs&&(n.postargs=o),null==n.args&&(n.args=o),null==n.kwargs&&(n.kwargs=o),null==n.kwoptargs&&(n.kwoptargs=o),null==n.shadowargs&&(n.shadowargs=o),null==t&&(t=o),t.$type().valueOf()){case"arg":case"mlhs":return(i(n.restarg)||i(n.optargs["$any?"]())?n.postargs:n.args)["$<<"](t);case"optarg":return n.optargs["$<<"](t);case"restarg":return n.restarg=t;case"kwarg":return n.kwargs["$<<"](t);case"kwoptarg":return n.kwoptargs["$<<"](t);case"kwnilarg":return n.kwnilarg=!0;case"kwrestarg":return n.kwrestarg=t;case"shadowarg":return n.shadowargs["$<<"](t);case"blockarg":return n.blockarg=t;default:return n.$raise("Unsupported arg type "+t.$type())}}),{$$s:t})})),a(s,"$has_post_args?",(function(){var e,t=this,n=o;return i(e=i(n=t.restarg["$nil?"]()["$!"]())?n:t.postargs["$any?"]())?e:i(n=t["$has_any_kwargs?"]())?t["$can_inline_kwargs?"]()["$!"]():n})),a(s,"$has_any_kwargs?",(function(){var e,t,n=this;return i(e=i(t=n.kwargs["$any?"]())?t:n.kwoptargs["$any?"]())?e:n.kwrestarg["$nil?"]()["$!"]()})),a(s,"$can_inline_kwargs?",(function(){var e,t,n=this;return i(e=i(t=n.optargs["$empty?"]())?n.restarg["$nil?"]():t)?n.postargs["$empty?"]():e}))}([t(e,"Rewriters")].concat(s)[0])}($[0],$)}(s[0],s)},Opal.modules["opal/rewriters/inline_args"]=function(e){var t=e.module,n=e.klass,r=e.send2,i=e.find_super,a=e.to_a,s=e.truthy,o=e.def,$=e.const_set,u=e.ensure_kwargs,l=e.get_kwarg,c=e.send,_=e.eqeq,d=e.Opal,p=e.top,f=[],h=e.nil,m=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,[]"),p.$require("opal/rewriters/base"),p.$require("opal/rewriters/arguments"),function(p,f){var g=[t(p,"Opal")].concat(f);return function(p,f){var g=[t(p,"Rewriters")].concat(f),v=e.$r(g);return function(t,p,f){var g=n(t,p,"InlineArgs"),v=[g].concat(f),b=e.$r(v);return o(g,"$on_def",(function e(t){var n,o,$,u,l=this,c=h,_=h,d=h;return e.$$p=null,t=r(l,i(l,"on_def",e,!1,!0),"on_def",[t],null),o=null==(n=[].concat(a(t)))[0]?h:n[0],c=null==n[1]?h:n[1],_=null==n[2]?h:n[2],_=s($=_)?$:l.$s("nil"),d=b("Initializer").$new(c,new Map([["type","def"]])),u=c.$updated(h,d.$inline()),_=l.$prepend_to_body(_,d.$initialization()),t.$updated(h,[o,u,_])})),o(g,"$on_defs",(function e(t){var n,o,$,u,l,c=this,_=h,d=h,p=h;return e.$$p=null,t=r(c,i(c,"on_defs",e,!1,!0),"on_defs",[t],null),o=null==(n=[].concat(a(t)))[0]?h:n[0],$=null==n[1]?h:n[1],_=null==n[2]?h:n[2],d=null==n[3]?h:n[3],d=s(u=d)?u:c.$s("nil"),p=b("Initializer").$new(_,new Map([["type","defs"]])),l=_.$updated(h,p.$inline()),d=c.$prepend_to_body(d,p.$initialization()),t.$updated(h,[o,$,l,d])})),o(g,"$on_iter",(function e(t){var n,o,$,u=this,l=h,c=h,_=h;return e.$$p=null,t=r(u,i(u,"on_iter",e,!1,!0),"on_iter",[t],null),l=null==(n=[].concat(a(t)))[0]?h:n[0],c=null==n[1]?h:n[1],c=s(o=c)?o:u.$s("nil"),_=b("Initializer").$new(l,new Map([["type","iter"]])),$=l.$updated(h,_.$inline()),c=u.$prepend_to_body(c,_.$initialization()),t.$updated(h,[$,c])})),function(t,r,i){var d=n(t,r,"Initializer"),p=[d].concat(i),f=e.$r(p),m=d.$$prototype;return m.initialization=m.args=m.inline=h,d.$attr_reader("inline","initialization"),$(p[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(d,"$initialize",(function(e,t){var n,r=this;return t=u(t),n=l(t,"type"),r.args=f("Arguments").$new(e.$children()),r.inline=[],r.initialization=[],r.type=n,c(f("STEPS"),"each",[],(function e(t){return null==t&&(t=h),(null==e.$$s?this:e.$$s).$send(t)}),{$$s:r}),s(r.initialization["$any?"]())?r.initialization=c(r,"s",["begin"].concat(a(r.initialization))):r.initialization=h})),o(d,"$extract_blockarg",(function(){var e=h;return s(e=this.args.$blockarg())?this.initialization["$<<"](e.$updated("extract_blockarg")):h})),o(d,"$initialize_shadowargs",(function(){return c(this.args.$shadowargs(),"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.initialization&&(n.initialization=h),null==t&&(t=h),n.initialization["$<<"](t.$updated("initialize_shadowarg"))}),{$$s:this})})),o(d,"$extract_args",(function(){return c(this.args.$args(),"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.type&&(n.type=h),null==n.initialization&&(n.initialization=h),null==n.inline&&(n.inline=h),null==t&&(t=h),_(n.type,"iter")&&n.initialization["$<<"](t.$updated("initialize_iter_arg")),n.inline["$<<"](t)}),{$$s:this})})),o(d,"$prepare_post_args",(function(){var e=this;return s(e.args["$has_post_args?"]())?e.initialization["$<<"](e.$s("prepare_post_args",e.args.$args().$length())):h})),o(d,"$prepare_kwargs",(function(){var e=this;return s(e.args["$has_any_kwargs?"]())?(s(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"))):h})),o(d,"$extract_kwargs",(function(){return c(this.args.$kwargs(),"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.initialization&&(n.initialization=h),null==t&&(t=h),n.initialization["$<<"](t.$updated("extract_kwarg"))}),{$$s:this})})),o(d,"$extract_kwoptargs",(function(){return c(this.args.$kwoptargs(),"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.initialization&&(n.initialization=h),null==t&&(t=h),n.initialization["$<<"](t.$updated("extract_kwoptarg"))}),{$$s:this})})),o(d,"$extract_kwrestarg",(function(){var e=h;return s(e=this.args.$kwrestarg())?this.initialization["$<<"](e.$updated("extract_kwrestarg")):h})),o(d,"$extract_post_args",(function(){return c(this.args.$postargs(),"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.initialization&&(n.initialization=h),null==n.inline&&(n.inline=h),null==t&&(t=h),n.initialization["$<<"](t.$updated("extract_post_arg")),n.inline["$<<"](n.$s("fake_arg"))}),{$$s:this})})),o(d,"$extract_optargs",(function(){var e,t=this;return e=t.args["$has_post_args?"](),c(t.args.$optargs(),"each",[],(function t(n){var r,i=null==t.$$s?this:t.$$s,o=h,$=h;return null==i.initialization&&(i.initialization=h),null==i.inline&&(i.inline=h),null==n&&(n=h),s(e)?(o=null==(r=[].concat(a(n)))[0]?h:r[0],$=null==r[1]?h:r[1],i.initialization["$<<"](n.$updated("extract_post_optarg",[o,$,i.$args_to_keep()])),i.inline["$<<"](i.$s("fake_arg"))):(i.inline["$<<"](n.$updated("arg")),i.initialization["$<<"](n.$updated("extract_optarg")))}),{$$s:t})})),o(d,"$extract_restarg",(function(){var e=this,t=h,n=h;return s(t=e.args.$restarg())?(n=t.$children()["$[]"](0),e.initialization["$<<"](t.$updated("extract_restarg",[n,e.$args_to_keep()])),e.inline["$<<"](e.$s("fake_arg"))):h})),o(d,"$args_to_keep",(function(){return this.args.$postargs().$length()}))}(v[0],m(m(d,"Rewriters"),"Base"),v)}(g[0],v("Base"),g)}(g[0],g)}(f[0],f)},Opal.modules["opal/rewriters/numblocks"]=function(e){var t=e.module,n=e.klass,r=e.to_ary,i=e.send,a=e.to_a,s=e.def,o=e.top,$=[],u=e.nil;return e.add_stubs("require,children,s,gen_args,map"),o.$require("opal/rewriters/base"),function(o,$){var l=[t(o,"Opal")].concat($);return function(o,$){var l=[t(o,"Rewriters")].concat($),c=e.$r(l);return function(t,o){var $=n(t,o,"Numblocks");return s($,"$on_numblock",(function(e){var t,n,s,o,$,l=this;return n=e.$children(),s=null==(t=r(n))[0]?u:t[0],o=null==t[1]?u:t[1],$=null==t[2]?u:t[2],l.$s("block",s,i(l,"s",["args"].concat(a(l.$gen_args(o)))),$)})),s($,"$gen_args",(function(t){return i(e.Range.$new(1,t,!1),"map",[],(function e(t){return null==t&&(t=u),(null==e.$$s?this:e.$$s).$s("arg","_"+t)}),{$$s:this})}))}(l[0],c("Base"))}(l[0],l)}($[0],$)},Opal.modules["opal/rewriters/returnable_logic"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.rb_plus,a=e.def,s=e.rb_minus,o=e.assign_ivar_val,$=e.to_a,u=e.send2,l=e.find_super,c=e.slice,_=e.send,d=e.eqeq,p=e.top,f=[],h=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?"),p.$require("opal/rewriters/base"),function(p,f){var m=[t(p,"Opal")].concat(f);return function(p,f){var m=[t(p,"Rewriters")].concat(f),g=e.$r(m);return function(e,t){var p=n(e,t,"ReturnableLogic");return p.$$prototype.counter=h,a(p,"$next_tmp",(function(){var e,t=this;return t.counter=r(e=t.counter)?e:0,t.counter=i(t.counter,1),"$ret_or_"+t.counter})),a(p,"$free_tmp",(function(){return this.counter=s(this.counter,1)})),a(p,"$reset_tmp_counter!",o("counter",h)),a(p,"$on_if",(function e(t){var n,i=e.$$p||h,a=this,s=h;return e.$$p=null,s=null==(n=[].concat($(t.$children())))[0]?h:n[0],a["$check_control_flow!"](s),r(s)&&s.$meta()["$[]="]("if_test",!0),u(a,l(a,"on_if",e,!1,!0),"on_if",[t],i)})),a(p,"$on_case",(function(e){var t,n,i,a,s,o,u=this,l=h,_=h;return i=null==(t=[].concat($(e.$children())))[0]?h:t[0],n=t.length-1,a=c(t,1,n=n<1?1:n),l=null==t[n]?h:t[n],l=r(s=l)?s:u.$s("nil"),r(i)&&(_=u.$next_tmp()),o=u.$build_if_from_when(e,i,_,a,l),r(i)&&u.$free_tmp(),o})),a(p,"$on_or",(function(e){var t,n=this,i=h,a=h,s=h,o=h;return i=null==(t=[].concat($(e.$children())))[0]?h:t[0],a=null==t[1]?h:t[1],n["$check_control_flow!"](i),r(e.$meta()["$[]"]("if_test"))?(i.$meta()["$[]="]("if_test",(t=["if_test",!0],_(a.$meta(),"[]=",t),t[t.length-1])),s=n.$process(e.$updated("if",[i,n.$s("true"),a]))):(o=n.$next_tmp(),s=n.$process(e.$updated("if",[n.$s("lvasgn",o,i),n.$s("js_tmp",o),a])),n.$free_tmp()),s})),a(p,"$on_and",(function(e){var t,n=this,i=h,a=h,s=h,o=h;return i=null==(t=[].concat($(e.$children())))[0]?h:t[0],a=null==t[1]?h:t[1],n["$check_control_flow!"](i),r(e.$meta()["$[]"]("if_test"))?(i.$meta()["$[]="]("if_test",(t=["if_test",!0],_(a.$meta(),"[]=",t),t[t.length-1])),s=n.$process(e.$updated("if",[i,a,n.$s("false")]))):(o=n.$next_tmp(),s=n.$process(e.$updated("if",[n.$s("lvasgn",o,i),a,n.$s("js_tmp",o)])),n.$free_tmp()),s})),a(p,"$on_begin",(function e(t){var n=e.$$p||h;return e.$$p=null,r(t.$meta()["$[]"]("if_test"))&&d(t.$children().$count(),1)&&t.$children().$first().$meta()["$[]="]("if_test",!0),t.$meta().$delete("if_test"),u(this,l(this,"on_begin",e,!1,!0),"on_begin",[t],n)})),p.$private(),a(p,"$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 h}})),a(p,"$build_if_from_when",(function(e,t,n,i,a){var s,o,u,l,_,d=this,p=h,f=h;return p=null==(s=[].concat($(i)))[0]?h:s[0],f=c(s,1),o=(s=[].concat($(p.$children()))).length-1,u=c(s,0,o=o<0?0:o),l=null==s[o]?h:s[o],_=d.$build_rule_from_parts(e,t,n,u),p.$updated("if",[_,d.$process(l),r(f["$empty?"]())?d.$process(a):d.$build_if_from_when(h,h,n,f,a)])})),a(p,"$build_rule_from_parts",(function(e,t,n,i){var a,s,o=this,u=h,l=h,_=h,p=h,f=h;return t=r(e)&&r(n)?e.$updated("lvasgn",[n,o.$process(t)]):o.$s("js_tmp",n),u=null==(a=[].concat($(i)))[0]?h:a[0],l=c(a,1),s=d(u.$type(),"splat")?(_=u.$children().$first(),p=o.$next_tmp(),f=o.$s("send",o.$process(_),"any?",o.$s("iter",o.$s("args",o.$s("arg",p)),o.$build_rule_from_parts(h,h,n,[o.$s("lvar",p)]))),r(e)&&r(n)?o.$s("begin",t,f):f):r(n)?o.$s("send",o.$process(u),"===",t):o.$process(u),r(l["$empty?"]())?s:o.$s("if",s,o.$s("true"),o.$build_rule_from_parts(h,h,n,l))}))}(m[0],g("Base"))}(m[0],m)}(f[0],f)},Opal.modules["opal/rewriters/forward_args"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.not,a=e.send2,s=e.find_super,o=e.eqeq,$=e.truthy,u=e.range,l=e.to_a,c=e.neqeq,_=e.top,d=[],p=e.nil;return e.add_stubs("require,process,s,!,first,children,updated,==,type,last,[],!=,class"),_.$require("opal/rewriters/base"),function(_,d){var f=[t(_,"Opal")].concat(d);return function(_,d){var f=[t(_,"Rewriters")].concat(d),h=e.$r(f);return function(t,_,d){var f=n(t,_,"ForwardArgs"),h=[f].concat(d),m=e.$r(h);return r(f,"$on_forward_args",(function(e){var t=this;return t.$process(t.$s("args",t.$s("forward_arg","$")))})),r(f,"$on_forwarded_restarg",(function(e){var t=this;return t.$process(t.$s("splat",t.$s("lvar","$fwd_rest")))})),r(f,"$on_forwarded_kwrestarg",(function(e){var t=this;return t.$process(t.$s("kwsplat",t.$s("lvar","$fwd_kwrest")))})),r(f,"$on_block_pass",(function e(t){var n=e.$$p||p,r=this;return e.$$p=null,i(t.$children().$first())?r.$process(t.$updated(p,[r.$s("lvar","$fwd_block")])):a(r,s(r,"on_block_pass",e,!1,!0),"on_block_pass",[t],n)})),r(f,"$on_args",(function e(t){var n=e.$$p||p,r=this,i=p;return e.$$p=null,$(t.$children().$last())&&o(t.$children().$last().$type(),"forward_arg")?(i=t.$children()["$[]"](u(0,-2,!1)),a(r,s(r,"on_args",e,!1,!0),"on_args",[t.$updated(p,[].concat(l(i)).concat([r.$s("restarg","$fwd_rest"),r.$s("blockarg","$fwd_block")]))],null)):a(r,s(r,"on_args",e,!1,!0),"on_args",[t],n)})),r(f,"$on_restarg",(function e(t){var n=e.$$p||p;return e.$$p=null,i(t.$children().$first())?t.$updated(p,["$fwd_rest"]):a(this,s(this,"on_restarg",e,!1,!0),"on_restarg",[t],n)})),r(f,"$on_kwrestarg",(function e(t){var n=e.$$p||p;return e.$$p=null,i(t.$children().$first())?t.$updated(p,["$fwd_kwrest"]):a(this,s(this,"on_kwrestarg",e,!1,!0),"on_kwrestarg",[t],n)})),r(f,"$on_blockarg",(function e(t){var n=e.$$p||p;return e.$$p=null,i(t.$children().$first())?t.$updated(p,["$fwd_block"]):a(this,s(this,"on_blockarg",e,!1,!0),"on_blockarg",[t],n)})),r(f,"$on_send",(function e(t){var n=e.$$p||p,r=this,i=p;return e.$$p=null,$(t.$children().$last())&&c(t.$children().$last().$class(),m("Symbol"))&&o(t.$children().$last().$type(),"forwarded_args")?(i=t.$children()["$[]"](u(0,-2,!1)),a(r,s(r,"on_send",e,!1,!0),"on_send",[t.$updated(p,[].concat(l(i)).concat([r.$s("splat",r.$s("lvar","$fwd_rest")),r.$s("block_pass",r.$s("lvar","$fwd_block"))]))],null)):a(r,s(r,"on_send",e,!1,!0),"on_send",[t],n)}))}(f[0],h("Base"),f)}(f[0],f)}(d[0],d)},Opal.modules["opal/rewriters/thrower_finder"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.send2,a=e.find_super,s=e.send,o=e.find_block_super,$=e.truthy,u=e.range,l=e.slice,c=[],_=e.nil,d=e.$$$;return e.add_stubs("tracking,pushing,to_proc,on_loop,detect,[],children,!=,type,private,each,push,map,last,[]=,meta"),function(c,p){var f=[t(c,"Opal")].concat(p);return function(c,p){var f=[t(c,"Rewriters")].concat(p),h=e.$r(f);return function(t,c){var d=n(t,c,"ThrowerFinder"),p=d.$$prototype;return p.break_stack=p.redo_stack=p.retry_stack=p.rescue_else_stack=_,r(d,"$initialize",(function(){var e=this;return e.break_stack=[],e.redo_stack=[],e.retry_stack=[],e.rescue_else_stack=[]})),r(d,"$on_break",(function e(t){var n=e.$$p||_,r=this;return e.$$p=null,r.$tracking("break",r.break_stack),i(r,a(r,"on_break",e,!1,!0),"on_break",[t],n)})),r(d,"$on_redo",(function e(t){var n=e.$$p||_,r=this;return e.$$p=null,r.$tracking("redo",r.redo_stack),i(r,a(r,"on_redo",e,!1,!0),"on_redo",[t],n)})),r(d,"$on_retry",(function e(t){var n=e.$$p||_,r=this;return e.$$p=null,r.$tracking("retry",r.retry_stack),i(r,a(r,"on_retry",e,!1,!0),"on_retry",[t],n)})),r(d,"$on_iter",(function e(t){var n=e.$$p||_,r=this;return e.$$p=null,s(r,"pushing",[[r.break_stack,t]],(function r(){var a=null==r.$$s?this:r.$$s;return i(a,o(a,"on_iter",r.$$def||e,!1,!0),"on_iter",[t],n)}),{$$s:r})})),r(d,"$on_loop",(function e(t){var n=e.$$p||_,r=this;return e.$$p=null,s(r,"pushing",[[r.redo_stack,t],[r.break_stack,_]],n.$to_proc())})),r(d,"$on_for",(function e(t){var n=e.$$p||_;return e.$$p=null,s(this,"on_loop",[t],(function r(){var a=null==r.$$s?this:r.$$s;return i(a,o(a,"on_for",r.$$def||e,!1,!0),"on_for",[t],n)}),{$$s:this})})),r(d,"$on_while",(function e(t){var n=e.$$p||_;return e.$$p=null,s(this,"on_loop",[t],(function r(){var a=null==r.$$s?this:r.$$s;return i(a,o(a,"on_while",r.$$def||e,!1,!0),"on_while",[t],n)}),{$$s:this})})),r(d,"$on_while_post",(function e(t){var n=e.$$p||_;return e.$$p=null,s(this,"on_loop",[t],(function r(){var a=null==r.$$s?this:r.$$s;return i(a,o(a,"on_while_post",r.$$def||e,!1,!0),"on_while_post",[t],n)}),{$$s:this})})),r(d,"$on_until",(function e(t){var n=e.$$p||_;return e.$$p=null,s(this,"on_loop",[t],(function r(){var a=null==r.$$s?this:r.$$s;return i(a,o(a,"on_until",r.$$def||e,!1,!0),"on_until",[t],n)}),{$$s:this})})),r(d,"$on_until_post",(function e(t){var n=e.$$p||_;return e.$$p=null,s(this,"on_loop",[t],(function r(){var a=null==r.$$s?this:r.$$s;return i(a,o(a,"on_until_post",r.$$def||e,!1,!0),"on_until_post",[t],n)}),{$$s:this})})),r(d,"$on_defined",(function e(t){var n=e.$$p||_,r=this;return e.$$p=null,s(r,"pushing",[[r.redo_stack,_],[r.break_stack,_],[r.retry_stack,_]],(function r(){var a=null==r.$$s?this:r.$$s;return i(a,o(a,"on_defined",r.$$def||e,!1,!0),"on_defined",[t],n)}),{$$s:r})})),r(d,"$on_ensure",(function e(t){var n=e.$$p||_,r=this;return e.$$p=null,s(r,"pushing",[[r.rescue_else_stack,t]],(function r(){var a=null==r.$$s?this:r.$$s;return i(a,o(a,"on_ensure",r.$$def||e,!1,!0),"on_ensure",[t],n)}),{$$s:r})})),r(d,"$on_rescue",(function e(t){var n=e.$$p||_,r=this;return e.$$p=null,$(s(t.$children()["$[]"](u(1,-1,!1)),"detect",[],(function(e){var t;return null==e&&(e=_),$(t=e)?e.$type()["$!="]("resbody"):t})))&&r.$tracking("rescue_else",r.rescue_else_stack),s(r,"pushing",[[r.rescue_else_stack,_],[r.retry_stack,t]],(function r(){var a=null==r.$$s?this:r.$$s;return i(a,o(a,"on_rescue",r.$$def||e,!1,!0),"on_rescue",[t],n)}),{$$s:r})})),d.$private(),r(d,"$pushing",(function t(n){var r,i,a,o=t.$$p||_;return t.$$p=null,r=l(arguments),s(i=r,"each",[],(function(e,t){return null==e&&(e=_),null==t&&(t=_),e.$push(t)})),a=e.yieldX(o,[]),s(s(i,"map",[],"first".$to_proc()),"each",[],"pop".$to_proc()),a}),-1),r(d,"$tracking",(function(e,t){var n;return $(t.$last())?(n=["has_"+e,!0],s(t.$last().$meta(),"[]=",n),n[n.length-1]):_}))}(f[0],d(d(h("Opal"),"Rewriters"),"Base"))}(f[0],f)}(c[0],c)},Opal.modules["opal/rewriter"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.def,a=e.ensure_kwargs,s=e.hash_get,o=e.eqeq,$=e.assign_ivar,u=e.send,l=e.top,c=[],_=e.nil,d=e.$$$;return e.add_stubs("require,<<,list,delete,==,!=,use,disabled?,class,each,rewritter_disabled?,new,process"),l.$require("opal/rewriters/opal_engine_check"),l.$require("opal/rewriters/targeted_patches"),l.$require("opal/rewriters/for_rewriter"),l.$require("opal/rewriters/js_reserved_words"),l.$require("opal/rewriters/block_to_iter"),l.$require("opal/rewriters/dot_js_syntax"),l.$require("opal/rewriters/pattern_matching"),l.$require("opal/rewriters/logical_operator_assignment"),l.$require("opal/rewriters/binary_operator_assignment"),l.$require("opal/rewriters/hashes/key_duplicates_rewriter"),l.$require("opal/rewriters/dump_args"),l.$require("opal/rewriters/deduplicate_arg_name"),l.$require("opal/rewriters/mlhs_args"),l.$require("opal/rewriters/inline_args"),l.$require("opal/rewriters/numblocks"),l.$require("opal/rewriters/returnable_logic"),l.$require("opal/rewriters/forward_args"),l.$require("opal/rewriters/thrower_finder"),function(l,c){var p=[t(l,"Opal")].concat(c);return function(t,l,c){var p=n(t,null,"Rewriter"),f=[p].concat(c),h=e.$r(f);return p.$$prototype.sexp=_,p.disabled=!1,function(t,n){i(t,"$list",(function(){var e,t=this;return null==t.list&&(t.list=_),t.list=r(e=t.list)?e:[]})),i(t,"$use",(function(e){return this.$list()["$<<"](e)})),i(t,"$delete",(function(e){return this.$list().$delete(e)})),i(t,"$disable",(function t(n){var i,o=t.$$p||_,$=this,u=_,l=_;return null==$.disabled&&($.disabled=_),t.$$p=null,n=a(n),null==(i=s(n,"except"))&&(i=_),function(){try{return u=$.disabled,$.disabled=!r(l=i)||l,e.yieldX(o,[])}finally{$.disabled=u}}()}),-1),i(t,"$disabled?",(function(){var e=this;return null==e.disabled&&(e.disabled=_),e.disabled["$=="](!0)})),i(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(p)),p.$use(d(h("Rewriters"),"OpalEngineCheck")),p.$use(d(h("Rewriters"),"ForRewriter")),p.$use(d(h("Rewriters"),"Numblocks")),p.$use(d(h("Rewriters"),"ForwardArgs")),p.$use(d(h("Rewriters"),"BlockToIter")),p.$use(d(h("Rewriters"),"TargetedPatches")),p.$use(d(h("Rewriters"),"DotJsSyntax")),p.$use(d(h("Rewriters"),"PatternMatching")),p.$use(d(h("Rewriters"),"JsReservedWords")),p.$use(d(h("Rewriters"),"LogicalOperatorAssignment")),p.$use(d(h("Rewriters"),"BinaryOperatorAssignment")),p.$use(d(d(h("Rewriters"),"Hashes"),"KeyDuplicatesRewriter")),p.$use(d(h("Rewriters"),"ReturnableLogic")),p.$use(d(h("Rewriters"),"DeduplicateArgName")),p.$use(d(h("Rewriters"),"DumpArgs")),p.$use(d(h("Rewriters"),"MlhsArgs")),p.$use(d(h("Rewriters"),"InlineArgs")),p.$use(d(h("Rewriters"),"ThrowerFinder")),i(p,"$initialize",$("sexp")),i(p,"$process",(function(){var e=this;return r(e.$class()["$disabled?"]())||u(e.$class().$list(),"each",[],(function e(t){var n=null==e.$$s?this:e.$$s,i=_;return null==n.sexp&&(n.sexp=_),null==t&&(t=_),r(n.$class()["$rewritter_disabled?"](t))?_:(i=t.$new(),n.sexp=i.$process(n.sexp))}),{$$s:e}),e.sexp}))}(p[0],0,p)}(c[0],c)},Opal.modules["opal/parser/source_buffer"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.send2,a=e.find_super,s=e.defs,o=[],$=e.nil,u=e.$$$;return function(o,l){var c=[t(o,"Opal")].concat(l);return function(o,l){var c=[t(o,"Parser")].concat(l);return function(t,o,l){var c=n(t,o,"SourceBuffer"),_=[c].concat(l),d=e.$r(_);return s(c,"$recognize_encoding",(function e(t){var n,s=e.$$p||$;return e.$$p=null,r(n=i(this,a(this,"recognize_encoding",e,!1,!0),"recognize_encoding",[t],s))?n:u(d("Encoding"),"UTF_8")}))}(c[0],u(u(u("Parser"),"Source"),"Buffer"),c)}(c[0],c)}(o[0],o)},Opal.modules["opal/parser/default_config"]=function(e){var t=e.module,n=e.send2,r=e.find_super,i=e.def,a=e.lambda,s=e.send,o=e.defs,$=e.slice,u=e.truthy,l=e.Opal,c=[],_=e.nil,d=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,p){var f=[t(c,"Opal")].concat(p);return function(c,p){var f=t(c,"Parser"),h=[f].concat(p);return function(c,p){var f=t(c,"DefaultConfig"),h=[f].concat(p),m=e.$r(h);(function(e){var a=t(e,"ClassMethods");a.$attr_accessor("diagnostics_consumer"),i(a,"$default_parser",(function e(){var t=e.$$p||_,i=this,a=_;return e.$$p=null,(a=n(i,r(i,"default_parser",e,!1,!0),"default_parser",[],t)).$diagnostics()["$all_errors_are_fatal="](!0),a.$diagnostics()["$ignore_warnings="](!1),a.$diagnostics()["$consumer="](i.$diagnostics_consumer()),a}))})(h[0]),o(f,"$included",(function(e){var t;return e.$extend(m("ClassMethods")),t=[a((function(e){return null==e&&(e=_),_}))],s(e,"diagnostics_consumer=",t),t[t.length-1]})),i(f,"$initialize",(function e(t){return e.$$p=null,$(arguments),n(this,r(this,"initialize",e,!1,!0),"initialize",[d(d(m("Opal"),"AST"),"Builder").$new()],null)}),-1),i(f,"$parse",(function e(t){var i,a,s,o=e.$$p||_,$=this;return e.$$p=null,i=u(a=n($,r($,"parse",e,!1,!0),"parse",[t],o))?a:d(d(l,"AST"),"Node").$new("nil"),s=d(d(l,"AST"),"Node").$new("top",[i]),$.$rewrite(s)})),i(f,"$rewrite",(function(e){return d(m("Opal"),"Rewriter").$new(e).$process()}))}(h[0],h),function(e,t){return e.$attr_accessor("default_parser_class"),i(e,"$default_parser",(function(){return this.$default_parser_class().$default_parser()}))}(e.get_singleton_class(f))}(f[0],f)}(c[0],c)},Opal.modules["opal/parser/with_ruby_lexer"]=function(e){var t=e.klass,n=e.send,r=[],i=e.$r(r),a=(e.nil,e.$$$);return e.add_stubs("include,default_parser_class="),function(r,i,s){var o,$=t(r,i,"WithRubyLexer"),u=[$].concat(s),l=e.$r(u);return $.$include(a(a(l("Opal"),"Parser"),"DefaultConfig")),o=[$],n(a(l("Opal"),"Parser"),"default_parser_class=",o),o[o.length-1]}(a(i("Opal"),"Parser"),a(i("Parser"),"Ruby32"),r)},Opal.modules["opal/parser/patch"]=function(e){var t,n,r,i=e.klass,a=e.truthy,s=e.send,o=e.def,$=e.rb_plus,u=e.eqeq,l=e.not,c=e.rb_le,_=e.eqeqeq,d=e.rb_minus,p=e.rb_gt,f=e.rb_times,h=e.rb_divide,m=e.thrower,g=e.module,v=[],b=e.$r(v),y=e.nil,w=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"),t=b("Parser"),n=i(t,null,"Lexer"),(r=n.$$prototype).source_buffer=r.strings=r.source_pts=y,o(n,"$source_buffer=",(function(e){var t,n=this,r=y;return n.source_buffer=e,a(n.source_buffer)?(r=n.source_buffer.$source(),n.source_pts=r.$unpack("U*")):n.source_pts=y,a(n.strings)?(n.strings["$source_buffer="](n.source_buffer),t=[n.source_pts],s(n.strings,"source_pts=",t),t[t.length-1]):y})),function(t,n){var r=i(t,null,"Literal"),s=r.$$prototype;s.buffer_s=s.buffer=y,e.udef(r,"$extend_string"),o(r,"$extend_string",(function(e,t,n){var r,i=this;return i.buffer_s=a(r=i.buffer_s)?r:t,i.buffer_e=n,i.buffer=$(i.buffer,e)}))}(w(b("Parser"),"Lexer")),function(e,t){var n=i(e,null,"Buffer"),r=n.$$prototype;r.lines=r.source=y,o(n,"$source_lines",(function(){var e,t=this,n=y;return t.lines=a(e=t.lines)?e:(n=t.source.$lines().$to_a(),a(t.source["$end_with?"]("\n"))&&n["$<<"](""),s(n,"map",[],(function(e){return null==e&&(e=y),e.$chomp("\n")})))}))}(w(b("Parser"),"Source")),function(e,t){var n=i(e,null,"Default");o(n,"$check_lvar_name",(function(e,t){return a(e["$=~"](new RegExp("^[\\p{Ll}|_][\\p{L}\\p{Nl}\\p{Nd}_]*$","u")))?y:this.$diagnostic("error","lvar_name",new Map([["name",e]]),t)})),o(n,"$dedent_string",(function(e,t){var n=y,r=y;if(!a(t["$nil?"]()))switch(n=w(w(w("Parser"),"Lexer"),"Dedenter").$new(t),e.$type().valueOf()){case"str":e=e.$updated(y,[n.$dedent(e.$children().$first())]);break;case"dstr":case"xstr":r=s(e.$children(),"map",[],(function(e){if(null==e&&(e=y),u(e.$type(),"str")){if(e=e.$updated(y,[n.$dedent(e.$children().$first())]),a(e.$children().$first()["$empty?"]()))return y}else n.$interrupt();return e})),e=e.$updated(y,r.$compact())}return e}))}(w(b("Parser"),"Builders")),function(t,n,r){var g=i(t,null,"Dedenter"),v=[g].concat(r),b=e.$r(v);o(g,"$dedent",(function(t){var n,r=y;return n=t.$encoding(),r=t.$force_encoding(w(b("Encoding"),"BINARY")).$split("\\\n"),u(r.$length(),1)?r=[t.$force_encoding(n)]:s(r,"map!",[],(function(e){return null==e&&(e=y),e.$force_encoding(n)})),s(r,"each_with_index",[],(function t(n,i){var o,g=null==t.$$s?this:t.$$s,v=y,w=y;return null==g.at_line_begin&&(g.at_line_begin=y),null==g.dedent_level&&(g.dedent_level=y),null==n&&(n=y),null==i&&(i=y),u(i,0)&&l(g.at_line_begin)?y:(v=g.dedent_level,w=0,function(){try{var e=m("break");return s(n,"each_char",[],(function t(n){var r,i=null==t.$$s?this:t.$$s;return null==i.dedent_level&&(i.dedent_level=y),null==n&&(n=y),a(c(v,0))&&e.$throw(y,t.$$is_lambda),_(" ",r=n)?(w=$(w,1),v=d(v,1)):_("\t",r)?(a(p(f(b("TAB_WIDTH"),$(h(w,b("TAB_WIDTH")),1)),i.dedent_level))&&e.$throw(y,t.$$is_lambda),w=$(w,1),v=d(v,b("TAB_WIDTH"))):void e.$throw(y,t.$$is_lambda)}),{$$s:g})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),o=[i,n["$[]"](e.Range.$new(w,-1,!1))],s(r,"[]=",o),o[o.length-1])}),{$$s:this}),t=r.$join(),this.at_line_begin=t["$end_with?"]("\n"),t}))}(w(b("Parser"),"Lexer"),0,v),function(t){var n=g(t,"Mixin");e.udef(n,"$process"),o(n,"$process",(function(e){var t,n,r,i=this,o=y,$=y;return null==i._on_handler_cache&&(i._on_handler_cache=y),a(e["$nil?"]())?y:(i._on_handler_cache=a(o=i._on_handler_cache)?o:new Map,n=e.$type(),r=a(o=i._on_handler_cache["$[]"](n))?o:(t=[n,($="on_"+n,a(i["$respond_to?"]($))||($="handler_missing"),$)],s(i._on_handler_cache,"[]=",t),t[t.length-1]),a(o=i.$send(r,e))?o:e)}))}(w(b("AST"),"Processor")),function(t,n){var r=i(t,null,"Default");return e.udef(r,"$string_value"),o(r,"$string_value",(function(e){return this.$value(e)}))}(w(b("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,n=e.klass,r=e.def,i=e.truthy,a=e.eqeq,s=e.rb_plus,o=e.rb_gt,$=e.to_a,u=e.not,l=[],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(l,d){var p=[t(l,"Opal")].concat(d);return function(t,l,d){var p=n(t,null,"Fragment"),f=[p].concat(d),h=e.$r(f),m=p.$$prototype;return m.code=m.scope=m.sexp=c,p.$attr_reader("code"),r(p,"$initialize",(function(e,t,n){var r=this;return null==n&&(n=c),r.code=e.$to_s(),r.sexp=n,r.scope=t}),-3),r(p,"$inspect",(function(){return"f("+this.code.$inspect()+")"})),r(p,"$source_map_name_for",(function(e){var t,n=this,r=c,l=c,d=c,p=c,f=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 i(n.scope)?n.$source_map_name_for(n.scope.$sexp()):c;case"iter":for(r=n.scope,l=1;i(r)&&a(r.$class(),_(h("Nodes"),"IterNode"));)l=s(l,1),r=r.$parent();return i(o(l,1))&&(d=" ("+l+" levels)"),"block"+d+" in "+n.$source_map_name_for(r.$sexp());case"self":return"self";case"module":return p=null==(t=[].concat($(e)))[0]?c:t[0],"<module:"+n.$source_map_name_for(p)+">";case"class":return p=null==(t=[].concat($(e)))[0]?c:t[0],"<class:"+n.$source_map_name_for(p)+">";case"const":return r=null==(t=[].concat($(e)))[0]?c:t[0],f=null==t[1]?c:t[1],u(r)||a(r.$type(),"cbase")?f.$to_s():n.$source_map_name_for(r)+"::"+f;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 n.$source_map_name_for(n.scope.$sexp());default:return c}})),r(p,"$source_map_name",(function(){var e=this;return i(e.sexp)?e.$source_map_name_for(e.sexp):c})),r(p,"$location",(function(){var e=this,t=c,n=c;return u(e.sexp)?c:a(e.sexp.$type(),"send")?(t=e.sexp.$loc(),i(t["$respond_to?"]("dot"))?i(n=t.$dot())?n:t.$selector():i(t["$respond_to?"]("operator"))?t.$operator():e.sexp):a(e.sexp.$type(),"iter")&&i(t["$respond_to?"]("begin"))?e.sexp.$loc().$begin():e.sexp})),r(p,"$line",(function(){var e;return(e=this.$location())===c||null==e?c:e.$line()})),r(p,"$column",(function(){var e;return(e=this.$location())===c||null==e?c:e.$column()})),r(p,"$skip_source_map?",(function(){return this.sexp["$=="](!1)}))}(p[0],0,p)}(l[0],l)},Opal.modules["opal/nodes/closure"]=function(e){var t=e.module,n=e.klass,r=e.const_set,i=e.send,a=e.defs,s=e.def,o=e.truthy,$=e.eqeq,u=e.slice,l=e.extract_kwargs,c=e.ensure_kwargs,_=e.hash_get,d=e.neqeq,p=e.thrower,f=e.not,h=e.to_a,m=[],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(m,v){var b=[t(m,"Opal")].concat(v);return function(m,v){var b=[t(m,"Nodes")].concat(v);return function(m,v,b){var y=n(m,null,"Closure"),w=[y].concat(b),x=e.$r(w),k=y.$$prototype;return k.catchers=k.throwers=k.type=k.node=g,r(w[0],"NONE",0),y.types=new Map,a(y,"$add_type",(function(e,t){var n,r=this;return null==r.types&&(r.types=g),r.$const_set(e,t),n=[e,t],i(r.types,"[]=",n),n[n.length-1]})),a(y,"$type_inspect",(function(e){var t=this;return null==t.types&&(t.types=g),i(i(t.types,"reject",[],(function(t,n){return null==t&&(t=g),null==n&&(n=g),e["$&"](n)["$=="](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)),r(w[0],"ANY",4294967295),s(y,"$initialize",(function(e,t,n){var r,i=this;return r=[e,t,n],i.node=r[0],i.type=r[1],i.parent=r[2],i.catchers=[],i.throwers=new Map})),s(y,"$register_catcher",(function(e){return null==e&&(e="return"),o(this.catchers["$include?"](e))||this.catchers["$<<"](e),"$t_"+e}),-1),s(y,"$register_thrower",(function(e,t){var n;return n=[e,t],i(this.throwers,"[]=",n),n[n.length-1]})),s(y,"$is?",(function(e){return this.type["$&"](e)["$!="](0)})),s(y,"$inspect",(function(){return"#<Closure "+x("Closure").$type_inspect(this.$type())+" "+this.node.$class()+">"})),y.$attr_accessor("node","type","parent","catchers","throwers"),function(n,r){var a=t(n,"NodeSupport"),m=[a].concat(r),v=e.$r(m);s(a,"$push_closure",(function(e){var t,n=this;return null==n.compiler&&(n.compiler=g),null==e&&(e=v("JS_FUNCTION")),t=v("Closure").$new(n,e,n.$select_closure()),n.compiler.$closure_stack()["$<<"](t),n.closure=t}),-1),a.$attr_accessor("closure"),s(a,"$pop_closure",(function(){var e,t,n=this;return null==n.compiler&&(n.compiler=g),n.$compile_catcher(),n.compiler.$closure_stack().$pop(),t=n.compiler.$closure_stack().$last(),$((e=t)===g||null==e?g:e.$node(),n)?n.closure=t:g})),s(a,"$in_closure",(function t(n){var r,i,a=t.$$p||g;return t.$$p=null,null==n&&(n=v("JS_FUNCTION")),r=this.$push_closure(n),i=e.yield1(a,r),this.$pop_closure(),i}),-1),s(a,"$select_closure",(function(e,t){var n,r,a,s,o=this;return null==o.compiler&&(o.compiler=g),n=u(arguments),r=l(n),r=c(r),n.length>0&&(a=n.shift()),null==a&&(a=v("ANY")),null==(s=_(r,"break_after"))&&(s=v("NONE")),function(){try{var e=p("break");return i(o.compiler.$closure_stack().$reverse(),"find",[],(function t(n){return null==n&&(n=g),d(n.$type()["$&"](s),0)&&e.$throw(g,t.$$is_lambda),n.$type()["$&"](a)["$!="](0)}))}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()}),-1),s(a,"$generate_thrower",(function(e,t,n){var r,i=this;return r=t.$register_catcher(e),t.$register_thrower(e,r),i.$push(r,".$throw(",i.$expr_or_nil(n),", ",i.$scope()["$identify!"](),".$$is_lambda)"),r})),s(a,"$generate_thrower_without_catcher",(function(e,t,n){var r,i=this,a=g,s=g;return i.$helper("thrower"),o(t.$throwers()["$key?"](e))?a=t.$throwers()["$[]"](e):(a=i.$compiler().$unique_temp("t_"),(o(s=(r=t.$node().$scope())===g||null==r?g:r.$parent())?s:i.$top_scope()).$add_scope_temp(a+" = $thrower('"+e+"')"),t.$register_thrower(e,a)),i.$push(a,".$throw(",i.$expr_or_nil(n),", ",i.$scope()["$identify!"](),".$$is_lambda)"),a})),s(a,"$thrower",(function(e,t){var n=this,r=g,i=g,a=g,s=g;switch(null==t&&(t=g),e.valueOf()){case"return":return r=n.$select_closure(v("DEF"),new Map([["break_after",v("MODULE")["$|"](v("TOP"))]])),i=n.$select_closure(v("JS_FUNCTION")),f(r)?(a=n.$select_closure(v("ITER"),new Map([["break_after",v("DEF")["$|"](v("MODULE"))["$|"](v("TOP"))]])),o(a)?n.$generate_thrower_without_catcher("return",a,t):o(n.$compiler()["$eval?"]())?n.$push("Opal.t_eval_return.$throw(",n.$expr_or_nil(t),", false)"):n.$error("Invalid return")):$(r,i)?n.$push("return ",n.$expr_or_nil(t)):(s=n.$generate_thrower("return",r,t),a=n.$select_closure(v("ITER"),new Map([["break_after",v("DEF")["$|"](v("MODULE"))["$|"](v("TOP"))]])),o(a)?a.$register_thrower("return",s):g);case"eval_return":return r=n.$select_closure(v("DEF")["$|"](v("LAMBDA")),new Map([["break_after",v("MODULE")["$|"](v("TOP"))]])),o(r)?r.$register_catcher("eval_return"):g;case"next":case"redo":return r=n.$select_closure(v("ITER")["$|"](v("LOOP_INSIDE")),new Map([["break_after",v("DEF")["$|"](v("MODULE"))["$|"](v("TOP"))]])),i=n.$select_closure(v("JS_FUNCTION")["$|"](v("JS_LOOP_INSIDE"))),f(r)?n.$error("Invalid next"):$(r,i)?o(r["$is?"](v("LOOP_INSIDE")))?n.$push("continue"):o(r["$is?"](v("ITER")["$|"](v("LAMBDA"))))?n.$push("return ",n.$expr_or_nil(t)):g:n.$generate_thrower("next",r,t);case"break":return r=n.$select_closure(v("SEND")["$|"](v("LAMBDA"))["$|"](v("LOOP")),new Map([["break_after",v("DEF")["$|"](v("MODULE"))["$|"](v("TOP"))]])),i=n.$select_closure(v("JS_FUNCTION")["$|"](v("JS_LOOP"))),f(r)?(a=n.$select_closure(v("ITER"),new Map([["break_after",v("DEF")["$|"](v("MODULE"))["$|"](v("TOP"))]])),o(a)?n.$generate_thrower_without_catcher("break",a,t):n.$error("Invalid break")):$(r,i)?o(r["$is?"](v("JS_FUNCTION")["$|"](v("LAMBDA"))))?n.$push("return ",n.$expr_or_nil(t)):o(r["$is?"](v("LOOP")))?n.$push("break"):g:n.$generate_thrower("break",r,t);case"retry":return r=n.$select_closure(v("RESCUE_RETRIER"),new Map([["break_after",v("DEF")["$|"](v("MODULE"))["$|"](v("TOP"))]])),i=n.$select_closure(v("JS_LOOP_INSIDE")),f(r)?n.$error("Invalid retry"):$(r,i)?n.$push("continue"):n.$generate_thrower("retry",r,t);default:return g}}),-2),s(a,"$closure_is?",(function(e){var t=this;return null==t.closure&&(t.closure=g),t.closure["$is?"](e)})),s(a,"$compile_catcher",(function(){var e=this,t=g,n=g;return null==e.closure&&(e.closure=g),t=e.closure.$catchers(),o(t["$empty?"]())?g:(e.$helper("thrower"),n=t.$grep_v("eval_return"),e.$push("} catch($e) {"),i(e,"indent",[],(function e(){var n=null==e.$$s?this:e.$$s;return i(t,"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=g),"eval_return"===t.valueOf()?n.$line("if ($e === Opal.t_eval_return) return $e.$v;"):n.$line("if ($e === $t_"+t+") return $e.$v;")}),{$$s:n}),n.$line("throw $e;")}),{$$s:e}),e.$line("}"),o(n["$empty?"]())||i(e,"push",[" finally {"].concat(h(i(n,"map",[],(function(e){return null==e&&(e=g),"$t_"+e+".is_orphan = true;"})))).concat(["}"])),o(e["$closure_is?"](v("SEND")))&&e.$unshift("return "),o(n["$empty?"]())||e.$unshift("var ",i(n,"map",[],(function(e){return null==e&&(e=g),"$t_"+e+" = $thrower('"+e+"')"})).$join(", "),"; "),e.$unshift("try { "),o(e["$closure_is?"](v("JS_FUNCTION")))?g:o(e.$scope().$await_encountered())?e.$wrap("(await (async function(){","})())"):e.$wrap("(function(){","})()"))}))}(w[0],w),function(e){var n=t(e,"CompilerSupport");return s(n,"$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:[]}))}(w[0])}(b[0],0,b)}(b[0],b)}(m[0],m)},Opal.modules["opal/nodes/helpers"]=function(e){var t=e.module,n=e.truthy,r=e.def,i=e.rb_plus,a=e.send,s=e.slice,o=e.to_a,$=e.eqeq,u=e.top,l=[],c=e.nil,_=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,l){var d=[t(u,"Opal")].concat(l);return function(u,l){var d=[t(u,"Nodes")].concat(l);return function(u,l){var d=t(u,"Helpers"),p=[d].concat(l),f=e.$r(p);return r(d,"$property",(function(e){return n(this["$valid_name?"](e))?"."+e:"["+e.$inspect()+"]"})),r(d,"$valid_name?",(function(e){return _(_(f("Opal"),"Rewriters"),"JsReservedWords")["$valid_name?"](e)})),r(d,"$mid_to_jsid",(function(e){return n(/\=|\+|\-|\*|\/|\!|\?|<|\>|\&|\||\^|\%|\~|\[|`/["$=~"](e.$to_s()))?"['$"+e+"']":i(".$",e)})),r(d,"$indent",(function e(){var t=e.$$p||c;return e.$$p=null,a(this.$compiler(),"indent",[],t.$to_proc())})),r(d,"$current_indent",(function(){return this.$compiler().$parser_indent()})),r(d,"$line",(function(e){var t,n=this;return t=s(arguments),n.$push(n.$fragment("\n"+n.$current_indent(),new Map([["loc",!1]]))),a(n,"push",o(t))}),-1),r(d,"$empty_line",(function(){return this.$push(this.$fragment("\n",new Map([["loc",!1]])))})),r(d,"$js_truthy",(function(e){var t,r=this;return n(t=r.$js_truthy_optimize(e))?t:(r.$helper("truthy"),[r.$fragment("$truthy("),r.$expr(e),r.$fragment(")")])})),r(d,"$js_truthy_optimize",(function(e){var t,r=this,i=c,a=c,u=c,l=c,d=c,p=c,h=c,m=c,g=c;switch(e.$type().valueOf()){case"send":if(i=null==(t=[].concat(o(e)))[0]?c:t[0],a=null==t[1]?c:t[1],u=s(t,2),l=n(d=i)?r.$compiler().$handlers()["$[]"](i.$type()):d,p=n(d=n(h=_(f("Compiler"),"COMPARE")["$include?"](a.$to_s()))?l:h)?l["$truthy_optimize?"]():d,n(p)||$(a,"block_given?"))return r.$expr(e);if(!$(u.$count(),1))return $(u.$count(),0)&&"!"===a.valueOf()?(r.$helper("not"),r.$compiler().$record_method_call(a),[r.$fragment("$not("),r.$expr(i),r.$fragment(")")]):c;switch(a.valueOf()){case"==":return r.$helper("eqeq"),r.$compiler().$record_method_call(a),[r.$fragment("$eqeq("),r.$expr(i),r.$fragment(", "),r.$expr(u.$first()),r.$fragment(")")];case"===":return r.$helper("eqeqeq"),r.$compiler().$record_method_call(a),[r.$fragment("$eqeqeq("),r.$expr(i),r.$fragment(", "),r.$expr(u.$first()),r.$fragment(")")];case"!=":return r.$helper("neqeq"),r.$compiler().$record_method_call(a),[r.$fragment("$neqeq("),r.$expr(i),r.$fragment(", "),r.$expr(u.$first()),r.$fragment(")")];default:return c}break;case"begin":return $(e.$children().$count(),1)?r.$js_truthy_optimize(e.$children().$first()):c;case"if":return null==(t=[].concat(o(e)))[0]?c:t[0],m=null==t[1]?c:t[1],g=null==t[2]?c:t[2],$(m,r.$s("true"))?(e.$meta()["$[]="]("do_js_truthy_on_false_body",!0),r.$expr(e)):$(g,r.$s("false"))?(e.$meta()["$[]="]("do_js_truthy_on_true_body",!0),r.$expr(e)):c;default:return c}}))}(d[0],d)}(d[0],d)}(l[0],l)},Opal.modules["opal/nodes/base"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.defs,a=e.slice,s=e.send,o=e.return_val,$=e.def,u=e.ensure_kwargs,l=e.hash_get,c=e.Opal,_=e.neqeq,d=e.rb_plus,p=e.top,f=[],h=e.nil,m=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"),p.$require("opal/nodes/helpers"),p.$require("opal/nodes/closure"),function(p,f){var g=[t(p,"Opal")].concat(f);return function(p,f){var g=[t(p,"Nodes")].concat(f);return function(t,p,f){var g=n(t,null,"Base"),v=[g].concat(f),b=e.$r(v),y=g.$$prototype;return y.compiler=y.sexp=y.fragments=y.level=h,g.$include(b("Helpers")),g.$include(m(b("Closure"),"NodeSupport")),i(g,"$handlers",(function(){var e,t=this;return null==t.handlers&&(t.handlers=h),t.handlers=r(e=t.handlers)?e:new Map})),i(g,"$handle",(function(e){var t;return t=a(arguments),s(t,"each",[],(function e(t){var n;return null==t&&(t=h),n=[t,null==e.$$s?this:e.$$s],s(b("Base").$handlers(),"[]=",n),n[n.length-1]}),{$$s:this})}),-1),i(g,"$children",(function(e){var t;return t=a(arguments),s(t,"each_with_index",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==t&&(t=h),null==n&&(n=h),s(r,"define_method",[t],(function e(){var t=null==e.$$s?this:e.$$s;return null==t.sexp&&(t.sexp=h),t.sexp.$children()["$[]"](n)}),{$$s:r})}),{$$s:this})}),-1),i(g,"$truthy_optimize?",o(!1)),g.$attr_reader("compiler","type","sexp"),$(g,"$initialize",(function(e,t,n){var i,a,o=this;return o.sexp=e,o.type=e.$type(),o.level=t,o.compiler=n,r(a=o.compiler.$top_scope())?a:(i=[o],s(o.compiler,"top_scope=",i),i[i.length-1])})),$(g,"$children",(function(){return this.sexp.$children()})),$(g,"$compile_to_fragments",(function(){var e,t=this;return r(null!=(e=t.fragments)&&e!==h?"instance-variable":h)||(t.fragments=[],t.$compile()),t.fragments})),$(g,"$compile",(function(){return this.$raise("Not Implemented")})),$(g,"$push",(function(e){var t;return t=a(arguments),s(t,"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.fragments&&(n.fragments=h),null==t&&(t=h),r(t["$is_a?"](b("String")))&&(t=n.$fragment(t)),n.fragments["$<<"](t)}),{$$s:this})}),-1),$(g,"$unshift",(function(e){var t;return t=a(arguments),s(t,"reverse_each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.fragments&&(n.fragments=h),null==t&&(t=h),r(t["$is_a?"](b("String")))&&(t=n.$fragment(t)),n.fragments.$unshift(t)}),{$$s:this})}),-1),$(g,"$wrap",(function(e,t){return this.$unshift(e),this.$push(t)})),$(g,"$fragment",(function(e,t){var n,i;return t=u(t),null==(n=l(t,"loc"))&&(n=!0),m(b("Opal"),"Fragment").$new(e,this.$scope(),r(i=n)?this.sexp:i)}),-2),$(g,"$error",(function(e){return this.compiler.$error(e)})),$(g,"$scope",(function(){return this.compiler.$scope()})),$(g,"$top_scope",(function(){return this.compiler.$top_scope()})),$(g,"$s",(function(e,t){var n;return n=a(arguments,1),m(m(c,"AST"),"Node").$new(e,n,new Map([["location",this.sexp.$loc()]]))}),-2),$(g,"$expr?",(function(){return this.level["$=="]("expr")})),$(g,"$recv?",(function(){return this.level["$=="]("recv")})),$(g,"$stmt?",(function(){return this.level["$=="]("stmt")})),$(g,"$process",(function(e,t){return null==t&&(t="expr"),this.compiler.$process(e,t)}),-2),$(g,"$expr",(function(e){return this.compiler.$process(e,"expr")})),$(g,"$recv",(function(e){return this.compiler.$process(e,"recv")})),$(g,"$stmt",(function(e){return this.compiler.$process(e,"stmt")})),$(g,"$expr_or_nil",(function(e){return r(e)?this.$expr(e):"nil"})),$(g,"$expr_or_empty",(function(e){return r(e)&&_(e.$type(),"nil")?this.$expr(e):""})),$(g,"$add_local",(function(e){return this.$scope().$add_scope_local(e.$to_sym())})),$(g,"$add_ivar",(function(e){return this.$scope().$add_scope_ivar(e)})),$(g,"$add_gvar",(function(e){return this.$scope().$add_scope_gvar(e)})),$(g,"$add_temp",(function(e){return this.$scope().$add_scope_temp(e)})),$(g,"$helper",(function(e){return this.compiler.$helper(e)})),$(g,"$with_temp",(function e(){var t=e.$$p||h;return e.$$p=null,s(this.compiler,"with_temp",[],t.$to_proc())})),$(g,"$in_while?",(function(){return this.compiler["$in_while?"]()})),$(g,"$while_loop",(function(){return this.compiler.$instance_variable_get("@while_loop")})),$(g,"$has_rescue_else?",(function(){return this.$scope()["$has_rescue_else?"]()})),$(g,"$in_ensure",(function e(){var t=e.$$p||h;return e.$$p=null,s(this.$scope(),"in_ensure",[],t.$to_proc())})),$(g,"$in_ensure?",(function(){return this.$scope()["$in_ensure?"]()})),$(g,"$in_resbody",(function e(){var t=e.$$p||h;return e.$$p=null,s(this.$scope(),"in_resbody",[],t.$to_proc())})),$(g,"$in_resbody?",(function(){return this.$scope()["$in_resbody?"]()})),$(g,"$in_rescue",(function e(t){var n=e.$$p||h;return e.$$p=null,s(this.$scope(),"in_rescue",[t],n.$to_proc())})),$(g,"$class_variable_owner_nesting_level",(function(){var e=h,t=h,n=h;for(e=this.$scope(),t=0;r(r(n=e)?e["$class_scope?"]()["$!"]():n);)r(e["$sclass?"]())&&(t=d(t,1)),e=e.$parent();return t})),$(g,"$class_variable_owner",(function(){var e=this;return r(e.$scope())?e.$scope().$nesting()+"["+e.$class_variable_owner_nesting_level()+"]":"Opal.Object"})),$(g,"$comments",(function(){return this.$compiler().$comments()["$[]"](this.sexp.$loc())})),$(g,"$source_location",(function(){var e=h,t=h;return e=this.sexp.$loc().$expression(),r(e["$respond_to?"]("source_buffer"))?(t=e.$source_buffer().$name(),r(t["$start_with?"]("corelib/"))&&(t="<internal:"+t+">"),r(t["$end_with?"](".js"))&&(t="<js:"+t+">")):t="(eval)","['"+t+"', "+this.sexp.$loc().$line()+"]"}))}(g[0],0,g)}(g[0],g)}(f[0],f)},Opal.modules["opal/nodes/literal"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.return_val,a=e.defs,s=e.truthy,o=e.const_set,$=e.regexp,u=e.send,l=e.rb_plus,c=e.lambda,_=e.rb_le,d=e.rb_minus,p=e.slice,f=e.send2,h=e.find_super,m=e.to_a,g=e.eqeq,v=e.eqeqeq,b=e.Opal,y=e.rb_gt,w=e.top,x=[],k=e.nil,G=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,line,==,compile_static_regexp,compile_dynamic_regexp,each_with_index,zero?,expr,any?,===,static_as_dynamic,new,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"),w.$require("opal/nodes/base"),function(w,x){var E=[t(w,"Opal")].concat(x);return function(w,x){var E=[t(w,"Nodes")].concat(x),S=e.$r(E);return function(e,t){var s=n(e,t,"ValueNode");s.$handle("true","false","nil"),r(s,"$compile",(function(){return this.$push(this.$type().$to_s())})),a(s,"$truthy_optimize?",i(!0))}(E[0],S("Base")),function(e,t){var i=n(e,t,"SelfNode");i.$handle("self"),r(i,"$compile",(function(){return this.$push(this.$scope().$self())}))}(E[0],S("Base")),function(e,t){var o=n(e,t,"NumericNode");o.$handle("int","float"),o.$children("value"),r(o,"$compile",(function(){var e=this;return e.$push(e.$value().$to_s()),s(e["$recv?"]())?e.$wrap("(",")"):k})),a(o,"$truthy_optimize?",i(!0))}(E[0],S("Base")),function(t,i,a){var p=n(t,i,"StringNode"),f=[p].concat(a),h=e.$r(f);p.$handle("str"),p.$children("value"),o(f[0],"ESCAPE_CHARS",new Map([["a","\\u0007"],["e","\\u001b"]]).$freeze()),o(f[0],"ESCAPE_REGEX",$(["(\\\\+)([",h("ESCAPE_CHARS").$keys().$join(""),"])"]).$freeze()),r(p,"$translate_escape_chars",(function(e){return u(e,"gsub",[h("ESCAPE_REGEX")],(function(e){return null==e&&(e=k),s(h("Regexp").$last_match(1).$length()["$even?"]())?e:l(h("Regexp").$last_match(1).$chop(),h("ESCAPE_CHARS")["$[]"](h("Regexp").$last_match(2)))}))})),r(p,"$compile",(function(){var e,t=this,n=k;return n=t.$value(),e=u(n.$inspect(),"gsub",[/\\u\{([0-9a-f]+)\}/],(function e(){var t,n=null==e.$$s?this:e.$$s;return t=h("Regexp").$last_match(1).$to_i(16),n.$to_utf16(t)}),{$$s:t}),t.$push(t.$translate_escape_chars(e)),s(t.$value()["$valid_encoding?"]())?k:(t.$helper("binary"),t.$wrap("$binary(",")"))})),r(p,"$to_utf16",(function(e){var t,n,r=k;return 1023,r=c((function(e){return null==e&&(e=k),l("\\u",e.$to_s(16).$upcase())})),s(_(e,65535))?r.$call(e):(e=d(e,65536),t=l(55296,e["$>>"](10)),n=l(56320,e["$&"](1023)),l(r.$call(t),r.$call(n)))}))}(E[0],S("Base"),E),function(e,t){var i=n(e,t,"SymbolNode");i.$handle("sym"),i.$children("value"),r(i,"$compile",(function(){return this.$push(this.$value().$to_s().$inspect())}))}(E[0],S("Base")),function(t,i,a){var l=n(t,i,"RegexpNode"),c=[l].concat(a),_=e.$r(c);l.$$prototype.sexp=k,l.$handle("regexp"),l.$attr_accessor("value","flags"),o(c[0],"SUPPORTED_FLAGS",/[gimuy]/.$freeze()),r(l,"$initialize",(function e(t){var n,r=e.$$p||k,i=this;return e.$$p=null,n=p(arguments),f(i,h(i,"initialize",e,!1,!0),"initialize",m(n),r),i.$extract_flags_and_value()}),-1),r(l,"$compile",(function(){var e=this;return u(e.$flags(),"select!",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.sexp&&(n.sexp=k),null==t&&(t=k),!!s(_("SUPPORTED_FLAGS")["$=~"](t))||(n.$compiler().$warning("Skipping the '"+t+"' Regexp flag as it's not widely supported by JavaScript vendors.",n.sexp.$line()),!1)}),{$$s:e}),g(e.$value().$type(),"str")?e.$compile_static_regexp():e.$compile_dynamic_regexp()})),r(l,"$compile_dynamic_regexp",(function(){var e=this;return e.$helper("regexp"),e.$push("$regexp(["),u(e.$value().$children(),"each_with_index",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==t&&(t=k),null==n&&(n=k),s(n["$zero?"]())||r.$push(", "),r.$push(r.$expr(t))}),{$$s:e}),e.$push("]"),s(e.$flags()["$any?"]())&&e.$push(", '"+e.$flags().$join()+"'"),e.$push(")")})),r(l,"$compile_static_regexp",(function(){var e,t,n=this;return e=n.$value().$children()["$[]"](0),v("",t=e)?n.$push("/(?:)/"):v($(["\\(\\?[(<>#]|[*+?]\\+"]),t)?n.$static_as_dynamic(e):n.$push(""+_("Regexp").$new(e).$inspect()+n.$flags().$join())})),r(l,"$static_as_dynamic",(function(e){var t=this;return t.$helper("regexp"),t.$push('$regexp(["'),t.$push(e.$gsub("\\","\\\\\\\\")),t.$push('"]'),s(t.$flags()["$any?"]())&&t.$push(", '"+t.$flags().$join()+"'"),t.$push(")")})),r(l,"$extract_flags_and_value",(function(){var e,t,n=this,r=k,i=k,a=k;return t=(e=[].concat(m(n.$children()))).length-1,r=p(e,0,t=t<0?0:t),i=null==e[t]?k:e[t],n["$flags="](u(i.$children(),"map",[],"to_s".$to_proc())),n["$value="](s(r["$empty?"]())?n.$s("str",""):s(n["$single_line?"](r))?r["$[]"](0):u(n,"s",["dstr"].concat(m(r)))),s(n.$flags()["$include?"]("x"))&&(a=u(n.$value().$children(),"map",[],(function e(t){var n=null==e.$$s?this:e.$$s,r=k;return null==t&&(t=k),s(t["$is_a?"](G(G(b,"AST"),"Node")))&&g(t.$type(),"str")?(r=t.$children()["$[]"](0).$gsub(/^\s*\#.*/,"").$gsub(/\s/,""),n.$s("str",r)):t}),{$$s:n}),n["$value="](n.$value().$updated(k,a)),n.$flags().$delete("x")),g(n.$value().$type(),"str")?(e=[n.$s("str",n.$value().$children()["$[]"](0).$gsub("\\A","^").$gsub("\\z","$"))],u(n,"value=",e),e[e.length-1]):k})),r(l,"$raw_value",(function(){var e;return e=[this.sexp.$loc().$expression().$source()],u(this,"value=",e),e[e.length-1]})),l.$private(),r(l,"$single_line?",(function(e){var t,n=k;return!s(y(e.$length(),1))&&(n=e["$[]"](0),s(t=n.$type()["$!="]("str"))?t:n.$children()["$[]"](0)["$include?"]("\n")["$!"]())}))}(E[0],S("Base"),E),function(e,t){var i=n(e,t,"MatchCurrentLineNode");i.$handle("match_current_line"),i.$children("regexp"),r(i,"$compile",(function(){var e,t,n=this;return e=n.$s("gvar","$_"),t=n.$s("send",e,"=~",n.$regexp()),n.$push(n.$expr(t))}))}(E[0],S("Base")),function(e,t){var i=n(e,t,"DynamicStringNode");i.$handle("dstr"),r(i,"$compile",(function(){var e=this,t=k;return s(y(e.$children().$length(),1))&&g(e.$children().$first().$type(),"str")?t=!0:e.$push('""'),u(e.$children(),"each",[],(function e(n){var r=null==e.$$s?this:e.$$s;return null==n&&(n=k),s(t)?t=!1:r.$push(" + "),g(n.$type(),"str")?r.$push(r.$expr(n)):r.$push("(",r.$expr(n),")"),s(r["$recv?"]())?r.$wrap("(",")"):k}),{$$s:e})}))}(E[0],S("Base")),function(e,t){n(e,t,"DynamicSymbolNode").$handle("dsym")}(E[0],S("DynamicStringNode")),function(t,i,a){var $=n(t,i,"RangeNode"),u=[$].concat(a),l=e.$r(u);$.$children("start","finish"),o(u[0],"SIMPLE_CHILDREN_TYPES",["int","float","str","sym"].$freeze()),r($,"$compile",(function(){var e=this;return s(e["$compile_inline?"]())?(e.$helper("range"),e.$compile_inline()):e.$compile_range_initialize()})),r($,"$compile_inline?",(function(){var e,t=this,n=k,r=k;return s(e=s(n=t.$start()["$!"]())?n:s(r=t.$start().$type())?l("SIMPLE_CHILDREN_TYPES")["$include?"](t.$start().$type()):r)?s(n=t.$finish()["$!"]())?n:s(r=t.$finish().$type())?l("SIMPLE_CHILDREN_TYPES")["$include?"](t.$finish().$type()):r:e})),r($,"$compile_inline",(function(){return this.$raise(l("NotImplementedError"))})),r($,"$compile_range_initialize",(function(){return this.$raise(l("NotImplementedError"))}))}(E[0],S("Base"),E),function(e,t){var i=n(e,t,"InclusiveRangeNode");i.$handle("irange"),r(i,"$compile_inline",(function(){var e=this;return e.$push("$range(",e.$expr_or_nil(e.$start()),", ",e.$expr_or_nil(e.$finish()),", false)")})),r(i,"$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)")}))}(E[0],S("RangeNode")),function(e,t){var i=n(e,t,"ExclusiveRangeNode");i.$handle("erange"),r(i,"$compile_inline",(function(){var e=this;return e.$push("$range(",e.$expr_or_nil(e.$start()),", ",e.$expr_or_nil(e.$finish()),", true)")})),r(i,"$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)")}))}(E[0],S("RangeNode")),function(e,t){var i=n(e,t,"RationalNode");i.$handle("rational"),i.$children("value"),r(i,"$compile",(function(){var e=this;return e.$push(e.$top_scope().$absolute_const()+"('Rational').$new("+e.$value().$numerator()+", "+e.$value().$denominator()+")")}))}(E[0],S("Base")),function(e,t){var i=n(e,t,"ComplexNode");return i.$handle("complex"),i.$children("value"),r(i,"$compile",(function(){var e=this;return e.$push(e.$top_scope().$absolute_const()+"('Complex').$new("+e.$value().$real()+", "+e.$value().$imag()+")")}))}(E[0],S("Base"))}(E[0],E)}(x[0],x)},Opal.modules["opal/nodes/variables"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.def,a=e.send,s=e.range,o=e.send2,$=e.find_super,u=e.top,l=[],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"),u.$require("opal/nodes/base"),function(u,l){var _=[t(u,"Opal")].concat(l);return function(u,l){var _=[t(u,"Nodes")].concat(l),d=e.$r(_);return function(e,t){var s=n(e,t,"LocalVariableNode");s.$handle("lvar"),s.$children("var_name"),i(s,"$using_irb?",(function(){var e;return r(e=this.$compiler()["$irb?"]())?this.$scope()["$top?"]():e})),i(s,"$compile",(function(){var e=this;return r(e["$using_irb?"]())?a(e,"with_temp",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=c),n.$push(n.$property(n.$var_name().$to_s())),n.$wrap("(("+t+" = Opal.irb_vars",") == null ? nil : "+t+")")}),{$$s:e}):e.$push(e.$var_name().$to_s())}))}(_[0],d("Base")),function(e,t){var a=n(e,t,"LocalAssignNode");a.$handle("lvasgn"),a.$children("var_name","value"),i(a,"$using_irb?",(function(){var e;return r(e=this.$compiler()["$irb?"]())?this.$scope()["$top?"]():e})),i(a,"$compile",(function(){var e=this;return r(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())),(r(e["$recv?"]())||r(e["$expr?"]()))&&r(e.$value())?e.$wrap("(",")"):c}))}(_[0],d("Base")),function(e,t){var r=n(e,t,"LocalDeclareNode");r.$handle("lvdeclare"),r.$children("var_name"),i(r,"$compile",(function(){return this.$add_local(this.$var_name().$to_s()),c}))}(_[0],d("Base")),function(e,t){var r=n(e,t,"InstanceVariableNode");r.$handle("ivar"),r.$children("name"),i(r,"$var_name",(function(){return this.$name().$to_s()["$[]"](s(1,-1,!1))})),i(r,"$compile",(function(){var e,t=this;return e=t.$property(t.$var_name()),t.$add_ivar(e),t.$push(""+t.$scope().$self()+e)}))}(_[0],d("Base")),function(e,t){var a=n(e,t,"InstanceAssignNode");a.$handle("ivasgn"),a.$children("name","value"),i(a,"$var_name",(function(){return this.$name().$to_s()["$[]"](s(1,-1,!1))})),i(a,"$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())),(r(t["$recv?"]())||r(t["$expr?"]()))&&r(t.$value())?t.$wrap("(",")"):c}))}(_[0],d("Base")),function(e,t){var r=n(e,t,"GlobalVariableNode");r.$handle("gvar"),r.$children("name"),i(r,"$var_name",(function(){return this.$name().$to_s()["$[]"](s(1,-1,!1))})),i(r,"$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],d("Base")),function(t,r,s){var u=n(t,r,"BackRefNode"),l=[u].concat(s),_=e.$r(l);u.$handle("back_ref"),i(u,"$compile",(function e(){var t=e.$$p||c,n=this;switch(e.$$p=null,n.$helper("gvars"),n.$var_name().valueOf()){case"&":return n.$handle_global_match();case"'":return n.$handle_post_match();case"`":return n.$handle_pre_match();case"+":return o(n,$(n,"compile",e,!1,!0),"compile",[],t);default:return n.$raise(_("NotImplementedError"))}})),i(u,"$handle_global_match",(function(){return a(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})})),i(u,"$handle_pre_match",(function(){return a(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})})),i(u,"$handle_post_match",(function(){return a(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],d("GlobalVariableNode"),_),function(e,t){var a=n(e,t,"GlobalAssignNode");a.$handle("gvasgn"),a.$children("name","value"),i(a,"$var_name",(function(){return this.$name().$to_s()["$[]"](s(1,-1,!1))})),i(a,"$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())),(r(t["$recv?"]())||r(t["$expr?"]()))&&r(t.$value())?t.$wrap("(",")"):c}))}(_[0],d("Base")),function(e,t){var r=n(e,t,"NthrefNode");r.$handle("nth_ref"),r.$children("index"),i(r,"$compile",(function(){var e=this;return e.$helper("gvars"),a(e,"with_temp",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=c),n.$push("(("+t+" = $gvars['~']) === nil ? nil : "+t+"['$[]']("+n.$index()+"))")}),{$$s:e})}))}(_[0],d("Base")),function(e,t){var a=n(e,t,"ClassVariableNode");a.$handle("cvar"),a.$children("name"),i(a,"$compile",(function(){var e=this,t=c;return e.$helper("class_variable_get"),t=!1,r(e["$stmt?"]())&&(t=!0),e.$push("$class_variable_get("+e.$class_variable_owner()+", '"+e.$name()+"', "+t.$inspect()+")")}))}(_[0],d("Base")),function(e,t){var r=n(e,t,"ClassVarAssignNode");return r.$handle("cvasgn"),r.$children("name","value"),i(r,"$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],d("Base"))}(_[0],_)}(l[0],l)},Opal.modules["opal/nodes/constants"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.eqeq,a=e.def,s=e.const_set,o=e.top,$=[];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,$){var u=[t(o,"Opal")].concat($);return function(o,$){var u=[t(o,"Nodes")].concat($),l=e.$r(u);return function(t,o,$){var u=n(t,o,"ConstNode"),l=[u].concat($),c=e.$r(l);u.$handle("const"),u.$children("const_scope","name"),a(u,"$compile",(function(){var e=this;return r(e["$magical_data_const?"]())?e.$push("$__END__"):r(e["$optimized_access?"]())?(e.$helper(""+e.$name()),e.$push("$"+e.$name())):i(e.$const_scope(),e.$s("cbase"))?e.$push(e.$top_scope().$absolute_const()+"('"+e.$name()+"')"):r(e.$const_scope())?e.$push(e.$top_scope().$absolute_const()+"(",e.$recv(e.$const_scope()),", '"+e.$name()+"')"):(r(e.$compiler()["$eval?"]()),e.$push(e.$scope().$relative_access()+"('"+e.$name()+"')"))})),a(u,"$magical_data_const?",(function(){var e,t,n=this;return r(e=r(t=n.$const_scope()["$nil?"]())?n.$name()["$=="]("DATA"):t)?n.$compiler().$eof_content():e})),s(l[0],"OPTIMIZED_ACCESS_CONSTS",["BasicObject","Object","Module","Class","Opal","Kernel","NilClass"].$freeze()),a(u,"$optimized_access?",(function(){var e,t=this;return r(e=t.$const_scope()["$=="](t.$s("cbase")))?c("OPTIMIZED_ACCESS_CONSTS")["$include?"](t.$name()):e}))}(u[0],l("Base"),u),function(e,t){var r=n(e,t,"CbaseNode");r.$handle("cbase"),a(r,"$compile",(function(){return this.$push("'::'")}))}(u[0],l("Base")),function(e,t){var i=n(e,t,"ConstAssignNode");return i.$handle("casgn"),i.$children("base","name","value"),a(i,"$compile",(function(){var e=this;return e.$helper("const_set"),r(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()),")")}))}(u[0],l("Base"))}(u[0],u)}($[0],$)},Opal.modules.pathname=function(e){var t=e.klass,n=e.const_set,r=e.regexp,i=e.eqeqeq,a=e.truthy,s=e.eqeq,o=e.def,$=e.defs,u=e.to_ary,l=e.slice,c=e.send,_=e.to_a,d=e.return_ivar,p=e.neqeq,f=e.rb_plus,h=e.not,m=e.thrower,g=e.alias,v=e.module,b=e.top,y=[],w=e.nil,x=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"),b.$require("corelib/comparable"),function(v,b,y){var k=t(v,null,"Pathname"),G=[k].concat(y),E=e.$r(G);k.$$prototype.path=w,k.$include(E("Comparable")),n(G[0],"SEPARATOR_PAT",r([E("Regexp").$quote(x(E("File"),"SEPARATOR"))])),o(k,"$initialize",(function(e){var t=this;return i(E("Pathname"),e)?t.path=e.$path().$to_s():a(e["$respond_to?"]("to_path"))?t.path=e.$to_path():a(e["$is_a?"](E("String")))?t.path=e:a(e["$nil?"]())?t.$raise(E("TypeError"),"no implicit conversion of nil into String"):t.$raise(E("TypeError"),"no implicit conversion of "+e.$class()+" into String"),s(t.path,"\0")?t.$raise(E("ArgumentError")):w})),$(k,"$pwd",(function(){return this.$new(E("Dir").$pwd())})),k.$attr_reader("path"),o(k,"$==",(function(e){return e.$path()["$=="](this.path)})),o(k,"$absolute?",(function(){return this["$relative?"]()["$!"]()})),o(k,"$relative?",(function(){var e,t=w,n=w;for(t=this.path;a(n=this.$chop_basename(t));)t=null==(e=u(n))[0]?w:e[0];return t["$=="]("")})),o(k,"$chop_basename",(function(e){var t;return t=E("File").$basename(e),a(E("Regexp").$new("^"+x(E("Pathname"),"SEPARATOR_PAT").$source()+"?$")["$=~"](t))?w:[e["$[]"](0,e.$rindex(t)),t]})),o(k,"$root?",(function(){return this.path["$=="]("/")})),o(k,"$parent",(function(){var e=w;return e=this.path.$sub(/\/([^\/]+\/?$)/,""),s(e,"")&&(e=a(this["$absolute?"]())?"/":"."),E("Pathname").$new(e)})),o(k,"$sub",(function(e){var t;return t=l(arguments),E("Pathname").$new(c(this.path,"sub",_(t)))}),-1),o(k,"$cleanpath",(function(){return e.normalize(this.path)})),o(k,"$to_path",d("path")),o(k,"$hash",(function(){return this.path.$hash()})),o(k,"$expand_path",(function(){return E("Pathname").$new(E("File").$expand_path(this.path))})),o(k,"$+",(function(e){return i(E("Pathname"),e)||(e=E("Pathname").$new(e)),E("Pathname").$new(this.$plus(this.path,e.$to_s()))})),o(k,"$plus",(function(t,n){var i,o=this,$=w,l=w,c=w,_=w,d=w,m=w,g=w,v=w,b=w,y=w;for($=n,l=[],c=[];a(_=o.$chop_basename($));)$=null==(i=u(_))[0]?w:i[0],d=null==i[1]?w:i[1],l.$unshift($.$length()),c.$unshift(d);if(p($,""))return n;for(m=t;a(!0);){for(;a(a(g=c["$empty?"]()["$!"]())?c.$first()["$=="]("."):g);)l.$shift(),c.$shift();if(!a(v=o.$chop_basename(m)))break;if(m=null==(i=u(v))[0]?w:i[0],b=null==i[1]?w:i[1],!s(b,".")){if(s(b,"..")||a(c["$empty?"]())||p(c.$first(),"..")){m=f(m,b);break}l.$shift(),c.$shift()}}if(v=o.$chop_basename(m),h(v)&&a(r([E("SEPARATOR_PAT")])["$=~"](E("File").$basename(m))))for(;a(a(g=c["$empty?"]()["$!"]())?c.$first()["$=="](".."):g);)l.$shift(),c.$shift();return h(c["$empty?"]())?(y=n["$[]"](e.Range.$new(l.$first(),-1,!1)),a(v)?E("File").$join(m,y):f(m,y)):a(v)?m:E("File").$dirname(m)})),o(k,"$join",(function(e){try{var t,n,r=m("return"),s=w;return t=l(arguments),a((n=t)["$empty?"]())?this:(s=n.$pop(),i(E("Pathname"),s)||(s=E("Pathname").$new(s)),a(s["$absolute?"]())?s:(c(n,"reverse_each",[],(function e(t){if(null==t&&(t=w),i(E("Pathname"),t)||(t=E("Pathname").$new(t)),s=f(t,s),!a(s["$absolute?"]()))return w;r.$throw(s,e.$$is_lambda)}),{$$ret:r}),f(this,s)))}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}}),-1),o(k,"$split",(function(){return[this.$dirname(),this.$basename()]})),o(k,"$dirname",(function(){return E("Pathname").$new(E("File").$dirname(this.path))})),o(k,"$basename",(function(){return E("Pathname").$new(E("File").$basename(this.path))})),o(k,"$directory?",(function(){return E("File")["$directory?"](this.path)})),o(k,"$extname",(function(){return E("File").$extname(this.path)})),o(k,"$<=>",(function(e){return this.$path()["$<=>"](e.$path())})),n(G[0],"SAME_PATHS",a(x(E("File"),"FNM_SYSCASE")["$nonzero?"]())?c(k,"proc",[],(function(e,t){return null==e&&(e=w),null==t&&(t=w),e.$casecmp(t)["$=="](0)})):c(k,"proc",[],(function(e,t){return null==e&&(e=w),null==t&&(t=w),e["$=="](t)}))),o(k,"$relative_path_from",(function(e){var t,n,r=this,i=w,s=w,o=w,$=w,l=w,d=w,h=w,m=w,g=w;for(n=r.$cleanpath().$to_s(),e=e.$cleanpath().$to_s(),i=n,s=[];a(o=r.$chop_basename(i));)i=null==(t=u(o))[0]?w:t[0],$=null==t[1]?w:t[1],p($,".")&&s.$unshift($);for(l=e,d=[];a(o=r.$chop_basename(l));)l=null==(t=u(o))[0]?w:t[0],$=null==t[1]?w:t[1],p($,".")&&d.$unshift($);for(a(E("SAME_PATHS")["$[]"](i,l))||r.$raise(E("ArgumentError"),"different prefix: "+i.$inspect()+" and "+e.$inspect());a(a(h=a(m=s["$empty?"]()["$!"]())?d["$empty?"]()["$!"]():m)?E("SAME_PATHS")["$[]"](s.$first(),d.$first()):h);)s.$shift(),d.$shift();return a(d["$include?"](".."))&&r.$raise(E("ArgumentError"),"base_directory has ..: "+e.$inspect()),d.$fill(".."),g=f(d,s),a(g["$empty?"]())?E("Pathname").$new("."):E("Pathname").$new(c(E("File"),"join",_(g)))})),o(k,"$entries",(function(){return c(E("Dir").$entries(this.path),"map",[],(function e(t){return null==t&&(t=w),(null==e.$$s?this:e.$$s).$class().$new(t)}),{$$s:this})})),g(k,"===","=="),g(k,"eql?","=="),g(k,"to_s","to_path"),g(k,"to_str","to_path")}(y[0],0,y),function(t,n){var r=v(t,"Kernel"),i=[r].concat(n),a=e.$r(i);return o(r,"$Pathname",(function(e){return a("Pathname").$new(e)}))}(y[0],y)},Opal.modules["opal/nodes/call"]=function(e){var t=e.module,n=e.klass,r=e.const_set,i=e.send,a=e.defs,s=e.slice,o=e.send2,$=e.find_super,u=e.to_a,l=e.truthy,c=e.def,_=e.eqeq,d=e.rb_plus,p=e.not,f=e.neqeq,h=e.to_ary,m=e.Opal,g=e.range,v=e.top,b=[],y=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,b){var x=[t(v,"Opal")].concat(b);return function(v,b){var x=[t(v,"Nodes")].concat(b),k=e.$r(x);return function(t,v,b){var x=n(t,v,"CallNode"),k=[x].concat(b),G=e.$r(k),E=x.$$prototype;return E.sexp=E.conditional_recvr=E.with_writer_temp=E.compiler=y,x.$handle("send","csend"),x.$attr_reader("recvr","meth","arglist","iter"),r(k[0],"SPECIALS",new Map),r(k[0],"OPERATORS",new Map([["+","plus"],["-","minus"],["*","times"],["/","divide"],["<","lt"],["<=","le"],[">","gt"],[">=","ge"]]).$freeze()),a(x,"$add_special",(function e(t,n){var r=e.$$p||y;return e.$$p=null,null==n&&(n=new Map),G("SPECIALS")["$[]="](t,n),i(this,"define_method",["handle_"+t],r.$to_proc())}),-2),c(x,"$initialize",(function e(t){var n,r,a,c,_=e.$$p||y,d=this,p=y,f=y;return e.$$p=null,n=s(arguments),o(d,$(d,"initialize",e,!1,!0),"initialize",u(n),_),r=[].concat(u(d.sexp)),d.recvr=null==r[0]?y:r[0],d.meth=null==r[1]?y:r[1],p=s(r,2),a=(r=[].concat(u(p))).length-1,c=s(r,0,a=a<0?0:a),f=null==r[a]?y:r[a],l(f)&&l(["iter","block_pass"]["$include?"](f.$type()))?(d.iter=f,p=c):d.iter=y,d.arglist=i(d,"s",["arglist"].concat(u(p)))}),-1),c(x,"$compile",(function(){return i(this,"handle_special",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$compiler().$record_method_call(t.$meth()),i(t,"with_wrapper",[],(function e(){var t=null==e.$$s?this:e.$$s;return l(t["$using_eval?"]())?t.$compile_eval_var():l(t["$using_irb?"]())?t.$compile_irb_var():t.$default_compile()}),{$$s:t})}),{$$s:this})})),x.$private(),c(x,"$iter_has_break?",(function(){return!!l(this.$iter())&&this.$iter().$meta()["$[]"]("has_break")})),c(x,"$invoke_using_send?",(function(){var e,t,n=this;return l(e=l(t=n.$iter())?t:n["$splat?"]())?e:n["$call_is_writer_that_needs_handling?"]()})),c(x,"$invoke_using_refinement?",(function(){return this.$scope().$scope().$collect_refinements_temps()["$empty?"]()["$!"]()})),c(x,"$csend?",(function(){return this.sexp.$type()["$=="]("csend")})),c(x,"$default_compile",(function(){var e=this;return l(e["$auto_await?"]())&&(e.$push("(await "),e.$scope()["$await_encountered="](!0)),l(e["$iter_has_break?"]())&&e.$push_closure(w(G("Closure"),"SEND")),l(e["$invoke_using_refinement?"]())?e.$compile_using_refined_send():l(e["$invoke_using_send?"]())?e.$compile_using_send():e.$compile_simple_call_chain(),l(e["$iter_has_break?"]())&&e.$pop_closure(),l(e["$auto_await?"]())?e.$push(")"):y})),c(x,"$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(x,"$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(x,"$compile_receiver",(function(){var e,t=this;return t.$push(l(e=t.conditional_recvr)?e:t.$recv(t.$receiver_sexp()))})),c(x,"$compile_method_name",(function(){return this.$push(", '"+this.$meth()+"'")})),c(x,"$compile_arguments",(function(e){var t=this;return null==e&&(e=!1),l(e)||t.$push(", "),l(t.with_writer_temp)?t.$push(t.with_writer_temp):l(t["$splat?"]())?t.$push(t.$expr(t.$arglist())):l(t.$arglist().$children()["$empty?"]())?t.$push("[]"):t.$push("[",t.$expr(t.$arglist()),"]")}),-1),c(x,"$compile_block_pass",(function(){var e=this;return l(e.$iter())?e.$push(", ",e.$expr(e.$iter())):y})),c(x,"$compile_refinements",(function(){var e,t=this;return e=i(t.$scope().$collect_refinements_temps(),"map",[],(function e(t){return null==t&&(t=y),(null==e.$$s?this:e.$$s).$s("js_tmp",t)}),{$$s:t}),t.$push(t.$expr(i(t,"s",["array"].concat(u(e)))),", ")})),c(x,"$compile_simple_call_chain",(function(){var e=this;return e.$compile_receiver(),e.$push(e.$method_jsid(),"(",e.$expr(e.$arglist()),")")})),c(x,"$splat?",(function(){return i(this.$arglist().$children(),"any?",[],(function(e){return null==e&&(e=y),e.$type()["$=="]("splat")}))})),c(x,"$receiver_sexp",(function(){var e;return l(e=this.$recvr())?e:this.$s("self")})),c(x,"$method_jsid",(function(){return this.$mid_to_jsid(this.$meth().$to_s())})),c(x,"$compile_irb_var",(function(){return i(this,"with_temp",[],(function e(t){var n,r,i,a=null==e.$$s?this:e.$$s;return null==t&&(t=y),n=a.$meth(),r=a.$s("send",a.$s("self"),a.$meth().$intern(),a.$s("arglist")),i="(typeof "+n+" !== 'undefined') ? "+n+" : ",a.$push("(("+t+" = Opal.irb_vars."+n+") == null ? ",i,a.$expr(r)," : "+t+")")}),{$$s:this})})),c(x,"$compile_eval_var",(function(){return this.$push(this.$meth().$to_s())})),c(x,"$using_irb?",(function(){var e,t,n=this;return l(e=l(t=n.compiler["$irb?"]())?n.$scope()["$top?"]():t)?n["$variable_like?"]():e})),c(x,"$using_eval?",(function(){var e,t,n=this;return l(e=l(t=n.compiler["$eval?"]())?n.$scope()["$top?"]():t)?n.compiler.$scope_variables()["$include?"](n.$meth()):e})),c(x,"$variable_like?",(function(){var e,t,n=this;return l(e=l(t=n.$arglist()["$=="](n.$s("arglist")))?n.$recvr()["$nil?"]():t)?n.$iter()["$nil?"]():e})),c(x,"$sexp_with_arglist",(function(){var e=this;return e.sexp.$updated(y,[e.$recvr(),e.$meth(),e.$arglist()])})),c(x,"$auto_await?",(function(){var e,t,n=y;return n=this.$compiler().$async_await(),l(e=l(t=n)?n["$!="](!0):t)?n["$match?"](this.$meth().$to_s()):e})),c(x,"$handle_special",(function t(){var n=t.$$p||y,r=this,i=y;return t.$$p=null,l(G("SPECIALS")["$include?"](r.$meth()))?(i=r.$method("handle_"+r.$meth()),_(i.$arity(),1)?i["$[]"](n):i["$[]"]()):e.yieldX(n,[])})),i(G("OPERATORS"),"each",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==t&&(t=y),null==n&&(n=y),i(r,"add_special",[t.$to_sym()],(function e(r){var i,a=null==e.$$s?this:e.$$s,s=y,o=y;return null==r&&(r=y),l(a["$invoke_using_refinement?"]())?r.$call():l(a.$compiler()["$inline_operators?"]())?(a.$compiler().$record_method_call(t),a.$helper("rb_"+n),s=(i=[a.$expr(a.$recvr()),a.$expr(a.$arglist())])[0],o=i[1],a.$push(a.$fragment("$rb_"+n+"(")),a.$push(s),a.$push(a.$fragment(", ")),a.$push(o),a.$push(a.$fragment(")"))):r.$call()}),{$$s:r})}),{$$s:x}),i(x,"add_special",["require"],(function e(t){var n=null==e.$$s?this:e.$$s,r=y;return null==t&&(t=y),r=G("DependencyResolver").$new(n.$compiler(),n.$arglist().$children()["$[]"](0)).$resolve(),l(r["$nil?"]())||n.$compiler().$requires()["$<<"](r),t.$call()}),{$$s:x}),i(x,"add_special",["require_relative"],(function e(){var t=null==e.$$s?this:e.$$s,n=y,r=y,i=y;return n=t.$arglist().$children()["$[]"](0),r=t.$compiler().$file(),_(n.$type(),"str")&&(i=G("File").$dirname(r),t.$compiler().$requires()["$<<"](t.$Pathname(i).$join(n.$children()["$[]"](0)).$cleanpath().$to_s())),t.$push(t.$fragment(t.$scope().$self()+".$require("+r.$inspect()+"+ '/../' + ")),t.$push(t.$process(t.$arglist())),t.$push(t.$fragment(")"))}),{$$s:x}),i(x,"add_special",["autoload"],(function e(t){var n=null==e.$$s?this:e.$$s,r=y,i=y;return null==t&&(t=y),r=n.$arglist().$children(),_(r.$length(),2)&&_(r["$[]"](0).$type(),"sym")&&(i=G("DependencyResolver").$new(n.$compiler(),r["$[]"](1),"ignore").$resolve(),l(i["$nil?"]())?n.$compiler().$warning("File for autoload of constant '"+r["$[]"](0).$children()["$[]"](0)+"' could not be bundled!"):(n.$compiler().$requires()["$<<"](i),n.$compiler().$autoloads()["$<<"](i))),t.$call()}),{$$s:x}),i(x,"add_special",["require_tree"],(function e(t){var n,r,i=null==e.$$s?this:e.$$s,a=y,o=y,$=y,l=y;return null==t&&(t=y),a=null==(n=[].concat(u(i.$arglist().$children())))[0]?y:n[0],r=s(n,1),_(a.$type(),"str")&&(o=a.$children()["$[]"](0),i.$compiler().$required_trees()["$<<"](o),$=G("File").$dirname(i.$compiler().$file()),(l=i.$Pathname($).$join(o).$cleanpath().$to_s()).$force_encoding(o.$encoding()),a=a.$updated(y,[l])),i.arglist=i.$arglist().$updated(y,d([a],r)),t.$call()}),{$$s:x}),i(x,"add_special",["block_given?"],(function e(){var t=null==e.$$s?this:e.$$s;return null==t.sexp&&(t.sexp=y),t.$push(t.$compiler().$handle_block_given_call(t.sexp))}),{$$s:x}),i(x,"add_special",["__callee__"],(function e(){var t=null==e.$$s?this:e.$$s;return l(t.$scope()["$def?"]())?t.$push(t.$fragment(t.$scope().$mid().$to_s().$inspect())):t.$push(t.$fragment("nil"))}),{$$s:x}),i(x,"add_special",["__method__"],(function e(){var t=null==e.$$s?this:e.$$s;return l(t.$scope()["$def?"]())?t.$push(t.$fragment(t.$scope().$mid().$to_s().$inspect())):t.$push(t.$fragment("nil"))}),{$$s:x}),i(x,"add_special",["__dir__"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$push(G("File").$dirname(w(G("Opal"),"Compiler").$module_name(t.$compiler().$file())).$inspect())}),{$$s:x}),i(x,"add_special",["using"],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=y),l(n.$scope()["$accepts_using?"]())&&_(n.$arglist().$children().$count(),1)?n.$using_refinement(n.$arglist().$children().$first()):t.$call()}),{$$s:x}),c(x,"$using_refinement",(function(e){var t,n,r,i=this;return n=null==(t=[].concat(u(i.$scope().$refinements_temp())))[0]?y:t[0],r=null==t[1]?y:t[1],l(n)?i.$push("("+r+" = "+n+".slice(), "+r+".push(",i.$expr(e),"), "+i.$scope().$self()+")"):i.$push("("+r+" = [",i.$expr(e),"], "+i.$scope().$self()+")")})),i(x,"add_special",["debugger"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$push(t.$fragment("debugger"))}),{$$s:x}),i(x,"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:x}),i(x,"add_special",["lambda"],(function e(t){return null==t&&(t=y),i((null==e.$$s?this:e.$$s).$scope(),"defines_lambda",[],(function(){return t.$call()}))}),{$$s:x}),i(x,"add_special",["nesting"],(function e(t){var n,r=null==e.$$s?this:e.$$s;return null==t&&(t=y),n=r["$push_nesting?"](),l(n)&&r.$push("(Opal.Module.$$nesting = "+r.$scope().$nesting()+", "),t.$call(),l(n)?r.$push(")"):y}),{$$s:x}),i(x,"add_special",["constants"],(function e(t){var n,r=null==e.$$s?this:e.$$s;return null==t&&(t=y),n=r["$push_nesting?"](),l(n)&&r.$push("(Opal.Module.$$nesting = "+r.$scope().$nesting()+", "),t.$call(),l(n)?r.$push(")"):y}),{$$s:x}),i(x,"add_special",["eval"],(function e(t){var n,r,a=null==e.$$s?this:e.$$s;return null==t&&(t=y),a.$thrower("eval_return"),f(a.$arglist().$children().$length(),1)||p([a.$s("self"),y]["$include?"](a.$recvr()))?t.$call():(a.$scope().$nesting(),n=a.$scope().$new_temp(),r=i(a.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),a.$push("("+n+" = ",a.$expr(a.$arglist())),a.$push(", typeof Opal.compile === 'function' ? eval(Opal.compile("+n),a.$push(", {scope_variables: ",r),a.$push(", arity_check: "+a.$compiler()["$arity_check?"]()+", file: '(eval)', eval: true})) : "),a.$push(a.$scope().$self()+".$eval("+n+"))"))}),{$$s:x}),i(x,"add_special",["local_variables"],(function e(t){var n,r=null==e.$$s?this:e.$$s;return null==t&&(t=y),l([r.$s("self"),y]["$include?"](r.$recvr()))?(n=i(r.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),r.$push(n)):t.$call()}),{$$s:x}),i(x,"add_special",["binding"],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=y),l(n.$recvr()["$nil?"]())?(n.$scope().$nesting(),n.$push("Opal.Binding.$new("),n.$push(" function($code) {"),n.$push(" return eval($code);"),n.$push(" },"),n.$push(" ",i(n.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),","),n.$push(" ",n.$scope().$self(),","),n.$push(" ",n.$source_location()),n.$push(")")):t.$call()}),{$$s:x}),i(x,"add_special",["__await__"],(function e(t){var n,r=null==e.$$s?this:e.$$s;return null==t&&(t=y),l(r.$compiler().$async_await())?(r.$push(r.$fragment("(await (")),r.$push(r.$process(r.$recvr())),r.$push(r.$fragment("))")),n=[!0],i(r.$scope(),"await_encountered=",n),n[n.length-1]):t.$call()}),{$$s:x}),c(x,"$push_nesting?",(function(){var e,t=y,n=y,r=y;return t=this.$children().$first(),l(e=this.$children().$size()["$=="](2))?l(n=t["$nil?"]())?n:l(r=t.$type()["$=="]("const"))?t.$children().$last()["$=="]("Module"):r:e})),c(x,"$with_wrapper",(function t(){var n=t.$$p||y,r=this;return t.$$p=null,l(r["$csend?"]())&&p(r.conditional_recvr)?i(r,"handle_conditional_send",[],(function e(){return i(null==e.$$s?this:e.$$s,"with_wrapper",[],n.$to_proc())}),{$$s:r}):l(r["$call_is_writer_that_needs_handling?"]())?i(r,"handle_writer",[],n.$to_proc()):e.yieldX(n,[])})),c(x,"$call_is_writer_that_needs_handling?",(function(){var e,t=this,n=y;return l(e=l(n=t["$expr?"]())?n:t["$recv?"]())?l(n=t.$meth().$to_s()["$=~"](/^\w+=$/))?n:t.$meth()["$=="]("[]="):e})),c(x,"$handle_conditional_send",(function t(){var n,r=t.$$p||y,i=this;return t.$$p=null,n=i.$scope().$new_temp(),i.$push(n+" = ",i.$expr(i.$receiver_sexp())),i.$push(", ("+n+" === nil || "+n+" == null) ? nil : "),i.conditional_recvr=n,e.yieldX(r,[]),i.$wrap("(",")")})),c(x,"$handle_writer",(function t(){var n=t.$$p||y;return t.$$p=null,i(this,"with_temp",[],(function t(r){var i=null==t.$$s?this:t.$$s;return null==r&&(r=y),i.$push("("+r+" = "),i.$compile_arguments(!0),i.$push(", "),i.with_writer_temp=r,e.yieldX(n,[]),i.with_writer_temp=!1,i.$push(", "),i.$push(r+"["+r+".length - 1])")}),{$$s:this})})),function(t,r,a){var o=n(t,null,"DependencyResolver"),$=[o].concat(a),d=e.$r($),p=o.$$prototype;return p.compiler=p.sexp=p.missing_dynamic_require=y,c(o,"$initialize",(function(e,t,n){var r,i=this;return null==n&&(n=y),i.compiler=e,i.sexp=t,i.missing_dynamic_require=l(r=n)?r:i.compiler.$dynamic_require_severity()}),-3),c(o,"$resolve",(function(){return this.$handle_part(this.sexp)})),c(o,"$handle_part",(function(e,t){var n,r,a=this,o=y,$=y,c=y,p=y;if(null==t&&(t=a.missing_dynamic_require),l(e))switch(e.$type().valueOf()){case"str":return e.$children()["$[]"](0);case"dstr":return i(e.$children(),"map",[],(function e(t){return null==t&&(t=y),(null==e.$$s?this:e.$$s).$handle_part(t)}),{$$s:a}).$join();case"begin":if(_(e.$children().$length(),1))return a.$handle_part(e.$children()["$[]"](0));break;case"send":if(r=e.$children(),o=null==(n=h(r))[0]?y:n[0],$=null==n[1]?y:n[1],c=s(n,2),p=i(c,"map",[],(function e(t){return null==t&&(t=y),(null==e.$$s?this:e.$$s).$handle_part(t,"ignore")}),{$$s:a}),l(p["$include?"](y)))return y;if(l(o["$is_a?"](w(w(m,"AST"),"Node")))&&_(o.$type(),"const")&&_(o.$children().$last(),"File")){if(_($,"expand_path"))return i(a,"expand_path",u(p));if(_($,"join"))return a.$expand_path(p.$join("/"));if(_($,"dirname"))return a.$expand_path(p["$[]"](0).$split("/")["$[]"](g(0,-1,!0)).$join("/"))}else if(_($,"__dir__"))return d("File").$dirname(w(d("Opal"),"Compiler").$module_name(a.compiler.$file()))}switch(t.valueOf()){case"error":return a.compiler.$error("Cannot handle dynamic require",a.sexp.$line());case"warning":return a.compiler.$warning("Cannot handle dynamic require",a.sexp.$line());default:return y}}),-2),c(o,"$expand_path",(function(e,t){return null==t&&(t=""),i((t+"/"+e).$split("/"),"each_with_object",[[]],(function(e,t){return null==e&&(e=y),null==t&&(t=y),_(e,"")?y:_(e,"..")?t.$pop():t["$<<"](e)})).$join("/")}),-2)}(k[0],0,k)}(x[0],k("Base"),x)}(x[0],x)}(b[0],b)},Opal.modules["opal/nodes/call_special"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.slice,a=e.send2,s=e.find_super,o=e.to_a,$=e.truthy,u=e.eqeq,l=e.send,c=e.top,_=[],d=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"),c.$require("opal/nodes/base"),c.$require("opal/nodes/call"),function(c,_){var p=[t(c,"Opal")].concat(_);return function(c,_){var p=[t(c,"Nodes")].concat(_),f=e.$r(p);return function(e,t){var i=n(e,t,"JsAttrNode");i.$handle("jsattr"),i.$children("recvr","property"),r(i,"$compile",(function(){var e=this;return e.$push(e.$recv(e.$recvr()),"[",e.$expr(e.$property()),"]")}))}(p[0],f("Base")),function(e,t){var i=n(e,t,"JsAttrAsgnNode");i.$handle("jsattrasgn"),i.$children("recvr","property","value"),r(i,"$compile",(function(){var e=this;return e.$push(e.$recv(e.$recvr()),"[",e.$expr(e.$property()),"] = ",e.$expr(e.$value()))}))}(p[0],f("Base")),function(e,t){var u=n(e,t,"JsCallNode"),l=u.$$prototype;l.iter=l.arglist=d,u.$handle("jscall"),r(u,"$initialize",(function e(t){var n,r=e.$$p||d,u=this;return e.$$p=null,n=i(arguments),a(u,s(u,"initialize",e,!1,!0),"initialize",o(n),r),$(u.iter)&&(u.arglist=u.arglist["$<<"](u.iter)),u.iter=d}),-1),r(u,"$compile",(function(){return this.$default_compile()})),r(u,"$method_jsid",(function(){return"."+this.$meth()})),r(u,"$compile_using_send",(function(){var e=this;return e.$push(e.$recv(e.$receiver_sexp()),e.$method_jsid(),".apply(null"),e.$compile_arguments(),$(e.$iter())&&e.$push(".concat(",e.$expr(e.$iter()),")"),e.$push(")")}))}(p[0],f("CallNode")),function(e,t){var i=n(e,t,"Match3Node");return i.$$prototype.level=d,i.$handle("match_with_lvasgn"),i.$children("lhs","rhs"),r(i,"$compile",(function(){var e=this,t=d,n=d,r=d,i=d;return t=e.$s("send",e.$lhs(),"=~",e.$rhs()),u(e.$lhs().$type(),"regexp")&&u(e.$lhs().$children().$first().$type(),"str")&&(n=e.$extract_names(e.$lhs()),$(n["$empty?"]())||(r=e.$generate_names_definition(),i=e.$generate_names_assignments(n),t=$(e["$stmt?"]())?e.$handle_statement(t,r,i):e.$handle_non_statement(t,r,i))),e.$push(e.$process(t,e.level))})),i.$private(),r(i,"$extract_names",(function(e){var t=d;return t=e.$children().$first().$children().$first(),l(t.$scan(/\(\?<([^>]*)>/).$flatten(),"map",[],"to_sym".$to_proc())})),r(i,"$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")))})),r(i,"$generate_names_assignments",(function(e){return l(e,"map",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=d),n.$s("lvasgn",t,n.$s("send",n.$s("lvar","$m3names"),"[]",n.$s("sym",t)))}),{$$s:this})})),r(i,"$handle_statement",(function(e,t,n){return l(this,"s",["begin",e,t].concat(o(n)))})),r(i,"$handle_non_statement",(function(e,t,n){var r=this;return l(r,"s",["begin",r.$s("lvasgn","$m3tmp",e),t].concat(o(n)).concat([r.$s("lvar","$m3tmp")]))}))}(p[0],f("Base"))}(p[0],p)}(_[0],_)},Opal.modules["opal/nodes/scope"]=function(e){var t=e.module,n=e.klass,r=e.slice,i=e.send2,a=e.find_super,s=e.to_a,o=e.def,$=e.send,u=e.truthy,l=e.assign_ivar_val,c=e.return_ivar,_=e.not,d=e.rb_plus,p=e.eqeq,f=e.thrower,h=e.top,m=[],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"),h.$require("opal/nodes/base"),function(h,m){var v=[t(h,"Opal")].concat(m);return function(h,m){var v=[t(h,"Nodes")].concat(m),b=e.$r(v);return function(t,h,m){var v=n(t,h,"ScopeNode"),b=[v].concat(m),y=e.$r(b),w=v.$$prototype;return w.type=w.is_lambda=w.defs=w.parent=w.temps=w.locals=w.proto_ivars=w.compiler=w.ivars=w.gvars=w.args=w.queue=w.while_stack=w.identity=w.rescues=w.next_retry_id=w.refinements_temp=w.block_prepared=g,v.$attr_accessor("parent"),v.$attr_accessor("name"),v.$attr_accessor("block_name"),v.$attr_reader("scope_name"),v.$attr_reader("locals"),v.$attr_reader("ivars"),v.$attr_reader("gvars"),v.$attr_accessor("mid"),v.$attr_accessor("defs"),v.$attr_reader("methods"),v.$attr_accessor("catch_return","has_break","has_retry"),v.$attr_accessor("rescue_else_sexp"),o(v,"$initialize",(function e(t){var n,o=e.$$p||g,$=this;return e.$$p=null,n=r(arguments),i($,a($,"initialize",e,!1,!0),"initialize",s(n),o),$.locals=[],$.temps=[],$.args=[],$.ivars=[],$.gvars=[],$.parent=g,$.queue=[],$.unique="a",$.while_stack=[],$.identity=g,$.defs=g,$.methods=[],$.uses_block=!1,$.in_ensure=!1,$.proto_ivars=[]}),-1),o(v,"$in_scope",(function t(){var n=t.$$p||g;return t.$$p=null,$(this,"indent",[],(function t(){var r,i=null==t.$$s?this:t.$$s;return null==i.parent&&(i.parent=g),i.parent=i.$compiler().$scope(),i.$compiler()["$scope="](i),e.yield1(n,i),r=[i.parent],$(i.$compiler(),"scope=",r),r[r.length-1]}),{$$s:this})})),o(v,"$class_scope?",(function(){var e;return u(e=this.type["$=="]("class"))?e:this.type["$=="]("module")})),o(v,"$class?",(function(){return this.type["$=="]("class")})),o(v,"$module?",(function(){return this.type["$=="]("module")})),o(v,"$sclass?",(function(){return this.type["$=="]("sclass")})),o(v,"$top?",(function(){return this.type["$=="]("top")})),o(v,"$iter?",(function(){return this.type["$=="]("iter")})),o(v,"$def?",(function(){var e;return u(e=this.type["$=="]("def"))?e:this.type["$=="]("defs")})),o(v,"$lambda?",(function(){var e;return u(e=this["$iter?"]())?this.is_lambda:e})),o(v,"$is_lambda!",l("is_lambda",!0)),o(v,"$defines_lambda",(function t(){var n=t.$$p||g;return t.$$p=null,this.lambda_definition=!0,e.yieldX(n,[]),this.lambda_definition=!1})),o(v,"$lambda_definition?",c("lambda_definition")),o(v,"$def_in_class?",(function(){var e,t,n,r=this;return u(e=u(t=u(n=r.defs["$!"]())?r.type["$=="]("def"):n)?r.parent:t)?r.parent["$class?"]():e})),o(v,"$to_vars",(function(){var e,t=this,n=g,r=g,i=g,a=g;return n=t.temps.$dup(),$(n,"push",s($(t.locals,"map",[],(function(e){return null==e&&(e=g),e+" = nil"})))),r=$(t.$ivars(),"map",[],(function(e){return null==e&&(e=g),"if (self"+e+" == null) self"+e+" = nil;\n"})),i=$(t.$gvars(),"map",[],(function(e){return null==e&&(e=g),"if ($gvars"+e+" == null) $gvars"+e+" = nil;\n"})),u(t["$class?"]())&&_(t.proto_ivars["$empty?"]())&&n["$<<"]("$proto = self.$$prototype"),e=t.compiler.$parser_indent(),a=u(n["$empty?"]())?"":"var "+n.$join(", ")+";\n",u(t.$ivars()["$empty?"]())||(a=d(a,""+e+r.$join(e))),u(t.$gvars()["$empty?"]())||(a=d(a,""+e+i.$join(e))),u(t["$class?"]())&&_(t.proto_ivars["$empty?"]())&&(a=a+"\n"+e+$(t.proto_ivars,"map",[],(function(e){return null==e&&(e=g),"$proto"+e})).$join(" = ")+" = nil;"),t.$fragment(a)})),o(v,"$add_scope_ivar",(function(e){var t=this;return u(t["$def_in_class?"]())?t.parent.$add_proto_ivar(e):u(t.ivars["$include?"](e))?g:t.ivars["$<<"](e)})),o(v,"$add_scope_gvar",(function(e){return u(this.gvars["$include?"](e))?g:this.gvars["$<<"](e)})),o(v,"$add_proto_ivar",(function(e){return u(this.proto_ivars["$include?"](e))?g:this.proto_ivars["$<<"](e)})),o(v,"$add_arg",(function(e){return u(this.args["$include?"](e))||this.args["$<<"](e),e})),o(v,"$add_scope_local",(function(e){return u(this["$has_local?"](e))?g:this.locals["$<<"](e)})),o(v,"$has_local?",(function(e){var t=this;return!!(u(t.locals["$include?"](e))||u(t.args["$include?"](e))||u(t.temps["$include?"](e)))||!(!u(t.parent)||!p(t.type,"iter"))&&t.parent["$has_local?"](e)})),o(v,"$scope_locals",(function(){var e,t=this;return e=t.locals["$|"](t.args)["$|"](u(t.parent)&&p(t.type,"iter")?t.parent.$scope_locals():[]),$(e,"reject",[],(function(e){return null==e&&(e=g),e.$to_s()["$start_with?"]("$")}))})),o(v,"$add_scope_temp",(function(e){return u(this["$has_temp?"](e))?g:this.temps.$push(e)})),o(v,"$prepend_scope_temp",(function(e){return u(this["$has_temp?"](e))?g:this.temps.$unshift(e)})),o(v,"$has_temp?",(function(e){return this.temps["$include?"](e)})),o(v,"$new_temp",(function(){var e,t=this;return u(t.queue["$empty?"]())?(e=t.$next_temp(),t.temps["$<<"](e),e):t.queue.$pop()})),o(v,"$next_temp",(function(){var e=this,t=g;return t=g,function(){try{var n=f("break");return $(e,"loop",[],(function e(){var r=null==e.$$s?this:e.$$s;if(null==r.unique&&(r.unique=g),t="$"+r.unique,r.unique=r.unique.$succ(),u(r["$has_local?"](t)))return g;n.$throw(g,e.$$is_lambda)}),{$$s:e})}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}(),t})),o(v,"$queue_temp",(function(e){return this.queue["$<<"](e)})),o(v,"$push_while",(function(){var e;return e=new Map,this.while_stack.$push(e),e})),o(v,"$pop_while",(function(){return this.while_stack.$pop()})),o(v,"$in_while?",(function(){return this.while_stack["$empty?"]()["$!"]()})),o(v,"$uses_block!",(function(){var e=this;return p(e.type,"iter")&&u(e.parent)?e.parent["$uses_block!"]():(e.uses_block=!0,e["$identify!"]())})),o(v,"$identify!",(function(e){var t=this,n=g,r=g,i=g;return null==e&&(e=g),u(t.identity)||(u(t["$valid_name?"](t.$mid()))?t.identity="$$"+t.$mid():(e=u(n=e)?n:[u(r=t.$parent())?u(i=t.$parent().$name())?i:t.$parent().$scope_name():r,t.$mid()].$compact().$join("_"),t.identity=t.compiler.$unique_temp(e))),t.identity}),-1),v.$attr_reader("identity"),o(v,"$find_parent_def",(function(){var e=g;for(e=this;u(e=e.$parent());)if(u(e["$def?"]())||u(e["$lambda?"]()))return e;return g})),o(v,"$super_chain",(function(){var e,t=g,n=g,r=g,i=g;for(t=(e=[[],this,"null","null"])[0],n=e[1],r=e[2],i=e[3];u(n);){if(!p(n.$type(),"iter")){if(u(["def","defs"]["$include?"](n.$type()))){r=n["$identify!"](),i="'"+n.$mid()+"'";break}break}t["$<<"](n["$identify!"]()),u(n.$parent())&&(n=n.$parent())}return[t,r,i]})),o(v,"$uses_block?",c("uses_block")),o(v,"$has_rescue_else?",(function(){return this.$rescue_else_sexp()["$nil?"]()["$!"]()})),o(v,"$in_rescue",(function t(n){var r,i,a=t.$$p||g,s=this;return t.$$p=null,s.rescues=u(r=s.rescues)?r:[],s.rescues.$push(n),i=e.yieldX(a,[]),s.rescues.$pop(),i})),o(v,"$current_rescue",(function(){return this.rescues.$last()})),o(v,"$in_resbody",(function t(){var n,r=t.$$p||g;return t.$$p=null,r===g?g:(this.in_resbody=!0,n=e.yieldX(r,[]),this.in_resbody=!1,n)})),o(v,"$in_resbody?",c("in_resbody")),o(v,"$in_ensure",(function t(){var n,r=t.$$p||g;return t.$$p=null,r===g?g:(this.in_ensure=!0,n=e.yieldX(r,[]),this.in_ensure=!1,n)})),o(v,"$in_ensure?",c("in_ensure")),o(v,"$gen_retry_id",(function(){var e,t=this;return t.next_retry_id=u(e=t.next_retry_id)?e:"retry_0",t.next_retry_id=t.next_retry_id.$succ()})),o(v,"$accepts_using?",(function(){return[y("TopNode"),y("ModuleNode"),y("ClassNode"),y("IterNode")]["$include?"](this.$class())})),o(v,"$collect_refinements_temps",(function(e){var t=this;return null==e&&(e=[]),u(t.refinements_temp)&&e["$<<"](t.refinements_temp),u(t.$parent())?t.$parent().$collect_refinements_temps(e):e}),-1),o(v,"$new_refinements_temp",(function(){var e;return e=this.$compiler().$unique_temp("$refn"),this.$add_scope_local(e),e})),o(v,"$refinements_temp",(function(){var e,t,n,r=this;return t=(e=[r.refinements_temp,r.$new_refinements_temp()])[0],n=e[1],r.refinements_temp=n,[t,n]})),o(v,"$self",(function(){return this.define_self=!0,"self"})),o(v,"$nesting",(function(){return this.define_nesting=!0,"$nesting"})),o(v,"$relative_access",(function(){return this.define_relative_access=this.define_nesting=!0,"$$"})),o(v,"$prepare_block",(function(e){var t,n=this;return null==e&&(e=g),t=n.$scope().$identity(),u(e)&&n["$block_name="](e),n.$add_temp(n.$block_name()+" = "+t+".$$p || nil"),u(n.block_prepared)?g:(n.$line(t+".$$p = null;"),n.block_prepared=!0)}),-1),v.$attr_accessor("await_encountered")}(v[0],b("Base"),v)}(v[0],v)}(m[0],m)},Opal.modules["opal/nodes/module"]=function(e){var t=e.module,n=e.klass,r=e.to_ary,i=e.truthy,a=e.send,s=e.rb_plus,o=e.def,$=e.top,u=[],l=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"),$.$require("opal/nodes/scope"),function($,u){var _=[t($,"Opal")].concat(u);return function($,u){var _=[t($,"Nodes")].concat(u),d=e.$r(_);return function(t,$,u){var _=n(t,$,"ModuleNode"),d=[_].concat(u),p=e.$r(d),f=_.$$prototype;return f.define_nesting=f.define_relative_access=l,_.$handle("module"),_.$children("cid","body"),o(_,"$compile",(function(){var e,t,n,o,$=this,u=l,_=l,d=l;return t=$.$name_and_base(),e=r(t),n=null==e[0]?l:e[0],o=null==e[1]?l:e[1],$.$helper("module"),i($.$body()["$nil?"]())?i($["$stmt?"]())?$.$unshift("$module(",o,", '"+n+"')"):$.$unshift("($module(",o,", '"+n+"'), nil)"):($.$line(" var self = $module($base, '"+n+"');"),a($,"in_scope",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$scope()["$name="](n),a(t,"in_closure",[c(p("Closure"),"MODULE")["$|"](c(p("Closure"),"JS_FUNCTION"))],(function e(){return(null==e.$$s?this:e.$$s).$compile_body()}),{$$s:t})}),{$$s:$}),i($.$await_encountered())?(u="(await ",_=")",d="async ",$.$parent()["$await_encountered="](!0)):(u=(e=["","",""])[0],_=e[1],d=e[2]),$.$unshift(u+"("+d+"function($base"+(i($.define_nesting)?", $parent_nesting":l)+") {"),$.$line("})(",o,(i($.define_nesting)?s(", ",$.$scope().$nesting()):l)+")"+_))})),_.$private(),o(_,"$name_and_base",(function(){var e,t,n,a=this,s=l;return t=a.$cid().$children(),s=null==(e=r(t))[0]?l:e[0],n=null==e[1]?l:e[1],i(s["$nil?"]())?[n,a.$scope().$nesting()+"[0]"]:[n,a.$expr(s)]})),o(_,"$compile_body",(function(){var e,t=this;return e=t.$stmt(t.$compiler().$returns(t.$body())),t.$empty_line(),i(t.define_nesting)&&t.$add_temp("$nesting = [self].concat($parent_nesting)"),i(t.define_relative_access)&&t.$add_temp("$$ = Opal.$r($nesting)"),t.$line(t.$scope().$to_vars()),t.$line(e)}))}(_[0],d("ScopeNode"),_)}(_[0],_)}(u[0],u)},Opal.modules["opal/nodes/class"]=function(e){var t=e.module,n=e.klass,r=e.to_ary,i=e.truthy,a=e.send,s=e.rb_plus,o=e.def,$=e.top,u=[],l=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"),$.$require("opal/nodes/module"),function($,u){var _=[t($,"Opal")].concat(u);return function($,u){var _=[t($,"Nodes")].concat(u),d=e.$r(_);return function(t,$,u){var _=n(t,$,"ClassNode"),d=[_].concat(u),p=e.$r(d);return _.$$prototype.define_nesting=l,_.$handle("class"),_.$children("cid","sup","body"),o(_,"$compile",(function(){var e,t,n,o,$=this,u=l,_=l,d=l;return t=$.$name_and_base(),e=r(t),n=null==e[0]?l:e[0],o=null==e[1]?l:e[1],$.$helper("klass"),i($.$body()["$nil?"]())?i($["$stmt?"]())?$.$unshift("$klass(",o,", ",$.$super_code(),", '"+n+"')"):$.$unshift("($klass(",o,", ",$.$super_code(),", '"+n+"'), nil)"):($.$line(" var self = $klass($base, $super, '"+n+"');"),a($,"in_scope",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$scope()["$name="](n),a(t,"in_closure",[c(p("Closure"),"MODULE")["$|"](c(p("Closure"),"JS_FUNCTION"))],(function e(){return(null==e.$$s?this:e.$$s).$compile_body()}),{$$s:t})}),{$$s:$}),i($.$await_encountered())?(u="(await ",_=")",d="async ",$.$parent()["$await_encountered="](!0)):(u=(e=["","",""])[0],_=e[1],d=e[2]),$.$unshift(u+"("+d+"function($base, $super"+(i($.define_nesting)?", $parent_nesting":l)+") {"),$.$line("})(",o,", ",$.$super_code(),(i($.define_nesting)?s(", ",$.$scope().$nesting()):l)+")"+_))})),o(_,"$super_code",(function(){var e=this;return i(e.$sup())?e.$expr(e.$sup()):"null"}))}(_[0],d("ModuleNode"),_)}(_[0],_)}(u[0],u)},Opal.modules["opal/nodes/singleton_class"]=function(e){var t=e.module,n=e.klass,r=e.send,i=e.truthy,a=e.def,s=e.top,o=[],$=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"),s.$require("opal/nodes/scope"),function(s,o){var u=[t(s,"Opal")].concat(o);return function(s,o){var u=[t(s,"Nodes")].concat(o),l=e.$r(u);return function(e,t){var s=n(e,t,"SingletonClassNode");return s.$handle("sclass"),s.$children("object","body"),a(s,"$compile",(function(){var e=this;return e.$push("(function(self, $parent_nesting) {"),r(e,"in_scope",[],(function e(){var t,n=null==e.$$s?this:e.$$s;return null==n.define_nesting&&(n.define_nesting=$),null==n.define_relative_access&&(n.define_relative_access=$),t=n.$stmt(n.$compiler().$returns(n.$body())),i(n.define_nesting)&&n.$add_temp("$nesting = [self].concat($parent_nesting)"),i(n.define_relative_access)&&n.$add_temp("$$ = Opal.$r($nesting)"),n.$line(n.$scope().$to_vars()),n.$line(t)}),{$$s:e}),e.$line("})(Opal.get_singleton_class(",e.$recv(e.$object()),"), "+e.$scope().$nesting()+")")}))}(u[0],l("ScopeNode"))}(u[0],u)}(o[0],o)},Opal.modules["opal/nodes/args/arg"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.top,a=[];e.nil;return e.add_stubs("require,handle,children,add_arg,scope,name,push,to_s"),i.$require("opal/nodes/base"),function(i,a){var s=[t(i,"Opal")].concat(a);return function(i,a){var s=[t(i,"Nodes")].concat(a);return function(i,a){var s=[t(i,"Args")].concat(a),o=e.$r(s);return function(e,t){var i=n(e,t,"ArgNode");return i.$handle("arg"),i.$children("name"),r(i,"$compile",(function(){var e=this;return e.$scope().$add_arg(e.$name()),e.$push(e.$name().$to_s())}))}(s[0],o("Base"))}(s[0],s)}(s[0],s)}(a[0],a)},Opal.modules["opal/nodes/args/arity_check"]=function(e){var t=e.module,n=e.klass,r=e.slice,i=e.send2,a=e.find_super,s=e.to_a,o=e.def,$=e.truthy,u=e.rb_minus,l=e.not,c=e.rb_lt,_=e.rb_plus,d=e.rb_gt,p=e.send,f=e.top,h=[],m=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"),f.$require("opal/nodes/base"),f.$require("opal/rewriters/arguments"),function(f,h){var v=[t(f,"Opal")].concat(h);return function(f,h){var v=[t(f,"Nodes")].concat(h),b=e.$r(v);return function(t,f,h){var v=n(t,f,"ArityCheckNode"),b=[v].concat(h),y=e.$r(b),w=v.$$prototype;w.kwargs=w.kwoptargs=w.kwrestarg=w.all_args=w.args=w.optargs=w.restarg=w.postargs=w.arity_checks=m,v.$handle("arity_check"),v.$children("args_node"),o(v,"$initialize",(function e(t){var n,o=e.$$p||m,$=this,u=m;return e.$$p=null,n=r(arguments),i($,a($,"initialize",e,!1,!0),"initialize",s(n),o),u=g(y("Rewriters"),"Arguments").$new($.$args_node().$children()),$.args=u.$args(),$.optargs=u.$optargs(),$.restarg=u.$restarg(),$.postargs=u.$postargs(),$.kwargs=u.$kwargs(),$.kwoptargs=u.$kwoptargs(),$.kwrestarg=u.$kwrestarg(),$.kwnilarg=u.$kwnilarg()}),-1),o(v,"$compile",(function(){var e=this,t=m;return e.$scope()["$arity="](e.$arity()),$(e.$compiler()["$arity_check?"]())?$(e.$arity_checks()["$empty?"]())?m:(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+"); }")):m})),o(v,"$kwargs",(function(){var e=this;return[].concat(s(e.kwargs)).concat(s(e.kwoptargs)).concat([e.kwrestarg]).$compact()})),o(v,"$all_args",(function(){var e,t=this;return t.all_args=$(e=t.all_args)?e:[].concat(s(t.args)).concat(s(t.optargs)).concat([t.restarg]).concat(s(t.postargs)).concat(s(t.$kwargs())).$compact()})),o(v,"$arity_checks",(function(){var e,t=this,n=m,r=m,i=m;return $(null!=(e=t.arity_checks)&&e!==m?"instance-variable":m)||(n=t.$all_args().$size(),n=u(n,t.optargs.$size()),$(t.restarg)&&(n=u(n,1)),n=u(n,t.$kwargs().$size()),(l(t.optargs["$empty?"]())||l(t.$kwargs()["$empty?"]())||$(t.restarg))&&(n=u(n["$-@"](),1)),t.arity_checks=[],$(c(n,0))?(r=_(n,1)["$-@"](),i=t.$all_args().$size(),$(d(r,0))&&t.arity_checks["$<<"]("$arity < "+r),$(t.restarg)||t.arity_checks["$<<"]("$arity > "+i)):t.arity_checks["$<<"]("$arity !== "+n)),t.arity_checks})),o(v,"$arity",(function(){var e=this;return $(e.restarg)||$(e.optargs["$any?"]())||$(e["$has_only_optional_kwargs?"]())?e.$negative_arity():e.$positive_arity()})),o(v,"$negative_arity",(function(){var e=m;return e=p(this.$all_args(),"select",[],(function(e){return null==e&&(e=m),["arg","mlhs"]["$include?"](e.$type())})).$size(),$(this["$has_required_kwargs?"]())&&(e=_(e,1)),u(e["$-@"](),1)})),o(v,"$positive_arity",(function(){var e=this,t=m;return t=e.$all_args().$size(),t=u(t,e.$kwargs().$size()),$(e.$kwargs()["$any?"]())&&(t=_(t,1)),t})),o(v,"$has_only_optional_kwargs?",(function(){var e;return $(e=this.$kwargs()["$any?"]())?p(this.$kwargs(),"all?",[],(function(e){return null==e&&(e=m),["kwoptarg","kwrestarg"]["$include?"](e.$type())})):e})),o(v,"$has_required_kwargs?",(function(){return p(this.$kwargs(),"any?",[],(function(e){return null==e&&(e=m),e.$type()["$=="]("kwarg")}))}))}(v[0],b("Base"),v),function(e,t){var r=n(e,t,"IterArityCheckNode");return r.$handle("iter_arity_check"),o(r,"$compile",(function(){var e=this,t=m,n=m,r=m,i=m,a=m;if(e.$scope()["$arity="](e.$arity()),!$(e.$compiler()["$arity_check?"]()))return m;if($(e.$arity_checks()["$empty?"]()))return m;for(t=e.$scope();!$($(n=$(r=t["$def?"]())?r:t["$class_scope?"]())?n:t["$top?"]());)t=t.$parent();return i=$(t["$top?"]())?"'<main>'":$(t["$def?"]())?"'"+t.$mid()+"'":$(t["$class?"]())?"'<class:"+t.$name()+">'":$(t["$module?"]())?"'<module:"+t.$name()+">'":m,a=e.$scope().$identity(),e.$line("if ("+a+".$$is_lambda || "+a+".$$define_meth) {"),e.$line(" var $arity = arguments.length;"),e.$line(" if ("+e.$arity_checks().$join(" || ")+") { Opal.block_ac($arity, "+e.$arity()+", "+i+"); }"),e.$line("}")}))}(v[0],b("ArityCheckNode"))}(v[0],v)}(h[0],h)},Opal.modules["opal/nodes/args/ensure_kwargs_are_kwargs"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.top,a=[];e.nil;return e.add_stubs("require,handle,helper,push"),i.$require("opal/nodes/base"),function(i,a){var s=[t(i,"Opal")].concat(a);return function(i,a){var s=[t(i,"Nodes")].concat(a);return function(i,a){var s=[t(i,"Args")].concat(a),o=e.$r(s);return function(e,t){var i=n(e,t,"EnsureKwargsAreKwargs");return i.$handle("ensure_kwargs_are_kwargs"),r(i,"$compile",(function(){return this.$helper("ensure_kwargs"),this.$push("$kwargs = $ensure_kwargs($kwargs)")}))}(s[0],o("Base"))}(s[0],s)}(s[0],s)}(a[0],a)},Opal.modules["opal/nodes/args/extract_block_arg"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.top,a=[];e.nil;return e.add_stubs("require,handle,children,uses_block!,scope,add_arg,name,prepare_block"),i.$require("opal/nodes/base"),function(i,a){var s=[t(i,"Opal")].concat(a);return function(i,a){var s=[t(i,"Nodes")].concat(a);return function(i,a){var s=[t(i,"Args")].concat(a),o=e.$r(s);return function(e,t){var i=n(e,t,"ExtractBlockarg");return i.$handle("extract_blockarg"),i.$children("name"),r(i,"$compile",(function(){var e=this;return e.$scope()["$uses_block!"](),e.$scope().$add_arg(e.$name()),e.$scope().$prepare_block(e.$name())}))}(s[0],o("Base"))}(s[0],s)}(s[0],s)}(a[0],a)},Opal.modules["opal/nodes/args/extract_kwarg"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.top,a=[],s=e.nil;return e.add_stubs("require,handle,children,[],meta,<<,used_kwargs,scope,add_temp,lvar_name,helper,push,inspect,to_s"),i.$require("opal/nodes/base"),function(i,a){var o=[t(i,"Opal")].concat(a);return function(i,a){var o=[t(i,"Nodes")].concat(a);return function(i,a){var o=[t(i,"Args")].concat(a),$=e.$r(o);return function(e,t){var i=n(e,t,"ExtractKwarg");return i.$$prototype.sexp=s,i.$handle("extract_kwarg"),i.$children("lvar_name"),r(i,"$compile",(function(){var e=this,t=s;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],$("Base"))}(o[0],o)}(o[0],o)}(a[0],a)},Opal.modules["opal/nodes/args/extract_kwargs"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.top,a=[];e.nil;return e.add_stubs("require,handle,add_temp,helper,push"),i.$require("opal/nodes/base"),function(i,a){var s=[t(i,"Opal")].concat(a);return function(i,a){var s=[t(i,"Nodes")].concat(a);return function(i,a){var s=[t(i,"Args")].concat(a),o=e.$r(s);return function(e,t){var i=n(e,t,"ExtractKwargs");return i.$handle("extract_kwargs"),r(i,"$compile",(function(){var e=this;return e.$add_temp("$kwargs"),e.$helper("extract_kwargs"),e.$push("$kwargs = $extract_kwargs($post_args)")}))}(s[0],o("Base"))}(s[0],s)}(s[0],s)}(a[0],a)},Opal.modules["opal/nodes/args/extract_kwoptarg"]=function(e){var t=e.module,n=e.klass,r=e.eqeq,i=e.def,a=e.top,s=[],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"),a.$require("opal/nodes/base"),function(a,s){var $=[t(a,"Opal")].concat(s);return function(a,s){var $=[t(a,"Nodes")].concat(s);return function(a,s){var $=[t(a,"Args")].concat(s),u=e.$r($);return function(e,t){var a=n(e,t,"ExtractKwoptarg");return a.$$prototype.sexp=o,a.$handle("extract_kwoptarg"),a.$children("lvar_name","default_value"),i(a,"$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()+");"),r(e.$default_value().$children()["$[]"](1),"undefined")?o:e.$push("if ("+e.$lvar_name()+" == null) "+e.$lvar_name()+" = ",e.$expr(e.$default_value()))}))}($[0],u("Base"))}($[0],$)}($[0],$)}(s[0],s)},Opal.modules["opal/nodes/args/extract_kwrestarg"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.def,a=e.send,s=e.top,o=[],$=e.nil;return e.add_stubs("require,handle,children,name,add_temp,helper,push,used_kwargs,map,scope,join"),s.$require("opal/nodes/base"),function(s,o){var u=[t(s,"Opal")].concat(o);return function(s,o){var u=[t(s,"Nodes")].concat(o);return function(s,o){var u=[t(s,"Args")].concat(o),l=e.$r(u);return function(e,t){var s=n(e,t,"ExtractKwrestarg");return s.$handle("extract_kwrestarg"),s.$children("name"),i(s,"$compile",(function(){var e,t,n=this;return e=r(t=n.$name())?t:"$kw_rest_arg",n.$add_temp(e),n.$helper("kwrestargs"),n.$push(e+" = $kwrestargs($kwargs, "+n.$used_kwargs()+")")})),i(s,"$used_kwargs",(function(){return"{"+a(this.$scope().$used_kwargs(),"map",[],(function(e){return null==e&&(e=$),"'"+e+"': true"})).$join(",")+"}"}))}(u[0],l("Base"))}(u[0],u)}(u[0],u)}(o[0],o)},Opal.modules["opal/nodes/args/extract_optarg"]=function(e){var t=e.module,n=e.klass,r=e.eqeq,i=e.def,a=e.top,s=[],o=e.nil;return e.add_stubs("require,handle,children,==,[],default_value,push,name,expr"),a.$require("opal/nodes/base"),function(a,s){var $=[t(a,"Opal")].concat(s);return function(a,s){var $=[t(a,"Nodes")].concat(s);return function(a,s){var $=[t(a,"Args")].concat(s),u=e.$r($);return function(e,t){var a=n(e,t,"ExtractOptargNode");return a.$handle("extract_optarg"),a.$children("name","default_value"),i(a,"$compile",(function(){var e=this;return r(e.$default_value().$children()["$[]"](1),"undefined")?o:e.$push("if ("+e.$name()+" == null) "+e.$name()+" = ",e.$expr(e.$default_value()))}))}($[0],u("Base"))}($[0],$)}($[0],$)}(s[0],s)},Opal.modules["opal/nodes/args/extract_post_arg"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.top,a=[];e.nil;return e.add_stubs("require,handle,children,add_temp,name,line,push"),i.$require("opal/nodes/base"),function(i,a){var s=[t(i,"Opal")].concat(a);return function(i,a){var s=[t(i,"Nodes")].concat(a);return function(i,a){var s=[t(i,"Args")].concat(a),o=e.$r(s);return function(e,t){var i=n(e,t,"ExtractPostArg");return i.$handle("extract_post_arg"),i.$children("name"),r(i,"$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")}))}(s[0],o("Base"))}(s[0],s)}(s[0],s)}(a[0],a)},Opal.modules["opal/nodes/args/extract_post_optarg"]=function(e){var t=e.module,n=e.klass,r=e.eqeq,i=e.def,a=e.top,s=[],o=e.nil;return e.add_stubs("require,handle,children,add_temp,name,line,args_to_keep,==,[],default_value,push,expr"),a.$require("opal/nodes/base"),function(a,s){var $=[t(a,"Opal")].concat(s);return function(a,s){var $=[t(a,"Nodes")].concat(s);return function(a,s){var $=[t(a,"Args")].concat(s),u=e.$r($);return function(e,t){var a=n(e,t,"ExtractPostOptarg");return a.$handle("extract_post_optarg"),a.$children("name","default_value","args_to_keep"),i(a,"$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();"),r(e.$default_value().$children()["$[]"](1),"undefined")?o:e.$push("if ("+e.$name()+" == null) "+e.$name()+" = ",e.$expr(e.$default_value()))}))}($[0],u("Base"))}($[0],$)}($[0],$)}(s[0],s)},Opal.modules["opal/nodes/args/extract_restarg"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.eqeq,a=e.def,s=e.top,o=[];e.nil;return e.add_stubs("require,handle,children,name,add_temp,==,args_to_keep,push"),s.$require("opal/nodes/base"),function(s,o){var $=[t(s,"Opal")].concat(o);return function(s,o){var $=[t(s,"Nodes")].concat(o);return function(s,o){var $=[t(s,"Args")].concat(o),u=e.$r($);return function(e,t){var s=n(e,t,"ExtractRestarg");return s.$handle("extract_restarg"),s.$children("name","args_to_keep"),a(s,"$compile",(function(){var e,t,n=this;return e=r(t=n.$name())?t:"$rest_arg",n.$add_temp(e),i(n.$args_to_keep(),0)?n.$push(e+" = $post_args"):n.$push(e+" = $post_args.splice(0, $post_args.length - "+n.$args_to_keep()+")")}))}($[0],u("Base"))}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["opal/nodes/args/fake_arg"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.top,a=[];e.nil;return e.add_stubs("require,handle,next_temp,scope,add_arg,push"),i.$require("opal/nodes/base"),function(i,a){var s=[t(i,"Opal")].concat(a);return function(i,a){var s=[t(i,"Nodes")].concat(a);return function(i,a){var s=[t(i,"Args")].concat(a),o=e.$r(s);return function(e,t){var i=n(e,t,"FakeArgNode");return i.$handle("fake_arg"),r(i,"$compile",(function(){var e,t=this;return e=t.$scope().$next_temp(),t.$scope().$add_arg(e),t.$push(e)}))}(s[0],o("Base"))}(s[0],s)}(s[0],s)}(a[0],a)},Opal.modules["opal/nodes/args/initialize_iterarg"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.top,a=[];e.nil;return e.add_stubs("require,handle,children,push,name"),i.$require("opal/nodes/base"),function(i,a){var s=[t(i,"Opal")].concat(a);return function(i,a){var s=[t(i,"Nodes")].concat(a);return function(i,a){var s=[t(i,"Args")].concat(a),o=e.$r(s);return function(e,t){var i=n(e,t,"InitializeIterarg");return i.$handle("initialize_iter_arg"),i.$children("name"),r(i,"$compile",(function(){var e=this;return e.$push("if ("+e.$name()+" == null) "+e.$name()+" = nil")}))}(s[0],o("Base"))}(s[0],s)}(s[0],s)}(a[0],a)},Opal.modules["opal/nodes/args/initialize_shadowarg"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.top,a=[];e.nil;return e.add_stubs("require,handle,children,<<,locals,scope,name,add_arg,push"),i.$require("opal/nodes/base"),function(i,a){var s=[t(i,"Opal")].concat(a);return function(i,a){var s=[t(i,"Nodes")].concat(a);return function(i,a){var s=[t(i,"Args")].concat(a),o=e.$r(s);return function(e,t){var i=n(e,t,"InitializeShadowarg");return i.$handle("initialize_shadowarg"),i.$children("name"),r(i,"$compile",(function(){var e=this;return e.$scope().$locals()["$<<"](e.$name()),e.$scope().$add_arg(e.$name()),e.$push(e.$name()+" = nil")}))}(s[0],o("Base"))}(s[0],s)}(s[0],s)}(a[0],a)},Opal.modules["opal/nodes/args/parameters"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.send,a=e.return_val,s=e.truthy,o=e.eqeq,$=[],u=e.nil;return e.add_stubs("children,map,public_send,type,join,compact,[],meta,=="),function(e,$){var l=[t(e,"Opal")].concat($);return function(e,$){var l=[t(e,"Nodes")].concat($);return function(e,$){return function(e,t){var $=n(e,null,"Parameters");return $.$$prototype.args=u,r($,"$initialize",(function(e){return this.args=e.$children()})),r($,"$to_code",(function(){return"["+i(this.args,"map",[],(function e(t){return null==t&&(t=u),(null==e.$$s?this:e.$$s).$public_send("on_"+t.$type(),t)}),{$$s:this}).$compact().$join(", ")+"]"})),r($,"$on_arg",(function(e){return"['req', '"+e.$meta()["$[]"]("arg_name")+"']"})),r($,"$on_mlhs",a("['req']")),r($,"$on_optarg",(function(e){return"['opt', '"+e.$meta()["$[]"]("arg_name")+"']"})),r($,"$on_restarg",(function(e){var t=u;return t=e.$meta()["$[]"]("arg_name"),s(t)?(o(t,"fwd_rest_arg")&&(t="*"),"['rest', '"+t+"']"):"['rest']"})),r($,"$on_kwarg",(function(e){return"['keyreq', '"+e.$meta()["$[]"]("arg_name")+"']"})),r($,"$on_kwoptarg",(function(e){return"['key', '"+e.$meta()["$[]"]("arg_name")+"']"})),r($,"$on_kwrestarg",(function(e){var t;return t=e.$meta()["$[]"]("arg_name"),s(t)?"['keyrest', '"+t+"']":"['keyrest']"})),r($,"$on_blockarg",(function(e){var t=u;return t=e.$meta()["$[]"]("arg_name"),o(t,"fwd_block_arg")&&(t="&"),"['block', '"+t+"']"})),r($,"$on_kwnilarg",a("['nokey']")),r($,"$on_shadowarg",a(u))}([t(e,"Args")].concat($)[0])}(l[0],l)}(l[0],l)}($[0],$)},Opal.modules["opal/nodes/args/prepare_post_args"]=function(e){var t=e.module,n=e.klass,r=e.eqeq,i=e.def,a=e.top,s=[];e.nil;return e.add_stubs("require,handle,children,add_temp,helper,==,offset,push"),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),$=e.$r(o);return function(e,t){var a=n(e,t,"PreparePostArgs");return a.$handle("prepare_post_args"),a.$children("offset"),i(a,"$compile",(function(){var e=this;return e.$add_temp("$post_args"),e.$helper("slice"),r(e.$offset(),0)?e.$push("$post_args = $slice(arguments)"):e.$push("$post_args = $slice(arguments, "+e.$offset()+")")}))}(o[0],$("Base"))}(o[0],o)}(o[0],o)}(s[0],s)},Opal.modules["opal/nodes/args"]=function(e){var t=e.module,n=e.klass,r=e.send,i=e.neqeq,a=e.def,s=e.top,o=[],$=e.nil;return e.add_stubs("require,handle,each_with_index,children,!=,push,process"),s.$require("opal/nodes/base"),s.$require("opal/nodes/args/arg"),s.$require("opal/nodes/args/arity_check"),s.$require("opal/nodes/args/ensure_kwargs_are_kwargs"),s.$require("opal/nodes/args/extract_block_arg"),s.$require("opal/nodes/args/extract_kwarg"),s.$require("opal/nodes/args/extract_kwargs"),s.$require("opal/nodes/args/extract_kwoptarg"),s.$require("opal/nodes/args/extract_kwrestarg"),s.$require("opal/nodes/args/extract_optarg"),s.$require("opal/nodes/args/extract_post_arg"),s.$require("opal/nodes/args/extract_post_optarg"),s.$require("opal/nodes/args/extract_restarg"),s.$require("opal/nodes/args/fake_arg"),s.$require("opal/nodes/args/initialize_iterarg"),s.$require("opal/nodes/args/initialize_shadowarg"),s.$require("opal/nodes/args/parameters"),s.$require("opal/nodes/args/prepare_post_args"),function(s,o){var u=[t(s,"Opal")].concat(o);return function(s,o){var u=[t(s,"Nodes")].concat(o),l=e.$r(u);return function(e,t){var s=n(e,t,"ArgsNode");return s.$handle("args"),a(s,"$compile",(function(){return r(this.$children(),"each_with_index",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==t&&(t=$),null==n&&(n=$),i(n,0)&&r.$push(", "),r.$push(r.$process(t))}),{$$s:this})}))}(u[0],l("Base"))}(u[0],u)}(o[0],o)},Opal.modules["opal/nodes/node_with_args/shortcuts"]=function(e){var t=e.module,n=e.klass,r=e.const_set,i=e.send,a=e.def,s=e.ensure_kwargs,o=e.kwrestargs,$=e.truthy,u=e.defs,l=e.eqeq,c=e.thrower,_=e.lambda,d=e.range,p=[],f=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(p,h){var m=[t(p,"Opal")].concat(h);return function(p,h){var m=[t(p,"Nodes")].concat(h),g=e.$r(m);return function(t,p,h){var m=n(t,p,"NodeWithArgs"),g=[m].concat(h),v=e.$r(g);return r(g[0],"Shortcut",i(v("Struct"),"new",["name","for","when","transform"],(function e(){var t=null==e.$$s?this:e.$$s;return a(t,"$match?",(function(e){return i(e,"instance_exec",[],this.$when().$to_proc())})),a(t,"$compile",(function(e){return e.$helper(this.$name()),i(e,"instance_exec",[],this.$transform().$to_proc())}))}),{$$s:m})),m.shortcuts=[],m.shortcuts_for=new Map,u(m,"$define_shortcut",(function e(t,n){var r,i=e.$$p||f,a=this;return null==a.shortcuts&&(a.shortcuts=f),e.$$p=null,n=s(n),r=o(n,{}),$(r["$[]"]("for"))||r["$[]="]("for","def"),a.shortcuts["$<<"](v("Shortcut").$new(t,r["$[]"]("for"),r["$[]"]("when"),i))}),-2),u(m,"$shortcuts_for",(function(e){var t,n,r=this;return null==r.shortcuts_for&&(r.shortcuts_for=f),null==r.shortcuts&&(r.shortcuts=f),$(n=r.shortcuts_for["$[]"](e))?n:(t=[e,i(r.shortcuts,"select",[],(function(t){return null==t&&(t=f),[e,"*"]["$include?"](t.$for())}))],i(r.shortcuts_for,"[]=",t),t[t.length-1])})),a(m,"$compile_body_or_shortcut",(function(){try{var e,t=c("return"),n=this;return $(n.$compiler()["$arity_check?"]())||(e=$(n["$is_a?"](v("DefNode")))?"def":"iter",i(v("NodeWithArgs").$shortcuts_for(e),"each",[],(function n(r){var i=null==n.$$s?this:n.$$s,a=f;if(null==r&&(r=f),!$(r["$match?"](i)))return f;$(v("ENV")["$[]"]("OPAL_DEBUG_SHORTCUTS"))&&(a=l(e,"def")?"def "+i.$mid():"iter",i.$warn("* shortcut "+r.$name()+" used for "+a)),t.$throw(r.$compile(i),n.$$is_lambda)}),{$$s:n,$$ret:t})),n.$compile_body()}catch(e){if(e===t)return e.$v;throw e}finally{t.is_orphan=!0}})),i(m,"define_shortcut",["return_self",new Map([["when",_((function e(){return(null==e.$$s?this:e.$$s).$stmts().$type()["$=="]("self")}),{$$s:m})]])],(function e(){return(null==e.$$s?this:e.$$s).$push("$return_self")}),{$$s:m}),a(m,"$simple_value?",(function(e){return null==e&&(e=this.$stmts()),["true","false","nil","int","float","str","sym"]["$include?"](e.$type())}),-1),i(m,"define_shortcut",["return_val",new Map([["for","*"],["when",_((function e(){return(null==e.$$s?this:e.$$s)["$simple_value?"]()}),{$$s:m})]])],(function e(){var t=null==e.$$s?this:e.$$s;return t.$push("$return_val(",t.$expr(t.$stmts()),")")}),{$$s:m}),i(m,"define_shortcut",["return_ivar",new Map([["when",_((function e(){return(null==e.$$s?this:e.$$s).$stmts().$type()["$=="]("ivar")}),{$$s:m})]])],(function e(){var t,n=null==e.$$s?this:e.$$s;return t=n.$stmts().$children().$first().$to_s()["$[]"](d(1,-1,!1)).$to_sym(),n.$push("$return_ivar(",n.$expr(n.$stmts().$updated("sym",[t])),")")}),{$$s:m}),i(m,"define_shortcut",["assign_ivar",new Map([["when",_((function e(){var t,n,r,i,a=null==e.$$s?this:e.$$s;return $(t=$(n=$(r=$(i=a.$stmts().$type()["$=="]("ivasgn"))?a.$inline_args().$children().$length()["$=="](1):i)?a.$inline_args().$children().$last().$type()["$=="]("arg"):r)?a.$stmts().$children().$last().$type()["$=="]("lvar"):n)?a.$stmts().$children().$last().$children().$last()["$=="](a.$inline_args().$children().$last().$children().$last()):t}),{$$s:m})]])],(function e(){var t=null==e.$$s?this:e.$$s,n=f;return n=t.$stmts().$children().$first().$to_s()["$[]"](d(1,-1,!1)).$to_sym(),n=t.$expr(t.$stmts().$updated("sym",[n])),t.$push("$assign_ivar(",n,")")}),{$$s:m}),i(m,"define_shortcut",["assign_ivar_val",new Map([["when",_((function e(){var t,n=null==e.$$s?this:e.$$s;return $(t=n.$stmts().$type()["$=="]("ivasgn"))?n["$simple_value?"](n.$stmts().$children().$last()):t}),{$$s:m})]])],(function e(){var t=null==e.$$s?this:e.$$s,n=f;return n=t.$stmts().$children().$first().$to_s()["$[]"](d(1,-1,!1)).$to_sym(),n=t.$expr(t.$stmts().$updated("sym",[n])),t.$push("$assign_ivar_val(",n,", ",t.$expr(t.$stmts().$children().$last()),")")}),{$$s:m})}(m[0],g("ScopeNode"),m)}(m[0],m)}(p[0],p)},Opal.modules["opal/nodes/node_with_args"]=function(e){var t=e.module,n=e.klass,r=e.slice,i=e.send2,a=e.find_super,s=e.to_a,o=e.def,$=e.truthy,u=e.top,l=[],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"),u.$require("opal/nodes/scope"),u.$require("opal/nodes/args/parameters"),u.$require("opal/nodes/node_with_args/shortcuts"),function(u,l){var d=[t(u,"Opal")].concat(l);return function(u,l){var d=[t(u,"Nodes")].concat(l),p=e.$r(d);return function(t,u,l){var d=n(t,u,"NodeWithArgs"),p=[d].concat(l),f=e.$r(p);return d.$$prototype.sexp=c,d.$attr_reader("used_kwargs"),d.$attr_accessor("arity"),d.$attr_reader("original_args"),o(d,"$initialize",(function e(t){var n,o=e.$$p||c,$=this;return e.$$p=null,n=r(arguments),i($,a($,"initialize",e,!1,!0),"initialize",s(n),o),$.original_args=$.sexp.$meta()["$[]"]("original_args"),$.used_kwargs=[],$.arity=0}),-1),o(d,"$arity_check_node",(function(){return this.$s("arity_check",this.$original_args())})),o(d,"$compile_arity_check",(function(){var e=this;return e.$push(e.$process(e.$arity_check_node()))})),o(d,"$compile_block_arg",(function(){return $(this.$scope()["$uses_block?"]())?this.$scope().$prepare_block():c})),o(d,"$parameters_code",(function(){return _(f("Args"),"Parameters").$new(this.$original_args()).$to_code()}))}(d[0],p("ScopeNode"),d)}(d[0],d)}(l[0],l)},Opal.modules["opal/nodes/iter"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.rb_lt,a=e.eqeq,s=e.not,o=e.send,$=e.def,u=e.top,l=[],c=e.nil,_=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,l){var d=[t(u,"Opal")].concat(l);return function(u,l){var d=[t(u,"Nodes")].concat(l),p=e.$r(d);return function(t,u,l){var d=n(t,u,"IterNode"),p=[d].concat(l),f=e.$r(p),h=d.$$prototype;return h.define_self=h.closure=h.define_nesting=h.define_relative_access=h.sexp=c,d.$handle("iter"),d.$children("inline_args","stmts"),$(d,"$compile",(function(){var e,t,n,$,u=this,l=c;return r(u.$scope()["$lambda_definition?"]())&&u["$is_lambda!"](),u.$compile_body_or_shortcut(),l=new Map,r(i(u.$arity(),0))&&l["$[]="]("$$arity",u.$arity()),r(u.define_self)&&l["$[]="]("$$s",u.$scope().$self()),r((e=(t=u.closure)===c||null==t?c:t.$throwers())===c||null==e?c:e["$key?"]("break"))&&l["$[]="]("$$brk",u.closure.$throwers()["$[]"]("break")),r((n=($=u.closure)===c||null==$?c:$.$throwers())===c||null==n?c:n["$key?"]("return"))&&l["$[]="]("$$ret",u.closure.$throwers()["$[]"]("return")),r(u.$compiler()["$arity_check?"]())&&l["$[]="]("$$parameters",u.$parameters_code()),r(u.$compiler()["$enable_source_location?"]())&&l["$[]="]("$$source_location",u.$source_location()),r(u["$has_top_level_mlhs_arg?"]())&&l["$[]="]("$$has_top_level_mlhs_arg","true"),r(u["$has_trailing_comma_in_args?"]())&&l["$[]="]("$$has_trailing_comma_in_args","true"),a(l.$keys(),["$$arity"])?u.$push(", "+u.$arity()):s(l["$empty?"]())&&u.$push(", {",o(l,"map",[],(function(e,t){return null==e&&(e=c),null==t&&(t=c),e+": "+t})).$join(", "),"}"),r(u.define_nesting)&&u.$scope().$nesting(),r(u.define_relative_access)?u.$scope().$relative_access():c})),$(d,"$compile_body",(function(){var e=this,t=c,n=c,i=c,a=c;return t=c,n=i=a=c,o(e,"in_scope",[],(function e(){var s=null==e.$$s?this:e.$$s;return null==s.is_lambda&&(s.is_lambda=c),i=s.$scope()["$identify!"](),t=s.$process(s.$inline_args()),s.$compile_arity_check(),o(s,"in_closure",[_(f("Closure"),"JS_FUNCTION")["$|"](_(f("Closure"),"ITER"))["$|"](r(s.is_lambda)?_(f("Closure"),"LAMBDA"):0)],(function e(){var t=null==e.$$s?this:e.$$s;return null==t.define_self&&(t.define_self=c),a=t.$stmt(t.$returned_body()),r(t.define_self)&&t.$add_temp("self = "+i+".$$s == null ? this : "+i+".$$s"),n=t.$scope().$to_vars(),t.$line(a)}),{$$s:s})}),{$$s:e}),e.$unshift(n),r(e.$await_encountered())?e.$unshift("async function "+i+"(",t,"){"):e.$unshift("function "+i+"(",t,"){"),e.$push("}")})),$(d,"$compile_block_arg",(function(){return r(this.$block_arg())?this.$scope().$prepare_block():c})),$(d,"$extract_underscore_args",(function(){var e=this,t=c,n=c;return t=[],n=!1,o(e.$args().$children(),"each",[],(function(e){var i;return null==e&&(e=c),i=e.$children().$first(),a(i,"_")?r(n)?c:(n=!0,t["$<<"](e)):t["$<<"](e)})),e.sexp=e.sexp.$updated(c,[e.$args().$updated(c,t),e.$stmts()])})),$(d,"$returned_body",(function(){var e,t=this;return t.$compiler().$returns(r(e=t.$stmts())?e:t.$s("nil"))})),$(d,"$has_top_level_mlhs_arg?",(function(){return o(this.$original_args().$children(),"any?",[],(function(e){return null==e&&(e=c),e.$type()["$=="]("mlhs")}))})),$(d,"$has_trailing_comma_in_args?",(function(){var e=this;return r(e.$original_args().$loc())&&r(e.$original_args().$loc().$expression())?e.$original_args().$loc().$expression().$source().$match(/,\s*\|/):c})),$(d,"$arity_check_node",(function(){return this.$s("iter_arity_check",this.$original_args())}))}(d[0],p("NodeWithArgs"),d)}(d[0],d)}(l[0],l)},Opal.modules["opal/nodes/def"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.rb_lt,a=e.eqeq,s=e.not,o=e.send,$=e.def,u=e.rb_plus,l=e.top,c=[],_=e.nil,d=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"),l.$require("opal/nodes/node_with_args"),function(l,c){var p=[t(l,"Opal")].concat(c);return function(l,c){var p=[t(l,"Nodes")].concat(c),f=e.$r(p);return function(t,l,c){var p=n(t,l,"DefNode"),f=[p].concat(c),h=e.$r(f),m=p.$$prototype;return m.define_nesting=m.define_relative_access=_,p.$handle("def"),p.$children("mid","inline_args","stmts"),$(p,"$compile",(function(){var e=this,t=_;return e.$compile_body_or_shortcut(),t=new Map,r(i(e.$arity(),0))&&t["$[]="]("$$arity",e.$arity()),r(e.$compiler()["$arity_check?"]())&&t["$[]="]("$$parameters",e.$parameters_code()),r(e.$compiler()["$parse_comments?"]())&&t["$[]="]("$$comments",e.$comments_code()),r(e.$compiler()["$enable_source_location?"]())&&t["$[]="]("$$source_location",e.$source_location()),a(t.$keys(),["$$arity"])?e.$push(", "+e.$arity()):s(t["$empty?"]())&&e.$push(", {",o(t,"map",[],(function(e,t){return null==e&&(e=_),null==t&&(t=_),e+": "+t})).$join(", "),"}"),e.$wrap_with_definition(),r(e.define_nesting)&&e.$scope().$nesting(),r(e.define_relative_access)?e.$scope().$relative_access():_})),$(p,"$compile_body",(function(){var e=this,t=_,n=_;return t=_,n=_,o(e,"in_scope",[],(function e(){var i=null==e.$$s?this:e.$$s;return null==i.sexp&&(i.sexp=_),i.$scope()["$mid="](i.$mid()),a(i.sexp.$type(),"defs")&&i.$scope()["$defs="](!0),i.$scope()["$identify!"](),n=i.$scope().$identity(),i.$scope()["$block_name="]("$yield"),t=i.$process(i.$inline_args()),o(i,"in_closure",[d(h("Closure"),"DEF")["$|"](d(h("Closure"),"JS_FUNCTION"))],(function e(){var t,n=null==e.$$s?this:e.$$s;return null==n.define_self&&(n.define_self=_),t=n.$stmt(n.$compiler().$returns(n.$stmts())),n.$compile_block_arg(),r(n.define_self)&&n.$add_temp("self = this"),n.$compile_arity_check(),n.$unshift("\n"+n.$current_indent(),n.$scope().$to_vars()),n.$line(t)}),{$$s:i})}),{$$s:e}),e.$unshift(") {"),e.$unshift(t),e.$unshift("function "+n+"("),r(e.$await_encountered())&&e.$unshift("async "),e.$line("}")})),$(p,"$wrap_with_definition",(function(){var e=this;return e.$helper("def"),e.$wrap("$def("+e.$scope().$self()+", '$"+e.$mid()+"', ",")"),r(e["$expr?"]())?_:e.$unshift("\n"+e.$current_indent())})),$(p,"$comments_code",(function(){return u(u("[",o(this.$comments(),"map",[],(function(e){return null==e&&(e=_),e.$text().$inspect()})).$join(", ")),"]")}))}(p[0],f("NodeWithArgs"),p)}(p[0],p)}(c[0],c)},Opal.modules["opal/nodes/defs"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.top,a=[];e.nil;return e.add_stubs("require,handle,children,helper,unshift,expr,recvr,mid,push"),i.$require("opal/nodes/def"),function(i,a){var s=[t(i,"Opal")].concat(a);return function(i,a){var s=[t(i,"Nodes")].concat(a),o=e.$r(s);return function(e,t){var i=n(e,t,"DefsNode");return i.$handle("defs"),i.$children("recvr","mid","inline_args","stmts"),r(i,"$wrap_with_definition",(function(){var e=this;return e.$helper("defs"),e.$unshift("$defs(",e.$expr(e.$recvr()),", '$"+e.$mid()+"', "),e.$push(")")}))}(s[0],o("DefNode"))}(s[0],s)}(a[0],a)},Opal.modules["opal/ast/matcher"]=function(e){var t=e.module,n=e.klass,r=e.send,i=e.def,a=e.slice,s=e.truthy,o=e.const_set,$=e.rb_plus,u=e.neqeq,l=e.eqeq,c=e.eqeqeq,_=e.range,d=e.top,p=[],f=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"),d.$require("ast"),d.$require("parser/ast/node"),function(d,p){var h=[t(d,"Opal")].concat(p);return function(d,p){var h=[t(d,"AST")].concat(p);return function(t,d,p){var h=n(t,null,"Matcher"),m=[h].concat(p),g=e.$r(m),v=h.$$prototype;return v.root=v.captures=f,i(h,"$initialize",(function e(){var t=e.$$p||f;return e.$$p=null,this.root=r(this,"instance_exec",[],t.$to_proc())})),i(h,"$s",(function(e,t){var n;return n=a(arguments,1),g("Node").$new(e,n)}),-2),i(h,"$cap",(function(e){return g("Node").$new("capture",[e])})),i(h,"$match",(function(e){var t=this;return t.captures=[],!!s(t.root.$match(e,t))&&t.captures})),i(h,"$inspect",(function(){return"#<Opal::AST::Matcher: "+this.root.$inspect()+">"})),h.$attr_accessor("captures"),o(m[0],"Node",r(g("Struct"),"new",["type","children"],(function e(){var t=null==e.$$s?this:e.$$s;return i(t,"$match",(function(e,t){var n=f,i=f;return!s(e["$nil?"]())&&(n=$([e.$type()],e.$children()),i=$([this.$type()],this.$children()),!u(n.$length(),i.$length())&&r(n.$length().$times(),"all?",[],(function(e){var r,a,o,$=f,u=f;return null==e&&(e=f),r=n["$[]"](e),$=i["$[]"](e),s($["$is_a?"](g("Node")))&&l($.$type(),"capture")&&(u=!0,$=$.$children().$first()),a=c(g("Node"),o=$)?$.$match(r,t):c(g("Array"),o)?$["$include?"](r):c("*",o)||$["$=="](r),s(u)&&t.$captures()["$<<"](r),a})))})),i(t,"$inspect",(function(){var e=this;return l(e.$type(),"capture")?"{"+e.$children().$first().$inspect()+"}":"s("+e.$type().$inspect()+", "+e.$children().$inspect()["$[]"](_(1,-2,!1))+")"}))}),{$$s:h}))}(h[0],0,h)}(h[0],h)}(p[0],p)},Opal.modules["opal/nodes/if"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.eqeq,a=e.def,s=e.not,o=e.send,$=e.eqeqeq,u=e.const_set,l=e.to_a,c=e.neqeq,_=e.return_val,d=e.top,p=[],f=e.nil,h=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"),d.$require("opal/nodes/base"),d.$require("opal/ast/matcher"),function(d,p){var m=[t(d,"Opal")].concat(p);return function(d,p){var m=[t(d,"Nodes")].concat(p),g=e.$r(m);return function(t,_,d){var p=n(t,_,"IfNode"),m=[p].concat(d),g=e.$r(m),v=p.$$prototype;v.sexp=v.switch_variable=v.switch_first_test=v.switch_additional_rules=f,p.$handle("if"),p.$children("test","true_body","false_body"),a(p,"$compile",(function(){var e=this;return r(e["$should_compile_as_simple_expression?"]())?i(e.$true_body(),e.$s("true"))?e.$compile_with_binary_or():i(e.$false_body(),e.$s("false"))?e.$compile_with_binary_and():e.$compile_with_ternary():r(e["$could_become_switch?"]())?e.$compile_with_switch():e.$compile_with_if()})),a(p,"$compile_with_if",(function(){var e,t=this,n=f,a=f,$=f;return r(t["$expects_expression?"]())&&t.$push_closure(),n=t.$truthy(),a=t.$falsy(),r(a)&&s(n)?(t.$push("if (!",t.$js_truthy(t.$test()),") {"),a=(e=[n,a])[0],n=e[1]):t.$push("if (",t.$js_truthy(t.$test()),") {"),r(n)&&o(t,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$line(t.$stmt(n))}),{$$s:t}),r(a)?i(a.$type(),"if")?t.$line("} else ",t.$stmt(a)):(t.$line("} else {"),o(t,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$line(t.$stmt(a))}),{$$s:t}),t.$line("}")):(t.$line("}"),r(t["$expects_expression?"]())&&t.$line("return nil;")),r(t["$expects_expression?"]())&&t.$pop_closure(),r(t["$expects_expression?"]())?(r(t["$returning_if?"]())&&($="return "),r(t.$scope().$await_encountered())?t.$wrap($+"(await (async function() {","})())"):t.$wrap($+"(function() {","})()")):f})),a(p,"$returning_if?",(function(){return this.sexp.$meta()["$[]"]("returning")})),a(p,"$truthy",(function(){return this.$returnify(this.$true_body())})),a(p,"$falsy",(function(){return this.$returnify(this.$false_body())})),a(p,"$returnify",(function(e){return r(this["$expects_expression?"]())&&r(e)?this.$compiler().$returns(e):e})),a(p,"$expects_expression?",(function(){var e;return r(e=this["$expr?"]())?e:this["$recv?"]()})),a(p,"$should_compile_as_simple_expression?",(function(){var e,t,n=this;return r(e=r(t=n["$expects_expression?"]())?n["$simple?"](n.$true_body()):t)?n["$simple?"](n.$false_body()):e})),a(p,"$compile_with_ternary",(function(){var e,t=this,n=f,a=f;return e=t.$true_body(),n=t.$false_body(),t.$push("("),t.$push(t.$js_truthy(t.$test())," ? "),t.$push("(",t.$expr(r(a=e)?a:t.$s("nil")),") : "),s(n)||i(n.$type(),"if")?t.$push(t.$expr(r(a=n)?a:t.$s("nil"))):t.$push("(",t.$expr(r(a=n)?a:t.$s("nil")),")"),t.$push(")")})),a(p,"$compile_with_binary_and",(function(){var e=this,t=f,n=f;return t=r(e.$sexp().$meta()["$[]"]("do_js_truthy_on_true_body"))?e.$js_truthy(r(n=e.$true_body())?n:e.$s("nil")):e.$expr(r(n=e.$true_body())?n:e.$s("nil")),e.$push("("),e.$push(e.$js_truthy(e.$test())," && "),e.$push("(",t,")"),e.$push(")")})),a(p,"$compile_with_binary_or",(function(){var e=this,t=f,n=f;return t=r(e.$sexp().$meta()["$[]"]("do_js_truthy_on_false_body"))?e.$js_truthy(r(n=e.$false_body())?n:e.$s("nil")):e.$expr(r(n=e.$false_body())?n:e.$s("nil")),e.$push("("),e.$push(e.$js_truthy(e.$test())," || "),e.$push("(",t,")"),e.$push(")")})),a(p,"$simple?",(function(e){if(!$(h(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=f),(null==e.$$s?this:e.$$s)["$simple?"](t)}),{$$s:this})}})),u(m[0],"SWITCH_TEST_MATCH",o(h(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:p})),u(m[0],"SWITCH_TEST_MATCH_CONTINUED",o(h(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:p})),u(m[0],"SWITCH_BRANCH_TEST_MATCH",o(h(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:p})),u(m[0],"SWITCH_BRANCH_TEST_MATCH_CONTINUED",o(h(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:p})),a(p,"$could_become_switch?",(function(){var e,t,n,i=this,a=f;return!r(i["$expects_expression?"]())&&(!!r(i.$sexp().$meta()["$[]"]("switch_child"))||(t=r(n=g("SWITCH_TEST_MATCH").$match(i.$test()))?n:g("SWITCH_TEST_MATCH_CONTINUED").$match(i.$test()),!!r(t)&&(e=[].concat(l(t)),i.switch_test=null==e[0]?f:e[0],i.switch_variable=null==e[1]?f:e[1],i.switch_first_test=null==e[2]?f:e[2],a=null==e[3]?f:e[3],a=i.$handle_additional_switch_rules(a),!!r(a)&&(i.switch_additional_rules=a,!!r(i["$valid_switch_body?"](i.$true_body()))&&i["$could_become_switch_branch?"](i.$false_body())))))})),a(p,"$handle_additional_switch_rules",(function(e){var t,n=f,a=f,s=f,o=f,$=f;for(n=[];r(e);){if(a=r(s=g("SWITCH_BRANCH_TEST_MATCH").$match(e))?s:g("SWITCH_BRANCH_TEST_MATCH_CONTINUED").$match(e),!r(a))return!1;if(o=null==(t=[].concat(l(a)))[0]?f:t[0],$=null==t[1]?f:t[1],e=null==t[2]?f:t[2],!i($,this.switch_variable))return!1;n["$<<"](o)}return n})),a(p,"$could_become_switch_branch?",(function(e){var t,n,a,o,$,u,_,d,p,h,m=this;return!!s(e)||(c(e.$type(),"if")?!!r(m["$valid_switch_body?"](e))&&(e.$meta()["$[]="]("switch_default",!0),!0):(n=null==(t=[].concat(l(e)))[0]?f:t[0],a=null==t[1]?f:t[1],o=null==t[2]?f:t[2],$=r(u=g("SWITCH_BRANCH_TEST_MATCH").$match(n))?u:g("SWITCH_BRANCH_TEST_MATCH_CONTINUED").$match(n),!r($)&&r(m["$valid_switch_body?"](e,!0))?(e.$meta()["$[]="]("switch_default",!0),!0):(_=null==(t=[].concat(l($)))[0]?f:t[0],d=null==t[1]?f:t[1],p=null==t[2]?f:t[2],h=m.$handle_additional_switch_rules(p),!!r(h)&&(!!i(d,m.switch_variable)&&(!!r(m["$valid_switch_body?"](a))&&(!!r(m["$could_become_switch_branch?"](o))&&(e.$meta()["$merge!"](new Map([["switch_child",!0],["switch_test",_],["switch_variable",m.switch_variable],["switch_additional_rules",h]])),!0)))))))})),a(p,"$valid_switch_body?",(function(e,t){var n;if(null==t&&(t=!1),!$(h(g("AST"),"Node"),n=e))return!$(this.switch_variable,n)||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(n){return null==n&&(n=f),(null==e.$$s?this:e.$$s)["$valid_switch_body?"](n,t)}),{$$s:this})}}),-2),a(p,"$compile_with_switch",(function(){var e=this;return r(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=f),t.$compile_switch_case(t.switch_test)}),{$$s:e}),e.$line("}"))})),a(p,"$returning?",(function(e){var t,n=f;return r(t=["return","js_return","next"]["$include?"](e.$type()))?t:r(n=e.$type()["$=="]("begin"))?["return","js_return","next"]["$include?"](e.$children().$last().$type()):n})),a(p,"$compile_switch_case",(function(e){var t=this;return t.$line("case ",t.$expr(e),":"),r(t.switch_additional_rules)&&o(t.switch_additional_rules,"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=f),n.$line("case ",n.$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())),s(t.$true_body())||s(t["$returning?"](t.$true_body()))?t.$line("break;"):f}),{$$s:t}),r(t.$false_body())?r(t.$false_body().$meta()["$[]"]("switch_default"))?t.$compile_switch_default():r(t.$false_body().$meta()["$[]"]("switch_child"))?t.$push(t.$stmt(t.$false_body())):f:t.$push(t.$stmt(t.$s("nil")))})),a(p,"$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})}))}(m[0],g("Base"),m),function(e,t){var r=n(e,t,"BaseFlipFlop");r.$children("start_condition","end_condition"),a(r,"$compile",(function(){var e,t,n=this;return n.$helper("truthy"),t=(e=n.$top_scope().$new_temp())+".$$ff",n.$push("("+e+" = "+e+" || function(_start_func, _end_func){"),n.$push(" var flip_flop = "+t+" || false;"),n.$push(" if (!flip_flop) "+t+" = flip_flop = $truthy(_start_func());"),n.$push(" "+n.$excl()+"if (flip_flop && $truthy(_end_func())) "+t+" = false;"),n.$push(" return flip_flop;"),n.$push("})("),n.$push(" function() { ",n.$stmt(n.$compiler().$returns(n.$start_condition()))," },"),n.$push(" function() { ",n.$stmt(n.$compiler().$returns(n.$end_condition()))," }"),n.$push(")")}))}(m[0],g("Base")),function(e,t){var r=n(e,t,"IFlipFlop");r.$handle("iflipflop"),a(r,"$excl",_(""))}(m[0],g("BaseFlipFlop")),function(e,t){var r=n(e,t,"EFlipFlop");return r.$handle("eflipflop"),a(r,"$excl",_("else "))}(m[0],g("BaseFlipFlop"))}(m[0],m)}(p[0],p)},Opal.modules["opal/nodes/logic"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.send,a=e.to_a,s=e.truthy,o=e.rb_gt,$=e.top,u=[];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"),$.$require("opal/nodes/base"),function($,u){var l=[t($,"Opal")].concat(u);return function($,u){var l=[t($,"Nodes")].concat(u),c=e.$r(l);return function(e,t){var s=n(e,t,"NextNode");s.$handle("next"),r(s,"$compile",(function(){return this.$thrower("next",this.$value())})),r(s,"$value",(function(){var e=this;switch(e.$children().$size().valueOf()){case 0:return e.$s("nil");case 1:return e.$children().$first();default:return i(e,"s",["array"].concat(a(e.$children())))}}))}(l[0],c("Base")),function(e,t){var i=n(e,t,"BreakNode");i.$handle("break"),i.$children("value"),r(i,"$compile",(function(){return this.$thrower("break",this.$value())}))}(l[0],c("Base")),function(e,t){var i=n(e,t,"RedoNode");i.$handle("redo"),r(i,"$compile",(function(){var e=this;return s(e["$in_while?"]())?e.$compile_while():s(e.$scope()["$iter?"]())?e.$compile_iter():e.$push("REDO()")})),r(i,"$compile_while",(function(){var e=this;return e.$push(e.$while_loop()["$[]"]("redo_var")+" = true;"),e.$thrower("redo")})),r(i,"$compile_iter",(function(){var e=this;return e.$helper("slice"),e.$push("return "+e.$scope().$identity()+".apply(null, $slice(arguments))")}))}(l[0],c("Base")),function(e,t){var i=n(e,t,"SplatNode");i.$handle("splat"),i.$children("value"),r(i,"$empty_splat?",(function(){return this.$value()["$=="](this.$s("array"))})),r(i,"$compile",(function(){var e=this;return s(e["$empty_splat?"]())?e.$push("[]"):(e.$helper("to_a"),e.$push("$to_a(",e.$recv(e.$value()),")"))}))}(l[0],c("Base")),function(e,t){var i=n(e,t,"RetryNode");i.$handle("retry"),r(i,"$compile",(function(){return this.$thrower("retry")}))}(l[0],c("Base")),function(e,t){var $=n(e,t,"ReturnNode");$.$handle("return"),$.$children("value"),r($,"$return_val",(function(){var e=this;return s(e.$value()["$nil?"]())?e.$s("nil"):s(o(e.$children().$size(),1))?i(e,"s",["array"].concat(a(e.$children()))):e.$value()})),r($,"$compile",(function(){return this.$thrower("return",this.$return_val())}))}(l[0],c("Base")),function(e,t){var i=n(e,t,"JSReturnNode");i.$handle("js_return"),i.$children("value"),r(i,"$compile",(function(){var e=this;return e.$push("return "),e.$push(e.$expr(e.$value()))}))}(l[0],c("Base")),function(e,t){var i=n(e,t,"JSTempNode");i.$handle("js_tmp"),i.$children("value"),r(i,"$compile",(function(){return this.$push(this.$value().$to_s())}))}(l[0],c("Base")),function(e,t){var i=n(e,t,"BlockPassNode");return i.$handle("block_pass"),i.$children("value"),r(i,"$compile",(function(){var e=this;return e.$push(e.$expr(e.$s("send",e.$value(),"to_proc",e.$s("arglist"))))}))}(l[0],c("Base"))}(l[0],l)}(u[0],u)},Opal.modules["opal/nodes/definitions"]=function(e){var t=e.module,n=e.klass,r=e.send,i=e.def,a=e.range,s=e.eqeq,o=e.truthy,$=e.rb_gt,u=e.to_a,l=e.slice,c=e.rb_plus,_=e.const_set,d=e.top,p=[],f=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"),d.$require("opal/nodes/base"),function(d,p){var h=[t(d,"Opal")].concat(p);return function(d,p){var h=[t(d,"Nodes")].concat(p),m=e.$r(h);return function(e,t){var a=n(e,t,"UndefNode");a.$handle("undef"),a.$children("value"),i(a,"$compile",(function(){return r(this.$children(),"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=f),n.$line("Opal.udef("+n.$scope().$self()+", '$' + ",n.$expr(t),");")}),{$$s:this})}))}(h[0],m("Base")),function(e,t){var r=n(e,t,"AliasNode");r.$handle("alias"),r.$children("new_name","old_name"),i(r,"$compile",(function(){var e=this,t=f,n=f;switch(e.$new_name().$type().valueOf()){case"gvar":return e.$helper("alias_gvar"),t=e.$new_name().$children().$first().$to_s()["$[]"](a(1,-1,!1)).$inspect(),n=e.$old_name().$children().$first().$to_s()["$[]"](a(1,-1,!1)).$inspect(),e.$push("$alias_gvar(",t,", ",n,")");case"dsym":case"sym":return e.$helper("alias"),s(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())}}))}(h[0],m("Base")),function(t,a,d){var p=n(t,a,"BeginNode"),h=[p].concat(d),m=e.$r(h),g=p.$$prototype;g.level=g.returned_children=f,p.$handle("begin"),i(p,"$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($(t.$children().$size(),1))?t.$wrap("(",")"):f):s(t.$children().$size(),1)?t.$compile_inline_children(t.$returned_children(),t.level):(r(t,"in_closure",[],(function e(){var t=null==e.$$s?this:e.$$s;return null==t.level&&(t.level=f),t.$compile_children(t.$returned_children(),t.level)}),{$$s:t}),o((e=t.$scope().$parent())===f||null==e?f:e.$await_encountered())?t.$wrap("(await (async function() {","})())"):t.$wrap("(function() {","})()"))})),i(p,"$returned_children",(function(){var e,t,n,r=this,i=f,a=f;return r.returned_children=o(n=r.returned_children)?n:(t=(e=[].concat(u(r.$children()))).length-1,i=l(e,0,t=t<0?0:t),a=null==e[t]?f:e[t],o(a)?c(i,[r.$compiler().$returns(a)]):[r.$s("nil")])})),i(p,"$compile_children",(function(e,t){return r(e,"each",[],(function e(n){var r=null==e.$$s?this:e.$$s;return null==n&&(n=f),r.$line(r.$process(n,t),r.$fragment(";",new Map([["loc",!1]])))}),{$$s:this})})),_(h[0],"COMPLEX_CHILDREN",["while","while_post","until","until_post","js_return"].$freeze()),i(p,"$simple_children?",(function(){return r(this.$children(),"none?",[],(function(e){return null==e&&(e=f),m("COMPLEX_CHILDREN")["$include?"](e.$type())}))})),i(p,"$compile_inline_children",(function(e,t){var n;return n=r(e,"map",[],(function e(n){return null==n&&(n=f),(null==e.$$s?this:e.$$s).$process(n,t)}),{$$s:this}),r(r(n,"reject",[],"empty?".$to_proc()),"each_with_index",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==t&&(t=f),null==n&&(n=f),s(n,0)||r.$push(r.$fragment(", ",new Map([["loc",!1]]))),r.$push(t)}),{$$s:this})}))}(h[0],m("ScopeNode"),h),function(e,t){return n(e,t,"KwBeginNode").$handle("kwbegin")}(h[0],m("BeginNode"))}(h[0],h)}(p[0],p)},Opal.modules["opal/nodes/yield"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.send,a=e.to_a,s=e.def,o=e.top,$=[],u=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,$){var l=[t(o,"Opal")].concat($);return function(o,$){var l=[t(o,"Nodes")].concat($),c=e.$r(l);return function(e,t){var o=n(e,t,"BaseYieldNode");s(o,"$compile_call",(function(){var e,t=this,n=u;return(n=t.$find_yielding_scope())["$uses_block!"](),r(n.$block_name())||n["$block_name="]("$yield"),e=n.$block_name(),r(t["$yields_single_arg?"](t.$children()))?(t.$push(t.$expr(t.$children().$first())),t.$wrap("Opal.yield1("+e+", ",")")):(t.$push(t.$expr(i(t,"s",["arglist"].concat(a(t.$children()))))),r(t["$uses_splat?"](t.$children()))?t.$wrap("Opal.yieldX("+e+", ",")"):t.$wrap("Opal.yieldX("+e+", [","])"))})),s(o,"$find_yielding_scope",(function(){var e=u;for(e=this.$scope();r(e)&&!r(e.$block_name())&&!r(e["$def?"]());)e=e.$parent();return e})),s(o,"$yields_single_arg?",(function(e){var t;return r(t=this["$uses_splat?"](e)["$!"]())?e.$size()["$=="](1):t})),s(o,"$uses_splat?",(function(e){return i(e,"any?",[],(function(e){return null==e&&(e=u),e.$type()["$=="]("splat")}))}))}(l[0],c("Base")),function(e,t){var r=n(e,t,"YieldNode");r.$handle("yield"),s(r,"$compile",(function(){return this.$compile_call()}))}(l[0],c("BaseYieldNode")),function(e,t){var r=n(e,t,"ReturnableYieldNode");return r.$handle("returnable_yield"),s(r,"$compile",(function(){return this.$compile_call(),this.$wrap("return ",";")}))}(l[0],c("BaseYieldNode"))}(l[0],l)}($[0],$)},Opal.modules["opal/nodes/rescue"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.send,a=e.def,s=e.range,o=e.neqeq,$=e.eqeq,u=e.to_a,l=e.top,c=[],_=e.nil,d=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"),l.$require("opal/nodes/base"),function(l,c){var p=[t(l,"Opal")].concat(c);return function(l,c){var p=[t(l,"Nodes")].concat(c),f=e.$r(p);return function(e,t){var s=n(e,t,"EnsureNode");s.$$prototype.sexp=_,s.$handle("ensure"),s.$children("begn","ensr"),a(s,"$compile",(function(){var e=this;return r(e["$wrap_in_closure?"]())&&e.$push_closure(),e.$push("try {"),i(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 {"),i(e,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return null==t.level&&(t.level=_),r(t["$has_rescue_else?"]())?(t.$unshift("var $no_errors = true; "),t.$line("var $rescue_else_result;"),t.$line("if ($no_errors) { "),i(t,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$line("$rescue_else_result = (function() {"),i(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("}"),r(e["$wrap_in_closure?"]())&&e.$pop_closure(),r(e["$wrap_in_closure?"]())?r(e.$scope().$await_encountered())?e.$wrap("(await (async function() { ","; })())"):e.$wrap("(function() { ","; })()"):_})),a(s,"$body_sexp",(function(){var e=this;return r(e["$wrap_in_closure?"]())?e.$compiler().$returns(e.$begn()):e.$begn()})),a(s,"$ensr_sexp",(function(){var e;return r(e=this.$ensr())?e:this.$s("nil")})),a(s,"$wrap_in_closure?",(function(){var e,t,n=this;return r(e=r(t=n["$recv?"]())?t:n["$expr?"]())?e:n["$has_rescue_else?"]()})),a(s,"$rescue_else_code",(function(){var e=this,t=_;return t=e.$scope().$rescue_else_sexp(),r(e["$stmt?"]())||(t=e.$compiler().$returns(t)),t})),a(s,"$has_rescue_else?",(function(){return this.sexp.$meta()["$[]"]("has_rescue_else")}))}(p[0],f("Base")),function(t,u,l){var c=n(t,u,"RescueNode"),p=[c].concat(l),f=e.$r(p);c.$$prototype.sexp=_,c.$handle("rescue"),c.$children("body"),a(c,"$compile",(function(){var e=this,t=_;return e.$scope()["$rescue_else_sexp="](i(e.$children()["$[]"](s(1,-1,!1)),"detect",[],(function(e){var t;return null==e&&(e=_),r(t=e)?e.$type()["$!="]("resbody"):t}))),!1,r(e["$handle_rescue_else_manually?"]())&&e.$line("var $no_errors = true;"),t=d(f("Closure"),"NONE"),(r(e["$expr?"]())||r(e["$recv?"]()))&&(t=t["$|"](d(f("Closure"),"JS_FUNCTION"))),r(e["$has_retry?"]())&&(t=t["$|"](d(f("Closure"),"JS_LOOP")["$|"](d(f("Closure"),"JS_LOOP_INSIDE"))["$|"](d(f("Closure"),"RESCUE_RETRIER")))),o(t,d(f("Closure"),"NONE"))&&e.$push_closure(t),i(e,"in_rescue",[e],(function e(){var t=null==e.$$s?this:e.$$s;return t.$push("try {"),i(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) {"),i(t,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return r(t["$has_rescue_else?"]())&&t.$line("$no_errors = false;"),i(t.$children()["$[]"](s(1,-1,!1)),"each_with_index",[],(function e(t,n){var i=null==e.$$s?this:e.$$s;return null==i.level&&(i.level=_),null==t&&(t=_),null==n&&(n=_),r(t)&&$(t.$type(),"resbody")?(!0,$(n,0)||i.$push(" else "),i.$line(i.$process(t,i.level))):_}),{$$s:t}),t.$push(" else { throw $err; }")}),{$$s:t}),t.$line("}"),r(t["$handle_rescue_else_manually?"]())?(t.$push("finally {"),i(t,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$line("if ($no_errors) { "),i(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,d(f("Closure"),"NONE"))&&e.$pop_closure(),r(e["$has_retry?"]())&&e.$wrap("do { "," break; } while(1)"),r(e["$expr?"]())||r(e["$recv?"]())?r(e.$scope().$await_encountered())?e.$wrap("(await (async function() { ","})())"):e.$wrap("(function() { ","})()"):_})),a(c,"$body_code",(function(){var e=this,t=_;return t=r(e.$body()["$nil?"]())||$(e.$body().$type(),"resbody")?e.$s("nil"):e.$body(),r(e["$stmt?"]())||(t=e.$compiler().$returns(t)),t})),a(c,"$rescue_else_code",(function(){var e=this,t=_;return t=e.$scope().$rescue_else_sexp(),r(e["$stmt?"]())||(t=e.$compiler().$returns(t)),t})),a(c,"$handle_rescue_else_manually?",(function(){var e;return r(e=this["$in_ensure?"]()["$!"]())?this["$has_rescue_else?"]():e})),a(c,"$has_retry?",(function(){return this.sexp.$meta()["$[]"]("has_retry")}))}(p[0],f("Base"),p),function(e,t){var s=n(e,t,"ResBodyNode");return s.$handle("resbody"),s.$children("klasses_sexp","lvar","body"),a(s,"$compile",(function(){var e=this;return e.$push("if (Opal.rescue($err, ",e.$expr(e.$klasses()),")) {"),i(e,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return r(t.$lvar())&&t.$push(t.$expr(t.$lvar().$updated(_,[].concat(u(t.$lvar().$children())).concat([t.$s("js_tmp","$err")])))),t.$line("try {"),i(t,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return i(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("}")})),a(s,"$klasses",(function(){var e,t=this;return r(e=t.$klasses_sexp())?e:t.$s("array",t.$s("const",_,"StandardError"))})),a(s,"$rescue_body",(function(){var e,t=this,n=_;return n=r(e=t.$body())?e:t.$s("nil"),r(t["$stmt?"]())||(n=t.$compiler().$returns(n)),n}))}(p[0],f("Base"))}(p[0],p)}(c[0],c)},Opal.modules["opal/nodes/super"]=function(e){var t=e.module,n=e.klass,r=e.slice,i=e.send2,a=e.find_super,s=e.to_a,o=e.truthy,$=e.send,u=e.def,l=e.return_val,c=e.to_ary,_=e.eqeq,d=e.not,p=e.eqeqeq,f=e.top,h=[],m=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?,==="),f.$require("opal/nodes/base"),function(f,h){var v=[t(f,"Opal")].concat(h);return function(f,h){var v=[t(f,"Nodes")].concat(h),b=e.$r(v);return function(e,t){var _=n(e,t,"BaseSuperNode"),d=_.$$prototype;d.sexp=d.def_scope=m,u(_,"$initialize",(function e(t){var n,u,l,c,_=e.$$p||m,d=this,p=m,f=m;return e.$$p=null,n=r(arguments),i(d,a(d,"initialize",e,!1,!0),"initialize",s(n),_),p=[].concat(s(d.sexp)),l=(u=[].concat(s(p))).length-1,c=r(u,0,l=l<0?0:l),f=null==u[l]?m:u[l],o(f)&&o(["iter","block_pass"]["$include?"](f.$type()))?(d.iter=f,p=c):d.iter=d.$s("js_tmp","null"),d.arglist=$(d,"s",["arglist"].concat(s(p))),d.recvr=d.$s("self")}),-1),u(_,"$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(),u(_,"$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()})),u(_,"$defined_check_param",l("false")),u(_,"$implicit_arguments_param",l("false")),u(_,"$method_id",(function(){return this.$def_scope().$mid().$to_s()})),u(_,"$def_scope_identity",(function(){return this.$def_scope()["$identify!"](this.$def_scope().$mid())})),u(_,"$allow_stubs",l("true")),u(_,"$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()+")"})),u(_,"$super_block_invocation",(function(){var e,t,n,r,i,a,s=this;return s.$helper("find_block_super"),t=s.$scope().$super_chain(),n=null==(e=c(t))[0]?m:e[0],r=null==e[1]?m:e[1],i=null==e[2]?m:e[2],a=$(n,"map",[],(function(e){return null==e&&(e=m),e+".$$def"})).$join(" || "),"$find_block_super("+s.$scope().$self()+", "+i+", ("+a+" || "+r+"), "+s.$defined_check_param()+", "+s.$implicit_arguments_param()+")"})),u(_,"$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")})),u(_,"$compile_method_name",(function(){var e,t,n=this,r=m;return o(n.$scope()["$def?"]())?n.$push(", '"+n.$method_id()+"'"):o(n.$scope()["$iter?"]())?(t=n.$scope().$super_chain(),null==(e=c(t))[0]?m:e[0],null==e[1]?m:e[1],r=null==e[2]?m:e[2],n.$push(", "+r)):m}))}(v[0],b("CallNode")),function(e,t){var r=n(e,t,"DefinedSuperNode");r.$handle("defined_super"),u(r,"$allow_stubs",l("false")),u(r,"$defined_check_param",l("true")),u(r,"$compile",(function(){var e=this;return e.$compile_receiver(),e.$compile_method_body(),e.$wrap("((",') != null ? "super" : nil)')}))}(v[0],b("BaseSuperNode")),function(e,t){var $=n(e,t,"SuperNode");$.$handle("super"),u($,"$initialize",(function e(t){var n,$=e.$$p||m,u=this;return e.$$p=null,n=r(arguments),i(u,a(u,"initialize",e,!1,!0),"initialize",s(n),$),o(u.$scope()["$def?"]())?u.$scope()["$uses_block!"]():m}),-1),u($,"$compile",(function(){return this.$compile_using_send()}))}(v[0],b("BaseSuperNode")),function(t,c,f){var h=n(t,c,"ZsuperNode"),v=[h].concat(f),b=e.$r(v);return h.$handle("zsuper"),u(h,"$implicit_arguments_param",l("true")),u(h,"$initialize",(function e(t){var n,$=e.$$p||m,u=this,l=m;return e.$$p=null,n=r(arguments),i(u,a(u,"initialize",e,!1,!0),"initialize",s(n),$),_(u.$iter().$type(),"iter")?m:(u.$scope()["$uses_block!"](),u.iter=u.$s("js_tmp",o(l=u.$scope().$block_name())?l:"$yield"))}),-1),u(h,"$compile",(function(){var e=this,t=m,n=m;return o(e.$def_scope())&&(t=e.$implicit_arglist(),o(e.$block_name())&&d(e.$iter())&&(n=e.$s("block_pass",e.$s("lvar",e.$block_name())),t["$<<"](n)),e.arglist=$(e,"s",["arglist"].concat(s(t)))),e.$compile_using_send()})),u(h,"$implicit_arglist",(function(){var e=this,t=m,n=m;return t=[],n=[],$(e.$def_scope().$original_args().$children(),"each",[],(function e(r){var i,a=null==e.$$s?this:e.$$s,s=m,$=m;switch(null==r&&(r=m),i=r.$children()["$[]"](0),r.$type().valueOf()){case"arg":case"optarg":return s=a.$s("lvar",i),t["$<<"](s);case"restarg":return s=o(i)?a.$s("lvar",i):a.$s("js_tmp","$rest_arg"),t["$<<"](a.$s("splat",s));case"kwarg":case"kwoptarg":return $=r.$meta()["$[]"]("arg_name"),n["$<<"](a.$s("pair",a.$s("sym",$),a.$s("lvar",i)));case"kwrestarg":return s=o(i)?a.$s("lvar",i):a.$s("js_tmp","$kw_rest_arg"),n["$<<"](a.$s("kwsplat",s));default:return m}}),{$$s:e}),o(n["$empty?"]())||t["$<<"]($(e,"s",["hash"].concat(s(n)))),t})),u(h,"$block_name",(function(){var e,t=this;return p(g(g(b("Opal"),"Nodes"),"IterNode"),e=t.$def_scope())||p(g(g(b("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())}))}(v[0],b("SuperNode"),v)}(v[0],v)}(h[0],h)},Opal.modules["opal/version"]=function(e){var t=e.module,n=e.const_set,r=[];e.nil;return function(e,r){var i=[t(e,"Opal")].concat(r);return n(i[0],"VERSION","1.8.3")}(r[0],r)},Opal.modules["opal/nodes/top"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.eqeq,a=e.send,s=e.def,o=e.not,$=e.top,u=[],l=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"),$.$require("pathname"),$.$require("json"),$.$require("opal/version"),$.$require("opal/nodes/scope"),function($,u){var _=[t($,"Opal")].concat(u);return function($,u){var _=[t($,"Nodes")].concat(u),d=e.$r(_);return function(t,$,u){var _=n(t,$,"TopNode"),d=[_].concat(u),p=e.$r(d);return _.$handle("top"),_.$children("body"),s(_,"$compile",(function(){var e=this;return e.$compiler()["$top_scope="](e),r(e.$sexp().$meta()["$[]"]("dynamic_cache_result"))&&e.$compiler()["$dynamic_cache_result="](!0),e.$push(e.$version_comment()),r(e.$compiler().$eof_content())&&e.$helper("return_val"),i(e.$body(),e.$s("nil"))?r(e.$compiler()["$requirable?"]())||r(e.$compiler()["$esm?"]())||r(e.$compiler()["$eval?"]())?(e.$unshift("Opal.return_val(Opal.nil); "),e.$definition()):e.$unshift("Opal.nil; "):(a(e,"in_scope",[],(function e(){var t=null==e.$$s?this:e.$$s,n=l;return null==t.define_nesting&&(t.define_nesting=l),null==t.define_self&&(t.define_self=l),null==t.define_relative_access&&(t.define_relative_access=l),null==t.define_absolute_const&&(t.define_absolute_const=l),r(t.$compiler()["$use_strict?"]())&&t.$line('"use strict";'),n=a(t,"in_closure",[c(p("Closure"),"JS_FUNCTION")["$|"](c(p("Closure"),"TOP"))],(function e(){var t=null==e.$$s?this:e.$$s;return t.$stmt(t.$stmts())}),{$$s:t}),r(n["$is_a?"](p("Array")))||(n=[n]),r(t.$compiler()["$eval?"]())?r(t.define_nesting)&&t.$add_temp("$nesting = self.$$is_a_module ? [self] : [self.$$class]"):(r(t.define_self)&&t.$add_temp("self = Opal.top"),r(t.define_nesting)&&t.$add_temp("$nesting = []")),r(t.define_relative_access)&&t.$add_temp("$$ = Opal.$r($nesting)"),t.$add_temp("nil = Opal.nil"),r(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(n)}),{$$s:e}),e.$opening(),e.$definition(),e.$closing()),r(e.$compiler()["$enable_file_source_embed?"]())?e.$add_file_source_embed():l})),s(_,"$module_name",(function(){return c(p("Opal"),"Compiler").$module_name(this.$compiler().$file()).$inspect()})),s(_,"$definition",(function(){var e=this;return r(e.$compiler()["$requirable?"]())?e.$unshift("Opal.modules["+e.$module_name()+"] = "):r(e.$compiler()["$esm?"]())&&o(e.$compiler()["$no_export?"]())?e.$unshift("export default "):l})),s(_,"$opening",(function(){var e=this,t=l;return r(e.$await_encountered())&&(t="async "),r(e.$compiler()["$requirable?"]())?e.$unshift(t+"function(Opal) {"):r(e.$compiler()["$eval?"]())?e.$unshift("("+t+"function(Opal, self) {"):e.$unshift("Opal.queue("+t+"function(Opal) {")})),s(_,"$closing",(function(){var e=this;return r(e.$compiler()["$requirable?"]())?(e.$line("};\n"),r(e.$compiler()["$load?"]())?e.$line("Opal.load_normalized("+e.$module_name()+");"):l):r(e.$compiler()["$eval?"]())?e.$line("})(Opal, self);"):e.$line("});\n")})),s(_,"$stmts",(function(){return this.$compiler().$returns(this.$body())})),s(_,"$absolute_const",(function(){return this.define_absolute_const=!0,"$$$"})),s(_,"$compile_irb_vars",(function(){return r(this.$compiler()["$irb?"]())?this.$line("if (!Opal.irb_vars) { Opal.irb_vars = {}; }"):l})),s(_,"$add_used_helpers",(function(){return a(this.$compiler().$helpers().$to_a(),"reverse_each",[],(function e(t){return null==t&&(t=l),(null==e.$$s?this:e.$$s).$prepend_scope_temp("$"+t+" = Opal."+t)}),{$$s:this})})),s(_,"$compile_method_stubs",(function(){var e=this,t=l,n=l;return r(e.$compiler()["$method_missing?"]())?(t=e.$compiler().$method_calls(),n=a(t.$to_a(),"map",[],"to_s".$to_proc()).$join(","),r(n["$empty?"]())?l:e.$line("Opal.add_stubs('"+n+"');")):l})),s(_,"$compile_end_construct",(function(){var e=this,t=l;return r(t=e.$compiler().$eof_content())?(e.$line("var $__END__ = Opal.Object.$new();"),e.$line("$__END__.$read = $return_val("+t.$inspect()+");")):l})),s(_,"$version_comment",(function(){return"/* Generated by Opal "+c(p("Opal"),"VERSION")+" */"})),s(_,"$add_file_source_embed",(function(){var e=this,t=l,n=l;return t=e.$compiler().$file(),n=e.$compiler().$source(),e.$unshift("Opal.file_sources["+t.$to_json()+"] = "+n.$to_json()+";\n")}))}(_[0],d("ScopeNode"),_)}(_[0],_)}(u[0],u)},Opal.modules["opal/nodes/while"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.send,a=e.def,s=e.return_val,o=e.top,$=[],u=e.nil,l=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,$){var c=[t(o,"Opal")].concat($);return function(o,$){var c=[t(o,"Nodes")].concat($),_=e.$r(c);return function(t,o,$){var c=n(t,o,"WhileNode"),_=[c].concat($),d=e.$r(_),p=c.$$prototype;p.redo_var=p.sexp=u,c.$handle("while"),c.$children("test","body"),a(c,"$compile",(function(){var e,t=this;return e=t.$js_truthy(t.$test()),r(t["$uses_redo?"]())&&(t.redo_var=t.$scope().$new_temp()),i(t.$compiler(),"in_while",[],(function t(){var n=null==t.$$s?this:t.$$s;return null==n.redo_var&&(n.redo_var=u),r(n["$wrap_in_closure?"]())&&n.$while_loop()["$[]="]("closure",!0),n.$while_loop()["$[]="]("redo_var",n.redo_var),i(n,"in_closure",[l(d("Closure"),"LOOP")["$|"](l(d("Closure"),"JS_LOOP"))["$|"](r(n["$wrap_in_closure?"]())?l(d("Closure"),"JS_FUNCTION"):0)],(function t(){var n=null==t.$$s?this:t.$$s;return i(n,"in_closure",[l(d("Closure"),"LOOP_INSIDE")["$|"](l(d("Closure"),"JS_LOOP_INSIDE"))],(function e(){var t=null==e.$$s?this:e.$$s;return t.$line(i(t,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$stmt(t.$body())}),{$$s:t}))}),{$$s:n}),r(n["$uses_redo?"]())?n.$compile_with_redo(e):n.$compile_without_redo(e)}),{$$s:n})}),{$$s:t}),r(t["$uses_redo?"]())&&t.$scope().$queue_temp(t.redo_var),r(t["$wrap_in_closure?"]())?r(t.$scope().$await_encountered())?t.$wrap("(await (async function() {","; return nil; })())"):t.$wrap("(function() {","; return nil; })()"):u})),c.$private(),a(c,"$compile_with_redo",(function(e){return this.$compile_while(e,this.redo_var+" = false;")})),a(c,"$compile_without_redo",(function(e){return this.$compile_while(e)})),a(c,"$compile_while",(function(e,t){var n=this;return null==t&&(t=u),r(t)&&n.$unshift(t),n.$unshift(n.$while_open(),e,n.$while_close()),r(t)&&n.$unshift(t),n.$line("}")}),-2),a(c,"$while_open",(function(){var e=u;return r(this["$uses_redo?"]())&&(e=this.redo_var+" || "),"while ("+e})),a(c,"$while_close",s(") {")),a(c,"$uses_redo?",(function(){return this.sexp.$meta()["$[]"]("has_redo")})),a(c,"$wrap_in_closure?",(function(){var e;return r(e=this["$expr?"]())?e:this["$recv?"]()}))}(c[0],_("Base"),c),function(e,t){var i=n(e,t,"UntilNode");i.$$prototype.redo_var=u,i.$handle("until"),i.$private(),a(i,"$while_open",(function(){var e=u;return r(this["$uses_redo?"]())&&(e=this.redo_var+" || "),"while ("+e+"!("})),a(i,"$while_close",s(")) {"))}(c[0],_("WhileNode")),function(e,t){var i=n(e,t,"WhilePostNode");i.$handle("while_post"),i.$private(),a(i,"$compile_while",(function(e,t){var n=this;return null==t&&(t=u),r(t)&&n.$unshift(t),n.$unshift("do {"),n.$line("} ",n.$while_open(),e,n.$while_close())}),-2),a(i,"$while_close",s(");"))}(c[0],_("WhileNode")),function(e,t){var i=n(e,t,"UntilPostNode");return i.$$prototype.redo_var=u,i.$handle("until_post"),i.$private(),a(i,"$while_open",(function(){var e=u;return r(this["$uses_redo?"]())&&(e=this.redo_var+" || "),"while ("+e+"!("})),a(i,"$while_close",s("));"))}(c[0],_("WhilePostNode"))}(c[0],c)}($[0],$)},Opal.modules["opal/nodes/hash"]=function(e){var t=e.module,n=e.klass,r=e.slice,i=e.send2,a=e.find_super,s=e.to_a,o=e.send,$=e.def,u=e.truthy,l=e.eqeq,c=e.to_ary,_=e.top,d=[],p=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(_,d){var f=[t(_,"Opal")].concat(d);return function(_,d){var f=[t(_,"Nodes")].concat(d),h=e.$r(f);return function(e,t){var _=n(e,t,"HashNode");_.$handle("hash"),_.$attr_accessor("has_kwsplat","keys","values"),$(_,"$initialize",(function e(t){var n,$=e.$$p||p,u=this;return e.$$p=null,n=r(arguments),i(u,a(u,"initialize",e,!1,!0),"initialize",s(n),$),u.has_kwsplat=!1,u.keys=[],u.values=[],o(u.$children(),"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;switch(null==n.keys&&(n.keys=p),null==n.values&&(n.values=p),null==t&&(t=p),t.$type().valueOf()){case"kwsplat":return n.has_kwsplat=!0;case"pair":return n.keys["$<<"](t.$children()["$[]"](0)),n.values["$<<"](t.$children()["$[]"](1));default:return p}}),{$$s:u})}),-1),$(_,"$simple_keys?",(function(){return o(this.$keys(),"all?",[],(function(e){return null==e&&(e=p),["sym","str","int"]["$include?"](e.$type())}))})),$(_,"$compile",(function(){var e=this;return u(e.$has_kwsplat())?e.$compile_merge():e.$compile_hash()})),$(_,"$compile_merge",(function(){var e,t=this,n=p,r=p;return n=(e=[[],[]])[0],r=e[1],o(t.$children(),"each",[],(function e(t){var i=null==e.$$s?this:e.$$s;return null==t&&(t=p),l(t.$type(),"kwsplat")?(u(r["$empty?"]())||n["$<<"](i.$expr(o(i,"s",["hash"].concat(s(r))))),n["$<<"](i.$expr(t)),r=[]):r["$<<"](t)}),{$$s:t}),u(r["$empty?"]())||n["$<<"](t.$expr(o(t,"s",["hash"].concat(s(r))))),o(n,"each_with_index",[],(function e(t,n){var r=null==e.$$s?this:e.$$s;return null==t&&(t=p),null==n&&(n=p),l(n,0)?r.$push(t):r.$push(".$merge(",t,")")}),{$$s:t})})),$(_,"$compile_hash",(function(){var e=this;return o(e.$children(),"each_with_index",[],(function e(t,n){var r,i,a,s=null==e.$$s?this:e.$$s,o=p;return null==t&&(t=p),null==n&&(n=p),i=t.$children(),o=null==(r=c(i))[0]?p:r[0],a=null==r[1]?p:r[1],l(n,0)||s.$push(", "),u(["sym","str"]["$include?"](o.$type()))?s.$push("["+o.$children()["$[]"](0).$to_s().$inspect(),", ",s.$expr(a),"]"):s.$push("[",s.$expr(o),", ",s.$expr(a),"]")}),{$$s:e}),u(e.$keys()["$empty?"]())?e.$push("(new Map())"):u(e["$simple_keys?"]())?e.$wrap("(new Map([","]))"):(e.$helper("hash_rehash"),e.$wrap("$hash_rehash(new Map([","]))"))}))}(f[0],h("Base")),function(e,t){var r=n(e,t,"KwSplatNode");return r.$handle("kwsplat"),r.$children("value"),$(r,"$compile",(function(){var e=this;return e.$push("Opal.to_hash(",e.$expr(e.$value()),")")}))}(f[0],h("Base"))}(f[0],f)}(d[0],d)},Opal.modules["opal/nodes/array"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.send,a=e.def,s=e.top,o=[],$=e.nil;return e.add_stubs("require,handle,empty?,children,push,each,==,type,expr,<<,fragment"),s.$require("opal/nodes/base"),function(s,o){var u=[t(s,"Opal")].concat(o);return function(s,o){var u=[t(s,"Nodes")].concat(o),l=e.$r(u);return function(e,t){var s=n(e,t,"ArrayNode");return s.$handle("array"),a(s,"$compile",(function(){var e,t=this,n=$,a=$,s=$;return r(t.$children()["$empty?"]())?t.$push("[]"):(n=(e=[[],[]])[0],a=e[1],i(t.$children(),"each",[],(function e(t){var i,s,o=null==e.$$s?this:e.$$s;return null==t&&(t=$),i=t.$type()["$=="]("splat"),s=o.$expr(t),r(i)?(r(a["$empty?"]())?r(n["$empty?"]())?n["$<<"](o.$fragment("[].concat("))["$<<"](s)["$<<"](o.$fragment(")")):n["$<<"](o.$fragment(".concat("))["$<<"](s)["$<<"](o.$fragment(")")):(r(n["$empty?"]())?n["$<<"](o.$fragment("["))["$<<"](a)["$<<"](o.$fragment("]")):n["$<<"](o.$fragment(".concat(["))["$<<"](a)["$<<"](o.$fragment("])")),n["$<<"](o.$fragment(".concat("))["$<<"](s)["$<<"](o.$fragment(")"))),a=[]):(r(a["$empty?"]())||a["$<<"](o.$fragment(", ")),a["$<<"](s))}),{$$s:t}),r(a["$empty?"]())||(s=[t.$fragment("["),a,t.$fragment("]")],r(n["$empty?"]())?n=s:n.$push([t.$fragment(".concat("),s,t.$fragment(")")])),t.$push(n))}))}(u[0],l("Base"))}(u[0],u)}(o[0],o)},Opal.modules["opal/nodes/defined"]=function(e){var t=e.module,n=e.klass,r=e.eqeq,i=e.def,a=e.truthy,s=e.to_a,o=e.slice,$=e.send,u=e.range,l=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"),l.$require("opal/nodes/base"),function(l,c){var d=[t(l,"Opal")].concat(c);return function(l,c){var d=[t(l,"Nodes")].concat(c),p=e.$r(d);return function(e,t){var l=n(e,t,"DefinedNode");return l.$handle("defined?"),l.$children("value"),i(l,"$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 r(e.$value().$children().$size(),1)&&r(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'")}})),i(l,"$compile_defined",(function(e){var t,n=this,r=_;return t=e.$type(),a(n["$respond_to?"]("compile_defined_"+t))?n.$__send__("compile_defined_"+t,e):(r=n.$scope().$new_temp(),n.$push("("+r+" = ",n.$expr(e),")"),r)})),i(l,"$wrap_with_try_catch",(function(e){var t,n=this;return t=n.$scope().$new_temp(),n.$push("("+t+" = (function() { try {"),n.$push(" return "+e+";"),n.$push("} catch ($err) {"),n.$push(" if (Opal.rescue($err, [Opal.Exception])) {"),n.$push(" try {"),n.$push(" return false;"),n.$push(" } finally { Opal.pop_exception($err); }"),n.$push(" } else { throw $err; }"),n.$push("}})())"),t})),i(l,"$compile_send_recv_doesnt_raise",(function(e){return this.$wrap_with_try_catch(e)})),i(l,"$compile_defined_send",(function(e){var t,n,i,u,l,c=this,d=_,p=_,f=_,h=_;return d=null==(t=[].concat(s(e)))[0]?_:t[0],p=null==t[1]?_:t[1],n=o(t,2),i=c.$mid_to_jsid(p.$to_s()),a(d)?(f=c.$compile_defined(d),c.$push(" && "),r(d.$type(),"send")&&(f=c.$compile_send_recv_doesnt_raise(f),c.$push(" && ")),h=c.$scope().$new_temp(),c.$push("("+h+" = ",f,", "+h+") && ")):h=c.$scope().$self(),u=c.$scope().$new_temp(),c.$push("("+u+" = "+h+") && "),l=c.$scope().$new_temp(),c.$push("((("+l+" = "+u+i+") && !"+l+".$$stub)"),c.$push(" || "+u+"['$respond_to_missing?']('"+p+"'))"),$(n,"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=_),"block_pass"===t.$type().valueOf()?_:(n.$push(" && "),n.$compile_defined(t))}),{$$s:c}),c.$wrap("(",")"),l+"()"})),i(l,"$compile_defined_ivar",(function(e){var t,n,r=this;return t=e.$children()["$[]"](0).$to_s()["$[]"](u(1,-1,!1)),n=r.$scope().$new_temp(),r.$push("("+n+" = "+r.$scope().$self()+"['"+t+"'], "+n+" != null && "+n+" !== nil)"),n})),i(l,"$compile_defined_super",(function(){var e=this;return e.$push(e.$expr(e.$s("defined_super")))})),i(l,"$compile_defined_yield",(function(){var e,t,n=this;return n.$scope()["$uses_block!"](),e=a(t=n.$scope().$block_name())?t:n.$scope().$find_parent_def().$block_name(),n.$push("("+e+" != null && "+e+" !== nil)"),e})),i(l,"$compile_defined_xstr",(function(e){return this.$push("(typeof(",this.$expr(e),') !== "undefined")')})),i(l,"$compile_defined_const",(function(e){var t,n,i,o=this,$=_,u=_;return $=null==(t=[].concat(s(e)))[0]?_:t[0],n=null==t[1]?_:t[1],i=o.$scope().$new_temp(),a($["$nil?"]())?o.$push("("+i+" = "+o.$scope().$relative_access()+"('"+n+"', 'skip_raise'))"):r($,o.$s("cbase"))?o.$push("("+i+" = "+o.$top_scope().$absolute_const()+"('::', '"+n+"', 'skip_raise'))"):(u=o.$compile_defined($),o.$push(" && ("+i+" = "+o.$top_scope().$absolute_const()+"("+u+", '"+n+"', 'skip_raise'))")),i})),i(l,"$compile_defined_cvar",(function(e){var t,n,r,i=this;return n=null==(t=[].concat(s(e)))[0]?_:t[0],null==t[1]?_:t[1],r=i.$scope().$new_temp(),i.$push("("+r+" = "+i.$class_variable_owner()+".$$cvars['"+n+"'], "+r+" != null)"),r})),i(l,"$compile_defined_gvar",(function(e){var t,n=this,r=_;return n.$helper("gvars"),r=e.$children()["$[]"](0).$to_s()["$[]"](u(1,-1,!1)),t=n.$scope().$new_temp(),a(["~","!"]["$include?"](r))?n.$push("("+t+" = ",n.$expr(e)," || true)"):n.$push("("+t+" = $gvars["+r.$inspect()+"], "+t+" != null)"),t})),i(l,"$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})),i(l,"$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})),i(l,"$compile_defined_array",(function(e){return $(e.$children(),"each_with_index",[],(function e(t,n){var i=null==e.$$s?this:e.$$s;return null==t&&(t=_),null==n&&(n=_),r(n,0)||i.$push(" && "),i.$compile_defined(t)}),{$$s:this})}))}(d[0],p("Base"))}(d[0],d)}(c[0],c)},Opal.modules["opal/nodes/masgn"]=function(e){var t=e.module,n=e.klass,r=e.const_set,i=e.send,a=e.eqeq,s=e.truthy,o=e.def,$=e.rb_ge,u=e.not,l=e.rb_plus,c=e.top,_=[],d=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 p=[t(c,"Opal")].concat(_);return function(c,_){var p=[t(c,"Nodes")].concat(_),f=e.$r(p);return function(t,c,_){var p=n(t,c,"MassAssignNode"),f=[p].concat(_),h=e.$r(f);return r(f[0],"SIMPLE_ASSIGNMENT",["lvasgn","ivasgn","lvar","gvasgn","cdecl","casgn"].$freeze()),p.$handle("masgn"),p.$children("lhs","rhs"),o(p,"$compile",(function(){return i(this,"with_temp",[],(function e(t){var n=null==e.$$s?this:e.$$s,r=d;return null==t&&(t=d),a(n.$rhs().$type(),"array")?(n.$push(t+" = ",n.$expr(n.$rhs())),r=s(i(n.$rhs().$children(),"any?",[],(function(e){return null==e&&(e=d),e.$type()["$=="]("splat")})))?d:n.$rhs().$children().$size(),n.$compile_masgn(n.$lhs().$children(),t,r),n.$push(", "+t)):(n.$helper("to_ary"),i(n,"with_temp",[],(function e(n){var r=null==e.$$s?this:e.$$s;return null==n&&(n=d),r.$push(n+" = ",r.$expr(r.$rhs())),r.$push(", "+t+" = $to_ary("+n+")"),r.$compile_masgn(r.$lhs().$children(),t),r.$push(", "+n)}),{$$s:n}))}),{$$s:this})})),o(p,"$compile_masgn",(function(e,t,n){var r=this,o=d,$=d,u=d,l=d,c=d;return null==n&&(n=d),o=i(e,"take_while",[],(function(e){return null==e&&(e=d),e.$type()["$!="]("splat")})),$=e.$drop(o.$size()),i(o,"each_with_index",[],(function e(r,i){return null==r&&(r=d),null==i&&(i=d),(null==e.$$s?this:e.$$s).$compile_assignment(r,t,i,n)}),{$$s:r}),s($["$empty?"]())?d:(u=$.$shift(),s($["$empty?"]())?s(l=u.$children()["$[]"](0))?(r.$helper("slice"),l=l.$dup()["$<<"](r.$s("js_tmp","$slice("+t+", "+o.$size()+")")),r.$push(", "),r.$push(r.$expr(l))):d:(c=r.$scope().$new_temp(),r.$push(", "+c+" = "+t+".length - "+$.$size()),r.$push(", "+c+" = ("+c+" < "+o.$size()+") ? "+o.$size()+" : "+c),s(l=u.$children()["$[]"](0))&&(r.$helper("slice"),l=l.$dup()["$<<"](r.$s("js_tmp","$slice("+t+", "+o.$size()+", "+c+")")),r.$push(", "),r.$push(r.$expr(l))),i($,"each_with_index",[],(function e(n,r){var i=null==e.$$s?this:e.$$s;return null==n&&(n=d),null==r&&(r=d),a(r,0)?i.$compile_assignment(n,t,c):i.$compile_assignment(n,t,c+" + "+r)}),{$$s:r}),r.$scope().$queue_temp(c)))}),-3),o(p,"$compile_assignment",(function(e,t,n,r){var i=this,o=d,c=d,_=d;if(null==r&&(r=d),o=u(r)||s($(n,r))?i.$s("js_tmp","("+t+"["+n+"] == null ? nil : "+t+"["+n+"])"):i.$s("js_tmp",t+"["+n+"]"),c=e.$updated(),s(h("SIMPLE_ASSIGNMENT")["$include?"](e.$type())))c=c.$updated(d,l(c.$children(),[o]));else if(a(e.$type(),"send"))c=c.$updated(d,l(c.$children(),[o]));else if(a(e.$type(),"attrasgn"))c.$last()["$<<"](o);else{if(a(e.$type(),"mlhs"))return i.$helper("to_ary"),_=i.$scope().$new_temp(),i.$push(", ("+_+" = $to_ary("+o.$children()["$[]"](0)+")"),i.$compile_masgn(e.$children(),_),i.$push(")"),i.$scope().$queue_temp(_),d;i.$raise("Bad child node in masgn LHS: "+e+". LHS: "+i.$lhs())}return i.$push(", "),i.$push(i.$expr(c))}),-4)}(p[0],f("Base"),p)}(p[0],p)}(_[0],_)},Opal.modules["opal/nodes/arglist"]=function(e){var t=e.module,n=e.klass,r=e.send,i=e.truthy,a=e.to_a,s=e.def,o=e.top,$=[],u=e.nil;return e.add_stubs("require,handle,each,children,==,type,expr,empty?,<<,fragment,push"),o.$require("opal/nodes/base"),function(o,$){var l=[t(o,"Opal")].concat($);return function(o,$){var l=[t(o,"Nodes")].concat($),c=e.$r(l);return function(e,t){var o=n(e,t,"ArglistNode");return o.$handle("arglist"),s(o,"$compile",(function(){var e,t=this,n=u,s=u,o=u;return n=(e=[[],[]])[0],s=e[1],r(t.$children(),"each",[],(function e(t){var r,a,o=null==e.$$s?this:e.$$s;return null==t&&(t=u),r=t.$type()["$=="]("splat"),a=o.$expr(t),i(r)?(i(s["$empty?"]())?i(n["$empty?"]())?n["$<<"](a):n["$<<"](o.$fragment(".concat("))["$<<"](a)["$<<"](o.$fragment(")")):(i(n["$empty?"]())?n["$<<"](o.$fragment("["))["$<<"](s)["$<<"](o.$fragment("]")):n["$<<"](o.$fragment(".concat(["))["$<<"](s)["$<<"](o.$fragment("])")),n["$<<"](o.$fragment(".concat("))["$<<"](a)["$<<"](o.$fragment(")"))),s=[]):(i(s["$empty?"]())||s["$<<"](o.$fragment(", ")),s["$<<"](a))}),{$$s:t}),i(s["$empty?"]())||(o=s,i(n["$empty?"]())?n=o:n["$<<"](t.$fragment(".concat(["))["$<<"](o)["$<<"](t.$fragment("])"))),r(t,"push",a(n))}))}(l[0],c("Base"))}(l[0],l)}($[0],$)},Opal.modules["opal/nodes/x_string"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.def,a=e.send,s=e.to_a,o=e.defs,$=e.lambda,u=e.eqeq,l=e.not,c=e.range,_=[],d=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){var f=[t(_,"Opal")].concat(p);return function(_,p){var f=[t(_,"Nodes")].concat(p),h=e.$r(f);return function(t,_,p){var f=n(t,_,"XStringNode"),h=[f].concat(p),m=e.$r(h),g=f.$$prototype;return g.level=g.should_add_semicolon=g.returning=d,f.$handle("xstr"),i(f,"$compile",(function(){var e=this;return r(e.$compiler()["$backtick_javascript_or_warn?"]())?e.$compile_javascript():e.$compile_send()})),i(f,"$compile_send",(function(){var e,t=this;return e=t.$s("send",d,"`",a(t,"s",["dstr"].concat(s(t.$children())))),t.$push(t.$process(e,t.level))})),i(f,"$compile_javascript",(function(){var e,t,n=this;return n.should_add_semicolon=!1,e=n.$unpack_return(n.$children()),t=m("XStringNode").$strip_empty_children(e),r(m("XStringNode")["$single_line?"](t))?n.$compile_single_line(t):a(e,"each",[],(function e(t){return null==t&&(t=d),(null==e.$$s?this:e.$$s).$compile_child(t)}),{$$s:n}),r(n["$recv?"]())&&n.$wrap("(",")"),r(n.should_add_semicolon)?n.$push(";"):d})),o(f,"$single_line?",(function(e){var t;return r(t=e.$size()["$=="](1))?t:a(e,"none?",[],(function(e){var t;return null==e&&(e=d),r(t=e.$type()["$=="]("str"))?e.$loc().$expression().$source()["$end_with?"]("\n"):t}))})),o(f,"$strip_empty_children",(function(e){var t=d,n=d;for(e=e.$dup(),t=$((function(e){var t,n=d;return null==e&&(e=d),r(t=e["$nil?"]())?t:r(n=e.$type()["$=="]("str"))?e.$loc().$expression().$source().$rstrip()["$empty?"]():n}));r(r(n=e["$any?"]())?t["$[]"](e.$first()):n);)e.$shift();for(;r(r(n=e["$any?"]())?t["$[]"](e.$last()):n);)e.$pop();return e})),f.$private(),i(f,"$compile_child",(function(e){var t=this,n=d;switch(e.$type().valueOf()){case"str":return n=e.$loc().$expression().$source(),r(n["$include?"]("self"))&&t.$scope().$self(),t.$push(m("Fragment").$new(n,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())}})),i(f,"$compile_single_line",(function(e){var t,n=this,i=d,s=d,o=d,$=d,c=d;return i=!1,s=e.$shift(),t=e["$empty?"](),s=r(o=s)?o:n.$s("nil"),u(s.$type(),"str")&&(i=s.$loc().$expression().$source().$strip()["$=~"](/^return\b/)),r(n.returning)&&l(i)&&n.$push("return "),$=r(o=e.$pop())?o:s,u($.$type(),"str")&&(c=n.$extract_last_value($)),r(t)||(n.should_add_semicolon=!1,n.$compile_child(s),a(e,"each",[],(function e(t){return null==t&&(t=d),(null==e.$$s?this:e.$$s).$compile_child(t)}),{$$s:n})),u($.$type(),"str")?n.$push(m("Fragment").$new(c,n.$scope(),$)):n.$compile_child($)})),i(f,"$extract_last_value",(function(e){var t=this,n=d;return n=e.$loc().$expression().$source().$rstrip(),r(n["$include?"]("self"))&&t.$scope().$self(),(r(t.returning)||r(t["$expr?"]()))&&r(n["$end_with?"](";"))&&(t.$compiler().$warning("Removed semicolon ending x-string expression, interpreted as unintentional",e.$line()),n=n["$[]"](c(0,-2,!1))),r(t.returning)&&(t.should_add_semicolon=!0),n})),i(f,"$unpack_return",(function(e){var t=d;return t=e.$first(),this.returning=!1,u(t.$type(),"js_return")&&(this.returning=!0,e=t.$children()),e}))}(f[0],h("Base"),f)}(f[0],f)}(_[0],_)},Opal.modules["opal/nodes/lambda"]=function(e){var t=e.module,n=e.klass,r=e.send,i=e.def,a=e.top,s=[];e.nil;return e.add_stubs("require,handle,children,helper,defines_lambda,scope,push,expr,iter"),a.$require("opal/nodes/call"),function(a,s){var o=[t(a,"Opal")].concat(s);return function(a,s){var o=[t(a,"Nodes")].concat(s),$=e.$r(o);return function(e,t){var a=n(e,t,"LambdaNode");return a.$handle("lambda"),a.$children("iter"),i(a,"$compile",(function(){var e=this;return e.$helper("lambda"),r(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],$("Base"))}(o[0],o)}(s[0],s)},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,n=e.klass,r=e.const_set,i=e.def,a=e.truthy,s=e.send,o=e.range,$=e.eqeq,u=e.to_ary,l=[],c=e.nil;return e.add_stubs("empty?,[],last_token_position,drop_while,lines,match?,!,start_with?,join,==,private,last,end_pos"),function(l,_){var d=[t(l,"Opal")].concat(_);return function(t,l,_){var d=n(t,null,"EofContent"),p=[d].concat(_),f=d.$$prototype;return f.tokens=f.source=c,r(p[0],"DATA_SEPARATOR","__END__\n"),i(d,"$initialize",(function(e,t){return this.tokens=e,this.source=t})),i(d,"$eof",(function(){var t=this,n=c,r=c;return a(t.tokens["$empty?"]())?c:(n=t.source["$[]"](e.Range.$new(t.$last_token_position(),-1,!1)),a(n)?(n=s(n.$lines(),"drop_while",[],(function(e){var t;return null==e&&(e=c),a(t=/^.*\r?\n?$/["$match?"](e))?e["$start_with?"]("__END__")["$!"]():t})),a(/^__END__\r?\n?$/["$match?"](n["$[]"](0)))?(n=a(r=n["$[]"](o(1,-1,!1)))?r:[]).$join():$(n,["__END__"])?"":c):c)})),d.$private(),i(d,"$last_token_position",(function(){var e,t,n;return t=this.tokens.$last(),null==(e=u(t))[0]?c:e[0],n=null==e[1]?c:e[1],null==(e=u(t=n))[0]?c:e[0],(null==e[1]?c:e[1]).$end_pos()}))}(d[0],0,d)}(l[0],l)},Opal.modules["opal/errors"]=function(e){var t=e.module,n=e.klass,r=e.send2,i=e.find_super,a=e.def,s=e.truthy,o=e.defs,$=e.rb_plus,u=e.alias,l=e.send,c=[],_=e.nil,d=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,p){var f=t(c,"Opal"),h=[f].concat(p),m=e.$r(h);return n(h[0],m("StandardError"),"Error"),function(e,t){var s=n(e,t,"GemNotFound");s.$attr_reader("gem_name"),a(s,"$initialize",(function e(t){var n=this;return e.$$p=null,n.gem_name=t,r(n,i(n,"initialize",e,!1,!0),"initialize",["can't find gem "+t],null)}))}(h[0],m("Error")),function(e,t){n(e,t,"CompilationError").$attr_accessor("location")}(h[0],m("Error")),n(h[0],m("CompilationError"),"ParsingError"),n(h[0],m("ParsingError"),"RewritingError"),function(e,t){n(e,t,"SyntaxError").$attr_accessor("location")}(h[0],d("SyntaxError")),o(f,"$opal_location_from_error",(function(e){var t=_;return t=m("OpalBacktraceLocation").$new(),s(e["$respond_to?"]("location"))&&t["$location="](e.$location()),s(e["$respond_to?"]("diagnostic"))&&t["$diagnostic="](e.$diagnostic()),t})),o(f,"$add_opal_location_to_error",(function(e,t){var n=_;return(n=t.$backtrace().$to_a()).$unshift(e.$to_s()),t.$set_backtrace(n),t})),function(e,t){var r=n(e,null,"OpalBacktraceLocation");return r.$attr_accessor("path","lineno","label"),a(r,"$initialize",(function(e,t,n){var r,i=this;return null==e&&(e=_),null==t&&(t=_),null==n&&(n=_),r=[e,t,n],i.path=r[0],i.lineno=r[1],i.label=r[2],r}),-1),a(r,"$to_s",(function(){var e=this,t=_;return t=e.$path(),s(e.$lineno())&&(t=$(t,":"+e.$lineno())),t=$(t,":in "),t=s(e.$label())?$(t,"`"+e.$label()+"'"):$(t,"unknown")})),u(r,"line","lineno"),a(r,"$diagnostic=",(function(e){var t;return s(e)?(t=[e.$location()],l(this,"location=",t),t[t.length-1]):_})),a(r,"$location=",(function(e){var t,n=this;return s(e)?(n["$lineno="](e.$line()),s(e["$respond_to?"]("source_line"))?(t=[e.$source_line()],l(n,"label=",t),t[t.length-1]):s(e["$respond_to?"]("expression"))?(t=[e.$expression().$source_line()],l(n,"label=",t),t[t.length-1]):_):_}))}(h[0])}(c[0],c)},Opal.modules["opal/magic_comments"]=function(e){var t=e.module,n=e.const_set,r=e.truthy,i=e.send,a=e.rb_ge,s=e.eqeqeq,o=e.defs,$=[],u=e.$r($),l=e.nil;return e.add_stubs("freeze,line,loc,take,each,>=,any?,scan,text,[]=,to_sym,==="),function($,u){var c=t($,"MagicComments"),_=[c].concat(u),d=e.$r(_);return n(_[0],"MAGIC_COMMENT_RE",/^# *(\w+) *: *(\S+.*?) *$/.$freeze()),n(_[0],"EMACS_MAGIC_COMMENT_RE",/^# *-\*- *(\w+) *: *(\S+.*?) *-\*- *$/.$freeze()),o(c,"$parse",(function(e,t){var n,o=l;return n=new Map,r(e)&&(o=e.$loc().$line(),t=t.$take(o)),i(t,"each",[],(function(e){var t=l;return null==e&&(e=l),r(o)&&r(a(e.$loc().$line(),o))?l:r((t=e.$text().$scan(d("MAGIC_COMMENT_RE")))["$any?"]())||r((t=e.$text().$scan(d("EMACS_MAGIC_COMMENT_RE")))["$any?"]())?i(t,"each",[],(function(e,t){var r,a;return null==e&&(e=l),null==t&&(t=l),r=[e.$to_sym(),s("true",a=t)||!s("false",a)&&t],i(n,"[]=",r),r[r.length-1]})):l})),n}))}(u("Opal"),$)},Opal.modules["opal/source_map/map"]=function(e){var t=e.module,n=e.truthy,r=e.def,i=e.send,a=e.slice,s=e.to_ary,o=e.top,$=[],u=e.$r($),l=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,$){var u=t(o,"Map"),_=[u].concat($),d=e.$r(_);return r(u,"$to_h",(function(){var e,t=this;return null==t.to_h&&(t.to_h=l),n(e=t.to_h)?e:t.$map()})),r(u,"$to_json",(function(){var t=l;try{return(t=this.$to_h()).$to_json()}catch(n){if(!e.rescue(n,[c(d("Encoding"),"UndefinedConversionError")]))throw n;try{return i(t["$[]"]("sections"),"each",[],(function(n){null==n&&(n=l);try{return n.$to_json()}catch(r){if(!e.rescue(r,[c(d("Encoding"),"UndefinedConversionError")]))throw r;try{return t["$[]"]("sections").$delete(n)}finally{e.pop_exception(r)}}})),t.$to_json()}finally{e.pop_exception(n)}}})),r(u,"$as_json",(function(e){return a(arguments),this.$to_h()}),-1),r(u,"$to_s",(function(){return this.$to_h().$to_s()})),r(u,"$to_data_uri_comment",(function(){return"//# sourceMappingURL=data:application/json;base64,"+d("Base64").$encode64(this.$to_json()).$delete("\n")})),r(u,"$cache",(function(){var e,t=this;return null==t.to_h&&(t.to_h=l),t.to_h=n(e=t.to_h)?e:t.$map(),t})),r(u,"$marshal_dump",(function(){return[this.$to_h(),this.$generated_code()]})),r(u,"$marshal_load",(function(e){var t,n;return t=s(n=e),this.to_h=null==t[0]?l:t[0],this.generated_code=null==t[1]?l:t[1],n}))}(c(u("Opal"),"SourceMap"),$)},Opal.modules["opal/source_map/file"]=function(e){var t=e.klass,n=e.send,r=e.def,i=e.truthy,a=e.ensure_kwargs,s=e.hash_get,o=e.eqeq,$=e.rb_minus,u=e.rb_lt,l=e.to_ary,c=e.rb_plus,_=e.not,d=[],p=e.$r(d),f=e.nil,h=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(d,p,m){var g=t(d,null,"File"),v=[g].concat(m),b=e.$r(v),y=g.$$prototype;return y.generated_code=y.fragments=y.names=y.names_map=y.relative_mappings=y.absolute_mappings=f,g.$include(h(h(b("Opal"),"SourceMap"),"Map")),g.$attr_reader("fragments"),g.$attr_reader("file"),g.$attr_reader("source"),r(g,"$initialize",(function(e,t,r,i){var a=this;return null==i&&(i=f),a.fragments=e,a.file=t,a.source=r,a.names_map=n(b("Hash"),"new",[],(function(e,t){var r;return null==e&&(e=f),null==t&&(t=f),r=[t,e.$size()],n(e,"[]=",r),r[r.length-1]})),a.generated_code=i,a.absolute_mappings=f}),-4),r(g,"$generated_code",(function(){var e,t=this;return t.generated_code=i(e=t.generated_code)?e:n(t.fragments,"map",[],"code".$to_proc()).$join()})),r(g,"$map",(function(e){var t,n=this;return e=a(e),null==(t=s(e,"source_root"))&&(t=""),new Map([["version",3],["sourceRoot",t],["sources",[n.$file()]],["sourcesContent",[o(n.$source().$encoding(),h(b("Encoding"),"UTF_8"))?n.$source():n.$source().$encode("UTF-8",new Map([["undef","replace"]]))]],["names",n.$names()],["mappings",h(h(b("Opal"),"SourceMap"),"VLQ").$encode_mappings(n.$relative_mappings())]])}),-1),r(g,"$names",(function(){var e,t=this;return t.names=i(e=t.names)?e:(t.$absolute_mappings(),n(n(t.names_map.$to_a(),"sort_by",[],(function(e,t){return null==e&&(e=f),null==t&&(t=f),t})),"map",[],(function(e,t){return null==e&&(e=f),null==t&&(t=f),e})))})),r(g,"$segment_from_fragment",(function(e,t){var r,a,s=this,o=f,l=f;return 0,o=$(i(l=e.$line())?l:0,1),i(u(o,0))&&(o=0),a=i(l=e.$column())?l:0,i(e.$source_map_name())?[t,0,o,a,i(l=s.names_map["$[]"](e.$source_map_name().$to_s()))?l:(r=[e.$source_map_name().$to_s(),s.names_map.$size()],n(s.names_map,"[]=",r),r[r.length-1])]:[t,0,o,a]})),r(g,"$relative_mappings",(function(){var e,t=this,r=f,a=f;return t.relative_mappings=i(e=t.relative_mappings)?e:(r=[0,0,0,0,0],a=0,n(t.$absolute_mappings(),"map",[],(function(e){return null==e&&(e=f),r["$[]="](0,0),n(e,"map",[],(function(e){var t=f,n=f;return null==e&&(e=f),(t=[])["$[]="](0,$(e["$[]"](0),r["$[]"](0))),t["$[]="](1,$(e["$[]"](1),i(n=r["$[]"](1))?n:0)),t["$[]="](2,$(e["$[]"](2),i(n=r["$[]"](2))?n:0)),t["$[]="](3,$(e["$[]"](3),i(n=r["$[]"](3))?n:0)),i(e["$[]"](4))&&(t["$[]="](4,$(e["$[]"](4).$to_int(),(i(n=r["$[]"](4))?n:a).$to_int())),a=e["$[]"](4)),r=e,t}))})))})),r(g,"$absolute_mappings",(function(){var e,t=this,r=f;return t.absolute_mappings=i(e=t.absolute_mappings)?e:(r=[],n(t.$fragments_by_line(),"each",[],(function e(t){var a=f,s=f;return null==t&&(t=f),a=0,s=[],n(t,"each",[],(function e(t){var n,r=null==e.$$s?this:e.$$s,o=f,$=f;return null==t&&(t=f),o=null==(n=l(t))[0]?f:n[0],$=null==n[1]?f:n[1],i($["$is_a?"](h(b("Opal"),"Fragment")))&&i($["$skip_source_map?"]())||s["$<<"](r.$segment_from_fragment($,a)),a=c(a,o.$size())}),{$$s:null==e.$$s?this:e.$$s,$$has_top_level_mlhs_arg:!0}),r["$<<"](s)}),{$$s:t}),r)})),g.$private(),r(g,"$fragments_by_line",(function(){var e=f;return e=[[]],n(this.$fragments(),"flat_map",[],(function(t){var r,a=f,s=f;return null==t&&(t=f),a=t.$code(),r=i(/\r/["$match?"](a))?/\r?\n/:"\n",s=a.$split(r,-1),n(s.$each(),"with_index",[],(function(n,r){var a;return null==n&&(n=f),null==r&&(r=f),a=[n,t],i(r["$zero?"]())&&_(n.$size()["$zero?"]())?e.$last()["$<<"](a):i(r["$zero?"]())&&i(n.$size()["$zero?"]())?f:i(n.$size()["$zero?"]())?e["$<<"]([]):e["$<<"]([a])}))})),e}))}(h(p("Opal"),"SourceMap"),0,d)},Opal.modules["opal/source_map/index"]=function(e){var t=e.klass,n=e.ensure_kwargs,r=e.hash_get,i=e.def,a=e.send,s=e.truthy,o=e.rb_plus,$=[],u=e.$r($),l=e.nil,c=e.$$$;return e.add_stubs("include,attr_reader,map,to_h,generated_code,+,count,[],rindex,size"),function($,u,_){var d=t($,null,"Index"),p=[d].concat(_),f=e.$r(p);return d.$$prototype.source_maps=l,d.$include(c(c(f("Opal"),"SourceMap"),"Map")),d.$attr_reader("source_maps"),i(d,"$initialize",(function(e,t){var i;return t=n(t),null==(i=r(t,"join"))&&(i=l),this.source_maps=e,this.join=i}),-2),i(d,"$map",(function(){var t=l,n=l;return t=0,n=0,new Map([["version",3],["sections",a(this.source_maps,"map",[],(function r(i){var a,$,u=null==r.$$s?this:r.$$s,c=l,_=l;return null==u.join&&(u.join=l),null==i&&(i=l),a=new Map([["offset",new Map([["line",t],["column",n]])],["map",i.$to_h()]]),c=i.$generated_code(),s(u.join)&&(c=o(c,u.join)),$=c.$count("\n"),_=c["$[]"](e.Range.$new(o(c.$rindex("\n"),1),-1,!1)),t=o(t,$),n=o(n,_.$size()),a}),{$$s:this})]])}))}(c(u("Opal"),"SourceMap"),0,$)},Opal.modules["opal/source_map/vlq"]=function(e){var t=e.module,n=e.const_set,r=e.rb_minus,i=e.send,a=e.range,s=e.truthy,o=e.rb_lt,$=e.rb_plus,u=e.rb_gt,l=e.thrower,c=e.defs,_=e.eqeq,d=[],p=e.$r(d),f=e.nil,h=e.$$$;return e.add_stubs("<<,-,split,inject,[]=,[],each,<,+,-@,loop,&,>>,>,|,join,any?,shift,raise,==,map,encode,each_with_index,decode"),function(d,p){var h=t(d,"VLQ"),m=[h].concat(p),g=e.$r(m);return n(m[0],"VLQ_BASE_SHIFT",5),n(m[0],"VLQ_BASE",1["$<<"](g("VLQ_BASE_SHIFT"))),n(m[0],"VLQ_BASE_MASK",r(g("VLQ_BASE"),1)),n(m[0],"VLQ_CONTINUATION_BIT",g("VLQ_BASE")),n(m[0],"BASE64_DIGITS","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".$split("")),n(m[0],"BASE64_VALUES",i(a(0,64,!0),"inject",[new Map],(function(e,t){return null==e&&(e=f),null==t&&(t=f),e["$[]="](g("BASE64_DIGITS")["$[]"](t),t),e}))),c(h,"$encode",(function(e){var t=f;return t=[],i(e,"each",[],(function e(n){var r=null==e.$$s?this:e.$$s,a=f;return null==n&&(n=f),a=s(o(n,0))?$(n["$-@"]()["$<<"](1),1):n["$<<"](1),function(){try{var e=l("break");return i(r,"loop",[],(function n(){var r=f;if(r=a["$&"](g("VLQ_BASE_MASK")),a=a["$>>"](g("VLQ_BASE_SHIFT")),s(u(a,0))&&(r=r["$|"](g("VLQ_CONTINUATION_BIT"))),t["$<<"](g("BASE64_DIGITS")["$[]"](r)),s(u(a,0)))return f;e.$throw(f,n.$$is_lambda)}))}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()}),{$$s:this}),t.$join()})),c(h,"$decode",(function(e){var t=f,n=f,r=f,i=f,a=f,o=f,u=f;for(t=[],n=e.$split("");s(n["$any?"]());){for(r=0,i=0,a=!0;s(a);)o=n.$shift(),s(o)||this.$raise(g("ArgumentError")),u=g("BASE64_VALUES")["$[]"](o),_(u["$&"](g("VLQ_CONTINUATION_BIT")),0)&&(a=!1),u=u["$&"](g("VLQ_BASE_MASK")),r=$(r,u["$<<"](i)),i=$(i,g("VLQ_BASE_SHIFT"));t["$<<"](_(r["$&"](1),1)?r["$>>"](1)["$-@"]():r["$>>"](1))}return t})),c(h,"$encode_mappings",(function(e){return i(e,"map",[],(function e(t){return null==t&&(t=f),i(t,"map",[],(function e(t){return null==t&&(t=f),(null==e.$$s?this:e.$$s).$encode(t)}),{$$s:null==e.$$s?this:e.$$s}).$join(",")}),{$$s:this}).$join(";")})),c(h,"$decode_mappings",(function(e){var t=f;return t=[],i(e.$split(";"),"each_with_index",[],(function e(n,r){var a=null==e.$$s?this:e.$$s;return null==n&&(n=f),null==r&&(r=f),t["$[]="](r,[]),i(n.$split(","),"each",[],(function e(n){var i=null==e.$$s?this:e.$$s;return null==n&&(n=f),t["$[]"](r)["$<<"](i.$decode(n))}),{$$s:a})}),{$$s:this}),t}))}(h(p("Opal"),"SourceMap"),d)},Opal.modules["opal/source_map"]=function(e){var t,n=e.module,r=[];e.nil;return e.add_stubs("autoload"),t=r,function(e){var t=n(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")}([n(r[0],"Opal")].concat(t)[0])},Opal.modules["opal/compiler"]=function(e){var t=e.module,n=e.defs,r=e.klass,i=e.const_set,a=e.send,s=e.truthy,o=e.not,$=e.def,u=e.eqeqeq,l=e.Opal,c=e.to_ary,_=e.alias,d=e.regexp,p=e.rb_minus,f=e.return_ivar,h=e.slice,m=e.rb_plus,g=e.to_a,v=e.eqeq,b=e.top,y=[],w=e.nil,x=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"),b.$require("corelib/string/unpack"),b.$require("set"),b.$require("opal/parser"),b.$require("opal/fragment"),b.$require("opal/nodes"),b.$require("opal/eof_content"),b.$require("opal/errors"),b.$require("opal/magic_comments"),b.$require("opal/nodes/closure"),b.$require("opal/source_map"),function(b,y){var k=t(b,"Opal"),G=[k].concat(y),E=e.$r(G);return n(k,"$compile",(function(e,t){return null==t&&(t=new Map),E("Compiler").$new(e,t).$compile()}),-2),function(t,b,y){var k=r(t,null,"Compiler"),G=[k].concat(y),E=e.$r(G),S=k.$$prototype;return S.option_values=S.options=S.magic_comments=S.backtick_javascript_warned=S.fragments=S.buffer=S.source=S.source_map=S.result=S.helpers=S.method_calls=S.async_await=S.unique=S.indent=S.scope=S.case_stmt=S.handlers=S.requires=S.required_trees=S.autoloads=w,k.$include(x(x(E("Nodes"),"Closure"),"CompilerSupport")),i(G[0],"INDENT"," "),i(G[0],"COMPARE",["<",">","<=",">="].$freeze()),n(k,"$module_name",(function(e){return e=E("File").$join(E("File").$dirname(e),E("File").$basename(e).$split(".").$first()),this.$Pathname(e).$cleanpath().$to_s()})),n(k,"$compiler_option",(function(e,t){var n;return null==t&&(t=new Map),n=t.$fetch("as",e),a(this,"define_method",[n],(function n(){return(null==n.$$s?this:n.$$s).$option_value(e,t)}),{$$s:this})}),-2),$(k,"$option_value",(function(e,t){var n,r,i,$=this,u=w,l=w;return s($.option_values["$key?"](e))?$.option_values["$[]"](e):(r=t["$[]"]("default"),u=t["$[]"]("valid_values"),i=t["$[]"]("magic_comment"),l=$.options.$fetch(e,r),s(i)&&s($.magic_comments["$key?"](e))&&(l=$.magic_comments.$fetch(e)),s(u)&&o(u["$include?"](l))&&$.$raise(E("ArgumentError"),"invalid value "+l.$inspect()+" for option "+e.$inspect()+" (valid values: "+u.$inspect()+")"),n=[e,l],a($.option_values,"[]=",n),n[n.length-1])})),k.$compiler_option("file",new Map([["default","(file)"]])),k.$compiler_option("method_missing",new Map([["default",!0],["as","method_missing?"]])),k.$compiler_option("arity_check",new Map([["default",!1],["as","arity_check?"]])),k.$compiler_option("freezing",new Map([["default",!0],["as","freezing?"]])),k.$compiler_option("irb",new Map([["default",!1],["as","irb?"]])),k.$compiler_option("dynamic_require_severity",new Map([["default","ignore"],["valid_values",["error","warning","ignore"]]])),k.$compiler_option("requirable",new Map([["default",!1],["as","requirable?"]])),k.$compiler_option("load",new Map([["default",!1],["as","load?"]])),k.$compiler_option("esm",new Map([["default",!1],["as","esm?"]])),k.$compiler_option("no_export",new Map([["default",!1],["as","no_export?"]])),k.$compiler_option("inline_operators",new Map([["default",!0],["as","inline_operators?"]])),k.$compiler_option("eval",new Map([["default",!1],["as","eval?"]])),k.$compiler_option("enable_source_location",new Map([["default",!1],["as","enable_source_location?"]])),k.$compiler_option("enable_file_source_embed",new Map([["default",!1],["as","enable_file_source_embed?"]])),k.$compiler_option("use_strict",new Map([["default",!1],["as","use_strict?"],["magic_comment",!0]])),k.$compiler_option("parse_comments",new Map([["default",!1],["as","parse_comments?"]])),k.$compiler_option("backtick_javascript",new Map([["default",w],["as","backtick_javascript?"],["magic_comment",!0]])),$(k,"$backtick_javascript_or_warn?",(function(){var e,t=this,n=w;return!!u(!0,e=t["$backtick_javascript?"]())||(u(w,e)?(t.backtick_javascript_warned=s(n=t.backtick_javascript_warned)?n:(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):!u(!1,e)&&w)})),k.$compiler_option("scope_variables",new Map([["default",[]]])),k.$compiler_option("await",new Map([["default",!1],["as","async_await"],["magic_comment",!0]])),k.$attr_reader("result"),k.$attr_reader("fragments"),k.$attr_accessor("scope"),k.$attr_accessor("top_scope"),k.$attr_reader("case_stmt"),k.$attr_reader("eof_content"),k.$attr_reader("comments"),k.$attr_reader("method_calls"),k.$attr_reader("magic_comments"),k.$attr_reader("source"),k.$attr_accessor("dynamic_cache_result"),$(k,"$initialize",(function(e,t){var n=this;return null==t&&(t=new Map),n.source=e,n.indent="",n.unique=0,n.options=t,n.comments=E("Hash").$new([]),n.case_stmt=w,n.method_calls=E("Set").$new(),n.option_values=new Map,n.magic_comments=new Map,n.dynamic_cache_result=!1}),-2),$(k,"$compile",(function(){var e=this;return e.$parse(),e.fragments=a(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}),s(e.fragments.$last().$code()["$end_with?"]("\n"))||e.fragments["$<<"](e.$fragment("\n",w,e.$s("newline"))),e.result=a(e.fragments,"map",[],"code".$to_proc()).$join("")})),$(k,"$parse",(function(){var e,t,n,r,i,o=this,$=w,u=w;return o.buffer=x(x(l,"Parser"),"SourceBuffer").$new(o.$file(),1),o.buffer["$source="](o.source),o.parser=x(E("Opal"),"Parser").$default_parser(),t=a(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}),$=null==(e=c(t))[0]?w:e[0],n=null==e[1]?w:e[1],r=null==e[2]?w:e[2],i=s(o["$requirable?"]())?"require":s(o["$eval?"]())?"eval":"main",o.sexp=a($,"tap",[],(function(e){var t;return null==e&&(e=w),t=["kind",i],a(e.$meta(),"[]=",t),t[t.length-1]})),s($.$children().$first().$location())&&(u=$.$children().$first()),o.comments=x(x(x("Parser"),"Source"),"Comment").$associate_locations(u,n),o.magic_comments=E("MagicComments").$parse(u,n),o.eof_content=E("EofContent").$new(r,o.source).$eof()})),$(k,"$source_map",(function(){var e,t=this;return s(e=t.source_map)?e:x(x(l,"SourceMap"),"File").$new(t.fragments,t.$file(),t.source,t.result)})),$(k,"$helpers",(function(){var e,t=this;return t.helpers=s(e=t.helpers)?e:E("Set").$new(a(t.$magic_comments()["$[]"]("helpers").$to_s().$split(","),"map",[],(function(e){return null==e&&(e=w),e.$strip().$to_sym()})))})),$(k,"$record_method_call",(function(e){return this.method_calls["$<<"](e)})),_(k,"async_await_before_typecasting","async_await"),$(k,"$async_await",(function(){var e,t=this,n=w,r=w;return s(null!=(e=t.async_await)&&e!==w?"instance-variable":w)?t.async_await:(n=t.$async_await_before_typecasting(),t.async_await=u(E("String"),r=n)?t.$async_await_set_to_regexp(a(n.$split(","),"map",[],(function(e){return null==e&&(e=w),e.$strip().$to_sym()}))):u(E("Array"),r)||u(E("Set"),r)?t.$async_await_set_to_regexp(a(n.$to_a(),"map",[],"to_sym".$to_proc())):u(E("Regexp"),r)||u(!0,r)||u(!1,r)?n:t.$raise("A value of await compiler option can be either a Set, an Array, a String or a Boolean."))})),$(k,"$async_await_set_to_regexp",(function(e){return e=(e=a(e,"map",[],(function(e){return null==e&&(e=w),E("Regexp").$escape(e.$to_s()).$gsub("\\*",".*?")}))).$join("|"),d(["^(",e,")$"])})),$(k,"$error",(function(e,t){var n=w;return null==t&&(t=w),(n=x(l,"SyntaxError").$new(e))["$location="](x(E("Opal"),"OpalBacktraceLocation").$new(this.$file(),t)),this.$raise(n)}),-2),$(k,"$re_raise_with_location",(function t(){var n=t.$$p||w,r=this,i=w,a=w,o=w;t.$$p=null;try{return e.yieldX(n,[])}catch(t){if(!e.rescue(t,[E("StandardError"),x(l,"SyntaxError")]))throw t;i=t;try{return(a=l.$opal_location_from_error(i))["$path="](r.$file()),s(a.$label())||a["$label="](r.source.$lines()["$[]"](p(a.$line().$to_i(),1)).$strip()),(o=x(l,"SyntaxError").$new(i.$message())).$set_backtrace(i.$backtrace()),l.$add_opal_location_to_error(a,o),r.$raise(o)}finally{e.pop_exception(t)}}})),$(k,"$warning",(function(e,t){return null==t&&(t=w),this.$warn("warning: "+e+" -- "+this.$file()+":"+t)}),-2),$(k,"$parser_indent",f("indent")),$(k,"$s",(function(e,t){var n;return n=h(arguments,1),x(x(l,"AST"),"Node").$new(e,n)}),-2),$(k,"$fragment",(function(e,t,n){return null==n&&(n=w),E("Fragment").$new(e,t,n)}),-3),$(k,"$unique_temp",(function(e){var t;return e=e.$to_s(),s(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(/[^\w\$]/,"$")),t=this.unique=m(this.unique,1),""+(s(e["$start_with?"]("$"))?w:"$")+e+"$"+t})),$(k,"$helper",(function(e){return this.$helpers()["$<<"](e)})),$(k,"$indent",(function t(){var n,r,i=t.$$p||w,a=this;return t.$$p=null,n=a.indent,a.indent=m(a.indent,E("INDENT")),a.space="\n"+a.indent,r=e.yieldX(i,[]),a.indent=n,a.space="\n"+a.indent,r})),$(k,"$with_temp",(function t(){var n,r,i=t.$$p||w;return t.$$p=null,n=this.scope.$new_temp(),r=e.yield1(i,n),this.scope.$queue_temp(n),r})),$(k,"$in_while",(function t(){var n,r=t.$$p||w,i=this;return t.$$p=null,r===w?w:(i.while_loop=i.scope.$push_while(),n=e.yieldX(r,[]),i.scope.$pop_while(),n)})),$(k,"$in_case",(function t(){var n,r=t.$$p||w,i=this;return t.$$p=null,r===w?w:(n=i.case_stmt,i.case_stmt=new Map,e.yieldX(r,[]),i.case_stmt=n)})),$(k,"$in_while?",(function(){return this.scope["$in_while?"]()})),$(k,"$process",(function(e,t){var n=this,r=w;return null==t&&(t="expr"),s(e["$nil?"]())?n.$fragment("",n.$scope()):s(r=n.$handlers()["$[]"](e.$type()))?r.$new(e,t,n).$compile_to_fragments():n.$error("Unsupported sexp: "+e.$type())}),-2),$(k,"$handlers",(function(){var e;return this.handlers=s(e=this.handlers)?e:x(x(E("Opal"),"Nodes"),"Base").$handlers()})),$(k,"$requires",(function(){var e;return this.requires=s(e=this.requires)?e:[]})),$(k,"$required_trees",(function(){var e;return this.required_trees=s(e=this.required_trees)?e:[]})),$(k,"$autoloads",(function(){var e;return this.autoloads=s(e=this.autoloads)?e:[]})),$(k,"$returns",(function(e){var t,n,r=this,i=w,o=w,$=w,u=w,l=w,c=w,_=w,d=w,p=w,f=w,m=w,b=w,y=w,x=w,k=w;if(!s(e))return r.$returns(r.$s("nil"));switch(e.$type().valueOf()){case"undef":return r.$returns(e.$updated("begin",[e,r.$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 n=(t=[].concat(g(e))).length-1,i=h(t,0,n=n<0?0:n),o=null==t[n]?w:t[n],e.$updated(w,[].concat(g(i)).concat([r.$returns(o)]));case"rescue":return $=null==(t=[].concat(g(e)))[0]?w:t[0],n=t.length-1,u=h(t,1,n=n<1?1:n),l=null==t[n]?w:t[n],u=a(u,"map",[],(function e(t){return null==t&&(t=w),(null==e.$$s?this:e.$$s).$returns(t)}),{$$s:r}),s(l)&&(l=r.$returns(l)),e.$updated(w,[r.$returns($)].concat(g(u)).concat([l]));case"resbody":return c=null==(t=[].concat(g(e)))[0]?w:t[0],_=null==t[1]?w:t[1],d=null==t[2]?w:t[2],e.$updated(w,[c,_,r.$returns(d)]);case"ensure":return p=null==(t=[].concat(g(e)))[0]?w:t[0],f=null==t[1]?w:t[1],(e=e.$updated(w,[r.$returns(p),f])).$updated("js_return",[e]);case"begin":case"kwbegin":return n=(t=[].concat(g(e))).length-1,m=h(t,0,n=n<0?0:n),b=null==t[n]?w:t[n],e.$updated(w,[].concat(g(m)).concat([r.$returns(b)]));case"xstr":return s(r["$backtick_javascript_or_warn?"]())?e.$updated(w,[a(r,"s",["js_return"].concat(g(e.$children())))]):e;case"if":return y=null==(t=[].concat(g(e)))[0]?w:t[0],x=null==t[1]?w:t[1],k=null==t[2]?w:t[2],a(e.$updated(w,[y,r.$returns(x),r.$returns(k)]),"tap",[],(function(e){var t;return null==e&&(e=w),t=["returning",!0],a(e.$meta(),"[]=",t),t[t.length-1]}));default:return v(e.$type(),"send")&&v(e.$children()["$[]"](1),"debugger")?e.$updated("begin",[e,r.$s("js_return",r.$s("nil"))]):e.$updated("js_return",[e])}})),$(k,"$handle_block_given_call",(function(e){var t=this,n=w;return t.scope["$uses_block!"](),s(t.scope.$block_name())?t.$fragment("("+t.scope.$block_name()+" !== nil)",t.$scope(),e):s(n=t.scope.$find_parent_def())&&s(n.$block_name())?t.$fragment("("+n.$block_name()+" !== nil)",n,e):t.$fragment("false",n,e)})),$(k,"$marshal_dump",(function(){var e,t=this;return[t.options,t.option_values,t.source_map=s(e=t.source_map)?e:t.$source_map().$cache(),t.magic_comments,t.result,t.required_trees,t.requires,t.autoloads]})),$(k,"$marshal_load",(function(e){var t,n,r=this;return t=c(n=e),r.options=null==t[0]?w:t[0],r.option_values=null==t[1]?w:t[1],r.source_map=null==t[2]?w:t[2],r.magic_comments=null==t[3]?w:t[3],r.result=null==t[4]?w:t[4],r.required_trees=null==t[5]?w:t[5],r.requires=null==t[6]?w:t[6],r.autoloads=null==t[7]?w:t[7],n}))}(G[0],0,G)}(y[0],y)},Opal.modules["opal/erb"]=function(e){var t=e.module,n=e.defs,r=e.klass,i=e.const_set,a=e.def,s=e.truthy,o=e.rb_plus,$=e.send,u=e.regexp,l=e.top,c=[],_=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"),l.$require("opal/compiler"),function(l,c){var d=[t(l,"Opal")].concat(c);return function(l,c){var d=t(l,"ERB"),p=[d].concat(c),f=e.$r(p);return n(d,"$compile",(function(e,t){return null==t&&(t="(erb)"),f("Compiler").$new(e,t).$compile()}),-2),function(t,n,l){var c=r(t,null,"Compiler"),d=[c].concat(l),p=e.$r(d),f=c.$$prototype;return f.prepared_source=f.source=f.file_name=_,i(d[0],"BLOCK_EXPR",/\s+(do|\{)(\s*\|[^|]*\|)?\s*\Z/.$freeze()),a(c,"$initialize",(function(e,t){var n,r=this;return null==t&&(t="(erb)"),n=[e,t,e],r.source=n[0],r.file_name=n[1],r.result=n[2],n}),-2),a(c,"$prepared_source",(function(){var e,t=this,n=_;return t.prepared_source=s(e=t.prepared_source)?e:(n=t.source,n=t.$fix_quotes(n),n=t.$find_contents(n),n=t.$find_code(n),n=t.$wrap_compiled(n),n=t.$require_erb(n))})),a(c,"$compile",(function(){return p("Opal").$compile(this.$prepared_source())})),a(c,"$fix_quotes",(function(e){return e.$gsub('"','\\"')})),a(c,"$require_erb",(function(e){return o('require "erb";',e)})),a(c,"$find_contents",(function(e){return $(e,"gsub",[/<%=([\s\S]+?)%>/],(function(){var e=_;return e=p("Regexp").$last_match(1).$gsub(/\\'/,"'").$gsub(/\\"/,'"'),s(e["$=~"](p("BLOCK_EXPR")))?'")\noutput_buffer.append= '+e+'\noutput_buffer.append("':'")\noutput_buffer.append=('+e+')\noutput_buffer.append("'}))})),a(c,"$find_code",(function(e){return $(e,"gsub",[/<%([\s\S]+?)%>/],(function(){return'")\n'+p("Regexp").$last_match(1).$gsub(/\\"/,'"')+'\noutput_buffer.append("'}))})),a(c,"$wrap_compiled",(function(e){return"Template.new('"+this.file_name.$sub(u(["\\.opalerb",p("REGEXP_END")]),"")+"') do |output_buffer|\noutput_buffer.append(\""+e+'")\noutput_buffer.join\nend\n'}))}(p[0],0,p)}(d[0],d)}(c[0],c)},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"),n=0,r=t.length;n<r;n++)"text/ruby"===(e=t[n]).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 n=Opal.SyntaxError.$new(e.message);throw n.$set_backtrace(e.$backtrace()),n}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.modules["opal-platform"]=function(e){var t,n,r,i,a,s,o,$,u,l=e.const_set,c=e.truthy,_=e.nil;return"undefined"!=typeof document,t="object"==typeof Deno&&"object"==typeof Deno.version,n="undefined"!=typeof process&&process.versions&&process.versions.node,r="undefined"!=typeof Java&&Java.type,i="undefined"!=typeof opalheadlesschrome,a="undefined"!=typeof opalheadlessfirefox,s="undefined"!=typeof opalsafari,o="undefined"!=typeof window&&"undefined"!=typeof GjsFileImporter,$="undefined"==typeof window&&"undefined"!=typeof __loadScript,u="undefined"!=typeof opalminiracer,l([][0],"OPAL_PLATFORM",c(r)?"nashorn":c(t)?"deno":c(n)?"nodejs":c(i)?"headless-chrome":c(a)?"headless-firefox":c(s)?"safari":c(o)?"gjs":c($)?"quickjs":c(u)?"opal-miniracer":_)},Opal.modules.thread=function(e){var t=e.klass,n=e.truthy,r=e.defs,i=e.slice,a=e.def,s=e.send,o=e.Opal,$=e.alias,u=e.return_ivar,l=e.const_set,c=e.assign_ivar_val,_=[],d=e.$r(_),p=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(_[0],d("StandardError"),"ThreadError"),function(l,c,_){var d=t(l,null,"Thread"),f=[d].concat(_),h=e.$r(f),m=d.$$prototype;m.fiber_locals=m.thread_locals=p,r(d,"$current",(function(){var e=this;return null==e.current&&(e.current=p),n(e.current)||(e.current=e.$allocate(),e.current["$core_initialize!"]()),e.current})),r(d,"$list",(function(){return[this.$current()]})),a(d,"$initialize",(function(e){return i(arguments),this.$raise(h("NotImplementedError"),"Thread creation not available")}),-1),a(d,"$[]",(function(e){return this.fiber_locals["$[]"](this.$coerce_key_name(e))})),a(d,"$[]=",(function(e,t){var n;return n=[this.$coerce_key_name(e),t],s(this.fiber_locals,"[]=",n),n[n.length-1]})),a(d,"$key?",(function(e){return this.fiber_locals["$key?"](this.$coerce_key_name(e))})),a(d,"$keys",(function(){return this.fiber_locals.$keys()})),a(d,"$thread_variable_get",(function(e){return this.thread_locals["$[]"](this.$coerce_key_name(e))})),a(d,"$thread_variable_set",(function(e,t){var n;return n=[this.$coerce_key_name(e),t],s(this.thread_locals,"[]=",n),n[n.length-1]})),a(d,"$thread_variable?",(function(e){return this.thread_locals["$key?"](this.$coerce_key_name(e))})),a(d,"$thread_variables",(function(){return this.thread_locals.$keys()})),d.$private(),a(d,"$core_initialize!",(function(){return this.thread_locals=new Map,this.fiber_locals=new Map})),a(d,"$coerce_key_name",(function(e){return o["$coerce_to!"](e,h("String"),"to_s")})),function(r,i,o){var u=t(r,null,"Queue"),l=[u].concat(o),c=e.$r(l);u.$$prototype.storage=p,a(u,"$initialize",(function(){return this.$clear()})),a(u,"$clear",(function(){return this.storage=[]})),a(u,"$empty?",(function(){return this.storage["$empty?"]()})),a(u,"$size",(function(){return this.storage.$size()})),a(u,"$pop",(function(e){var t=this;return null==e&&(e=!1),n(t["$empty?"]())&&(n(e)&&t.$raise(c("ThreadError"),"Queue empty"),t.$raise(c("ThreadError"),"Deadlock")),t.storage.$shift()}),-1),a(u,"$push",(function(e){return this.storage.$push(e)})),a(u,"$each",(function e(){var t=e.$$p||p;return e.$$p=null,s(this.storage,"each",[],t.$to_proc())})),$(u,"<<","push"),$(u,"deq","pop"),$(u,"enq","push"),$(u,"length","size"),$(u,"shift","pop")}(f[0],0,f),function(r,i,s){var o=[t(r,null,"Backtrace")].concat(s);(function(r,i,s){var o=t(r,null,"Location"),l=[o].concat(s),c=e.$r(l),_=o.$$prototype;_.label=_.str=p,a(o,"$initialize",(function(e){var t,r=this;return r.str=e,e["$=~"](/^(.*?):(\d+):(\d+):in `(.*?)'$/),r.path=c("Regexp").$last_match(1),r.label=c("Regexp").$last_match(4),r.lineno=c("Regexp").$last_match(2).$to_i(),r.label["$=~"](/(\w+)$/),r.base_label=n(t=c("Regexp").$last_match(1))?t:r.label})),a(o,"$to_s",u("str")),a(o,"$inspect",(function(){return this.str.$inspect()})),o.$attr_reader("base_label","label","lineno","path"),$(o,"absolute_path","path")})(o[0],0,o)}(f[0],0,f)}(_[0],0,_),l(_[0],"Queue",f(d("Thread"),"Queue")),function(r,i,s){var o=t(r,null,"Mutex"),$=[o].concat(s),l=e.$r($);return o.$$prototype.locked=p,a(o,"$initialize",c("locked",!1)),a(o,"$lock",(function(){var e=this;return n(e.locked)&&e.$raise(l("ThreadError"),"Deadlock"),e.locked=!0,e})),a(o,"$locked?",u("locked")),a(o,"$owned?",u("locked")),a(o,"$try_lock",(function(){return!n(this["$locked?"]())&&(this.$lock(),!0)})),a(o,"$unlock",(function(){var e=this;return n(e.locked)||e.$raise(l("ThreadError"),"Mutex not locked"),e.locked=!1,e})),a(o,"$synchronize",(function t(){var n=t.$$p||p,r=this;return t.$$p=null,r.$lock(),function(){try{return e.yieldX(n,[])}finally{r.$unlock()}}()}))}(_[0],0,_)},Opal.modules.stringio=function(e){var t=e.klass,n=e.const_set,r=e.defs,i=e.send2,a=e.find_super,s=e.def,o=e.eqeqeq,$=e.truthy,u=e.rb_ge,l=e.rb_gt,c=e.rb_plus,_=e.rb_minus,d=e.return_ivar,p=e.eqeq,f=e.alias,h=[],m=e.$r(h),g=e.nil,v=e.$$$;return e.add_stubs("new,call,close,attr_accessor,check_readable,==,length,===,>=,raise,>,+,-,seek,check_writable,String,[],eof?,write,read,tell"),function(h,m,b){var y=t(h,m,"StringIO"),w=[y].concat(b),x=e.$r(w),k=y.$$prototype;return k.position=k.string=g,n(w[0],"VERSION","0"),r(y,"$open",(function e(t,n){var r,i=e.$$p||g,a=g;return e.$$p=null,null==t&&(t=""),null==n&&(n=g),a=this.$new(t,n),r=i.$call(a),a.$close(),r}),-1),y.$attr_accessor("string"),s(y,"$initialize",(function e(t,n){var r=this;return e.$$p=null,null==t&&(t=""),null==n&&(n="rw"),r.string=t,r.position=0,i(r,a(r,"initialize",e,!1,!0),"initialize",[g,n],null)}),-1),s(y,"$eof?",(function(){var e=this;return e.$check_readable(),e.position["$=="](e.string.$length())})),s(y,"$seek",(function(e,t){var n,r=this;return null==t&&(t=v(x("IO"),"SEEK_SET")),r.read_buffer="",o(v(x("IO"),"SEEK_SET"),n=t)?($(u(e,0))||r.$raise(v(x("Errno"),"EINVAL")),r.position=e):o(v(x("IO"),"SEEK_CUR"),n)?$(l(c(r.position,e),r.string.$length()))?r.position=r.string.$length():r.position=c(r.position,e):o(v(x("IO"),"SEEK_END"),n)&&($(l(e,r.string.$length()))?r.position=0:r.position=_(r.position,e)),0}),-2),s(y,"$tell",d("position")),s(y,"$rewind",(function(){return this.$seek(0)})),s(y,"$write",(function(t){var n=this,r=g,i=g;return n.$check_writable(),n.read_buffer="",t=n.$String(t),p(n.string.$length(),n.position)?(n.string=c(n.string,t),n.position=c(n.position,t.$length())):(r=n.string["$[]"](e.Range.$new(0,_(n.position,1),!1)),i=n.string["$[]"](e.Range.$new(c(n.position,t.$length()),-1,!1)),n.string=c(c(r,t),i),n.position=c(n.position,t.$length()))})),s(y,"$read",(function(t,n){var r,i=this,a=g;return null==t&&(t=g),null==n&&(n=g),i.$check_readable(),$(i["$eof?"]())?g:(r=$(t)?(a=i.string["$[]"](i.position,t),i.position=c(i.position,t),$(l(i.position,i.string.$length()))&&(i.position=i.string.$length()),a):(a=i.string["$[]"](e.Range.$new(i.position,-1,!1)),i.position=i.string.$length(),a),$(n)?n.$write(r):r)}),-1),s(y,"$sysread",(function(e){return this.$check_readable(),this.$read(e)})),f(y,"eof","eof?"),f(y,"pos","tell"),f(y,"pos=","seek"),f(y,"readpartial","read")}(h[0],m("IO"),h)},Opal.modules.prettyprint=function(e){var t=e.klass,n=e.send,r=e.rb_times,i=e.defs,a=e.truthy,s=e.def,o=e.rb_lt,$=e.rb_plus,u=e.rb_minus,l=e.eqeqeq,c=e.assign_ivar_val,_=e.return_ivar,d=e.slice,p=e.thrower,f=e.return_val,h=[],m=e.nil;return e.add_stubs("dup,lambda,*,new,to_proc,flush,attr_reader,last,<,+,deq,empty?,breakables,shift,output,-,width,!,===,first,length,<<,add,break_outmost_groups,group,breakable,break?,call,text,group_sub,nest,depth,push,enq,pop,delete,each,clear,indent,current_group,newline,genspace,group_queue,[],downto,slice!,break,[]="),function(h,g,v){var b=t(h,null,"PrettyPrint"),y=[b].concat(v),w=e.$r(y),x=b.$$prototype;return x.group_stack=x.maxwidth=x.output_width=x.buffer_width=x.group_queue=x.buffer=x.output=x.newline=x.genspace=x.indent=m,i(w("PrettyPrint"),"$format",(function t(i,a,s,o){var $=t.$$p||m,u=m;return t.$$p=null,null==i&&(i="".$dup()),null==a&&(a=79),null==s&&(s="\n"),null==o&&(o=n(this,"lambda",[],(function(e){return null==e&&(e=m),r(" ",e)}))),u=n(w("PrettyPrint"),"new",[i,a,s],o.$to_proc()),e.yield1($,u),u.$flush(),i}),-1),i(w("PrettyPrint"),"$singleline_format",(function t(n,r,i,a){var s,o=t.$$p||m;return t.$$p=null,null==n&&(n="".$dup()),null==r&&(r=m),null==i&&(i=m),null==a&&(a=m),s=w("SingleLine").$new(n),e.yield1(o,s),n}),-1),s(b,"$initialize",(function e(t,i,s){var o,$,u=e.$$p||m,l=this;return e.$$p=null,null==t&&(t="".$dup()),null==i&&(i=79),null==s&&(s="\n"),l.output=t,l.maxwidth=i,l.newline=s,l.genspace=a(o=u)?o:n(l,"lambda",[],(function(e){return null==e&&(e=m),r(" ",e)})),l.output_width=0,l.buffer_width=0,l.buffer=[],$=w("Group").$new(0),l.group_stack=[$],l.group_queue=w("GroupQueue").$new($),l.indent=0}),-1),b.$attr_reader("output"),b.$attr_reader("maxwidth"),b.$attr_reader("newline"),b.$attr_reader("genspace"),b.$attr_reader("indent"),b.$attr_reader("group_queue"),s(b,"$current_group",(function(){return this.group_stack.$last()})),s(b,"$break_outmost_groups",(function(){for(var e=this,t=m,n=m,r=m,i=m;a(o(e.maxwidth,$(e.output_width,e.buffer_width)));){if(!a(t=e.group_queue.$deq()))return m;for(;!a(t.$breakables()["$empty?"]());)n=e.buffer.$shift(),e.output_width=n.$output(e.output,e.output_width),e.buffer_width=u(e.buffer_width,n.$width());for(;a(a(r=e.buffer["$empty?"]()["$!"]())?w("Text")["$==="](e.buffer.$first()):r);)i=e.buffer.$shift(),e.output_width=i.$output(e.output,e.output_width),e.buffer_width=u(e.buffer_width,i.$width())}})),s(b,"$text",(function(e,t){var n=this,r=m;return null==t&&(t=e.$length()),a(n.buffer["$empty?"]())?(n.output["$<<"](e),n.output_width=$(n.output_width,t)):(r=n.buffer.$last(),l(w("Text"),r)||(r=w("Text").$new(),n.buffer["$<<"](r)),r.$add(e,t),n.buffer_width=$(n.buffer_width,t),n.$break_outmost_groups())}),-2),s(b,"$fill_breakable",(function(e,t){return null==e&&(e=" "),null==t&&(t=e.$length()),n(this,"group",[],(function n(){return(null==n.$$s?this:n.$$s).$breakable(e,t)}),{$$s:this})}),-1),s(b,"$breakable",(function(e,t){var n=this,r=m;return null==e&&(e=" "),null==t&&(t=e.$length()),r=n.group_stack.$last(),a(r["$break?"]())?(n.$flush(),n.output["$<<"](n.newline),n.output["$<<"](n.genspace.$call(n.indent)),n.output_width=n.indent,n.buffer_width=0):(n.buffer["$<<"](w("Breakable").$new(e,t,n)),n.buffer_width=$(n.buffer_width,t),n.$break_outmost_groups())}),-1),s(b,"$group",(function t(r,i,a,s,o){var $=t.$$p||m,u=this;return t.$$p=null,null==r&&(r=0),null==i&&(i=""),null==a&&(a=""),null==s&&(s=i.$length()),null==o&&(o=a.$length()),u.$text(i,s),n(u,"group_sub",[],(function t(){return n(null==t.$$s?this:t.$$s,"nest",[r],(function(){return e.yieldX($,[])}))}),{$$s:u}),u.$text(a,o)}),-1),s(b,"$group_sub",(function t(){var n=t.$$p||m,r=this,i=m;return t.$$p=null,i=w("Group").$new($(r.group_stack.$last().$depth(),1)),r.group_stack.$push(i),r.group_queue.$enq(i),function(){try{return e.yieldX(n,[])}finally{r.group_stack.$pop(),a(i.$breakables()["$empty?"]())&&r.group_queue.$delete(i)}}()})),s(b,"$nest",(function t(n){var r=t.$$p||m,i=this;return t.$$p=null,i.indent=$(i.indent,n),function(){try{return e.yieldX(r,[])}finally{i.indent=u(i.indent,n)}}()})),s(b,"$flush",(function(){var e=this;return n(e.buffer,"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.output&&(n.output=m),null==n.output_width&&(n.output_width=m),null==t&&(t=m),n.output_width=t.$output(n.output,n.output_width)}),{$$s:e}),e.buffer.$clear(),e.buffer_width=0})),function(e,r){var i=t(e,null,"Text"),a=i.$$prototype;a.objs=a.width=m,s(i,"$initialize",(function(){return this.objs=[],this.width=0})),i.$attr_reader("width"),s(i,"$output",(function(e,t){return n(this.objs,"each",[],(function(t){return null==t&&(t=m),e["$<<"](t)})),$(t,this.width)})),s(i,"$add",(function(e,t){var n=this;return n.objs["$<<"](e),n.width=$(n.width,t)}))}(y[0]),function(e,n){var r=t(e,null,"Breakable"),i=r.$$prototype;i.group=i.pp=i.indent=i.obj=i.width=m,s(r,"$initialize",(function(e,t,n){var r=this;return r.obj=e,r.width=t,r.pp=n,r.indent=n.$indent(),r.group=n.$current_group(),r.group.$breakables().$push(r)})),r.$attr_reader("obj"),r.$attr_reader("width"),r.$attr_reader("indent"),s(r,"$output",(function(e,t){var n=this;return n.group.$breakables().$shift(),a(n.group["$break?"]())?(e["$<<"](n.pp.$newline()),e["$<<"](n.pp.$genspace().$call(n.indent)),n.indent):(a(n.group.$breakables()["$empty?"]())&&n.pp.$group_queue().$delete(n.group),e["$<<"](n.obj),$(t,n.width))}))}(y[0]),function(e,n){var r=t(e,null,"Group");s(r,"$initialize",(function(e){var t=this;return t.depth=e,t.breakables=[],t.break=!1})),r.$attr_reader("depth"),r.$attr_reader("breakables"),s(r,"$break",c("break",!0)),s(r,"$break?",_("break")),s(r,"$first?",(function(){var e;return!a((e=this.first,null!=e&&e!==m?"instance-variable":m))&&(this.first=!1,!0)}))}(y[0]),function(e,r){var i=t(e,null,"GroupQueue");i.$$prototype.queue=m,s(i,"$initialize",(function(e){var t;return t=d(arguments),this.queue=[],n(t,"each",[],(function e(t){return null==t&&(t=m),(null==e.$$s?this:e.$$s).$enq(t)}),{$$s:this})}),-1),s(i,"$enq",(function(e){var t,n=this;for(t=e.$depth();!a(o(t,n.queue.$length()));)n.queue["$<<"]([]);return n.queue["$[]"](t)["$<<"](e)})),s(i,"$deq",(function(){try{var e=p("return");return n(this.queue,"each",[],(function(t){return null==t&&(t=m),n(u(t.$length(),1),"downto",[0],(function n(r){var i=m;if(null==r&&(r=m),a(t["$[]"](r).$breakables()["$empty?"]()))return m;(i=t["$slice!"](r,1).$first()).$break(),e.$throw(i,n.$$is_lambda)}),{$$ret:e}),n(t,"each",[],(function(e){return null==e&&(e=m),e.$break()})),t.$clear()})),m}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}})),s(i,"$delete",(function(e){return this.queue["$[]"](e.$depth()).$delete(e)}))}(y[0]),function(n,r){var i=t(n,null,"SingleLine"),a=i.$$prototype;return a.output=a.first=m,s(i,"$initialize",(function(e,t,n){return null==t&&(t=m),null==n&&(n=m),this.output=e,this.first=[!0]}),-2),s(i,"$text",(function(e,t){return null==t&&(t=m),this.output["$<<"](e)}),-2),s(i,"$breakable",(function(e,t){return null==e&&(e=" "),null==t&&(t=m),this.output["$<<"](e)}),-1),s(i,"$nest",(function t(n){var r=t.$$p||m;return t.$$p=null,e.yieldX(r,[])})),s(i,"$group",(function t(n,r,i,a,s){var o=t.$$p||m,$=this;return t.$$p=null,null==n&&(n=m),null==r&&(r=""),null==i&&(i=""),null==a&&(a=m),null==s&&(s=m),$.first.$push(!0),$.output["$<<"](r),e.yieldX(o,[]),$.output["$<<"](i),$.first.$pop()}),-1),s(i,"$flush",f(m)),s(i,"$first?",(function(){var e;return e=this.first["$[]"](-1),this.first["$[]="](-1,!1),e}))}(y[0])}(h[0],0,h)},Opal.modules.pp=function(e){var t=e.klass,n=e.gvars,r=e.send,i=e.defs,a=e.slice,s=e.to_a,o=e.module,$=e.eqeq,u=e.def,l=e.truthy,c=e.rb_plus,_=e.eqeqeq,d=e.neqeq,p=e.not,f=e.rb_gt,h=e.rb_le,m=e.top,g=[],v=e.$r(g),b=e.nil,y=e.$$$;return e.add_stubs("require,new,guard_inspect_key,pp,flush,<<,bind_call,instance_method,to_proc,attr_accessor,==,[],current,[]=,compare_by_identity,include?,delete,text,is_a?,__getobj__,check_inspect_key,group,pretty_print_cycle,push_inspect_key,pretty_print,sharing_detection,pop_inspect_key,+,name,class,chomp,breakable,lambda,comma_breakable,__send__,call,object_address_group,seplist,pretty_print_instance_variables,===,to_s,instance_eval,include,!=,owner,inspect,respond_to?,!,pp_object,sort,instance_variables,raise,singleline_pp,dup,empty?,pp_hash,each,keys,sprintf,mcall,begin,exclude_end?,end,lines,>,size,named_captures,regexp,object_group,class_eval,string,<=,first,module_function"),m.$require("thread"),m.$require("stringio"),m.$require("prettyprint"),function(f,h,m){var g=t(f,h,"PP"),v=[g].concat(m),w=e.$r(v);i(w("PP"),"$pp",(function(e,t,i){var a=b;return null==n.stdout&&(n.stdout=b),null==t&&(t=n.stdout),null==i&&(i=79),a=w("PP").$new(t,i),r(a,"guard_inspect_key",[],(function(){return a.$pp(e)})),a.$flush(),t["$<<"]("\n")}),-2),i(w("PP"),"$singleline_pp",(function(e,t){var i=b;return null==n.stdout&&(n.stdout=b),null==t&&(t=n.stdout),i=w("SingleLine").$new(t),r(i,"guard_inspect_key",[],(function(){return i.$pp(e)})),i.$flush(),t}),-2),i(w("PP"),"$mcall",(function e(t,n,i,o){var $,u=e.$$p||b;return e.$$p=null,$=a(arguments,3),r(n.$instance_method(i),"bind_call",[t].concat(s($)),u.$to_proc())}),-4),g.sharing_detection=!1,function(e,t){e.$attr_accessor("sharing_detection")}(e.get_singleton_class(g)),function(t,n){var i=o(t,"PPMethods"),d=[i].concat(n),p=e.$r(d);u(i,"$guard_inspect_key",(function t(){var n,i,a=t.$$p||b;return t.$$p=null,$(p("Thread").$current()["$[]"]("__recursive_key__"),b)&&p("Thread").$current()["$[]="]("__recursive_key__",(new Map).$compare_by_identity()),$(p("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"),b)&&p("Thread").$current()["$[]"]("__recursive_key__")["$[]="]("inspect",(new Map).$compare_by_identity()),i=p("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"),function(){try{return p("Thread").$current()["$[]"]("__recursive_key__")["$[]="]("inspect",(new Map).$compare_by_identity()),e.yieldX(a,[])}finally{n=["inspect",i],r(p("Thread").$current()["$[]"]("__recursive_key__"),"[]=",n)}}()})),u(i,"$check_inspect_key",(function(e){var t,n;return l(t=l(n=p("Thread").$current()["$[]"]("__recursive_key__"))?p("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"):n)?p("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect")["$include?"](e):t})),u(i,"$push_inspect_key",(function(e){var t;return t=[e,!0],r(p("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"),"[]=",t),t[t.length-1]})),u(i,"$pop_inspect_key",(function(e){return p("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect").$delete(e)})),u(i,"$pp",(function(e){var t=this;return null===e?(t.$text("null"),b):void 0===e?(t.$text("undefined"),b):void 0===e.$$class?(t.$text(Object.prototype.toString.apply(e)),b):(l(y("::","Delegator","skip_raise")?"constant":b)&&l(e["$is_a?"](y("Delegator")))&&(e=e.$__getobj__()),l(t.$check_inspect_key(e))?(r(t,"group",[],(function t(){var n=null==t.$$s?this:t.$$s;return e.$pretty_print_cycle(n)}),{$$s:t}),b):function(){try{return t.$push_inspect_key(e),r(t,"group",[],(function t(){var n=null==t.$$s?this:t.$$s;return e.$pretty_print(n)}),{$$s:t})}finally{l(p("PP").$sharing_detection())||t.$pop_inspect_key(e)}}())}),-1),u(i,"$object_group",(function e(t){var n=e.$$p||b;return e.$$p=null,r(this,"group",[1,c("#<",t.$class().$name()),">"],n.$to_proc())})),u(i,"$object_address_group",(function e(t){var n=e.$$p||b,i=b;return e.$$p=null,i=(i=p("Kernel").$instance_method("to_s").$bind_call(t)).$chomp(">"),r(this,"group",[1,i,">"],n.$to_proc())})),u(i,"$comma_breakable",(function(){return this.$text(","),this.$breakable()})),u(i,"$seplist",(function t(n,i,o){var $,u=t.$$p||b,c=b;return t.$$p=null,null==i&&(i=b),null==o&&(o="each"),i=l($=i)?$:r(this,"lambda",[],(function e(){return(null==e.$$s?this:e.$$s).$comma_breakable()}),{$$s:this}),c=!0,r(n,"__send__",[o],(function(t){var n;return n=a(arguments),l(c)?c=!1:i.$call(),e.yieldX(u,s(n))}),-1)}),-2),u(i,"$pp_object",(function(e){return r(this,"object_address_group",[e],(function t(){var n=null==t.$$s?this:t.$$s;return r(n,"seplist",[e.$pretty_print_instance_variables(),r(n,"lambda",[],(function e(){return(null==e.$$s?this:e.$$s).$text(",")}),{$$s:n})],(function t(n){var i=null==t.$$s?this:t.$$s;return null==n&&(n=b),i.$breakable(),_(p("Symbol"),n)&&(n=n.$to_s()),i.$text(n),i.$text("="),r(i,"group",[1],(function t(){var r=null==t.$$s?this:t.$$s;return r.$breakable(""),r.$pp(e.$instance_eval(n))}),{$$s:i})}),{$$s:n})}),{$$s:this})})),u(i,"$pp_hash",(function(e){return r(this,"group",[1,"{","}"],(function t(){var n=null==t.$$s?this:t.$$s;return r(n,"seplist",[e,b,"each_pair"],(function e(t,n){var i=null==e.$$s?this:e.$$s;return null==t&&(t=b),null==n&&(n=b),r(i,"group",[],(function e(){var i=null==e.$$s?this:e.$$s;return i.$pp(t),i.$text("=>"),r(i,"group",[1],(function e(){var t=null==e.$$s?this:e.$$s;return t.$breakable(""),t.$pp(n)}),{$$s:i})}),{$$s:i})}),{$$s:n})}),{$$s:this})}))}(v[0],v),g.$include(w("PPMethods")),function(n,r,i){var a=t(n,r,"SingleLine"),s=[a].concat(i),o=e.$r(s);a.$include(o("PPMethods"))}(v[0],y(w("PrettyPrint"),"SingleLine"),v),function(t,n){var i=o(t,"ObjectMixin"),a=[i].concat(n),s=e.$r(a);u(i,"$pretty_print",(function(t){var n=this,r=b,i=b;r=s("Object").$instance_method("method");try{i=r.$bind_call(n,"inspect")}catch(t){if(!e.rescue(t,[s("NameError")]))throw t;e.pop_exception(t)}return l(i)&&d(i.$owner(),s("Kernel"))||p(i)&&l(n["$respond_to?"]("inspect"))?t.$text(n.$inspect()):t.$pp_object(n)})),u(i,"$pretty_print_cycle",(function(e){return r(e,"object_address_group",[this],(function(){return e.$breakable(),e.$text("...")}))})),u(i,"$pretty_print_instance_variables",(function(){return this.$instance_variables().$sort()})),u(i,"$pretty_print_inspect",(function(){var e=this;return $(s("Object").$instance_method("method").$bind_call(e,"pretty_print").$owner(),y(s("PP"),"ObjectMixin"))&&e.$raise("pretty_print is not overridden for "+e.$class()),s("PP").$singleline_pp(e,"".$dup())}))}(v[0],v)}(g[0],v("PrettyPrint"),g),function(e,n){var i=t(e,null,"Array");u(i,"$pretty_print",(function(e){return r(e,"group",[1,"[","]"],(function t(){return r(e,"seplist",[null==t.$$s?this:t.$$s],(function(t){return null==t&&(t=b),e.$pp(t)}))}),{$$s:this})})),u(i,"$pretty_print_cycle",(function(e){return e.$text(l(this["$empty?"]())?"[]":"[...]")}))}(g[0]),function(e,n){var r=t(e,null,"Hash");u(r,"$pretty_print",(function(e){return e.$pp_hash(this)})),u(r,"$pretty_print_cycle",(function(e){return e.$text(l(this["$empty?"]())?"{}":"{...}")}))}(g[0]),function(t,n){var i=[t].concat(n),a=e.$r(i);u(t,"$pretty_print",(function(e){var t;return t=new Map,r(a("ENV").$keys().$sort(),"each",[],(function(e){var n;return null==e&&(e=b),n=[e,a("ENV")["$[]"](e)],r(t,"[]=",n),n[n.length-1]})),e.$pp_hash(t)}))}(e.get_singleton_class(v("ENV")),g),function(n,i,a){var s=t(n,null,"Struct"),o=[s].concat(a),$=e.$r(o);u(s,"$pretty_print",(function(e){var t=this;return r(e,"group",[1,t.$sprintf("#<struct %s",$("PP").$mcall(t,$("Kernel"),"class").$name()),">"],(function t(){var n=null==t.$$s?this:t.$$s;return r(e,"seplist",[$("PP").$mcall(n,$("Struct"),"members"),r(n,"lambda",[],(function(){return e.$text(",")}))],(function t(n){var i=null==t.$$s?this:t.$$s;return null==n&&(n=b),e.$breakable(),e.$text(n.$to_s()),e.$text("="),r(e,"group",[1],(function t(){var r=null==t.$$s?this:t.$$s;return e.$breakable(""),e.$pp(r["$[]"](n))}),{$$s:i})}),{$$s:n})}),{$$s:t})})),u(s,"$pretty_print_cycle",(function(e){return e.$text(this.$sprintf("#<struct %s:...>",$("PP").$mcall(this,$("Kernel"),"class").$name()))}))}(g[0],0,g),function(e,n){var r=t(e,null,"Range");u(r,"$pretty_print",(function(e){var t=this;return e.$pp(t.$begin()),e.$breakable(""),e.$text(l(t["$exclude_end?"]())?"...":".."),e.$breakable(""),l(t.$end())?e.$pp(t.$end()):b}))}(g[0]),function(e,n){var i=t(e,null,"String");u(i,"$pretty_print",(function(e){var t=this,n=b;return n=t.$lines(),l(f(n.$size(),1))?r(e,"group",[0,"",""],(function t(){return r(e,"seplist",[n,r(null==t.$$s?this:t.$$s,"lambda",[],(function(){return e.$text(" +"),e.$breakable()}))],(function(t){return null==t&&(t=b),e.$pp(t)}))}),{$$s:t}):e.$text(t.$inspect())}))}(g[0]),function(n,i){var a=t(n,null,"MatchData");u(a,"$pretty_print",(function(t){var n=this,i=b;return i=[],r(n.$regexp().$named_captures(),"each",[],(function(e,t){return null==e&&(e=b),null==t&&(t=b),r(t,"each",[],(function(t){var n;return null==t&&(t=b),r(i,"[]=",n=[t,e]),n[n.length-1]}))})),r(t,"object_group",[n],(function n(){var a=null==n.$$s?this:n.$$s;return t.$breakable(),r(t,"seplist",[e.Range.$new(0,a.$size(),!0),r(a,"lambda",[],(function(){return t.$breakable()}))],(function e(n){var r=null==e.$$s?this:e.$$s;return null==n&&(n=b),$(n,0)||(l(i["$[]"](n))?t.$text(i["$[]"](n)):t.$pp(n),t.$text(":")),t.$pp(r["$[]"](n))}),{$$s:a})}),{$$s:n})}))}(g[0]),function(n,r,i){var a=t(n,r,"Object"),s=[a].concat(i),o=e.$r(s);a.$include(y(o("PP"),"ObjectMixin"))}(g[0],v("BasicObject"),g),r([v("Numeric"),v("Symbol"),v("FalseClass"),v("TrueClass"),v("NilClass"),v("Module")],"each",[],(function e(t){return null==t&&(t=b),r(t,"class_eval",[],(function e(){return u(null==e.$$s?this:e.$$s,"$pretty_print_cycle",(function(e){return e.$text(this.$inspect())}))}),{$$s:null==e.$$s?this:e.$$s})}),{$$s:m}),r([v("Numeric"),v("FalseClass"),v("TrueClass"),v("Module")],"each",[],(function e(t){return null==t&&(t=b),r(t,"class_eval",[],(function e(){return u(null==e.$$s?this:e.$$s,"$pretty_print",(function(e){return e.$text(this.$inspect())}))}),{$$s:null==e.$$s?this:e.$$s})}),{$$s:m}),function(t,n){var i=o(t,"Kernel"),s=[i].concat(n),$=e.$r(s);return u(i,"$pretty_inspect",(function(){return $("PP").$pp(this,$("StringIO").$new()).$string()})),u(i,"$pp",(function(e){var t,n;return t=a(arguments),r(n=t,"each",[],(function(e){return null==e&&(e=b),$("PP").$pp(e)})),l(h(n.$size(),1))?n.$first():n}),-1),i.$module_function("pp")}(g[0],g)},Opal.modules.promise=function(e){var t=e.klass,n=e.defs,r=e.slice,i=e.def,a=e.eqeqeq,s=e.truthy,o=e.return_ivar,$=e.not,u=e.send,l=e.to_a,c=e.rb_plus,_=e.alias,d=e.send2,p=e.find_super,f=e.rb_le,h=e.rb_minus,m=e.const_set,g=[],v=e.$r(g),b=e.nil;return e.add_stubs("resolve,new,reject,attr_reader,===,value,key?,keys,!=,==,<<,>>,exception?,[],resolved?,rejected?,!,error,include?,action,realized?,raise,^,call,resolve!,exception!,any?,each,reject!,there_can_be_only_one!,then,to_proc,fail,always,trace,class,object_id,+,inspect,rescue,to_v2,fail!,then!,always!,itself,nil?,prev,act?,push,concat,it,proc,reverse,pop,<=,length,shift,-,wait,map,reduce,try,tap,all?,find,collect,inject"),function(m,g,v){var y=t(m,null,"Promise"),w=[y].concat(v),x=e.$r(w),k=y.$$prototype;k.value=k.action=k.realized=k.next=k.delayed=k.error=k.prev=b,n(y,"$value",(function(e){return this.$new().$resolve(e)})),n(y,"$error",(function(e){return this.$new().$reject(e)})),n(y,"$when",(function(e){var t;return t=r(arguments),x("When").$new(t)}),-1),y.$attr_reader("error","prev","next"),i(y,"$initialize",(function(e){var t=this;return null==e&&(e=new Map),t.action=e,t.realized=!1,t.exception=!1,t.value=b,t.error=b,t.delayed=!1,t.prev=b,t.next=[]}),-1),i(y,"$value",(function(){var e=this;return a(x("Promise"),e.value)?e.value.$value():e.value})),i(y,"$act?",(function(){var e;return s(e=this.action["$key?"]("success"))?e:this.action["$key?"]("always")})),i(y,"$action",(function(){return this.action.$keys()})),i(y,"$exception?",o("exception")),i(y,"$realized?",(function(){return this.realized["$!="](!1)})),i(y,"$resolved?",(function(){return this.realized["$=="]("resolve")})),i(y,"$rejected?",(function(){return this.realized["$=="]("reject")})),i(y,"$^",(function(e){return e["$<<"](this),this["$>>"](e),e})),i(y,"$<<",(function(e){return this.prev=e,this})),i(y,"$>>",(function(e){var t=this;return t.next["$<<"](e),s(t["$exception?"]())?e.$reject(t.delayed["$[]"](0)):s(t["$resolved?"]())?e.$resolve(s(t.delayed)?t.delayed["$[]"](0):t.$value()):s(t["$rejected?"]())&&($(t.action["$key?"]("failure"))||a(x("Promise"),s(t.delayed)?t.delayed["$[]"](0):t.error)||s(e.$action()["$include?"]("always")))&&e.$reject(s(t.delayed)?t.delayed["$[]"](0):t.$error()),t})),i(y,"$resolve",(function(t){var n=this,r=b,i=b,o=b;if(null==t&&(t=b),s(n["$realized?"]())&&n.$raise(x("ArgumentError"),"the promise has already been realized"),a(x("Promise"),t))return t["$<<"](n.prev)["$^"](n);try{r=s(i=n.action["$[]"]("success"))?i:n.action["$[]"]("always"),s(r)&&(t=r.$call(t)),n["$resolve!"](t)}catch(t){if(!e.rescue(t,[x("Exception")]))throw t;o=t;try{n["$exception!"](o)}finally{e.pop_exception(t)}}return n}),-1),i(y,"$resolve!",(function(e){var t=this;return t.realized="resolve",t.value=e,s(t.next["$any?"]())?u(t.next,"each",[],(function(t){return null==t&&(t=b),t.$resolve(e)})):t.delayed=[e]})),i(y,"$reject",(function(t){var n=this,r=b,i=b,o=b;if(null==t&&(t=b),s(n["$realized?"]())&&n.$raise(x("ArgumentError"),"the promise has already been realized"),a(x("Promise"),t))return t["$<<"](n.prev)["$^"](n);try{r=s(i=n.action["$[]"]("failure"))?i:n.action["$[]"]("always"),s(r)&&(t=r.$call(t)),s(n.action["$key?"]("always"))?n["$resolve!"](t):n["$reject!"](t)}catch(t){if(!e.rescue(t,[x("Exception")]))throw t;o=t;try{n["$exception!"](o)}finally{e.pop_exception(t)}}return n}),-1),i(y,"$reject!",(function(e){var t=this;return t.realized="reject",t.error=e,s(t.next["$any?"]())?u(t.next,"each",[],(function(t){return null==t&&(t=b),t.$reject(e)})):t.delayed=[e]})),i(y,"$exception!",(function(e){return this.exception=!0,this["$reject!"](e)})),i(y,"$then",(function e(){var t=e.$$p||b;return e.$$p=null,this["$^"](x("Promise").$new(new Map([["success",t]])))})),i(y,"$then!",(function e(){var t=e.$$p||b;return e.$$p=null,this["$there_can_be_only_one!"](),u(this,"then",[],t.$to_proc())})),i(y,"$fail",(function e(){var t=e.$$p||b;return e.$$p=null,this["$^"](x("Promise").$new(new Map([["failure",t]])))})),i(y,"$fail!",(function e(){var t=e.$$p||b;return e.$$p=null,this["$there_can_be_only_one!"](),u(this,"fail",[],t.$to_proc())})),i(y,"$always",(function e(){var t=e.$$p||b;return e.$$p=null,this["$^"](x("Promise").$new(new Map([["always",t]])))})),i(y,"$always!",(function e(){var t=e.$$p||b;return e.$$p=null,this["$there_can_be_only_one!"](),u(this,"always",[],t.$to_proc())})),i(y,"$trace",(function e(t){var n=e.$$p||b;return e.$$p=null,null==t&&(t=b),this["$^"](x("Trace").$new(t,n))}),-1),i(y,"$trace!",(function e(t){var n,i=e.$$p||b;return e.$$p=null,n=r(arguments),this["$there_can_be_only_one!"](),u(this,"trace",l(n),i.$to_proc())}),-1),i(y,"$there_can_be_only_one!",(function(){return s(this.next["$any?"]())?this.$raise(x("ArgumentError"),"a promise has already been chained"):b})),i(y,"$inspect",(function(){var e=this,t=b,n=b;return t="#<"+e.$class()+"("+e.$object_id()+")",s(e.next["$any?"]())&&(t=c(t," >> "+e.next.$inspect())),t=c(t,s(e["$realized?"]())?": "+(s(n=e.value)?n:e.error).$inspect()+">":">")})),i(y,"$to_v2",(function(){var e=b;return e=x("PromiseV2").$new(),u(u(this,"then",[],(function(t){return null==t&&(t=b),e.$resolve(t)})),"rescue",[],(function(t){return null==t&&(t=b),e.$reject(t)})),e})),_(y,"await","to_v2"),_(y,"catch","fail"),_(y,"catch!","fail!"),_(y,"do","then"),_(y,"do!","then!"),_(y,"ensure","always"),_(y,"ensure!","always!"),_(y,"finally","always"),_(y,"finally!","always!"),_(y,"rescue","fail"),_(y,"rescue!","fail!"),_(y,"to_n","to_v2"),_(y,"to_v1","itself"),function(r,a,o){var $=t(r,a,"Trace"),c=[$].concat(o),_=e.$r(c);n($,"$it",(function(e){var t,n=b;return n=[],(s(e["$act?"]())||s(e.$prev()["$nil?"]()))&&n.$push(e.$value()),t=e.$prev(),s(t)?n.$concat(this.$it(t)):n})),i($,"$initialize",(function e(t,n){var r=this;return e.$$p=null,r.depth=t,d(r,p(r,"initialize",e,!1,!0),"initialize",[new Map([["success",u(r,"proc",[],(function e(){var r=null==e.$$s?this:e.$$s,i=b;return(i=_("Trace").$it(r).$reverse()).$pop(),s(t)&&s(f(t,i.$length()))&&i.$shift(h(i.$length(),t)),u(n,"call",l(i))}),{$$s:r})]])],null)}))}(w[0],y,w),function(n,o,$){var c=t(n,o,"When"),f=[c].concat($),h=e.$r(f);c.$$prototype.wait=b,i(c,"$initialize",(function e(t){var n=this;return e.$$p=null,null==t&&(t=[]),d(n,p(n,"initialize",e,!1,!0),"initialize",[],null),n.wait=[],u(t,"each",[],(function e(t){return null==t&&(t=b),(null==e.$$s?this:e.$$s).$wait(t)}),{$$s:n})}),-1),i(c,"$each",(function e(){var t=e.$$p||b;return e.$$p=null,s(t)||this.$raise(h("ArgumentError"),"no block given"),u(this,"then",[],(function(e){return null==e&&(e=b),u(e,"each",[],t.$to_proc())}))})),i(c,"$collect",(function e(){var t=e.$$p||b;return e.$$p=null,s(t)||this.$raise(h("ArgumentError"),"no block given"),u(this,"then",[],(function(e){return null==e&&(e=b),h("When").$new(u(e,"map",[],t.$to_proc()))}))})),i(c,"$inject",(function e(t){var n,i,a=e.$$p||b;return e.$$p=null,n=r(arguments),i=n,u(this,"then",[],(function(e){return null==e&&(e=b),u(e,"reduce",l(i),a.$to_proc())}))}),-1),i(c,"$wait",(function(e){var t=this;return a(h("Promise"),e)||(e=h("Promise").$value(e)),s(e["$act?"]())&&(e=e.$then()),t.wait["$<<"](e),u(e,"always",[],(function e(){var t=null==e.$$s?this:e.$$s;return null==t.next&&(t.next=b),s(t.next["$any?"]())?t.$try():b}),{$$s:t}),t})),i(c,"$>>",(function e(t){var n,i=e.$$p||b,a=this;return e.$$p=null,n=r(arguments),u(d(a,p(a,">>",e,!1,!0),">>",l(n),i),"tap",[],(function e(){return(null==e.$$s?this:e.$$s).$try()}),{$$s:a})}),-1),i(c,"$try",(function(){var e=this,t=b;return s(u(e.wait,"all?",[],"realized?".$to_proc()))?(t=u(e.wait,"find",[],"rejected?".$to_proc()),s(t)?e.$reject(t.$error()):e.$resolve(u(e.wait,"map",[],"value".$to_proc()))):b})),_(c,"map","collect"),_(c,"reduce","inject"),_(c,"and","wait")}(w[0],y,w)}(g[0],0,g),m(g[0],"PromiseV1",v("Promise"))},Opal.modules.securerandom=function(e){var t=e.module,n=e.defs,r=e.top,i=[],a=e.nil,s=e.$$$;return e.add_stubs("require,extend,warn,rand,gen_random,_verify_count,encode"),r.$require("corelib/random/formatter"),function(r,i){var o,$=t(r,"SecureRandom"),u=[$].concat(i),l=e.$r(u);if($.$extend(s(l("Random"),"Formatter")),e.global.crypto&&e.global.crypto.getRandomValues||e.global.msCrypto&&e.global.msCrypto.getRandomValues){var c=e.global.crypto||e.global.msCrypto;o=function(e){var t=new Uint8Array(e);return c.getRandomValues(t),t}}else e.global.crypto&&e.global.crypto.randomBytes?o=function(t){return e.global.crypto.randomBytes(t)}:($.$warn("Can't get a Crypto.getRandomValues interface or Crypto.randomBytes.The random values generated with SecureRandom won't be cryptographically secure"),o=function(e){for(var t=new Uint8Array(e),n=0;n<e;n++)t[n]=$.$rand(255)^Math.floor(256*Math.random()),t[n]^=+new Date>>$.$rand(255)&255;return t});return n($,"$bytes",(function(e){return null==e&&(e=a),this.$gen_random(e)}),-1),n($,"$gen_random",(function(e){var t=a;null==e&&(e=a),e=l("Random").$_verify_count(e),t="";for(var n=o(e),r=0;r<e;r++)t+=String.fromCharCode(n[r]);return t.$encode("ASCII-8BIT")}),-1)}(i[0],i)},Opal.modules.singleton=function(e){var t=e.module,n=e.def,r=e.send2,i=e.find_super,a=e.send,s=e.truthy,o=e.defs,$=[],u=e.nil;return e.add_stubs("raise,class,__init__,instance_eval,new,extend"),function($,l){var c=t($,"Singleton"),_=[c].concat(l),d=e.$r(_);return n(c,"$clone",(function(){return this.$raise(d("TypeError"),"can't clone instance of singleton "+this.$class())})),n(c,"$dup",(function(){return this.$raise(d("TypeError"),"can't dup instance of singleton "+this.$class())})),function(a,s){var o=t(a,"SingletonClassMethods"),$=[o].concat(s),l=e.$r($);n(o,"$clone",(function e(){var t=e.$$p||u;return e.$$p=null,l("Singleton").$__init__(r(this,i(this,"clone",e,!1,!0),"clone",[],t))})),n(o,"$inherited",(function e(t){var n=e.$$p||u;return e.$$p=null,r(this,i(this,"inherited",e,!1,!0),"inherited",[t],n),l("Singleton").$__init__(t)}))}(_[0],_),function(t,$){var l=[t].concat($),c=e.$r(l);return n(t,"$__init__",(function(e){return a(e,"instance_eval",[],(function e(){return(null==e.$$s?this:e.$$s).singleton__instance__=u}),{$$s:this}),o(e,"$instance",(function(){var e=this;return null==e.singleton__instance__&&(e.singleton__instance__=u),s(e.singleton__instance__)?e.singleton__instance__:e.singleton__instance__=e.$new()})),e})),n(t,"$included",(function e(t){var n=e.$$p||u;return e.$$p=null,r(this,i(this,"included",e,!1,!0),"included",[t],n),t.$extend(c("SingletonClassMethods")),c("Singleton").$__init__(t)}))}(e.get_singleton_class(d("Singleton")),_)}($[0],$)},Opal.modules.strscan=function(e){var t=e.klass,n=e.def,r=e.truthy,i=e.eqeqeq,a=e.Opal,s=e.return_ivar,o=e.send,$=e.alias,u=[],l=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(u,c,_){var d=t(u,null,"StringScanner"),p=[d].concat(_),f=e.$r(p),h=d.$$prototype;return h.pos=h.string=h.working=h.matched=h.prev_pos=h.match=l,d.$attr_reader("pos","matched"),n(d,"$initialize",(function(e){var t=this;return t.string=e,t.pos=0,t.matched=l,t.working=e,t.match=[]})),d.$attr_reader("string"),n(d,"$beginning_of_line?",(function(){var e=this;return 0===e.pos||"\n"===e.string.charAt(e.pos-1)})),n(d,"$scan",(function(e){var t=this,n=(e=t.$anchor(e)).exec(t.working);return null==n?t.matched=l:(t.prev_pos=t.pos,t.pos+=n[0].length,t.working=t.working.substring(n[0].length),t.matched=n[0],t.match=n,n[0])})),n(d,"$scan_until",(function(e){var t=this;e=t.$anchor(e);for(var n=t.working,r=0;n.length!=r;++r){var i=e.exec(n.substr(r));if(null!==i){var a=r+i[0].length,s=n.substr(0,a);return t.matched=i[0],t.match=i,t.prev_pos=t.pos+r,t.pos+=a,t.working=n.substr(a),s}}return t.matched=l})),n(d,"$[]",(function(e){var t;if(r(this.match["$empty?"]()))return l;i(f("Symbol"),t=e)?e=e.$to_s():i(f("String"),t)||(e=a["$coerce_to!"](e,f("Integer"),"to_int"));var n=this.match;return e<0&&(e+=n.length),e<0||e>=n.length||null==n[e]?l:n[e]})),n(d,"$check",(function(e){var t=this,n=(e=t.$anchor(e)).exec(t.working);return t.matched=null==n?l:n[0]})),n(d,"$check_until",(function(e){var t=this,n=t.prev_pos,r=t.pos,i=t.working,a=t.$scan_until(e);return t.prev_pos=n,t.pos=r,t.working=i,a})),n(d,"$peek",(function(e){return this.working.substring(0,e)})),n(d,"$eos?",(function(){return 0===this.working.length})),n(d,"$exist?",(function(e){var t=e.exec(this.working);return null==t?l:0==t.index?0:t.index+1})),n(d,"$skip",(function(e){var t=this,n=(e=t.$anchor(e)).exec(t.working);if(null==n)return t.match=[],t.matched=l;var r=n[0],i=r.length;return t.matched=r,t.match=n,t.prev_pos=t.pos,t.pos+=i,t.working=t.working.substring(i),i})),n(d,"$skip_until",(function(e){var t=this.$scan_until(e);return t===l?l:(this.matched=t.substr(-1),t.length)})),n(d,"$get_byte",(function(){var e=this,t=l;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=l,t})),n(d,"$match?",(function(e){var t=this,n=(e=t.$anchor(e)).exec(t.working);return null==n?l:(t.prev_pos=t.pos,n[0].length)})),n(d,"$pos=",(function(e){var t=this;return e<0&&(e+=t.string.$length()),t.pos=e,t.working=t.string.slice(e)})),n(d,"$matched_size",(function(){return this.matched===l?l:this.matched.length})),n(d,"$post_match",(function(){var e=this;return e.matched===l?l:e.string.substr(e.pos)})),n(d,"$pre_match",(function(){var e=this;return e.matched===l?l:e.string.substr(0,e.prev_pos)})),n(d,"$reset",(function(){var e=this;return e.working=e.string,e.matched=l,e.pos=0})),n(d,"$rest",s("working")),n(d,"$rest?",(function(){return 0!==this.working.length})),n(d,"$rest_size",(function(){return this.$rest().$size()})),n(d,"$terminate",(function(){var e,t=this;return t.match=l,e=[t.string.$length()],o(t,"pos=",e),e[e.length-1]})),n(d,"$unscan",(function(){var e=this;return e.pos=e.prev_pos,e.prev_pos=l,e.match=l,e})),$(d,"bol?","beginning_of_line?"),$(d,"getch","get_byte"),d.$private(),n(d,"$anchor",(function(e){var t=e.toString().match(/\/([^\/]+)$/);return t=t?t[1]:void 0,new RegExp("^(?:"+e.source+")",t)}))}(u[0],0,u)},Opal.modules["deps/chronic"]=function(e){var t,n=e.module,r=e.klass,i=e.def,a=e.truthy,s=e.rb_gt,o=e.range,$=e.rb_minus,u=e.eqeq,l=e.rb_plus,c=e.rb_lt,_=e.rb_ge,d=e.send,p=e.thrower,f=e.rb_times,h=e.neqeq,m=e.to_a,g=e.not,v=e.const_set,b=e.gvars,y=e.rb_divide,w=e.class_variable_set,x=e.class_variable_get,k=e.rb_le,G=e.defs,E=e.eqeqeq,S=e.assign_ivar,O=e.alias,M=e.hash_rehash,A=e.return_val,N=e.send2,z=e.find_super,D=e.regexp,I=e.return_ivar,T=e.top,R=[],q=e.nil,C=e.$$$;return e.add_stubs("require,module_function,start=,now,this,[],year,begin,month,local,time_class,day_or_time,get_tag,type,month_overflow?,index,handle_m_d,size,>,last,-,==,+,new,parse,=~,message,raise,handle_rmn_sd_sy,handle_sm_sd_sy,<,handle_sm_sd,handle_year_and_month,empty?,time_with_rollover,day,get_anchor,hour,min,sec,>=,dealias_and_disambiguate_times,handle_r,respond_to?,offset,handle_srp,handle_s_r_p,times,next,end,handle_orr,*,now=,merge,get_repeaters,pop,first,shift,!=,debug,puts,class,find_within,reverse,sort,compact,map,leap?,cover?,each_with_index,untag,tag,<<,!,ambiguous?,include,attr_accessor,attr_reader,delete,tokenize,options,tokens_to_span,guess,downcase,to_s,gsub,numerize,width,/,[]=,Array,private,pre_normalize,split,each,scan,select,tagged?,definitions,match,invoke,reject,<=,is_a?,utc_offset,to_time,rjust,to_i,abs,%,each_index,chop,===,tags_match?,count,key?,to_sym,send,pattern,const_get,upcase,tags,kind_of?,include?,word,-@,delete_if,find,join,scan_for_all,scan_for,could_be_subsecond?,could_be_second?,could_be_minute?,could_be_hour?,could_be_day?,could_be_month?,could_be_year?,make_year,scan_for_commas,scan_for_dots,scan_for_colon,scan_for_space,scan_for_slash,scan_for_dash,scan_for_quote,scan_for_at,scan_for_in,scan_for_on,scan_for_and,scan_for_t,scan_for_w,scan_for_plus,scan_for_minus,dup,andition,to_f,scan_until,pos,matched_size,reset,find_next_season,scan_for_season_names,scan_for_month_names,scan_for_day_names,scan_for_day_portions,scan_for_times,scan_for_units,capitalize,<=>,construct,build_offset_time,month_days,find_current_season,from_time,find_next_season_span,num_seconds_til_start,num_seconds_til_end,construct_season,offset_by,is_between?,start,equals?,num_seconds_til,loop,is_weekday?,wday,symbol_to_number,is_weekend?,succ,construct_date_from_reference_and_offset,length,insert,nil?,**,gmt_offset,catch,time,throw,debug=,time_class=,name,normalize_offset"),T.$require("time"),T.$require("date"),function(t,v){var b=[n(t,"Chronic")].concat(v);r(b[0],null,"Anchor"),function(t,r){var v=n(t,"Handlers"),b=[v].concat(r),y=e.$r(b);v.$module_function(),i(v,"$handle_m_d",(function(e,t,n,r){var i,a,s,o=q;return e["$start="](this.$now()),a=(i=[(o=e.$this(r["$[]"]("context"))).$begin().$year(),o.$begin().$month()])[0],e=i[1],s=y("Chronic").$time_class().$local(a,e,t),this.$day_or_time(s,n,r)})),i(v,"$handle_rmn_sd",(function(t,n){var r,i=this,s=q;return s=t["$[]"](0).$get_tag(y("RepeaterMonthName")),r=t["$[]"](1).$get_tag(y("ScalarDay")).$type(),a(i["$month_overflow?"](i.$now().$year(),s.$index(),r))?q:i.$handle_m_d(s,r,t["$[]"](e.Range.$new(2,t.$size(),!1)),n)})),i(v,"$handle_rmn_sd_on",(function(e,t){var n=this,r=q,i=q,$=q;return a(s(e.$size(),3))?(r=e["$[]"](2).$get_tag(y("RepeaterMonthName")),i=e["$[]"](3).$get_tag(y("ScalarDay")).$type(),$=o(0,1,!1)):(r=e["$[]"](1).$get_tag(y("RepeaterMonthName")),i=e["$[]"](2).$get_tag(y("ScalarDay")).$type(),$=o(0,0,!1)),a(n["$month_overflow?"](n.$now().$year(),r.$index(),i))?q:n.$handle_m_d(r,i,e["$[]"]($),t)})),i(v,"$handle_rmn_od",(function(t,n){var r,i=this,s=q;return s=t["$[]"](0).$get_tag(y("RepeaterMonthName")),r=t["$[]"](1).$get_tag(y("OrdinalDay")).$type(),a(i["$month_overflow?"](i.$now().$year(),s.$index(),r))?q:i.$handle_m_d(s,r,t["$[]"](e.Range.$new(2,t.$size(),!1)),n)})),i(v,"$handle_od_rm",(function(t,n){var r,i;return r=t["$[]"](0).$get_tag(y("OrdinalDay")).$type(),i=t["$[]"](2).$get_tag(y("RepeaterMonth")),this.$handle_m_d(i,r,t["$[]"](e.Range.$new(3,t.$size(),!1)),n)})),i(v,"$handle_od_rmn",(function(t,n){var r,i=this,s=q;return s=t["$[]"](1).$get_tag(y("RepeaterMonthName")),r=t["$[]"](0).$get_tag(y("OrdinalDay")).$type(),a(i["$month_overflow?"](i.$now().$year(),s.$index(),r))?q:i.$handle_m_d(s,r,t["$[]"](e.Range.$new(2,t.$size(),!1)),n)})),i(v,"$handle_sy_rmn_od",(function(t,n){var r,i,s,o,u=q;if(r=t["$[]"](0).$get_tag(y("ScalarYear")).$type(),i=t["$[]"](1).$get_tag(y("RepeaterMonthName")).$index(),s=t["$[]"](2).$get_tag(y("OrdinalDay")).$type(),o=t.$last($(t.$size(),3)),a(this["$month_overflow?"](r,i,s)))return q;try{return u=y("Chronic").$time_class().$local(r,i,s),this.$day_or_time(u,o,n)}catch(t){if(!e.rescue(t,[y("ArgumentError")]))throw t;try{return q}finally{e.pop_exception(t)}}})),i(v,"$handle_sd_rmn",(function(t,n){var r,i=this,s=q;return s=t["$[]"](1).$get_tag(y("RepeaterMonthName")),r=t["$[]"](0).$get_tag(y("ScalarDay")).$type(),a(i["$month_overflow?"](i.$now().$year(),s.$index(),r))?q:i.$handle_m_d(s,r,t["$[]"](e.Range.$new(2,t.$size(),!1)),n)})),i(v,"$handle_rmn_od_on",(function(e,t){var n=this,r=q,i=q,$=q;return a(s(e.$size(),3))?(r=e["$[]"](2).$get_tag(y("RepeaterMonthName")),i=e["$[]"](3).$get_tag(y("OrdinalDay")).$type(),$=o(0,1,!1)):(r=e["$[]"](1).$get_tag(y("RepeaterMonthName")),i=e["$[]"](2).$get_tag(y("OrdinalDay")).$type(),$=o(0,0,!1)),a(n["$month_overflow?"](n.$now().$year(),r.$index(),i))?q:n.$handle_m_d(r,i,e["$[]"]($),t)})),i(v,"$handle_rmn_sy",(function(t,n){var r,i,a=q,s=q,o=q;r=t["$[]"](0).$get_tag(y("RepeaterMonthName")).$index(),i=t["$[]"](1).$get_tag(y("ScalarYear")).$type(),u(r,12)?(a=l(i,1),s=1):(a=i,s=l(r,1));try{return o=y("Chronic").$time_class().$local(a,s),y("Span").$new(y("Chronic").$time_class().$local(i,r),o)}catch(t){if(!e.rescue(t,[y("ArgumentError")]))throw t;try{return q}finally{e.pop_exception(t)}}})),i(v,"$handle_generic",(function(t,n){var r=q,i=q;try{return r=y("Chronic").$time_class().$parse(n["$[]"]("text")),y("Span").$new(r,l(r,1))}catch(t){if(!e.rescue(t,[y("ArgumentError")]))throw t;i=t;try{return a(i.$message()["$=~"](/out of range/))?q:this.$raise(i)}finally{e.pop_exception(t)}}})),i(v,"$handle_rmn_sd_sy",(function(t,n){var r,i,s,o,u=q;if(r=t["$[]"](0).$get_tag(y("RepeaterMonthName")).$index(),i=t["$[]"](1).$get_tag(y("ScalarDay")).$type(),s=t["$[]"](2).$get_tag(y("ScalarYear")).$type(),o=t.$last($(t.$size(),3)),a(this["$month_overflow?"](s,r,i)))return q;try{return u=y("Chronic").$time_class().$local(s,r,i),this.$day_or_time(u,o,n)}catch(t){if(!e.rescue(t,[y("ArgumentError")]))throw t;try{return q}finally{e.pop_exception(t)}}})),i(v,"$handle_rmn_od_sy",(function(t,n){var r,i,s,o,u=q;if(r=t["$[]"](0).$get_tag(y("RepeaterMonthName")).$index(),i=t["$[]"](1).$get_tag(y("OrdinalDay")).$type(),s=t["$[]"](2).$get_tag(y("ScalarYear")).$type(),o=t.$last($(t.$size(),3)),a(this["$month_overflow?"](s,r,i)))return q;try{return u=y("Chronic").$time_class().$local(s,r,i),this.$day_or_time(u,o,n)}catch(t){if(!e.rescue(t,[y("ArgumentError")]))throw t;try{return q}finally{e.pop_exception(t)}}})),i(v,"$handle_od_rmn_sy",(function(t,n){var r,i,s,o,u=q;if(r=t["$[]"](0).$get_tag(y("OrdinalDay")).$type(),i=t["$[]"](1).$get_tag(y("RepeaterMonthName")).$index(),s=t["$[]"](2).$get_tag(y("ScalarYear")).$type(),o=t.$last($(t.$size(),3)),a(this["$month_overflow?"](s,i,r)))return q;try{return u=y("Chronic").$time_class().$local(s,i,r),this.$day_or_time(u,o,n)}catch(t){if(!e.rescue(t,[y("ArgumentError")]))throw t;try{return q}finally{e.pop_exception(t)}}})),i(v,"$handle_sd_rmn_sy",(function(e,t){var n,r;return n=[e["$[]"](1),e["$[]"](0),e["$[]"](2)],r=e.$last($(e.$size(),3)),this.$handle_rmn_sd_sy(l(n,r),t)})),i(v,"$handle_sm_sd_sy",(function(t,n){var r,i,s,o,u=q;if(r=t["$[]"](0).$get_tag(y("ScalarMonth")).$type(),i=t["$[]"](1).$get_tag(y("ScalarDay")).$type(),s=t["$[]"](2).$get_tag(y("ScalarYear")).$type(),o=t.$last($(t.$size(),3)),a(this["$month_overflow?"](s,r,i)))return q;try{return u=y("Chronic").$time_class().$local(s,r,i),this.$day_or_time(u,o,n)}catch(t){if(!e.rescue(t,[y("ArgumentError")]))throw t;try{return q}finally{e.pop_exception(t)}}})),i(v,"$handle_sd_sm_sy",(function(e,t){var n,r;return n=[e["$[]"](1),e["$[]"](0),e["$[]"](2)],r=e.$last($(e.$size(),3)),this.$handle_sm_sd_sy(l(n,r),t)})),i(v,"$handle_sy_sm_sd",(function(e,t){var n,r;return n=[e["$[]"](1),e["$[]"](2),e["$[]"](0)],r=e.$last($(e.$size(),3)),this.$handle_sm_sd_sy(l(n,r),t)})),i(v,"$handle_sm_sd",(function(t,n){var r,i,s,o,_=this,d=q;if(r=t["$[]"](0).$get_tag(y("ScalarMonth")).$type(),i=t["$[]"](1).$get_tag(y("ScalarDay")).$type(),s=_.$now().$year(),o=t.$last($(t.$size(),2)),a(_["$month_overflow?"](s,r,i)))return q;try{return d=y("Chronic").$time_class().$local(s,r,i),u(n["$[]"]("context"),"future")&&a(c(d,_.$now()))&&(d=y("Chronic").$time_class().$local(l(s,1),r,i)),_.$day_or_time(d,o,n)}catch(t){if(!e.rescue(t,[y("ArgumentError")]))throw t;try{return q}finally{e.pop_exception(t)}}})),i(v,"$handle_sd_sm",(function(e,t){var n,r;return n=[e["$[]"](1),e["$[]"](0)],r=e.$last($(e.$size(),2)),this.$handle_sm_sd(l(n,r),t)})),i(v,"$handle_year_and_month",(function(t,n){var r=q,i=q,a=q;u(n,12)?(r=l(t,1),i=1):(r=t,i=l(n,1));try{return a=y("Chronic").$time_class().$local(r,i),y("Span").$new(y("Chronic").$time_class().$local(t,n),a)}catch(t){if(!e.rescue(t,[y("ArgumentError")]))throw t;try{return q}finally{e.pop_exception(t)}}})),i(v,"$handle_sm_sy",(function(e,t){var n,r;return n=e["$[]"](0).$get_tag(y("ScalarMonth")).$type(),r=e["$[]"](1).$get_tag(y("ScalarYear")).$type(),this.$handle_year_and_month(r,n)})),i(v,"$handle_sy_sm",(function(e,t){var n,r;return n=e["$[]"](0).$get_tag(y("ScalarYear")).$type(),r=e["$[]"](1).$get_tag(y("ScalarMonth")).$type(),this.$handle_year_and_month(n,r)})),i(v,"$handle_rdn_rmn_od",(function(t,n){var r,i,s=this,o=q,u=q,c=q,_=q,d=q;if(o=t["$[]"](1).$get_tag(y("RepeaterMonthName")),r=t["$[]"](2).$get_tag(y("OrdinalDay")).$type(),u=t.$last($(t.$size(),3)),i=s.$now().$year(),a(s["$month_overflow?"](i,o.$index(),r)))return q;try{return a(u["$empty?"]())?(c=y("Chronic").$time_class().$local(i,o.$index(),r),_=s.$time_with_rollover(i,o.$index(),l(r,1)),y("Span").$new(c,_)):(d=y("Chronic").$time_class().$local(i,o.$index(),r),s.$day_or_time(d,u,n))}catch(t){if(!e.rescue(t,[y("ArgumentError")]))throw t;try{return q}finally{e.pop_exception(t)}}})),i(v,"$handle_rdn_rmn_od_sy",(function(t,n){var r,i,s=q,o=q,$=q;if(s=t["$[]"](1).$get_tag(y("RepeaterMonthName")),r=t["$[]"](2).$get_tag(y("OrdinalDay")).$type(),i=t["$[]"](3).$get_tag(y("ScalarYear")).$type(),a(this["$month_overflow?"](i,s.$index(),r)))return q;try{return o=y("Chronic").$time_class().$local(i,s.$index(),r),$=this.$time_with_rollover(i,s.$index(),l(r,1)),y("Span").$new(o,$)}catch(t){if(!e.rescue(t,[y("ArgumentError")]))throw t;try{return q}finally{e.pop_exception(t)}}})),i(v,"$handle_rdn_od",(function(t,n){var r,i,o=this,c=q,_=q,d=q,p=q,f=q;if(r=t["$[]"](1).$get_tag(y("OrdinalDay")).$type(),c=t.$last($(t.$size(),2)),i=o.$now().$year(),_=o.$now().$month(),u(n["$[]"]("context"),"future")&&a(s(o.$now().$day(),r))&&(_=l(_,1)),a(o["$month_overflow?"](i,_,r)))return q;try{return a(c["$empty?"]())?(d=y("Chronic").$time_class().$local(i,_,r),p=o.$time_with_rollover(i,_,l(r,1)),y("Span").$new(d,p)):(f=y("Chronic").$time_class().$local(i,_,r),o.$day_or_time(f,c,n))}catch(t){if(!e.rescue(t,[y("ArgumentError")]))throw t;try{return q}finally{e.pop_exception(t)}}})),i(v,"$handle_rdn_rmn_sd",(function(t,n){var r,i,s=this,o=q,u=q,c=q,_=q,d=q;if(o=t["$[]"](1).$get_tag(y("RepeaterMonthName")),r=t["$[]"](2).$get_tag(y("ScalarDay")).$type(),u=t.$last($(t.$size(),3)),i=s.$now().$year(),a(s["$month_overflow?"](i,o.$index(),r)))return q;try{return a(u["$empty?"]())?(c=y("Chronic").$time_class().$local(i,o.$index(),r),_=s.$time_with_rollover(i,o.$index(),l(r,1)),y("Span").$new(c,_)):(d=y("Chronic").$time_class().$local(i,o.$index(),r),s.$day_or_time(d,u,n))}catch(t){if(!e.rescue(t,[y("ArgumentError")]))throw t;try{return q}finally{e.pop_exception(t)}}})),i(v,"$handle_rdn_rmn_sd_sy",(function(t,n){var r,i,s=q,o=q,$=q;if(s=t["$[]"](1).$get_tag(y("RepeaterMonthName")),r=t["$[]"](2).$get_tag(y("ScalarDay")).$type(),i=t["$[]"](3).$get_tag(y("ScalarYear")).$type(),a(this["$month_overflow?"](i,s.$index(),r)))return q;try{return o=y("Chronic").$time_class().$local(i,s.$index(),r),$=this.$time_with_rollover(i,s.$index(),l(r,1)),y("Span").$new(o,$)}catch(t){if(!e.rescue(t,[y("ArgumentError")]))throw t;try{return q}finally{e.pop_exception(t)}}})),i(v,"$handle_sm_rmn_sy",(function(e,t){var n,r,i,o=q,$=q,u=q,c=q,d=q,p=q;return o=e["$[]"](0).$get_tag(y("ScalarDay")).$type(),r=e["$[]"](1).$get_tag(y("RepeaterMonthName")).$index(),i=e["$[]"](2).$get_tag(y("ScalarYear")).$type(),a(s(e.$size(),3))?(u=(n=[($=this.$get_anchor([e.$last()],t).$begin()).$hour(),$.$min(),$.$sec()])[0],c=n[1],d=n[2],$=y("Chronic").$time_class().$local(i,r,o,u,c,d),p=y("Chronic").$time_class().$local(i,r,l(o,1),u,c,d)):($=y("Chronic").$time_class().$local(i,r,o),a(_(o,31))||(o=l(o,1)),p=y("Chronic").$time_class().$local(i,r,o)),y("Span").$new($,p)})),i(v,"$handle_r",(function(e,t){var n;return n=this.$dealias_and_disambiguate_times(e,t),this.$get_anchor(n,t)})),i(v,"$handle_r_g_r",(function(e,t){var n;return n=[e["$[]"](1),e["$[]"](0),e["$[]"](2)],this.$handle_r(n,t)})),i(v,"$handle_srp",(function(e,t,n){var r,i,s=q;return r=e["$[]"](0).$get_tag(y("Scalar")).$type(),s=e["$[]"](1).$get_tag(y("Repeater")),i=e["$[]"](2).$get_tag(y("Pointer")).$type(),a(s["$respond_to?"]("offset"))?s.$offset(t,r,i):q})),i(v,"$handle_s_r_p",(function(e,t){var n,r=this;return n=y("Span").$new(r.$now(),l(r.$now(),1)),r.$handle_srp(e,n,t)})),i(v,"$handle_p_s_r",(function(e,t){var n;return n=[e["$[]"](1),e["$[]"](2),e["$[]"](0)],this.$handle_s_r_p(n,t)})),i(v,"$handle_s_r_p_a",(function(t,n){var r;return r=this.$get_anchor(t["$[]"](e.Range.$new(3,$(t.$size(),1),!1)),n),this.$handle_srp(t,r,n)})),i(v,"$handle_s_r_a_s_r_p_a",(function(t,n){var r,i,a=this;return r=a.$get_anchor(t["$[]"](e.Range.$new(4,$(t.$size(),1),!1)),n),i=a.$handle_srp(l(t["$[]"](o(0,1,!1)),t["$[]"](o(4,6,!1))),r,n),a.$handle_srp(l(t["$[]"](o(2,3,!1)),t["$[]"](o(4,6,!1))),i,n)})),i(v,"$handle_orr",(function(e,t,n){var r,i=q,s=q;return(i=e["$[]"](1).$get_tag(y("Repeater")))["$start="]($(t.$begin(),1)),r=e["$[]"](0).$get_tag(y("Ordinal")).$type(),s=q,function(){try{var e=p("break");return d(r,"times",[],(function n(){if(s=i.$next("future"),!a(_(s.$begin(),t.$end())))return q;s=q,e.$throw(q,n.$$is_lambda)}))}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),s})),i(v,"$handle_o_r_s_r",(function(e,t){var n;return n=this.$get_anchor([e["$[]"](3)],t),this.$handle_orr(e["$[]"](o(0,1,!1)),n,t)})),i(v,"$handle_o_r_g_r",(function(e,t){var n;return n=this.$get_anchor(e["$[]"](o(2,3,!1)),t),this.$handle_orr(e["$[]"](o(0,1,!1)),n,t)})),i(v,"$day_or_time",(function(e,t,n){var r=this,i=q;return i=y("Span").$new(e,l(e,f(f(24,60),60))),a(t["$empty?"]())?i:(r["$now="](i.$begin()),r.$get_anchor(r.$dealias_and_disambiguate_times(t,n),n.$merge(new Map([["context","future"]]))))})),i(v,"$get_anchor",(function(e,t){var n=this,r=q,i=q,o=q,$=q;switch(r=y("Grabber").$new("this"),"future",i=n.$get_repeaters(e),d(i.$size(),"times",[],(function(){return e.$pop()})),a(e.$first())&&a(e.$first().$get_tag(y("Grabber")))&&(r=e.$shift().$get_tag(y("Grabber"))),(o=i.$shift())["$start="](n.$now()),r.$type().valueOf()){case"last":$=o.$next("past");break;case"this":$=h(t["$[]"]("context"),"past")&&a(s(i.$size(),0))?o.$this("none"):o.$this(t["$[]"]("context"));break;case"next":$=o.$next("future");break;default:n.$raise("Invalid grabber")}return a(y("Chronic").$debug())&&(n.$puts("Handler-class: "+o.$class()),n.$puts("--"+$)),n.$find_within(i,$,"future")})),i(v,"$get_repeaters",(function(e){return d(e,"map",[],(function(e){return null==e&&(e=q),e.$get_tag(y("Repeater"))})).$compact().$sort().$reverse()})),i(v,"$month_overflow?",(function(t,n,r){try{return a(C("Date")["$leap?"](t))?s(r,C(y("RepeaterMonth"),"MONTH_DAYS_LEAP")["$[]"]($(n,1))):s(r,C(y("RepeaterMonth"),"MONTH_DAYS")["$[]"]($(n,1)))}catch(t){if(!e.rescue(t,[y("ArgumentError")]))throw t;try{return!1}finally{e.pop_exception(t)}}})),i(v,"$find_within",(function(e,t,n){var r=q,i=q;return a(y("Chronic").$debug())&&this.$puts("--"+t),a(e["$empty?"]())?t:((r=e.$shift())["$start="](u(n,"future")?t.$begin():t.$end()),i=r.$this("none"),a(t["$cover?"](i.$begin()))||a(t["$cover?"](i.$end()))?this.$find_within(e,i,n):q)})),i(v,"$time_with_rollover",(function(e,t,n){var r;return r=a(this["$month_overflow?"](e,t,n))?u(t,12)?[l(e,1),1,1]:[e,l(t,1),1]:[e,t,n],d(y("Chronic").$time_class(),"local",m(r))})),i(v,"$dealias_and_disambiguate_times",(function(e,t){var n=q,r=q,i=q,s=q,o=q;if(n=q,function(){try{var t=p("break");return d(e,"each_with_index",[],(function e(r,i){if(null==r&&(r=q),null==i&&(i=q),!a(r.$get_tag(y("RepeaterDayPortion"))))return q;n=i,t.$throw(q,e.$$is_lambda)}))}catch(e){if(e===t)return e.$v;throw e}finally{t.is_orphan=!0}}(),r=q,function(){try{var t=p("break");return d(e,"each_with_index",[],(function e(n,i){if(null==n&&(n=q),null==i&&(i=q),!a(n.$get_tag(y("RepeaterTime"))))return q;r=i,t.$throw(q,e.$$is_lambda)}))}catch(e){if(e===t)return e.$v;throw e}finally{t.is_orphan=!0}}(),a(n)&&a(r))switch((s=(i=e["$[]"](n)).$get_tag(y("RepeaterDayPortion"))).$type().valueOf()){case"morning":a(y("Chronic").$debug())&&this.$puts("--morning->am"),i.$untag(y("RepeaterDayPortion")),i.$tag(y("RepeaterDayPortion").$new("am"));break;case"afternoon":case"evening":case"night":a(y("Chronic").$debug())&&this.$puts("--"+s.$type()+"->pm"),i.$untag(y("RepeaterDayPortion")),i.$tag(y("RepeaterDayPortion").$new("pm"))}return h(t["$[]"]("ambiguous_time_range"),"none")&&(o=[],d(e,"each_with_index",[],(function(n,r){var i=q,s=q;return null==n&&(n=q),null==r&&(r=q),o["$<<"](n),i=e["$[]"](l(r,1)),a(n.$get_tag(y("RepeaterTime")))&&a(n.$get_tag(y("RepeaterTime")).$type()["$ambiguous?"]())&&(g(i)||g(i.$get_tag(y("RepeaterDayPortion"))))?((s=y("Token").$new("disambiguator")).$tag(y("RepeaterDayPortion").$new(t["$[]"]("ambiguous_time_range"))),o["$<<"](s)):q})),e=o),e}))}(b[0],b)}(R[0],R),function(t,o){var $=[n(t,"Chronic")].concat(o);(function(t,n,o){var $=r(t,null,"Parser"),c=[$].concat(o),_=e.$r(c);$.$include(_("Handlers")),v(c[0],"DEFAULT_OPTIONS",new Map([["context","future"],["now",q],["hours24",q],["guess",!0],["ambiguous_time_range",6],["endian_precedence",["middle","little"]],["ambiguous_year_future_bias",50]])),$.$attr_accessor("now"),$.$attr_reader("options"),i($,"$initialize",(function(e){var t;return null==e&&(e=new Map),this.options=_("DEFAULT_OPTIONS").$merge(e),this.now=a(t=e.$delete("now"))?t:_("Chronic").$time_class().$now()}),-1),i($,"$parse",(function(e){var t,n,r=this;return t=r.$tokenize(e,r.$options()),n=r.$tokens_to_span(t,r.$options().$merge(new Map([["text",e]]))),a(_("Chronic").$debug())&&r.$puts("+"+f("-",51)+"\n| "+t+"\n+"+f("-",51)),a(n)?r.$guess(n,r.$options()["$[]"]("guess")):q})),i($,"$pre_normalize",(function(e){return e=(e=(e=(e=(e=(e=(e=(e=(e=(e=e.$to_s().$downcase()).$gsub(/\b(\d{2})\.(\d{2})\.(\d{4})\b/,"\\3 / \\2 / \\1")).$gsub(/\b([ap])\.m\.?/,"\\1m")).$gsub(/(\s+|:\d{2}|:\d{2}\.\d{3})\-(\d{2}:?\d{2})\b/,"\\1tzminus\\2")).$gsub(/\./,":")).$gsub(/([ap]):m:?/,"\\1m")).$gsub(/['"]/,"")).$gsub(/,/," ")).$gsub(/^second /,"2nd ")).$gsub(/\bsecond (of|day|month|hour|minute|second)\b/,"2nd \\1"),e=_("Numerizer").$numerize(e),(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=d(e,"gsub",[/([\/\-\,\@])/],(function(){var e;return l(l(" ",(e=b["~"])===q?q:e["$[]"](1))," ")}))).$gsub(/(?:^|\s)0(\d+:\d+\s*pm?\b)/," \\1")).$gsub(/\btoday\b/,"this day")).$gsub(/\btomm?orr?ow\b/,"next day")).$gsub(/\byesterday\b/,"last day")).$gsub(/\bnoon\b/,"12:00pm")).$gsub(/\bmidnight\b/,"24:00")).$gsub(/\bnow\b/,"this second")).$gsub("quarter","15")).$gsub("half","30")).$gsub(/(\d{1,2}) (to|till|prior to|before)\b/,"\\1 minutes past")).$gsub(/(\d{1,2}) (after|past)\b/,"\\1 minutes future")).$gsub(/\b(?:ago|before(?: now)?)\b/,"past")).$gsub(/\bthis (?:last|past)\b/,"last")).$gsub(/\b(?:in|during) the (morning)\b/,"\\1")).$gsub(/\b(?:in the|during the|at) (afternoon|evening|night)\b/,"\\1")).$gsub(/\btonight\b/,"this night")).$gsub(/\b\d+:?\d*[ap]\b/,"\\0m")).$gsub(/\b(\d{2})(\d{2})(am|pm)\b/,"\\1:\\2\\3")).$gsub(/(\d)([ap]m|oclock)\b/,"\\1 \\2")).$gsub(/\b(hence|after|from)\b/,"future")).$gsub(/^\s?an? /i,"1 ")).$gsub(/\b(\d{4}):(\d{2}):(\d{2})\b/,"\\1 / \\2 / \\3")).$gsub(/\b0(\d+):(\d{2}):(\d{2}) ([ap]m)\b/,"\\1:\\2:\\3 \\4")})),i($,"$guess",(function(e,t){return null==t&&(t="middle"),g(t)?e:a(s(e.$width(),1))&&(u(t,!0)||u(t,"middle"))?l(e.$begin(),y(e.$width(),2)):u(t,"end")?e.$end():e.$begin()}),-2),i($,"$definitions",(function(e){var t=q,n=q,r=q;switch(null==e&&(e=new Map),a(t=e["$[]"]("endian_precedence"))||e["$[]="]("endian_precedence",["middle","little"]),w(c[0],"@@definitions",a(null!=c[0].$$cvars["@@definitions"]?"class variable":q)&&a(t=x(c[0],"@@definitions",!1))?t:new Map([["time",[_("Handler").$new(["repeater_time","repeater_day_portion?"],q)]],["date",[_("Handler").$new(["repeater_day_name","repeater_month_name","scalar_day","repeater_time",["separator_slash?","separator_dash?"],"time_zone","scalar_year"],"handle_generic"),_("Handler").$new(["repeater_day_name","repeater_month_name","scalar_day"],"handle_rdn_rmn_sd"),_("Handler").$new(["repeater_day_name","repeater_month_name","scalar_day","scalar_year"],"handle_rdn_rmn_sd_sy"),_("Handler").$new(["repeater_day_name","repeater_month_name","ordinal_day"],"handle_rdn_rmn_od"),_("Handler").$new(["repeater_day_name","repeater_month_name","ordinal_day","scalar_year"],"handle_rdn_rmn_od_sy"),_("Handler").$new(["repeater_day_name","repeater_month_name","scalar_day","separator_at?","time?"],"handle_rdn_rmn_sd"),_("Handler").$new(["repeater_day_name","repeater_month_name","ordinal_day","separator_at?","time?"],"handle_rdn_rmn_od"),_("Handler").$new(["repeater_day_name","ordinal_day","separator_at?","time?"],"handle_rdn_od"),_("Handler").$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_day","repeater_time","time_zone"],"handle_generic"),_("Handler").$new(["ordinal_day"],"handle_generic"),_("Handler").$new(["repeater_month_name","scalar_day","scalar_year"],"handle_rmn_sd_sy"),_("Handler").$new(["repeater_month_name","ordinal_day","scalar_year"],"handle_rmn_od_sy"),_("Handler").$new(["repeater_month_name","scalar_day","scalar_year","separator_at?","time?"],"handle_rmn_sd_sy"),_("Handler").$new(["repeater_month_name","ordinal_day","scalar_year","separator_at?","time?"],"handle_rmn_od_sy"),_("Handler").$new(["repeater_month_name",["separator_slash?","separator_dash?"],"scalar_day","separator_at?","time?"],"handle_rmn_sd"),_("Handler").$new(["repeater_time","repeater_day_portion?","separator_on?","repeater_month_name","scalar_day"],"handle_rmn_sd_on"),_("Handler").$new(["repeater_month_name","ordinal_day","separator_at?","time?"],"handle_rmn_od"),_("Handler").$new(["ordinal_day","repeater_month_name","scalar_year","separator_at?","time?"],"handle_od_rmn_sy"),_("Handler").$new(["ordinal_day","repeater_month_name","separator_at?","time?"],"handle_od_rmn"),_("Handler").$new(["ordinal_day","grabber?","repeater_month","separator_at?","time?"],"handle_od_rm"),_("Handler").$new(["scalar_year","repeater_month_name","ordinal_day"],"handle_sy_rmn_od"),_("Handler").$new(["repeater_time","repeater_day_portion?","separator_on?","repeater_month_name","ordinal_day"],"handle_rmn_od_on"),_("Handler").$new(["repeater_month_name","scalar_year"],"handle_rmn_sy"),_("Handler").$new(["scalar_day","repeater_month_name","scalar_year","separator_at?","time?"],"handle_sd_rmn_sy"),_("Handler").$new(["scalar_day",["separator_slash?","separator_dash?"],"repeater_month_name","separator_at?","time?"],"handle_sd_rmn"),_("Handler").$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_day","separator_at?","time?"],"handle_sy_sm_sd"),_("Handler").$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month"],"handle_sy_sm"),_("Handler").$new(["scalar_month",["separator_slash","separator_dash"],"scalar_year"],"handle_sm_sy"),_("Handler").$new(["scalar_day",["separator_slash","separator_dash"],"repeater_month_name",["separator_slash","separator_dash"],"scalar_year","repeater_time?"],"handle_sm_rmn_sy"),_("Handler").$new(["scalar_year",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar?","time_zone"],"handle_generic")]],["anchor",[_("Handler").$new(["separator_on?","grabber?","repeater","separator_at?","repeater?","repeater?"],"handle_r"),_("Handler").$new(["grabber?","repeater","repeater","separator?","repeater?","repeater?"],"handle_r"),_("Handler").$new(["repeater","grabber","repeater"],"handle_r_g_r")]],["arrow",[_("Handler").$new(["scalar","repeater","pointer"],"handle_s_r_p"),_("Handler").$new(["scalar","repeater","separator_and?","scalar","repeater","pointer","separator_at?","anchor"],"handle_s_r_a_s_r_p_a"),_("Handler").$new(["pointer","scalar","repeater"],"handle_p_s_r"),_("Handler").$new(["scalar","repeater","pointer","separator_at?","anchor"],"handle_s_r_p_a")]],["narrow",[_("Handler").$new(["ordinal","repeater","separator_in","repeater"],"handle_o_r_s_r"),_("Handler").$new(["ordinal","repeater","grabber","repeater"],"handle_o_r_g_r")]]])),n=[_("Handler").$new(["scalar_month",["separator_slash","separator_dash"],"scalar_day",["separator_slash","separator_dash"],"scalar_year","separator_at?","time?"],"handle_sm_sd_sy"),_("Handler").$new(["scalar_month",["separator_slash","separator_dash"],"scalar_day","separator_at?","time?"],"handle_sm_sd"),_("Handler").$new(["scalar_day",["separator_slash","separator_dash"],"scalar_month","separator_at?","time?"],"handle_sd_sm"),_("Handler").$new(["scalar_day",["separator_slash","separator_dash"],"scalar_month",["separator_slash","separator_dash"],"scalar_year","separator_at?","time?"],"handle_sd_sm_sy")],(r=this.$Array(e["$[]"]("endian_precedence")).$first()).valueOf()){case"little":return x(c[0],"@@definitions",!1).$merge(new Map([["endian",n.$reverse()]]));case"middle":return x(c[0],"@@definitions",!1).$merge(new Map([["endian",n]]));default:return this.$raise(_("ArgumentError"),"Unknown endian option '"+r+"'")}}),-1),$.$private(),i($,"$tokenize",(function(e,t){var n;return e=this.$pre_normalize(e),n=d(e.$split(" "),"map",[],(function(e){return null==e&&(e=q),_("Token").$new(e)})),d([_("Repeater"),_("Grabber"),_("Pointer"),_("Scalar"),_("Ordinal"),_("Separator"),_("Sign"),_("TimeZone")],"each",[],(function(e){return null==e&&(e=q),e.$scan(n,t)})),d(n,"select",[],(function(e){return null==e&&(e=q),e["$tagged?"]()}))})),i($,"$tokens_to_span",(function(e,t){try{var n=p("return"),r=this,i=q;return i=r.$definitions(t),d(l(i["$[]"]("endian"),i["$[]"]("date")),"each",[],(function r(s){var o=null==r.$$s?this:r.$$s,$=q;if(null==s&&(s=q),!a(s.$match(e,i)))return q;$=d(e,"select",[],(function(e){return null==e&&(e=q),e.$get_tag(_("Separator"))["$!"]()})),n.$throw(s.$invoke("date",$,o,t),r.$$is_lambda)}),{$$s:r,$$ret:n}),d(i["$[]"]("anchor"),"each",[],(function r(s){var o=null==r.$$s?this:r.$$s,$=q;if(null==s&&(s=q),!a(s.$match(e,i)))return q;$=d(e,"select",[],(function(e){return null==e&&(e=q),e.$get_tag(_("Separator"))["$!"]()})),n.$throw(s.$invoke("anchor",$,o,t),r.$$is_lambda)}),{$$s:r,$$ret:n}),d(i["$[]"]("arrow"),"each",[],(function r(s){var o=null==r.$$s?this:r.$$s,$=q;if(null==s&&(s=q),!a(s.$match(e,i)))return q;$=d(e,"reject",[],(function(e){var t,n,r,i;return null==e&&(e=q),a(t=a(n=a(r=a(i=e.$get_tag(_("SeparatorAt")))?i:e.$get_tag(_("SeparatorSlash")))?r:e.$get_tag(_("SeparatorDash")))?n:e.$get_tag(_("SeparatorComma")))?t:e.$get_tag(_("SeparatorAnd"))})),n.$throw(s.$invoke("arrow",$,o,t),r.$$is_lambda)}),{$$s:r,$$ret:n}),d(i["$[]"]("narrow"),"each",[],(function r(s){var o=null==r.$$s?this:r.$$s;if(null==s&&(s=q),!a(s.$match(e,i)))return q;n.$throw(s.$invoke("narrow",e,o,t),r.$$is_lambda)}),{$$s:r,$$ret:n}),a(_("Chronic").$debug())&&r.$puts("-none"),q}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}))})($[0],0,$)}(R[0],R),function(t,i){var s=[n(t,"Chronic")].concat(i);(function(t,n,i){var s=r(t,null,"Time"),o=[s].concat(i),$=e.$r(o);v(o[0],"HOUR_SECONDS",3600),v(o[0],"MINUTE_SECONDS",60),v(o[0],"SECOND_SECONDS",1),v(o[0],"SUBSECOND_SECONDS",.001),G(s,"$could_be_hour?",(function(e){var t;return a(t=_(e,0))?k(e,24):t})),G(s,"$could_be_minute?",(function(e){var t;return a(t=_(e,0))?k(e,60):t})),G(s,"$could_be_second?",(function(e){var t;return a(t=_(e,0))?k(e,60):t})),G(s,"$could_be_subsecond?",(function(e){var t;return a(t=_(e,0))?k(e,999999):t})),G(s,"$normalize_offset",(function(e){var t,n,r=q;return a(e["$is_a?"]($("String")))?e:(a(e)||(e=$("Chronic").$time_class().$now().$to_time().$utc_offset()),r="+",a(c(e,0))&&(r="-"),t=y(e.$abs(),3600).$to_i().$to_s().$rjust(2,"0"),n=e.$abs()["$%"](3600).$to_s().$rjust(2,"0"),l(l(r,t),n))}))})(s[0],0,s)}(R[0],R),function(t,i){var o=[n(t,"Chronic")].concat(i);(function(t,n,i){var o=r(t,null,"Date"),u=[o].concat(i),d=e.$r(u);v(u[0],"YEAR_MONTHS",12),v(u[0],"MONTH_DAYS",[q,31,28,31,30,31,30,31,31,30,31,30,31]),v(u[0],"MONTH_DAYS_LEAP",[q,31,29,31,30,31,30,31,31,30,31,30,31]),v(u[0],"YEAR_SECONDS",31536e3),v(u[0],"SEASON_SECONDS",7862400),v(u[0],"MONTH_SECONDS",2592e3),v(u[0],"FORTNIGHT_SECONDS",1209600),v(u[0],"WEEK_SECONDS",604800),v(u[0],"WEEKEND_SECONDS",172800),v(u[0],"DAY_SECONDS",86400),v(u[0],"MONTHS",new Map([["january",1],["february",2],["march",3],["april",4],["may",5],["june",6],["july",7],["august",8],["september",9],["october",10],["november",11],["december",12]])),v(u[0],"DAYS",new Map([["sunday",0],["monday",1],["tuesday",2],["wednesday",3],["thursday",4],["friday",5],["saturday",6]])),G(o,"$could_be_day?",(function(e){var t;return a(t=_(e,1))?k(e,31):t})),G(o,"$could_be_month?",(function(e){var t;return a(t=_(e,1))?k(e,12):t})),G(o,"$could_be_year?",(function(e){var t;return a(t=_(e,1))?k(e,9999):t})),G(o,"$make_year",(function(e,t){var n,r,i=q;return a(s(e.$to_s().$size(),2))?e:(n=$(d("Chronic").$time_class().$now().$year(),t),r=f(y(n,100),100),i=l(r,e),a(c(i,n))&&(i=l(i,100)),i)})),G(o,"$month_overflow?",(function(e,t,n){return a(C("Date")["$leap?"](e))?s(n,C(d("Date"),"MONTH_DAYS_LEAP")["$[]"](t)):s(n,C(d("Date"),"MONTH_DAYS")["$[]"](t))}))})(o[0],0,o)}(R[0],R),function(t,s){var o=[n(t,"Chronic")].concat(s);(function(t,n,s){var o=r(t,null,"Handler"),$=[o].concat(s),_=e.$r($),f=o.$$prototype;f.pattern=f.handler_method=q,o.$attr_reader("pattern"),o.$attr_reader("handler_method"),i(o,"$initialize",(function(e,t){return this.pattern=e,this.handler_method=t})),i(o,"$match",(function(t,n){try{var r=p("return"),i=q;return i=0,d(this.pattern,"each",[],(function s(o){var $=null==s.$$s?this:s.$$s,f=q;return null==o&&(o=q),f=!1,a(o["$is_a?"](_("Array")))||(o=[o]),function(){try{var s=p("break");return d(o,"each_index",[],(function $(p){var h,m,g=null==$.$$s?this:$.$$s,v=q,b=q;if(null==p&&(p=q),h=(v=o["$[]"](p).$to_s())["$[]"](-1,1)["$=="]("?"),a(h)&&(v=v.$chop()),!E(_("Symbol"),m=o["$[]"](p)))return E(_("String"),m)?(a(h)&&u(i,t.$size())&&r.$throw(!0,$.$$is_lambda),a(n["$key?"](v.$to_sym()))?b=n["$[]"](v.$to_sym()):g.$raise("Invalid subset "+v+" specified"),d(b,"each",[],(function s(o){if(null==o&&(o=q),!a(o.$match(t["$[]"](e.Range.$new(i,t.$size(),!1)),n)))return q;r.$throw(!0,s.$$is_lambda)}),{$$ret:r})):g.$raise("Invalid match type: "+o["$[]"](p).$class());if(a(g["$tags_match?"](v,t,i)))i=l(i,1),s.$throw(q,$.$$is_lambda);else{if(a(h))return f=!0,q;if(a(c(l(p,1),o.$count())))return q;if(a(f))return q;r.$throw(!1,$.$$is_lambda)}}),{$$s:$,$$ret:r})}catch(e){if(e===s)return e.$v;throw e}finally{s.is_orphan=!0}}()}),{$$s:this}),!h(i,t.$size())}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}})),i(o,"$invoke",(function(e,t,n,r){var i=this;return a(_("Chronic").$debug())&&(i.$puts("-"+e),i.$puts("Handler: "+i.handler_method)),n.$send(i.handler_method,t,r)})),i(o,"$==",(function(e){return this.pattern["$=="](e.$pattern())})),o.$private(),i(o,"$tags_match?",(function(e,t,n){var r;return r=_("Chronic").$const_get(d(e.$to_s(),"gsub",[/(?:^|_)(.)/],(function(){var e;return((e=b["~"])===q?q:e["$[]"](1)).$upcase()}))),a(t["$[]"](n))?d(t["$[]"](n).$tags(),"select",[],(function(e){return null==e&&(e=q),e["$kind_of?"](r)}))["$empty?"]()["$!"]():q}))})(o[0],0,o)}(R[0],R),function(t,$){var d=[n(t,"Chronic")].concat($);(function(t,n,$){var d=r(t,null,"MiniDate"),p=[d].concat($),f=e.$r(p),h=d.$$prototype;h.day=h.month=q,d.$attr_accessor("month","day"),G(d,"$from_time",(function(e){return this.$new(e.$month(),e.$day())})),i(d,"$initialize",(function(e,t){var n=this;return a(o(1,12,!1)["$include?"](e))||n.$raise(f("ArgumentError"),"1..12 are valid months"),n.month=e,n.day=t})),i(d,"$is_between?",(function(e,t){var n=this,r=q;if(u(n.month,e.$month())&&u(n.month,t.$month())&&(a(c(n.day,e.$day()))||a(s(n.day,t.$day()))))return!1;if(u(n.month,e.$month())&&a(_(n.day,e.$day()))||u(n.month,t.$month())&&a(k(n.day,t.$day())))return!0;for(r=l(e.$month()["$%"](12),1);!u(r,t.$month());){if(u(n.month,r))return!0;r=l(r["$%"](12),1)}return!1})),i(d,"$equals?",(function(e){var t;return a(t=this.month["$=="](e.$month()))?this.day["$=="](e.$day()):t}))})(d[0],0,d)}(R[0],R),function(t,s){var o=[n(t,"Chronic")].concat(s);(function(t,n,s){var o=r(t,null,"Tag"),$=[o].concat(s);o.$attr_accessor("type"),i(o,"$initialize",(function(e,t){return null==t&&(t=new Map),this.type=e,this.options=t}),-2),i(o,"$start=",S("now")),function(t,n){var r=[t].concat(n),s=e.$r(r);t.$private(),i(t,"$scan_for",(function(e,t,n,r){try{var i,o=p("return");if(null==n&&(n=new Map),null==r&&(r=new Map),E(s("Regexp"),i=n)){if(a(n["$=~"](e.$word())))return t.$new(e.$word(),r)}else E(s("Hash"),i)&&d(n,"each",[],(function n(i,s){if(null==i&&(i=q),null==s&&(s=q),!a(i["$=~"](e.$word())))return q;o.$throw(t.$new(s,r),n.$$is_lambda)}),{$$ret:o});return q}catch(e){if(e===o)return e.$v;throw e}finally{o.is_orphan=!0}}),-3)}(e.get_singleton_class(o),$)})(o[0],0,o)}(R[0],R),function(t,s){var o=[n(t,"Chronic")].concat(s),u=e.$r(o);(function(t,n,s){var o=r(t,n,"Span"),u=[o].concat(s),c=e.$r(u);i(o,"$width",(function(){return $(this.$end(),this.$begin()).$to_i()})),i(o,"$+",(function(e){return c("Span").$new(l(this.$begin(),e),l(this.$end(),e))})),i(o,"$-",(function(e){return l(this,e["$-@"]())})),i(o,"$to_s",(function(){return l(l(l(l("(",this.$begin().$to_s()),".."),this.$end().$to_s()),")")})),a(c("RUBY_VERSION")["$=~"](/^1.8/))&&O(o,"cover?","include?")})(o[0],u("Range"),o)}(R[0],R),t=R,function(e,t){var n=r(e,null,"Token"),a=n.$$prototype;a.tags=a.word=q,n.$attr_accessor("word"),n.$attr_accessor("tags"),i(n,"$initialize",(function(e){return this.word=e,this.tags=[]})),i(n,"$tag",(function(e){return this.tags["$<<"](e)})),i(n,"$untag",(function(e){return d(this.tags,"delete_if",[],(function(t){return null==t&&(t=q),t["$kind_of?"](e)}))})),i(n,"$tagged?",(function(){return s(this.tags.$size(),0)})),i(n,"$get_tag",(function(e){return d(this.tags,"find",[],(function(t){return null==t&&(t=q),t["$kind_of?"](e)}))})),i(n,"$to_s",(function(){var e=this;return e.word=l(l(l(e.word,"("),e.tags.$join(", ")),") ")})),i(n,"$inspect",(function(){return this.$to_s()}))}([n(R[0],"Chronic")].concat(t)[0]),function(t,s){var o=[n(t,"Chronic")].concat(s),$=e.$r(o);(function(e,t){var n=r(e,t,"Grabber");n.$$prototype.type=q,G(n,"$scan",(function(e,t){return d(e,"each",[],(function e(t){var n;return null==t&&(t=q),a(n=(null==e.$$s?this:e.$$s).$scan_for_all(t))?(t.$tag(n),q):q}),{$$s:this})})),G(n,"$scan_for_all",(function(e){return this.$scan_for(e,this,M(new Map([[/last/,"last"],[/this/,"this"],[/next/,"next"]])))})),i(n,"$to_s",(function(){return l("grabber-",this.type.$to_s())}))})(o[0],$("Tag"))}(R[0],R),function(t,s){var o=[n(t,"Chronic")].concat(s),$=e.$r(o);(function(e,t){var n=r(e,t,"Pointer");n.$$prototype.type=q,G(n,"$scan",(function(e,t){return d(e,"each",[],(function e(t){var n;return null==t&&(t=q),a(n=(null==e.$$s?this:e.$$s).$scan_for_all(t))?t.$tag(n):q}),{$$s:this})})),G(n,"$scan_for_all",(function(e){return this.$scan_for(e,this,M(new Map([[/\bpast\b/,"past"],[/\b(?:future|in)\b/,"future"]])))})),i(n,"$to_s",(function(){return l("pointer-",this.type.$to_s())}))})(o[0],$("Tag"))}(R[0],R),function(t,s){var o=[n(t,"Chronic")].concat(s),$=e.$r(o);(function(t,n,s){var o=r(t,n,"Scalar"),$=[o].concat(s),u=e.$r($);v($[0],"DAY_PORTIONS",["am","pm","morning","afternoon","evening","night"]),G(o,"$scan",(function(e,t){return d(e,"each_index",[],(function(n){var r=q,i=q,s=q,o=q;return null==n&&(n=q),r=e["$[]"](n),i=e["$[]"](l(n,1)),a(r.$word()["$=~"](/^\d+$/))?(s=r.$word().$to_i(),r.$tag(u("Scalar").$new(s)),a(C(u("Chronic"),"Time")["$could_be_subsecond?"](s))&&r.$tag(u("ScalarSubsecond").$new(s)),a(C(u("Chronic"),"Time")["$could_be_second?"](s))&&r.$tag(u("ScalarSecond").$new(s)),a(C(u("Chronic"),"Time")["$could_be_minute?"](s))&&r.$tag(u("ScalarMinute").$new(s)),a(C(u("Chronic"),"Time")["$could_be_hour?"](s))&&r.$tag(u("ScalarHour").$new(s)),a(i)&&a(u("DAY_PORTIONS")["$include?"](i.$word()))?q:(a(C(u("Chronic"),"Date")["$could_be_day?"](s))&&r.$tag(u("ScalarDay").$new(s)),a(C(u("Chronic"),"Date")["$could_be_month?"](s))&&r.$tag(u("ScalarMonth").$new(s)),a(C(u("Chronic"),"Date")["$could_be_year?"](s))?(o=C(u("Chronic"),"Date").$make_year(s,t["$[]"]("ambiguous_year_future_bias")),r.$tag(u("ScalarYear").$new(o.$to_i()))):q)):q}))})),i(o,"$to_s",A("scalar"))})(o[0],$("Tag"),o),function(e,t){var n=r(e,t,"ScalarSubsecond");n.$$prototype.type=q,i(n,"$to_s",(function e(){var t=e.$$p||q,n=this;return e.$$p=null,l(l(N(n,z(n,"to_s",e,!1,!0),"to_s",[],t),"-subsecond-"),n.type.$to_s())}))}(o[0],$("Scalar")),function(e,t){var n=r(e,t,"ScalarSecond");n.$$prototype.type=q,i(n,"$to_s",(function e(){var t=e.$$p||q,n=this;return e.$$p=null,l(l(N(n,z(n,"to_s",e,!1,!0),"to_s",[],t),"-second-"),n.type.$to_s())}))}(o[0],$("Scalar")),function(e,t){var n=r(e,t,"ScalarMinute");n.$$prototype.type=q,i(n,"$to_s",(function e(){var t=e.$$p||q,n=this;return e.$$p=null,l(l(N(n,z(n,"to_s",e,!1,!0),"to_s",[],t),"-minute-"),n.type.$to_s())}))}(o[0],$("Scalar")),function(e,t){var n=r(e,t,"ScalarHour");n.$$prototype.type=q,i(n,"$to_s",(function e(){var t=e.$$p||q,n=this;return e.$$p=null,l(l(N(n,z(n,"to_s",e,!1,!0),"to_s",[],t),"-hour-"),n.type.$to_s())}))}(o[0],$("Scalar")),function(e,t){var n=r(e,t,"ScalarDay");n.$$prototype.type=q,i(n,"$to_s",(function e(){var t=e.$$p||q,n=this;return e.$$p=null,l(l(N(n,z(n,"to_s",e,!1,!0),"to_s",[],t),"-day-"),n.type.$to_s())}))}(o[0],$("Scalar")),function(e,t){var n=r(e,t,"ScalarMonth");n.$$prototype.type=q,i(n,"$to_s",(function e(){var t=e.$$p||q,n=this;return e.$$p=null,l(l(N(n,z(n,"to_s",e,!1,!0),"to_s",[],t),"-month-"),n.type.$to_s())}))}(o[0],$("Scalar")),function(e,t){var n=r(e,t,"ScalarYear");n.$$prototype.type=q,i(n,"$to_s",(function e(){var t=e.$$p||q,n=this;return e.$$p=null,l(l(N(n,z(n,"to_s",e,!1,!0),"to_s",[],t),"-year-"),n.type.$to_s())}))}(o[0],$("Scalar"))}(R[0],R),function(t,s){var o=[n(t,"Chronic")].concat(s),$=e.$r(o);(function(t,n,s){var o=r(t,n,"Ordinal"),$=[o].concat(s),u=e.$r($);G(o,"$scan",(function(e,t){return d(e,"each_index",[],(function(n){var r,i=q,s=q;return null==n&&(n=q),a(e["$[]"](n).$word()["$=~"](/^(\d+)(st|nd|rd|th|\.)$/))?(i=((r=b["~"])===q?q:r["$[]"](1)).$to_i(),e["$[]"](n).$tag(u("Ordinal").$new(i)),a(C(u("Chronic"),"Date")["$could_be_day?"](i))&&e["$[]"](n).$tag(u("OrdinalDay").$new(i)),a(C(u("Chronic"),"Date")["$could_be_month?"](i))&&e["$[]"](n).$tag(u("OrdinalMonth").$new(i)),a(C(u("Chronic"),"Date")["$could_be_year?"](i))?(s=C(u("Chronic"),"Date").$make_year(i,t["$[]"]("ambiguous_year_future_bias")),e["$[]"](n).$tag(u("OrdinalYear").$new(s.$to_i()))):q):q}))})),i(o,"$to_s",A("ordinal"))})(o[0],$("Tag"),o),function(e,t){var n=r(e,t,"OrdinalDay");n.$$prototype.type=q,i(n,"$to_s",(function e(){var t=e.$$p||q,n=this;return e.$$p=null,l(l(N(n,z(n,"to_s",e,!1,!0),"to_s",[],t),"-day-"),n.type.$to_s())}))}(o[0],$("Ordinal")),function(e,t){var n=r(e,t,"OrdinalMonth");n.$$prototype.type=q,i(n,"$to_s",(function e(){var t=e.$$p||q,n=this;return e.$$p=null,l(l(N(n,z(n,"to_s",e,!1,!0),"to_s",[],t),"-month-"),n.type.$to_s())}))}(o[0],$("Ordinal")),function(e,t){var n=r(e,t,"OrdinalYear");n.$$prototype.type=q,i(n,"$to_s",(function e(){var t=e.$$p||q,n=this;return e.$$p=null,l(l(N(n,z(n,"to_s",e,!1,!0),"to_s",[],t),"-year-"),n.type.$to_s())}))}(o[0],$("Ordinal"))}(R[0],R),function(t,s){var o=[n(t,"Chronic")].concat(s),$=e.$r(o);(function(t,n,s){var o=r(t,n,"Separator"),$=[o].concat(s),u=e.$r($);G(o,"$scan",(function(e,t){return d(e,"each",[],(function e(t){var n=null==e.$$s?this:e.$$s,r=q;return null==t&&(t=q),a(r=n.$scan_for_commas(t))||a(r=n.$scan_for_dots(t))||a(r=n.$scan_for_colon(t))||a(r=n.$scan_for_space(t))||a(r=n.$scan_for_slash(t))||a(r=n.$scan_for_dash(t))||a(r=n.$scan_for_quote(t))||a(r=n.$scan_for_at(t))||a(r=n.$scan_for_in(t))||a(r=n.$scan_for_on(t))||a(r=n.$scan_for_and(t))||a(r=n.$scan_for_t(t))||a(r=n.$scan_for_w(t))?(t.$tag(r),q):q}),{$$s:this})})),G(o,"$scan_for_commas",(function(e){return this.$scan_for(e,u("SeparatorComma"),M(new Map([[/^,$/,"comma"]])))})),G(o,"$scan_for_dots",(function(e){return this.$scan_for(e,u("SeparatorDot"),M(new Map([[/^\.$/,"dot"]])))})),G(o,"$scan_for_colon",(function(e){return this.$scan_for(e,u("SeparatorColon"),M(new Map([[/^:$/,"colon"]])))})),G(o,"$scan_for_space",(function(e){return this.$scan_for(e,u("SeparatorSpace"),M(new Map([[/^ $/,"space"]])))})),G(o,"$scan_for_slash",(function(e){return this.$scan_for(e,u("SeparatorSlash"),M(new Map([[/^\/$/,"slash"]])))})),G(o,"$scan_for_dash",(function(e){return this.$scan_for(e,u("SeparatorDash"),M(new Map([[/^-$/,"dash"]])))})),G(o,"$scan_for_quote",(function(e){return this.$scan_for(e,u("SeparatorQuote"),M(new Map([[/^'$/,"single_quote"],[/^"$/,"double_quote"]])))})),G(o,"$scan_for_at",(function(e){return this.$scan_for(e,u("SeparatorAt"),M(new Map([[/^(at|@)$/,"at"]])))})),G(o,"$scan_for_in",(function(e){return this.$scan_for(e,u("SeparatorIn"),M(new Map([[/^in$/,"in"]])))})),G(o,"$scan_for_on",(function(e){return this.$scan_for(e,u("SeparatorOn"),M(new Map([[/^on$/,"on"]])))})),G(o,"$scan_for_and",(function(e){return this.$scan_for(e,u("SeparatorAnd"),M(new Map([[/^and$/,"and"]])))})),G(o,"$scan_for_t",(function(e){return this.$scan_for(e,u("SeparatorT"),M(new Map([[/^t$/,"T"]])))})),G(o,"$scan_for_w",(function(e){return this.$scan_for(e,u("SeparatorW"),M(new Map([[/^w$/,"W"]])))})),i(o,"$to_s",A("separator"))})(o[0],$("Tag"),o),function(e,t){var n=r(e,t,"SeparatorComma");i(n,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-comma")}))}(o[0],$("Separator")),function(e,t){var n=r(e,t,"SeparatorDot");i(n,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-dot")}))}(o[0],$("Separator")),function(e,t){var n=r(e,t,"SeparatorColon");i(n,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-colon")}))}(o[0],$("Separator")),function(e,t){var n=r(e,t,"SeparatorSpace");i(n,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-space")}))}(o[0],$("Separator")),function(e,t){var n=r(e,t,"SeparatorSlash");i(n,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-slash")}))}(o[0],$("Separator")),function(e,t){var n=r(e,t,"SeparatorDash");i(n,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-dash")}))}(o[0],$("Separator")),function(e,t){var n=r(e,t,"SeparatorQuote");n.$$prototype.type=q,i(n,"$to_s",(function e(){var t=e.$$p||q,n=this;return e.$$p=null,l(l(N(n,z(n,"to_s",e,!1,!0),"to_s",[],t),"-quote-"),n.type.$to_s())}))}(o[0],$("Separator")),function(e,t){var n=r(e,t,"SeparatorAt");i(n,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-at")}))}(o[0],$("Separator")),function(e,t){var n=r(e,t,"SeparatorIn");i(n,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-in")}))}(o[0],$("Separator")),function(e,t){var n=r(e,t,"SeparatorOn");i(n,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-on")}))}(o[0],$("Separator")),function(e,t){var n=r(e,t,"SeparatorAnd");i(n,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-and")}))}(o[0],$("Separator")),function(e,t){var n=r(e,t,"SeparatorT");i(n,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-T")}))}(o[0],$("Separator")),function(e,t){var n=r(e,t,"SeparatorW");i(n,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-W")}))}(o[0],$("Separator"))}(R[0],R),function(t,s){var o=[n(t,"Chronic")].concat(s),$=e.$r(o);(function(t,n,s){var o=r(t,n,"Sign"),$=[o].concat(s),u=e.$r($);G(o,"$scan",(function(e,t){return d(e,"each",[],(function e(t){var n=null==e.$$s?this:e.$$s,r=q;return null==t&&(t=q),a(r=n.$scan_for_plus(t))||a(r=n.$scan_for_minus(t))?(t.$tag(r),q):q}),{$$s:this})})),G(o,"$scan_for_plus",(function(e){return this.$scan_for(e,u("SignPlus"),M(new Map([[/^\+$/,"plus"]])))})),G(o,"$scan_for_minus",(function(e){return this.$scan_for(e,u("SignMinus"),M(new Map([[/^-$/,"minus"]])))})),i(o,"$to_s",A("sign"))})(o[0],$("Tag"),o),function(e,t){var n=r(e,t,"SignPlus");i(n,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-plus")}))}(o[0],$("Sign")),function(e,t){var n=r(e,t,"SignMinus");i(n,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-minus")}))}(o[0],$("Sign"))}(R[0],R),function(t,s){var o=[n(t,"Chronic")].concat(s),$=e.$r(o);(function(e,t){var n=r(e,t,"TimeZone");G(n,"$scan",(function(e,t){return d(e,"each",[],(function e(t){var n;return null==t&&(t=q),a(n=(null==e.$$s?this:e.$$s).$scan_for_all(t))?(t.$tag(n),q):q}),{$$s:this})})),G(n,"$scan_for_all",(function(e){return this.$scan_for(e,this,M(new Map([[/[PMCE][DS]T|UTC/i,"tz"],[/(tzminus)?\d{2}:?\d{2}/,"tz"]])))})),i(n,"$to_s",A("timezone"))})(o[0],$("Tag"))}(R[0],R),T.$require("strscan"),function(t,o){var u=[n(t,"Chronic")].concat(o);(function(t,n,o){var u=r(t,null,"Numerizer"),c=[u].concat(o),_=e.$r(c);v(c[0],"DIRECT_NUMS",[["eleven","11"],["twelve","12"],["thirteen","13"],["fourteen","14"],["fifteen","15"],["sixteen","16"],["seventeen","17"],["eighteen","18"],["nineteen","19"],["ninteen","19"],["zero","0"],["one","1"],["two","2"],["three","3"],["four(\\W|$)","4\\1"],["five","5"],["six(\\W|$)","6\\1"],["seven(\\W|$)","7\\1"],["eight(\\W|$)","8\\1"],["nine(\\W|$)","9\\1"],["ten","10"],["\\ba[\\b^$]","1"]]),v(c[0],"ORDINALS",[["first","1"],["third","3"],["fourth","4"],["fifth","5"],["sixth","6"],["seventh","7"],["eighth","8"],["ninth","9"],["tenth","10"],["twelfth","12"],["twentieth","20"],["thirtieth","30"],["fourtieth","40"],["fiftieth","50"],["sixtieth","60"],["seventieth","70"],["eightieth","80"],["ninetieth","90"]]),v(c[0],"TEN_PREFIXES",[["twenty",20],["thirty",30],["forty",40],["fourty",40],["fifty",50],["sixty",60],["seventy",70],["eighty",80],["ninety",90]]),v(c[0],"BIG_PREFIXES",[["hundred",100],["thousand",1e3],["million",1e6],["billion",1e9],["trillion",1e12]]),G(u,"$numerize",(function(e){return e=(e=(e=e.$dup()).$gsub(/ +|([^\d])-([^\d])/,"\\1 \\2")).$gsub(/a half/,"haAlf"),d(_("DIRECT_NUMS"),"each",[],(function(t){return null==t&&(t=q),e=e.$gsub(D([t["$[]"](0)],"i"),l("<num>",t["$[]"](1)))})),d(_("ORDINALS"),"each",[],(function(t){return null==t&&(t=q),e=e.$gsub(D([t["$[]"](0)],"i"),l(l("<num>",t["$[]"](1)),t["$[]"](0)["$[]"](-2,2)))})),d(_("TEN_PREFIXES"),"each",[],(function(t){return null==t&&(t=q),e=d(e,"gsub",[D(["(?:",t["$[]"](0),") *<num>(\\d(?=[^\\d]|$))*"],"i")],(function(){var e;return l("<num>",l(t["$[]"](1),((e=b["~"])===q?q:e["$[]"](1)).$to_i()).$to_s())}))})),d(_("TEN_PREFIXES"),"each",[],(function(t){return null==t&&(t=q),e=d(e,"gsub",[D([t["$[]"](0)],"i")],(function(){return l("<num>",t["$[]"](1).$to_s())}))})),d(_("BIG_PREFIXES"),"each",[],(function t(n){var r=null==t.$$s?this:t.$$s;return null==n&&(n=q),e=d(e,"gsub",[D(["(?:<num>)?(\\d*) *",n["$[]"](0)],"i")],(function(){var e;return a(((e=b["~"])===q?q:e["$[]"](1))["$empty?"]())?n["$[]"](1):l("<num>",f(n["$[]"](1),((e=b["~"])===q?q:e["$[]"](1)).$to_i()).$to_s())})),r.$andition(e)}),{$$s:this}),(e=d(e,"gsub",[/(\d+)(?: | and |-)*haAlf/i],(function(){var e;return l(((e=b["~"])===q?q:e["$[]"](1)).$to_f(),.5).$to_s()}))).$gsub(/<num>/,"")})),function(t,n){var r=[t].concat(n),o=e.$r(r);t.$private(),i(t,"$andition",(function(t){var n=q;for(n=o("StringScanner").$new(t);a(n.$scan_until(/<num>(\d+)( | and )<num>(\d+)(?=[^\w]|$)/i));)(a(n["$[]"](2)["$=~"](/and/))||a(s(n["$[]"](1).$size(),n["$[]"](3).$size())))&&(t["$[]="](e.Range.$new($(n.$pos(),n.$matched_size()),$(n.$pos(),1),!1),l("<num>",l(n["$[]"](1).$to_i(),n["$[]"](3).$to_i()).$to_s())),n.$reset())}))}(e.get_singleton_class(u),c)})(u[0],0,u)}(R[0],R),function(e,t){(function(e,t){var n=r(e,null,"Season");n.$attr_reader("start"),n.$attr_reader("end"),i(n,"$initialize",(function(e,t){return this.start=e,this.end=t})),G(n,"$find_next_season",(function(e,t){var n,r=q;return n=l((r=["spring","summer","autumn","winter"]).$index(e),f(1,t))["$%"](4),r["$[]"](n)})),G(n,"$season_after",(function(e){return this.$find_next_season(e,1)})),G(n,"$season_before",(function(e){return this.$find_next_season(e,-1)}))})([n(e,"Chronic")].concat(t)[0])}(R[0],R),function(t,s){var o=[n(t,"Chronic")].concat(s),$=e.$r(o);(function(t,n,s){var o=r(t,n,"Repeater"),$=[o].concat(s),u=e.$r($);o.$$prototype.now=q,G(o,"$scan",(function(e,t){return d(e,"each",[],(function e(n){var r=null==e.$$s?this:e.$$s,i=q;return null==n&&(n=q),a(i=r.$scan_for_season_names(n,t))||a(i=r.$scan_for_month_names(n,t))||a(i=r.$scan_for_day_names(n,t))||a(i=r.$scan_for_day_portions(n,t))||a(i=r.$scan_for_times(n,t))||a(i=r.$scan_for_units(n,t))?(n.$tag(i),q):q}),{$$s:this})})),G(o,"$scan_for_season_names",(function(e,t){return null==t&&(t=new Map),this.$scan_for(e,u("RepeaterSeasonName"),M(new Map([[/^springs?$/,"spring"],[/^summers?$/,"summer"],[/^(autumn)|(fall)s?$/,"autumn"],[/^winters?$/,"winter"]])),t)}),-2),G(o,"$scan_for_month_names",(function(e,t){return null==t&&(t=new Map),this.$scan_for(e,u("RepeaterMonthName"),M(new Map([[/^jan[:\.]?(uary)?$/,"january"],[/^feb[:\.]?(ruary)?$/,"february"],[/^mar[:\.]?(ch)?$/,"march"],[/^apr[:\.]?(il)?$/,"april"],[/^may$/,"may"],[/^jun[:\.]?e?$/,"june"],[/^jul[:\.]?y?$/,"july"],[/^aug[:\.]?(ust)?$/,"august"],[/^sep[:\.]?(t[:\.]?|tember)?$/,"september"],[/^oct[:\.]?(ober)?$/,"october"],[/^nov[:\.]?(ember)?$/,"november"],[/^dec[:\.]?(ember)?$/,"december"]])),t)}),-2),G(o,"$scan_for_day_names",(function(e,t){return null==t&&(t=new Map),this.$scan_for(e,u("RepeaterDayName"),M(new Map([[/^m[ou]n(day)?$/,"monday"],[/^t(ue|eu|oo|u|)s?(day)?$/,"tuesday"],[/^we(d|dnes|nds|nns)(day)?$/,"wednesday"],[/^th(u|ur|urs|ers)(day)?$/,"thursday"],[/^fr[iy](day)?$/,"friday"],[/^sat(t?[ue]rday)?$/,"saturday"],[/^su[nm](day)?$/,"sunday"]])),t)}),-2),G(o,"$scan_for_day_portions",(function(e,t){return null==t&&(t=new Map),this.$scan_for(e,u("RepeaterDayPortion"),M(new Map([[/^ams?$/,"am"],[/^pms?$/,"pm"],[/^mornings?$/,"morning"],[/^afternoons?$/,"afternoon"],[/^evenings?$/,"evening"],[/^(night|nite)s?$/,"night"]])),t)}),-2),G(o,"$scan_for_times",(function(e,t){return null==t&&(t=new Map),this.$scan_for(e,u("RepeaterTime"),/^\d{1,2}(:?\d{1,2})?([\.:]?\d{1,2}([\.:]\d{1,6})?)?$/,t)}),-2),G(o,"$scan_for_units",(function(e,t){try{var n=p("return");return null==t&&(t=new Map),d(M(new Map([[/^years?$/,"year"],[/^seasons?$/,"season"],[/^months?$/,"month"],[/^fortnights?$/,"fortnight"],[/^weeks?$/,"week"],[/^weekends?$/,"weekend"],[/^(week|business)days?$/,"weekday"],[/^days?$/,"day"],[/^hrs?$/,"hour"],[/^hours?$/,"hour"],[/^mins?$/,"minute"],[/^minutes?$/,"minute"],[/^secs?$/,"second"],[/^seconds?$/,"second"]])),"each",[],(function r(i,s){var o=q,$=q;if(null==i&&(i=q),null==s&&(s=q),!a(i["$=~"](e.$word())))return q;o=l("Repeater",s.$to_s().$capitalize()),$=u("Chronic").$const_get(o),n.$throw($.$new(s,t),r.$$is_lambda)}),{$$ret:n}),q}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}),-2),i(o,"$<=>",(function(e){return this.$width()["$<=>"](e.$width())})),i(o,"$width",(function(){return this.$raise("Repeater#width must be overridden in subclasses")})),i(o,"$next",(function(e){return a(this.now)?q:this.$raise("Start point must be set before calling #next")})),i(o,"$this",(function(e){return a(this.now)?q:this.$raise("Start point must be set before calling #this")})),i(o,"$to_s",A("repeater"))})(o[0],$("Tag"),o)}(R[0],R),function(t,o){var c=[n(t,"Chronic")].concat(o),_=e.$r(c);(function(t,n,o){var c=r(t,n,"RepeaterYear"),_=[c].concat(o),d=e.$r(_),p=c.$$prototype;p.current_year_start=p.now=q,v(_[0],"YEAR_SECONDS",31536e3),i(c,"$initialize",(function e(t,n){var r=e.$$p||q,i=this;return e.$$p=null,null==n&&(n=new Map),N(i,z(i,"initialize",e,!1,!0),"initialize",[t,n],r),i.current_year_start=q}),-2),i(c,"$next",(function e(t){var n=e.$$p||q,r=this,i=q;if(e.$$p=null,N(r,z(r,"next",e,!1,!0),"next",[t],n),a(r.current_year_start))i=u(t,"future")?1:-1,r.current_year_start=d("Chronic").$construct(l(r.current_year_start.$year(),i));else switch(t.valueOf()){case"future":r.current_year_start=d("Chronic").$construct(l(r.now.$year(),1));break;case"past":r.current_year_start=d("Chronic").$construct($(r.now.$year(),1))}return d("Span").$new(r.current_year_start,d("Chronic").$construct(l(r.current_year_start.$year(),1)))})),i(c,"$this",(function e(t){var n=e.$$p||q,r=this,i=q,a=q;switch(e.$$p=null,null==t&&(t="future"),N(r,z(r,"this",e,!1,!0),"this",[t],n),t.valueOf()){case"future":i=d("Chronic").$construct(r.now.$year(),r.now.$month(),l(r.now.$day(),1)),a=d("Chronic").$construct(l(r.now.$year(),1),1,1);break;case"past":i=d("Chronic").$construct(r.now.$year(),1,1),a=d("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day());break;case"none":i=d("Chronic").$construct(r.now.$year(),1,1),a=d("Chronic").$construct(l(r.now.$year(),1),1,1)}return d("Span").$new(i,a)}),-1),i(c,"$offset",(function(e,t,n){var r,i,a;return r=u(n,"future")?1:-1,i=this.$build_offset_time(e.$begin(),t,r),a=this.$build_offset_time(e.$end(),t,r),d("Span").$new(i,a)})),i(c,"$width",(function(){return d("YEAR_SECONDS")})),i(c,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-year")})),c.$private(),i(c,"$build_offset_time",(function(e,t,n){var r,i,o;return r=l(e.$year(),f(t,n)),i=this.$month_days(r,e.$month()),o=a(s(e.$day(),i))?i:e.$day(),d("Chronic").$construct(r,e.$month(),o,e.$hour(),e.$min(),e.$sec())})),i(c,"$month_days",(function(e,t){return a(C("Date")["$leap?"](e))?C(d("RepeaterMonth"),"MONTH_DAYS_LEAP")["$[]"]($(t,1)):C(d("RepeaterMonth"),"MONTH_DAYS")["$[]"]($(t,1))}))})(c[0],_("Repeater"),c)}(R[0],R),function(t,s){var o=[n(t,"Chronic")].concat(s),$=e.$r(o);(function(t,n,s){var o=r(t,n,"RepeaterSeason"),$=[o].concat(s),c=e.$r($),_=o.$$prototype;_.now=_.next_season_end=_.next_season_start=q,v($[0],"SEASON_SECONDS",7862400),v($[0],"SEASONS",new Map([["spring",c("Season").$new(c("MiniDate").$new(3,20),c("MiniDate").$new(6,20))],["summer",c("Season").$new(c("MiniDate").$new(6,21),c("MiniDate").$new(9,22))],["autumn",c("Season").$new(c("MiniDate").$new(9,23),c("MiniDate").$new(12,21))],["winter",c("Season").$new(c("MiniDate").$new(12,22),c("MiniDate").$new(3,19))]])),i(o,"$initialize",(function e(t,n){var r=e.$$p||q,i=this;return e.$$p=null,null==n&&(n=new Map),N(i,z(i,"initialize",e,!1,!0),"initialize",[t,n],r),i.next_season_start=q,i.next_season_end=q}),-2),i(o,"$next",(function e(t){var n,r,i=e.$$p||q,a=this;return e.$$p=null,N(a,z(a,"next",e,!1,!0),"next",[t],i),n=u(t,"future")?1:-1,r=c("Season").$find_next_season(a.$find_current_season(c("MiniDate").$from_time(a.now)),n),a.$find_next_season_span(n,r)})),i(o,"$this",(function e(t){var n,r,i,a=e.$$p||q,s=this,o=q,$=q;switch(e.$$p=null,null==t&&(t="future"),N(s,z(s,"this",e,!1,!0),"this",[t],a),n=u(t,"future")?1:-1,r=c("Chronic").$construct(s.now.$year(),s.now.$month(),s.now.$day()),i=s.$find_current_season(c("MiniDate").$from_time(s.now)),t.valueOf()){case"past":o=l(r,f(n,s.$num_seconds_til_start(i,n))),$=r;break;case"future":o=l(r,C(c("RepeaterDay"),"DAY_SECONDS")),$=l(r,f(n,s.$num_seconds_til_end(i,n)));break;case"none":o=l(r,f(n,s.$num_seconds_til_start(i,n))),$=l(r,f(n,s.$num_seconds_til_end(i,n)))}return s.$construct_season(o,$)}),-1),i(o,"$offset",(function(e,t,n){return c("Span").$new(this.$offset_by(e.$begin(),t,n),this.$offset_by(e.$end(),t,n))})),i(o,"$offset_by",(function(e,t,n){var r;return r=u(n,"future")?1:-1,l(e,f(f(t,r),c("SEASON_SECONDS")))})),i(o,"$width",(function(){return c("SEASON_SECONDS")})),i(o,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-season")})),o.$private(),i(o,"$find_next_season_span",(function(e,t){var n=this;return a(n.next_season_start)||a(n.next_season_end)||(n.next_season_start=c("Chronic").$construct(n.now.$year(),n.now.$month(),n.now.$day()),n.next_season_end=c("Chronic").$construct(n.now.$year(),n.now.$month(),n.now.$day())),n.next_season_start=l(n.next_season_start,f(e,n.$num_seconds_til_start(t,e))),n.next_season_end=l(n.next_season_end,f(e,n.$num_seconds_til_end(t,e))),n.$construct_season(n.next_season_start,n.next_season_end)})),i(o,"$find_current_season",(function(e){return d(["spring","summer","autumn","winter"],"find",[],(function(t){return null==t&&(t=q),e["$is_between?"](c("SEASONS")["$[]"](t).$start(),c("SEASONS")["$[]"](t).$end())}))})),i(o,"$num_seconds_til",(function(e,t){var n,r=this,i=q;for(n=c("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day()),i=0;!a(c("MiniDate").$from_time(l(n,f(t,i)))["$equals?"](e));)i=l(i,C(c("RepeaterDay"),"DAY_SECONDS"));return i})),i(o,"$num_seconds_til_start",(function(e,t){return this.$num_seconds_til(c("SEASONS")["$[]"](e).$start(),t)})),i(o,"$num_seconds_til_end",(function(e,t){return this.$num_seconds_til(c("SEASONS")["$[]"](e).$end(),t)})),i(o,"$construct_season",(function(e,t){return c("Span").$new(c("Chronic").$construct(e.$year(),e.$month(),e.$day()),c("Chronic").$construct(t.$year(),t.$month(),t.$day()))}))})(o[0],$("Repeater"),o)}(R[0],R),function(t,a){var s=[n(t,"Chronic")].concat(a),o=e.$r(s);(function(t,n,a){var s=r(t,n,"RepeaterSeasonName"),o=[s].concat(a),$=e.$r(o),c=s.$$prototype;c.type=c.now=q,v(o[0],"SEASON_SECONDS",7862400),v(o[0],"DAY_SECONDS",86400),i(s,"$next",(function(e){var t;return t=u(e,"future")?1:-1,this.$find_next_season_span(t,this.type)})),i(s,"$this",(function(e){var t,n,r,i,a,s=this,o=q,c=q;switch(null==e&&(e="future"),t=u(e,"future")?1:-1,n=$("Chronic").$construct(s.now.$year(),s.now.$month(),s.now.$day()),r=l(n,f(t,s.$num_seconds_til_start(s.type,t))),i=l(n,f(t,s.$num_seconds_til_end(s.type,t))),a=s.$find_current_season($("MiniDate").$from_time(s.now)),e.valueOf()){case"past":o=r,c=u(a,s.type)?n:i;break;case"future":o=u(a,s.type)?l(n,C($("RepeaterDay"),"DAY_SECONDS")):r,c=i;break;case"none":o=r,c=i}return s.$construct_season(o,c)}),-1),i(s,"$offset",(function(e,t,n){return $("Span").$new(this.$offset_by(e.$begin(),t,n),this.$offset_by(e.$end(),t,n))})),i(s,"$offset_by",(function(e,t,n){var r;return r=u(n,"future")?1:-1,l(e,f(f(t,r),C($("RepeaterYear"),"YEAR_SECONDS")))}))})(s[0],o("RepeaterSeason"),s)}(R[0],R),function(t,o){var c=[n(t,"Chronic")].concat(o),_=e.$r(c);(function(t,n,o){var c=r(t,n,"RepeaterMonth"),_=[c].concat(o),d=e.$r(_),p=c.$$prototype;p.current_month_start=p.now=q,v(_[0],"MONTH_SECONDS",2592e3),v(_[0],"YEAR_MONTHS",12),v(_[0],"MONTH_DAYS",[31,28,31,30,31,30,31,31,30,31,30,31]),v(_[0],"MONTH_DAYS_LEAP",[31,29,31,30,31,30,31,31,30,31,30,31]),i(c,"$initialize",(function e(t,n){var r=e.$$p||q,i=this;return e.$$p=null,null==n&&(n=new Map),N(i,z(i,"initialize",e,!1,!0),"initialize",[t,n],r),i.current_month_start=q}),-2),i(c,"$next",(function e(t){var n=e.$$p||q,r=this;return e.$$p=null,N(r,z(r,"next",e,!1,!0),"next",[t],n),a(r.current_month_start)?r.current_month_start=r.$offset_by(d("Chronic").$construct(r.current_month_start.$year(),r.current_month_start.$month()),1,t):r.current_month_start=r.$offset_by(d("Chronic").$construct(r.now.$year(),r.now.$month()),1,t),d("Span").$new(r.current_month_start,d("Chronic").$construct(r.current_month_start.$year(),l(r.current_month_start.$month(),1)))})),i(c,"$this",(function e(t){var n=e.$$p||q,r=this,i=q,a=q;switch(e.$$p=null,null==t&&(t="future"),N(r,z(r,"this",e,!1,!0),"this",[t],n),t.valueOf()){case"future":i=d("Chronic").$construct(r.now.$year(),r.now.$month(),l(r.now.$day(),1)),a=r.$offset_by(d("Chronic").$construct(r.now.$year(),r.now.$month()),1,"future");break;case"past":i=d("Chronic").$construct(r.now.$year(),r.now.$month()),a=d("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day());break;case"none":i=d("Chronic").$construct(r.now.$year(),r.now.$month()),a=r.$offset_by(d("Chronic").$construct(r.now.$year(),r.now.$month()),1,"future")}return d("Span").$new(i,a)}),-1),i(c,"$offset",(function(e,t,n){return d("Span").$new(this.$offset_by(e.$begin(),t,n),this.$offset_by(e.$end(),t,n))})),i(c,"$offset_by",(function(e,t,n){var r,i,o,c,_,p=q,h=q;return r=u(n,"future")?1:-1,i=y(f(r,t),d("YEAR_MONTHS")),o=f(r,t)["$%"](d("YEAR_MONTHS")),p=l(e.$year(),i),h=l(e.$month(),o),a(s(h,d("YEAR_MONTHS")))&&(p=l(p,1),h=$(h,d("YEAR_MONTHS"))),c=this.$month_days(p,h),_=a(s(e.$day(),c))?c:e.$day(),d("Chronic").$construct(p,h,_,e.$hour(),e.$min(),e.$sec())})),i(c,"$width",(function(){return d("MONTH_SECONDS")})),i(c,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-month")})),c.$private(),i(c,"$month_days",(function(e,t){return a(C("Date")["$leap?"](e))?d("MONTH_DAYS_LEAP")["$[]"]($(t,1)):d("MONTH_DAYS")["$[]"]($(t,1))}))})(c[0],_("Repeater"),c)}(R[0],R),function(t,o){var d=[n(t,"Chronic")].concat(o),p=e.$r(d);(function(t,n,o){var d=r(t,n,"RepeaterMonthName"),p=[d].concat(o),f=e.$r(p),h=d.$$prototype;h.current_month_begin=h.now=h.index=h.type=q,v(p[0],"MONTH_SECONDS",2592e3),v(p[0],"MONTHS",new Map([["january",1],["february",2],["march",3],["april",4],["may",5],["june",6],["july",7],["august",8],["september",9],["october",10],["november",11],["december",12]])),i(d,"$initialize",(function e(t,n){var r=e.$$p||q,i=this;return e.$$p=null,null==n&&(n=new Map),N(i,z(i,"initialize",e,!1,!0),"initialize",[t,n],r),i.current_month_begin=q}),-2),i(d,"$next",(function e(t){var n,r,i=e.$$p||q,o=this,d=q,p=q;if(e.$$p=null,N(o,z(o,"next",e,!1,!0),"next",[t],i),a(o.current_month_begin))switch(t.valueOf()){case"future":o.current_month_begin=f("Chronic").$construct(l(o.current_month_begin.$year(),1),o.current_month_begin.$month());break;case"past":o.current_month_begin=f("Chronic").$construct($(o.current_month_begin.$year(),1),o.current_month_begin.$month())}else{switch(t.valueOf()){case"future":a(c(o.now.$month(),o.$index()))?o.current_month_begin=f("Chronic").$construct(o.now.$year(),o.$index()):a(s(o.now.$month(),o.$index()))&&(o.current_month_begin=f("Chronic").$construct(l(o.now.$year(),1),o.$index()));break;case"none":a(k(o.now.$month(),o.$index()))?o.current_month_begin=f("Chronic").$construct(o.now.$year(),o.$index()):a(s(o.now.$month(),o.$index()))&&(o.current_month_begin=f("Chronic").$construct(l(o.now.$year(),1),o.$index()));break;case"past":a(_(o.now.$month(),o.$index()))?o.current_month_begin=f("Chronic").$construct(o.now.$year(),o.$index()):a(c(o.now.$month(),o.$index()))&&(o.current_month_begin=f("Chronic").$construct($(o.now.$year(),1),o.$index()))}a(o.current_month_begin)||o.$raise("Current month should be set by now")}return n=o.current_month_begin.$year(),r=o.current_month_begin.$month(),u(r,12)?(d=l(n,1),p=1):(d=n,p=l(r,1)),f("Span").$new(o.current_month_begin,f("Chronic").$construct(d,p))})),i(d,"$this",(function e(t){var n=e.$$p||q,r=this;switch(e.$$p=null,null==t&&(t="future"),N(r,z(r,"this",e,!1,!0),"this",[t],n),t.valueOf()){case"past":return r.$next(t);case"future":case"none":return r.$next("none");default:return q}}),-1),i(d,"$width",(function(){return f("MONTH_SECONDS")})),i(d,"$index",(function(){var e,t=this;return t.index=a(e=t.index)?e:f("MONTHS")["$[]"](t.type)})),i(d,"$to_s",(function e(){var t=e.$$p||q,n=this;return e.$$p=null,l(l(N(n,z(n,"to_s",e,!1,!0),"to_s",[],t),"-monthname-"),n.type.$to_s())}))})(d[0],p("Repeater"),d)}(R[0],R),function(t,s){var o=[n(t,"Chronic")].concat(s),$=e.$r(o);(function(t,n,s){var o=r(t,n,"RepeaterFortnight"),$=[o].concat(s),c=e.$r($),_=o.$$prototype;_.current_fortnight_start=_.now=q,v($[0],"FORTNIGHT_SECONDS",1209600),i(o,"$initialize",(function e(t,n){var r=e.$$p||q,i=this;return e.$$p=null,null==n&&(n=new Map),N(i,z(i,"initialize",e,!1,!0),"initialize",[t,n],r),i.current_fortnight_start=q}),-2),i(o,"$next",(function e(t){var n=e.$$p||q,r=this,i=q,s=q,o=q,$=q;if(e.$$p=null,N(r,z(r,"next",e,!1,!0),"next",[t],n),a(r.current_fortnight_start))i=u(t,"future")?1:-1,r.current_fortnight_start=l(r.current_fortnight_start,f(i,c("FORTNIGHT_SECONDS")));else switch(t.valueOf()){case"future":(s=c("RepeaterDayName").$new("sunday"))["$start="](r.now),o=s.$next("future"),r.current_fortnight_start=o.$begin();break;case"past":(s=c("RepeaterDayName").$new("sunday"))["$start="](l(r.now,C(c("RepeaterDay"),"DAY_SECONDS"))),d(2,"times",[],(function(){return s.$next("past")})),$=s.$next("past"),r.current_fortnight_start=$.$begin()}return c("Span").$new(r.current_fortnight_start,l(r.current_fortnight_start,c("FORTNIGHT_SECONDS")))})),i(o,"$this",(function e(t){var n=e.$$p||q,r=this,i=q,a=q,s=q;switch(e.$$p=null,null==t&&(t="future"),N(r,z(r,"this",e,!1,!0),"this",[t],n),u(t,"none")&&(t="future"),t.valueOf()){case"future":return i=l(c("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day(),r.now.$hour()),C(c("RepeaterHour"),"HOUR_SECONDS")),(a=c("RepeaterDayName").$new("sunday"))["$start="](r.now),a.$this("future"),s=a.$this("future").$begin(),c("Span").$new(i,s);case"past":return s=c("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day(),r.now.$hour()),(a=c("RepeaterDayName").$new("sunday"))["$start="](r.now),i=a.$next("past").$begin(),c("Span").$new(i,s);default:return q}}),-1),i(o,"$offset",(function(e,t,n){var r;return r=u(n,"future")?1:-1,l(e,f(f(r,t),c("FORTNIGHT_SECONDS")))})),i(o,"$width",(function(){return c("FORTNIGHT_SECONDS")})),i(o,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-fortnight")}))})(o[0],$("Repeater"),o)}(R[0],R),function(t,s){var o=[n(t,"Chronic")].concat(s),$=e.$r(o);(function(t,n,s){var o=r(t,n,"RepeaterWeek"),$=[o].concat(s),c=e.$r($),_=o.$$prototype;_.current_week_start=_.now=q,v($[0],"WEEK_SECONDS",604800),i(o,"$initialize",(function e(t,n){var r=e.$$p||q,i=this;return e.$$p=null,null==n&&(n=new Map),N(i,z(i,"initialize",e,!1,!0),"initialize",[t,n],r),i.current_week_start=q}),-2),i(o,"$next",(function e(t){var n=e.$$p||q,r=this,i=q,s=q,o=q,$=q;if(e.$$p=null,N(r,z(r,"next",e,!1,!0),"next",[t],n),a(r.current_week_start))i=u(t,"future")?1:-1,r.current_week_start=l(r.current_week_start,f(i,c("WEEK_SECONDS")));else switch(t.valueOf()){case"future":(s=c("RepeaterDayName").$new("sunday"))["$start="](r.now),o=s.$next("future"),r.current_week_start=o.$begin();break;case"past":(s=c("RepeaterDayName").$new("sunday"))["$start="](l(r.now,C(c("RepeaterDay"),"DAY_SECONDS"))),s.$next("past"),$=s.$next("past"),r.current_week_start=$.$begin()}return c("Span").$new(r.current_week_start,l(r.current_week_start,c("WEEK_SECONDS")))})),i(o,"$this",(function e(t){var n=e.$$p||q,r=this,i=q,a=q,s=q;switch(e.$$p=null,null==t&&(t="future"),N(r,z(r,"this",e,!1,!0),"this",[t],n),t.valueOf()){case"future":return i=l(c("Chronic").$time_class().$local(r.now.$year(),r.now.$month(),r.now.$day(),r.now.$hour()),C(c("RepeaterHour"),"HOUR_SECONDS")),(a=c("RepeaterDayName").$new("sunday"))["$start="](r.now),s=a.$this("future").$begin(),c("Span").$new(i,s);case"past":return s=c("Chronic").$time_class().$local(r.now.$year(),r.now.$month(),r.now.$day(),r.now.$hour()),(a=c("RepeaterDayName").$new("sunday"))["$start="](r.now),i=a.$next("past").$begin(),c("Span").$new(i,s);case"none":return(a=c("RepeaterDayName").$new("sunday"))["$start="](r.now),i=a.$next("past").$begin(),c("Span").$new(i,l(i,c("WEEK_SECONDS")));default:return q}}),-1),i(o,"$offset",(function(e,t,n){var r;return r=u(n,"future")?1:-1,l(e,f(f(r,t),c("WEEK_SECONDS")))})),i(o,"$width",(function(){return c("WEEK_SECONDS")})),i(o,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-week")}))})(o[0],$("Repeater"),o)}(R[0],R),function(t,s){var o=[n(t,"Chronic")].concat(s),c=e.$r(o);(function(t,n,s){var o=r(t,n,"RepeaterWeekend"),c=[o].concat(s),_=e.$r(c),d=o.$$prototype;d.current_week_start=d.now=q,v(c[0],"WEEKEND_SECONDS",172800),i(o,"$initialize",(function e(t,n){var r=e.$$p||q,i=this;return e.$$p=null,null==n&&(n=new Map),N(i,z(i,"initialize",e,!1,!0),"initialize",[t,n],r),i.current_week_start=q}),-2),i(o,"$next",(function e(t){var n=e.$$p||q,r=this,i=q,s=q,o=q,$=q;if(e.$$p=null,N(r,z(r,"next",e,!1,!0),"next",[t],n),a(r.current_week_start))i=u(t,"future")?1:-1,r.current_week_start=l(r.current_week_start,f(i,C(_("RepeaterWeek"),"WEEK_SECONDS")));else switch(t.valueOf()){case"future":(s=_("RepeaterDayName").$new("saturday"))["$start="](r.now),o=s.$next("future"),r.current_week_start=o.$begin();break;case"past":(s=_("RepeaterDayName").$new("saturday"))["$start="](l(r.now,C(_("RepeaterDay"),"DAY_SECONDS"))),$=s.$next("past"),r.current_week_start=$.$begin()}return _("Span").$new(r.current_week_start,l(r.current_week_start,_("WEEKEND_SECONDS")))})),i(o,"$this",(function e(t){var n=e.$$p||q,r=this,i=q,a=q,s=q;switch(e.$$p=null,null==t&&(t="future"),N(r,z(r,"this",e,!1,!0),"this",[t],n),t.valueOf()){case"future":case"none":return(i=_("RepeaterDayName").$new("saturday"))["$start="](r.now),a=i.$this("future"),_("Span").$new(a.$begin(),l(a.$begin(),_("WEEKEND_SECONDS")));case"past":return(i=_("RepeaterDayName").$new("saturday"))["$start="](r.now),s=i.$this("past"),_("Span").$new(s.$begin(),l(s.$begin(),_("WEEKEND_SECONDS")));default:return q}}),-1),i(o,"$offset",(function(e,t,n){var r,i,a=q;return r=u(n,"future")?1:-1,(a=_("RepeaterWeekend").$new("weekend"))["$start="](e.$begin()),i=l(a.$next(n).$begin(),f(f($(t,1),r),C(_("RepeaterWeek"),"WEEK_SECONDS"))),_("Span").$new(i,l(i,$(e.$end(),e.$begin())))})),i(o,"$width",(function(){return _("WEEKEND_SECONDS")})),i(o,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-weekend")}))})(o[0],c("Repeater"),o)}(R[0],R),function(t,s){var o=[n(t,"Chronic")].concat(s),$=e.$r(o);(function(t,n,s){var o=r(t,n,"RepeaterWeekday"),$=[o].concat(s),c=e.$r($),_=o.$$prototype;_.current_weekday_start=_.now=q,v($[0],"DAY_SECONDS",86400),v($[0],"DAYS",new Map([["sunday",0],["monday",1],["tuesday",2],["wednesday",3],["thursday",4],["friday",5],["saturday",6]])),i(o,"$initialize",(function e(t,n){var r=e.$$p||q,i=this;return e.$$p=null,null==n&&(n=new Map),N(i,z(i,"initialize",e,!1,!0),"initialize",[t,n],r),i.current_weekday_start=q}),-2),i(o,"$next",(function e(t){var n,r=e.$$p||q,i=this;if(e.$$p=null,N(i,z(i,"next",e,!1,!0),"next",[t],r),n=u(t,"future")?1:-1,a(i.current_weekday_start))!function(){try{var e=p("break");return d(i,"loop",[],(function t(){var r=null==t.$$s?this:t.$$s;if(null==r.current_weekday_start&&(r.current_weekday_start=q),r.current_weekday_start=l(r.current_weekday_start,f(n,c("DAY_SECONDS"))),!a(r["$is_weekday?"](r.current_weekday_start.$wday())))return q;e.$throw(q,t.$$is_lambda)}),{$$s:i})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}();else for(i.current_weekday_start=c("Chronic").$construct(i.now.$year(),i.now.$month(),i.now.$day()),i.current_weekday_start=l(i.current_weekday_start,f(n,c("DAY_SECONDS")));!a(i["$is_weekday?"](i.current_weekday_start.$wday()));)i.current_weekday_start=l(i.current_weekday_start,f(n,c("DAY_SECONDS")));return c("Span").$new(i.current_weekday_start,l(i.current_weekday_start,c("DAY_SECONDS")))})),i(o,"$this",(function e(t){var n=e.$$p||q,r=this;switch(e.$$p=null,null==t&&(t="future"),N(r,z(r,"this",e,!1,!0),"this",[t],n),t.valueOf()){case"past":return r.$next("past");case"future":case"none":return r.$next("future");default:return q}}),-1),i(o,"$offset",(function(e,t,n){var r,i=q,s=q;for(r=u(n,"future")?1:-1,i=0,s=0;!u(i,t);)s=l(s,f(r,c("DAY_SECONDS"))),a(this["$is_weekday?"](l(e.$begin(),s).$wday()))&&(i=l(i,1));return l(e,s)})),i(o,"$width",(function(){return c("DAY_SECONDS")})),i(o,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-weekday")})),o.$private(),i(o,"$is_weekend?",(function(e){var t;return a(t=e["$=="](this.$symbol_to_number("saturday")))?t:e["$=="](this.$symbol_to_number("sunday"))})),i(o,"$is_weekday?",(function(e){return this["$is_weekend?"](e)["$!"]()})),i(o,"$symbol_to_number",(function(e){var t;return a(t=c("DAYS")["$[]"](e))?t:this.$raise("Invalid symbol specified")}))})(o[0],$("Repeater"),o)}(R[0],R),function(t,s){var o=[n(t,"Chronic")].concat(s),$=e.$r(o);(function(t,n,s){var o=r(t,n,"RepeaterDay"),$=[o].concat(s),c=e.$r($),_=o.$$prototype;_.current_day_start=_.now=q,v($[0],"DAY_SECONDS",86400),i(o,"$initialize",(function e(t,n){var r=e.$$p||q,i=this;return e.$$p=null,null==n&&(n=new Map),N(i,z(i,"initialize",e,!1,!0),"initialize",[t,n],r),i.current_day_start=q}),-2),i(o,"$next",(function e(t){var n,r=e.$$p||q,i=this;return e.$$p=null,N(i,z(i,"next",e,!1,!0),"next",[t],r),a(i.current_day_start)||(i.current_day_start=c("Chronic").$time_class().$local(i.now.$year(),i.now.$month(),i.now.$day())),n=u(t,"future")?1:-1,i.current_day_start=l(i.current_day_start,f(n,c("DAY_SECONDS"))),c("Span").$new(i.current_day_start,l(i.current_day_start,c("DAY_SECONDS")))})),i(o,"$this",(function e(t){var n=e.$$p||q,r=this,i=q,a=q;switch(e.$$p=null,null==t&&(t="future"),N(r,z(r,"this",e,!1,!0),"this",[t],n),t.valueOf()){case"future":i=c("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day(),r.now.$hour()),a=l(c("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day()),c("DAY_SECONDS"));break;case"past":i=c("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day()),a=c("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day(),r.now.$hour());break;case"none":i=c("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day()),a=l(c("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day()),c("DAY_SECONDS"))}return c("Span").$new(i,a)}),-1),i(o,"$offset",(function(e,t,n){var r;return r=u(n,"future")?1:-1,l(e,f(f(r,t),c("DAY_SECONDS")))})),i(o,"$width",(function(){return c("DAY_SECONDS")})),i(o,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-day")}))})(o[0],$("Repeater"),o)}(R[0],R),function(t,s){var o=[n(t,"Chronic")].concat(s),$=e.$r(o);(function(t,n,s){var o=r(t,n,"RepeaterDayName"),$=[o].concat(s),c=e.$r($),_=o.$$prototype;_.current_date=_.now=_.type=q,v($[0],"DAY_SECONDS",86400),i(o,"$initialize",(function e(t,n){var r=e.$$p||q,i=this;return e.$$p=null,null==n&&(n=new Map),N(i,z(i,"initialize",e,!1,!0),"initialize",[t,n],r),i.current_date=q}),-2),i(o,"$next",(function e(t){var n,r=e.$$p||q,i=this,s=q,o=q;if(e.$$p=null,N(i,z(i,"next",e,!1,!0),"next",[t],r),n=u(t,"future")?1:-1,a(i.current_date))i.current_date=l(i.current_date,f(n,7));else for(i.current_date=C("Date").$new(i.now.$year(),i.now.$month(),i.now.$day()),i.current_date=l(i.current_date,n),s=i.$symbol_to_number(i.type);h(i.current_date.$wday(),s);)i.current_date=l(i.current_date,n);return o=i.current_date.$succ(),c("Span").$new(c("Chronic").$construct(i.current_date.$year(),i.current_date.$month(),i.current_date.$day()),c("Chronic").$construct(o.$year(),o.$month(),o.$day()))})),i(o,"$this",(function e(t){var n=e.$$p||q,r=this;return e.$$p=null,null==t&&(t="future"),N(r,z(r,"this",e,!1,!0),"this",[t],n),u(t,"none")&&(t="future"),r.$next(t)}),-1),i(o,"$width",(function(){return c("DAY_SECONDS")})),i(o,"$to_s",(function e(){var t=e.$$p||q,n=this;return e.$$p=null,l(l(N(n,z(n,"to_s",e,!1,!0),"to_s",[],t),"-dayname-"),n.type.$to_s())})),o.$private(),i(o,"$symbol_to_number",(function(e){var t,n=q;return n=new Map([["sunday",0],["monday",1],["tuesday",2],["wednesday",3],["thursday",4],["friday",5],["saturday",6]]),a(t=n["$[]"](e))?t:this.$raise("Invalid symbol specified")}))})(o[0],$("Repeater"),o)}(R[0],R),function(t,o){var _=[n(t,"Chronic")].concat(o),d=e.$r(_);(function(t,n,o){var _=r(t,n,"RepeaterDayPortion"),d=[_].concat(o),p=e.$r(d),h=_.$$prototype;h.type=h.range=h.current_span=h.now=q,v(d[0],"PORTIONS",new Map([["am",e.Range.$new(0,$(f(f(12,60),60),1),!1)],["pm",e.Range.$new(f(f(12,60),60),$(f(f(24,60),60),1),!1)],["morning",e.Range.$new(f(f(6,60),60),f(f(12,60),60),!1)],["afternoon",e.Range.$new(f(f(13,60),60),f(f(17,60),60),!1)],["evening",e.Range.$new(f(f(17,60),60),f(f(20,60),60),!1)],["night",e.Range.$new(f(f(20,60),60),f(f(24,60),60),!1)]])),i(_,"$initialize",(function t(n,r){var i=t.$$p||q,s=this,o=q;return t.$$p=null,null==r&&(r=new Map),N(s,z(s,"initialize",t,!1,!0),"initialize",[n,r],i),s.current_span=q,a(n["$kind_of?"](p("Integer")))?s.range=e.Range.$new(f(f(s.type,60),60),f(f(l(s.type,12),60),60),!1):(s.range=p("PORTIONS")["$[]"](n),a(o=s.range)||s.$raise("Invalid type '"+n+"' for RepeaterDayPortion")),a(o=s.range)?o:s.$raise("Range should have been set by now")}),-2),i(_,"$next",(function e(t){var n=e.$$p||q,r=this,i=q,o=q,u=q,_=q,d=q,f=q,h=q,m=q;if(e.$$p=null,N(r,z(r,"next",e,!1,!0),"next",[t],n),a(r.current_span))return i=E("future",o=t)?1:E("past",o)?-1:q,u=p("Chronic").$construct(r.current_span.$begin().$year(),r.current_span.$begin().$month(),l(r.current_span.$begin().$day(),i),r.current_span.$begin().$hour(),r.current_span.$begin().$min(),r.current_span.$begin().$sec()),_=p("Chronic").$construct(r.current_span.$end().$year(),r.current_span.$end().$month(),l(r.current_span.$end().$day(),i),r.current_span.$end().$hour(),r.current_span.$end().$min(),r.current_span.$end().$sec()),r.current_span=p("Span").$new(u,_);if(d=$(r.now,p("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day())),a(c(d,r.range.$begin())))switch(t.valueOf()){case"future":f=l(p("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day()),r.range.$begin());break;case"past":f=l(p("Chronic").$construct(r.now.$year(),r.now.$month(),$(r.now.$day(),1)),r.range.$begin())}else if(a(s(d,r.range.$end())))switch(t.valueOf()){case"future":f=l(p("Chronic").$construct(r.now.$year(),r.now.$month(),l(r.now.$day(),1)),r.range.$begin());break;case"past":f=l(p("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day()),r.range.$begin())}else switch(t.valueOf()){case"future":f=l(p("Chronic").$construct(r.now.$year(),r.now.$month(),l(r.now.$day(),1)),r.range.$begin());break;case"past":f=l(p("Chronic").$construct(r.now.$year(),r.now.$month(),$(r.now.$day(),1)),r.range.$begin())}return h=$(r.range.$end(),r.range.$begin()),m=r.$construct_date_from_reference_and_offset(f,h),r.current_span=p("Span").$new(f,m)})),i(_,"$this",(function e(t){var n,r,i=e.$$p||q,a=this;return e.$$p=null,null==t&&(t="future"),N(a,z(a,"this",e,!1,!0),"this",[t],i),n=l(p("Chronic").$construct(a.now.$year(),a.now.$month(),a.now.$day()),a.range.$begin()),r=a.$construct_date_from_reference_and_offset(n),a.current_span=p("Span").$new(n,r)}),-1),i(_,"$offset",(function(e,t,n){var r,i;return this.now=e.$begin(),r=this.$next(n),i=u(n,"future")?1:-1,l(r,f(f(i,$(t,1)),C(p("RepeaterDay"),"DAY_SECONDS")))})),i(_,"$width",(function(){var e=this;return a(e.range)||e.$raise("Range has not been set"),a(e.current_span)?e.current_span.$width():a(e.type["$kind_of?"](p("Integer")))?f(f(12,60),60):$(e.range.$end(),e.range.$begin())})),i(_,"$to_s",(function e(){var t=e.$$p||q,n=this;return e.$$p=null,l(l(N(n,z(n,"to_s",e,!1,!0),"to_s",[],t),"-dayportion-"),n.type.$to_s())})),_.$private(),i(_,"$construct_date_from_reference_and_offset",(function(e,t){var n,r,i,s,o;return null==t&&(t=q),n=a(r=t)?r:$(this.range.$end(),this.range.$begin()),i=$(n,f(12,60))["$%"](60),s=y($(n,i),60)["$%"](60),o=l(y($($(n,s),i),f(60,60)),e.$hour()["$%"](24)),p("Chronic").$construct(e.$year(),e.$month(),e.$day(),o,s,i)}),-2)})(_[0],d("Repeater"),_)}(R[0],R),function(t,s){var o=[n(t,"Chronic")].concat(s),c=e.$r(o);(function(t,n,s){var o=r(t,n,"RepeaterHour"),c=[o].concat(s),_=e.$r(c),d=o.$$prototype;d.current_hour_start=d.now=q,v(c[0],"HOUR_SECONDS",3600),i(o,"$initialize",(function e(t,n){var r=e.$$p||q,i=this;return e.$$p=null,null==n&&(n=new Map),N(i,z(i,"initialize",e,!1,!0),"initialize",[t,n],r),i.current_hour_start=q}),-2),i(o,"$next",(function e(t){var n=e.$$p||q,r=this,i=q;if(e.$$p=null,N(r,z(r,"next",e,!1,!0),"next",[t],n),a(r.current_hour_start))i=u(t,"future")?1:-1,r.current_hour_start=l(r.current_hour_start,f(i,_("HOUR_SECONDS")));else switch(t.valueOf()){case"future":r.current_hour_start=_("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day(),l(r.now.$hour(),1));break;case"past":r.current_hour_start=_("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day(),$(r.now.$hour(),1))}return _("Span").$new(r.current_hour_start,l(r.current_hour_start,_("HOUR_SECONDS")))})),i(o,"$this",(function e(t){var n=e.$$p||q,r=this,i=q,a=q;switch(e.$$p=null,null==t&&(t="future"),N(r,z(r,"this",e,!1,!0),"this",[t],n),t.valueOf()){case"future":i=_("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day(),r.now.$hour(),l(r.now.$min(),1)),a=_("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day(),l(r.now.$hour(),1));break;case"past":i=_("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day(),r.now.$hour()),a=_("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day(),r.now.$hour(),r.now.$min());break;case"none":i=_("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day(),r.now.$hour()),a=l(i,_("HOUR_SECONDS"))}return _("Span").$new(i,a)}),-1),i(o,"$offset",(function(e,t,n){var r;return r=u(n,"future")?1:-1,l(e,f(f(r,t),_("HOUR_SECONDS")))})),i(o,"$width",(function(){return _("HOUR_SECONDS")})),i(o,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-hour")}))})(o[0],c("Repeater"),o)}(R[0],R),function(t,s){var o=[n(t,"Chronic")].concat(s),c=e.$r(o);(function(t,n,s){var o=r(t,n,"RepeaterMinute"),c=[o].concat(s),_=e.$r(c),d=o.$$prototype;d.current_minute_start=d.now=q,v(c[0],"MINUTE_SECONDS",60),i(o,"$initialize",(function e(t,n){var r=e.$$p||q,i=this;return e.$$p=null,null==n&&(n=new Map),N(i,z(i,"initialize",e,!1,!0),"initialize",[t,n],r),i.current_minute_start=q}),-2),i(o,"$next",(function e(t){var n=e.$$p||q,r=this,i=q;if(e.$$p=null,null==t&&(t="future"),N(r,z(r,"next",e,!1,!0),"next",[t],n),a(r.current_minute_start))i=u(t,"future")?1:-1,r.current_minute_start=l(r.current_minute_start,f(i,_("MINUTE_SECONDS")));else switch(t.valueOf()){case"future":r.current_minute_start=_("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day(),r.now.$hour(),l(r.now.$min(),1));break;case"past":r.current_minute_start=_("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day(),r.now.$hour(),$(r.now.$min(),1))}return _("Span").$new(r.current_minute_start,l(r.current_minute_start,_("MINUTE_SECONDS")))}),-1),i(o,"$this",(function e(t){var n=e.$$p||q,r=this,i=q,a=q;switch(e.$$p=null,null==t&&(t="future"),N(r,z(r,"this",e,!1,!0),"this",[t],n),t.valueOf()){case"future":i=r.now,a=_("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day(),r.now.$hour(),r.now.$min());break;case"past":i=_("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day(),r.now.$hour(),r.now.$min()),a=r.now;break;case"none":i=_("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day(),r.now.$hour(),r.now.$min()),a=l(_("Chronic").$construct(r.now.$year(),r.now.$month(),r.now.$day(),r.now.$hour(),r.now.$min()),_("MINUTE_SECONDS"))}return _("Span").$new(i,a)}),-1),i(o,"$offset",(function(e,t,n){var r;return r=u(n,"future")?1:-1,l(e,f(f(r,t),_("MINUTE_SECONDS")))})),i(o,"$width",(function(){return _("MINUTE_SECONDS")})),i(o,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-minute")}))})(o[0],c("Repeater"),o)}(R[0],R),function(t,s){var o=[n(t,"Chronic")].concat(s),$=e.$r(o);(function(t,n,s){var o=r(t,n,"RepeaterSecond"),$=[o].concat(s),c=e.$r($),_=o.$$prototype;_.second_start=_.now=q,v($[0],"SECOND_SECONDS",1),i(o,"$initialize",(function e(t,n){var r=e.$$p||q,i=this;return e.$$p=null,null==n&&(n=new Map),N(i,z(i,"initialize",e,!1,!0),"initialize",[t,n],r),i.second_start=q}),-2),i(o,"$next",(function e(t){var n,r=e.$$p||q,i=this;return e.$$p=null,null==t&&(t="future"),N(i,z(i,"next",e,!1,!0),"next",[t],r),n=u(t,"future")?1:-1,a(i.second_start)?i.second_start=l(i.second_start,f(c("SECOND_SECONDS"),n)):i.second_start=l(i.now,f(n,c("SECOND_SECONDS"))),c("Span").$new(i.second_start,l(i.second_start,c("SECOND_SECONDS")))}),-1),i(o,"$this",(function e(t){var n=e.$$p||q,r=this;return e.$$p=null,null==t&&(t="future"),N(r,z(r,"this",e,!1,!0),"this",[t],n),c("Span").$new(r.now,l(r.now,1))}),-1),i(o,"$offset",(function(e,t,n){var r;return r=u(n,"future")?1:-1,l(e,f(f(r,t),c("SECOND_SECONDS")))})),i(o,"$width",(function(){return c("SECOND_SECONDS")})),i(o,"$to_s",(function e(){var t=e.$$p||q;return e.$$p=null,l(N(this,z(this,"to_s",e,!1,!0),"to_s",[],t),"-second")}))})(o[0],$("Repeater"),o)}(R[0],R),function(t,o){var c=[n(t,"Chronic")].concat(o),p=e.$r(c);(function(t,n,o){var c=r(t,n,"RepeaterTime"),p=[c].concat(o),m=e.$r(p),v=c.$$prototype;v.options=v.current_time=v.now=v.type=q,function(t,n,s){var o=r(t,null,"Tick"),$=[o].concat(s),u=e.$r($),c=o.$$prototype;c.time=c.ambiguous=q,o.$attr_accessor("time"),i(o,"$initialize",(function(e,t){return null==t&&(t=!1),this.time=e,this.ambiguous=t}),-2),i(o,"$ambiguous?",I("ambiguous")),i(o,"$*",(function(e){return u("Tick").$new(f(this.time,e),this.ambiguous)})),i(o,"$to_f",(function(){return this.time.$to_f()})),i(o,"$to_s",(function(){return l(this.time.$to_s(),a(this.ambiguous)?"?":"")}))}(p[0],0,p),i(c,"$initialize",(function(t,n){var r=this,i=q,o=q,c=q,d=q,p=q,v=q,b=q,w=q;return null==n&&(n=new Map),r.current_time=q,r.options=n,i=t.$split(":"),a(s(i.$count(),4))&&r.$raise(m("ArgumentError"),"Time cannot have more than 4 groups of ':'"),a(s(i.$first().$length(),2))&&u(i.$count(),1)&&(a(s(i.$first().$length(),4))&&(o=$(i.$first().$length(),2),i.$insert(1,i.$first()["$[]"](e.Range.$new(o,i.$first().$length(),!1))),i["$[]="](0,i.$first()["$[]"](e.Range.$new(0,$(o,1),!1)))),c=$(i.$first().$length(),2),i.$insert(1,i.$first()["$[]"](e.Range.$new(c,i.$first().$length(),!1))),i["$[]="](0,i.$first()["$[]"](e.Range.$new(0,$(c,1),!1)))),d=!1,p=i.$first().$to_i(),(a(r.options["$[]"]("hours24")["$nil?"]())||g(r.options["$[]"]("hours24")["$nil?"]())&&h(r.options["$[]"]("hours24"),!0))&&((u(i.$first().$length(),1)&&a(s(p,0))||a(_(p,10))&&a(k(p,12))||u(r.options["$[]"]("hours24"),!1)&&a(s(p,0)))&&(d=!0),u(p,12)&&a(d)&&(p=0)),p=f(p,f(60,60)),v=0,b=0,w=0,a(s(i.$count(),1))&&(v=f(i["$[]"](1).$to_i(),60)),a(s(i.$count(),2))&&(b=i["$[]"](2).$to_i()),a(s(i.$count(),3))&&(w=y(i["$[]"](3).$to_f(),10["$**"](i["$[]"](3).$length()))),r.type=m("Tick").$new(l(l(l(p,v),b),w),d)}),-2),i(c,"$next",(function e(t){var n,r,i=e.$$p||q,s=this,o=q,c=q,p=q,h=q,g=q,v=q;return e.$$p=null,N(s,z(s,"next",e,!1,!0),"next",[t],i),n=f(f(60,60),12),r=f(f(60,60),24),o=!1,a(s.current_time)||(o=!0,c=m("Chronic").$time_class().$local(s.now.$year(),s.now.$month(),s.now.$day()),p=$(c,r),h=l(c,r),g=$(c.$gmt_offset(),h.$gmt_offset()),h=l(h,g),d(s,"catch",["done"],(function e(){var r=null==e.$$s?this:e.$$s;return null==r.type&&(r.type=q),u(t,"future")?a(r.type["$ambiguous?"]())?d([l(l(c,r.type.$time()),g),l(l(l(c,n),r.type.$time()),g),l(h,r.type.$time())],"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.now&&(n.now=q),null==t&&(t=q),a(_(t,n.now))?(n.current_time=t,n.$throw("done")):q}),{$$s:r}):d([l(l(c,r.type.$time()),g),l(h,r.type.$time())],"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.now&&(n.now=q),null==t&&(t=q),a(_(t,n.now))?(n.current_time=t,n.$throw("done")):q}),{$$s:r}):a(r.type["$ambiguous?"]())?d([l(l(l(c,n),r.type.$time()),g),l(l(c,r.type.$time()),g),l(l(p,r.type.$time()),n)],"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.now&&(n.now=q),null==t&&(t=q),a(k(t,n.now))?(n.current_time=t,n.$throw("done")):q}),{$$s:r}):d([l(l(c,r.type.$time()),g),l(p,r.type.$time())],"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.now&&(n.now=q),null==t&&(t=q),a(k(t,n.now))?(n.current_time=t,n.$throw("done")):q}),{$$s:r})}),{$$s:s}),a(s.current_time)||s.$raise("Current time cannot be nil at this point")),a(o)||(v=a(s.type["$ambiguous?"]())?n:r,s.current_time=l(s.current_time,u(t,"future")?v:v["$-@"]())),m("Span").$new(s.current_time,l(s.current_time,s.$width()))})),i(c,"$this",(function e(t){var n=e.$$p||q,r=this;return e.$$p=null,null==t&&(t="future"),N(r,z(r,"this",e,!1,!0),"this",[t],n),u(t,"none")&&(t="future"),r.$next(t)}),-1),i(c,"$width",A(1)),i(c,"$to_s",(function e(){var t=e.$$p||q,n=this;return e.$$p=null,l(l(N(n,z(n,"to_s",e,!1,!0),"to_s",[],t),"-time-"),n.type.$to_s())}))})(c[0],p("Repeater"),c)}(R[0],R),function(t,r){var i=n(t,"Chronic"),o=[i].concat(r),d=e.$r(o);return v(o[0],"VERSION","0.10.2"),function(e,t){e.$attr_accessor("debug"),e.$attr_accessor("time_class")}(e.get_singleton_class(i)),i["$debug="](!1),i["$time_class="](C("Time")),G(i,"$parse",(function(e,t){return null==t&&(t=new Map),d("Parser").$new(t).$parse(e)}),-2),G(i,"$construct",(function(e,t,n,r,i,o,p){var f=q;return null==t&&(t=1),null==n&&(n=1),null==r&&(r=0),null==i&&(i=0),null==o&&(o=0),null==p&&(p=q),a(_(o,60))&&(i=l(i,y(o,60)),o=o["$%"](60)),a(_(i,60))&&(r=l(r,y(i,60)),i=i["$%"](60)),a(_(r,24))&&(n=l(n,y(r,24)),r=r["$%"](24)),a(k(n,56))||this.$raise("day must be no more than 56 (makes month resolution easier)"),a(s(n,28))&&(f=a(C("Date")["$leap?"](e))?C(d("Date"),"MONTH_DAYS_LEAP")["$[]"](t):C(d("Date"),"MONTH_DAYS")["$[]"](t),a(s(n,f))&&(t=l(t,y(n,f)),n=n["$%"](f))),a(s(t,12))&&(u(t["$%"](12),0)?(e=l(e,y($(t,12),12)),t=12):(e=l(e,y(t,12)),t=t["$%"](12))),u(d("Chronic").$time_class().$name(),"Date")?d("Chronic").$time_class().$new(e,t,n):g(d("Chronic").$time_class()["$respond_to?"]("new"))||a(c(d("RUBY_VERSION").$to_f(),1.9))&&u(d("Chronic").$time_class().$name(),"Time")?d("Chronic").$time_class().$local(e,t,n,r,i,o):(u(d("Chronic").$time_class().$name(),"DateTime")&&(p=d("Time").$normalize_offset(p)),d("Chronic").$time_class().$new(e,t,n,r,i,o,p))}),-2)}(R[0],R)},Opal.modules["web/gxg"]=function(e){var t=e.module,n=e.const_set,r=e.gvars,i=e.klass,a=e.def,s=e.slice,o=e.truthy,$=e.send,u=e.alias,l=e.eqeq,c=e.thrower,_=e.defs,d=e.rb_gt,p=e.rb_divide,f=e.rb_minus,h=e.rb_plus,m=e.rb_le,g=e.neqeq,v=e.rb_ge,b=e.rb_lt,y=[],w=e.nil,x=e.$$$;return e.add_stubs("private,[],try_convert,to_sym,to_s,uuid_generate,create_channel,new,unknown,to_proc,log_unknown,fatal,error,warn,log_warn,info,debug,is_a?,post_event,log_error,now,add_timer,add_periodic_timer,cancel_timer,public,each,to_enum,flatten,==,class,fetch_channel,destroy_channel,uuid,>,/,to_f,-,to_i,+,passes_needed,times,<=,<<,is_any?,match,size,[]=,children_of,!=,delete,keys,record_by_uuid,values,object_id,sort,<=>,object_by_uuid,parent_of,find_index,>=,delete_at,<,unshift,insert,each_with_index"),function(e,r){var i=[t(e,"GxG")].concat(r);n(i[0],"LOG",w),n(i[0],"DISPATCHER",w),n(i[0],"OBJECT_SPACE",new Map([["registry",new Map]]))}(y[0],y),r.object_space=new Map([["registry",new Map]]),function(t,n,r){var _=i(t,null,"Object"),d=[_].concat(r),p=e.$r(d);_.$$prototype.uuid=w,_.$private(),a(_,"$logged_in?",(function(){return x(p("GxG"),"DISPLAY_DETAILS")["$[]"]("logged_in")})),a(_,"$bytes",(function(e){var t;return t=s(arguments),x(p("GxG"),"ByteArray").$try_convert(t)}),-1),a(_,"$new_message",(function(e){var t,n=this;return t=s(arguments),o(n.uuid)||(n.uuid=x("GxG").$uuid_generate().$to_s().$to_sym(),x(x("GxG"),"CHANNELS").$create_channel(n.uuid,n)),x(x(x("GxG"),"Events"),"Message").$new(new Map([["sender",n.uuid],["subject",t["$[]"](1)],["body",t["$[]"](0)]]))}),-1),a(_,"$log_unknown",(function e(t,n){var r=e.$$p||w;return e.$$p=null,null==t&&(t=w),null==n&&(n=w),o(x(x("GxG"),"LOG"))?$(x(x("GxG"),"LOG"),"unknown",[t,n,this],r.$to_proc()):w}),-1),u(_,"log_trace","log_unknown"),a(_,"$log_fatal",(function e(t,n){var r=e.$$p||w;return e.$$p=null,null==t&&(t=w),null==n&&(n=w),o(x(x("GxG"),"LOG"))?$(x(x("GxG"),"LOG"),"fatal",[t,n,this],r.$to_proc()):w}),-1),a(_,"$log_error",(function e(t,n){var r=e.$$p||w;return e.$$p=null,null==t&&(t=w),null==n&&(n=w),o(x(x("GxG"),"LOG"))?$(x(x("GxG"),"LOG"),"error",[t,n,this],r.$to_proc()):w}),-1),a(_,"$log_warn",(function e(t,n){var r=e.$$p||w;return e.$$p=null,null==t&&(t=w),null==n&&(n=w),o(x(x("GxG"),"LOG"))?$(x(x("GxG"),"LOG"),"warn",[t,n,this],r.$to_proc()):w}),-1),u(_,"log_warning","log_warn"),a(_,"$log_info",(function e(t,n){var r=e.$$p||w;return e.$$p=null,null==t&&(t=w),null==n&&(n=w),o(x(x("GxG"),"LOG"))?$(x(x("GxG"),"LOG"),"info",[t,n,this],r.$to_proc()):w}),-1),a(_,"$log_debug",(function e(t,n){var r=e.$$p||w;return e.$$p=null,null==t&&(t=w),null==n&&(n=w),o(x(x("GxG"),"LOG"))?$(x(x("GxG"),"LOG"),"debug",[t,n,this],r.$to_proc()):w}),-1),a(_,"$post_event",(function e(t,n){var r=e.$$p||w,i=w;return e.$$p=null,null==t&&(t="root"),null==n&&(n=w),i=!1,o(n["$is_a?"](x(x(x("GxG"),"Events"),"EventDispatcher")))?i=$(n,"post_event",[t],r.$to_proc()):o(x(x("GxG"),"DISPATCHER"))?i=$(x(x("GxG"),"DISPATCHER"),"post_event",[t],r.$to_proc()):this.$log_error("No Event Dispatcher Defined"),i}),-1),a(_,"$post_event_at",(function e(t,n){var r=e.$$p||w,i=w;return e.$$p=null,null==t&&(t=p("Time").$now()),null==n&&(n=w),i=w,o(n["$is_a?"](x(x(x("GxG"),"Events"),"EventDispatcher")))?i=$(n,"add_timer",[new Map([["when",t]])],r.$to_proc()):o(x(x("GxG"),"DISPATCHER"))?i=$(x(x("GxG"),"DISPATCHER"),"add_timer",[new Map([["when",t]])],r.$to_proc()):this.$log_error("No Event Dispatcher Defined"),i}),-1),a(_,"$post_event_periodic",(function e(t,n){var r=e.$$p||w,i=w;return e.$$p=null,null==t&&(t=.333),null==n&&(n=w),i=w,o(n["$is_a?"](x(x(x("GxG"),"Events"),"EventDispatcher")))?i=$(n,"add_periodic_timer",[new Map([["interval",t]])],r.$to_proc()):o(x(x("GxG"),"DISPATCHER"))?i=$(x(x("GxG"),"DISPATCHER"),"add_periodic_timer",[new Map([["interval",t]])],r.$to_proc()):this.$log_error("No Event Dispatcher Defined"),i}),-1),a(_,"$cancel_periodic",(function(e,t){var n=w;return null==e&&(e=w),null==t&&(t=w),n=!1,o(e["$is_a?"](p("Hash")))&&(o(t["$is_a?"](x(x(x("GxG"),"Events"),"EventDispatcher")))?n=t.$cancel_timer(e):o(x(x("GxG"),"DISPATCHER"))?n=x(x("GxG"),"DISPATCHER").$cancel_timer(e):this.$log_error("No Event Dispatcher Defined")),n}),-1),_.$public(),a(_,"$is_any?",(function(e){var t,n,r=this,i=w;return t=s(arguments),n=t,i=!1,function(){try{var e=c("break");return $(n.$flatten().$to_enum(),"each",[],(function t(n){var r=null==t.$$s?this:t.$$s;return null==n&&(n=w),l(n.$class(),p("Class"))&&o(r["$is_a?"](n))?(i=!0,void e.$throw(w,t.$$is_lambda)):w}),{$$s:r})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),i}),-1),a(_,"$defederate",(function(){var e=this,t=w;return o(e.uuid)&&(t=x(x("GxG"),"CHANNELS").$fetch_channel(e.uuid),o(t)&&x(x("GxG"),"CHANNELS").$destroy_channel(e.uuid)),!0}))}(y[0],0,y),function(n,i){var a=t(n,"GxG"),s=[a].concat(i),u=e.$r(s);return _(a,"$uuid_generate",(function(){return u("SecureRandom").$uuid()})),_(a,"$passes_needed",(function(e,t){var n=w,r=w;return null==e&&(e=0),null==t&&(t=0),o(d(e,0))&&o(d(t,0))?(n=p(e.$to_f(),t.$to_f()),r=f(n,n.$to_i().$to_f()),n=n.$to_i().$to_f(),o(d(r,0))&&(n=h(n,1)),n.$to_i()):0}),-1),_(a,"$apportioned_ranges",(function(t,n,r){var i,a=w,s=w;return null==t&&(t=0),null==n&&(n=0),null==r&&(r=0),a=[],i=x("GxG").$passes_needed(t,n),o(d(i,0))&&(s=r,$(i,"times",[],(function(){var r=w;return r=o(m(h(s,f(n,1)),f(t,1)))?h(s,f(n,1)):f(t,1),a["$<<"](e.Range.$new(s,r,!1)),s=h(r,1)}))),a}),-1),_(a,"$valid_uuid?",(function(e,t){var n=w;return null==e&&(e=w),null==t&&(t=!0),!!o(e["$is_any?"](x("String"),x("Symbol")))&&(n=l(t,!0)?/[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[4][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]/:/[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f]-[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]/,!!o(e.$to_s().$match(n))&&!!l(e.$to_s().$size(),36))}),-1),_(a,"$replace_registry",(function(e){return null==r.object_space&&(r.object_space=w),null==e&&(e=new Map),r.object_space["$[]="]("registry",e),!0}),-1),_(a,"$register",(function(e,t){var n=w;return null==r.object_space&&(r.object_space=w),null==e&&(e=w),null==t&&(t=w),o(r.object_space["$[]"]("registry")["$[]"](e.$uuid().$to_s().$to_sym()))||(n=o(t)?u("GxG").$children_of(t).$size():0,r.object_space["$[]"]("registry")["$[]="](e.$uuid().$to_s().$to_sym(),new Map([["object",e],["parent",t],["ordinal",n]]))),!0}),-1),_(a,"$unregister",(function(e){return null==r.object_space&&(r.object_space=w),null==e&&(e=w),o(r.object_space["$[]"]("registry")["$[]"](e.$to_s().$to_sym()))&&g(x(u("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$uuid().$to_s().$to_sym(),e.$to_s().$to_sym())&&r.object_space["$[]"]("registry").$delete(e.$to_s().$to_sym()),!0}),-1),_(a,"$register_uuid_list",(function(){return null==r.object_space&&(r.object_space=w),r.object_space["$[]"]("registry").$keys()})),_(a,"$record_by_uuid",(function(e){var t=w;return null==r.object_space&&(r.object_space=w),null==e&&(e=w),t=w,o(r.object_space["$[]"]("registry")["$[]"](e.$to_s().$to_sym()))&&(t=r.object_space["$[]"]("registry")["$[]"](e.$to_s().$to_sym())),t}),-1),_(a,"$object_by_uuid",(function(e){var t;return null==e&&(e=w),(o(t=u("GxG").$record_by_uuid(e))?t:new Map)["$[]"]("object")}),-1),_(a,"$children_of",(function(e){var t=w,n=w;return null==r.object_space&&(r.object_space=w),null==e&&(e=w),t=[],n=[],$(r.object_space["$[]"]("registry").$values(),"each",[],(function(t){return null==t&&(t=w),l(t["$[]"]("parent").$object_id(),e.$object_id())?n["$<<"](t):w})),n=$(n,"sort",[],(function(e,t){return null==e&&(e=w),null==t&&(t=w),e["$[]"]("ordinal")["$<=>"](t["$[]"]("ordinal"))})),$(n,"each",[],(function(e){return null==e&&(e=w),t["$<<"](e["$[]"]("object"))})),t}),-1),_(a,"$set_ordinal",(function(e,t){var n,r=w,i=w,a=w,s=w;return null==e&&(e=w),null==t&&(t=0),r=!1,i=o(e["$is_any?"](u("String"),u("Symbol")))?u("GxG").$object_by_uuid(e.$to_sym()):e,n=u("GxG").$parent_of(i),o(n)&&(s=(a=u("GxG").$children_of(n)).$find_index(i),o(s)&&(o(v(t,f(a.$size(),1)))?a["$<<"](a.$delete_at(s)):a=o(b(t,0))?a.$unshift(a.$delete_at(s)):a.$insert(t,a.$delete_at(s)),$(a,"each_with_index",[],(function(e,t){var n,r;return null==e&&(e=w),null==t&&(t=w),r=u("GxG").$record_by_uuid(e.$uuid().$to_sym()),$(r,"[]=",n=["ordinal",t]),n[n.length-1]})),r=!0)),r}),-1),_(a,"$parent_of",(function(e){var t=w;return null==r.object_space&&(r.object_space=w),null==e&&(e=w),t=w,function(){try{var n=c("break");return $(r.object_space["$[]"]("registry").$values(),"each",[],(function r(i){if(null==i&&(i=w),!l(i["$[]"]("object").$object_id(),e.$object_id()))return w;t=i["$[]"]("parent"),n.$throw(w,r.$$is_lambda)}))}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}(),t}),-1),_(a,"$lineage_of",(function(e){var t=w,n=w;for(null==e&&(e=w),t=[],n=u("GxG").$parent_of(e);!l(n,w);)t.$unshift(n),n=u("GxG").$parent_of(n);return t}),-1)}(y[0],y)},Opal.modules["web/gxg_augments"]=function(Opal){var $klass=Opal.klass,$def=Opal.def,$module=Opal.module,$const_set=Opal.const_set,$return_ivar=Opal.return_ivar,$truthy=Opal.truthy,$gvars=Opal.gvars,$send=Opal.send,$alias=Opal.alias,$slice=Opal.slice,$to_a=Opal.to_a,$send2=Opal.send2,$find_super=Opal.find_super,$defs=Opal.defs,$rb_plus=Opal.rb_plus,$rb_lt=Opal.rb_lt,$rb_times=Opal.rb_times,$eqeq=Opal.eqeq,$rb_gt=Opal.rb_gt,$range=Opal.range,$not=Opal.not,$rb_minus=Opal.rb_minus,$neqeq=Opal.neqeq,$thrower=Opal.thrower,$nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$$$=Opal.$$$,$base,$parent_nesting;return Opal.add_stubs("include?,respond_to?,call,puts,to_s,[],strftime,now,inspect,to_i,log_error,add,to_proc,warn,unknown,BigDecimal,%,to_f,parse,to_d,to_time,+,<,round,*,sec_fraction,**,private,iso8601_timediv,iso8601,public,clone,match,==,>,size,split,camel_case?,slice,json_1?,json_2?,json?,is_any?,process!,is_a?,valid_datetime_nolocale?,valid_datetime?,[]=,numeric_values,base64?,new,decode64,!,strict_decode64,strict_encode64,each_index,each,-,dup,raise,search,<<,shift,each_pair,each_with_index,object_id,!=,iterative,reverse,get_at_path,gsub,unshift,join,paths_to,to_sym,to_enum,=~,first,dirname,basename,delete,class,gxg_import,try_convert,process"),$base=$nesting[0],$parent_nesting=$nesting,function(e,t){var n=$klass(e,null,"Array");n.$$prototype.native=nil,$def(n,"$native_object",(function(){return this.native}))}([$klass($base,null,"Buffer")].concat($parent_nesting)[0]),function(e,t){var n=[$module(e,"GxG")].concat(t);(function(e,t){var n=[$module(e,"Database")].concat(t);$klass(n[0],null,"Field"),$klass(n[0],null,"PersistedArray"),$klass(n[0],null,"PersistedHash")})(n[0],n)}($nesting[0],$nesting),function(e,t,n){var r=$klass(e,null,"Logger"),i=[r].concat(n),a=Opal.$r(i);$const_set(i[0],"DEBUG",0),$const_set(i[0],"INFO",1),$const_set(i[0],"WARN",2),$const_set(i[0],"ERROR",3),$const_set(i[0],"FATAL",4),$const_set(i[0],"UNKNOWN",5),$const_set(i[0],"TRACE",5),$def(r,"$initialize",(function(e){return null==e&&(e=3),this.level=e}),-1),$def(r,"$level",$return_ivar("level")),$def(r,"$level=",(function(e){return null==e&&(e=3),this.level=e}),-1),$def(r,"$add",(function e(t,n,r,i){var s=e.$$p||nil,o=nil,$=nil;null==$gvars.$&&($gvars.$=nil),e.$$p=null,null==t&&(t=nil),null==n&&(n=nil),null==r&&(r=nil),null==i&&(i=nil),$truthy([$$$($$$("Logger"),"DEBUG"),$$$($$$("Logger"),"INFO"),$$$($$$("Logger"),"WARN"),$$$($$$("Logger"),"ERROR"),$$$($$$("Logger"),"FATAL"),$$$($$$("Logger"),"UNKNOWN")]["$include?"](t))||(t=$$$($$$("Logger"),"UNKNOWN")),$truthy(r)&&($truthy(n)||(n=r,r=nil));try{return $truthy(n)||$truthy(s["$respond_to?"]("call"))&&(n=s.$call()),o=["DEBUG","INFO","WARN","ERROR","FATAL","ANY"],this.$puts(o["$[]"](t).$to_s()+", ["+a("Time").$now().$strftime("%Y-%m-%dT%H:%M:%S%z")+"#"+$gvars.$.$inspect()+"] "+a("Time").$now().$to_i().$to_s()+" -- "+r.$inspect()+": "+n.$to_s()+"\n"),!0}catch(e){if(!Opal.rescue(e,[a("Exception")]))throw e;$=e;try{return this.$log_error(new Map([["error",$],["parameters",new Map([["severity",t],["message",n],["progname",r],["block",s]])]])),!1}finally{Opal.pop_exception(e)}}}),-1),$def(r,"$debug",(function e(t){var n=e.$$p||nil;return e.$$p=null,null==t&&(t=nil),$send(this,"add",[a("DEBUG"),nil,t],n.$to_proc())}),-1),$def(r,"$info",(function e(t){var n=e.$$p||nil;return e.$$p=null,null==t&&(t=nil),$send(this,"add",[a("INFO"),nil,t],n.$to_proc())}),-1),$def(r,"$warn",(function e(t){var n=e.$$p||nil;return e.$$p=null,null==t&&(t=nil),$send(this,"add",[a("WARN"),nil,t],n.$to_proc())}),-1),$alias(r,"warning","warn"),$def(r,"$error",(function e(t){var n=e.$$p||nil;return e.$$p=null,null==t&&(t=nil),$send(this,"add",[a("ERROR"),nil,t],n.$to_proc())}),-1),$def(r,"$fatal",(function e(t){var n=e.$$p||nil;return e.$$p=null,null==t&&(t=nil),$send(this,"add",[a("FATAL"),nil,t],n.$to_proc())}),-1),$def(r,"$unknown",(function e(t){var n=e.$$p||nil;return e.$$p=null,null==t&&(t=nil),$send(this,"add",[a("UNKNOWN"),nil,t],n.$to_proc())}),-1),$alias(r,"trace","unknown")}($nesting[0],0,$nesting),function(e,t){var n=$klass(e,null,"Time");$def(n,"$to_d",(function(){return this.$BigDecimal(("%"+$$$($$$("Float"),"DIG")+"f")["$%"](this.$to_f()))}))}($nesting[0]),function(e,t,n){var r=$klass(e,t,"DateTime"),i=[r].concat(n),a=Opal.$r(i);$def(r,"$intialize",(function e(t){var n,r=this;return e.$$p=null,n=$slice(arguments),r.data=$send(a("Time"),"parse",$to_a(n)),$send2(r,$find_super(r,"intialize",e,!1,!0),"intialize",$to_a(n),null)}),-1),$def(r,"$to_time",(function(){return $$$("Time").$parse(this.$to_s())})),$def(r,"$to_d",(function(){return this.$BigDecimal(this.$to_time().$to_d())})),$defs(r,"$now",(function(){return a("DateTime").$parse(a("Time").$now().$strftime("%Y-%m-%dT%H:%M:%S%z"))})),$def(r,"$to_s",(function(){return this.$strftime("%Y-%m-%dT%H:%M:%S%z")})),$def(r,"$to_json",(function(){return this.$strftime("%Y-%m-%dT%H:%M:%S%z")})),$def(r,"$strftime",(function e(t){return e.$$p=null,null==t&&(t="%FT%T%:z"),$send2(this,$find_super(this,"strftime",e,!1,!0),"strftime",[t],null)}),-1),$defs(r,"$_strptime",(function e(t,n){return e.$$p=null,null==n&&(n="%FT%T%z"),$send2(this,$find_super(this,"_strptime",e,!1,!0),"_strptime",[t,n],null)}),-2),$def(r,"$iso8601_timediv",(function(e){return e=e.$to_i(),this.$strftime($rb_plus($rb_plus("T%T",$truthy($rb_lt(e,1))?"":".%0*d"["$%"]([e,$rb_times(this.$sec_fraction(),10["$**"](e)).$round()])),"%:z"))})),r.$private("iso8601_timediv"),$def(r,"$iso8601",(function e(t){var n=this;return e.$$p=null,null==t&&(t=0),$rb_plus($send2(n,$find_super(n,"iso8601",e,!1,!0),"iso8601",[],null),n.$iso8601_timediv(t))}),-1),$def(r,"$rfc3339",(function(e){return null==e&&(e=0),this.$iso8601(e)}),-1),$def(r,"$xmlschema",(function(e){return null==e&&(e=0),this.$iso8601(e)}),-1),$def(r,"$jisx0301",(function e(t){var n=this;return e.$$p=null,null==t&&(t=0),$rb_plus($send2(n,$find_super(n,"jisx0301",e,!1,!0),"jisx0301",[],null),n.$iso8601_timediv(t))}),-1)}($nesting[0],$$("Date"),$nesting),function(e,t){var n=$klass(e,null,"Integer");$def(n,"$to_d",(function(){return this.$BigDecimal(("%"+$$$($$$("Float"),"DIG")+"f")["$%"](this.$to_f()))}))}($nesting[0]),function(e,t){var n=$klass(e,null,"Float");n.$public(),$def(n,"$to_d",(function(){return this.$BigDecimal(("%"+$$$($$$("Float"),"DIG")+"f")["$%"](this))}))}($nesting[0]),function(e,t,n){var r=$klass(e,null,"String"),i=[r].concat(n),a=Opal.$r(i);$def(r,"$cast_to_ascii",(function(){return new window.TextDecoder("ascii").decode((new window.TextEncoder).encode(this.$clone().toString())).$to_s()})),$def(r,"$valid_date?",(function(){return!!$truthy(/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]/.$match(this))})),$def(r,"$valid_datetime?",(function(){return!!$truthy(/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9][+-][0-9][0-9]:[0-9][0-9]/.$match(this))})),$def(r,"$valid_datetime_nolocale?",(function(){return!!$truthy(/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/.$match(this))})),$def(r,"$valid_path?",(function(){var e=this;return!!($truthy(/.*(?:\\|\/)(.+)$/.$match(e))||$eqeq(e.$split(" ").$size(),1)||$truthy($rb_gt(e.$split("/").$size(),1))||$eqeq(e,"/"))})),$def(r,"$valid_jid?",(function(){return!!$truthy(/^(?:([^@]*)@)??([^@\/]*)(?:\/(.*?))?$/.$match(this))})),$def(r,"$camel_case?",(function(){return!!$truthy(this.$match(/[A-Z]([A-Z0-9]*[a-z][a-z0-9]*[A-Z]|[a-z0-9]*[A-Z][A-Z0-9]*[a-z])[A-Za-z0-9]*/))})),$def(r,"$split_camelcase",(function(){var e=this;return $truthy(e["$camel_case?"]())?e.$split(/(?=[A-Z])/):e})),$def(r,"$json_1?",(function(){return this.$slice(0,1)["$=="]("{")})),$def(r,"$json_2?",(function(){var e,t=nil;return $truthy(e=this["$json_1?"]())?!!$truthy(t=this.$match('"apiVersion"\\s?:\\s?"2.0"'))&&t:e})),$def(r,"$json?",(function(){var e;return $truthy(e=this["$json_1?"]())?e:this["$json_2?"]()})),$def(r,"$from_json",(function(e){var t=this,n=nil;return null==e&&(e=!0),$truthy(t["$json?"]())?(n=$$$("JSON").$parse(t,new Map([["symbolize_names",e]])),$truthy(n["$is_any?"]($$$("Hash"),$$$("Array")))?$send(n,"process!",[],(function(e,t,n){var r=nil;return null==e&&(e=nil),null==t&&(t=nil),null==n&&(n=nil),$truthy(e["$is_a?"]($$$("String")))&&($truthy(e["$valid_datetime?"]())||$truthy(e["$valid_datetime_nolocale?"]())?n["$[]="](t,$$$("DateTime").$parse(e)):(r=e.$numeric_values(),$truthy(r["$is_a?"]($$$("Hash")))&&($truthy(r["$[]"]("integer"))?(r=r["$[]"]("integer"),n["$[]="](t,r)):$truthy(r["$[]"]("float"))&&(r=r["$[]"]("float"),n["$[]="](t,r)))),$eqeq(e["$[]"]($range(0,6,!1)),"binary:")&&$truthy(e["$[]"]($range(7,-1,!1))["$base64?"]())&&n["$[]="](t,$$$(a("GxG"),"ByteArray").$new(e["$[]"]($range(7,-1,!1)).$decode64()))),nil})):nil):t}),-1),$def(r,"$base64?",(function(){var e=this;try{if(!$not(["page","form","left"]["$include?"](e)))return!1;if(!$truthy($rb_gt(e.$size(),0)))return!1;try{return a("Base64").$strict_decode64(e),!0}catch(e){if(!Opal.rescue(e,[a("Exception")]))throw e;e;try{return!1}finally{Opal.pop_exception(e)}}}catch(e){if(!Opal.rescue(e,[a("Exception")]))throw e;e;try{return!1}finally{Opal.pop_exception(e)}}})),$def(r,"$encode64",(function(){var e=this;return $truthy(e["$base64?"]())?e:$$$("Base64").$strict_encode64(e)})),$def(r,"$decode64",(function(){var e=this;return $truthy(e["$base64?"]())?$$$("Base64").$strict_decode64(e):e})),$def(r,"$encrypt",(function(e){var t=nil,n=nil;return null==e&&(e=""),$truthy($rb_gt(e.$to_s().$size(),0))?(t=$$$($$$("GxG"),"ByteArray").$new(e.$to_s()),n=$$$($$$("GxG"),"ByteArray").$new(this.$to_s()),$send(n,"each_index",[],(function(e){var r,i=nil;return null==e&&(e=nil),i=n["$[]"](e),$send(t,"each",[],(function(e){return null==e&&(e=nil),$send([127,63,31,15,7,3,1,0],"each",[],(function(t){return null==t&&(t=nil),$truthy($rb_gt(e,t))?(i=$rb_plus(i,1),$truthy($rb_gt(i,255))?i=0:nil):(i=$rb_minus(i,1),$truthy($rb_lt(i,0))?i=255:nil)}))})),$send(n,"[]=",r=[e,i]),r[r.length-1]})),n.$to_s()):this.$dup()}),-1),$def(r,"$decrypt",(function(e){var t=nil,n=nil;return null==e&&(e=""),$truthy($rb_gt(e.$to_s().$size(),0))?(t=$$$($$$("GxG"),"ByteArray").$new(e.$to_s()),n=$$$($$$("GxG"),"ByteArray").$new(this.$to_s()),$send(n,"each_index",[],(function(e){var r,i=nil;return null==e&&(e=nil),i=n["$[]"](e),$send(t,"each",[],(function(e){return null==e&&(e=nil),$send([127,63,31,15,7,3,1,0],"each",[],(function(t){return null==t&&(t=nil),$truthy($rb_gt(e,t))?(i=$rb_minus(i,1),$truthy($rb_lt(i,0))?i=255:nil):(i=$rb_plus(i,1),$truthy($rb_gt(i,255))?i=0:nil)}))})),$send(n,"[]=",r=[e,i]),r[r.length-1]})),n.$to_s()):this.$dup()}),-1),$def(r,"$to_d",(function(){return this.$BigDecimal(this)}))}($nesting[0],0,$nesting),function($base,$super,$parent_nesting){var self=$klass($base,$super,"Hash"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$defs(self,"$process",(function e(t){var n=e.$$p||nil,r=nil;return e.$$p=null,null==t&&(t=new Map),r=new Map,$truthy(n["$respond_to?"]("call"))&&($truthy(t["$is_any?"]($$$("Array"),$$$("Hash"),$$$("Struct"),$$$($$$($$$("GxG"),"Database"),"PersistedHash"),$$$($$$($$$("GxG"),"Database"),"PersistedArray")))?r=$send(t,"process!",[],n.$to_proc()):this.$raise($$("ArgumentError"),"you must pass a Hash or an Array, or a ByteArray")),r}),-1),$defs(self,"$search",(function e(t){var n=e.$$p||nil,r=nil;return e.$$p=null,null==t&&(t=new Map),r=new Map,$truthy(n["$respond_to?"]("call"))&&($truthy(t["$is_any?"]($$$("Array"),$$$("Hash"),$$$("Struct"),$$$($$$($$$("GxG"),"Database"),"PersistedHash"),$$$($$$($$$("GxG"),"Database"),"PersistedArray")))?r=$send(t,"search",[],n.$to_proc()):this.$raise($$("ArgumentError"),"you must pass a Hash or an Array, or a ByteArray")),r}),-1),$def(self,"$iterative",(function e(){var t=e.$$p||nil,n=this,r=nil,i=nil,a=nil,s=nil,o=nil,$=nil,u=nil,l=nil,c=nil;e.$$p=null,r=[],i=$send($$("Proc"),"new",[],(function(e,t){var n=nil,r=nil;if(null==e&&(e=nil),null==t&&(t=[]),n=[],$truthy(e))for(n["$<<"](new Map([["parent",nil],["parent_selector",nil],["object",e]]));$truthy($rb_gt(n.$size(),0));)r=n.$shift(),$truthy(r["$[]"]("object")["$is_any?"]($$$("Hash"),$$$("Struct"),$$$($$$($$$("GxG"),"Database"),"PersistedHash")))&&$send(r["$[]"]("object"),"each_pair",[],(function(e,t){return null==e&&(e=nil),null==t&&(t=nil),n["$<<"](new Map([["parent",r["$[]"]("object")],["parent_selector",e],["object",t]]))})),$truthy(r["$[]"]("object")["$is_any?"]($$$("Array"),$$$($$$($$$("GxG"),"Database"),"PersistedArray")))&&$send(r["$[]"]("object"),"each_with_index",[],(function(e,t){return null==e&&(e=nil),null==t&&(t=nil),n["$<<"](new Map([["parent",r["$[]"]("object")],["parent_selector",t],["object",e]]))})),t["$<<"](r);return t}),-1),a=$send($$("Proc"),"new",[],(function(e,t){var n=nil;return null==e&&(e=[]),null==t&&(t=nil),n=[],$send(e,"each",[],(function(e){return null==e&&(e=nil),$eqeq(e["$[]"]("parent").$object_id(),t.$object_id())?n["$<<"](e):nil})),n}),-1);try{if(s=i.$call(n,[]),o=a.$call(s,n),$truthy(t["$respond_to?"]("call")))for(;$truthy($rb_gt(o.$size(),0));)$=o.$shift(),$eqeq($["$[]"]("object").$object_id(),n.$object_id())||(u=t.$call($["$[]"]("object"),$["$[]"]("parent_selector"),$["$[]"]("parent")),$truthy(u)&&r["$<<"](u)),$neqeq($["$[]"]("object").$object_id(),nil.$object_id())&&(l=a.$call(s,$["$[]"]("object")),$send(l,"each",[],(function(e){return null==e&&(e=nil),o["$<<"](e)})))}catch(e){if(!Opal.rescue(e,[$$("Exception")]))throw e;c=e;try{n.$log_error(new Map([["error",c],["parameters",new Map]]))}finally{Opal.pop_exception(e)}}return r})),$def(self,"$process",(function e(){var t,n=e.$$p||nil;return e.$$p=null,t=this.$clone(),$send(t,"iterative",[],n.$to_proc()),t})),$def(self,"$process!",(function e(){var t=e.$$p||nil;return e.$$p=null,$send(this,"iterative",[],t.$to_proc()),this})),$def(self,"$search",(function e(){var t=e.$$p||nil,n=nil;return e.$$p=null,n=[],$truthy(t["$respond_to?"]("call"))&&(n=$send(this,"iterative",[],t.$to_proc())),n})),$def(self,"$paths_to",(function(e,t){var n=nil,r=nil,i=nil,a=nil,s=nil,o=nil,$=nil;return null==e&&(e=nil),null==t&&(t=""),n=[],$eqeq(t["$[]"](0),"/")||(t=$rb_plus("/",t)),r=$truthy($rb_gt(t.$size(),1))?t.$split("/")["$[]"]($range(1,-1,!1)).$reverse():[],i=this.$get_at_path(t),a=[new Map([["selector",nil],["container",i],["prefix","/"]])],s=$send($$("Proc"),"new",[],(function(e){var t=nil;return null==e&&(e=nil),t=nil,function(){try{var n=$thrower("break");return $send(a,"each_with_index",[],(function r(i,a){if(null==i&&(i=nil),null==a&&(a=nil),!$eqeq(i["$[]"]("container"),e))return nil;t=i,n.$throw(nil,r.$$is_lambda)}))}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}(),t})),o=i,$=!1,$truthy(i["$is_any?"]($$$("Hash"),$$$("Array"),$$$("Struct"),$$$($$$($$$("GxG"),"Database"),"PersistedHash"),$$$($$$($$$("GxG"),"Database"),"PersistedArray")))?$send(i,"process!",[],(function(t,i,u){var l=nil,c=nil;return null==t&&(t=nil),null==i&&(i=nil),null==u&&(u=nil),$neqeq(o.$object_id(),u.$object_id())&&(l=s.$call(u),$truthy(l)&&(r=l["$[]"]("prefix").$split("/").$reverse(),$eqeq(r.$size(),0)&&r["$<<"]("")),o=u),c=(c=i.$to_s()).$gsub("/","%2f"),r.$unshift(c),$=!1,$eqeq(t,e)&&($=!0),$truthy($)&&n["$<<"]($rb_plus("/",r.$reverse().$join("/"))),$truthy(t["$is_any?"]($$$("Array"),$$$("Hash"),$$$("Struct"),$$$($$$($$$("GxG"),"Database"),"PersistedHash"),$$$($$$($$$("GxG"),"Database"),"PersistedArray")))&&a.$unshift(new Map([["selector",i],["container",t],["prefix",r.$reverse().$join("/")]])),r.$shift(),nil})):n["$<<"]($rb_plus("/",r.$join("/"))),n}),-1),$def(self,"$object_map",(function(){var e;return e=new Map,$send(this,"search",[],(function t(n,r,i){return null==n&&(n=nil),null==r&&(r=nil),null==i&&(i=nil),$send((null==t.$$s?this:t.$$s).$paths_to(n),"each",[],(function(t){var r;return null==t&&(t=nil),r=[t.$to_s().$to_sym(),n],$send(e,"[]=",r),r[r.length-1]}))}),{$$s:this}),e})),$def(self,"$get_at_path",(function(e){var t=nil,n=nil,r=nil;return null==e&&(e="/"),t=nil,$eqeq(e,"/")?t=this:(n=[this],r=e.$to_s().$split("/"),function(){try{var e=$thrower("break");return $send(r.$to_enum(),"each",[],(function r(i){var a=nil;return null==i&&(i=nil),a=nil,$truthy($rb_gt(i.$size(),0))&&(a=$eqeq(i["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?i.$to_i():(a=(a=i).$gsub("%2f","/")).$to_sym()),$truthy(a)?(t=n.$first()["$[]"](a),$truthy(t["$is_a?"]($$("NilClass")))?void e.$throw(nil,r.$$is_lambda):n.$unshift(t)):nil}))}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),t}),-1),$def(self,"$set_at_path",(function(e,t){var n=nil,r=nil,i=nil,a=nil;return null==e&&(e="/"),null==t&&(t=nil),n=nil,$neqeq(e,"/")&&(r=this.$get_at_path($$$("File").$dirname(e.$to_s())),$truthy(r)&&(i=$$$("File").$basename(e.$to_s()),a=nil,$truthy($rb_gt(i.$size(),0))&&(a=$eqeq(i["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?i.$to_i():(a=(a=i).$gsub("%2f","/")).$to_sym()),$truthy(a)&&(r["$[]="](a,t),n=r["$[]"](a)))),n}),-1),$def(self,"$symbolize_keys",(function(){return $send(this,"process!",[],(function(e,t,n){return null==e&&(e=nil),null==t&&(t=nil),null==n&&(n=nil),$truthy(n["$is_a?"]($$$("Hash")))&&($truthy(t["$is_a?"]($$$("Symbol")))||n["$[]="](t.$to_s().$to_sym(),n.$delete(t))),nil})),this})),$def(self,"$gxg_export",(function(){var e,t=nil,n=nil,r=nil,i=nil,a=nil;for(e=new Map([["type","Hash"],["content",new Map]]),t=[new Map([["parent",nil],["parent_selector",nil],["object",this],["record",e]])],n=$send($$("Proc"),"new",[],(function(e){var n=nil;return null==e&&(e=nil),n=[],$send(t,"each",[],(function(t){return null==t&&(t=nil),$eqeq(t["$[]"]("parent").$object_id(),e.$object_id())?n["$<<"](t):nil})),n}),-1),r=$send($$("Proc"),"new",[],(function(e){return null==e&&(e=nil),$truthy(e["$is_any?"]($$("Integer"),$$("Float"),$$("String")))?$truthy(e["$is_a?"]($$("Numeric")))?$truthy(e.$to_s()["$include?"]("."))?new Map([["type","Float"],["content",e]]):new Map([["type","Integer"],["content",e]]):new Map([["type",e.$class().$to_s()],["content",e]]):new Map([["type",e.$class().$to_s()],["content",e.$to_s()]])})),$send(this,"search",[],(function(e,n,i){return null==e&&(e=nil),null==n&&(n=nil),null==i&&(i=nil),$truthy(e["$is_a?"]($$$("Hash")))?t["$<<"](new Map([["parent",i],["parent_selector",n.$clone()],["object",e],["record",new Map([["type","Hash"],["content",new Map]])]])):$truthy(e["$is_a?"]($$$("Array")))?t["$<<"](new Map([["parent",i],["parent_selector",n.$clone()],["object",e],["record",new Map([["type","Array"],["content",[]]])]])):t["$<<"](new Map([["parent",i],["parent_selector",n.$clone()],["object",e],["record",r.$call(e)]]))})),i=[t["$[]"](0)];$truthy($rb_gt(i.$size(),0));)a=i.$shift(),$send(n.$call(a["$[]"]("object")),"each",[],(function(e){return null==e&&(e=nil),a["$[]"]("record")["$[]"]("content")["$[]="](e["$[]"]("parent_selector"),e["$[]"]("record")),$truthy(e["$[]"]("object")["$is_any?"]($$("Hash"),$$("Array")))?i["$<<"](e):nil}));return e})),$defs(self,"$gxg_import",(function $$gxg_import(the_exported_record){try{var self=this,result=nil,import_value=nil,import_db=nil,entry=nil;if(null==the_exported_record&&(the_exported_record=nil),result=nil,$truthy(the_exported_record["$is_a?"]($$("Hash"))))if($eqeq(the_exported_record["$[]"]("type"),"Array"))result=$$$("Array").$gxg_import(the_exported_record);else if(import_value=$send($$("Proc"),"new",[],(function $$38(type,value){var $a,self=null==$$38.$$s?this:$$38.$$s,the_class=nil,the_error=nil;if(null==type&&(type=nil),null==value&&(value=nil),$truthy(value["$is_a?"]($$("String"))))try{$a=type,the_class="function"==typeof Opal.compile?eval(Opal.compile($a,{scope_variables:["the_class","type","value","result","import_value","the_exported_record"],arity_check:!1,file:"(eval)",eval:!0})):self.$eval($a),$truthy(the_class["$respond_to?"]("parse"))?value=the_class.$parse(value):$truthy(the_class["$respond_to?"]("new"))?value=the_class.$new(value):$truthy(the_class["$respond_to?"]("try_convert"))&&(value=the_class.$try_convert(value))}catch(e){if(!Opal.rescue(e,[$$("Exception")]))throw e;the_error=e,Opal.pop_exception(e)}return value}),{$$s:self}),$eqeq(the_exported_record["$[]"]("type"),"Hash"))for(result=new Map,import_db=[new Map([["parent",nil],["parent_selector",nil],["object",result],["record",the_exported_record]])];$truthy($rb_gt(import_db.$size(),0));)entry=import_db.$shift(),$truthy(entry["$[]"]("record")["$[]"]("content")["$is_a?"]($$("Hash")))?$send(entry["$[]"]("record")["$[]"]("content"),"each_pair",[],(function(e,t){var n;return null==e&&(e=nil),null==t&&(t=nil),$eqeq(t["$[]"]("type"),"Hash")?(entry["$[]"]("object")["$[]="](e,new Map),import_db["$<<"](new Map([["parent",entry["$[]"]("object")],["parent_selector",e],["object",entry["$[]"]("object")["$[]"](e)],["record",t]]))):$eqeq(t["$[]"]("type"),"Array")?(entry["$[]"]("object")["$[]="](e,[]),import_db["$<<"](new Map([["parent",entry["$[]"]("object")],["parent_selector",e],["object",entry["$[]"]("object")["$[]"](e)],["record",t]]))):(n=[e,import_value.$call(t["$[]"]("type"),t["$[]"]("content"))],$send(entry["$[]"]("object"),"[]=",n),n[n.length-1])})):$truthy(entry["$[]"]("record")["$[]"]("content")["$is_a?"]($$("Array")))&&$send(entry["$[]"]("record")["$[]"]("content"),"each_with_index",[],(function(e,t){var n;return null==e&&(e=nil),null==t&&(t=nil),$eqeq(e["$[]"]("type"),"Hash")?(entry["$[]"]("object")["$[]="](t,new Map),import_db["$<<"](new Map([["parent",entry["$[]"]("object")],["parent_selector",t],["object",entry["$[]"]("object")["$[]"](t)],["record",e]]))):$eqeq(e["$[]"]("type"),"Array")?(entry["$[]"]("object")["$[]="](t,[]),import_db["$<<"](new Map([["parent",entry["$[]"]("object")],["parent_selector",t],["object",entry["$[]"]("object")["$[]"](t)],["record",e]]))):(n=[t,import_value.$call(e["$[]"]("type"),e["$[]"]("content"))],$send(entry["$[]"]("object"),"[]=",n),n[n.length-1])}));else result=import_value.$call(the_exported_record["$[]"]("type"),the_exported_record["$[]"]("content"));return result}catch(e){if(e===Opal.t_eval_return)return e.$v;throw e}}),-1)}($nesting[0],null,$nesting),function($base,$super,$parent_nesting){var self=$klass($base,$super,"Array"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $defs(self,"$process",(function e(t){var n=e.$$p||nil,r=nil;return e.$$p=null,null==t&&(t=[]),r=[],$truthy(n["$respond_to?"]("call"))&&($truthy(t["$is_any?"]($$$("Array"),$$$("Hash"),$$$($$$("GxG"),"ByteArray"),$$$("Struct"),$$$($$$($$$("GxG"),"Database"),"PersistedHash"),$$$($$$($$$("GxG"),"Database"),"PersistedArray")))?r=$send(t,"process",[],n.$to_proc()):this.$raise($$("ArgumentError"),"you must pass a Array, a Hash, or a ByteArray")),r}),-1),$defs(self,"$search",(function e(t){var n=e.$$p||nil,r=nil;return e.$$p=null,null==t&&(t=[]),r=[],$truthy(n["$respond_to?"]("call"))&&($truthy(t["$is_any?"]($$$("Array"),$$$("Hash"),$$$($$$("GxG"),"ByteArray"),$$$("Struct"),$$$($$$($$$("GxG"),"Database"),"PersistedHash"),$$$($$$($$$("GxG"),"Database"),"PersistedArray")))?r=$send(t,"search",[],n.$to_proc()):this.$raise($$("ArgumentError"),"you must pass a Array, a Hash, or a ByteArray")),r}),-1),$def(self,"$iterative",(function e(){var t=e.$$p||nil,n=this,r=nil,i=nil,a=nil,s=nil,o=nil,$=nil,u=nil,l=nil,c=nil;e.$$p=null,r=[],i=$send($$("Proc"),"new",[],(function(e,t){var n=nil,r=nil;if(null==e&&(e=nil),null==t&&(t=[]),n=[],$truthy(e))for(n["$<<"](new Map([["parent",nil],["parent_selector",nil],["object",e]]));$truthy($rb_gt(n.$size(),0));)r=n.$shift(),$truthy(r["$[]"]("object")["$is_any?"]($$$("Hash"),$$$("Struct"),$$$($$$($$$("GxG"),"Database"),"PersistedHash")))&&$send(r["$[]"]("object"),"each_pair",[],(function(e,t){return null==e&&(e=nil),null==t&&(t=nil),n["$<<"](new Map([["parent",r["$[]"]("object")],["parent_selector",e],["object",t]]))})),$truthy(r["$[]"]("object")["$is_any?"]($$$("Array"),$$$($$$($$$("GxG"),"Database"),"PersistedArray")))&&$send(r["$[]"]("object"),"each_with_index",[],(function(e,t){return null==e&&(e=nil),null==t&&(t=nil),n["$<<"](new Map([["parent",r["$[]"]("object")],["parent_selector",t],["object",e]]))})),t["$<<"](r);return t}),-1),a=$send($$("Proc"),"new",[],(function(e,t){var n=nil;return null==e&&(e=[]),null==t&&(t=nil),n=[],$send(e,"each",[],(function(e){return null==e&&(e=nil),$eqeq(e["$[]"]("parent").$object_id(),t.$object_id())?n["$<<"](e):nil})),n}),-1);try{if(s=i.$call(n,[]),o=a.$call(s,n),$truthy(t["$respond_to?"]("call")))for(;$truthy($rb_gt(o.$size(),0));)$=o.$shift(),$eqeq($["$[]"]("object").$object_id(),n.$object_id())||(u=t.$call($["$[]"]("object"),$["$[]"]("parent_selector"),$["$[]"]("parent")),$truthy(u)&&r["$<<"](u)),$neqeq($["$[]"]("object").$object_id(),nil.$object_id())&&(l=a.$call(s,$["$[]"]("object")),$send(l,"each",[],(function(e){return null==e&&(e=nil),o["$<<"](e)})))}catch(e){if(!Opal.rescue(e,[$$("Exception")]))throw e;c=e;try{n.$log_error(new Map([["error",c],["parameters",new Map]]))}finally{Opal.pop_exception(e)}}return r})),$def(self,"$process",(function e(){var t,n=e.$$p||nil;return e.$$p=null,t=this.$clone(),$send(t,"iterative",[],n.$to_proc()),t})),$def(self,"$process!",(function e(){var t=e.$$p||nil;return e.$$p=null,$send(this,"iterative",[],t.$to_proc()),this})),$def(self,"$search",(function e(){var t=e.$$p||nil,n=nil;return e.$$p=null,n=[],$truthy(t["$respond_to?"]("call"))&&(n=$send(this,"iterative",[],t.$to_proc())),n})),$def(self,"$paths_to",(function(e,t){var n=nil,r=nil,i=nil,a=nil,s=nil,o=nil,$=nil;return null==e&&(e=nil),null==t&&(t=""),n=[],$eqeq(t["$[]"](0),"/")||(t=$rb_plus("/",t)),r=$truthy($rb_gt(t.$size(),1))?t.$split("/")["$[]"]($range(1,-1,!1)).$reverse():[],i=this.$get_at_path(t),a=[new Map([["selector",nil],["container",i]])],s=$send($$("Proc"),"new",[],(function(e){var t=nil;return null==e&&(e=nil),t=nil,function(){try{var n=$thrower("break");return $send(a,"each_with_index",[],(function r(i,a){if(null==i&&(i=nil),null==a&&(a=nil),!$eqeq(i["$[]"]("container"),e))return nil;t=i,n.$throw(nil,r.$$is_lambda)}))}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}(),t})),o=i,$=!1,$truthy(i["$is_any?"]($$$("Hash"),$$$("Array"),$$$("Struct"),$$$($$$($$$("GxG"),"Database"),"PersistedHash"),$$$($$$($$$("GxG"),"Database"),"PersistedArray")))?$send(i,"process!",[],(function(t,i,u){var l=nil,c=nil;return null==t&&(t=nil),null==i&&(i=nil),null==u&&(u=nil),$neqeq(o.$object_id(),u.$object_id())&&(l=s.$call(u),$truthy(l)&&(r=l["$[]"]("prefix").$split("/").$reverse(),$eqeq(r.$size(),0)&&r["$<<"]("")),o=u),c=(c=i.$to_s()).$gsub("/","%2f"),r.$unshift(c),$=!1,$eqeq(t,e)&&($=!0),$truthy($)&&n["$<<"]($rb_plus("/",r.$reverse().$join("/"))),$truthy(t["$is_any?"]($$$("Array"),$$$("Hash"),$$$("Struct"),$$$($$$($$$("GxG"),"Database"),"PersistedHash"),$$$($$$($$$("GxG"),"Database"),"PersistedArray")))&&a.$unshift(new Map([["selector",i],["container",t],["prefix",r.$reverse().$join("/")]])),r.$shift(),nil})):n["$<<"]($rb_plus("/",r.$join("/"))),n}),-1),$def(self,"$object_map",(function(){var e;return e=new Map,$send(this,"search",[],(function t(n,r,i){return null==n&&(n=nil),null==r&&(r=nil),null==i&&(i=nil),$send((null==t.$$s?this:t.$$s).$paths_to(n),"each",[],(function(t){var r;return null==t&&(t=nil),r=[t.$to_s().$to_sym(),n],$send(e,"[]=",r),r[r.length-1]}))}),{$$s:this}),e})),$def(self,"$get_at_path",(function(e){var t=nil,n=nil,r=nil;return null==e&&(e="/"),t=nil,$eqeq(e,"/")?t=this:(n=[this],r=e.$to_s().$split("/"),function(){try{var e=$thrower("break");return $send(r.$to_enum(),"each",[],(function r(i){var a=nil;return null==i&&(i=nil),a=nil,$truthy($rb_gt(i.$size(),0))&&(a=$eqeq(i["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?i.$to_i():(a=(a=i).$gsub("%2f","/")).$to_sym()),$truthy(a)?(t=n.$first()["$[]"](a),$truthy(t["$is_a?"]($$("NilClass")))?void e.$throw(nil,r.$$is_lambda):n.$unshift(t)):nil}))}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),t}),-1),$def(self,"$set_at_path",(function(e,t){var n=nil,r=nil,i=nil,a=nil;return null==e&&(e="/"),null==t&&(t=nil),n=nil,$neqeq(e,"/")&&(r=this.$get_at_path($$$("File").$dirname(e.$to_s())),$truthy(r)&&(i=$$$("File").$basename(e.$to_s()),a=nil,$truthy($rb_gt(i.$size(),0))&&(a=$eqeq(i["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?i.$to_i():(a=(a=i).$gsub("%2f","/")).$to_sym()),$truthy(a)&&(r["$[]="](a,t),n=r["$[]"](a)))),n}),-1),$def(self,"$gxg_export",(function(){var e,t=nil,n=nil,r=nil,i=nil,a=nil;for(e=new Map([["type","Array"],["content",[]]]),t=[new Map([["parent",nil],["parent_selector",nil],["object",this],["record",e]])],n=$send($$("Proc"),"new",[],(function(e){var n=nil;return null==e&&(e=nil),n=[],$send(t,"each",[],(function(t){return null==t&&(t=nil),$eqeq(t["$[]"]("parent").$object_id(),e.$object_id())?n["$<<"](t):nil})),n}),-1),r=$send($$("Proc"),"new",[],(function(e){return null==e&&(e=nil),$truthy(e["$is_any?"]($$("Integer"),$$("Float"),$$("String")))?$truthy(e["$is_a?"]($$("Numeric")))?$truthy(e.$to_s()["$include?"]("."))?new Map([["type","Float"],["content",e]]):new Map([["type","Integer"],["content",e]]):new Map([["type",e.$class().$to_s()],["content",e]]):new Map([["type",e.$class().$to_s()],["content",e.$to_s()]])})),$send(this,"search",[],(function(e,n,i){return null==e&&(e=nil),null==n&&(n=nil),null==i&&(i=nil),$truthy(e["$is_a?"]($$$("Hash")))?t["$<<"](new Map([["parent",i],["parent_selector",n.$clone()],["object",e],["record",new Map([["type","Hash"],["content",new Map]])]])):$truthy(e["$is_a?"]($$$("Array")))?t["$<<"](new Map([["parent",i],["parent_selector",n.$clone()],["object",e],["record",new Map([["type","Array"],["content",[]]])]])):t["$<<"](new Map([["parent",i],["parent_selector",n.$clone()],["object",e],["record",r.$call(e)]]))})),i=[t["$[]"](0)];$truthy($rb_gt(i.$size(),0));)a=i.$shift(),$send(n.$call(a["$[]"]("object")),"each",[],(function(e){return null==e&&(e=nil),a["$[]"]("record")["$[]"]("content")["$[]="](e["$[]"]("parent_selector"),e["$[]"]("record")),$truthy(e["$[]"]("object")["$is_any?"]($$("Hash"),$$("Array")))?i["$<<"](e):nil}));return e})),$defs(self,"$gxg_import",(function $$gxg_import(the_exported_record){try{var self=this,result=nil,import_value=nil,import_db=nil,entry=nil;if(null==the_exported_record&&(the_exported_record=nil),result=nil,$truthy(the_exported_record["$is_a?"]($$("Hash"))))if($eqeq(the_exported_record["$[]"]("type"),"Hash"))result=$$$("Hash").$gxg_import(the_exported_record);else if(import_value=$send($$("Proc"),"new",[],(function $$59(type,value){var $a,self=null==$$59.$$s?this:$$59.$$s,the_class=nil,the_error=nil;if(null==type&&(type=nil),null==value&&(value=nil),$truthy(value["$is_a?"]($$("String"))))try{$a=type,the_class="function"==typeof Opal.compile?eval(Opal.compile($a,{scope_variables:["the_class","type","value","result","import_value","the_exported_record"],arity_check:!1,file:"(eval)",eval:!0})):self.$eval($a),$truthy(the_class["$respond_to?"]("parse"))?value=the_class.$parse(value):$truthy(the_class["$respond_to?"]("new"))?value=the_class.$new(value):$truthy(the_class["$respond_to?"]("try_convert"))&&(value=the_class.$try_convert(value))}catch(e){if(!Opal.rescue(e,[$$("Exception")]))throw e;the_error=e,Opal.pop_exception(e)}return value}),{$$s:self}),$eqeq(the_exported_record["$[]"]("type"),"Array"))for(result=[],import_db=[new Map([["parent",nil],["parent_selector",nil],["object",result],["record",the_exported_record]])];$truthy($rb_gt(import_db.$size(),0));)entry=import_db.$shift(),$truthy(entry["$[]"]("record")["$[]"]("content")["$is_a?"]($$("Hash")))?$send(entry["$[]"]("record")["$[]"]("content"),"each_pair",[],(function(e,t){var n;return null==e&&(e=nil),null==t&&(t=nil),$eqeq(t["$[]"]("type"),"Hash")?(entry["$[]"]("object")["$[]="](e,new Map),import_db["$<<"](new Map([["parent",entry["$[]"]("object")],["parent_selector",e],["object",entry["$[]"]("object")["$[]"](e)],["record",t]]))):$eqeq(t["$[]"]("type"),"Array")?(entry["$[]"]("object")["$[]="](e,[]),import_db["$<<"](new Map([["parent",entry["$[]"]("object")],["parent_selector",e],["object",entry["$[]"]("object")["$[]"](e)],["record",t]]))):(n=[e,import_value.$call(t["$[]"]("type"),t["$[]"]("content"))],$send(entry["$[]"]("object"),"[]=",n),n[n.length-1])})):$truthy(entry["$[]"]("record")["$[]"]("content")["$is_a?"]($$("Array")))&&$send(entry["$[]"]("record")["$[]"]("content"),"each_with_index",[],(function(e,t){var n;return null==e&&(e=nil),null==t&&(t=nil),$eqeq(e["$[]"]("type"),"Hash")?(entry["$[]"]("object")["$[]="](t,new Map),import_db["$<<"](new Map([["parent",entry["$[]"]("object")],["parent_selector",t],["object",entry["$[]"]("object")["$[]"](t)],["record",e]]))):$eqeq(e["$[]"]("type"),"Array")?(entry["$[]"]("object")["$[]="](t,[]),import_db["$<<"](new Map([["parent",entry["$[]"]("object")],["parent_selector",t],["object",entry["$[]"]("object")["$[]"](t)],["record",e]]))):(n=[t,import_value.$call(e["$[]"]("type"),e["$[]"]("content"))],$send(entry["$[]"]("object"),"[]=",n),n[n.length-1])}));else result=import_value.$call(the_exported_record["$[]"]("type"),the_exported_record["$[]"]("content"));return result}catch(e){if(e===Opal.t_eval_return)return e.$v;throw e}}),-1)}($nesting[0],null,$nesting)},Opal.modules["web/gxg_elements"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.def,a=e.send,s=e.rb_minus,o=e.slice,$=e.rb_plus,u=e.rb_gt,l=e.NilClass,c=e.range,_=e.to_a,d=e.rb_lt,p=e.rb_le,f=e.defs,h=e.return_ivar,m=e.send2,g=e.find_super,v=e.rb_ge,b=e.rb_times,y=e.neqeq,w=e.alias,x=e.eqeq,k=e.return_self,G=e.thrower,E=[],S=e.nil,O=e.$$$;return e.add_stubs("private,is_a?,to_a,to_s,new,each,-,[]=,+,bytesize,>,[],protected,inspect,is_any?,raise,array_to_ascii,string_to_array,to_i,include?,chr,array_to_string,data,to_enum,flatten,<<,filter_data,size,join_arrays,<,first,last,<=,public,respond_to?,process,to_proc,search,>=,maxsize=,padvalue=,outervalue=,call,*,times,clone,each_with_index,replace,index,pattern_range,!=,class,match,outervalue,padvalue,maxsize,dclone,frozen?,freeze,initialize_dup,slice,filter_parameters,count,==,try_convert,join,<=>,collect,delete,reject!,ord,with_index,hash,exception,gsub,message,upcase,split,force_encoding,pack,delete_at,reject,reverse,clear,%,~,rotate,sample,select,shuffle,sort,sort_by!,encode64,to_ascii,uniq,insert,rassoc,collect!,compact,values_at,find_index,select!,=~,unshift,basename"),function(E,M){var A=[t(E,"GxG")].concat(M);return function(t,E,M){var A=n(t,null,"ByteArray"),N=[A].concat(M),z=e.$r(N),D=A.$$prototype;return D.pad_value=D.data=D.max_size=D.outer=S,A.$private(),i(A,"$array_to_ascii",(function(e){var t=S,n=S;return null==e&&(e=S),t="",r(e["$is_a?"](O(O("Buffer"),"Array")))&&(n=new Uint8Array(e.$to_a()),t=new window.TextDecoder("ascii").decode(n)),t}),-1),i(A,"$array_to_string",(function(e){var t=S;return null==e&&(e=S),t="",r(e)&&(t=(new window.TextDecoder).decode(new Uint8Array(e.$to_a())).$to_s()),t}),-1),i(A,"$string_to_array",(function(t){var n,r,i;return null==t&&(t=""),r=(n=(new window.TextEncoder).encode(t.toString())).byteLength,i=z("Buffer").$new(r).$to_a(),a(e.Range.$new(0,s(r,1),!1),"each",[],(function(e){var t;return null==e&&(e=S),t=[e,n[e]],a(i,"[]=",t),t[t.length-1]})),i}),-1),i(A,"$join_arrays",(function(t){var n,i,l=S,c=S,_=S;return n=o(arguments),l=0,c=0,a(i=n,"each",[],(function(e){return null==e&&(e=S),l=$(l,e.$bytesize())})),_=z("Buffer").$new(l).$to_a(),a(i,"each",[],(function(t){var n;return null==t&&(t=S),n=t.$bytesize(),r(u(n,0))?a(e.Range.$new(0,s(n,1),!1),"each",[],(function(e){return null==e&&(e=S),_["$[]="](c,t["$[]"](e)),c=$(c,1)})):S})),_}),-1),A.$protected(),i(A,"$filter_data",(function(e){var t,n=this,i=S;return null==e&&(e=""),t="ByteArray.new expects a String, a Integer or Float between 0 and 255, a nil ( counted as padvalue() ), a ByteArray, or an Array of any of those; you provided "+e.$inspect(),r(e["$is_any?"](l,O("String"),O("Numeric"),O("Array"),O(O("GxG"),"ByteArray"),O(z("Buffer"),"Array")))||n.$raise(z("Exception").$new(t)),r(e["$is_a?"](O(z("Buffer"),"Array")))&&(e=n.$array_to_ascii(e)),r(e["$is_a?"](O("String")))&&(e=n.$string_to_array(e)),r(e["$is_a?"](O("Numeric")))&&(e=e.$to_i(),r(c(0,255,!1)["$include?"](e))?e=n.$string_to_array(e.$chr()):n.$raise(z("Exception").$new(t))),r(e["$is_a?"](O(O("GxG"),"ByteArray")))&&(e=n.$string_to_array(n.$array_to_string(e.$data()))),r(e["$is_a?"](O("Array")))&&(i=[],a(e.$flatten().$to_enum(),"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=S),i["$<<"](n.$filter_data(t))}),{$$s:n}),e=r(u(i.$size(),0))?a(n,"join_arrays",_(i)):z("Buffer").$new(0).$to_a()),r(e)||(e=z("Buffer").$new(1).$to_a())["$[]="](0,n.pad_value.$to_i()),e}),-1),i(A,"$filter_parameters",(function(t){var n,i,a=this,u=S;return n=o(arguments),u=S,r((i=n)["$[]"](0)["$is_any?"](O("Numeric"),O("Integer"),O("Float"),O("BigDecimal")))?(i["$[]="](0,i["$[]"](0).$to_i()),r(d(i["$[]"](0),0))&&i["$[]="](0,$(a.data.$bytesize(),i["$[]"](0))),u=e.Range.$new(i["$[]"](0),i["$[]"](0),!1),r(i["$[]"](1)["$is_a?"](z("Numeric")))&&(i["$[]="](1,i["$[]"](1).$to_i()),r(d(i["$[]"](1),1))?a.$raise(z("ArgumentError").$new("Second parameter needs to be a Numeric greater than 0, you provided "+i["$[]"](1).$inspect())):u=e.Range.$new(i["$[]"](0),$(i["$[]"](0),s(i["$[]"](1),1)),!1))):r(i["$[]"](0)["$is_a?"](z("Range")))?(r(d(i["$[]"](0).$first(),0))?i["$[]="](1,$(a.data.$bytesize(),i["$[]"](0).$first())):i["$[]="](1,i["$[]"](0).$first()),r(d(i["$[]"](0).$last(),0))?i["$[]="](2,$(a.data.$bytesize(),i["$[]"](0).$last())):i["$[]="](2,i["$[]"](0).$last()),u=r(p(i["$[]"](1),i["$[]"](2)))?e.Range.$new(i["$[]"](1),i["$[]"](2),!1):e.Range.$new(i["$[]"](2),i["$[]"](1),!1)):r(u)||a.$raise(z("ArgumentError").$new("First parameter needs to be a Numeric or a Range, you provided "+i["$[]"](0).$inspect())),u}),-1),A.$public(),f(A,"$try_convert",(function(t){var n;n=o(arguments);try{return O(z("GxG"),"ByteArray").$new(1,[n])}catch(t){if(!e.rescue(t,[z("Exception")]))throw t;try{return S}finally{e.pop_exception(t)}}}),-1),f(A,"$[]",(function(e){var t;return t=o(arguments),a(O(z("GxG"),"ByteArray"),"new",_(t))}),-1),f(A,"$process",(function e(t){var n=e.$$p||S,i=S;return e.$$p=null,null==t&&(t=O(z("GxG"),"ByteArray").$new()),i=O(z("GxG"),"ByteArray").$new(),r(n["$respond_to?"]("call"))&&(r(t["$is_any?"](O("Array"),O("Hash"),O(O("GxG"),"ByteArray"),O("Set"),O("Struct")))?i=a(t,"process",[],n.$to_proc()):this.$raise(z("ArgumentError"),"you must pass an Array, a ByteArray, or a Hash")),i}),-1),f(A,"$search",(function e(t){var n=e.$$p||S,i=S;return e.$$p=null,null==t&&(t=O(z("GxG"),"ByteArray").$new()),i=O(z("GxG"),"ByteArray").$new(),r(n["$respond_to?"]("call"))&&(r(t["$is_any?"](O("Array"),O("Hash"),O(O("GxG"),"ByteArray"),O("Set"),O("Struct")))?i=a(t,"search",[],n.$to_proc()):this.$raise(z("ArgumentError"),"you must pass an Array, a ByteArray, or a Hash")),i}),-1),i(A,"$data",h("data")),i(A,"$initialize",(function t(n){var i,$,l=t.$$p||S,d=this,p=S,f=S,h=S,y=S;return t.$$p=null,i=o(arguments),$=i,d.data=z("Buffer").$new(0).$to_a(),p=new Map([["process",c(0x10000000000000000,0x10000000000000000,!1)]]),d.max_size=S,d.pad_value=0,d.outer=S,m(d,g(d,"initialize",t,!1,!0),"initialize",[],null),r(u($.$size(),0))&&(r(l["$respond_to?"]("call"))?r($["$[]"](0)["$is_a?"](z("Numeric")))&&($["$[]="](0,$["$[]"](0).$to_i()),r(v($["$[]"](0),0))&&(r(u($["$[]"](0),p["$[]"]("process").$first()))&&$["$[]="](0,p["$[]"]("process").$first()),r($["$[]"](1)["$is_a?"](z("Numeric")))&&d["$maxsize="]($["$[]"](1).$to_i()),r($["$[]"](2)["$is_a?"](z("Numeric")))&&d["$padvalue="]($["$[]"](1).$to_i()),r($["$[]"](3)["$is_a?"](z("Numeric")))&&d["$outervalue="]($["$[]"](1).$to_i()),a(e.Range.$new(0,s($["$[]"](0),1),!1).$to_enum(),"each",[],(function e(t){var n=null==e.$$s?this:e.$$s,i=S;return null==t&&(t=S),i=[l.$call(t)].$flatten(),a(i.$to_enum(),"each",[],(function e(t){var n,i=null==e.$$s?this:e.$$s;return null==i.data&&(i.data=S),null==t&&(t=S),t=r(n=i.$filter_data(t))?n:z("Buffer").$new(0).$to_a(),r(u(t.$bytesize(),0))?(r(u(b($["$[]"](0),t.$bytesize()),p["$[]"]("process").$first()))&&i.$raise(z("NoMemoryError").$new("This operation will exceed available per-process memory limits")),i.data=i.$join_arrays(i.data,t)):S}),{$$s:n})}),{$$s:d}),r(d.max_size)&&r(u(d.data.$bytesize(),d.max_size))&&(d.max_size=d.data.$bytesize()))):(r($["$[]"](0)["$is_a?"](z("Numeric")))?(f=$["$[]"](0).$to_i(),h=r($["$[]"](1))?[$["$[]"](1)].$flatten():[d.pad_value.$to_i().$chr()],r($["$[]"](2)["$is_a?"](z("Numeric")))&&d["$maxsize="]($["$[]"](2).$to_i()),r($["$[]"](3)["$is_a?"](z("Numeric")))&&d["$padvalue="]($["$[]"](3).$to_i()),r($["$[]"](4)["$is_a?"](z("Numeric")))&&d["$outervalue="]($["$[]"](4).$to_i())):(f=1,h=[$["$[]"](0)].$flatten(),r($["$[]"](1)["$is_a?"](z("Numeric")))&&d["$maxsize="]($["$[]"](1).$to_i()),r($["$[]"](2)["$is_a?"](z("Numeric")))&&d["$padvalue="]($["$[]"](2).$to_i()),r($["$[]"](3)["$is_a?"](z("Numeric")))&&d["$outervalue="]($["$[]"](3).$to_i())),y=[],a(h.$to_enum(),"each",[],(function e(t){var n,i=null==e.$$s?this:e.$$s;return null==t&&(t=S),y["$<<"](r(n=i.$filter_data(t))?n:z("Buffer").$new(0).$to_a())}),{$$s:d}),y=a(d,"join_arrays",_(y)),r(u(y.$bytesize(),0))&&(r(u(b(f,y.$bytesize()),p["$[]"]("process").$first()))&&d.$raise(z("NoMemoryError").$new("This operation will exceed available per-process memory limits")),a(f,"times",[],(function e(){var t=null==e.$$s?this:e.$$s;return null==t.data&&(t.data=S),t.data=t.$join_arrays(t.data,y)}),{$$s:d})),r(d.max_size)&&r(u(d.data.$bytesize(),d.max_size))&&(d.max_size=d.data.$bytesize()))),d}),-1),i(A,"$process",(function e(){var t,n=e.$$p||S;return e.$$p=null,t=this.$clone(),r(n["$respond_to?"]("call"))&&a(t,"each_with_index",[],(function e(t,r){var i=null==e.$$s?this:e.$$s;return null==t&&(t=S),null==r&&(r=S),n.$call(t,r,i)}),{$$s:this}),t})),i(A,"$process!",(function e(){var t=e.$$p||S,n=this;return e.$$p=null,r(t["$respond_to?"]("call"))&&n.$replace(n.$array_to_ascii(a(n,"process",[],t.$to_proc()).$data())),n})),i(A,"$search",(function e(){var t=e.$$p||S,n=S;return e.$$p=null,n=[],r(t["$respond_to?"]("call"))&&a(this,"each_with_index",[],(function e(i,a){var s,o=null==e.$$s?this:e.$$s;return null==i&&(i=S),null==a&&(a=S),s=t.$call(i,a,o),r(s)?n["$<<"](s):S}),{$$s:this}),n})),i(A,"$pattern_range",(function(t,n){var i,a=this,o=S;return null==t&&(t=""),null==n&&(n=0),o=S,t=a.$array_to_ascii(O(z("GxG"),"ByteArray").$new(t).$data()),i=a.$array_to_ascii(a.$data()).$index(t,n),r(i)&&(o=e.Range.$new(i,$(i,s(t.$size(),1)),!1)),o}),-1),i(A,"$pattern_ranges",(function(e){var t=this,n=S,i=S,a=S;for(null==e&&(e=""),n=[],i=0,r(e["$is_a?"](O(z("GxG"),"ByteArray")))&&(e=t.$array_to_ascii(e.$data())),a=t.$pattern_range(e,i);y(a,S);){if(r(a["$is_a?"](O("Range")))){if(n["$<<"](a),!r(p($(a.$last(),1),t.data.$bytesize())))break;i=$(a.$last(),1)}a=t.$pattern_range(e,i)}return n}),-1),i(A,"$padvalue",(function(){return this.pad_value.$clone()})),i(A,"$padvalue=",(function(e){var t,n,i=this;return t=o(arguments),r(u((n=t).$size(),0))&&(r(n["$[]"](0)["$is_a?"](z("Float")))&&n["$[]="](0,n["$[]"](0).$to_i()),r(n["$[]"](0)["$is_a?"](z("Integer")))?r(c(0,255,!1)["$include?"](n["$[]"](0)))&&(i.pad_value=n["$[]"](0)):i.$raise(z("TypeError").$new("Value type: expected Float or Integer. You provided "+n["$[]"](0).$class()))),i.pad_value.$clone()}),-1),i(A,"$match",(function(e){return this.$array_to_ascii(this.data).$match(e)})),i(A,"$maxsize",(function(){return this.max_size.$clone()})),i(A,"$maxsize=",(function(t){var n,i,a=this;return n=o(arguments),r(u((i=n).$size(),0))&&r(i["$[]"](0))?(r(i["$[]"](0)["$is_a?"](z("Numeric")))&&i["$[]="](0,i["$[]"](0).$to_i()),r(i["$[]"](0)["$is_a?"](z("Integer")))?(r(u(i["$[]"](0),0x10000000000000000))&&a.$raise(z("NoMemoryError").$new("Setting maxsize this high exceeds per-process memory limits")),r(u(i["$[]"](0),a.max_size.$to_i()))?a.max_size=i["$[]"](0):r(d(i["$[]"](0),a.max_size.$to_i()))&&(a.max_size=i["$[]"](0),r(u(a.data.$bytesize(),i["$[]"](0)))&&a.data.$replace(a.data["$[]"](e.Range.$new(0,s(i["$[]"](0),1),!1))))):a.$raise(z("ArgumentError").$new("Expected NilClass or Numeric class. You provided "+i["$[]"](0).$class()))):a.max_size=S,a.max_size.$clone()}),-1),i(A,"$outervalue",(function(){return this.outer.$clone()})),i(A,"$outervalue=",(function(e){var t,n,i=this;return t=o(arguments),r(u((n=t).$size(),0))&&r(n["$[]"](0))?(r(n["$[]"](0)["$is_a?"](z("Float")))&&n["$[]="](0,n["$[]"](0).$to_i()),r(n["$[]"](0)["$is_a?"](z("Integer")))?r(c(0,255,!1)["$include?"](n["$[]"](0)))&&(i.outer=n["$[]"](0)):i.$raise(z("TypeError").$new("Expected a NilClass, a Float, or a Integer. You provided "+n["$[]"](0).$class()))):i.outer=S,i.$outervalue()}),-1),i(A,"$dclone",(function(){var e=this,t=S;return(t=O(z("GxG"),"ByteArray").$new(e.$array_to_ascii(e.data)))["$padvalue="](e.$padvalue()),t["$maxsize="](e.$maxsize()),t["$outervalue="](e.$outervalue()),t})),i(A,"$initialize_clone",(function(){var e=S;return e=this.$dclone(),r(this["$frozen?"]())&&e.$freeze(),e})),i(A,"$initialize_dup",(function(){return this.$dclone()})),w(A,"dup","initialize_dup"),w(A,"initialize_copy","initialize_dup"),i(A,"$clone",(function(){return this.$initialize_dup()})),i(A,"$[]",(function(e,t){return null==e&&(e=0),null==t&&(t=S),this.$slice(e,t)}),-1),i(A,"$[]=",(function(t,n,i){var o=this,l=S,c=S,_=S,p=S;return null==t&&(t=0),null==n&&(n=S),null==i&&(i=S),r(n)&&(r(i)||(i=n,n=S)),i=o.$filter_data(i),l=S,c=S,r(i)&&(r(u(i.$bytesize(),0))&&(_=o.$filter_parameters(t,n),r(_)||(l=r(n)?z("ArgumentError").$new(t.$inspect()+","+n.$inspect()+" could not be fashioned into a valid Indexer"):z("ArgumentError").$new(t.$inspect()+" could not be fashioned into a valid Indexer")),r(l)&&o.$raise(l),r(o.max_size)&&((r(u(_.$count(),o.max_size))||r(u(_.$first(),s(o.max_size,1)))||r(u(_.$last(),s(o.max_size,1))))&&(l=z("IndexError").$new("Index exceeds "+o.max_size+" limit. You might need to adjust maxsize.")),r(u($(_.$first(),s(i.$bytesize(),1)),s(o.max_size,1)))&&(l=z("RangeError").$new("Data size at specified Index exceeds "+o.max_size+" limit. You might need to adjust maxsize.")),r(t["$is_a?"](z("Integer")))?r(n)?r(u($(_.$first(),s(_.$count(),1)),s(o.max_size,1)))?l=z("RangeError").$new("Range exceeds "+o.max_size+" limit. You might need to adjust maxsize."):r(d(_.$count(),i.$bytesize()))&&r(u($($(_.$first(),s(_.$count(),1)),s(s(i.$bytesize(),1),s(_.$count(),1))),s(o.max_size,1)))&&(l=z("RangeError").$new("Value size exceeds "+o.max_size+" limit. You might need to adjust maxsize.")):(r(u($(s(o.data.$size(),1),i.$bytesize()),o.max_size))&&(l=z("RangeError").$new("Operation exceeds "+o.max_size+" limit. You might need to adjust maxsize.")),r(u($(_.$first(),s(i.$bytesize(),1)),s(o.max_size,1)))&&(l=z("RangeError").$new("Value size exceeds "+o.max_size+" limit. You might need to adjust maxsize."))):r(u(_.$count(),o.max_size))?l=z("RangeError").$new("Range exceeds "+o.max_size+" limit. You might need to adjust maxsize."):r(d(_.$count(),i.$bytesize()))&&r(u($($(_.$first(),s(_.$count(),1)),s(s(i.$bytesize(),1),s(_.$count(),1))),s(o.max_size,1)))&&(l=z("RangeError").$new("Value size exceeds "+o.max_size+" limit. You might need to adjust maxsize.")),r(l)&&o.$raise(l)),r(u(_.$first(),s(o.data.$bytesize(),1)))&&a(s(_.$first(),s(o.data.$bytesize(),1)),"times",[],(function e(){var t=null==e.$$s?this:e.$$s;return null==t.pad_value&&(t.pad_value=S),t["$<<"](t.pad_value.$chr())}),{$$s:o}),r(n)?o.data["$[]="](_.$first(),_.$count(),i):r(t["$is_a?"](z("Numeric")))?x(i.$bytesize(),1)?o.data["$[]="](_.$first(),i["$[]"](0)):(p=_.$first(),a(e.Range.$new(0,s(i.$bytesize(),1),!1),"each",[],(function e(t){var n,o=null==e.$$s?this:e.$$s;return null==o.data&&(o.data=S),null==t&&(t=S),r(u(t,s(o.data.$bytesize(),1)))?o["$<<"](i["$[]"](t)):(n=[$(p,t),i["$[]"](t)],a(o.data,"[]=",n),n[n.length-1])}),{$$s:o})):o.data["$[]="](_,i)),c=O(z("GxG"),"ByteArray").$new(i)),c}),-1),i(A,"$|",(function(e){var t,n,i=S;return t=o(arguments),n=O(z("GxG"),"ByteArray").$try_convert(t),i=this.$clone(),r(n)&&a(n,"each",[],(function(e){return null==e&&(e=S),r(i["$include?"](e))?S:i["$<<"](e)})),i}),-1),i(A,"$&",(function(e){var t,n=S,i=S;return t=o(arguments),n=O(z("GxG"),"ByteArray").$new(),r(u(t.$size(),0))&&(i=O(z("GxG"),"ByteArray").$try_convert(t),r(i)&&a(this,"each",[],(function(e){return null==e&&(e=S),r(i["$include?"](e))?n["$<<"](e):S}))),n}),-1),i(A,"$*",(function(e){var t,n=this,i=S;return t=o(arguments),i=O(z("GxG"),"ByteArray").$new(),r(u(n.$size(),0))&&(r(u(t.$size(),0))?r(t["$[]"](0)["$is_a?"](O("String")))?i=n.$join(t["$[]"](0)):r(t["$[]"](0)["$is_a?"](z("Numeric")))?(t["$[]="](0,t["$[]"](0).$to_i()),r(p(b(t["$[]"](0),n.$size()),0x10000000000000000))?a(t["$[]"](0),"times",[],(function e(){var t=null==e.$$s?this:e.$$s;return i["$<<"](t.$clone())}),{$$s:n}):n.$raise(z("NoMemoryError").$new("This operation will exceed per-process memory limits"))):n.$raise(z("ArgumentError").$new("a String or Numeric is required, you provied "+t["$[]"](0).$inspect())):n.$raise(z("TypeError").$new("Can't convert nil to ByteArray"))),i}),-1),i(A,"$+",(function(e){var t,n=this,i=S,a=S,s=S;return t=o(arguments),i=O(z("GxG"),"ByteArray").$new(),r(u(t.$size(),0))?(a=n.$clone(),s=O(z("GxG"),"ByteArray").$try_convert(t),r(s)&&r(u(s.$size(),0))&&(i=O(z("GxG"),"ByteArray").$new(1,[n.$array_to_ascii(a.$data()),n.$array_to_ascii(s.$data())]))):n.$raise(z("TypeError").$new("Can't convert nil to ByteArray")),i}),-1),i(A,"$-",(function(e){var t,n=S,i=S;return t=o(arguments),n=O(z("GxG"),"ByteArray").$new(),r(u(t.$size(),0))&&(i=O(z("GxG"),"ByteArray").$try_convert(t),r(i)&&a(this,"each",[],(function(e){return null==e&&(e=S),r(i["$include?"](e))?S:n["$<<"](e)}))),n}),-1),i(A,"$<<",(function(e){var t,n,i=this,a=S;return t=o(arguments),r(u((n=t).$size(),0))&&(a=O(z("GxG"),"ByteArray").$try_convert(n),r(a)&&(r(i.max_size)&&r(u($(i.data.$bytesize(),a.$size()),i.max_size))&&i.$raise(z("RangeError").$new("Operation exceeds "+i.max_size+" limit. You might need to adjust maxsize.")),i.data=i.$join_arrays(i.data,a.$data()))),i}),-1),i(A,"$<=>",(function(e){var t,n,i=S,a=S;return t=o(arguments),i=1,r(u((n=t).$size(),0))&&(r(n["$[]"](0)["$is_a?"](O(O("GxG"),"ByteArray")))?i=this.$data()["$<=>"](n["$[]"](0).$data()):(a=O(z("GxG"),"ByteArray").$try_convert(n),r(a)&&(i=this.$data()["$<=>"](a.$data())))),i}),-1),i(A,"$==",(function(e){var t,n,i=S;return t=o(arguments),i=!1,r(u((n=t).$size(),0))&&r(n["$[]"](0)["$is_a?"](O(O("GxG"),"ByteArray")))&&(i=this.$data()["$=="](n["$[]"](0).$data())),i}),-1),i(A,"$at",(function(e){var t,n;return t=o(arguments),r((n=t)["$[]"](0)["$is_a?"](z("Float")))&&n["$[]="](0,n["$[]"](0).$to_i()),r(n["$[]"](0)["$is_a?"](z("Integer")))?this["$[]"](n["$[]"](0)):this.$raise(z("TypeError").$new("Expected Integer or Float. You provided "+n["$[]"](0).$class()))}),-1),i(A,"$clear",(function(){return this.data=z("Buffer").$new(0).$to_a(),this})),i(A,"$collect",(function e(){var t=e.$$p||S,n=this,i=S;return e.$$p=null,i=O(z("GxG"),"ByteArray").$new(),r(t["$respond_to?"]("call"))?a(n,"each",[],(function e(n){var r=null==e.$$s?this:e.$$s;return null==n&&(n=S),i["$<<"](r.$array_to_ascii(r.$filter_data(t.$call(n))))}),{$$s:n}):i=n.$to_enum("collect"),i})),i(A,"$collect!",(function e(){var t=e.$$p||S,n=this;return e.$$p=null,r(t["$respond_to?"]("call"))?(n.data=a(n,"collect",[],t.$to_proc()).$data(),n):n.$to_enum("collect!")})),i(A,"$combination",(function e(t){var n,i,s=e.$$p||S;return e.$$p=null,n=o(arguments),i=a(this.$to_a(),"to_enum",["combination"].concat(_(n))),r(s["$respond_to?"]("call"))?(a(i,"each",[],(function(e){return null==e&&(e=S),s.$call(O(z("GxG"),"ByteArray").$new(e))})),this):i}),-1),i(A,"$repeated_combination",(function e(t){var n,i,s=e.$$p||S;return e.$$p=null,n=o(arguments),i=a(this.$to_a(),"to_enum",["repeated_combination"].concat(_(n))),r(s["$respond_to?"]("call"))?(a(i,"each",[],(function(e){return null==e&&(e=S),s.$call(O(z("GxG"),"ByteArray").$new(e))})),this):i}),-1),i(A,"$compact",k),i(A,"$concat",(function(e){var t,n,i,a=this,s=S;return t=o(arguments),i=a,r(u((n=t).$size(),0))&&(s=O(z("GxG"),"ByteArray").$try_convert(n),r(s)?a.data=a.$join_arrays(a.data,s.$data()):a.$raise(z("Exception").$new("Could not convert "+n.$inspect()+" to ByteArray"))),i}),-1),i(A,"$count",(function e(t){var n=e.$$p||S,i=this,s=S;return e.$$p=null,null==t&&(t=S),s=0,r(t["$is_a?"](z("Numeric")))?a(i,"each",[],(function(e){return null==e&&(e=S),x(e,t.$to_i())?s=$(s,1):S})):r(n["$respond_to?"]("call"))?a(i,"each",[],(function(e){return null==e&&(e=S),x(n.$call(e),!0)?s=$(s,1):S})):s=i.data.$bytesize(),s}),-1),i(A,"$cycle",(function e(t){var n=e.$$p||S,i=this;if(e.$$p=null,null==t&&(t=S),!r(u(i.data.$bytesize(),0)))return S;if(r(d(t.$to_i(),0)))return S;if(!r(n["$respond_to?"]("call")))return i.$to_a().$to_enum("cycle",t);if(r(t))return a(t.$to_i(),"times",[],(function e(){return a(null==e.$$s?this:e.$$s,"each",[],(function(e){return null==e&&(e=S),n.$call(e)}))}),{$$s:i}),S;for(;r(!0);)a(i,"each",[],(function(e){return null==e&&(e=S),n.$call(e)}))}),-1),i(A,"$delete",(function e(t){var n,i,a=e.$$p||S,s=this,$=S,l=S,c=S;return e.$$p=null,n=o(arguments),$=S,r((i=n)["$[]"](0)["$is_a?"](z("Numeric")))&&(l=s.$filter_data(i["$[]"](0).$to_i()),r(u(l.$bytesize(),1))&&(l=l["$[]"](0)),c=s.data.$delete(l),x(c,s.data)?r(a["$respond_to?"]("call"))&&($=a.$call()):(s.data.$replace(c),$=i["$[]"](0))),$}),-1),i(A,"$delete_at",(function(t){var n,i,l=this,c=S,_=S,p=S,f=S,h=S,m=S;return n=o(arguments),c=S,r(u((i=n).$size(),0))&&r(u(l.$size(),0))&&r(i["$[]"](0)["$is_a?"](O("Numeric")))&&(_=i["$[]"](0).$to_i(),r(d(_,l.$size()))&&(c=l.data["$[]"](_),x(_,0)?p=[e.Range.$new(1,s(l.data.$bytesize(),1),!1)]:(p=[e.Range.$new(0,s(_,1),!1)],x(_,s(l.data.$bytesize(),1))||p["$<<"](e.Range.$new($(_,1),s(l.data.$bytesize(),1),!1))),f=0,a(p,"each",[],(function(e){return null==e&&(e=S),f=$(f,e.$size())})),h=z("Buffer").$new(f).$to_a(),m=0,a(p,"each",[],(function e(t){return null==t&&(t=S),a(t,"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.data&&(n.data=S),null==t&&(t=S),h["$[]="](m,n.data["$[]"](t)),m=$(m,1)}),{$$s:null==e.$$s?this:e.$$s})}),{$$s:l}),l.data=h)),c}),-1),i(A,"$delete_if",(function e(){var t=e.$$p||S;return e.$$p=null,a(this,"reject!",[],t.$to_proc())})),i(A,"$drop",(function(t){return this.$slice(e.Range.$new(s(t.$to_i(),1),-1,!1))})),i(A,"$drop_while",(function e(){var t=e.$$p||S,n=S;return e.$$p=null,n=O(z("GxG"),"ByteArray").$new(),r(t["$respond_to?"]("call"))?(a(this,"each",[],(function(e){var i;return null==e&&(e=S),i=t.$call(e),r(i)?S:n["$<<"](e)})),n):this.$to_a().$to_enum("drop_while")})),i(A,"$each",(function e(){var t=e.$$p||S,n=this;return e.$$p=null,r(t["$respond_to?"]("call"))?(r(u(n.data.$bytesize(),0))&&a(n.data.$to_a(),"each",[],(function(e){return null==e&&(e=S),t.$call(e.$ord())})),n):n.$to_enum("each")})),i(A,"$each_index",(function t(){var n=t.$$p||S,i=this;return t.$$p=null,r(n["$respond_to?"]("call"))?(r(u(i.data.$bytesize(),0))&&a(e.Range.$new(0,s(i.data.$bytesize(),1),!1),"each",[],(function(e){return null==e&&(e=S),n.$call(e)})),i):i.$to_enum("each_index")})),i(A,"$each_with_index",(function e(t){var n=e.$$p||S,i=this;return e.$$p=null,null==t&&(t=0),r(n["$respond_to?"]("call"))?(r(u(i.data.$bytesize(),0))&&a(i.data.$to_a().$with_index(t),"each",[],(function(e,t){return null==e&&(e=S),null==t&&(t=S),n.$call(e.$ord(),t)})),i):i.$to_enum("each_with_index",t)}),-1),i(A,"$empty?",(function(){return this.data.$bytesize()["$=="](0)})),i(A,"$eql?",(function(e){var t,n;return t=o(arguments),!!r(u((n=t).$size(),0))&&this["$=="](n["$[]"](0))}),-1),i(A,"$fetch",(function e(t){var n,i,a=e.$$p||S,s=this;return e.$$p=null,n=o(arguments),r(u((i=n).$size(),0))&&r(i["$[]"](0)["$is_a?"](z("Numeric")))?(i["$[]="](0,s.$filter_parameters(i["$[]"](0).$to_i()).$first()),r(v(i["$[]"](0),s.$size()))?r(i["$[]"](1))?r(a["$respond_to?"]("call"))?a.$call(i["$[]"](0)):i["$[]"](1):s.$raise(z("IndexError").$new("Index specified lies outside the ByteArray")):s["$[]"](i["$[]"](0))):S}),-1),i(A,"$fill",(function t(n){var i,l=t.$$p||S,c=this,p=S,f=S,h=S,m=S,g=S;if(t.$$p=null,i=o(arguments),S,p=O(z("GxG"),"ByteArray").$new(),r(l["$respond_to?"]("call")))r(u(i.$size(),0))?(r(i["$[]"](0)["$is_a?"](z("Numeric")))&&(i["$[]="](0,i["$[]"](0).$to_i()),r(d(i["$[]"](0),0))&&(r(i["$[]"](1)["$is_a?"](z("Numeric")))?r(u(i["$[]"](1).$to_i(),0))?i=[e.Range.$new($(c.data.$bytesize(),i["$[]"](0)),$($(c.data.$bytesize(),i["$[]"](0)),s(i["$[]"](1).$to_i(),1)),!1)]:c.$raise(z("ArgumentError").$new("length specified should be a positive Integer for Float")):i=[e.Range.$new($(c.data.$bytesize(),i["$[]"](0)),s(c.data.$bytesize(),1),!1)])),f=a(c,"filter_parameters",_(i))):f=e.Range.$new(0,s(r(h=c.max_size)?h:c.data.$bytesize(),1),!1),a(e.Range.$new(0,s(c.data.$bytesize(),1),!1),"each",[],(function e(t){var n=null==e.$$s?this:e.$$s,i=S;return null==n.pad_value&&(n.pad_value=S),null==n.data&&(n.data=S),null==t&&(t=S),r(f["$include?"](t))?(i=n.$filter_data(l.$call(t)),r(u(i.$size(),0))?p["$<<"](i["$[]"](0)):p["$<<"](n.pad_value)):p["$<<"](n.data["$[]"](t))}),{$$s:c});else if(r(u(i.$size(),0))){switch(m=S,i.$size().valueOf()){case 1:f=e.Range.$new(0,s(r(g=c.max_size)?g:c.data.$bytesize(),1),!1),m=c.$filter_data(i["$[]"](0));break;case 2:f=c.$filter_parameters(i["$[]"](1)),m=c.$filter_data(i["$[]"](0));break;default:f=c.$filter_parameters(i["$[]"](1),i["$[]"](2)),m=c.$filter_data(i["$[]"](0))}m=r(h=m)?h:c.pad_value,r(m["$is_a?"](O("Array")))&&(m=r(h=m["$[]"](0))?h:c.pad_value),a(e.Range.$new(0,s(c.data.$bytesize(),1),!1).$to_enum(),"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.data&&(n.data=S),null==t&&(t=S),r(f["$include?"](t))?p["$<<"](m):p["$<<"](n.data["$[]"](t))}),{$$s:c})}else c.$raise(z("ArgumentError").$new("wrong number of arguments (0 for 1..3)"));return r(u(p.$size(),0))&&(c.data=p.$data()),c}),-1),i(A,"$first",(function(t){var n,i,a=this;return n=o(arguments),r(u((i=n).$size(),0))?(r(i["$[]"](0)["$is_a?"](z("Float")))&&i["$[]="](0,i["$[]"](0).$to_i()),r(i["$[]"](0)["$is_a?"](z("Integer")))?r(u(i["$[]"](0),0))?(r(a.max_size)&&(r(p(i["$[]"](0),a.max_size))||a.$raise(z("RangeError").$new(i["$[]"](0)+" is out of range (1 - "+a.max_size+")."))),a["$[]"](e.Range.$new(0,s(i["$[]"](0),1),!1))):S:a.$raise(z("TypeError").$new("Expected Integer. You provided "+i["$[]"](0).$class()))):a["$[]"](0)}),-1),i(A,"$flatten",(function(){return this.$dclone()})),i(A,"$flatten!",k),i(A,"$freeze",(function e(){var t=this;return e.$$p=null,t.data.$freeze(),t.max_size.$freeze(),t.pad_value.$freeze(),t.outer.$freeze(),m(t,g(t,"freeze",e,!1,!0),"freeze",[],null)})),i(A,"$hash",(function(){return this.data.$hash()})),i(A,"$include?",(function(e){var t,n,i=this;return t=o(arguments),r(u((n=t).$size(),0))?(r(n["$[]"](0)["$is_a?"](z("Float")))&&n["$[]="](0,n["$[]"](0).$to_i()),r(n["$[]"](0)["$is_a?"](z("Integer")))?r(c(0,255,!1)["$include?"](n["$[]"](0)))?i.data["$include?"](n["$[]"](0).$chr()):i.$raise(z("RangeError").$new("Value out of range: range is 0 to 255. You provided "+n["$[]"](0))):i.$raise(z("TypeError").$new("Expected Integer or Float. You provided "+n["$[]"](0).$class()))):i.$raise(z("ArgumentError").$new("Wrong number of arguments ("+n.$size()+" for 1)."))}),-1),i(A,"$find_index",(function e(t){var n,i=e.$$p||S,s=this,l=S,_=S;return e.$$p=null,n=o(arguments),l=S,r(i["$respond_to?"]("call"))?(_=0,function(){try{var e=G("break");return a(s,"each",[],(function t(n){return null==n&&(n=S),x(i.$call(n),!0)&&(l=_,e.$throw(S,t.$$is_lambda)),_=$(_,1)}))}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()):r(u(n.$size(),0))?(r(n["$[]"](0)["$is_a?"](z("Float")))&&n["$[]="](0,n["$[]"](0).$to_i()),r(n["$[]"](0)["$is_a?"](z("Integer")))?r(c(0,255,!1)["$include?"](n["$[]"](0)))&&(l=r(n["$[]"](1))?s.$array_to_ascii(s.data).$index(n["$[]"](0).$chr(),n["$[]"](1)):s.$array_to_ascii(s.data).$index(n["$[]"](0).$chr())):s.$raise(z("TypeError").$new("Expected Integer or Float. You provided "+n["$[]"](0).$class()))):l=s.data.$to_enum("bytes"),l}),-1),i(A,"$insert",(function(t){var n,i,l=this,c=S,f=S,h=S,m=S,g=S;if(n=o(arguments),r(u((i=n).$size(),1)))if(r(i["$[]"](0)["$is_a?"](z("Float")))&&i["$[]="](0,i["$[]"](0).$to_i()),r(i["$[]"](0)["$is_a?"](z("Integer")))){c=l.$filter_data(i["$[]"](e.Range.$new(1,s(i.$size(),1),!1))),r(l.max_size)&&(r(p($(l.data.$bytesize(),c.$bytesize()),l.max_size))||l.$raise(z("RangeError").$new("Operation exceeds "+l.max_size+" limit. You need to adjust maxsize.")));try{f=i["$[]"](0),h=[],r(v(f,0))&&r(d(f,l.data.$bytesize()))&&(x(f,0)?(h["$<<"](c),h["$<<"](l.data)):x(f,s(l.data.$bytesize(),1))?(h["$<<"](l.$slice(e.Range.$new(0,s(f,1),!1)).$data()),h["$<<"](c),(m=z("Buffer").$new(1).$to_a())["$[]="](0,l.data["$[]"](s(l.data.$bytesize(),1))),h["$<<"](m)):(h["$<<"](l.$slice(e.Range.$new(0,s(f,1),!1)).$data()),h["$<<"](c),h["$<<"](l.$slice(e.Range.$new(f,s(l.data.$bytesize(),1),!1)).$data()))),r(u(h.$size(),0))&&(l.data=a(l,"join_arrays",_(h)))}catch(t){if(!e.rescue(t,[z("Exception")]))throw t;g=t;try{l.$raise(g.$exception(g.$message().$gsub("string",l.$class().$to_s())))}finally{e.pop_exception(t)}}}else l.$raise(z("TypeError").$new("Expected Integer or Float. You provided "+i["$[]"](0).$class()));else l.$raise(z("ArgumentError").$new("Wrong number of arguments ("+i.$size()+" for 2)."));return l}),-1),i(A,"$inspect",(function(){var t=this,n=S;return n="[",r(u(t.data.$bytesize(),0))&&a(e.Range.$new(0,s(t.data.$bytesize(),1),!1),"each",[],(function e(t){var i=null==e.$$s?this:e.$$s,a=S;return null==i.data&&(i.data=S),null==t&&(t=S),r(u(n.$size(),1))&&(n=$(n,", ")),a=i.data["$[]"](t),n=r(u(a,15))?$(n,"0x"+a.$to_s(16).$upcase()):$(n,"0x0"+a.$to_s(16).$upcase())}),{$$s:t}),$(n,"]")})),i(A,"$join",(function(e){var t;return t=o(arguments),a(this.$array_to_ascii(this.data).$split(),"join",_(t))}),-1),i(A,"$last",(function(t){var n,i,a=this,$=S;return n=o(arguments),r(u((i=n).$size(),0))?(r(i["$[]"](0)["$is_a?"](z("Float")))&&i["$[]="](0,i["$[]"](0).$to_i()),r(i["$[]"](0)["$is_a?"](z("Integer")))?r(u(i["$[]"](0),0))?($=e.Range.$new(s(s(a.data.$bytesize(),1),s(i["$[]"](0),1)),s(a.data.$bytesize(),1),!1),r(a.max_size)&&(r(p(i["$[]"](0),a.max_size))||a.$raise(z("RangeError").$new(i["$[]"](0)+" is out of range (1 - "+a.max_size+")."))),a["$[]"]($)):a.$raise(z("RangeError").$new(i["$[]"](0)+" is out of range (1 - "+a.max_size+").")):a.$raise(z("TypeError").$new("Expected Integer. You provided "+i["$[]"](0).$class()))):a["$[]"](s(a.data.$bytesize(),1))}),-1),i(A,"$pack",(function(e){var t,n,i=this,a=S;return t=o(arguments),"",r(v((n=t).$size(),1))?(n["$[]="](0,r(a=n["$[]"](0))?a:""),r(n["$[]"](0)["$is_a?"](z("String")))?(r(n["$[]"](1)["$is_a?"](z("Encoding")))&&"".$force_encoding(n["$[]"](1)),""["$<<"](i.$to_a().$pack(n["$[]"](0)))):i.$raise(z("TypeError").$new("Expected String. You provided "+n["$[]"](0).$class()))):i.$raise(z("ArgumentError").$new("Wrong number of arguments ("+n.$size()+" for 1+).")),""}),-1),i(A,"$permutation",(function e(t){var n,i,s=e.$$p||S,$=this;return e.$$p=null,n=o(arguments),i=a($.$array_to_ascii($.data).$split(),"to_enum",["permutation"].concat(_(n))),r(s["$respond_to?"]("call"))?(a(i,"each",[],(function(e){return null==e&&(e=S),s.$call(O(z("GxG"),"ByteArray").$new(e))})),$):i}),-1),i(A,"$repeated_permutation",(function e(t){var n,i,s=e.$$p||S,$=this;return e.$$p=null,n=o(arguments),i=a($.$array_to_ascii($.data).$split(),"to_enum",["repeated_permutation"].concat(_(n))),r(s["$respond_to?"]("call"))?(a(i,"each",[],(function(e){return null==e&&(e=S),s.$call(O(z("GxG"),"ByteArray").$new(e))})),$):i}),-1),i(A,"$pop",(function(e){var t=this,n=S;return null==e&&(e=S),n=S,r(e["$is_a?"](z("Numeric")))?(r(u(e.$to_i(),0))||t.$raise(z("ArgumentError").$new(e+" needs to be a positive Numeric")),n=O(O("GxG"),"ByteArray").$new(),a(e,"times",[],(function e(){var t=null==e.$$s?this:e.$$s;return n["$<<"](t.$delete_at(-1))}),{$$s:t})):n=t.$delete_at(-1),n}),-1),i(A,"$product",(function e(t){var n,i,s=e.$$p||S,$=this,l=S;return e.$$p=null,n=o(arguments),i=n,r(u($.data.$bytesize(),0))?(i=O(z("GxG"),"ByteArray").$new(i),r(s["$respond_to?"]("call"))?(a($,"each",[],(function(e){return null==e&&(e=S),a(i,"each",[],(function(t){return null==t&&(t=S),s.$call(O(z("GxG"),"ByteArray").$new([e,t]))}))})),$):(l=O(z("GxG"),"ByteArray").$new(),a($,"each",[],(function(e){return null==e&&(e=S),a(i,"each",[],(function(t){return null==t&&(t=S),l["$<<"](e),l["$<<"](t)}))})),l)):$}),-1),i(A,"$push",(function(e){var t;return t=o(arguments),this["$<<"](O(z("GxG"),"ByteArray").$new(t))}),-1),i(A,"$rassoc",(function(e){return null==e&&(e=S),S}),-1),i(A,"$reject",(function e(){var t=e.$$p||S,n=this,i=S;return e.$$p=null,i=S,r(t["$respond_to?"]("call"))?((i=O(z("GxG"),"ByteArray").$new())["$padvalue="](n.pad_value),r(n.max_size)&&i["$maxsize="](n.max_size),a(n,"each_with_index",[],(function(e,n){return null==e&&(e=S),null==n&&(n=S),x(t.$call(e),!0)?S:i["$<<"](e)}))):i=n.$to_a().$to_enum("reject"),i})),i(A,"$reject!",(function e(){var t=e.$$p||S,n=this,i=S,s=S;return e.$$p=null,i=S,r(t["$respond_to?"]("call"))?(s=a(n,"reject",[],t.$to_proc()),r(s)&&(n.data=s.$data()),i=n):i=n.$to_a().$to_enum("reject!"),i})),i(A,"$replace",(function(t){var n,i,a=this,$=S;return n=o(arguments),r(u((i=n).$size(),0))&&($=O(z("GxG"),"ByteArray").$try_convert(i),r($)?r(a.max_size)?r(p($.$data().$bytesize(),a.max_size))?a.data=$.$data():a.data=$["$[]"](e.Range.$new(0,s(a.max_size,1),!1)).$data():a.data=$.$data():a.$raise(z("Exception").$new("Could not convert "+i["$[]"](0).$class()+" to ByteArray"))),a}),-1),i(A,"$reverse",(function(){var e=this,t=S;return(t=O(z("GxG"),"ByteArray").$new(e.$array_to_ascii(e.data).$reverse()))["$padvalue="](e.pad_value.$clone()),r(e.max_size)&&t["$maxsize="](e.max_size.$clone()),t})),i(A,"$reverse!",(function(){var e=this;return e.data=e.$reverse().$data(),e})),i(A,"$reverse_each",(function e(){var t=e.$$p||S,n=this,i=S;return e.$$p=null,i=S,r(t["$respond_to?"]("call"))?((i=n.$clone()).$clear(),a(n.$reverse(),"each",[],(function(e){return null==e&&(e=S),i["$<<"](t.$call(e))}))):i=n.$reverse().$to_enum("each"),i})),i(A,"$rotate",(function(t){var n=this,i=S,a=S;return null==t&&(t=1),r(t["$is_a?"](z("Numeric")))||n.$raise(z("ArgumentError").$new("Expected a Numeric, you provided "+t.$class())),t=r(d(t,0))?s(s(n.$size(),t["$~"]()["$%"](n.$size())),1).$to_i():t["$%"](n.$size()).$to_i(),i=[],x(t,0)||(a=n.$filter_parameters(e.Range.$new(t,-1,!1)),i["$<<"](n["$[]"](a)),r(u(a.$first(),0))&&i["$<<"](n["$[]"](e.Range.$new(0,s(a.$first(),1),!1)))),r(u(i.$size(),0))?O(z("GxG"),"ByteArray").$new(i):n.$clone()}),-1),i(A,"$rotate!",(function(e){var t=this;return null==e&&(e=1),r(e["$is_a?"](z("Numeric")))?y(e.$to_i(),0)&&(t.data=t.$rotate(e).$data()):t.$raise(z("ArgumentError").$new("Expected a Numeric, you provided "+e.$class())),t}),-1),i(A,"$sample",(function(e){var t;return t=o(arguments),O(z("GxG"),"ByteArray").$new(a(this.$to_a(),"sample",_(t)))}),-1),i(A,"$select",(function e(){var t=e.$$p||S,n=this,i=S;return e.$$p=null,(i=O(z("GxG"),"ByteArray").$new())["$maxsize="](n.max_size),i["$padvalue="](n.pad_value),i["$outervalue="](n.outer),r(t["$respond_to?"]("call"))?a(n,"each",[],(function(e){return null==e&&(e=S),x(t.$call(e),!1)?S:i["$<<"](e)})):i=n.$to_enum("select"),i})),i(A,"$select!",(function e(){var t=e.$$p||S,n=this,i=S;return e.$$p=null,r(t["$respond_to?"]("call"))?(i=n.data.$hash(),n.data=a(n,"select",[],t.$to_proc()).$data(),x(i,n.data.$hash())?S:n):n.$to_enum("select!")})),i(A,"$shift",(function(){return this.$delete_at(0)})),i(A,"$shuffle",(function(e){var t;return t=o(arguments),O(z("GxG"),"ByteArray").$new(a(this.$to_a(),"shuffle",_(t)))}),-1),i(A,"$shuffle!",(function(e){var t,n=this;return t=o(arguments),n.$replace(a(n,"shuffle",_(t))),n}),-1),i(A,"$size",(function(){return this.data.$bytesize()})),i(A,"$slice",(function(e,t){var n=this,i=S,o=S,l=S,c=S;return null==e&&(e=0),null==t&&(t=S),i=n.$filter_parameters(e,t),r(i)||(r(t)?n.$raise(z("ArgumentError").$new(e.$inspect()+","+t.$inspect()+" could not be fashioned into a valid Indexer")):n.$raise(z("ArgumentError").$new(e.$inspect()+" could not be fashioned into a valid Indexer"))),r(n.max_size)&&(r(u(i.$count(),n.max_size))||r(u(i.$first(),s(n.max_size,1)))||r(u(i.$last(),s(n.max_size,1))))&&n.$raise(z("IndexError").$new("Index exceeds "+n.max_size+" limit. You need to adjust maxsize.")),o=S,r(i)&&(x(i.$first(),i.$last())?o=n.data["$[]"](i.$first()):(l=z("Buffer").$new(i.$size()).$to_a(),c=0,a(i,"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.data&&(n.data=S),null==t&&(t=S),l["$[]="](c,n.data["$[]"](t)),c=$(c,1)}),{$$s:n}),o=O(O("GxG"),"ByteArray").$new(n.$array_to_ascii(l)))),o}),-1),i(A,"$slice!",(function(e,t){var n=this,i=S;return null==e&&(e=0),null==t&&(t=S),i=n.$slice(e,t),r(i["$is_a?"](z("Numeric")))?n.$replace(i.$chr()):n.$replace(i),x(n.$size(),1)?n.$slice(0):n}),-1),i(A,"$sort",(function e(){var t=e.$$p||S;return e.$$p=null,r(t["$respond_to?"]("call"))?O(z("GxG"),"ByteArray").$new(a(this.$to_a(),"sort",[],(function(e,n){return null==e&&(e=S),null==n&&(n=S),t.$call(e,n)}))):O(z("GxG"),"ByteArray").$new(this.$to_a().$sort())})),i(A,"$sort!",(function e(){var t=e.$$p||S,n=this;return e.$$p=null,r(t["$respond_to?"]("call"))&&n.$replace(a(n,"sort",[],t.$to_proc()).$data()),n})),i(A,"$sort_by!",(function e(){var t=e.$$p||S,n=this;return e.$$p=null,r(t["$respond_to?"]("call"))?(n.$replace(O(z("GxG"),"ByteArray").$new(a(n.$to_a(),"sort_by!",[],(function(e,n){return null==e&&(e=S),null==n&&(n=S),t.$call(e,n)}))).$data()),n):n.$to_enum("sort_by!")})),i(A,"$take",(function(t){return this.$slice(e.Range.$new(0,s(t.$to_i(),1),!1))})),i(A,"$take_while",(function e(){var t=e.$$p||S,n=this,i=S;return e.$$p=null,r(t["$respond_to?"]("call"))?(i=O(z("GxG"),"ByteArray").$new(),function(){try{var e=G("break");return a(n,"each",[],(function n(a){var s;if(null==a&&(a=S),s=t.$call(a),r(s))return i["$<<"](a);e.$throw(S,n.$$is_lambda)}))}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),i):n.$to_enum("take_while")})),i(A,"$to_a",(function(){var t=this,n=S;return n=[],r(u(t.data.$bytesize(),0))&&a(e.Range.$new(0,s(t.data.$bytesize(),1),!1),"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==r.data&&(r.data=S),null==t&&(t=S),n["$<<"](r.data["$[]"](t))}),{$$s:t}),n})),i(A,"$to_s",(function(){return this.$array_to_ascii(this.data)})),i(A,"$to_ascii",(function(){return this.$array_to_ascii(this.data)})),i(A,"$to_json",(function(){return $("binary:",this.$to_ascii().$encode64())})),i(A,"$transpose",(function(){return this.$clone()})),i(A,"$uniq",(function e(){var t=e.$$p||S;return e.$$p=null,r(t["$respond_to?"]("call"))?O(z("GxG"),"ByteArray").$new(a(this.$to_a(),"uniq",[],t.$to_proc())):this})),i(A,"$uniq!",(function e(){var t=e.$$p||S,n=this,r=S;return e.$$p=null,r=a(n,"uniq",[],t.$to_proc()),x(r.$size(),n.$size())?S:(n.$replace(r),n)})),i(A,"$unshift",(function(e){var t,n;return t=o(arguments),r(u((n=t).$size(),0))&&this.$insert(0,n),this}),-1),i(A,"$values_at",(function(e){var t,n=S;return t=o(arguments),n=O(z("GxG"),"ByteArray").$new(),r(u(t.$size(),0))&&a(t.$to_enum(),"each",[],(function e(t){var i=null==e.$$s?this:e.$$s;return null==t&&(t=S),r(t["$is_a?"](z("Numeric")))||r(t["$is_a?"](z("Range")))?(r(t["$is_a?"](z("Range")))||(t=t.$to_i()),n["$<<"](i["$[]"](t))):i.$raise(z("TypeError").$new("Expected Integer, Float or Range. You provided "+t.$class()))}),{$$s:this}),n}),-1),i(A,"$zip",(function e(t){var n,i,s=e.$$p||S,$=this,l=S;return e.$$p=null,n=o(arguments),l=S,r(u((i=n).$size(),0))?(l=O(z("GxG"),"ByteArray").$new(),a(i.$to_enum("each_index"),"each",[],(function(e){var t;return null==e&&(e=S),r(i["$[]"](e)["$is_a?"](O(z("GxG"),"ByteArray")))?S:(t=[e,O(z("GxG"),"ByteArray").$new(i["$[]"](e))],a(i,"[]=",t),t[t.length-1])})),a($,"each_with_index",[],(function e(t,n){var o=null==e.$$s?this:e.$$s,$=S,u=S;return null==t&&(t=S),null==n&&(n=S),($=O(z("GxG"),"ByteArray").$new())["$<<"](t),a(i.$to_enum("each_index"),"each",[],(function e(t){var a=null==e.$$s?this:e.$$s;return null==a.pad_value&&(a.pad_value=S),null==t&&(t=S),r(v(n,i["$[]"](t).$size()))?$["$<<"](a.pad_value):$["$<<"](i["$[]"](t).$data()["$[]"](n))}),{$$s:o}),r(s["$respond_to?"]("call"))&&(u=s.$call($),r(u["$is_a?"](O("Array")))&&(u=O(z("GxG"),"ByteArray").$new(u)),r(u["$is_a?"](O(O("GxG"),"ByteArray")))&&($=u)),l["$<<"]($)}),{$$s:$})):l=$.$clone(),l}),-1),w(A,"assoc","rassoc"),w(A,"map","collect"),w(A,"map!","collect!"),w(A,"compact!","compact"),w(A,"indices","values_at"),w(A,"indexes","values_at"),w(A,"rindex","find_index"),w(A,"index","find_index"),w(A,"length","size"),w(A,"nitems","size"),w(A,"to_ary","to_a"),w(A,"keep_if","select!"),i(A,"$paths_to",(function(e,t){var n=S;return null==e&&(e=S),null==t&&(t=""),n=[],r(e["$is_a?"](z("Numeric")))&&a(this,"each_with_index",[],(function(r,i){return null==r&&(r=S),null==i&&(i=S),x(r,e.$to_i())?n["$<<"]($($(t,"/"),i.$to_s())):S})),n}),-1),i(A,"$get_at_path",(function(e){var t=S,n=S,i=S;return null==e&&(e="/"),t=S,x(e,"/")?t=this:(n=[this],i=e.$split("/"),function(){try{var e=G("break");return a(i.$to_enum(),"each",[],(function i(a){var s=S;return null==a&&(a=S),s=S,r(u(a.$size(),0))&&x(a["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)&&(s=a.$to_i()),r(s)?(t=n.$first()["$[]"](s),r(t["$is_a?"](z("NilClass")))?void e.$throw(S,i.$$is_lambda):n.$unshift(t)):S}))}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),t}),-1),i(A,"$set_at_path",(function(e,t){var n=S,i=S,a=S,s=S;return null==e&&(e="/"),null==t&&(t=S),n=S,y(e,"/")&&r(i=this)&&(a=O("File").$basename(e),s=S,r(u(a.$size(),0))&&x(a["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)&&(s=a.$to_i()),r(s)&&(i["$[]="](s,t),x(i["$[]"](s),t)&&(n=!0))),n}),-1)}(A[0],0,A)}(E[0],E)},Opal.modules["web/gxg_events"]=function(e){var t,n=e.module,r=e.const_set,i=e.klass,a=e.def,s=e.return_ivar,o=e.send,$=e.truthy,u=e.rb_gt,l=e.return_self,c=e.return_val,_=e.defs,d=e.slice,p=e.to_a,f=e.eqeq,h=e.rb_ge,m=e.rb_plus,g=e.alias,v=e.send2,b=e.find_super,y=e.rb_times,w=e.rb_divide,x=e.thrower,k=[],G=e.nil,E=e.$$$;return e.add_stubs("size,unshift,<<,each,values,[],read,dispatch_message,>,is_a?,valud_uuid?,to_s,fetch_channel,to_sym,write,send,socket,encode64,to_json,encrypt,export,secret,connector,log_warn,[]=,new,times,outbox_size,delete,next_message,send_message,new_message,import,raise,merge,uuid_generate,inspect,respond_to?,call,include?,keys,process,to_proc,process!,search,paths_to,get_at_path,set_at_path,is_any?,class,parse,is,gxg_import,gxg_export,shift,==,to_enum,>=,level,add,backtrace,+,exception,join,sleep,unknown?,unknown,warn?,warn,to_i,*,to_f,method,cancel_all_timers,now,each_with_index,delete_at,/,merge!,puts,adjust_event_queue,create_event_queue,post_to_event_queue,each_index,const_defined?,remove_const,startup,add_periodic_timer,process_messages,shutdown,create_channel"),function(t,k){var S=[n(t,"GxG")].concat(k);r(S[0],"GXG_FEDERATION",new Map([["title","Untitled"],["uuid",G],["access_url",G],["available",new Map],["connections",new Map]])),function(t,r){var c=[n(t,"Messages")].concat(r);(function(e,t){var n=i(e,null,"Channel"),r=n.$$prototype;r.inbox=r.outbox=G,a(n,"$initialize",(function(e,t){var n=this;return null==e&&(e=G),null==t&&(t=G),n.uuid=e,n.inbox=[],n.outbox=[],n.socket=G,n.remote=G,n.channel_secret=G,n.object=t,n}),-1),a(n,"$uuid",s("uuid")),a(n,"$object",s("object")),a(n,"$socket",s("socket")),a(n,"$socket=",(function(e){return null==e&&(e=G),this.socket=e}),-1),a(n,"$remote",s("remote")),a(n,"$remote=",(function(e){return null==e&&(e=G),this.remote=e}),-1),a(n,"$secret",s("channel_secret")),a(n,"$secret=",(function(e){return null==e&&(e=G),this.channel_secret=e}),-1),a(n,"$inbox_size",(function(){return this.inbox.$size()})),a(n,"$next_message",(function(){return this.inbox.$unshift()})),a(n,"$outbox_size",(function(){return this.outbox.$size()})),a(n,"$send_message",(function(e){return this.outbox["$<<"](e)})),a(n,"$read",(function(){return this.outbox.$unshift()})),a(n,"$write",(function(e){return this.inbox["$<<"](e)}))})(c[0]),function(t,n,r){var s=i(t,null,"ChannelManager"),c=[s].concat(r),_=e.$r(c);a(s,"$update_channels",(function(){var e=G,t=G;return e=!1,t=[],o(_("GXG_FEDERATION")["$[]"]("connections").$values(),"each",[],(function(e){return null==e&&(e=G),t["$<<"](e)})),o(t,"each",[],(function e(t){var n=null==e.$$s?this:e.$$s,r=G;for(null==t&&(t=G),r=t.$read();$(r);)n.$dispatch_message(r),r=t.$read()}),{$$s:this}),$(u(t.$size(),0))&&(e=!0),e})),a(s,"$dispatch_message",(function(e){var t=this,n=G,r=G,i=G;return null==e&&(e=G),n=!1,$(e["$is_a?"](E(E(E("GxG"),"Events"),"Message")))&&(r=e["$[]"]("to"),$(E("GxG")["$valud_uuid?"](r.$to_s()))&&(i=t.$fetch_channel(r.$to_s().$to_sym()),$(i)?(i.$write(e),n=!0):$(E(_("GxG"),"DISPLAY_DETAILS")["$[]"]("logged_in"))?(t.$socket().$send(new Map([["payload",e.$export().$to_s().$encrypt(t.$connector().$secret()).$encode64()]]).$to_json().$encode64(),"text"),n=!0):(t.$log_warn("Message dropped --\x3e login and resend"),n=!1)),$(n)),n}),-1),a(s,"$fetch_channel",(function(e){return _("GXG_FEDERATION")["$[]"]("connections")["$[]"](e)})),a(s,"$create_channel",(function(e,t){return null==e&&(e=G),null==t&&(t=G),_("GXG_FEDERATION")["$[]"]("connections")["$[]="](e,E(E(E("GxG"),"Messages"),"Channel").$new(e,t)),$(E(_("GxG"),"DISPLAY_DETAILS")["$[]"]("logged_in"))?this.$socket().$send(new Map([["open_channel",e]]).$to_json().$encode64(),"text"):G}),-1),a(s,"$destroy_channel",(function(e){var t=this,n=G;return n=t.$fetch_channel(e),$(n)&&(o(n.$outbox_size(),"times",[],(function e(t){var r,i=null==e.$$s?this:e.$$s;return null==t&&(t=G),r=n.$read(),$(r)?i.$dispatch_message(r):G}),{$$s:t}),$(E(_("GxG"),"DISPLAY_DETAILS")["$[]"]("logged_in"))&&t.$socket().$send(new Map([["close_channel",e]]).$to_json().$encode64(),"text")),_("GXG_FEDERATION")["$[]"]("connections").$delete(e)})),a(s,"$next_message",(function(e){var t=G,n=G;return t=G,n=this.$fetch_channel(e),$(n)&&(t=n.$next_message()),t})),a(s,"$send_message",(function(e,t){var n=G;return n=this.$fetch_channel(e),$(n)?n.$send_message(t):G})),a(s,"$initialize",l)}(c[0],0,c)}(S[0],S),function(t,r){var l=[n(t,"Events")].concat(r);(function(t,n,r){var s=i(t,null,"Message"),u=[s].concat(r),l=e.$r(u);s.$$prototype.data=G,_(s,"$import",(function(e){var t=G;return null==e&&(e=G),(t=o(this,"new_message",[],c(G))).$import(e),t}),-1),a(s,"$initialize",(function(e){var t,n,r=this;return t=d(arguments),$((n=t)["$[]"](0)["$is_a?"](E("Hash")))||r.$raise(l("ArgumentError"),"you must pass a Hash to create the message"),r.data=new Map([["sender",G],["id",l("GxG").$uuid_generate().$to_s().$to_sym()],["subject",n["$[]"](1).$to_s()],["body",G],["on_success",G],["on_fail",G]]).$merge(n["$[]"](0)),$(r.data["$[]"]("sender"))||r.$raise(l("ArgumentError"),"you must set the :sender key in the argument Hash"),r}),-1),a(s,"$inspect",(function(){return this.data.$inspect()})),a(s,"$id",(function(){return this.data["$[]"]("id")})),a(s,"$sender",(function(){return this.data["$[]"]("sender")})),a(s,"$subject",(function(){return this.data["$[]"]("subject")})),a(s,"$body",(function(){return this.data["$[]"]("body")})),a(s,"$succeed",(function(e){return null==e&&(e=G),$(this.data["$[]"]("on_success")["$respond_to?"]("call"))?this.data["$[]"]("on_success").$call(e):G}),-1),a(s,"$fail",(function(e){return null==e&&(e=G),$(this.data["$[]"]("on_fail")["$respond_to?"]("call"))?this.data["$[]"]("on_fail").$call(e):G}),-1),a(s,"$on",(function e(t){var n,r=e.$$p||G,i=this;if(e.$$p=null,null==t&&(t=G),!$(["success","fail"]["$include?"](t)))return i.$raise(l("ArgumentError"),"Unknown event type: "+t);if(!$(r["$respond_to?"]("call")))return i.$raise(l("ArgumentError"),"You MUST provide a callable block.");switch(t.valueOf()){case"success":return n=["on_success",r],o(i.data,"[]=",n),n[n.length-1];case"fail":return n=["on_fail",r],o(i.data,"[]=",n),n[n.length-1];default:return G}}),-1),a(s,"$keys",(function(){return this.data.$keys()})),a(s,"$[]",(function(e){return this.data["$[]"](e)})),a(s,"$[]=",(function(e,t){var n;return n=[e,t],o(this.data,"[]=",n),n[n.length-1]})),a(s,"$process",(function e(){var t=e.$$p||G;return e.$$p=null,o(this.data,"process",[],t.$to_proc())})),a(s,"$process!",(function e(){var t=e.$$p||G;return e.$$p=null,o(this.data,"process!",[],t.$to_proc())})),a(s,"$search",(function e(){var t=e.$$p||G;return e.$$p=null,o(this.data,"search",[],t.$to_proc())})),a(s,"$paths_to",(function(e){var t;return t=d(arguments),o(this.data,"paths_to",p(t))}),-1),a(s,"$get_at_path",(function(e){var t;return t=d(arguments),o(this.data,"get_at_path",p(t))}),-1),a(s,"$set_at_path",(function(e){var t;return t=d(arguments),o(this.data,"set_at_path",p(t))}),-1),a(s,"$import",(function(e){var t=G;return null==e&&(e=G),$(e["$is_any?"](E("String"),E("Hash")))||this.$raise(l("Exception").$new("You MUST supply a JSON string or a Hash, you supplied: "+e.$class().$inspect())),t=!1,$(e["$is_a?"](E("String")))&&(e=l("JSON").$parse(e,new Map([["symbolize_names",!0]]))),$(e.$is(E("Hash")))&&(this.data.$merge(E("Hash").$gxg_import(e)),t=!0),t}),-1),a(s,"$export",(function(){return this.data.$gxg_export().$to_json().$to_s()})),a(s,"$to_s",(function(){return this.$export().$to_s()})),a(s,"$to_json",(function(){return this.$to_s()}))})(l[0],0,l),i(l[0],null,"LoggerDB"),function(t,n,r){var u=i(t,null,"LogRing"),l=[u].concat(r),_=e.$r(l),d=u.$$prototype;d.outlets=d.busy=d.messages=G,a(u,"$initialize",(function(){var e=this;return e.uuid=E("GxG").$uuid_generate().$to_sym(),e.busy=!1,e.outlets=new Map,e.messages=[]})),a(u,"$uuid",s("uuid")),a(u,"$keys",(function(){return this.outlets.$keys()})),a(u,"$[]",(function(e){return this.outlets["$[]"](e)})),a(u,"$[]=",(function(e,t){return $(t["$is_any?"](E("Logger"),E(E(E("GxG"),"Events"),"LoggerDB")))?(this.outlets["$[]="](e,t),t):this.$raise(_("ArgumentError"),"You must supply a Logger or GxG::Events::LoggerDB instance, you provided a "+t.$class())})),a(u,"$process_messages",(function(){var t=this,n=G,r=G;if(!$(t.busy)){if(t.busy=!0,n=t.messages.$shift(),$(n["$is_a?"](E(E(E("GxG"),"Events"),"Message"))))try{f(n["$[]"]("subject"),"notification")&&$(n["$[]"]("body")["$is_a?"](E("Hash")))&&(r=t.$keys(),o(r.$to_enum("each"),"each",[],(function e(t){var r,i=G;return null==t&&(t=G),i=(null==e.$$s?this:e.$$s)["$[]"](t),$(h($(r=n["$[]"]("body")["$[]"]("severity"))?r:E(E("Logger"),"UNKNOWN"),i.$level()))?$(i["$is_a?"](E(E(E("GxG"),"Events"),"LoggerDB")))?G:$(n["$[]"]("body")["$[]"]("message")["$is_a?"](E("String")))||$(n["$[]"]("body")["$[]"]("message")["$is_a?"](E("Exception")))?i.$add(n["$[]"]("body")["$[]"]("severity"),n["$[]"]("body")["$[]"]("message"),n["$[]"]("body")["$[]"]("progname")):$(n["$[]"]("body")["$[]"]("message")["$is_a?"](E("Hash")))&&$(n["$[]"]("body")["$[]"]("message")["$[]"]("error")["$is_a?"](E("Exception")))?$(n["$[]"]("body")["$[]"]("message")["$[]"]("error").$backtrace()["$is_a?"](E("Array")))?$(n["$[]"]("body")["$[]"]("message")["$[]"]("parameters"))?i.$add(n["$[]"]("body")["$[]"]("severity"),m(m(m(m(m(m("\n "+n["$[]"]("body")["$[]"]("message")["$[]"]("error").$exception().$class().$to_s()+": ",n["$[]"]("body")["$[]"]("message")["$[]"]("error").$to_s()),"\n Parameters: "),n["$[]"]("body")["$[]"]("message")["$[]"]("parameters").$inspect()),"\n Trace: "),n["$[]"]("body")["$[]"]("message")["$[]"]("error").$backtrace().$join("\n")),"\n"),n["$[]"]("body")["$[]"]("progname")):i.$add(n["$[]"]("body")["$[]"]("severity"),m(m(m(m("\n "+n["$[]"]("body")["$[]"]("message")["$[]"]("error").$exception().$class().$to_s()+": ",n["$[]"]("body")["$[]"]("message")["$[]"]("error").$to_s()),"\n Trace: "),n["$[]"]("body")["$[]"]("message")["$[]"]("error").$backtrace().$join("\n")),"\n"),n["$[]"]("body")["$[]"]("progname")):$(n["$[]"]("body")["$[]"]("message")["$[]"]("parameters"))?i.$add(n["$[]"]("body")["$[]"]("severity"),m(m(m(m("\n "+n["$[]"]("body")["$[]"]("message")["$[]"]("error").$exception().$class().$to_s()+": ",n["$[]"]("body")["$[]"]("message")["$[]"]("error").$to_s()),"\n Parameters: "),n["$[]"]("body")["$[]"]("message")["$[]"]("parameters").$inspect()),"\n"),n["$[]"]("body")["$[]"]("progname")):i.$add(n["$[]"]("body")["$[]"]("severity"),m(m("\n "+n["$[]"]("body")["$[]"]("message")["$[]"]("error").$exception().$class().$to_s()+": ",n["$[]"]("body")["$[]"]("message")["$[]"]("error").$to_s()),"\n"),n["$[]"]("body")["$[]"]("progname")):i.$add(n["$[]"]("body")["$[]"]("severity"),n["$[]"]("body")["$[]"]("message").$inspect(),n["$[]"]("body")["$[]"]("progname")):G}),{$$s:t}))}catch(n){if(!e.rescue(n,[_("Exception")]))throw n;n;try{t.busy=!1}finally{e.pop_exception(n)}}t.busy=!1}return!0})),a(u,"$add",(function t(n,r,i,a){var s=t.$$p||G,o=this,u=G;t.$$p=null,null==n&&(n=G),null==r&&(r=G),null==i&&(i=G),null==a&&(a=G),$([E(E("Logger"),"DEBUG"),E(E("Logger"),"INFO"),E(E("Logger"),"WARN"),E(E("Logger"),"ERROR"),E(E("Logger"),"FATAL"),E(E("Logger"),"UNKNOWN")]["$include?"](n))||(n=E(E("Logger"),"UNKNOWN")),$(i)&&($(r)||(r=i,i=G));try{for($(r)||$(s["$respond_to?"]("call"))&&(r=s.$call()),u=o.$new_message(new Map([["severity",n],["message",r],["progname",i]]),"notification"),$(a)&&u["$[]="]("sender",a);f(o.busy,!0);)o.$sleep(.333);return o.busy=!0,o.messages["$<<"](u),o.busy=!1,!0}catch(t){if(!e.rescue(t,[_("Exception")]))throw t;t;try{return o.busy=!1,!1}finally{e.pop_exception(t)}}}),-1),a(u,"$unknown?",c(!0)),g(u,"trace?","unknown?"),a(u,"$unknown",(function e(t,n,r){var i,a=e.$$p||G;return e.$$p=null,null==t&&(t=G),null==n&&(n=G),null==r&&(r=G),o(this,"add",[E(E("Logger"),"UNKNOWN"),t,n,$(i=r)?i:this],a.$to_proc())}),-1),g(u,"trace","unknown"),a(u,"$fatal?",c(!0)),a(u,"$fatal",(function e(t,n,r){var i,a=e.$$p||G;return e.$$p=null,null==t&&(t=G),null==n&&(n=G),null==r&&(r=G),o(this,"add",[E(E("Logger"),"FATAL"),t,n,$(i=r)?i:this],a.$to_proc())}),-1),a(u,"$error?",c(!0)),a(u,"$error",(function e(t,n,r){var i,a=e.$$p||G;return e.$$p=null,null==t&&(t=G),null==n&&(n=G),null==r&&(r=G),o(this,"add",[E(E("Logger"),"ERROR"),t,n,$(i=r)?i:this],a.$to_proc())}),-1),a(u,"$warn?",c(!0)),g(u,"warning?","warn?"),a(u,"$warn",(function e(t,n,r){var i,a=e.$$p||G;return e.$$p=null,null==t&&(t=G),null==n&&(n=G),null==r&&(r=G),o(this,"add",[E(E("Logger"),"WARN"),t,n,$(i=r)?i:this],a.$to_proc())}),-1),g(u,"warning","warn"),a(u,"$info?",c(!0)),a(u,"$info",(function e(t,n,r){var i,a=e.$$p||G;return e.$$p=null,null==t&&(t=G),null==n&&(n=G),null==r&&(r=G),o(this,"add",[E(E("Logger"),"INFO"),t,n,$(i=r)?i:this],a.$to_proc())}),-1),a(u,"$debug?",c(!0)),a(u,"$debug",(function e(t,n,r){var i,a=e.$$p||G;return e.$$p=null,null==t&&(t=G),null==n&&(n=G),null==r&&(r=G),o(this,"add",[E(E("Logger"),"DEBUG"),t,n,$(i=r)?i:this],a.$to_proc())}),-1)}(l[0],0,l),function(t,n,r){var l=i(t,null,"EventDispatcher"),c=[l].concat(r),_=e.$r(c),d=l.$$prototype;d.host_timer=d.js_interval=d.running=d.ticking=d.timers=d.event_queues=G,a(l,"$initialize",(function e(t){var n=this;return e.$$p=null,null==t&&(t=.333),v(n,b(n,"initialize",e,!1,!0),"initialize",[],null),n.uuid=E("GxG").$uuid_generate().$to_sym(),n.event_queues=new Map([["root",new Map([["events",[]],["settings",new Map([["active",!0],["portion",100]])]])]]),n.running=!1,n.ticking=!1,n.timers=[],n.js_interval=y(t.$to_f(),1e3).$to_i(),n.host_timer=G,n}),-1),a(l,"$startup",(function(){var e=this;return e.running=!0,$(e.host_timer)||(e.host_timer=setInterval(e.$method("tick").$to_proc(),e.js_interval)),!!$(e.host_timer)})),a(l,"$shutdown",(function(){var e=this;return e.running=!1,$(e.host_timer)&&($(e.host_timer["$is_a?"](_("Numeric")))?clearInterval(e.host_timer):clearInterval(e.host_timer._id)),e.$cancel_all_timers(),e.host_timer=G,!0})),a(l,"$tick",(function(){var t=this,n=G,r=G,i=G,a=G,s=G,l=G;return $(t.running)?$(t.ticking)?G:(t.ticking=!0,n=[],$(u(t.timers.$size(),0))&&(r=[],i=E("Time").$now().$to_f(),o(t.timers,"each_with_index",[],(function e(t,a){var s,u=null==e.$$s?this:e.$$s;return null==u.timers&&(u.timers=G),null==t&&(t=G),null==a&&(a=G),$(h(i,t["$[]"]("when")))?(n["$<<"](t["$[]"]("what")),$(t["$[]"]("interval"))?(s=["when",m(i,t["$[]"]("interval").$to_f())],o(u.timers["$[]"](a),"[]=",s),s[s.length-1]):r.$unshift(a)):G}),{$$s:t}),o(r,"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.timers&&(n.timers=G),null==t&&(t=G),n.timers.$delete_at(t)}),{$$s:t})),a=100,s=0,l=new Map,o(t.event_queues.$keys(),"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.event_queues&&(n.event_queues=G),null==t&&(t=G),$(n.event_queues["$[]"](t)["$[]"]("settings")["$[]"]("active"))&&$(u(n.event_queues["$[]"](t)["$[]"]("events").$size(),0))?(l["$[]="](t,new Map([["portion",y(w(n.event_queues["$[]"](t)["$[]"]("settings")["$[]"]("portion").$to_f(),100),a.$to_f()).$to_i()]])),f(l["$[]"](t)["$[]"]("portion"),0)&&l["$[]"](t)["$[]="]("portion",1),l["$[]"](t)["$[]="]("size",n.event_queues["$[]"](t)["$[]"]("events").$size()),s=m(s,l["$[]"](t)["$[]"]("size"))):G}),{$$s:t}),o(l.$keys(),"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=G),function(){try{var e=x("break");return o(l["$[]"](t)["$[]"]("portion"),"times",[],(function r(){var i=null==r.$$s?this:r.$$s,a=G;if(null==i.event_queues&&(i.event_queues=G),a=i.event_queues["$[]"](t)["$[]"]("events").$shift(),$(a["$respond_to?"]("call")))return n["$<<"](a);e.$throw(G,r.$$is_lambda)}),{$$s:r})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()}),{$$s:t}),o(n,"each",[],(function(t){if(null==t&&(t=G),!$(t))return G;try{return t.$call()}catch(t){if(!e.rescue(t,[_("Exception")]))throw t;t;try{return G}finally{e.pop_exception(t)}}})),t.ticking=!1):G})),a(l,"$inspect_timers",s("timers")),a(l,"$inspect_queue",(function(e){return null==e&&(e="root"),this.event_queues["$[]"](e)}),-1),a(l,"$adjust_event_queue",(function(e,t){var n=this;return null==e&&(e="root"),null==t&&(t=new Map),f(e.$to_s().$to_sym(),"root")?G:$(n.event_queues["$[]"](e.$to_sym()))?o(["active"],"each",[],(function n(r){var i=null==n.$$s?this:n.$$s,a=G;return null==i.event_queues&&(i.event_queues=G),null==r&&(r=G),$(t["$[]"](r.$to_sym()))?((a=new Map)["$[]="](r.$to_sym(),t["$[]"](r.$to_sym())),i.event_queues["$[]"](e.$to_sym())["$[]"]("settings")["$merge!"](a)):G}),{$$s:n}):n.$puts("Warning: queue "+e.$inspect()+" does not exist")}),-1),a(l,"$create_event_queue",(function(e){var t=this,n=G,r=G;return null==e&&(e=new Map),$(e["$is_a?"](_("Hash")))||t.$raise(_("ArgumentError"),"you must provide a Hash as a parameter set"),n=e.$delete("name").$to_s().$to_sym(),$(u(n.$to_s().$size(),0))?$(t.event_queues["$[]"](n))?t.$raise(_("ArgumentError"),"Event Queue "+n.$inspect()+" already exists"):(t.event_queues["$[]="](n,new Map([["events",[]],["settings",new Map([["active",!1],["portion",0]])]])),r=w(100,t.event_queues.$keys().$size().$to_f()),o(t.event_queues.$keys(),"each",[],(function e(t){var n,i=null==e.$$s?this:e.$$s;return null==i.event_queues&&(i.event_queues=G),null==t&&(t=G),n=["portion",r],o(i.event_queues["$[]"](t)["$[]"]("settings"),"[]=",n),n[n.length-1]}),{$$s:t}),t.$adjust_event_queue(n,e.$merge(new Map([["active",!0]]))),!0):t.$raise(_("ArgumentError"),":name must be provided for Event Queue")}),-1),a(l,"$delete_event_queue",(function(e){var t=this,n=G;return null==e&&(e=G),!f(e.$to_s().$to_sym(),"root")&&(t.event_queues.$delete(e),n=w(t.event_queues.$keys().$size().$to_f(),100),o(t.event_queues.$keys(),"each",[],(function e(t){var r,i=null==e.$$s?this:e.$$s;return null==i.event_queues&&(i.event_queues=G),null==t&&(t=G),r=["portion",n],o(i.event_queues["$[]"](t)["$[]"]("settings"),"[]=",r),r[r.length-1]}),{$$s:t}),!0)}),-1),a(l,"$pause_event_queue",(function(e){return null==e&&(e=G),f(e.$to_s().$to_sym(),"root")?G:this.$adjust_event_queue(e,new Map([["active",!0]]))}),-1),a(l,"$unpause_event_queue",(function(e){return null==e&&(e=G),f(e.$to_s().$to_sym(),"root")?G:this.$adjust_event_queue(e,new Map([["active",!1]]))}),-1),a(l,"$post_to_event_queue",(function(e,t){var n=this;return null==e&&(e="root"),null==t&&(t=G),$(t["$respond_to?"]("call"))?$(n.event_queues["$[]"](e))?n.event_queues["$[]"](e)["$[]"]("events")["$<<"](t):n.event_queues["$[]"]("root")["$[]"]("events")["$<<"](t):G}),-1),a(l,"$post_event",(function e(t){var n=e.$$p||G,r=this;return e.$$p=null,null==t&&(t="root"),$(r.event_queues["$[]"](t.$to_sym()))||r.$create_event_queue(new Map([["name",t.$to_sym()]])),r.$post_to_event_queue(t.$to_sym(),n),!0}),-1),a(l,"$add_timer",(function e(t){var n,r,i=e.$$p||G,a=this,s=G,o=G;return e.$$p=null,null==t&&(t=new Map),s=t["$[]"]("when"),o=$(n=t["$[]"]("do"))?n:i,$(s["$is_a?"](E("Numeric")))?s=m(E("Time").$now().$to_f(),s.$to_f()):$(s["$is_a?"](E("Time")))?s=s.$to_f():a.$raise(_("ArgumentError"),"you must specify a :when => millisecond (float) offset, or a Time for the timer"),$(o["$respond_to?"]("call"))||a.$raise(_("ArgumentError"),"you must provide a :do => callable object (Proc) for the timer, or a block"),r=E("GxG").$uuid_generate().$to_sym(),a.timers["$<<"](new Map([["when",s],["what",o],["id",r]])),new Map([["timer",r]])}),-1),a(l,"$add_periodic_timer",(function e(t){var n,r,i=e.$$p||G,a=this,s=G,o=G,u=G;return e.$$p=null,null==t&&(t=new Map),s=t["$[]"]("interval"),o=$(n=t["$[]"]("do"))?n:i,u=E("Time").$now().$to_f(),$(s["$is_a?"](E("Numeric")))?u=m(u,s.$to_f()):a.$raise(_("ArgumentError"),"you must specify an :interval => Float (as you would with sleep) offset interval for the periodic timer"),$(o["$respond_to?"]("call"))||a.$raise(_("ArgumentError"),"you must provide a :do => callable object (Proc) for the timer, or a block"),r=E("GxG").$uuid_generate().$to_sym(),a.timers["$<<"](new Map([["when",u],["what",o],["interval",s.$to_f()],["id",r]])),new Map([["timer",r]])}),-1),a(l,"$cancel_timer",(function(e){var t,n=this,r=G;return null==e&&(e=new Map),t=e["$[]"]("timer"),r=!1,$(t)&&function(){try{var e=x("break");return o(n.timers,"each_index",[],(function n(i){var a=null==n.$$s?this:n.$$s;if(null==a.timers&&(a.timers=G),null==i&&(i=G),!f(a.timers["$[]"](i)["$[]"]("id"),t))return G;a.timers.$delete_at(i),r=!0,e.$throw(G,n.$$is_lambda)}),{$$s:n})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),r}),-1),a(l,"$cancel_all_timers",(function(){for(var e=this;f(e.ticking,!0);)e.$sleep(.333);return e.timers=[],!0}))}(l[0],0,l)}(S[0],S)}(k[0],k),function(e,t){var i=n(e,"GxG"),a=[i].concat(t);$(i["$const_defined?"]("LOG"))&&i.$remove_const("LOG"),r(a[0],"LOG",E(E(E("GxG"),"Events"),"LogRing").$new())}(k[0],k),E(E("GxG"),"LOG")["$[]="]("default",E("Logger").$new(E(E("Logger"),"WARN"))),function(t,i){var a=n(t,"GxG"),s=[a].concat(i),u=e.$r(s);$(a["$const_defined?"]("DISPATCHER"))&&a.$remove_const("DISPATCHER"),r(s[0],"DISPATCHER",E(E(E("GxG"),"Events"),"EventDispatcher").$new(.1)),u("DISPATCHER").$startup(),r(s[0],"LOG_TIMER",o(u("DISPATCHER"),"add_periodic_timer",[new Map([["interval",1]])],(function(){return E(E("GxG"),"LOG").$process_messages()}))),_(a,"$shutdown",(function(){return u("DISPATCHER").$shutdown()}))}(k[0],k),function(e,t){var i=[n(e,"GxG")].concat(t);r(i[0],"CHANNELS",E(E(E("GxG"),"Messages"),"ChannelManager").$new())}(k[0],k),(t=i(k[0],null,"Object")).$$prototype.uuid=G,a(t,"$send_message",(function(e){var t=this;return $(t.uuid)||(t.uuid=E("GxG").$uuid_generate().$to_s().$to_sym(),E(E("GxG"),"CHANNELS").$create_channel(t.uuid,t)),E(E("GxG"),"CHANNELS").$send_message(t.uuid,e),!0})),a(t,"$next_message",(function(){var e=this;return $(e.uuid)||(e.uuid=E("GxG").$uuid_generate().$to_s().$to_sym(),E(E("GxG"),"CHANNELS").$create_channel(e.uuid,e)),E(E("GxG"),"CHANNELS").$next_message(e.uuid)})),a(t,"$post",(function(e){var t=this,n=G;return $(t.uuid)||(t.uuid=E("GxG").$uuid_generate().$to_s().$to_sym(),E(E("GxG"),"CHANNELS").$create_channel(t.uuid,t)),n=E(E("GxG"),"CHANNELS").$fetch_channel(t.uuid),$(n)&&n.$write(e),!0})),a(t,"$process_message",(function(e,t){return null==e&&(e=G),null==t&&(t=new Map),G}),-1)},Opal.modules["web/gxg_database"]=function(e){var t=e.module,n=e.NilClass,r=e.defs,i=e.truthy,a=e.send,s=e.eqeq,o=e.thrower,$=e.rb_gt,u=e.rb_plus,l=e.klass,c=e.def,_=e.range,d=e.rb_divide,p=e.rb_times,f=e.return_ivar,h=e.return_val,m=e.neqeq,g=e.alias,v=e.rb_minus,b=e.eqeqeq,y=e.slice,w=e.rb_lt,x=[],k=e.nil,G=e.$$$;return e.add_stubs("index,keys,element_tables,to_sym,[],each,==,is_any?,search,element_table_for_instance,raise,persistable?,is_a?,new,object_id,<<,>,size,shift,call,[]=,log_error,each_pair,+,detached_format_find,respond_to?,format_pull,BigDecimal,to_s,gxg_import,import,public,clone,valid_uuid?,increment_version,to_d,log_warn,inspect,/,to_f,to_i,*,log_warning,uuid=,title=,parent=,parse,decode64,version=,format=,each_index,constraint=,uuid_generate,last,alive?,write_reserved?,get_reservation,now,hash,version,iterative_detached_persist,class,include?,delete,uuid,title,format,constraint,iso8601,encode64,to_enum,each_with_index,!=,iterative,to_proc,reverse,split,get_at_path,process!,gsub!,unshift,join,=~,first,dirname,basename,set_property_version,property_version,unpersist,private,-,valid_field_classes,===,delete_at,save,key,<,refresh_ordinals,push,insert,load_element_links,with_index"),function(x,E){var S=[t(x,"GxG")].concat(E);(function(x,E){var S=t(x,"Database"),O=[S].concat(E),M=e.$r(O);r(S,"$element_tables",(function(){return new Map([["unspecified",k],["element_boolean",[G("TrueClass"),G("FalseClass"),n]],["element_integer",[G("Integer")]],["element_float",[G("Float")]],["element_bigdecimal",[G("BigDecimal")]],["element_datetime",[G("Time")]],["element_text",[G("String")]],["element_binary",[G(G("GxG"),"ByteArray")]],["element_array",[G("Array")]],["element_hash",[G("Hash")]]])})),r(S,"$valid_field_classes",(function(){return[G("TrueClass"),G("FalseClass"),n,G("Integer"),G("Float"),G("BigDecimal"),G("Time"),G("String"),G(G("GxG"),"ByteArray")]})),r(S,"$element_table_index",(function(e){var t;return null==e&&(e="unspecified"),i(t=G(G("GxG"),"Database").$element_tables().$keys().$index(e.$to_sym()))?t:0}),-1),r(S,"$element_table_by_index",(function(e){var t;return null==e&&(e=0),i(t=G(G("GxG"),"Database").$element_tables().$keys()["$[]"](e))?t:"unspecified"}),-1),r(S,"$element_table_for_instance",(function(e){var t=k,n=k;return null==e&&(e=k),t="unspecified",n=G(G("GxG"),"Database").$element_tables(),function(){try{var r=o("break");return a(n.$keys(),"each",[],(function a(o){return null==o&&(o=k),s(o,"unspecified")?k:i(e["$is_any?"](n["$[]"](o)))?(t=o,void r.$throw(k,a.$$is_lambda)):k}))}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}}(),t}),-1),r(S,"$persistable?",(function(e){var t=k;return t=!0,i(e["$is_any?"](G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray")))||(i(e["$is_any?"](G("Hash"),G("Array")))?function(){try{var n=o("break");return a(e,"search",[],(function e(r,a,o){return null==r&&(r=k),null==a&&(a=k),null==o&&(o=k),i(t)&&s(G(G("GxG"),"Database").$element_table_for_instance(r),"unspecified")&&(t=!1,n.$throw(k,e.$$is_lambda)),k}))}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}():s(G(G("GxG"),"Database").$element_table_for_instance(e),"unspecified")&&(t=!1)),t})),r(S,"$iterative_detached_persist",(function(t){var n=this,r=k,u=k,l=k,c=k,_=k,d=k,p=k,f=k;null==t&&(t=k),r=k;try{for(i(t["$is_any?"](G("Array"),G("Hash")))||n.$raise(M("ArgumentError"),"You MUST provide either an Array or a Hash."),i(G(M("GxG"),"Database")["$persistable?"](t))||n.$raise(M("ArgumentError"),"The object you are attempting to persist contains a non-persistable item."),i(t["$is_a?"](G("Array")))&&(u=G(G(G("GxG"),"Database"),"DetachedArray").$new()),i(t["$is_a?"](G("Hash")))&&(u=G(G(G("GxG"),"Database"),"DetachedHash").$new()),l=[new Map([["parent",k],["parent_selector",k],["object",t],["partner",u]])],c=a(M("Proc"),"new",[],(function(e){var t=k;return null==e&&(e=k),t=[],a(l,"each",[],(function(n){return null==n&&(n=k),s(n["$[]"]("parent").$object_id(),e.$object_id())?t["$<<"](n):k})),t}),-1),a(M("Proc"),"new",[],(function(e){var t=k;return null==e&&(e=k),t=k,a(l,"each",[],(function(n){return null==n&&(n=k),s(n["$[]"]("object").$object_id(),e.$object_id())?t=n:k})),t}),-1),a(M("Proc"),"new",[],(function(e){var t=k;return null==e&&(e=k),t=k,function(){try{var n=o("break");return a(l,"each",[],(function r(a){return null==a&&(a=k),i(a["$is_a?"](G("Hash")))&&s(a["$[]"]("object").$object_id(),e.$object_id())?(t=a["$[]"]("partner"),void n.$throw(k,r.$$is_lambda)):k}))}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}(),t})),k,a(t,"search",[],(function(e,t,n){return null==e&&(e=k),null==t&&(t=k),null==n&&(n=k),i(e["$is_a?"](G("Array")))?l["$<<"](new Map([["parent",n],["parent_selector",t],["object",e],["partner",G(G(G("GxG"),"Database"),"DetachedArray").$new()]])):i(e["$is_a?"](G("Hash")))?l["$<<"](new Map([["parent",n],["parent_selector",t],["object",e],["partner",G(G(G("GxG"),"Database"),"DetachedHash").$new()]])):l["$<<"](new Map([["parent",n],["parent_selector",t],["object",e],["partner",e]]))})),_=[l["$[]"](0)];i($(_.$size(),0));)d=_.$shift(),i(d["$is_a?"](G("Hash")))&&i(d["$[]"]("object")["$is_any?"](G("Array"),G("Hash")))&&(p=c.$call(d["$[]"]("object")),a(p,"each",[],(function(e){return null==e&&(e=k),d["$[]"]("partner")["$[]="](e["$[]"]("parent_selector"),e["$[]"]("partner")),i(e["$[]"]("partner")["$is_any?"](G(G(G("GxG"),"Database"),"DetachedArray"),G(G(G("GxG"),"Database"),"DetachedHash")))?_["$<<"](e):k})));r=u}catch(r){if(!e.rescue(r,[M("Exception")]))throw r;f=r;try{n.$log_error(new Map([["error",f],["parameters",new Map([["object",t]])]]))}finally{e.pop_exception(r)}}return r}),-1),r(S,"$detached_format_find",(function(e){var t=k,n=k;return null==e&&(e=new Map),t=k,n=new Map,a(["uuid","ufs","title","version"],"each",[],(function(t){var r;return null==t&&(t=k),i(e["$[]"](t))?(r=[t,e["$[]"](t)],a(n,"[]=",r),r[r.length-1]):k})),function(){try{var e=o("break");return a(G(M("GxG"),"DB")["$[]"]("formats"),"each_pair",[],(function r(i,o){var $=k;if(null==i&&(i=k),null==o&&(o=k),$=0,a(n.$keys(),"each",[],(function(e){return null==e&&(e=k),s(o["$[]"](e),n["$[]"](e))?$=u($,1):k})),!s(n.$keys().$size(),$))return k;t=o,e.$throw(k,r.$$is_lambda)}))}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),t}),-1),r(S,"$detached_format_load",(function e(t){var n=e.$$p||k,r=k,s=k,o=k,u=k;return e.$$p=null,null==t&&(t=new Map),r=!1,s=[],o=[],i(t["$is_a?"](G("Hash")))?(u=G(G("GxG"),"Database").$detached_format_find(t),i(u)?(o["$<<"](u),i(n["$respond_to?"]("call"))&&n.$call(o),r=!0):s["$<<"](t)):i(t["$is_a?"](G("Array")))&&a(t,"each",[],(function(e){return null==e&&(e=k),u=G(G("GxG"),"Database").$detached_format_find(e),i(u)?o["$<<"](u):s["$<<"](e)})),i($(s.$size(),0))?a(G(M("GxG"),"CONNECTION"),"format_pull",[s],(function(e){return null==e&&(e=k),i(e["$is_a?"](G("Hash")))&&i(e["$[]"]("result")["$is_a?"](G("Array")))?(a(e["$[]"]("result"),"each",[],(function(e){return null==e&&(e=k),G(M("GxG"),"DB")["$[]"]("formats")["$[]="](e["$[]"]("uuid").$to_sym(),e),o["$<<"](e)})),i(n["$respond_to?"]("call"))&&n.$call(o),r=!0):k})):i($(o.$size(),0))&&(i(n["$respond_to?"]("call"))&&n.$call(o),r=!0),r}),-1),r(S,"$process_detached_import",(function(e){var t=k;return null==e&&(e=k),t=[],i(e["$is_a?"](G("Hash")))&&(i($(e["$[]"]("formats").$size(),0))&&a(e["$[]"]("formats").$keys(),"each",[],(function t(n){var r,s=null==t.$$s?this:t.$$s,o=k;return null==n&&(n=k),i(G(M("GxG"),"DB")["$[]"]("formats")["$[]"](n))?k:(o=e["$[]"]("formats")["$[]"](n),i(o["$[]"]("version")["$is_a?"](G("String")))&&o["$[]="]("version",s.$BigDecimal(o["$[]"]("version").$to_s())),o["$[]="]("content",G("Hash").$gxg_import(o["$[]"]("content"))),r=[n,o],a(G(M("GxG"),"DB")["$[]"]("formats"),"[]=",r),r[r.length-1])}),{$$s:this}),i($(e["$[]"]("records").$size(),1))?a(e["$[]"]("records"),"each",[],(function(e){return null==e&&(e=k),t["$<<"](G(G(M("GxG"),"Database"),"DetachedHash").$import(e))})):t["$<<"](G(G(M("GxG"),"Database"),"DetachedHash").$import(e["$[]"]("records")["$[]"](0)))),t}),-1),r(S,"$process_import",(function(e){var t=k;return null==e&&(e=k),t=[],i(e["$is_a?"](G("Hash")))&&(i($(e["$[]"]("formats").$size(),0))&&a(e["$[]"]("formats").$keys(),"each",[],(function t(n){var r,s=null==t.$$s?this:t.$$s,o=k;return null==n&&(n=k),i(G(M("GxG"),"DB")["$[]"]("formats")["$[]"](n))?k:(o=e["$[]"]("formats")["$[]"](n),i(o["$[]"]("version")["$is_a?"](G("String")))&&o["$[]="]("version",s.$BigDecimal(o["$[]"]("version").$to_s())),o["$[]="]("content",G("Hash").$gxg_import(o["$[]"]("content"))),r=[n,o],a(G(M("GxG"),"DB")["$[]"]("formats"),"[]=",r),r[r.length-1])}),{$$s:this}),i($(e["$[]"]("records").$size(),1))?a(e["$[]"]("records"),"each",[],(function(e){return null==e&&(e=k),t["$<<"](G(G(M("GxG"),"Database"),"PersistedHash").$import(e))})):t["$<<"](G(G(M("GxG"),"Database"),"PersistedHash").$import(e["$[]"]("records")["$[]"](0)))),t}),-1),function(t,v,b){var y=l(t,null,"DetachedHash"),w=[y].concat(b),x=e.$r(w),E=y.$$prototype;E.uuid=E.title=E.version=E.property_links=E.format=E.parent=k,y.$public(),c(y,"$uuid",(function(){return this.uuid.$clone()})),c(y,"$uuid=",(function(e){return null==e&&(e=k),i(x("GxG")["$valid_uuid?"](e))?this.uuid=e.$to_s().$to_sym():k}),-1),c(y,"$title",(function(){return this.title.$clone()})),c(y,"$title=",(function(e){return null==e&&(e=k),i(e)?(this.title=e.$to_s()["$[]"](_(0,255,!1)),this.$increment_version()):k}),-1),c(y,"$version",(function(){return this.version.$clone()})),c(y,"$version=",(function(e){return null==e&&(e=k),i(e["$is_a?"](G("Numeric")))?this.version=e.$to_s("F").$to_d():k}),-1),c(y,"$element_version",(function(e){var t=this,n=k;return null==e&&(e=k),n=0,i(e["$is_a?"](G("Symbol")))&&(i($(e.$to_s().$size(),256))&&(t.$log_warn(new Map([["warning","Attempted oversized key usage (limited to 256 characters), truncated "+e.$inspect()+" to "+e.$to_s()["$[]"](_(0,255,!1)).$to_sym().$inspect()]])),e=e.$to_s()["$[]"](_(0,255,!1)).$to_sym()),n=i(t.property_links["$[]"](e.$to_s().$to_sym()))?t.property_links["$[]"](e.$to_s().$to_sym())["$[]"]("record")["$[]"]("version"):0),n}),-1),c(y,"$set_element_version",(function(e,t){var n=this,r=k;return null==t&&(t=k),r=!1,i(n.property_links["$[]"](e))?i(t["$is_a?"](G("Numeric")))?(n.property_links["$[]"](e)["$[]"]("record")["$[]="]("version",d(p(t.$to_f(),1e4).$to_i().$to_f(),1e4)),r=!0):n.$log_warning("Attempted to set version to an invalid version value "+t.$inspect()+" for "+e.$inspect()+" on Object "+n.uuid.$inspect()):n.$log_warning("Attempted to set version with an invalid key "+e.$inspect()+" on Object "+n.uuid.$inspect()),r}),-2),c(y,"$format",(function(){return this.format.$clone()})),c(y,"$format=",(function(e){return null==e&&(e=k),i(x("GxG")["$valid_uuid?"](e))?this.format=e.$to_s().$to_sym():k}),-1),c(y,"$parent",f("parent")),c(y,"$parent=",(function(e){return null==e&&(e=k),i(e["$is_any?"]([G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray")]))?i(this.parent)?k:this.parent=e:k}),-1),c(y,"$write_reserved?",h(!0)),c(y,"$release_reservation",h(!0)),c(y,"$get_reservation",h(!0)),c(y,"$wait_for_reservation",(function(e){return null==e&&(e=k),!0}),-1),r(y,"$import",(function(e){var t,n=this,r=k,s=k;for(null==e&&(e=k),k,i(e["$is_any?"](G("Hash"),G(G(G("GxG"),"Database"),"DetachedHash")))||n.$raise(x("Exception"),"Malformed import record passed."),t=(r=[new Map([["target",G(G(G("GxG"),"Database"),"DetachedHash").$new()],["record",e]])])["$[]"](0)["$[]"]("target");i($(r.$size(),0));)switch((s=r.$shift())["$[]"]("record")["$[]"]("type").$to_s().$to_sym().valueOf()){case"element_hash":s["$[]"]("target")["$uuid="](s["$[]"]("record")["$[]"]("uuid").$to_s().$to_sym()),s["$[]"]("target")["$title="](s["$[]"]("record")["$[]"]("title").$to_s()),a(s["$[]"]("record")["$[]"]("content").$keys(),"each",[],(function e(t){var n,i=null==e.$$s?this:e.$$s,o=k;switch(null==t&&(t=k),s["$[]"]("record")["$[]"]("content")["$[]"](t)["$[]"]("type").$to_s().$to_sym().valueOf()){case"element_hash":return o=G(G(x("GxG"),"Database"),"DetachedHash").$new(),s["$[]"]("target")["$[]="](t,o),r["$<<"](new Map([["target",o],["record",s["$[]"]("record")["$[]"]("content")["$[]"](t)]])),n=[s["$[]"]("target")],a(s["$[]"]("target")["$[]"](t),"parent=",n),n[n.length-1];case"element_array":return o=G(G(x("GxG"),"Database"),"DetachedArray").$new(),s["$[]"]("target")["$[]="](t,o),r["$<<"](new Map([["target",o],["record",s["$[]"]("record")["$[]"]("content")["$[]"](t)]])),n=[s["$[]"]("target")],a(s["$[]"]("target")["$[]"](t),"parent=",n),n[n.length-1];case"element_boolean":case"element_integer":case"element_float":case"element_text":return n=[t,s["$[]"]("record")["$[]"]("content")["$[]"](t)["$[]"]("content")],a(s["$[]"]("target"),"[]=",n),n[n.length-1];case"element_bigdecimal":return n=[t,i.$BigDecimal(s["$[]"]("record")["$[]"]("content")["$[]"](t)["$[]"]("content").$to_s())],a(s["$[]"]("target"),"[]=",n),n[n.length-1];case"element_datetime":return n=[t,G("Chronic").$parse(s["$[]"]("record")["$[]"]("content")["$[]"](t)["$[]"]("content").$to_s())],a(s["$[]"]("target"),"[]=",n),n[n.length-1];case"element_binary":return n=[t,G(G("GxG"),"ByteArray").$new(s["$[]"]("record")["$[]"]("content")["$[]"](t)["$[]"]("content").$to_s().$decode64())],a(s["$[]"]("target"),"[]=",n),n[n.length-1];default:return k}}),{$$s:n}),s["$[]"]("target")["$version="](n.$BigDecimal(s["$[]"]("record")["$[]"]("version").$to_s())),s["$[]"]("target")["$format="](s["$[]"]("record")["$[]"]("format").$to_s().$to_sym());break;case"element_array":s["$[]"]("target")["$uuid="](s["$[]"]("record")["$[]"]("uuid").$to_s().$to_sym()),s["$[]"]("target")["$title="](s["$[]"]("record")["$[]"]("title").$to_s()),a(s["$[]"]("record")["$[]"]("content"),"each_index",[],(function e(t){var n,i=null==e.$$s?this:e.$$s,o=k;switch(null==t&&(t=k),s["$[]"]("record")["$[]"]("content")["$[]"](t)["$[]"]("type").$to_s().$to_sym().valueOf()){case"element_hash":return o=G(G(x("GxG"),"Database"),"DetachedHash").$new(),s["$[]"]("target")["$[]="](t,o),r["$<<"](new Map([["target",o],["record",s["$[]"]("record")["$[]"]("content")["$[]"](t)]])),n=[s["$[]"]("target")],a(s["$[]"]("target")["$[]"](t),"parent=",n),n[n.length-1];case"element_array":return o=G(G(x("GxG"),"Database"),"DetachedArray").$new(),s["$[]"]("target")["$[]="](t,o),r["$<<"](new Map([["target",o],["record",s["$[]"]("record")["$[]"]("content")["$[]"](t)]])),n=[s["$[]"]("target")],a(s["$[]"]("target")["$[]"](t),"parent=",n),n[n.length-1];case"element_boolean":case"element_integer":case"element_float":case"element_text":return n=[t,s["$[]"]("record")["$[]"]("content")["$[]"](t)["$[]"]("content")],a(s["$[]"]("target"),"[]=",n),n[n.length-1];case"element_bigdecimal":return n=[t,i.$BigDecimal(s["$[]"]("record")["$[]"]("content")["$[]"](t)["$[]"]("content").$to_s())],a(s["$[]"]("target"),"[]=",n),n[n.length-1];case"element_datetime":return n=[t,G("Chronic").$parse(s["$[]"]("record")["$[]"]("content")["$[]"](t)["$[]"]("content").$to_s())],a(s["$[]"]("target"),"[]=",n),n[n.length-1];case"element_binary":return n=[t,G(G("GxG"),"ByteArray").$new(s["$[]"]("record")["$[]"]("content")["$[]"](t)["$[]"]("content").$to_s().$decode64())],a(s["$[]"]("target"),"[]=",n),n[n.length-1];default:return k}}),{$$s:n}),s["$[]"]("target")["$version="](n.$BigDecimal(s["$[]"]("record")["$[]"]("version").$to_s())),s["$[]"]("target")["$constraint="](s["$[]"]("record")["$[]"]("constraint").$to_s().$to_sym())}return t}),-1),r(y,"$create_from_format",(function(e){return null==e&&(e=k),k}),-1),c(y,"$ufs",(function(){var e=k;return i(this.format)?(e=G(x("GxG"),"DB")["$[]"]("formats")["$[]"](this.format.$to_s().$to_sym()),i(e)?e["$[]"]("ufs").$to_s().$to_sym():""):""})),c(y,"$increment_version",(function(){return this.version=u(this.version,1e-4)})),c(y,"$initialize",(function(){var e=this;return e.uuid=G("GxG").$uuid_generate().$to_s().$to_sym(),e.title="Untitled "+e.uuid.$to_s(),e.version=e.$BigDecimal("0.0"),e.format=k,e.parent=k,e.property_links=new Map,e})),c(y,"$inspect",(function(){var e,t=this,n=k;return e=t.property_links.$keys().$last(),n="{",a(t.property_links.$keys(),"each",[],(function t(r){var i=null==t.$$s?this:t.$$s;return null==i.property_links&&(i.property_links=k),null==r&&(r=k),n=u(n,u(":"+r.$to_s()+" => ",i.property_links["$[]"](r)["$[]"]("content").$inspect())),s(e,r)?k:n=u(n,", ")}),{$$s:t}),u(n,"}")})),c(y,"$alive?",h(!0)),c(y,"$save",(function(){var t=k,n=k;if(t=!1,i(this["$alive?"]()))try{t=!0}catch(t){if(!e.rescue(t,[x("Exception")]))throw t;n=t;try{this.$log_error(new Map([["error",n]]))}finally{e.pop_exception(t)}}return t})),c(y,"$destroy",(function(){var t=k,n=k;if(t=!1,i(this["$alive?"]()))try{t=!0}catch(t){if(!e.rescue(t,[x("Exception")]))throw t;n=t;try{this.$log_error(new Map([["error",n]]))}finally{e.pop_exception(t)}}return t})),c(y,"$size",(function(){return this.property_links.$size()})),c(y,"$keys",(function(){return this.property_links.$keys()})),c(y,"$[]=",(function(e,t){var r=this,a=k,o=k,l=k,c=k;if(null==e&&(e=k),null==t&&(t=k),i(r["$alive?"]())||r.$raise(x("Exception"),"Attempted to alter a defunct structure"),a=k,i(e["$is_a?"](G("Symbol"))))if(i($(e.$to_s().$size(),256))&&(r.$log_warn(new Map([["warning","Attempted oversized key usage (limited to 256 characters), truncated "+e.$inspect()+" to "+e.$to_s()["$[]"](_(0,255,!1)).$to_sym().$inspect()]])),e=e.$to_s()["$[]"](_(0,255,!1)).$to_sym()),o=e.$to_s().$to_sym(),i(t["$is_any?"](n,G("TrueClass"),G("FalseClass"),G("Integer"),G("Float"),G("BigDecimal"),G("String"),G("Time"),G(G("GxG"),"ByteArray"),G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray"),G("Hash"),G("Array"))))if(i(r["$write_reserved?"]())||r.$get_reservation(),i(r["$write_reserved?"]())){if(i(r.property_links["$[]"](e.$to_s().$to_sym()))?l="set_value":i(r.format)?r.$raise(x("Exception"),"Formatted - the structure cannot be altered"):l="add_value",c=new Map([["linkid",k],["content",k],["loaded",!0],["state",0],["record",new Map([["parent_uuid",r.uuid.$to_s()],["property",e.$to_s()],["ordinal",0],["version",r.$BigDecimal("0.0")],["element","element_boolean"],["element_boolean",-1],["element_integer",0],["element_float",0],["element_bigdecimal",r.$BigDecimal("0.0")],["element_datetime",G("Time").$now()],["time_offset",0],["time_prior",0],["time_after",0],["length",0],["element_text",""],["element_binary",k],["element_array",k],["element_hash",k]])]]),i(t["$is_any?"](G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray"))))c["$[]="]("content",t),c["$[]="]("loaded",!0),c["$[]="]("state",c["$[]"]("content").$hash()),c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()),i(t["$is_a?"](G(G(G("GxG"),"Database"),"DetachedHash")))?(c["$[]"]("record")["$[]="]("element","element_hash"),c["$[]"]("record")["$[]="]("element_hash",t)):(c["$[]"]("record")["$[]="]("element","element_array"),c["$[]"]("record")["$[]="]("element_array",t));else if(i(t["$is_any?"](G("Hash"),G("Array"))))c["$[]="]("content",G(G("GxG"),"Database").$iterative_detached_persist(t)),c["$[]="]("loaded",!0),c["$[]="]("state",c["$[]"]("content").$hash()),c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()),i(t["$is_a?"](G("Hash")))?(c["$[]"]("record")["$[]="]("element","element_hash"),c["$[]"]("record")["$[]="]("element_hash",c["$[]"]("content"))):(c["$[]"]("record")["$[]="]("element","element_array"),c["$[]"]("record")["$[]="]("element_array",c["$[]"]("content")));else switch(c["$[]"]("record")["$[]="]("element",G(G("GxG"),"Database").$element_table_for_instance(t).$to_s()),c["$[]"]("record")["$[]"]("element").valueOf()){case"element_boolean":s(t.$class(),n)&&(c["$[]"]("record")["$[]="]("element_boolean",-1),c["$[]="]("content",k)),s(t.$class(),G("FalseClass"))&&(c["$[]"]("record")["$[]="]("element_boolean",0),c["$[]="]("content",!1)),s(t.$class(),G("TrueClass"))&&(c["$[]"]("record")["$[]="]("element_boolean",1),c["$[]="]("content",!0));break;case"element_integer":c["$[]"]("record")["$[]="]("element_integer",t),c["$[]="]("content",t);break;case"element_float":c["$[]"]("record")["$[]="]("element_float",t),c["$[]="]("content",t);break;case"element_bigdecimal":c["$[]"]("record")["$[]="]("element_bigdecimal",r.$BigDecimal(t.$to_s())),c["$[]="]("content",c["$[]"]("record")["$[]"]("element_bigdecimal"));break;case"element_datetime":c["$[]"]("record")["$[]="]("element_datetime",t),c["$[]="]("content",t);break;case"element_text":c["$[]"]("record")["$[]="]("element_text",t),c["$[]"]("record")["$[]="]("length",t.$size()),c["$[]="]("content",t);break;case"element_binary":s(l,"set_value")&&(c["$[]"]("record")["$[]="]("version",r.property_links["$[]"](o)["$[]"]("record")["$[]"]("version")),c["$[]"]("record")["$[]="]("element_binary",r.property_links["$[]"](o)["$[]"]("record")["$[]"]("element_binary"))),c["$[]"]("record")["$[]="]("length",t.$size()),c["$[]="]("content",t);break;default:r.$raise(x("Exception"),"Unable to map an element type for value: "+t.$inspect())}switch(l.valueOf()){case"set_value":i(c["$[]"]("content")["$is_a?"](r.property_links["$[]"](o)["$[]"]("content").$class()))||i([!0,!1,k]["$include?"](c["$[]"]("content")))&&i([!0,!1,k]["$include?"](r.property_links["$[]"](o)["$[]"]("content")))?(c["$[]="]("linkid",r.property_links["$[]"](o)["$[]"]("linkid")),i(c["$[]"]("content")["$is_any?"](G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray")))?c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()):c["$[]"]("record")["$[]="]("version",u(r.property_links["$[]"](o)["$[]"]("record")["$[]"]("version"),1e-4)),c["$[]"]("record")["$[]="]("ordinal",r.property_links["$[]"](o)["$[]"]("record")["$[]"]("ordinal")),c["$[]="]("loaded",!0),c["$[]="]("state",r.property_links["$[]"](o)["$[]"]("state")),r.property_links["$[]="](o,c)):(i(c["$[]"]("content")["$is_any?"](G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray")))?c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()):c["$[]"]("record")["$[]="]("version",d(p(u(r.property_links["$[]"](o)["$[]"]("record")["$[]"]("version").$to_f(),1e-4),1e4).$to_i().$to_f(),1e4)),c["$[]"]("record")["$[]="]("ordinal",r.property_links["$[]"](o)["$[]"]("record")["$[]"]("ordinal")),c["$[]="]("loaded",!0),r.property_links["$[]="](o,c)),a=r.property_links["$[]"](o)["$[]"]("content");break;case"add_value":i(c["$[]"]("content")["$is_any?"](G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray")))?c["$[]"]("record")["$[]="]("version",c["$[]"]("content").$version()):c["$[]"]("record")["$[]="]("version",r.$BigDecimal("0.0")),c["$[]"]("record")["$[]="]("ordinal",r.property_links.$keys().$size()),c["$[]="]("loaded",!0),r.property_links["$[]="](o,c)}i(r.property_links["$[]"](o)["$[]"]("content")["$is_any?"](G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray")))&&r.property_links["$[]"](o)["$[]"]("content")["$parent="](r),r.$increment_version(),a=r.property_links["$[]"](o)["$[]"]("content")}else r.$raise(x("Exception"),"You do not have sufficient privileges to make this change. (write-reservation)");else r.$raise(x("Exception"),"The value is not persistable.");else r.$raise(x("Exception"),"You must provide a property key in the form of a Symbol.");return a}),-1),c(y,"$[]",(function(e){var t=this,n=k,r=k;return null==e&&(e=k),n=k,i(t["$alive?"]())?i(e["$is_a?"](G("Symbol")))?(i($(e.$to_s().$size(),256))&&(t.$log_warn(new Map([["warning","Attempted oversized key usage (limited to 256 characters), truncated "+e.$inspect()+" to "+e.$to_s()["$[]"](_(0,255,!1)).$to_sym().$inspect()]])),e=e.$to_s()["$[]"](_(0,255,!1)).$to_sym()),r=e.$to_s().$to_sym(),i(t.property_links["$[]"](r))&&(n=t.property_links["$[]"](r)["$[]"]("content"))):t.$raise(x("ArgumentError"),"You must specify with a Symbol, not a "+e.$class().$inspect()):t.$raise(x("Exception"),"Attempted to access a defunct structure"),n}),-1),c(y,"$include?",(function(e){return this.property_links.$keys()["$include?"](e)})),c(y,"$delete",(function(e){var t=this,n=k;return null==e&&(e=k),n=k,i(e["$is_a?"](G("Symbol")))?(i($(e.$to_s().$size(),256))&&(t.$log_warn(new Map([["warning","Attempted oversized key usage (limited to 256 characters), truncated "+e.$inspect()+" to "+e.$to_s()["$[]"](_(0,255,!1)).$to_sym().$inspect()]])),e=e.$to_s()["$[]"](_(0,255,!1)).$to_sym()),i(t.format)?t.$raise(x("Exception"),"Formatted - the structure cannot be altered"):i(t.property_links["$[]"](e))&&(n=t.property_links["$[]"](e)["$[]"]("content"),t.property_links.$delete(e))):t.$raise(x("ArgumentError"),"You must specify with a Symbol, not a "+e.$class().$inspect()),n}),-1),c(y,"$unpersist",(function(){var e,t=this,n=k,r=k,o=k,u=k;if(e=new Map,i(t["$alive?"]()))for(n=[new Map([["parent",k],["parent_selector",k],["object",t],["record",e]])],r=a(x("Proc"),"new",[],(function(e){var t=k;return null==e&&(e=k),t=[],a(n,"each",[],(function(n){return null==n&&(n=k),s(n["$[]"]("parent").$object_id(),e.$object_id())?t["$<<"](n):k})),t}),-1),a(t,"search",[],(function(e,t,r){return null==e&&(e=k),null==t&&(t=k),null==r&&(r=k),i(e["$is_a?"](G(G(G("GxG"),"Database"),"DetachedHash")))?n["$<<"](new Map([["parent",r],["parent_selector",t.$clone()],["object",e],["record",new Map]])):i(e["$is_a?"](G(G(G("GxG"),"Database"),"DetachedArray")))?n["$<<"](new Map([["parent",r],["parent_selector",t.$clone()],["object",e],["record",[]]])):n["$<<"](new Map([["parent",r],["parent_selector",t.$clone()],["object",e],["record",e]]))})),o=[n["$[]"](0)];i($(o.$size(),0));)u=o.$shift(),a(r.$call(u["$[]"]("object")),"each",[],(function(e){return null==e&&(e=k),u["$[]"]("record")["$[]="](e["$[]"]("parent_selector"),e["$[]"]("record")),i(e["$[]"]("object")["$is_any?"](G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray")))?o["$<<"](e):k}));return e})),c(y,"$export",(function(e){var t,r=this,o=k,u=k,l=k,c=k,_=k,d=k;for(null==e&&(e=new Map([["exclude_file_segments",!1]])),t=i(o=e["$[]"]("exclude_file_segments"))&&o,u=s(e["$[]"]("clone"),!0)?new Map([["type","element_hash"],["uuid",x("GxG").$uuid_generate().$to_s().$to_sym()],["title",r.title.$clone()],["version",r.version.$to_s("F")],["content",new Map]]):new Map([["type","element_hash"],["uuid",r.uuid.$clone()],["title",r.title.$clone()],["version",r.version.$to_s("F")],["format",r.format.$clone()],["content",new Map]]),l=[new Map([["parent",k],["parent_selector",k],["object",r],["record",u]])],c=a(x("Proc"),"new",[],(function(e){var t=k;return null==e&&(e=k),t=[],a(l,"each",[],(function(n){return null==n&&(n=k),s(n["$[]"]("parent").$object_id(),e.$object_id())?t["$<<"](n):k})),t}),-1),a(r,"search",[],(function r(a,$,u){var c=null==r.$$s?this:r.$$s,_=k,d=k,p=k;if(null==a&&(a=k),null==$&&($=k),null==u&&(u=k),i(a["$is_a?"](G(G(G("GxG"),"Database"),"DetachedHash")))&&(_=s(e["$[]"]("clone"),!0)?x("GxG").$uuid_generate().$to_s().$to_sym():a.$uuid().$clone(),s(t,!0)&&(s($,"file_segments")||s($,"segments")||s($,"portions"))?l["$<<"](new Map([["parent",u],["parent_selector",$.$clone()],["object",new Map],["record",new Map([["type","element_hash"],["uuid",_],["title",a.$title().$clone()],["version",a.$version().$to_s("F")],["format",a.$format().$clone()],["content",new Map]])]])):l["$<<"](new Map([["parent",u],["parent_selector",$.$clone()],["object",a],["record",new Map([["type","element_hash"],["uuid",_],["title",a.$title().$clone()],["version",a.$version().$to_s("F")],["format",a.$format().$clone()],["content",new Map]])]]))),i(a["$is_a?"](G(G(G("GxG"),"Database"),"DetachedArray")))&&(_=s(e["$[]"]("clone"),!0)?x("GxG").$uuid_generate().$to_s().$to_sym():a.$uuid().$clone(),s(t,!0)&&(s($,"file_segments")||s($,"segments")||s($,"portions"))?l["$<<"](new Map([["parent",u],["parent_selector",$.$clone()],["object",[]],["record",new Map([["type","element_array"],["uuid",_],["title",a.$title().$clone()],["version",a.$version().$to_s("F")],["constraint",a.$constraint().$clone()],["content",[]]])]])):l["$<<"](new Map([["parent",u],["parent_selector",$.$clone()],["object",a],["record",new Map([["type","element_array"],["uuid",_],["title",a.$title().$clone()],["version",a.$version().$to_s("F")],["constraint",a.$constraint().$clone()],["content",[]]])]]))),i(a["$is_any?"](n,G("TrueClass"),G("FalseClass"),G("Integer"),G("Float"),G("BigDecimal"),G("String"),G("Time"),G(G("GxG"),"ByteArray")))){switch((d=G(x("GxG"),"Database").$element_table_for_instance(a)).valueOf()){case"element_bigdecimal":case"element_text":p=a.$to_s();break;case"element_datetime":p=a.$iso8601().$to_s();break;case"element_binary":p=a.$to_s().$encode64();break;default:p=a}return l["$<<"](new Map([["parent",u],["parent_selector",$.$clone()],["object",a],["record",new Map([["type",d],["version",(i(o=u.$version($))?o:c.$BigDecimal("0.0")).$to_s("F")],["content",p]])]]))}return k}),{$$s:r}),_=[l["$[]"](0)];i($(_.$size(),0));)d=_.$shift(),a(c.$call(d["$[]"]("object")),"each",[],(function(e){return null==e&&(e=k),d["$[]"]("record")["$[]"]("content")["$[]="](e["$[]"]("parent_selector"),e["$[]"]("record")),i(e["$[]"]("object")["$is_any?"](G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray")))?_["$<<"](e):k}));return u}),-1),c(y,"$each_pair",(function e(){var t=e.$$p||k,n=k;return e.$$p=null,n=new Map,a(this.property_links.$keys(),"each",[],(function e(t){var r;return null==t&&(t=k),r=[t,(null==e.$$s?this:e.$$s)["$[]"](t)],a(n,"[]=",r),r[r.length-1]}),{$$s:this}),i(t["$respond_to?"]("call"))?a(n.$to_enum("each_pair"),"each",[],(function(e,n){return null==e&&(e=k),null==n&&(n=k),t.$call(e,n)})):n.$to_enum("each_pair")})),c(y,"$iterative",(function t(n){var r=t.$$p||k,o=this,u=k,l=k,c=k,_=k,d=k,p=k,f=k,h=k,g=k;t.$$p=null,null==n&&(n=new Map([["include_inactive",!0]])),u=[],l=a(x("Proc"),"new",[],(function(e,t){var r=k,s=k;if(null==e&&(e=k),null==t&&(t=[]),r=[],i(e))for(r["$<<"](new Map([["parent",k],["parent_selector",k],["object",e]]));i($(r.$size(),0));)s=r.$shift(),i(s["$[]"]("object")["$is_a?"](G(G(G("GxG"),"Database"),"DetachedHash")))&&(i(s["$[]"]("object")["$alive?"]())?a(s["$[]"]("object"),"each_pair",[],(function(e,t){return null==e&&(e=k),null==t&&(t=k),r["$<<"](new Map([["parent",s["$[]"]("object")],["parent_selector",e],["object",t]]))})):i(n["$[]"]("include_inactive"))&&t["$<<"](s)),i(s["$[]"]("object")["$is_a?"](G(G(G("GxG"),"Database"),"DetachedArray")))&&(i(s["$[]"]("object")["$alive?"]())?a(s["$[]"]("object"),"each_with_index",[],(function(e,t){return null==e&&(e=k),null==t&&(t=k),r["$<<"](new Map([["parent",s["$[]"]("object")],["parent_selector",t],["object",e]]))})):i(n["$[]"]("include_inactive"))&&t["$<<"](s));return t}),-1),c=a(x("Proc"),"new",[],(function(e,t){var n=k;return null==e&&(e=[]),null==t&&(t=k),n=[],a(e,"each",[],(function(e){return null==e&&(e=k),s(e["$[]"]("parent").$object_id(),t.$object_id())?n["$<<"](e):k})),n}),-1);try{if(_=l.$call(o,[]),d=c.$call(_,o),i(r["$respond_to?"]("call")))for(;i($(d.$size(),0));)p=d.$shift(),s(p["$[]"]("object").$object_id(),o.$object_id())||(f=r.$call(p["$[]"]("object"),p["$[]"]("parent_selector"),p["$[]"]("parent")),i(f)&&u["$<<"](f)),m(p["$[]"]("object").$object_id(),k.$object_id())&&(h=c.$call(_,p["$[]"]("object")),a(h,"each",[],(function(e){return null==e&&(e=k),d["$<<"](e)})))}catch(t){if(!e.rescue(t,[x("Exception")]))throw t;g=t;try{o.$log_error(new Map([["error",g],["parameters",new Map]]))}finally{e.pop_exception(t)}}return u}),-1),g(y,"process","iterative"),c(y,"$process!",(function e(t){var n=e.$$p||k;return e.$$p=null,null==t&&(t=new Map([["include_inactive",!0]])),a(this,"iterative",[t],n.$to_proc()),this}),-1),c(y,"$search",(function e(t){var n=e.$$p||k,r=k;return e.$$p=null,null==t&&(t=new Map([["include_inactive",!0]])),r=[],i(n["$respond_to?"]("call"))&&(r=a(this,"iterative",[t],n.$to_proc())),r}),-1),c(y,"$paths_to",(function(e,t){var n=k,r=k,u=k,l=k,c=k,d=k,p=k;return null==e&&(e=k),null==t&&(t=""),n=[],s(t["$[]"](0),"/")||(t="/"["$<<"](t)),r=i($(t.$size(),1))?t.$split("/")["$[]"](_(1,-1,!1)).$reverse():[],u=this.$get_at_path(t),l=[new Map([["selector",k],["container",u]])],c=a(x("Proc"),"new",[],(function(e){var t=k;return null==e&&(e=k),t=k,function(){try{var n=o("break");return a(l,"each_with_index",[],(function r(i,a){if(null==i&&(i=k),null==a&&(a=k),!s(i["$[]"]("container"),e))return k;t=i,n.$throw(k,r.$$is_lambda)}))}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}(),t})),d=u,p=!1,i(u["$is_any?"](G("Hash"),G("Array"),G("Struct"),G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray")))?a(u,"process!",[],(function(t,a,o){var $=k,u=k;return null==t&&(t=k),null==a&&(a=k),null==o&&(o=k),m(d.$object_id(),o.$object_id())&&($=c.$call(o),i($)&&(r=$["$[]"]("prefix").$split("/").$reverse(),s(r.$size(),0)&&r["$<<"]("")),d=o),(u=a.$to_s())["$gsub!"]("/","%2f"),r.$unshift(u),p=!1,s(t,e)&&(p=!0),i(p)&&n["$<<"]("/"["$<<"](r.$reverse().$join("/"))),i(t["$is_any?"](G("Array"),G("Hash"),G("Struct"),G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray")))&&l.$unshift(new Map([["selector",a],["container",t],["prefix",r.$reverse().$join("/")]])),r.$shift(),k})):n["$<<"]("/"["$<<"](r.$join("/"))),n}),-1),c(y,"$get_at_path",(function(e){var t=k,n=k,r=k;return null==e&&(e="/"),t=k,s(e,"/")?t=this:(n=[this],r=e.$split("/"),function(){try{var e=o("break");return a(r.$to_enum(),"each",[],(function r(a){var o=k;return null==a&&(a=k),o=k,i($(a.$size(),0))&&(s(a["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?o=a.$to_i():((o=a.$to_s())["$gsub!"]("%2f","/"),o=o.$to_sym())),i(o)?(t=n.$first()["$[]"](o),i(t["$is_a?"](x("NilClass")))?void e.$throw(k,r.$$is_lambda):n.$unshift(t)):k}))}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),t}),-1),c(y,"$set_at_path",(function(e,t){var n=k,r=k,a=k,o=k;return null==e&&(e="/"),null==t&&(t=k),n=k,m(e,"/")&&(r=this.$get_at_path(G("File").$dirname(e)),i(r)&&(a=G("File").$basename(e),o=k,i($(a.$size(),0))&&(s(a["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?o=a.$to_i():((o=a.$to_s())["$gsub!"]("%2f","/"),o=o.$to_sym())),i(o)&&(r["$[]="](o,t),n=r["$[]"](o)))),n}),-1),c(y,"$merge!",(function(e,t){var n=k;return null==e&&(e=k),null==t&&(t=new Map),n=this,i(e["$is_any?"](G("Hash"),G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"PersistedHash")))&&(i(this.format)?a(e.$keys(),"each",[],(function(t){return null==t&&(t=k),i(n.$keys()["$include?"](t))?(n["$[]="](t,e["$[]"](t)),i(e["$is_any?"](G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"PersistedHash")))?n.$set_property_version(t,e.$property_version(t)):k):k})):a(e.$keys(),"each",[],(function(t){return null==t&&(t=k),n["$[]="](t,e["$[]"](t)),i(e["$is_any?"](G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"PersistedHash")))?n.$set_property_version(t,e.$property_version(t)):k}))),n}),-1),c(y,"$merge",(function(e,t){var n=this,r=k;return null==e&&(e=k),null==t&&(t=new Map),r=n,i(e["$is_any?"](G("Hash"),G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"PersistedHash")))&&(r=G(G(G("GxG"),"Database"),"DetachedHash").$iterative_detached_persist(n.$unpersist()),i(n.format)?(a(e.$keys(),"each",[],(function(t){return null==t&&(t=k),i(r.$keys()["$include?"](t))?(r["$[]="](t,e["$[]"](t)),i(e["$is_any?"](G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"PersistedHash")))?r.$set_property_version(t,e.$property_version(t)):k):k})),r["$format="](n.format)):a(e.$keys(),"each",[],(function(t){return null==t&&(t=k),r["$[]="](t,e["$[]"](t)),i(e["$is_any?"](G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"PersistedHash")))?r.$set_property_version(t,e.$property_version(t)):k}))),r}),-1)}(O[0],0,O),function(t,r,x){var E=l(t,null,"DetachedArray"),S=[E].concat(x),O=e.$r(S),M=E.$$prototype;M.element_links=M.uuid=M.title=M.version=M.constraint=M.parent=M.format=k,E.$private(),c(E,"$element_destroy",(function(e){return null==e&&(e=k),k}),-1),c(E,"$element_write",(function(e){return null==e&&(e=k),k}),-1),c(E,"$load_element_links",h(k)),c(E,"$refresh_ordinals",(function(){var e=this,t=k;return t=[],a(e.element_links,"each_with_index",[],(function e(n,r){var i=null==e.$$s?this:e.$$s;return null==i.element_links&&(i.element_links=k),null==n&&(n=k),null==r&&(r=k),i.element_links["$[]"](r)["$[]"]("record")["$[]="]("ordinal",r),t["$<<"](i.element_links["$[]"](r))}),{$$s:e}),e.element_links=t})),E.$public(),c(E,"$uuid",(function(){return this.uuid.$clone()})),c(E,"$uuid=",(function(e){return null==e&&(e=k),i(O("GxG")["$valid_uuid?"](e))?this.uuid=e.$to_s().$to_sym():k}),-1),c(E,"$title",(function(){return this.title.$clone()})),c(E,"$title=",(function(e){return null==e&&(e=k),i(e)?(this.title=e.$to_s()["$[]"](_(0,255,!1)),this.$increment_version()):k}),-1),c(E,"$version",(function(){return this.version.$clone()})),c(E,"$version=",(function(e){return null==e&&(e=k),i(e["$is_a?"](G("Numeric")))?this.version=e.$to_s("F").$to_d():k}),-1),c(E,"$element_version",(function(e){var t=k;return null==e&&(e=k),t=0,i(e["$is_a?"](G("Numeric")))&&(t=i(this.element_links["$[]"](e))?this.element_links["$[]"](e)["$[]"]("record")["$[]"]("version"):0),t}),-1),c(E,"$set_element_version",(function(e,t){var n=this,r=k;return null==t&&(t=k),r=!1,i(n.element_links["$[]"](e))?i(t["$is_a?"](G("Numeric")))?(n.element_links["$[]"](e)["$[]"]("record")["$[]="]("version",d(p(t.$to_f(),1e4).$to_i().$to_f(),1e4)),r=!0):n.$log_warning("Attempted to set version to an invalid version value "+t.$inspect()+" for index "+e.$inspect()+" on Object "+n.uuid.$inspect()):n.$log_warning("Attempted to set version with an invalid index "+e.$inspect()+" on Object "+n.uuid.$inspect()),r}),-2),c(E,"$constraint",(function(){return this.constraint.$clone()})),c(E,"$constraint=",(function(e){return null==e&&(e=k),i(O("GxG")["$valid_uuid?"](e))?this.constraint=e.$to_s().$to_sym():k}),-1),c(E,"$parent",f("parent")),c(E,"$parent=",(function(e){return null==e&&(e=k),i(e["$is_any?"]([G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray")]))?i(this.parent)?k:this.parent=e:k}),-1),c(E,"$get_permissions",h(k)),c(E,"$set_permissions",(function(e,t){return null==e&&(e=k),null==t&&(t=k),k}),-1),c(E,"$reservation",h(k)),c(E,"$write_permission?",h(!0)),c(E,"$write_reserved?",h(!0)),c(E,"$release_reservation",h(!0)),c(E,"$get_reservation",h(!0)),c(E,"$wait_for_reservation",(function(e){return null==e&&(e=k),!0}),-1),c(E,"$get_delegate",h(k)),c(E,"$set_delegate",(function(e){return null==e&&(e=k),k}),-1),c(E,"$increment_version",(function(){var e=this;return i(e["$alive?"]())&&i(e["$write_reserved?"]())?e.version=d(p(u(e.version,1e-4),1e4).$to_i().$to_f(),1e4):k})),c(E,"$save_version",h(k)),c(E,"$clear_constraint",(function(){var e=this;return i(e["$alive?"]())&&i(e.constraint)&&(e.constraint=k),!0})),c(E,"$constraint",(function(){return this.constraint.$clone()})),c(E,"$ufs",(function(){var e=k;return i(this.format)?(e=G(O("GxG"),"DB")["$[]"]("formats")["$[]"](this.format.$to_s().$to_sym()),i(e)?e["$[]"]("ufs").$to_s().$to_sym():""):""})),c(E,"$refresh_links",h(k)),c(E,"$initialize",(function(){var e=this;return e.uuid=G("GxG").$uuid_generate().$to_s().$to_sym(),e.title="Untitled "+e.uuid.$to_s(),e.version=0,e.constraint=k,e.parent=k,e.data=[],e.element_links=[],e})),c(E,"$inspect",(function(){var e=k;return e="[",a(this.element_links,"each_index",[],(function t(n){var r=null==t.$$s?this:t.$$s;return null==r.element_links&&(r.element_links=k),null==n&&(n=k),e=u(e,r.element_links["$[]"](n)["$[]"]("content").$inspect()),s(n,v(r.element_links.$size(),1))?k:e=u(e,", ")}),{$$s:this}),u(e,"]")})),c(E,"$alive?",h(!0)),c(E,"$db_address",h(k)),c(E,"$deactivate",h(k)),c(E,"$save",h(k)),c(E,"$destroy",h(k)),c(E,"$size",(function(){return this.element_links.$size()})),c(E,"$structure_attached?",h(!1)),c(E,"$structure_detach",h(!0)),c(E,"$[]=",(function(e,t){var r=this,o=k,$=k,l=k,c=k;if(null==e&&(e=k),null==t&&(t=k),i(r["$alive?"]())||r.$raise(O("Exception"),"Attempted to alter a defunct structure"),o=k,i(e["$is_a?"](G("Integer"))))if(i(t["$is_any?"](G(G("GxG"),"Database").$valid_field_classes()))||i(t["$is_any?"](G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray"),G("Hash"),G("Array"))))if(i(r["$write_reserved?"]())||r.$get_reservation(),i(r["$write_reserved?"]())){if(i(t["$is_any?"](G("Hash"),G("Array")))&&a(t,"search",[],(function e(t,n,r){var a=null==e.$$s?this:e.$$s;return null==t&&(t=k),null==n&&(n=k),null==r&&(r=k),i(t["$is_any?"](G(G("GxG"),"Database").$valid_field_classes()))||i(t["$is_any?"](G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray"),G("Hash"),G("Array")))?k:a.$raise(O("Exception"),"The structure you are attaching has an unpersistable item within it (not supported).")}),{$$s:r}),i(r.element_links["$[]"](e))?$="set_value":i(r.constraint)?r.$raise(O("Exception"),"Formatted - the structure cannot be altered"):$="add_value",l=new Map([["linkid",k],["content",k],["loaded",!1],["state",0],["record",new Map([["parent_uuid",r.uuid.$to_s()],["ordinal",0],["version",0],["element","element_boolean"],["element_boolean",-1],["element_integer",0],["element_float",0],["element_bigdecimal",r.$BigDecimal("0.0")],["element_datetime",G("Time").$now()],["time_offset",0],["time_prior",0],["time_after",0],["length",0],["element_text",""],["element_binary",k],["element_array",k],["element_hash",k]])]]),i(t["$is_any?"](G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray"))))l["$[]="]("content",t),l["$[]="]("loaded",!0),l["$[]="]("state",l["$[]"]("content").$hash()),l["$[]"]("record")["$[]="]("version",l["$[]"]("content").$version()),i(t["$is_a?"](G(G(G("GxG"),"Database"),"DetachedHash")))?(l["$[]"]("record")["$[]="]("element","element_hash"),l["$[]"]("record")["$[]="]("element_hash",t)):(l["$[]"]("record")["$[]="]("element","element_array"),l["$[]"]("record")["$[]="]("element_array",t));else if(i(t["$is_any?"](G("Hash"),G("Array"))))l["$[]="]("content",G(G("GxG"),"Database").$iterative_detached_persist(t)),l["$[]="]("loaded",!0),l["$[]="]("state",l["$[]"]("content").$hash()),l["$[]"]("record")["$[]="]("version",l["$[]"]("content").$version()),i(t["$is_a?"](G("Hash")))?(l["$[]"]("record")["$[]="]("element","element_hash"),l["$[]"]("record")["$[]="]("element_hash",l["$[]"]("content"))):(l["$[]"]("record")["$[]="]("element","element_array"),l["$[]"]("record")["$[]="]("element_array",l["$[]"]("content")));else switch(l["$[]"]("record")["$[]="]("element",G(G("GxG"),"Database").$element_table_for_instance(t).$to_s()),l["$[]"]("record")["$[]"]("element").valueOf()){case"element_boolean":b(n,c=t.$class())?(l["$[]"]("record")["$[]="]("element_boolean",-1),l["$[]="]("content",k)):b(G("FalseClass"),c)?(l["$[]"]("record")["$[]="]("element_boolean",0),l["$[]="]("content",!1)):b(G("TrueClass"),c)&&(l["$[]"]("record")["$[]="]("element_boolean",1),l["$[]="]("content",!0));break;case"element_integer":l["$[]"]("record")["$[]="]("element_integer",t),l["$[]="]("content",t);break;case"element_float":l["$[]"]("record")["$[]="]("element_float",t),l["$[]="]("content",t);break;case"element_bigdecimal":l["$[]"]("record")["$[]="]("element_bigdecimal",r.$BigDecimal(t.$to_s())),l["$[]="]("content",l["$[]"]("record")["$[]"]("element_bigdecimal"));break;case"element_datetime":l["$[]"]("record")["$[]="]("element_datetime",t),l["$[]="]("content",t);break;case"element_text":l["$[]"]("record")["$[]="]("element_text",t),l["$[]"]("record")["$[]="]("length",t.$size()),l["$[]="]("content",t);break;case"element_binary":s($,"set_value")&&(l["$[]"]("record")["$[]="]("version",r.element_links["$[]"](e)["$[]"]("record")["$[]"]("version")),l["$[]"]("record")["$[]="]("element_binary_uuid",r.element_links["$[]"](e)["$[]"]("record")["$[]"]("element_binary_uuid"))),l["$[]"]("record")["$[]="]("length",t.$size()),l["$[]="]("content",t);break;default:r.$raise(O("Exception"),"Unable to map an element type for value: "+t.$inspect())}switch($.valueOf()){case"set_value":i(l["$[]"]("content")["$is_a?"](r.element_links["$[]"](e)["$[]"]("content").$class()))||i([!0,!1,k]["$include?"](l["$[]"]("content")))&&i([!0,!1,k]["$include?"](r.element_links["$[]"](e)["$[]"]("content")))?(l["$[]="]("linkid",r.element_links["$[]"](e)["$[]"]("linkid")),i(l["$[]"]("content")["$is_any?"](G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray")))?l["$[]"]("record")["$[]="]("version",l["$[]"]("content").$version()):l["$[]"]("record")["$[]="]("version",d(p(u(r.element_links["$[]"](e)["$[]"]("record")["$[]"]("version").$to_f(),1e-4),1e4).$to_i().$to_f(),1e4)),l["$[]"]("record")["$[]="]("ordinal",r.element_links["$[]"](e)["$[]"]("record")["$[]"]("ordinal")),l["$[]="]("loaded",!0),l["$[]="]("state",r.element_links["$[]"](e)["$[]"]("state")),i(l["$[]"]("content")["$is_a?"](G("String")))&&r.element_links["$[]="](e,l)):(i(l["$[]"]("content")["$is_any?"](G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray")))?l["$[]"]("record")["$[]="]("version",l["$[]"]("content").$version()):l["$[]"]("record")["$[]="]("version",d(p(u(r.element_links["$[]"](e)["$[]"]("record")["$[]"]("version").$to_f(),1e-4),1e4).$to_i().$to_f(),1e4)),l["$[]"]("record")["$[]="]("ordinal",r.element_links["$[]"](e)["$[]"]("record")["$[]"]("ordinal")),l["$[]="]("loaded",!0),r.element_links["$[]="](e,l));break;case"add_value":i(l["$[]"]("content")["$is_any?"](G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray")))?l["$[]"]("record")["$[]="]("version",l["$[]"]("content").$version()):l["$[]"]("record")["$[]="]("version",0),l["$[]"]("record")["$[]="]("ordinal",r.element_links.$size()),l["$[]="]("loaded",!0),r.element_links["$[]="](e,l)}i(r.element_links["$[]"](e)["$[]"]("content")["$is_any?"](G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray")))&&r.element_links["$[]"](e)["$[]"]("content")["$parent="](r),r.$increment_version(),o=r.element_links["$[]"](e)["$[]"]("content")}else r.$raise(O("Exception"),"You do not have sufficient privileges to make this change. (write-reservation)");else r.$raise(O("Exception"),"The value is not persistable.");else r.$raise(O("Exception"),"You must provide a index in the form of an Integer.");return o}),-1),c(E,"$[]",(function(e){var t=this,n=k;return null==e&&(e=k),n=k,i(t["$alive?"]())?i(e["$is_a?"](G("Integer")))?i(t.element_links["$[]"](e))&&(n=t.element_links["$[]"](e)["$[]"]("content")):t.$raise(O("ArgumentError"),"You must specify with an Integer, not a "+e.$class().$inspect()):t.$raise(O("Exception"),"Attempted to access a defunct structure"),n}),-1),c(E,"$delete_at",(function(e){var t=this,n=k,r=k;return null==e&&(e=k),n=k,i(t["$alive?"]())?i(e["$is_a?"](G("Integer")))?i(t["$write_reserved?"]())?i(t.element_links["$[]"](e))&&(n=t["$[]"](e),r=t.element_links.$delete_at(e),i(r["$[]"]("content")["$is_any?"](G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray")))&&r["$[]"]("content").$save(),t.$increment_version()):t.$raise(O("Exception"),"You do not have sufficient privileges to make this change"):t.$raise(O("ArgumentError"),"You must specify with a Symbol, not a "+t.$key().$class().$inspect()):t.$raise(O("Exception"),"Attempted to access a defunct structure"),n}),-1),c(E,"$<<",(function(e){var t,n;return t=y(arguments),i($((n=t).$size(),0))&&a(n,"each",[],(function e(t){var n,r=null==e.$$s?this:e.$$s;return null==r.element_links&&(r.element_links=k),null==t&&(t=k),n=[r.element_links.$size(),t],a(r,"[]=",n),n[n.length-1]}),{$$s:this}),this}),-1),c(E,"$push",(function(e){var t,n;return t=y(arguments),i($((n=t).$size(),0))&&a(n,"each",[],(function e(t){return null==t&&(t=k),(null==e.$$s?this:e.$$s)["$<<"](t)}),{$$s:this}),this}),-1),c(E,"$pop",(function(){return this.$delete_at(v(this.element_links.$size(),1))})),c(E,"$shift",(function(){return this.$delete_at(0)})),c(E,"$insert",(function(e,t){var n=this,r=k;return null==e&&(e=k),null==t&&(t=k),i(G(G("GxG"),"Database")["$persistable?"](t))&&(r=new Map([["linkid",k],["content",k],["loaded",!1],["state",0],["record",new Map([["parent_uuid",n.uuid.$to_s()],["ordinal",0],["version",n.$BigDecimal("0.0")],["element","element_boolean"],["element_boolean",-1],["element_integer",0],["element_float",0],["element_bigdecimal",n.$BigDecimal("0.0")],["element_datetime",G("DateTime").$now()],["time_offset",0],["time_prior",0],["time_after",0],["length",0],["element_text",""],["element_text_uuid",""],["element_binary_uuid",""],["element_array_uuid",""],["element_hash_uuid",""]])]]),e=e.$to_i(),i(w(e,0))&&(e=v(n.$size(),e)),s(e,0)?(r["$[]"]("record")["$[]="]("ordinal",e),n.element_links.$unshift(r),n.$refresh_ordinals(),n["$[]="](0,t)):i($(e,v(n.$size(),1)))?n.$push(t):(r["$[]"]("record")["$[]="]("ordinal",e),n.element_links.$insert(e,r),n.$refresh_ordinals(),n["$[]="](e,t))),n}),-1),c(E,"$unshift",(function(e){return null==e&&(e=k),this.$insert(0,e)}),-1),c(E,"$swap",(function(t,n){var r=this,a=k,s=k;return null==t&&(t=k),null==n&&(n=k),a=!1,i(t)&&i(n)&&i(e.Range.$new(0,v(r.$size(),1),!1)["$include?"](t.$to_i()))&&i(e.Range.$new(0,v(r.$size(),1),!1)["$include?"](n.$to_i()))&&m(t.$to_i(),n.$to_i())&&(s=r.element_links["$[]"](t),r.element_links["$[]="](t,r.element_links["$[]"](n)),r.element_links["$[]="](n,s),a=!0),a}),-1),c(E,"$include?",(function(e){var t=this,n=k;return n=!1,function(){try{var r=o("break");return a(t.element_links,"each",[],(function t(i){if(null==i&&(i=k),!s(i["$[]"]("content"),e))return k;n=!0,r.$throw(k,t.$$is_lambda)}))}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}}(),n})),c(E,"$find_index",(function(e){var t=this,n=k;return n=k,function(){try{var r=o("break");return a(t.element_links,"each_with_index",[],(function t(i,a){if(null==i&&(i=k),null==a&&(a=k),!s(i["$[]"]("content"),e))return k;n=a,r.$throw(k,t.$$is_lambda)}))}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}}(),n})),c(E,"$export",(function(e){var t=this,n=k,r=k,o=k,u=k,l=k,c=k,_=k;if(null==e&&(e=new Map([["exclude_file_segments",!1]])),i(t["$alive?"]()))for(n=i(r=e["$[]"]("exclude_file_segments"))&&r,o=s(e["$[]"]("clone"),!0)?new Map([["type","element_array"],["uuid",O("GxG").$uuid_generate().$to_s().$to_sym()],["title",t.title.$clone()],["version",t.version.$clone()],["content",[]]]):new Map([["type","element_array"],["uuid",t.uuid.$clone()],["title",t.title.$clone()],["version",t.version.$clone()],["constraint",t.constraint.$clone()],["content",[]]]),u=[new Map([["parent",k],["parent_selector",k],["object",t],["record",o]])],l=a(O("Proc"),"new",[],(function(e){var t=k;return null==e&&(e=k),t=[],a(u,"each",[],(function(n){return null==n&&(n=k),s(n["$[]"]("parent").$object_id(),e.$object_id())?t["$<<"](n):k})),t}),-1),a(t,"search",[],(function(t,a,o){var $=k,l=k,c=k;if(null==t&&(t=k),null==a&&(a=k),null==o&&(o=k),i(t["$is_a?"](G(G(G("GxG"),"Database"),"DetachedHash")))&&($=s(e["$[]"]("clone"),!0)?O("GxG").$uuid_generate().$to_s().$to_sym():t.$uuid().$clone(),s(n,!0)&&(s(a,"file_segments")||s(a,"segments")||s(a,"portions"))?u["$<<"](new Map([["parent",o],["parent_selector",a.$clone()],["object",new Map],["record",new Map([["type","element_hash"],["uuid",$],["title",t.$title().$clone()],["version",t.$version().$clone()],["format",t.$format().$clone()],["content",new Map]])]])):u["$<<"](new Map([["parent",o],["parent_selector",a.$clone()],["object",t],["record",new Map([["type","element_hash"],["uuid",$],["title",t.$title().$clone()],["version",t.$version().$clone()],["format",t.$format().$clone()],["content",new Map]])]]))),i(t["$is_a?"](G(G(G("GxG"),"Database"),"DetachedArray")))&&($=s(e["$[]"]("clone"),!0)?O("GxG").$uuid_generate().$to_s().$to_sym():t.$uuid().$clone(),s(n,!0)&&(s(a,"file_segments")||s(a,"segments")||s(a,"portions"))?u["$<<"](new Map([["parent",o],["parent_selector",a.$clone()],["object",[]],["record",new Map([["type","element_array"],["uuid",$],["title",t.$title().$clone()],["version",t.$version().$clone()],["constraint",t.$constraint().$clone()],["content",[]]])]])):u["$<<"](new Map([["parent",o],["parent_selector",a.$clone()],["object",t],["record",new Map([["type","element_array"],["uuid",$],["title",t.$title().$clone()],["version",t.$version().$clone()],["constraint",t.$constraint().$clone()],["content",[]]])]]))),i(t["$is_any?"](G(G("GxG"),"Database").$valid_field_classes()))){switch((l=G(O("GxG"),"Database").$element_table_for_instance(t)).valueOf()){case"element_bigdecimal":case"element_text":c=t.$to_s();break;case"element_datetime":c=t.$iso8601().$to_s();break;case"element_binary":c=t.$to_s().$encode64();break;default:c=t}return u["$<<"](new Map([["parent",o],["parent_selector",a.$clone()],["object",t],["record",new Map([["type",l],["version",i(r=o.$version(a))?r:0],["content",c]])]]))}return k})),c=[u["$[]"](0)];i($(c.$size(),0));)_=c.$shift(),a(l.$call(_["$[]"]("object")),"each",[],(function(e){return null==e&&(e=k),_["$[]"]("record")["$[]"]("content")["$[]="](e["$[]"]("parent_selector"),e["$[]"]("record")),i(e["$[]"]("object")["$is_any?"](G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray")))?c["$<<"](e):k}));else o=k;return o}),-1),c(E,"$sync_export",(function(e){return null==e&&(e=new Map),this.$save()}),-1),c(E,"$first",(function(){return i($(this.element_links.$size(),0))?this["$[]"](0):k})),c(E,"$last",(function(){var e=this;return i($(e.element_links.$size(),0))?e["$[]"](v(e.element_links.$size(),1)):k})),c(E,"$each",(function e(){var t=e.$$p||k,n=this;return e.$$p=null,i(t["$respond_to?"]("call"))?(n.$load_element_links(),i($(n.element_links.$size(),0))&&a(n.element_links,"each_index",[],(function e(n){var r=null==e.$$s?this:e.$$s;return null==n&&(n=k),t.$call(r["$[]"](n))}),{$$s:n}),n):n.$to_enum("each")})),c(E,"$each_index",(function e(){var t=e.$$p||k,n=this;return e.$$p=null,i(t["$respond_to?"]("call"))?(n.$load_element_links(),i($(n.element_links.$size(),0))&&a(n.element_links,"each_index",[],(function(e){return null==e&&(e=k),t.$call(e)})),n):n.$to_enum("each_index")})),c(E,"$each_with_index",(function e(t){var n=e.$$p||k,r=this;return e.$$p=null,null==t&&(t=0),i(n["$respond_to?"]("call"))?(r.$load_element_links(),i($(r.element_links.$size(),0))&&a(r.element_links.$to_enum("each").$with_index(t),"each",[],(function e(t,r){var i=null==e.$$s?this:e.$$s;return null==t&&(t=k),null==r&&(r=k),n.$call(i["$[]"](r),r)}),{$$s:r}),r):r.$to_enum("each_with_index",t)}),-1),c(E,"$iterative",(function t(n){var r=t.$$p||k,o=this,u=k,l=k,c=k,_=k,d=k,p=k,f=k,h=k,g=k;t.$$p=null,null==n&&(n=new Map([["include_inactive",!0]])),u=[],l=a(O("Proc"),"new",[],(function(e,t){var r=k,s=k;if(null==e&&(e=k),null==t&&(t=[]),r=[],i(e))for(r["$<<"](new Map([["parent",k],["parent_selector",k],["object",e]]));i($(r.$size(),0));)s=r.$shift(),i(s["$[]"]("object")["$is_a?"](G(G(G("GxG"),"Database"),"DetachedHash")))&&(i(s["$[]"]("object")["$alive?"]())?a(s["$[]"]("object"),"each_pair",[],(function(e,t){return null==e&&(e=k),null==t&&(t=k),r["$<<"](new Map([["parent",s["$[]"]("object")],["parent_selector",e],["object",t]]))})):i(n["$[]"]("include_inactive"))&&t["$<<"](s)),i(s["$[]"]("object")["$is_a?"](G(G(G("GxG"),"Database"),"DetachedArray")))&&(i(s["$[]"]("object")["$alive?"]())?a(s["$[]"]("object"),"each_with_index",[],(function(e,t){return null==e&&(e=k),null==t&&(t=k),r["$<<"](new Map([["parent",s["$[]"]("object")],["parent_selector",t],["object",e]]))})):i(n["$[]"]("include_inactive"))&&t["$<<"](s)),(i(s["$alive?"]())||i(n["$[]"]("include_inactive")))&&t["$<<"](s);return t}),-1),c=a(O("Proc"),"new",[],(function(e,t){var n=k;return null==e&&(e=[]),null==t&&(t=k),n=[],a(e,"each",[],(function(e){return null==e&&(e=k),s(e["$[]"]("parent").$object_id(),t.$object_id())?n["$<<"](e):k})),n}),-1);try{if(_=l.$call(o,[]),d=c.$call(_,o),i(r["$respond_to?"]("call")))for(;i($(d.$size(),0));)p=d.$shift(),s(p["$[]"]("object").$object_id(),o.$object_id())||(f=r.$call(p["$[]"]("object"),p["$[]"]("parent_selector"),p["$[]"]("parent")),i(f)&&u["$<<"](f)),m(p["$[]"]("object").$object_id(),k.$object_id())&&(h=c.$call(_,p["$[]"]("object")),a(h,"each",[],(function(e){return null==e&&(e=k),d["$<<"](e)})))}catch(t){if(!e.rescue(t,[O("Exception")]))throw t;g=t;try{o.$log_error(new Map([["error",g],["parameters",new Map]]))}finally{e.pop_exception(t)}}return u}),-1),g(E,"process","iterative"),c(E,"$process!",(function e(t){var n=e.$$p||k;return e.$$p=null,null==t&&(t=new Map([["include_inactive",!0]])),a(this,"iterative",[t],n.$to_proc()),this}),-1),c(E,"$search",(function e(t){var n=e.$$p||k,r=k;return e.$$p=null,null==t&&(t=new Map([["include_inactive",!0]])),r=[],i(n["$respond_to?"]("call"))&&(r=a(this,"iterative",[t],n.$to_proc())),r}),-1),c(E,"$paths_to",(function(e,t){var n=k,r=k,u=k,l=k,c=k,d=k,p=k;return null==e&&(e=k),null==t&&(t=""),n=[],s(t["$[]"](0),"/")||(t="/"["$<<"](t)),r=i($(t.$size(),1))?t.$split("/")["$[]"](_(1,-1,!1)).$reverse():[],u=this.$get_at_path(t),l=[new Map([["selector",k],["container",u]])],c=a(O("Proc"),"new",[],(function(e){var t=k;return null==e&&(e=k),t=k,function(){try{var n=o("break");return a(l,"each_with_index",[],(function r(i,a){if(null==i&&(i=k),null==a&&(a=k),!s(i["$[]"]("container"),e))return k;t=i,n.$throw(k,r.$$is_lambda)}))}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}(),t})),d=u,p=!1,i(u["$is_any?"](G("Hash"),G("Array"),G("Struct"),G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray")))?a(u,"process!",[],(function(t,a,o){var $=k,u=k;return null==t&&(t=k),null==a&&(a=k),null==o&&(o=k),m(d.$object_id(),o.$object_id())&&($=c.$call(o),i($)&&(r=$["$[]"]("prefix").$split("/").$reverse(),s(r.$size(),0)&&r["$<<"]("")),d=o),(u=a.$to_s())["$gsub!"]("/","%2f"),r.$unshift(u),p=!1,s(t,e)&&(p=!0),i(p)&&n["$<<"]("/"["$<<"](r.$reverse().$join("/"))),i(t["$is_any?"](G("Array"),G("Hash"),G("Struct"),G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray")))&&l.$unshift(new Map([["selector",a],["container",t],["prefix",r.$reverse().$join("/")]])),r.$shift(),k})):n["$<<"]("/"["$<<"](r.$join("/"))),n}),-1),c(E,"$get_at_path",(function(e){var t=k,n=k,r=k;return null==e&&(e="/"),t=k,s(e,"/")?t=this:(n=[this],r=e.$split("/"),function(){try{var e=o("break");return a(r.$to_enum(),"each",[],(function r(a){var o=k;return null==a&&(a=k),o=k,i($(a.$size(),0))&&(s(a["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?o=a.$to_i():((o=a.$to_s())["$gsub!"]("%2f","/"),o=o.$to_sym())),i(o)?(t=n.$first()["$[]"](o),i(t["$is_a?"](O("NilClass")))?void e.$throw(k,r.$$is_lambda):n.$unshift(t)):k}))}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),t}),-1),c(E,"$set_at_path",(function(e,t){var n=k,r=k,a=k,o=k;return null==e&&(e="/"),null==t&&(t=k),n=k,m(e,"/")&&(r=this.$get_at_path(G("File").$dirname(e)),i(r)&&(a=G("File").$basename(e),o=k,i($(a.$size(),0))&&(s(a["$=~"](/^(?:[0-9])*[0-9](?:[0-9])*$/),0)?o=a.$to_i():((o=a.$to_s())["$gsub!"]("%2f","/"),o=o.$to_sym())),i(o)&&(r["$[]="](o,t),n=r["$[]"](o)))),n}),-1),c(E,"$unpersist",(function(){var e,t=this,n=k,r=k,o=k,u=k;if(e=[],i(t["$alive?"]()))for(n=[new Map([["parent",k],["parent_selector",k],["object",t],["record",e]])],r=a(O("Proc"),"new",[],(function(e){var t=k;return null==e&&(e=k),t=[],a(n,"each",[],(function(n){return null==n&&(n=k),s(n["$[]"]("parent").$object_id(),e.$object_id())?t["$<<"](n):k})),t}),-1),a(t,"search",[],(function(e,t,r){return null==e&&(e=k),null==t&&(t=k),null==r&&(r=k),i(e["$is_a?"](G(G(G("GxG"),"Database"),"DetachedHash")))?n["$<<"](new Map([["parent",r],["parent_selector",t.$clone()],["object",e],["record",new Map]])):i(e["$is_a?"](G(G(G("GxG"),"Database"),"DetachedArray")))?n["$<<"](new Map([["parent",r],["parent_selector",t.$clone()],["object",e],["record",[]]])):n["$<<"](new Map([["parent",r],["parent_selector",t.$clone()],["object",e],["record",e]]))})),o=[n["$[]"](0)];i($(o.$size(),0));)u=o.$shift(),a(r.$call(u["$[]"]("object")),"each",[],(function(e){return null==e&&(e=k),u["$[]"]("record")["$[]="](e["$[]"]("parent_selector"),e["$[]"]("record")),i(e["$[]"]("object")["$is_any?"](G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"DetachedArray")))?o["$<<"](e):k}));return e}))}(O[0],0,O),l(O[0],G(G(G("GxG"),"Database"),"DetachedArray"),"PeristedArray"),function(t,n,s){var o=l(t,n,"PeristedHash"),u=[o].concat(s),c=e.$r(u);r(o,"$import",(function(e){var t,n=this,r=k,s=k;for(null==e&&(e=k),k,i(e["$is_any?"](G("Hash"),G(G(G("GxG"),"Database"),"DetachedHash"),G(G(G("GxG"),"Database"),"PersistedHash")))||n.$raise(c("Exception"),"Malformed import record passed."),t=(r=[new Map([["target",G(G(G("GxG"),"Database"),"PersistedHash").$new()],["record",e]])])["$[]"](0)["$[]"]("target");i($(r.$size(),0));)switch((s=r.$shift())["$[]"]("record")["$[]"]("type").$to_s().$to_sym().valueOf()){case"element_hash":s["$[]"]("target")["$uuid="](s["$[]"]("record")["$[]"]("uuid").$to_s().$to_sym()),s["$[]"]("target")["$title="](s["$[]"]("record")["$[]"]("title").$to_s()),a(s["$[]"]("record")["$[]"]("content").$keys(),"each",[],(function e(t){var n,i=null==e.$$s?this:e.$$s,o=k;switch(null==t&&(t=k),s["$[]"]("record")["$[]"]("content")["$[]"](t)["$[]"]("type").$to_s().$to_sym().valueOf()){case"element_hash":return o=G(G(c("GxG"),"Database"),"PersistedHash").$new(),s["$[]"]("target")["$[]="](t,o),r["$<<"](new Map([["target",o],["record",s["$[]"]("record")["$[]"]("content")["$[]"](t)]])),n=[s["$[]"]("target")],a(s["$[]"]("target")["$[]"](t),"parent=",n),n[n.length-1];case"element_array":return o=G(G(c("GxG"),"Database"),"PersistedArray").$new(),s["$[]"]("target")["$[]="](t,o),r["$<<"](new Map([["target",o],["record",s["$[]"]("record")["$[]"]("content")["$[]"](t)]])),n=[s["$[]"]("target")],a(s["$[]"]("target")["$[]"](t),"parent=",n),n[n.length-1];case"element_boolean":case"element_integer":case"element_float":case"element_text":return n=[t,s["$[]"]("record")["$[]"]("content")["$[]"](t)["$[]"]("content")],a(s["$[]"]("target"),"[]=",n),n[n.length-1];case"element_bigdecimal":return n=[t,i.$BigDecimal(s["$[]"]("record")["$[]"]("content")["$[]"](t)["$[]"]("content").$to_s())],a(s["$[]"]("target"),"[]=",n),n[n.length-1];case"element_datetime":return n=[t,G("Chronic").$parse(s["$[]"]("record")["$[]"]("content")["$[]"](t)["$[]"]("content").$to_s())],a(s["$[]"]("target"),"[]=",n),n[n.length-1];case"element_binary":return n=[t,G(G("GxG"),"ByteArray").$new(s["$[]"]("record")["$[]"]("content")["$[]"](t)["$[]"]("content").$to_s().$decode64())],a(s["$[]"]("target"),"[]=",n),n[n.length-1];default:return k}}),{$$s:n}),s["$[]"]("target")["$version="](n.$BigDecimal(s["$[]"]("record")["$[]"]("version").$to_s())),s["$[]"]("target")["$format="](s["$[]"]("record")["$[]"]("format").$to_s().$to_sym());break;case"element_array":s["$[]"]("target")["$uuid="](s["$[]"]("record")["$[]"]("uuid").$to_s().$to_sym()),s["$[]"]("target")["$title="](s["$[]"]("record")["$[]"]("title").$to_s()),a(s["$[]"]("record")["$[]"]("content"),"each_index",[],(function e(t){var n,i=null==e.$$s?this:e.$$s,o=k;switch(null==t&&(t=k),s["$[]"]("record")["$[]"]("content")["$[]"](t)["$[]"]("type").$to_s().$to_sym().valueOf()){case"element_hash":return o=G(G(c("GxG"),"Database"),"PersistedHash").$new(),s["$[]"]("target")["$[]="](t,o),r["$<<"](new Map([["target",o],["record",s["$[]"]("record")["$[]"]("content")["$[]"](t)]])),n=[s["$[]"]("target")],a(s["$[]"]("target")["$[]"](t),"parent=",n),n[n.length-1];case"element_array":return o=G(G(c("GxG"),"Database"),"PersistedArray").$new(),s["$[]"]("target")["$[]="](t,o),r["$<<"](new Map([["target",o],["record",s["$[]"]("record")["$[]"]("content")["$[]"](t)]])),n=[s["$[]"]("target")],a(s["$[]"]("target")["$[]"](t),"parent=",n),n[n.length-1];case"element_boolean":case"element_integer":case"element_float":case"element_text":return n=[t,s["$[]"]("record")["$[]"]("content")["$[]"](t)["$[]"]("content")],a(s["$[]"]("target"),"[]=",n),n[n.length-1];case"element_bigdecimal":return n=[t,i.$BigDecimal(s["$[]"]("record")["$[]"]("content")["$[]"](t)["$[]"]("content").$to_s())],a(s["$[]"]("target"),"[]=",n),n[n.length-1];case"element_datetime":return n=[t,G("Chronic").$parse(s["$[]"]("record")["$[]"]("content")["$[]"](t)["$[]"]("content").$to_s())],a(s["$[]"]("target"),"[]=",n),n[n.length-1];case"element_binary":return n=[t,G(G("GxG"),"ByteArray").$new(s["$[]"]("record")["$[]"]("content")["$[]"](t)["$[]"]("content").$to_s().$decode64())],a(s["$[]"]("target"),"[]=",n),n[n.length-1];default:return k}}),{$$s:n}),s["$[]"]("target")["$version="](n.$BigDecimal(s["$[]"]("record")["$[]"]("version").$to_s())),s["$[]"]("target")["$constraint="](s["$[]"]("record")["$[]"]("constraint").$to_s().$to_sym())}return t}),-1)}(O[0],G(G(G("GxG"),"Database"),"DetachedHash"),O)})(S[0],S)}(x[0],x),function(t,n,r){var i=l(t,null,"Array"),a=[i].concat(r),s=e.$r(a);c(i,"$persist",(function(){return G(s("GxG"),"Database").$iterative_detached_persist(this)}))}(x[0],0,x),function(t,n,r){var i=l(t,null,"Hash"),a=[i].concat(r),s=e.$r(a);return c(i,"$persist",(function(){return G(s("GxG"),"Database").$iterative_detached_persist(this)}))}(x[0],0,x)},Opal.modules["web/gxg_libraries"]=function(Opal){var $module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$eqeq=Opal.eqeq,$rb_gt=Opal.rb_gt,$def=Opal.def,$return_ivar=Opal.return_ivar,$thrower=Opal.thrower,$nesting=[],nil=Opal.nil,$$$=Opal.$$$;return Opal.add_stubs("is_a?,raise,uuid,title,version,to_s,[],each,library_loaded?,<<,load_libraries,==,>,size,loaded?,base64?,decode64,set_script,instance_eval,log_error,to_sym,the_refrence"),$module($nesting[0],"Libraries"),function($base,$parent_nesting){var self=$module($base,"GxG"),$nesting=[self].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"Library"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.local=$proto.source=$proto.type=$proto.global=nil,$def(self,"$initialize",(function(e){var t=this,n=nil,r=nil;return null==e&&(e=nil),$truthy(e["$is_a?"]($$$($$$($$("GxG"),"Database"),"PersistedHash")))||t.$raise($$("ArgumentError"),"You MUST provide a persisted source object."),t.uuid=e.$uuid(),t.title=e.$title(),t.version=e.$version(),t.type=($truthy(n=e["$[]"]("type"))?n:"text/javascript").$to_s(),r=[],$truthy(e["$[]"]("requirements")["$is_a?"]($$$($$$($$$("GxG"),"Database"),"PersistedArray")))&&$send(e["$[]"]("requirements"),"each",[],(function(e){return null==e&&(e=nil),$truthy($$$($$("GxG"),"DISPLAY_DETAILS")["$[]"]("object")["$library_loaded?"](e))?nil:r["$<<"](e)})),$send($$$($$("GxG"),"DISPLAY_DETAILS")["$[]"]("object"),"load_libraries",[r],(function t(r){var i=null==t.$$s?this:t.$$s,a=nil,s=nil,o=nil,$=nil,u=nil;if(null==i.src&&(i.src=nil),null==i.local&&(i.local=nil),null==i.global&&(i.global=nil),null==i.uuid&&(i.uuid=nil),null==i.type&&(i.type=nil),null==i.charset&&(i.charset=nil),null==i.source&&(i.source=nil),null==i.title&&(i.title=nil),null==r&&(r=nil),$eqeq(r,!0)){var l;if(i.src=e["$[]"]("options")["$[]"]("src").$to_s(),$truthy($rb_gt(i.src.$size(),0))||(i.src=nil),i.charset=($truthy(n=e["$[]"]("options")["$[]"]("charset"))?n:"utf-8").$to_s(),i.local=e["$[]"]("options")["$[]"]("local"),$truthy(i.local)||(i.local=!1),i.global=e["$[]"]("options")["$[]"]("global").$to_s(),$truthy($rb_gt(i.global.$size(),0))||(i.global=nil),!$truthy(i["$loaded?"]()))if($truthy($rb_gt(i.global.$to_s().$size(),0))||($truthy(i.type="text/javascript")?i.global="Opal":i.global="GxG"),$truthy(i.src["$is_a?"]($$$("String"))))a=i.uuid,s=i.type,o=i.charset,$=i.src,(l=document.createElement("script")).id=a,l.type=s,l.charset=o,l.src=$,document.body.appendChild(l);else if(u=e["$[]"]("options")["$[]"]("native").$to_s(),$truthy(u["$is_a?"]($$$("String"))))if($truthy($rb_gt(u.$size(),0)))$truthy(u["$base64?"]())&&(u=u.$to_s().$decode64()),a=i.uuid,s=i.type,o=i.charset,(l=document.createElement("script")).id=a,l.type=s,l.charset=o,l.innerHTML=u,document.body.appendChild(l);return i.source=e,i.$set_script(i.source["$[]"]("script").$to_s()),i.source=nil}return i.$raise($$("Exception"),"Library load error - skipping library intitialization: "+i.title)}),{$$s:t}),t}),-1),$def(self,"$uuid",$return_ivar("uuid")),$def(self,"$title",$return_ivar("title")),$def(self,"$version",$return_ivar("version")),$def(self,"$type",$return_ivar("type")),$def(self,"$local",$return_ivar("local")),$def(self,"$global",$return_ivar("global")),$def(self,"$set_script",(function $$set_script(the_script_body){try{var $a,self=this,result=nil,the_error=nil;if(null==the_script_body&&(the_script_body=""),result=!1,$truthy($rb_gt(the_script_body.$size(),0)))try{$truthy(the_script_body["$base64?"]())&&(the_script_body=the_script_body.$decode64()),$eqeq(self.local,!0)?self.$instance_eval(the_script_body):($a=the_script_body,"function"==typeof Opal.compile?eval(Opal.compile($a,{scope_variables:["result","the_script_body"],arity_check:!1,file:"(eval)",eval:!0})):self.$eval($a)),result=!0}catch(e){if(!Opal.rescue(e,[$$("Exception")]))throw e;the_error=e;try{self.$log_error(new Map([["error",the_error],["parameters",new Map([["script",the_script_body]])]]))}finally{Opal.pop_exception(e)}}return result}catch(e){if(e===Opal.t_eval_return)return e.$v;throw e}}),-1),$def(self,"$require_resource",(function(e){var t=this,n=nil;return null==e&&(e=nil),n=!1,$truthy(t.source)&&function(){try{var r=$thrower("break");return $send(t.source["$[]"]("content"),"each",[],(function t(i){var a=null==t.$$s?this:t.$$s;if(null==i&&(i=nil),!$eqeq(i.$title(),e)&&!$eqeq(i.$uuid(),a.$the_refrence().$to_s().$to_sym())||!$eqeq(i["$[]"]("component").$to_s(),"script")||!$eqeq(i["$[]"]("type").$to_s(),"text/ruby"))return nil;a.$set_script(i["$[]"]("script").$to_s()),n=!0,r.$throw(nil,t.$$is_lambda)}),{$$s:t})}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}}(),n}),-1),$def(self,"$require_module_resource",(function $$require_module_resource(the_reference){try{var self=this,result=nil;return null==the_reference&&(the_reference=nil),result=!1,$truthy(self.source)&&function(){try{var $t_break=$thrower("break");return $send(self.source["$[]"]("content"),"each",[],(function $$4(the_script){var $a,$b,self=null==$$4.$$s?this:$$4.$$s;return null==the_script&&(the_script=nil),($eqeq(the_script.$title(),the_reference)||$eqeq(the_script.$uuid(),self.$the_refrence().$to_s().$to_sym()))&&$eqeq(the_script["$[]"]("component").$to_s(),"script")&&$eqeq(the_script["$[]"]("type").$to_s(),"text/ruby")&&$truthy($rb_gt(the_script["$[]"]("script").$size(),0))?($truthy(the_script["$[]"]("script")["$base64?"]())?($a=the_script["$[]"]("script").$to_s().$decode64(),"function"==typeof Opal.compile?eval(Opal.compile($a,{scope_variables:["the_script","result","the_reference"],arity_check:!1,file:"(eval)",eval:!0})):self.$eval($a)):($b=the_script["$[]"]("script").$to_s(),"function"==typeof Opal.compile?eval(Opal.compile($b,{scope_variables:["the_script","result","the_reference"],arity_check:!1,file:"(eval)",eval:!0})):self.$eval($b)),result=!0,void $t_break.$throw(nil,$$4.$$is_lambda)):nil}),{$$s:self})}catch(e){if(e===$t_break)return e.$v;throw e}finally{$t_break.is_orphan=!0}}(),result}catch(e){if(e===Opal.t_eval_return)return e.$v;throw e}}),-1),$def(self,"$loaded?",(function $Library_loaded$ques$5(){try{var $a,self=this;return $eqeq(self.type,"text/javascript")?!!$truthy(window.hasOwnProperty(self.global.$to_s())):!!$truthy(self.global)&&!!$truthy(($a="defined? "+self.global.$to_s(),"function"==typeof Opal.compile?eval(Opal.compile($a,{scope_variables:[],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],null,$nesting)}($nesting[0],$nesting)},Opal.modules["web/gxg_applications"]=function(e){var t=e.module,n=e.klass,r=e.truthy,i=e.send,a=e.eqeq,s=e.rb_gt,o=e.def,$=e.thrower,u=e.return_ivar,l=[],c=e.nil,_=e.$$$;return e.add_stubs("[],is_a?,[]=,to_sym,to_s,uuid,each,base64?,decode64,json?,parse,process_import,log_error,title,unpersist,==,is_any?,library_loaded?,<<,load_libraries,get_library,>,size,instance_eval,log_warn,the_refrence,get_resource,app_state_pull,app_state_push,values,delete,search,respond_to?,downcase,to_proc,method,element,call,state_pull,application_close,inspect,valid_uuid?,get_window,keys,find_child,set_application,unlink_viewport,unlink_window,window_close,exit,get_viewport,gxg_each_child,destroy"),function(l,d){var p=[t(l,"GxG")].concat(d);return function(t,l,d){var p=n(t,null,"Application"),f=[p].concat(d),h=e.$r(f),m=p.$$prototype;return m.viewports=m.windows=m.definition=m.process=m.state=m.libraries=m.event_handlers=m.event_listeners=c,o(p,"$initialize",(function(t){var n=this,o=c,$=c,u=c,l=c;if(null==t&&(t=new Map),n.process=t["$[]"]("application"),n.definition=t["$[]"]("source"),n.title="Untitled",n.state=r(o=t["$[]"]("state"))?o:new Map,n.viewports=new Map,r(t["$[]"]("viewport")["$is_a?"](_(_(_("GxG"),"Gui"),"ApplicationViewport")))&&n.viewports["$[]="](t["$[]"]("viewport").$uuid().$to_s().$to_sym(),t["$[]"]("viewport")),r(t["$[]"]("viewports")["$is_a?"](_("Array")))&&i(t["$[]"]("viewports"),"each",[],(function e(t){var n,a=null==e.$$s?this:e.$$s;return null==a.viewports&&(a.viewports=c),null==t&&(t=c),r(t["$is_a?"](_(_(_("GxG"),"Gui"),"ApplicationViewport")))?(n=[t.$uuid().$to_s().$to_sym(),t],i(a.viewports,"[]=",n),n[n.length-1]):c}),{$$s:n}),n.windows=new Map,r(t["$[]"]("window")["$is_a?"](_(_(_("GxG"),"Gui"),"Window")))&&n.windows["$[]="](t["$[]"]("window").$uuid().$to_s().$to_sym(),t["$[]"]("window")),r(t["$[]"]("windows")["$is_a?"](_("Array")))&&i(t["$[]"]("windows"),"each",[],(function e(t){var n,a=null==e.$$s?this:e.$$s;return null==a.windows&&(a.windows=c),null==t&&(t=c),r(t["$is_a?"](_(_(_("GxG"),"Gui"),"Window")))?(n=[t.$uuid().$to_s().$to_sym(),t],i(a.windows,"[]=",n),n[n.length-1]):c}),{$$s:n}),n.libraries=new Map,n.event_handlers=new Map,n.event_listeners=new Map,n.credentialed=r(o=t["$[]"]("credentialed"))&&o,n.unique=!r(o=t["$[]"]("unique"))||o,n.location=t["$[]"]("location"),n.heap=new Map,r(n.definition["$is_a?"](_("String")))&&(r(n.definition["$base64?"]())&&(n.definition=n.definition.$decode64()),r(n.definition["$json?"]())))try{n.definition=_("JSON").$parse(n.definition,new Map([["symbolize_names",!0]])),n.definition=_(_("GxG"),"Database").$process_import(n.definition)}catch(t){if(!e.rescue(t,[h("Exception")]))throw t;$=t;try{n.$log_error(new Map([["error",$],["parameters",new Map([["definition",n.definition]])]]))}finally{e.pop_exception(t)}}return r(n.definition["$is_a?"](_(_(_("GxG"),"Database"),"DetachedHash")))&&(n.title=n.definition.$title(),u=n.definition["$[]"]("options").$unpersist(),a(u["$[]"]("credentialed"),!0)?n.credentialed=!0:n.credentialed=!1,a(u["$[]"]("unique"),!0)?n.unique=!0:n.unique=!1),r(n.definition["$is_any?"](_(_(_("GxG"),"Database"),"DetachedHash"),_(_(_("GxG"),"Database"),"DetachedHash")))&&(l=[],r(n.definition["$[]"]("requirements")["$is_any?"](_(_(_("GxG"),"Database"),"DetachedArray"),_(_(_("GxG"),"Database"),"PersistedArray")))&&i(n.definition["$[]"]("requirements"),"each",[],(function(e){return null==e&&(e=c),r(_(h("GxG"),"DISPLAY_DETAILS")["$[]"]("object")["$library_loaded?"](e))?c:l["$<<"](e)})),i(_(h("GxG"),"DISPLAY_DETAILS")["$[]"]("object"),"load_libraries",[l],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.definition&&(n.definition=c),null==t&&(t=c),a(t,!0)?(r(n.definition["$[]"]("requirements")["$is_a?"](_(_(_("GxG"),"Database"),"PersistedArray")))&&i(n.definition["$[]"]("requirements"),"each",[],(function e(t){var n,a=null==e.$$s?this:e.$$s,s=c;return null==a.libraries&&(a.libraries=c),null==t&&(t=c),s=_(h("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$get_library(t),r(s)?(n=[s.$uuid(),s],i(a.libraries,"[]=",n),n[n.length-1]):c}),{$$s:n}),r(s(n.definition["$[]"]("script").$size(),0))?r(n.definition["$[]"]("script")["$base64?"]())?n.$instance_eval(n.definition["$[]"]("script").$to_s().$decode64()):n.$instance_eval(n.definition["$[]"]("script").$to_s()):c):n.$log_warn("Library load error - not processing main application script for "+n.definition.$title()+".")}),{$$s:n})),n}),-1),o(p,"$get_resource",(function(e){var t=this,n=c;return null==e&&(e=c),n=c,r(t.definition)&&function(){try{var r=$("break");return i(t.definition["$[]"]("content"),"each",[],(function t(i){var s=null==t.$$s?this:t.$$s;if(null==i&&(i=c),!a(i.$title(),e)&&!a(i.$uuid(),s.$the_refrence().$to_s().$to_sym()))return c;n=i,r.$throw(c,t.$$is_lambda)}),{$$s:t})}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}}(),n}),-1),o(p,"$require_resource",(function(e){var t=this,n=c,i=c;return null==e&&(e=c),n=!1,r(t.definition)&&(i=t.$get_resource(e),r(i)&&a(i["$[]"]("component").$to_s(),"script")&&a(i["$[]"]("type").$to_s(),"text/ruby")&&r(s(i["$[]"]("script").$size(),0))&&(r(i["$[]"]("script")["$base64?"]())?t.$instance_eval(i["$[]"]("script").$to_s().$decode64()):t.$instance_eval(i["$[]"]("script").$to_s()),n=!0)),n}),-1),o(p,"$title",u("title")),o(p,"$credentialed",u("credentialed")),o(p,"$unique",u("unique")),o(p,"$location",u("location")),o(p,"$libraries",u("libraries")),o(p,"$state_data",u("state")),o(p,"$state_pull",(function(){return i(_(h("GxG"),"CONNECTION"),"app_state_pull",[new Map([["application",this.process.$to_s()]])],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=c),!!r(t["$is_a?"](_("Hash")))&&(!!r(t["$[]"]("result")["$is_a?"](_("Hash")))&&(n.state=t["$[]"]("result"),!0))}),{$$s:this})})),o(p,"$state_push",(function(){return i(_(h("GxG"),"CONNECTION"),"app_state_push",[new Map([["application",this.process.$to_s()],["data",this.state]])],(function(e){return null==e&&(e=c),!!r(e["$is_a?"](_("Hash")))&&!!a(e["$[]"]("result"),!0)}))})),o(p,"$get_library",(function(e){var t=this,n=c;return null==e&&(e=c),n=c,r(e["$is_any?"](_("String"),_("Symbol")))&&(n=t.libraries["$[]"](e.$to_s().$to_sym()),r(n)||function(){try{var r=$("break");return i(t.libraries.$values(),"each",[],(function t(i){if(null==i&&(i=c),!a(i.$title(),e))return c;n=i,r.$throw(c,t.$$is_lambda)}))}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}}()),n}),-1),o(p,"$link_viewport",(function(e){return null==e&&(e=c),!!r(e["$is_a?"](_(_(_("GxG"),"Gui"),"ApplicationViewport")))&&(this.viewports["$[]="](e.$uuid().$to_s().$to_sym(),e),!0)}),-1),o(p,"$unlink_viewport",(function(e){var t=this;return null==e&&(e=c),!!r(e["$is_any?"](_("String"),_("Symbol")))&&(r(t.viewports["$[]"](e.$to_s().$to_sym()))?t.viewports.$delete(e.$to_s().$to_sym()):function(){try{var n=$("break");return i(t.viewports.$values(),"each",[],(function t(r){var i=null==t.$$s?this:t.$$s;if(null==i.viewports&&(i.viewports=c),null==r&&(r=c),!a(r.$title(),e))return c;i.viewports.$delete(r.$uuid()),n.$throw(c,t.$$is_lambda)}),{$$s:t})}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}(),!0)}),-1),o(p,"$viewports",u("viewports")),o(p,"$get_viewport",(function(e){var t=this,n=c;return null==e&&(e=c),n=c,r(e["$is_any?"](_("String"),_("Symbol")))&&(n=t.viewports["$[]"](e.$to_s().$to_sym()),r(n)||function(){try{var r=$("break");return i(t.viewports.$values(),"each",[],(function t(i){if(null==i&&(i=c),!a(i.$title(),e))return c;n=i,r.$throw(c,t.$$is_lambda)}))}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}}()),n}),-1),o(p,"$link_window",(function(e){return null==e&&(e=c),!!r(e["$is_a?"](_(_(_("GxG"),"Gui"),"Window")))&&(this.windows["$[]="](e.$uuid().$to_s().$to_sym(),e),!0)}),-1),o(p,"$unlink_window",(function(e){var t=this;return null==e&&(e=c),!!r(e["$is_any?"](_("String"),_("Symbol")))&&(r(t.windows["$[]"](e.$to_s().$to_sym()))?t.windows.$delete(e.$to_s().$to_sym()):function(){try{var n=$("break");return i(t.windows.$values(),"each",[],(function t(r){var i=null==t.$$s?this:t.$$s;if(null==i.windows&&(i.windows=c),null==r&&(r=c),!a(r.$title(),e))return c;i.windows.$delete(r.$uuid()),n.$throw(c,t.$$is_lambda)}),{$$s:t})}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}(),!0)}),-1),o(p,"$windows",u("windows")),o(p,"$get_window",(function(e){var t=this,n=c;return null==e&&(e=c),n=c,r(e["$is_any?"](_("String"),_("Symbol")))&&(n=t.windows["$[]"](e.$to_s().$to_sym()),r(n)||function(){try{var r=$("break");return i(t.windows.$values(),"each",[],(function t(i){if(null==i&&(i=c),!a(i.$title(),e))return c;n=i,r.$throw(c,t.$$is_lambda)}))}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}}()),n}),-1),o(p,"$process_uuid",u("process")),o(p,"$source_uuid",(function(){return r(this.definition["$is_a?"](_(_(_("GxG"),"Database"),"DetachedHash")))?this.definition.$uuid():c})),o(p,"$search_resources",(function(e){var t=this,n=c;return null==e&&(e=c),n=c,r(e["$is_any?"](_("String"),_("Symbol")))&&r(t.definition)&&function(){try{var s=$("break");return i(t.definition["$[]"]("content"),"search",[],(function t(i,o,$){return null==i&&(i=c),null==o&&(o=c),null==$&&($=c),r(i["$is_a?"](_(_(_("GxG"),"Database"),"DetachedHash")))&&(a(e.$to_s().$to_sym(),i.$uuid().$to_s().$to_sym())||a(e.$to_s(),i.$title().$to_s()))?(n=i,void s.$throw(c,t.$$is_lambda)):c}))}catch(e){if(e===s)return e.$v;throw e}finally{s.is_orphan=!0}}(),n}),-1),o(p,"$on",(function e(t,n){var i=e.$$p||c,a=this;return e.$$p=null,null==t&&(t=c),null==n&&(n=!1),r(t["$is_any?"](_("String"),_("Symbol")))&&r(i["$respond_to?"]("call"))?(a.event_handlers["$[]="](t.$to_s().$downcase().$to_sym(),i),a.event_listeners["$[]="](t.$to_s().$downcase().$to_sym(),a.$method("event_handler").$to_proc()),a.$element().addEventListener(t.$to_s().$downcase(),a.event_listeners["$[]"](t.$to_s().$downcase().$to_sym()),n)):c}),-1),o(p,"$remove_listener",(function(e){var t=this;return null==e&&(e=c),r(t.event_handlers["$[]"](e.$to_s().$downcase().$to_sym()))&&r(t.event_listeners["$[]"](e.$to_s().$downcase().$to_sym()))&&(t.$element().removeEventListener(e.$to_s().$downcase(),t.event_listeners["$[]"](e.$to_s().$downcase().$to_sym())),t.event_handlers.$delete(e.$to_s().$downcase().$to_sym()),t.event_listeners.$delete(e.$to_s().$downcase().$to_sym())),!0}),-1),o(p,"$event_handler",(function(e){var t,n=c,i=c,a=c,s=c;return t=e.type.$to_s().$downcase().$to_sym(),n=new Map,r(this.event_handlers["$[]"](t))?(i=r(a=_(_(_(h("GxG"),"Gui"),"EventHandlers"),"EVENT_GENRES")["$[]"](t))?a:"event",r(i)&&(s=_(_(_(h("GxG"),"Gui"),"EventHandlers"),"EVENT_FIELDS")["$[]"](i),r(s)&&(serializer=function(e){if(e)return{eventName:e.toString(),altKey:e.altKey,bubbles:e.bubbles,button:e.button,buttons:e.buttons,cancelBubble:e.cancelBubble,cancelable:e.cancelable,clientX:e.clientX,clientY:e.clientY,composed:e.composed,ctrlKey:e.ctrlKey,currentTarget:e.currentTarget?e.currentTarget.outerHTML:null,defaultPrevented:e.defaultPrevented,detail:e.detail,eventPhase:e.eventPhase,fromElement:e.fromElement?e.fromElement.outerHTML:null,isTrusted:e.isTrusted,layerX:e.layerX,layerY:e.layerY,metaKey:e.metaKey,movementX:e.movementX,movementY:e.movementY,offsetX:e.offsetX,offsetY:e.offsetY,pageX:e.pageX,pageY:e.pageY,relatedTarget:e.relatedTarget?e.relatedTarget.outerHTML:null,returnValue:e.returnValue,screenX:e.screenX,screenY:e.screenY,shiftKey:e.shiftKey,sourceCapabilities:e.sourceCapabilities?e.sourceCapabilities.toString():null,target:e.target?e.target.outerHTML:null,timeStamp:e.timeStamp,toElement:e.toElement?e.toElement.outerHTML:null,type:e.type,view:e.view?e.view.toString():null,which:e.which,x:e.x,y:e.y}},n=JSON.stringify(serializer(e)),n=_("JSON").$parse(n.$to_s(),new Map([["symbolize_names",!0]])))),this.event_handlers["$[]"](t).$call(n)):c})),o(p,"$menu_item_select",(function(e){return null==e&&(e=c),c}),-1),o(p,"$run",(function(e){return null==e&&(e=new Map),r(e["$is_a?"](_("Hash")))&&a(e["$[]"]("restore"),!0)?this.$state_pull():c}),-1),o(p,"$exitready?",(function(e){return null==e&&(e=new Map),"ready"}),-1),o(p,"$before_exit",(function(e){return null==e&&(e=new Map),!0}),-1),o(p,"$exit",(function(e){return null==e&&(e=new Map),i(_(h("GxG"),"CONNECTION"),"application_close",[new Map([["application",this.process]])],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.process&&(n.process=c),null==t&&(t=c),r(t["$is_a?"](_("Hash")))?a(t["$[]"]("result"),!0)?_(h("GxG"),"APPLICATIONS")["$[]"]("processes").$delete(n.process):n.$log_warn("Could not close application "+n.process.$inspect()+" : "+t.$inspect()):n.$log_warn("Malformed response: "+t.$inspect())}),{$$s:this}),!0}),-1),o(p,"$window_close",(function(e){var t=this,n=c;return null==e&&(e=new Map),r(e["$is_a?"](_("Hash")))?r(h("GxG")["$valid_uuid?"](e["$[]"]("window")))?(n=_(h("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$get_window(e["$[]"]("window")),r(n)?(i(t.viewports.$keys(),"each",[],(function e(t){var i=null==e.$$s?this:e.$$s,a=c;return null==t&&(t=c),a=n.$find_child(t),r(a)?(a.$set_application(c),i.$unlink_viewport(t)):c}),{$$s:t}),t.$unlink_window(n.$uuid()),_(h("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$window_close(n.$uuid()),r(s(t.windows.$size(),0))?c:t.$exit()):c):t.$log_warn("Invalid Argument passed: "+e.$inspect()):c}),-1),o(p,"$viewport_clear",(function(e){var t;return null==e&&(e=c),t=this.$get_viewport(e),!!r(t)&&(i(t,"gxg_each_child",[],(function(e){return null==e&&(e=c),a(e,t)?c:e.$destroy()})),!0)}),-1)}(p[0],0,p)}(l[0],l)},Opal.modules["web/gxg_vdom"]=function(e){var t=e.module,n=e.class_variable_set,r=e.truthy,i=e.eqeq,a=e.range,s=e.rb_plus,o=e.defs,$=e.klass,u=e.def,l=e.return_ivar,c=e.send,_=e.rb_minus,d=e.thrower,p=e.rb_gt,f=e.class_variable_get,h=e.return_val,m=e.Class,g=e.slice,v=e.send2,b=e.find_super,y=e.to_a,w=e.const_set,x=e.not,k=e.gvars,G=e.alias,E=e.rb_ge,S=e.neqeq,O=e.return_self,M=[],A=e.nil,N=e.$$$;return e.add_stubs("is_any?,unpersist,==,[],to_s,downcase,extname,include?,+,relative_url,log_warn,inspect,to_sym,valid_properties,each,keys,[]=,to_i,-,style_sheet,>,<<,new,is_a?,name,rule_names,remove_rule,find_rule,size,index,gsub,expand_path,each_with_index,reverse,delete_at,native_object,to_a,create_element,factory,update_classes,_stylize,style,class,set_attribute,join,map,_before_create,before_create,create,_after_create,after_create,cascade,raise,component_class,title,settings,register_object,values,call,clone,shift,children,each_child,clearning_queue,unregister_object,page,delete,every_child,remove_listeners,forget_child,parent,element,vdom_path,split,each_pair,last,has_key?,uuid,set_state,!,get_state,add_state,merge_style,respond_to?,domtype,component,to_proc,method,remove_listener,parse,base64?,decode64,instance_eval,log_error,include,uuid_generate,find_object,puts,to_n,compile,find_child,included,each_included,send,start,animate,layout_refresh,find_parent_type,valid_uuid?,theme_icon,theme_background,theme_widget,theme_font,site_asset,attr_reader,dasherize,!~,strip,capitalize,set_settings,creation,set_text,root,build_components,disable,clear_attribute,type,to_f,version,>=,loaded?,library_pull,json?,process_import,load_library,set_busy,application_open,pull_object,merge,run,!=,add_child,set_application,get_viewport,link_viewport,link_window,track_deltas,set_script,on,close,build_page,find_object_by,detach,body,all_descendants,destroy,clear,clear_rules,refresh_css_cache,load_font,set_rule,load_libraries,load_page"),function(M,z){var D=[t(M,"GxG")].concat(z);return function(M,z){var D=[t(M,"Gui")].concat(z);return function(M,z){var D=t(M,"Vdom"),I=[D].concat(z),T=e.$r(I);return n(I[0],"@@CssCache",[]),n(I[0],"@@CssRuleProperties",new Map),o(D,"$load_font",(function(e){var t=A,n=A,o=A,$=A,u=A,l=A;if(null==e&&(e=A),r(e["$is_any?"](N("Hash"),N(N(N("GxG"),"Database"),"DetachedHash"),N(N(N("GxG"),"Database"),"DetachedHash")))){if(r(e["$is_any?"](N(N(N("GxG"),"Database"),"DetachedHash"),N(N(N("GxG"),"Database"),"DetachedHash")))&&(e=e.$unpersist()),i(e["$[]"]("resource_type"),"font-face")){if(t=(r(n=e["$[]"]("font_family"))?n:"Unknown").$to_s(),o=(r(n=e["$[]"]("font_style"))?n:"normal").$to_s(),$=(r(n=e["$[]"]("font_weight"))?n:400).$to_s(),r(e["$[]"]("format")))u=e["$[]"]("format").$to_s().$downcase();else switch(T("File").$extname(e["$[]"]("source")).$downcase().valueOf()){case".ttf":case".otf":u="truetype";break;case".eot":u="embedded-opentype";break;case".svg":u="svg";break;case".woff":u="woff";break;case".woff2":u="woff2";break;default:u="unknown"}l=r(["sftp:","ftp:/","http:","https"]["$include?"](e["$[]"]("source")["$[]"](a(0,4,!1)).$downcase()))?e["$[]"]("source"):s(N(N("GxG"),"CONNECTION").$relative_url().$to_s(),e["$[]"]("source"));var c=t.$to_s(),_="url('"+l+"')",d="format('"+u+"')";if("format('unknown')"==d);else;$=$,o=o;return new FontFace(c,_,{weight:$,style:o}).load().then((function(e){document.fonts.add(e)})).catch((function(e){alert(e)})),!0}return this.$log_warn("You attempted to load a non-font resource as a font: "+e.$inspect()),!1}return this.$log_warn("You attempted to load a font with the wrong value: "+e.$inspect()),!1}),-1),function(t,n,i){var a=$(t,null,"CSSRule"),s=[a].concat(i),o=e.$r(s),_=a.$$prototype;_.native_rule=_.name=A,u(a,"$initialize",(function(e){var t,n=this;return n.native_rule=e,n.name=(r(t=n.native_rule.selectorText)?t:"").$to_s().$to_sym()})),u(a,"$native_object",l("native_rule")),u(a,"$inspect",(function(){return"<CSSRule: "+this.name+">"})),u(a,"$name",l("name")),u(a,"$keys",(function(){return N(N(o("GxG"),"Gui"),"Vdom").$valid_properties()})),u(a,"$[]",(function(e){return this.native_rule.style[e]})),u(a,"$[]=",(function(e,t){var n;return this.native_rule.style[e]=r(n=t)?n:"",t})),u(a,"$merge",(function(e){return null==e&&(e=new Map),c(e.$keys(),"each",[],(function t(n){var r,i=null==t.$$s?this:t.$$s;return null==n&&(n=A),r=[n,e["$[]"](n)],c(i,"[]=",r),r[r.length-1]}),{$$s:this}),this}),-1)}(I[0],0,I),o(D,"$style_sheet",(function(){var t,n=A;return n=A,t=document.styleSheets.length.$to_i(),function(){try{var i=d("break");return c(e.Range.$new(0,_(t,1),!1),"each",[],(function e(t){var a=A;return null==t&&(t=A),a=document.styleSheets[t],r(a)&&r(a.href.$to_s()["$include?"]("/themes/page.css"))?(n=a,void i.$throw(A,e.$$is_lambda)):A}))}catch(e){if(e===i)return e.$v;throw e}finally{i.is_orphan=!0}}(),n})),o(D,"$refresh_css_cache",(function(){var t,i=A,a=A,s=A,o=A;if(t=N(N(T("GxG"),"Gui"),"Vdom").$style_sheet(),r(t)){i=[];try{a=t.cssRules}catch(n){if(!e.rescue(n,[T("Exception")]))throw n;n;try{a=t.rules}finally{e.pop_exception(n)}}r(a)&&(s=a.length.$to_i(),o=r(p(s,0))?_(a.length.$to_i(),1):0,c(e.Range.$new(0,o,!1),"each",[],(function(n){var a=A;null==n&&(n=A);try{a=t.cssRules[n]}catch(r){if(!e.rescue(r,[T("Exception")]))throw r;r;try{a=t.rules[n]}finally{e.pop_exception(r)}}return r(a)?i["$<<"](N(N(N(T("GxG"),"Gui"),"Vdom"),"CSSRule").$new(a)):A}))),n(I[0],"@@CssCache",i)}return!0})),o(D,"$valid_properties",(function(){return f(I[0],"@@CssRuleProperties",!1).$keys()})),o(D,"$get_property_name",(function(e){var t=A;return null==e&&(e=A),t=A,r(e["$is_a?"](N("Symbol")))&&(t=f(I[0],"@@CssRuleProperties",!1)["$[]"](e)),t}),-1),o(D,"$rules",(function(){var e=A;return e=[],c(f(I[0],"@@CssCache",!1),"each",[],(function(t){return null==t&&(t=A),e["$<<"](t.$name())})),e})),o(D,"$rule_names",(function(){var e=A;return e=[],c(f(I[0],"@@CssCache",!1),"each",[],(function(t){return null==t&&(t=A),e["$<<"](t.$name())})),e})),o(D,"$find_rule",(function(e){var t=A;return null==e&&(e=A),t=[],c(f(I[0],"@@CssCache",!1),"each",[],(function(n){return null==n&&(n=A),i(n.$name(),e.$to_s().$to_sym())?t["$<<"](n):A})),t}),-1),o(D,"$clear_rules",(function(){var e;return e=N(N(N("GxG"),"Gui"),"Vdom").$rule_names(),c(e,"each",[],(function(e){return null==e&&(e=A),i(e,".hidden")?A:N(N(N("GxG"),"Gui"),"Vdom").$remove_rule(e)})),!0})),o(D,"$set_rule",(function(t,n,o){var $=A,u=A,l=A,d=A,h=A;if(null==t&&(t=A),null==n&&(n=new Map),null==o&&(o=new Map([["merge",!0]])),$=N(N(T("GxG"),"Gui"),"Vdom").$style_sheet(),r($)){if(u=N(N(T("GxG"),"Gui"),"Vdom").$find_rule(t),r(p(u.$size(),0))&&N(N(T("GxG"),"Gui"),"Vdom").$remove_rule(t),l=N(N("GxG"),"CONNECTION").$relative_url(),d="{ ",c(n.$keys(),"each",[],(function(t){var o=A,$=A,u=A;return null==t&&(t=A),o=n["$[]"](t).$to_s(),r(o["$include?"]("url("))&&($=o.$index(")"),u=o["$[]"](e.Range.$new(4,_($,1),!1)),(i(u["$[]"](0),"'")||i(u["$[]"](0),'"'))&&(u=u["$[]"](a(1,-1,!1))),(i(u["$[]"](-1),"'")||i(u["$[]"](-1),'"'))&&(u=u["$[]"](a(0,-2,!1))),r(u["$include?"]("data:"))||r(u["$include?"]("http:"))||r(u["$include?"]("https:"))||i(u["$[]"](e.Range.$new(0,_(l.$size(),1),!1)),l)||(o=s(s("url('",T("File").$expand_path(s(s(l,"/"),u))),"')").$gsub("//","/"))),d=s(d,t.$to_s()+": "+o.$to_s()+"; ")})),d=s(d," }"),i($.insertRule(s(t.$to_s(),d.$to_s()),$.cssRules.length).$to_i(),($.cssRules.length-1).$to_i())){try{h=$.cssRules[$.cssRules.length-1]}catch(t){if(!e.rescue(t,[T("Exception")]))throw t;t;try{h=$.rules[$.cssRules.length-1]}finally{e.pop_exception(t)}}return f(I[0],"@@CssCache",!1)["$<<"](N(N(N(T("GxG"),"Gui"),"Vdom"),"CSSRule").$new(h)),!0}return this.$log_warn("GxG Style Sheet Rule creation failed.."),!1}return this.$log_warn("GxG Style Sheet not found."),!1}),-1),o(D,"$remove_rule",(function(t){var n=A,a=A;return null==t&&(t=A),n=[],c(f(I[0],"@@CssCache",!1),"each_with_index",[],(function(e,r){return null==e&&(e=A),null==r&&(r=A),i(e.$name(),t.$to_s().$to_sym())||i(e.$name(),t.$to_s())?n["$<<"](r):A})),a=[],c(n.$reverse(),"each",[],(function(e){return null==e&&(e=A),a["$<<"](f(I[0],"@@CssCache",!1).$delete_at(e))})),!!r(p(a.$size(),0))&&(c(a,"each",[],(function(t){var n,i=A,a=A;return null==t&&(t=A),n=t.$native_object(),i=N(N(T("GxG"),"Gui"),"Vdom").$style_sheet(),r(i)?(a=i.cssRules.length.$to_i(),r(p(a,0))?c(e.Range.$new(0,_(a,1),!1).$to_a().$reverse(),"each",[],(function(e){var t;return null==e&&(e=A),t=i.cssRules[e],r(t)&&r(n.selectorText==t.selectorText)?i.deleteRule(e):A})):A):A})),!0)}),-1),function(n,o){var $=t(n,"ElementMethods"),f=[$].concat(o),w=e.$r(f);u($,"$_before_create",h(A)),u($,"$before_create",h(A)),u($,"$create",(function(){var e=this;return null==e.domtype&&(e.domtype=A),null==e.parent&&(e.parent=A),null==e.options&&(e.options=A),r(e.domtype)?e.element=e.$factory().$create_element(e,e.domtype,e.parent,e.options):A})),u($,"$_after_create",(function(){return this.$update_classes(),this.$_stylize()})),u($,"$after_create",h(A)),u($,"$style",(function(){var e,t=this;return null==t.style&&(t.style=A),t.style=r(e=t.style)?e:new Map})),u($,"$_stylize",(function(){var e=A;return e=this.$style(),i(e.$class(),w("Hash"))?this.$set_attribute("style",c(e,"map",[],(function(e,t){return null==e&&(e=A),null==t&&(t=A),e+":"+t+";"})).$join()):A})),u($,"$cascade",h(A)),u($,"$creation",(function(){var e=this;return e.$_before_create(),e.$before_create(),e.$create(),e.$_after_create(),e.$after_create(),e.$_stylize(),e.$cascade()})),u($,"$add_child",(function(e,t){var n=this,a=A,s=A;return null==n.children&&(n.children=A),null==e&&(e=new Map),null==t&&(t=new Map),a=A,i(e["$[]"]("component").$to_s().$downcase().$to_sym(),"unknown")?n.$raise("Unknown Component Type"):(s=N(w("GxG"),"Gui").$component_class(e["$[]"]("component").$to_s().$downcase().$to_sym()),r(s["$is_a?"](m))?(a=s.$new(n,e,t),n.children["$[]="](a.$title().$to_s().$to_sym(),a),r(t["$[]"]("template_uuid"))&&a.$settings()["$[]="]("template_uuid",t["$[]"]("template_uuid")),N(N("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$register_object(a.$title(),a)):n.$raise("Unknown Component Type")),a}),-1),u($,"$each_child",(function e(){var t=e.$$p||A,n=this;return null==n.children&&(n.children=A),e.$$p=null,c(n.children.$values(),"each",[],(function(e){return null==e&&(e=A),t.$call(e)}))})),u($,"$all_descendants",(function e(){var t=e.$$p||A,n=this,i=A;for(null==n.children&&(n.children=A),null==n.process_queue&&(n.process_queue=A),e.$$p=null,n.process_queue=n.children.$values().$clone();r(p(n.process_queue.$size(),0));)i=n.process_queue.$shift(),r(i)&&(t.$call(i),r(p(i.$children().$values().$size(),0))&&c(i,"each_child",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.process_queue&&(n.process_queue=A),null==t&&(t=A),n.process_queue["$<<"](t)}),{$$s:n}))})),u($,"$forget_children",(function(){var e=this,t=A,n=A;for(null==e.children&&(e.children=A),t=e.children.$values();r(p(e.$clearning_queue().$size(),0));)n=t.$shift(),r(n)&&(c(n.$children().$values(),"each",[],(function(e){return null==e&&(e=A),t["$<<"](e)})),e.$page().$unregister_object(n.$title().$to_s()));return e.children=new Map})),u($,"$forget_child",(function(e){var t=this;return null==t.children&&(t.children=A),t.$page().$unregister_object(e),t.children.$delete(e.$to_s().$to_sym())})),u($,"$entity_content",(function(){var e=this;return null==e.children&&(e.children=A),e.children.$values()})),u($,"$destroy",(function(){var e=this;return null==e.title&&(e.title=A),c(e,"every_child",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=A),t.$remove_listeners(),n.$page().$unregister_object(t.$title().$to_s())}),{$$s:e}),e.$remove_listeners(),e.$parent().$forget_child(e.title.$to_s()),e.$parent().$element().removeChild(e.$element()),!0})),u($,"$vdom_path",(function(){var e=this,t=A,n=A,a=A,o=A;if(null==e.parent&&(e.parent=A),t="/",r(e.parent)){for(n=[],a=[e];r(p(a.$size(),0));)o=a.$shift(),r(o)&&(i(e.$page(),o)||n["$<<"](o.$title().$to_s()),r(o.$parent())&&a["$<<"](o.$parent()));r(p(n.$size(),0))&&(t=s("/",n.$reverse().$join("/")))}return t})),u($,"$vdom_object",(function(e){var t=this,n=A,s=A,o=A;return null==e&&(e=A),n=A,r(e)&&(e=e.$to_s(),(i(e["$[]"](a(0,1,!1)),"./")||i(e["$[]"](a(0,1,!1)),".."))&&(e=w("File").$expand_path(e,t.$vdom_path())),s=e.$split("/"),o=[],function(){try{var e=d("break");return c(s,"each_with_index",[],(function t(n,a){var $,u=null==t.$$s?this:t.$$s;return null==n&&(n=A),null==a&&(a=A),i(n,"")?i(a,0)?($=[a,u.$page()],c(o,"[]=",$),$[$.length-1]):void e.$throw(A,t.$$is_lambda):r(p(a,0))&&r(o["$[]"](_(a,1)))?function(){try{var e=d("break");return c(o["$[]"](_(a,1)).$children(),"each_pair",[],(function t(n,r){if(null==n&&(n=A),null==r&&(r=A),!i(n,s["$[]"](a)))return A;o["$[]="](a,r),e.$throw(A,t.$$is_lambda)}))}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}():A}),{$$s:t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),r(o.$last())&&(n=o.$last())),n}),-1),u($,"$method_missing",(function e(t,n){var i,a=e.$$p||A,s=this;return null==s.children&&(s.children=A),e.$$p=null,i=g(arguments,1),r(s.children["$has_key?"](t))?s.children["$[]"](t):v(s,b(s,"method_missing",e,!1,!0),"method_missing",[t].concat(y(i)),a)}),-2),u($,"$dom_id",(function(){return this.$uuid().$to_s()})),u($,"$title",l("title")),u($,"$update_classes",(function(){var e=this,t=A,n=A;return null==e.element&&(e.element=A),null==e.states&&(e.states=A),t="",n=e.element.className.$split(" "),c(n,"each_with_index",[],(function e(a,o){var $=null==e.$$s?this:e.$$s;return null==$.states&&($.states=A),null==a&&(a=A),null==o&&(o=A),r($.states.$keys()["$include?"](a.$to_s().$to_sym()))?A:(t=s(t,a),i(a,n.$last())?A:t=s(t," "))}),{$$s:e}),r(p(e.states.$keys().$size(),0))&&(t=s(t," ")),c(e.states,"each_pair",[],(function e(n,r){var a=null==e.$$s?this:e.$$s;return null==a.states&&(a.states=A),null==n&&(n=A),null==r&&(r=A),i(r,!0)?(t=s(t,n.$to_s()),i(a.states.$keys().$last(),n)?A:t=s(t," ")):A}),{$$s:e}),e.element.className=t.$to_s(),!0})),u($,"$option_replace",(function(e,t){var n,i,a=this;return null==a.options&&(a.options=A),null==t&&(t=A),n=r(i=a.options["$[]"](e))?i:t,r(a.options["$has_key?"](e))&&a.options.$delete(e),n}),-2),u($,"$set_state",(function(e,t){var n=this;return null==n.states&&(n.states=A),null==t&&(t=!1),i(t,!0)?n.states["$[]="](e.$to_s().$to_sym(),!0):n.states["$[]="](e.$to_s().$to_sym(),!1),n.$update_classes()}),-2),u($,"$set_states",(function(e){return null==e&&(e=new Map),c(e,"each_pair",[],(function e(t,n){var r,a=null==e.$$s?this:e.$$s;return null==a.states&&(a.states=A),null==t&&(t=A),null==n&&(n=A),i(n,!0)?(r=[t.$to_s().$to_sym(),!0],c(a.states,"[]=",r),r[r.length-1]):(r=[t.$to_s().$to_sym(),!1],c(a.states,"[]=",r),r[r.length-1])}),{$$s:this}),this.$update_classes()}),-1),u($,"$get_state",(function(e){var t,n=this;return null==n.states&&(n.states=A),!!r(t=n.states["$[]"](e.$to_s().$to_sym()))&&t})),u($,"$get_states",l("states")),u($,"$toggle_state",(function(e){return this.$set_state(e,this.$get_state(e)["$!"]())})),u($,"$set_application",(function(e){return null==e&&(e=A),this.application=e}),-1),u($,"$application",l("application")),u($,"$state_active?",(function(e){var t=this;return null==t.states&&(t.states=A),t.states.$keys()["$include?"](e.$to_s().$to_sym())})),u($,"$add_states",(function(e){return c(e,"each",[],(function e(t){return null==t&&(t=A),(null==e.$$s?this:e.$$s).$add_state(t)}),{$$s:this})})),u($,"$add_state",(function(e,t){return null==t&&(t=!1),this.$set_state(e,t)}),-2),u($,"$value",(function(){var e=this;return null==e.element&&(e.element=A),e.element.innerHTML})),u($,"$get_text",(function(){var e=this;return null==e.element&&(e.element=A),e.element.textContent})),u($,"$value=",(function(e){var t=this;return null==t.element&&(t.element=A),t.element.value=e})),u($,"$set_text",(function(e){var t=this;return null==t.element&&(t.element=A),t.element.textContent=e})),u($,"$html",(function(e){var t=this;return null==t.element&&(t.element=A),t.element.innerHTML=e})),u($,"$set_style",(function(e){var t=this,n=A;return null==t.element&&(t.element=A),null==e&&(e=new Map),n="",!!r(e["$is_a?"](N("Hash")))&&(c(e,"each_pair",[],(function(e,t){return null==e&&(e=A),null==t&&(t=A),n=s(s(n,e.$to_s()+": "),t.$to_s()+";")})),t.element.setAttribute("style",n),!0)}),-1),u($,"$merge_style",(function(e){return null==e&&(e=new Map),!!r(e["$is_a?"](N("Hash")))&&(c(e,"each_pair",[],(function e(t,n){return null==t&&(t=A),null==n&&(n=A),(null==e.$$s?this:e.$$s).$element().style[t]=n.$to_s()}),{$$s:this}),!0)}),-1),u($,"$set_bg_color",(function(e){return null==e&&(e=0),this.$merge_style(new Map([["background-color","#"+e.$to_s()]]))}),-1),u($,"$get_attribute",(function(e){var t=A,n=A,i=A;return null==e&&(e=A),t="",r(e)&&(n=this.$element(),i=A,n.getAttributeNames().includes(e)&&(i=null==n.getAttribute(e)||n.getAttribute(e)),t=i.$to_s()),t}),-1),u($,"$set_attribute",(function(e,t){var n=A;return null==e&&(e=A),null==t&&(t=A),n=!1,r(e)&&(n=r(t)?this.$element().setAttribute(e,t):this.$element().setAttribute(e,null)),n}),-1),u($,"$clear_attribute",(function(e){var t=A;return null==e&&(e=A),t=!1,r(e)&&(this.$element().removeAttribute(e),t=!0),t}),-1),u($,"$each_child",(function e(){var t=e.$$p||A,n=this;return null==n.children&&(n.children=A),e.$$p=null,r(t["$respond_to?"]("call"))?c(n.children.$values(),"each",[],(function(e){return null==e&&(e=A),t.$call(e)})):n.children.$values().$each()})),u($,"$every_child",(function e(){var t=e.$$p||A,n=A,i=A,a=A;for(e.$$p=null,n=[],i=[this];r(p(i.$size(),0));)a=i.$shift(),r(a)&&r(p(a.$children().$keys().$size(),0))&&c(a.$children().$values(),"each",[],(function(e){return null==e&&(e=A),n["$<<"](e),r(p(e.$children().$keys().$size(),0))?i["$<<"](e):A}));return r(t["$respond_to?"]("call"))?c(n,"each",[],(function(e){return null==e&&(e=A),t.$call(e)})):n.$values().$each()})),u($,"$find_child",(function(e){var t=A,n=A,a=A;for(null==e&&(e=A),t=A,n=this.$children().$values();r(p(n.$size(),0));)if(a=n.$shift(),r(a)&&(i(a.$uuid(),e)||i(a.$title(),e)||i(a.$component(),e)||i(a.$class(),e)||i(a.$domtype(),e))){t=a;break}return t}),-1),u($,"$find_descendant",(function(e){var t=A,n=A,a=A;for(null==e&&(e=A),t=A,n=this.$children().$values();r(p(n.$size(),0));)if(a=n.$shift(),r(a)){if(i(a.$uuid(),e)||i(a.$title(),e)||i(a.$component(),e)||i(a.$class(),e)||i(a.$domtype(),e)){t=a;break}r(t)||c(a.$children().$values(),"each",[],(function(e){return null==e&&(e=A),n["$<<"](e)}))}return t}),-1),u($,"$find_descendants",(function(e){var t=A,n=A,a=A;for(null==e&&(e=A),t=[],n=this.$children().$values();r(p(n.$size(),0));)a=n.$shift(),r(a)&&((i(a.$uuid(),e)||i(a.$title(),e)||i(a.$component(),e)||i(a.$class(),e)||i(a.$domtype(),e))&&t["$<<"](a),c(a.$children().$values(),"each",[],(function(e){return null==e&&(e=A),n["$<<"](e)})));return t}),-1),u($,"$find_ancestor",(function(e){var t=A,n=A,a=A;for(null==e&&(e=A),t=A,n=[this.$parent()];r(p(n.$size(),0));)if(a=n.$shift(),r(a)){if(i(a.$uuid(),e)||i(a.$title(),e)||i(a.$component(),e)||i(a.$class(),e)||i(a.$domtype(),e)){t=a;break}i(a.$component(),"page")||n["$<<"](a.$parent())}return t}),-1),u($,"$find_ancestors",(function(e){var t=A,n=A,a=A;for(null==e&&(e=A),t=[],n=[this.$parent()];r(p(n.$size(),0));)a=n.$shift(),r(a)&&((i(a.$uuid(),e)||i(a.$title(),e)||i(a.$component(),e)||i(a.$class(),e)||i(a.$domtype(),e))&&t["$<<"](a),i(a.$component(),"page")||n["$<<"](a.$parent()));return t}),-1)}(I[0],I),function(n,i){var a=t(n,"EventHandlers"),s=[a].concat(i),o=e.$r(s);w(s[0],"EVENT_TYPES",e.large_array_unpack("abort,afterprint,animatedend,animationiteration,animationstart,beforeprint,beforeunload,blur,canplay,canplaythrough,change,click,contextmenu,copy,cut,dblclick,drag,dragend,dragcenter,dragleave,dragover,dragstart,drop,durationchange,ended,error,focus,focusin,focusout,fullscreenchange,fullscreenerror,hashchange,input,invalid,keydown,keypress,keyup,load,loadeddata,loadedmetadata,loadstart,message,mousedown,mouseenter,mouseleave,mousemove,mouseover,mouseup,offline,online,open,pagehide,pageshow,paste,play,playing,popstate,progress,ratechange,resize,reset,scroll,search,seeked,select,show,stalled,storage,submit,suspend,timeupdate,toggle,touchcancel,touchend,touchmove,touchstart,transitionend,unload,volumechange,waiting,wheel")),w(s[0],"EVENT_GENRES",new Map([["click","mouse"],["contextmenu","mouse"],["dblclick","mouse"],["mouseenter","mouse"],["mouseleave","mouse"],["mouseover","mouse"],["mouseup","mouse"],["mousedown","mouse"],["mousemove","mouse"],["mouseout","mouse"],["keydown","keyboard"],["keypress","keyboard"],["keyup","keyboard"],["touchcancel","touch"],["touchmove","touch"],["touchstart","touch"],["touchend","touch"],["animationstart","animation"],["animationend","animation"],["animationiteration","animation"],["animationpause","animation"],["animationresume","animation"],["animationstop","animation"],["input","input"],["drag","drag"],["dragend","drag"],["dragenter","drag"],["dragleave","drag"],["dragover","drag"],["dragstart","drag"],["drop","drag"],["wheel","wheel"],["abort","ui"],["beforeunload","ui"],["error","ui"],["load","ui"],["resize","ui"],["scroll","ui"],["select","ui"],["unload","ui"],["blur","focus"],["focus","focus"],["focusin","focus"],["focusout","focus"],["afterprint","event"],["beforeprint","event"],["canplay","event"],["canplaythrough","event"],["change","event"],["fullscreenchange","event"],["fullscreenerror","event"],["invalid","event"],["loadeddata","event"],["loadedmetadata","event"],["message","event"],["offline","event"],["online","event"],["open","event"],["close","event"],["pause","event"],["play","event"],["playing","event"],["progress","event"],["changerate","event"],["reset","event"],["search","event"],["seek","event"],["seeking","event"],["show","event"],["hide","event"],["stalled","event"],["submit","event"],["suspend","event"],["timeupdate","event"],["toggle","event"],["waiting","event"],["copy","clipboard"],["cut","clipboard"],["paste","clipboard"],["pagehide","transition"],["pageshow","transition"],["popstate","history"],["loadstart","progress"],["storage","storage"],["credentialchanged","ui"]])),w(s[0],"EVENT_FIELDS",new Map([["mouse",["altKey","button","buttons","clientX","clientY","ctrlKey","metaKey","movementX","movementY","offsetX","offsetY","pageX","pageY","screenX","screenY","shiftKey","which","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["keyboard",["altKey","charCode","code","ctrlKey","metaKey","isComposing","key","keyCode","location","shift","repeat","shiftKey","which","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["touch",["altKey","ctrlKey","metaKey","shiftKey","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["animation",["animationName","elapsedTime","pseudoElement","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["input",["data","inputType","isComposing","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["drag",["dataTranser","altKey","button","buttons","clientX","clientY","ctrlKey","metaKey","movementX","movementY","offsetX","offsetY","pageX","pageY","screenX","screenY","shiftKey","which","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["wheel",["deltaX","deltaY","deltaZ","deltaMode","altKey","button","buttons","clientX","clientY","ctrlKey","metaKey","movementX","movementY","offsetX","offsetY","pageX","pageY","screenX","screenY","shiftKey","which","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["ui",["detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["focus",["relatedTarget","detail","view","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["event",["bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["transition",["persisted","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["history",["state","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["progress",["lengthComputable","loaded","total","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["storage",["key","newValue","oldValue","storageArea","url","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]],["clipboard",["clipboardData","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","isTrusted","target","timeStamp"]]])),u(a,"$on",(function e(t,n){var i=e.$$p||A,a=this,s=A;return null==a.event_handlers&&(a.event_handlers=A),null==a.event_listeners&&(a.event_listeners=A),e.$$p=null,null==t&&(t=A),null==n&&(n=!1),s=!1,r(a.event_handlers["$is_a?"](N("Hash")))||(a.event_handlers=new Map,a.event_listeners=new Map),r(t["$is_any?"](N("String"),N("Symbol")))&&r(i["$respond_to?"]("call"))&&(a.event_handlers["$[]="](t.$to_s().$downcase().$to_sym(),i),a.event_listeners["$[]="](t.$to_s().$downcase().$to_sym(),a.$method("event_handler").$to_proc()),a.$element().addEventListener(t.$to_s().$downcase(),a.event_listeners["$[]"](t.$to_s().$downcase().$to_sym()),n),s=!0),s}),-1),u(a,"$remove_listener",(function(e){var t=this;return null==t.event_listeners&&(t.event_listeners=A),null==t.event_handlers&&(t.event_handlers=A),null==e&&(e=A),r(t.event_handlers["$[]"](e.$to_s().$downcase().$to_sym()))&&r(t.event_listeners["$[]"](e.$to_s().$downcase().$to_sym()))&&(t.$element().removeEventListener(e.$to_s().$downcase(),t.event_listeners["$[]"](e.$to_s().$downcase().$to_sym())),t.event_handlers.$delete(e.$to_s().$downcase().$to_sym()),t.event_listeners.$delete(e.$to_s().$downcase().$to_sym())),!0}),-1),u(a,"$remove_listeners",(function(){var e=this;return null==e.event_handlers&&(e.event_handlers=A),c(e.event_handlers.$keys().$clone(),"each",[],(function e(t){return null==t&&(t=A),(null==e.$$s?this:e.$$s).$remove_listener(t)}),{$$s:e}),!0})),u(a,"$event_handler",(function(e){var t,n=this,i=A,a=A,s=A,$=A;return null==n.event_handlers&&(n.event_handlers=A),t=e.type.$to_s().$downcase().$to_sym(),i=new Map,r(n.event_handlers["$[]"](t))?(a=r(s=N(N(N(N(o("GxG"),"Gui"),"Vdom"),"EventHandlers"),"EVENT_GENRES")["$[]"](t))?s:"event",r(a)&&($=N(N(N(N(o("GxG"),"Gui"),"Vdom"),"EventHandlers"),"EVENT_FIELDS")["$[]"](a),r($)&&(serializer=function(e){if(e)return{eventName:e.toString(),altKey:e.altKey,bubbles:e.bubbles,button:e.button,buttons:e.buttons,cancelBubble:e.cancelBubble,cancelable:e.cancelable,clientX:e.clientX,clientY:e.clientY,composed:e.composed,ctrlKey:e.ctrlKey,currentTarget:e.currentTarget?e.currentTarget.outerHTML:null,defaultPrevented:e.defaultPrevented,detail:e.detail,eventPhase:e.eventPhase,fromElement:e.fromElement?e.fromElement.outerHTML:null,isTrusted:e.isTrusted,layerX:e.layerX,layerY:e.layerY,metaKey:e.metaKey,movementX:e.movementX,movementY:e.movementY,offsetX:e.offsetX,offsetY:e.offsetY,pageX:e.pageX,pageY:e.pageY,relatedTarget:e.relatedTarget?e.relatedTarget.outerHTML:null,returnValue:e.returnValue,screenX:e.screenX,screenY:e.screenY,shiftKey:e.shiftKey,sourceCapabilities:e.sourceCapabilities?e.sourceCapabilities.toString():null,target:e.target?e.target.outerHTML:null,timeStamp:e.timeStamp,toElement:e.toElement?e.toElement.outerHTML:null,type:e.type,view:e.view?e.view.toString():null,which:e.which,x:e.x,y:e.y}},i=JSON.stringify(serializer(e)),i=N("JSON").$parse(i.$to_s(),new Map([["symbolize_names",!0]])))),n.event_handlers["$[]"](t).$call(i)):A})),u(a,"$set_script",(function(t,n){var i=this,a=A,s=A;if(null==t&&(t=""),null==n&&(n=A),a=!1,r(p(t.$size(),0)))try{r(t["$base64?"]())&&(t=t.$decode64()),r(n)?(n.$remove_listeners(),n.$instance_eval(t)):(i.$remove_listeners(),i.$instance_eval(t)),a=!0}catch(n){if(!e.rescue(n,[o("Exception")]))throw n;s=n;try{i.$log_error(new Map([["error",s],["parameters",new Map([["script",t]])]]))}finally{e.pop_exception(n)}}return a}),-1)}(I[0],I),function(t,n,a){var s=$(t,null,"Animation"),o=[s].concat(a),d=e.$r(o),f=s.$$prototype;f.target_list=f.targets=f.origin=f.destination=f.options=f.tweens=A,s.$include(N(N(N(d("GxG"),"Gui"),"Vdom"),"EventHandlers")),u(s,"$initialize",(function(e,t){var n,i=this,a=A,s=A;return null==e&&(e=new Map),null==t&&(t=A),i.event_handlers=new Map,i.event_listeners=new Map,r(e["$is_any?"](N("Hash"),N(N(N("GxG"),"Database"),"DetachedHash")))&&(r(e["$[]"]("origin"))?r(e["$[]"]("origin")["$is_a?"](N(N(N("GxG"),"Database"),"DetachedHash")))?i.origin=e["$[]"]("origin").$unpersist():i.origin=e["$[]"]("origin"):i.origin=A,r(e["$[]"]("destination"))||i.$raise(d("ArgumentError"),"You MUST provide a :destination state for the object."),r(e["$[]"]("destination")["$is_a?"](N(N(N("GxG"),"Database"),"DetachedHash")))?i.destination=e["$[]"]("destination").$unpersist():i.destination=e["$[]"]("destination"),r(e["$[]"]("options"))?(i.options=new Map,a=r(e["$[]"]("options")["$is_a?"](N(N(N("GxG"),"Database"),"DetachedHash")))?e["$[]"]("options").$unpersist():e["$[]"]("options"),s=new Map([["animationstart","start"],["animationend","complete"],["animationiteration","update"],["animationstop","stop"],["animationpause","pause"],["animationresume","resume"]]),c(a,"each_pair",[],(function e(t,n){var i,a=null==e.$$s?this:e.$$s;return null==a.event_handlers&&(a.event_handlers=A),null==a.options&&(a.options=A),null==t&&(t=A),null==n&&(n=A),r(s.$keys()["$include?"](t))?r(n["$respond_to?"]("call"))?(a.event_handlers["$[]="](t,n),i=[t,n],c(a.options,"[]=",i),i[i.length-1]):a.$log_warn("Attempted to pass an invalid object as an event handler. "+t.$inspect()+" --\x3e "+n.$inspect()):(i=[t,n],c(a.options,"[]=",i),i[i.length-1])}),{$$s:i})):i.options=A,r(e["$[]"]("targets"))||i.$raise(d("ArgumentError"),"You MUST provide a one or more :targets."),r(e["$[]"]("targets")["$is_a?"](N(N(N("GxG"),"Database"),"DetachedHash")))?i.target_list=e["$[]"]("targets").$unpersist():i.target_list=e["$[]"]("targets")),i.uuid=(r(n=t)?n:N("GxG").$uuid_generate()).$to_s().$to_sym(),i.targets=A,i.tweens=[],i}),-1),u(s,"$update_targets",(function(e){var t=A;return null==e&&(e=A),t=!1,r(e["$is_any?"](N("Hash"),N(N(N("GxG"),"Database"),"DetachedHash")))&&(r(e["$is_a?"](N(N(N("GxG"),"Database"),"DetachedHash")))?this.target_list=e.$unpersist():this.target_list=e,t=!0),t}),-1),u(s,"$update_origin",(function(e){var t=A;return null==e&&(e=A),t=!1,r(e["$is_any?"](N("Hash"),N(N(N("GxG"),"Database"),"DetachedHash")))&&(r(e["$is_a?"](N(N(N("GxG"),"Database"),"DetachedHash")))?this.origin=e.$unpersist():this.origin=e,t=!0),t}),-1),u(s,"$update_destination",(function(e){var t=A;return null==e&&(e=A),t=!1,r(e["$is_any?"](N("Hash"),N(N(N("GxG"),"Database"),"DetachedHash")))&&(r(e["$is_a?"](N(N(N("GxG"),"Database"),"DetachedHash")))?this.destination=e.$unpersist():this.destination=e,t=!0),t}),-1),u(s,"$update_options",(function(e){var t=A,n=A,i=A;return null==e&&(e=A),t=!1,r(e["$is_any?"](N("Hash"),N(N(N("GxG"),"Database"),"DetachedHash")))&&(n=r(e["$is_a?"](N(N(N("GxG"),"Database"),"DetachedHash")))?e.$unpersist():e,this.options=new Map,i=new Map([["animationstart","start"],["animationend","complete"],["animationiteration","update"],["animationstop","stop"],["animationpause","pause"],["animationresume","resume"]]),c(n,"each_pair",[],(function e(t,n){var a,s=null==e.$$s?this:e.$$s;return null==s.event_handlers&&(s.event_handlers=A),null==s.options&&(s.options=A),null==t&&(t=A),null==n&&(n=A),r(i.$keys()["$include?"](t))?r(n["$respond_to?"]("call"))?(s.event_handlers["$[]="](t,n),a=[t,n],c(s.options,"[]=",a),a[a.length-1]):s.$log_warn("Attempted to pass an invalid object as an event handler. "+t.$inspect()+" --\x3e "+n.$inspect()):(a=[t,n],c(s.options,"[]=",a),a[a.length-1])}),{$$s:this}),t=!0),t}),-1),u(s,"$uuid",l("uuid")),u(s,"$compile",(function(){var t=this,n=A,a=A,s=A,o=A,$=A,u=A,l=A;n=!1;try{t.targets=[],a=[],c(t.target_list.$keys(),"each",[],(function t(n){var a=null==t.$$s?this:t.$$s;return null==a.target_list&&(a.target_list=A),null==n&&(n=A),i(n,"class")&&(r(a.target_list["$[]"]("class")["$is_a?"](N("String")))||a.$raise(d("Exception"),"You MUST provide :class target as a String, not: "+a.target_list["$[]"]("class").$class().$inspect()),c(a.target_list["$[]"]("class").$split(" "),"each",[],(function t(n){var i=null==t.$$s?this:t.$$s,a=A,s=A;return null==n&&(n=A),r(p(n.$size(),0))?(s=(a=document.getElementsByClassName(n)).length.$to_i(),r(p(s,0))?c(e.Range.$new(0,_(s,1),!1),"each",[],(function e(t){var n,i=null==e.$$s?this:e.$$s;return null==i.targets&&(i.targets=A),null==t&&(t=A),n=a.item(t),r(i.targets["$include?"](n))?A:i.targets["$<<"](n)}),{$$s:i}):A):A}),{$$s:a})),i(n,"objects")&&(r(a.target_list["$[]"]("objects")["$is_a?"](N("Array")))||a.$raise(d("Exception"),"You MUST provide :object target list as an Array, not: "+a.target_list["$[]"]("objects").$class().$inspect()),c(a.target_list["$[]"]("objects"),"each",[],(function e(t){var n=null==e.$$s?this:e.$$s,i=A,a=A,s=A;return null==n.targets&&(n.targets=A),null==t&&(t=A),i=N(d("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$find_object(t.$to_s().$to_sym()),r(i)?(a=i.$element().attributes.getNamedItem("id")||0,r(0==a)?A:(s=document.getElementById(a),r(s)?r(n.targets["$include?"](s))?A:n.targets["$<<"](s):A)):A}),{$$s:a})),i(n,"elements")&&(r(a.target_list["$[]"]("elements")["$is_a?"](N("Array")))||a.$raise(d("Exception"),"You MUST provide :elements target list as an Array, not: "+a.target_list["$[]"]("elements").$class().$inspect()),c(a.target_list["$[]"]("elements"),"each",[],(function e(t){var n=null==e.$$s?this:e.$$s,i=A,a=A;return null==n.targets&&(n.targets=A),null==t&&(t=A),i=t.attributes.getNamedItem("id")||0,r(0==i)?A:(i=i.value,a=document.getElementById(i),r(a)?r(n.targets["$include?"](a))?A:n.targets["$<<"](a):A)}),{$$s:a})),i(n,"assets"),A}),{$$s:t}),r(p(t.targets.$size(),0))||t.$puts("No valid targets resulted."),c(t.targets,"each",[],(function(e){return null==e&&(e=A),a.push(e)})),r(t.origin["$is_a?"](N("Hash")))&&r(p(t.origin.$size(),0))?(s=new Map,c(t.origin,"each_pair",[],(function(e,t){var n,r=A;return null==e&&(e=A),null==t&&(t=A),r=i(e,"attribue")||i(e,"attribute")?"attr":e,c(s,"[]=",n=[r,t]),n[n.length-1]}))):s=A,r(p(t.destination.$size(),0))?(o=new Map,c(t.destination,"each_pair",[],(function(e,t){var n,r=A;return null==e&&(e=A),null==t&&(t=A),r=i(e,"attribue")||i(e,"attribute")?"attr":e,c(o,"[]=",n=[r,t]),n[n.length-1]}))):t.$raise(d("Exception"),"You MUST define a valid :destination state. not: "+t.destination.$inspect()),r(t.options["$is_a?"](N("Hash")))&&r(p(t.options.$size(),0))?($=new Map,u=new Map([["animationstart","start"],["animationend","complete"],["animationiteration","update"],["animationstop","stop"],["animationpause","pause"],["animationresume","resume"]]),c(t.options,"each_pair",[],(function e(t,n){var i,a=null==e.$$s?this:e.$$s,s=A;return null==a.event_handlers&&(a.event_handlers=A),null==t&&(t=A),null==n&&(n=A),r(u.$keys()["$include?"](t))?(s=u["$[]"](t),r(a.event_handlers["$[]"](t)["$respond_to?"]("call"))?(i=[s,a.event_handlers["$[]"](t)],c($,"[]=",i),i[i.length-1]):A):r(["start_time"]["$include?"](t))?A:(c($,"[]=",i=[t,n]),i[i.length-1])}),{$$s:t})):$=A,t.tweens=[],c(t.targets,"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.tweens&&(n.tweens=A),null==t&&(t=A),r(s)?r($)?n.tweens["$<<"](KUTE.fromTo(t,s.$to_n(),o.$to_n(),$.$to_n())):n.tweens["$<<"](KUTE.fromTo(t,s.$to_n(),o.$to_n())):r($)?n.tweens["$<<"](KUTE.to(t,o.$to_n(),$.$to_n())):n.tweens["$<<"](KUTE.to(t,o.$to_n()))}),{$$s:t}),n=!0}catch(n){if(!e.rescue(n,[d("Exception")]))throw n;l=n;try{t.$log_error(new Map([["error",l]])),t.targets=A,t.tweens=[]}finally{e.pop_exception(n)}}return n})),u(s,"$start",(function(e){var t=this;return null==e&&(e=A),r(p(t.tweens.$size(),0))||t.$compile(),r(e["$is_a?"](N("Numeric")))||(e=window.performance.now()),r(p(t.tweens.$size(),0))?c(t.tweens,"each",[],(function(t){return null==t&&(t=A),t.start(e)})):A}),-1),u(s,"$stop",(function(){return r(p(this.tweens.$size(),0))?c(this.tweens,"each",[],(function(e){return null==e&&(e=A),e.stop()})):A})),u(s,"$pause",(function(){return r(p(this.tweens.$size(),0))?c(this.tweens,"each",[],(function(e){return null==e&&(e=A),e.pause()})):A})),u(s,"$resume",(function(){return r(p(this.tweens.$size(),0))?c(this.tweens,"each",[],(function(e){return null==e&&(e=A),e.resume()})):A})),u(s,"$included",(function(){var e=A;return e=[],r(this.targets)&&c(this.targets,"each",[],(function(t){var n=A,i=A;return null==t&&(t=A),n=t.attributes.getNamedItem("id")||0,r(0==n)?A:(n=n.value,i=N(d("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$find_child(n.$to_s()),r(i)?e["$<<"](i):A)})),e})),u(s,"$each_included",(function e(){var t=e.$$p||A;return e.$$p=null,r(t["$respond_to?"]("call"))?c(this.$included(),"each",[],(function(e){return null==e&&(e=A),t.$call(e)})):this.$included().$each()})),u(s,"$broadcast",(function(e,t){return null==e&&(e=A),null==t&&(t=A),c(this,"each_included",[],(function(n){return null==n&&(n=A),n.$send(e,t)}))}),-1)}(I[0],0,I),function(n,i){var a=t(n,"AnimationSupport"),s=[a].concat(i),o=e.$r(s);u(a,"$animate",(function(e){var t=A,n=A;return null==e&&(e=A),r(e["$[]"]("destination")["$is_any?"](N("Hash"),N(N(N("GxG"),"Database"),"DetachedHash")))?(t=N(N(N(N("GxG"),"Gui"),"Vdom"),"Animation").$new(new Map([["targets",new Map([["elements",[this.$element()]]])],["origin",e["$[]"]("origin")],["destination",e["$[]"]("destination")],["options",e["$[]"]("options")]])),n=window.performance.now(),r(e["$[]"]("options")["$is_any?"](N("Hash"),N(N(N("GxG"),"Database"),"DetachedHash")))&&(n=e["$[]"]("options")["$[]"]("start_time")),t.$compile(),t.$start(n),!0):(this.$log_warn("Ignoring invalid animation: NO valid :destination state specified (required). not: "+e["$[]"]("destination").$inspect()),!1)}),-1),u(a,"$show",(function e(t){var n=e.$$p||A,i=this;return e.$$p=null,null==t&&(t=A),r(t["$is_any?"](N("Hash"),N(N(N("GxG"),"Database"),"DetachedHash")))?(r(t["$is_a?"](N(N(N("GxG"),"Database"),"DetachedHash")))&&(t=t.$unpersist()),r(t["$[]"]("destination")["$is_a?"](N("Hash")))&&r(t["$[]"]("destination")["$[]"]("opacity")["$is_a?"](N("Numeric")))&&(r(t["$[]"]("origin")["$is_a?"](N("Hash")))&&r(t["$[]"]("origin")["$[]"]("opacity")["$is_a?"](N("Numeric")))?i.$merge_style(new Map([["opacity",t["$[]"]("origin")["$[]"]("opacity")]])):i.$merge_style(new Map([["opacity",0]]))),i.$set_state("hidden",!1),r(n["$respond_to?"]("call"))&&(r(t["$[]"]("options"))||t["$[]="]("options",new Map),t["$[]"]("options")["$[]="]("animationend",c(o("Proc"),"new",[],(function(){return n.$call()})))),i.$animate(t)):(i.$set_state("hidden",!1),r(n["$respond_to?"]("call"))&&n.$call()),N(N("GxG"),"Gui").$layout_refresh(),!0}),-1),u(a,"$hide",(function e(t){var n=e.$$p||A,i=this,a=A,s=A;return e.$$p=null,null==t&&(t=A),r(t["$is_any?"](N("Hash"),N(N(N("GxG"),"Database"),"DetachedHash")))?(r(t["$is_a?"](N(N(N("GxG"),"Database"),"DetachedHash")))&&(t=t.$unpersist()),r(n["$respond_to?"]("call"))?(r(t["$[]"]("options"))||t["$[]="]("options",new Map),t["$[]"]("options")["$[]="]("animationend",c(o("Proc"),"new",[],(function e(){return(null==e.$$s?this:e.$$s).$set_state("hidden",!0),n.$call()}),{$$s:i}))):(a=A,r(t["$[]"]("options"))?r(t["$[]"]("options")["$[]"]("animationend")["$respond_to?"]("call"))?(s=t["$[]"]("options")["$[]"]("animationend"),a=c(o("Proc"),"new",[],(function e(){var t=null==e.$$s?this:e.$$s;return s.$call(),t.$set_state("hidden",!0)}),{$$s:i})):a=c(o("Proc"),"new",[],(function e(){return(null==e.$$s?this:e.$$s).$set_state("hidden",!0)}),{$$s:i}):(t["$[]="]("options",new Map),a=c(o("Proc"),"new",[],(function e(){return(null==e.$$s?this:e.$$s).$set_state("hidden",!0)}),{$$s:i})),r(a)&&(r(t["$[]"]("options")["$is_a?"](N("Hash")))||t["$[]="]("options",new Map),t["$[]"]("options")["$[]="]("animationend",a))),i.$animate(t)):(i.$set_state("hidden",!0),r(n["$respond_to?"]("call"))&&n.$call()),N(N("GxG"),"Gui").$layout_refresh(),!0}),-1)}(I[0],I),function(n,a){var s=t(n,"ApplicationSupport"),o=[s].concat(a),$=e.$r(o);u(s,"$find_parent_type",(function(e){var t=A,n=A,i=A;if(null==e&&(e=A),t=A,r(e["$is_any?"](m,N("String"),N("Symbol")))&&(r(e["$is_any?"](N("String"),N("Symbol")))&&(e=N($("GxG"),"Gui").$component_class(e.$to_s().$to_sym())),r(e["$is_a?"](m))))for(n=[this];r(p(n.$size(),0));)if(i=n.$shift(),r(i)){if(r(i["$is_a?"](e))){t=i;break}n["$<<"](i.$parent())}return t}),-1),u(s,"$viewport",(function(){return this.$find_parent_type(N(N(N("GxG"),"Gui"),"ApplicationViewport"))})),u(s,"$tree_node",(function(){return this.$find_parent_type(N(N(N("GxG"),"Gui"),"TreeNode"))})),u(s,"$tree",(function(){return this.$find_parent_type(N(N(N("GxG"),"Gui"),"Tree"))})),u(s,"$window",(function(){return this.$find_parent_type(N(N(N("GxG"),"Gui"),"Window"))})),u(s,"$find_parent",(function(e){var t=A,n=A,a=A,s=A;for(null==e&&(e=A),t=A,n=!!r($("GxG")["$valid_uuid?"](e)),a=[this.$parent()];r(p(a.$size(),0));)if(s=a.$shift(),r(s)){if(r(n)){if(i(s.$uuid(),e)){t=s;break}}else if(i(s.$title(),e)){t=s;break}r(t)||a["$<<"](s.$parent())}return t}),-1),u(s,"$find_child_type",(function(e){var t=A,n=A,i=A;if(null==e&&(e=A),t=A,r(e["$is_any?"](m,N("String"),N("Symbol")))&&(r(e["$is_any?"](N("String"),N("Symbol")))&&(e=N($("GxG"),"Gui").$component_class(e.$to_s().$to_sym())),r(e["$is_a?"](m))))for(n=this.$children().$values();r(p(n.$size(),0));)if(i=n.$shift(),r(i)&&r(i["$is_a?"](e))){t=i;break}return t}),-1),u(s,"$find_child",(function(e){var t=A,n=A,a=A,s=A;for(null==e&&(e=A),t=A,n=!!r($("GxG")["$valid_uuid?"](e)),a=this.$children().$values();r(p(a.$size(),0));)if(s=a.$shift(),r(s)){if(r(n)){if(i(s.$uuid(),e)){t=s;break}}else if(i(s.$title(),e)){t=s;break}r(t)||c(s.$children().$values(),"each",[],(function(e){return null==e&&(e=A),a["$<<"](e)}))}return t}),-1),u(s,"$find_peer",(function(e){return null==e&&(e=A),this.$parent().$find_child(e)}),-1)}(I[0],I),function(n,r){var i=t(n,"ThemeSupport"),a=[i].concat(r),s=e.$r(a);u(i,"$theme_icon",(function(e){return null==e&&(e=A),N(s("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$theme_icon(e)}),-1),u(i,"$theme_background",(function(e){return null==e&&(e=A),N(s("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$theme_background(e)}),-1),u(i,"$theme_widget",(function(e){return null==e&&(e=A),N(s("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$theme_widget(e)}),-1),u(i,"$theme_font",(function(e){return null==e&&(e=A),N(s("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$theme_font(e)}),-1),u(i,"$site_asset",(function(e){return null==e&&(e=A),N(s("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$site_asset(e)}),-1)}(I[0],I),function(e,t){var n=$(e,null,"Factory");n.$attr_reader("body"),u(n,"$initialize",(function(e){for(this.body=document.body;document.body.firstChild;)document.body.removeChild(document.body.firstChild)})),u(n,"$create_element",(function(e,t,n,r){var a=A;return null==r&&(r=new Map),a=i(t,"body")?document.body:document.createElement(t),i(t,"body")||(i(r["$[]"]("prepend"),!0)?n.$element().insertBefore(a,r["$[]"]("prepend").$element()):n.$element().appendChild(a)),a.classList.add(this.$dasherize(e.$class().$name())),x(r["$has_key?"]("id"))&&(a.id=e.$uuid().$to_s()),c(r,"each",[],(function(e,t){switch(null==e&&(e=A),null==t&&(t=A),e.valueOf()){case"prepend":return A;case"content":return a.appendChild(document.createTextNode(t));default:return a.setAttribute(e,t)}})),a}),-4),u(n,"$dasherize",(function(e){var t=A;return t=e.$gsub("::","-").$downcase().$gsub("_","-"),i(t["$[]"](0),"-")&&(t=t["$[]"](a(1,-1,!1))),t})),u(n,"$camelize",(function(e){return r(e["$!~"](/-/))?e:c(e,"gsub",[/(?:-|(\/))([a-z\d]*)/],(function(){var e;return""+((e=k["~"])===A?A:e["$[]"](1))+((e=k["~"])===A?A:e["$[]"](2)).$capitalize()})).$strip()}))}(I[0]),function(t,n,a){var s=$(t,null,"BaseElement"),o=[s].concat(a),_=e.$r(o),d=s.$$prototype;d.uuid=d.states=d.component=d.parent=A,s.$include(N(N(N(_("GxG"),"Gui"),"Vdom"),"ElementMethods")),s.$include(N(N(N(_("GxG"),"Gui"),"Vdom"),"EventHandlers")),s.$include(N(N(N(_("GxG"),"Gui"),"Vdom"),"AnimationSupport")),s.$include(N(N(N(_("GxG"),"Gui"),"Vdom"),"ApplicationSupport")),s.$include(N(N(N(_("GxG"),"Gui"),"Vdom"),"ThemeSupport")),s.$attr_reader("uuid","title","component","parent","children","element","domtype","settings"),u(s,"$set_settings",(function(e){return null==e&&(e=A),this.settings=e}),-1),G(s,"settings=","set_settings"),u(s,"$initialize",(function(e,t,n){var i=this,a=A;return null==t&&(t=new Map),null==n&&(n=new Map),r(t["$is_a?"](N(N(_("GxG"),"Database"),"DetachedHash")))?(i.uuid=N("GxG").$uuid_generate().$to_s().$to_sym(),r(p(t["$[]"]("title").$to_s().$size(),0))?r(t["$[]"]("title").$to_s().$include("Untitled "))?i.title="Untitled Component "+i.uuid.$to_s():i.title=t["$[]"]("title").$to_s():i.title=t.$title().$to_s()):(i.uuid=N("GxG").$uuid_generate().$to_s().$to_sym(),i.title=(r(a=t["$[]"]("title"))?a:"Untitled Component "+i.uuid.$to_s()).$to_s()),i.component=(r(a=t["$[]"]("component"))?a:"unknown").$to_s().$downcase().$to_sym(),i.parent=e,r(t["$[]"]("settings")["$is_a?"](N(N(_("GxG"),"Database"),"DetachedHash"),N(N(_("GxG"),"Database"),"PersistedHash")))?i.settings=t["$[]"]("settings").$unpersist():r(t["$[]"]("settings")["$is_a?"](N("Hash")))?i.settings=t["$[]"]("settings"):i.settings=new Map,r(n["$[]"]("application"))?i.application=n["$[]"]("application"):i.application=A,i.children=new Map,i.element=A,i.domtype="div",i.states=new Map,i.states["$[]="](i.component.$to_s().$gsub(".","-").$to_sym(),!0),r(t["$[]"]("options")["$is_any?"](N("Hash"),N(N(_("GxG"),"Database"),"DetachedHash")))&&r(t["$[]"]("options")["$[]"]("states")["$is_any?"](N("Array"),N(N(_("GxG"),"Database"),"DetachedArray")))&&c(t["$[]"]("options")["$[]"]("states"),"each",[],(function e(t){var n,r=null==e.$$s?this:e.$$s;return null==r.states&&(r.states=A),null==t&&(t=A),n=[t.$to_s().$to_sym(),!0],c(r.states,"[]=",n),n[n.length-1]}),{$$s:i}),i.style=new Map,r(t["$[]"]("options")["$is_a?"](N("Hash"),N(N(_("GxG"),"Database"),"DetachedHash")))&&r(t["$[]"]("options")["$[]"]("style")["$is_a?"](N("Hash"),N(N(_("GxG"),"Database"),"DetachedHash")))&&(i.style=t["$[]"]("options")["$[]"]("style")),i.options=new Map,r(t["$[]"]("options")["$is_a?"](N("Hash"),N(N(_("GxG"),"Database"),"DetachedHash")))&&c(t["$[]"]("options"),"each_pair",[],(function e(t,n){var i,a=null==e.$$s?this:e.$$s;return null==a.options&&(a.options=A),null==t&&(t=A),null==n&&(n=A),r(["background-color","icon","label","data","content","uuid","title","opacity","window_title","menu","top","right","bottom","left","height","width","close","minimize","maximize","resize","scroll","modal","track","states","style"]["$include?"](t.$to_s().$to_sym()))?A:(i=[t.$to_s().$to_sym(),n.$to_s()],c(a.options,"[]=",i),i[i.length-1])}),{$$s:i}),i.event_handlers=new Map,i.event_listeners=new Map,i.$creation(),r(t["$[]"]("options")["$is_a?"](N("Hash"),N(N(_("GxG"),"Database"),"DetachedHash")))&&r(t["$[]"]("content")["$is_a?"](N("String")))&&i.$set_text(t["$[]"]("content")),i}),-2),u(s,"$parent",l("parent")),u(s,"$root",(function(){var e=A,t=A,n=A;for(e=A,t=[this.parent];r(p(t.$size(),0));)if(n=t.$shift(),r(n)){if(i(n.$component(),"page")){e=n;break}t["$<<"](n.$parent())}return e})),u(s,"$factory",(function(){return this.$root().$factory()})),u(s,"$build",(function(e,t){return null==e&&(e=A),null==t&&(t=new Map),this.$page().$build_components(this,e,t)}),-1)}(I[0],0,I),function(e,t){var n=$(e,t,"BaseInputElement"),i=n.$$prototype;i.options=i.element=i.disabled=A,u(n,"$_before_create",(function e(){var t=this,n=A;return e.$$p=null,v(t,b(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="input",r(n=t.options["$[]"]("type"))||t.options["$[]="]("type","text"),r(t.options["$[]"]("content"))&&t.options["$[]="]("value",t.options.$delete("content")),t.disabled=r(n=t.options["$[]"]("disabled"))&&n})),u(n,"$value",(function(){return this.element.value})),u(n,"$value=",(function(e){return this.element.value=e})),u(n,"$_after_create",(function e(){var t=this;return e.$$p=null,v(t,b(t,"_after_create",e,!1,!0),"_after_create",[],null),r(t.disabled)?t.$disable():A})),u(n,"$disable",(function(){return this.$set_attribute("disabled","disabled")})),u(n,"$enable",(function(){return this.$clear_attribute("disabled")}))}(I[0],N(N(N(N("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=$(e,t,"BaseClickableElement");u(n,"$_before_create",(function e(){return e.$$p=null,v(this,b(this,"_before_create",e,!1,!0),"_before_create",[],null)}))}(I[0],N(N(N(N("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(t,n,a){var o=$(t,null,"Page"),l=[o].concat(a),_=e.$r(l),f=o.$$prototype;f.theme_prefix=f.settings=f.element=f.uuid=f.title=f.title_registry=f.factory=A,o.$include(N(N(N(_("GxG"),"Gui"),"Vdom"),"ElementMethods")),o.$include(N(N(N(_("GxG"),"Gui"),"Vdom"),"EventHandlers")),o.$include(N(N(N(_("GxG"),"Gui"),"Vdom"),"AnimationSupport")),o.$include(N(N(N(_("GxG"),"Gui"),"Vdom"),"ApplicationSupport")),o.$include(N(N(N(_("GxG"),"Gui"),"Vdom"),"ThemeSupport")),o.$attr_reader("uuid","title","component","parent","children","domtype","settings"),u(o,"$set_settings",(function(e){return null==e&&(e=A),this.settings=e}),-1),G(o,"settings=","set_settings"),u(o,"$get_library",(function(t){var n=A;return null==t&&(t=A),n=A,r(t["$is_any?"](N("Hash"),N(N(N("GxG"),"Database"),"DetachedHash")))?function(){try{var a=d("break");return c(N(_("GxG"),"APPLICATIONS")["$[]"]("libraries").$values(),"each",[],(function s(o){var $=A;if(null==o&&(o=A),!i(o.$title(),t["$[]"]("library").$to_s())||!i(o.$type(),r($=t["$[]"]("type"))?$:o.$type()))return A;if(r(t["$[]"]("maximum"))){if(!r(e.Range.$new(t["$[]"]("minimum").$to_f(),t["$[]"]("maximum").$to_f(),!1)["$include?"](o.$version())))return A;n=o,a.$throw(A,s.$$is_lambda)}else{if(!r(E(o.$version(),t["$[]"]("minimum").$to_f())))return A;n=o,a.$throw(A,s.$$is_lambda)}}))}catch(e){if(e===a)return e.$v;throw e}finally{a.is_orphan=!0}}():r(N(_("GxG"),"APPLICATIONS")["$[]"]("libraries")["$[]"](t.$to_s().$to_sym()))?n=N(_("GxG"),"APPLICATIONS")["$[]"]("libraries")["$[]"](t.$to_s().$to_sym()):function(){try{var e=d("break");return c(N(_("GxG"),"APPLICATIONS")["$[]"]("libraries").$values(),"each",[],(function r(a){if(null==a&&(a=A),!i(a.$title(),t))return A;n=a,e.$throw(A,r.$$is_lambda)}))}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),n}),-1),u(o,"$library_loaded?",(function(t){var n=A;return null==t&&(t=A),r(t["$is_any?"](N("Hash"),N(N(N("GxG"),"Database"),"DetachedHash")))?(n=!1,function(){try{var a=d("break");return c(N(_("GxG"),"APPLICATIONS")["$[]"]("libraries").$values(),"each",[],(function s(o){var $=A;if(null==o&&(o=A),!i(o.$title(),t["$[]"]("library").$to_s())||!i(o.$type(),(r($=t["$[]"]("type"))?$:o.$type()).$to_s()))return A;if(r(t["$[]"]("maximum"))){if(!r(e.Range.$new(t["$[]"]("minimum").$to_f(),t["$[]"]("maximum").$to_f(),!1)["$include?"](o.$version())))return A;n=o["$loaded?"](),a.$throw(A,s.$$is_lambda)}else{if(!r(E(o.$version(),t["$[]"]("minimum").$to_f())))return A;n=o["$loaded?"](),a.$throw(A,s.$$is_lambda)}}))}catch(e){if(e===a)return e.$v;throw e}finally{a.is_orphan=!0}}(),n):!!r(N(_("GxG"),"APPLICATIONS")["$[]"]("libraries")["$[]"](t.$to_s().$to_sym()))||(n=!1,function(){try{var e=d("break");return c(N(_("GxG"),"APPLICATIONS")["$[]"]("libraries").$values(),"each",[],(function r(a){if(null==a&&(a=A),!i(a.$title(),t))return A;n=a["$loaded?"](),e.$throw(A,r.$$is_lambda)}))}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),n)}),-1),u(o,"$load_library",(function e(t){var n=e.$$p||A,i=A,a=A;return e.$$p=null,null==t&&(t=A),r(t["$is_any?"](N("Hash"),N(N(N("GxG"),"Database"),"DetachedHash")))?(i=r(t["$[]"]("maximum"))?t["$[]"]("maximum").$to_f():A,c(N(_("GxG"),"CONNECTION"),"library_pull",[new Map([["library",t["$[]"]("library").$to_s()],["type",(r(a=t["$[]"]("type"))?a:"text/ruby").$to_s()],["minimum",(r(a=t["$[]"]("minimum"))?a:0).$to_f()],["maximum",i],["dependencies",!0],["loaded",N(_("GxG"),"APPLICATIONS")["$[]"]("libraries").$keys()]])],(function(e){return null==e&&(e=A),r(e["$is_a?"](N("Hash")))&&r(e["$[]"]("result")["$is_a?"](N("Array")))?c(e["$[]"]("result"),"each",[],(function(e){var t=A;return null==e&&(e=A),r(N(_("GxG"),"APPLICATIONS")["$[]"]("libraries").$keys()["$include?"](e["$[]"]("uuid").$to_s().$to_sym()))?A:(t=e["$[]"]("data"),r(t["$is_a?"](N("String")))?(r(t["$base64?"]())&&(t=t.$decode64()),r(t["$json?"]())&&(t=N("JSON").$parse(t,new Map([["symbolize_names",!0]]))),r(t["$is_a?"](N("Hash")))&&(t=N(N("GxG"),"Database").$process_import(t)),r(t["$is_a?"](N(N(N("GxG"),"Database"),"DetachedHash")))?(N(_("GxG"),"APPLICATIONS")["$[]"]("libraries")["$[]="](e["$[]"]("uuid").$to_s().$to_sym(),N(N("GxG"),"Library").$new(t)),r(n["$respond_to?"]("call"))?n.$call(N(_("GxG"),"APPLICATIONS")["$[]"]("libraries")["$[]"](e["$[]"]("uuid").$to_s().$to_sym())):A):A):A)})):A}))):A}),-1),u(o,"$load_libraries",(function e(t){var n=e.$$p||A,i=A;return e.$$p=null,null==t&&(t=[]),i=!0,r(t["$is_any?"](N("Array"),N(N(N("GxG"),"Database"),"DetachedArray")))&&c(t,"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=A),function(){try{var e=d("break");return c(N(_("GxG"),"DISPLAY_DETAILS")["$[]"]("object"),"load_library",[t],(function t(n){var a=null==t.$$s?this:t.$$s;if(null==n&&(n=A),r(n["$loaded?"]()))return A;a.$log_warn("Unable to load library: "+n.$title()),i=!1,e.$throw(A,t.$$is_lambda)}),{$$s:n})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()}),{$$s:this}),r(n["$respond_to?"]("call"))&&n.$call(i),i}),-1),u(o,"$application_open",(function(e,t){var n=this,i=A,a=A;return null==e&&(e=new Map),null==t&&(t=new Map),i=!1,r(e["$is_a?"](N("Hash")))?(a=c(_("Proc"),"new",[],h(A)),n.$set_busy(!0),c(N(_("GxG"),"CONNECTION"),"application_open",[e,a],(function e(n){var a=null==e.$$s?this:e.$$s;return null==n&&(n=A),r(n["$is_a?"](N("Hash")))?r(n["$[]"]("result")["$is_a?"](N("Hash")))?c(N(_("GxG"),"CONNECTION"),"pull_object",[n["$[]"]("result")["$[]"]("location")],(function e(r){var a=null==e.$$s?this:e.$$s;return null==r&&(r=A),N(_("GxG"),"APPLICATIONS")["$[]"]("processes")["$[]="](n["$[]"]("result")["$[]"]("application").$to_s().$to_sym(),N(_("GxG"),"Application").$new(n["$[]"]("result").$merge(new Map([["source",r]])))),i=N(_("GxG"),"APPLICATIONS")["$[]"]("processes")["$[]"](n["$[]"]("result")["$[]"]("application").$to_s().$to_sym()).$run(t),a.$set_busy(!1)}),{$$s:a}):a.$log_warn(s("Error opening Application: ",n.$inspect())):a.$log_warn("Malformed response: "+n.$inspect())}),{$$s:n})):n.$log_warn("Invalid Argument: "+e.$inspect()),i}),-1),u(o,"$site_asset",(function(e){var t=A;return null==e&&(e=A),t=r(window.location.href["$include?"]("https://"))?s("https://",window.location.host):s("http://",window.location.host),S(N(N("GxG"),"CONNECTION").$relative_url().$to_s()["$[]"](0),"/")&&(t=s(t,"/")),r(e)?s(t,_("File").$expand_path(s(s(N(N("GxG"),"CONNECTION").$relative_url().$to_s(),"/"),e.$to_s()))):""}),-1),u(o,"$theme_icon",(function(e){return null==e&&(e=A),r(e)?s(s(this.theme_prefix,"/icons/"),e.$to_s()):""}),-1),u(o,"$theme_background",(function(e){return null==e&&(e=A),r(e)?s(s(this.theme_prefix,"/backgrounds/"),e.$to_s()):""}),-1),u(o,"$theme_widget",(function(e){return null==e&&(e=A),r(e)?s(s(this.theme_prefix,"/widgets/"),e.$to_s()):""}),-1),u(o,"$theme_font",(function(e){return null==e&&(e=A),r(e)?s(s(this.theme_prefix,"/fonts/"),e.$to_s()):""}),-1),u(o,"$theme_window_title_layout",(function(){return new Map([["left",["close","minimize","maximize"]],["center",["title"]],["right",[]]])})),u(o,"$build_components",(function(e,t,n){var a=A,s=A,o=A;if(null==e&&(e=A),null==t&&(t=A),null==n&&(n=new Map),a=!1,r(e)||(e=N(N("GxG"),"DISPLAY_DETAILS")["$[]"]("object")),r(e)&&r(t["$is_any?"](N("Array"),N(N(N("GxG"),"Database"),"DetachedArray")))){for(s=[new Map([["parent",e],["content",t]])];r(p(s.$size(),0));)o=s.$shift(),r(o)&&c(o["$[]"]("content"),"each",[],(function(e){var t=A;return null==e&&(e=A),t=r(e["$is_any?"](N(N(N("GxG"),"Database"),"DetachedHash"),N(N(N("GxG"),"Database"),"PersistedHash")))?o["$[]"]("parent").$add_child(e,n.$merge(new Map([["template_uuid",e.$uuid()]]))):o["$[]"]("parent").$add_child(e,n),r(p(e["$[]"]("content").$size(),0))&&s["$<<"](new Map([["parent",t],["content",e["$[]"]("content")]])),i(e["$[]"]("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.application.viewport")&&r(n["$[]"]("application"))&&(t.$set_application(n["$[]"]("application")),r(n["$[]"]("application").$get_viewport(t.$uuid()))||n["$[]"]("application").$link_viewport(t)),i(e["$[]"]("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.window")&&r(n["$[]"]("application"))&&(n["$[]"]("application").$link_window(t),t.$set_application(n["$[]"]("application"))),i(e["$[]"]("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.window.dialog")&&r(n["$[]"]("application"))&&t.$set_application(n["$[]"]("application")),i(e["$[]"]("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.menu.bar")&&r(n["$[]"]("application"))&&t.$set_application(n["$[]"]("application")),i(e["$[]"]("component").$to_s().$downcase().$to_sym(),"org.gxg.gui.menu")&&r(n["$[]"]("application"))&&t.$set_application(n["$[]"]("application")),r(o["$[]"]("parent")["$is_a?"](N(N(N("GxG"),"Gui"),"Window")))&&r(e["$[]"]("options")["$[]"]("track"))?o["$[]"]("parent").$track_deltas(t.$uuid(),t,e["$[]"]("options")["$[]"]("track")):A}));a=!0}return a}),-1),u(o,"$build",(function(e,t){return null==e&&(e=A),null==t&&(t=new Map),this.$build_components(this,e,t)}),-1),u(o,"$build_page",(function(e){var t=this,n=A;return null==e&&(e=A),r(e["$is_any?"](N(N(N("GxG"),"Database"),"DetachedHash"),N(N(N("GxG"),"Database"),"DetachedHash")))?(t.element=document.body,t.settings=e["$[]"]("settings"),t.theme_prefix=s(N(N("GxG"),"CONNECTION").$relative_url(),"/themes/"+(r(n=t.settings["$[]"]("theme"))?n:"default")),t.uuid=e.$uuid().$to_s().$to_sym(),t.element.id=t.uuid.$to_s(),t.title=t.settings["$[]"]("page_title").$to_s(),document.title=t.title.$to_s(),t.component="org.gxg.gui.page",t.parent=t,t.children=new Map,t.domtype="body",t.states=new Map([["org-gxg-gui-page",!0]]),r(e["$[]"]("options")["$is_any?"](N("Hash"),N(N(N("GxG"),"Database"),"DetachedHash"),N(N(N("GxG"),"Database"),"DetachedHash")))&&r(e["$[]"]("options")["$[]"]("states")["$is_any?"](N("Array"),N(N(N("GxG"),"Database"),"PersistedArray"),N(N(N("GxG"),"Database"),"DetachedArray")))&&c(e["$[]"]("options")["$[]"]("states"),"each",[],(function e(t){var n,r=null==e.$$s?this:e.$$s;return null==r.states&&(r.states=A),null==t&&(t=A),n=[t.$to_s().$to_sym(),!0],c(r.states,"[]=",n),n[n.length-1]}),{$$s:t}),t.style=new Map,r(e["$[]"]("options")["$is_any?"](N("Hash"),N(N(N("GxG"),"Database"),"DetachedHash"),N(N(N("GxG"),"Database"),"DetachedHash")))&&r(e["$[]"]("options")["$[]"]("style")["$is_any?"](N("Hash"),N(N(N("GxG"),"Database"),"DetachedHash"),N(N(N("GxG"),"Database"),"DetachedHash")))&&(t.style=e["$[]"]("options")["$[]"]("style")),t.options=new Map,r(e["$[]"]("options")["$is_any?"](N("Hash"),N(N(N("GxG"),"Database"),"DetachedHash"),N(N(N("GxG"),"Database"),"DetachedHash")))&&c(e["$[]"]("options"),"each_pair",[],(function e(t,n){var i,a=null==e.$$s?this:e.$$s;return null==a.options&&(a.options=A),null==t&&(t=A),null==n&&(n=A),r(["background-color","data","icon","label","content","uuid","title","opacity","window_title","menu","top","right","bottom","left","height","width","close","minimize","maximize","resize","scroll","modal","track","states","style"]["$include?"](t.$to_s().$to_sym()))?A:(i=[t.$to_s().$to_sym(),n.$to_s()],c(a.options,"[]=",i),i[i.length-1])}),{$$s:t}),t.event_handlers=new Map,t.event_listeners=new Map,t.$creation(),r(e["$[]"]("script")["$is_a?"](N("String")))&&r(p(e["$[]"]("script").$size(),0))&&t.$set_script(e["$[]"]("script")),t.$build_components(t,e["$[]"]("content"))):A}),-1),u(o,"$initialize",(function(e){var t=this;return null==e&&(e=A),N(N("GxG"),"DISPLAY_DETAILS")["$[]="]("object",t),c(N(N("GxG"),"DISPLAY_DETAILS")["$[]"]("object"),"on",["onbeforeunload"],(function(e){return null==e&&(e=A),N(N("GxG"),"DISPLAY_DETAILS")["$[]"]("socket").$close()})),c(N(N("GxG"),"DISPLAY_DETAILS")["$[]"]("object"),"on",["beforeunload"],(function(e){return null==e&&(e=A),N(N("GxG"),"DISPLAY_DETAILS")["$[]"]("socket").$close()})),c(N(N("GxG"),"DISPLAY_DETAILS")["$[]"]("object"),"on",["onunload"],(function(e){return null==e&&(e=A),N(N("GxG"),"DISPLAY_DETAILS")["$[]"]("socket").$close()})),t.theme_prefix=s(N(N("GxG"),"CONNECTION").$relative_url(),"/themes/"+N(N("GxG"),"DISPLAY_DETAILS")["$[]"]("theme")),t.settings=A,t.busy=!1,t.window_switcher=A,t.window_registry=new Map,t.dialog=A,t.dialog_queue=[],t.title_registry=new Map,t.$build_page(e),t}),-1),u(o,"$find_object_by_dom_id",(function(e){var t=A,n=A,i=A,a=A;for(null==e&&(e=A),t=A,e=r(e["$is_a?"](N("Numeric")))?s("_",e.$to_i().$to_s()):e.$to_s(),n=[this];r(p(n.$size(),0));){if(i=n.$shift(),a=i.$element().attributes.getNamedItem("id")||0,!r(0==a)&&(a=a.value,r(a.$to_s()==e.$to_s()))){t=i;break}r(i["$respond_to?"]("children"))&&function(){try{var s=d("break");return c(i.$children().$keys(),"each",[],(function o($){return null==$&&($=A),a=i.$children()["$[]"]($).$element().attributes.getNamedItem("id")||0,r(0==a)?A:(a=a.value,r(a.$to_s()==e.$to_s())?(t=i.$children()["$[]"]($),void s.$throw(A,o.$$is_lambda)):n["$<<"](i.$children()["$[]"]($)))}))}catch(e){if(e===s)return e.$v;throw e}finally{s.is_orphan=!0}}()}return t}),-1),u(o,"$find_object",(function(e){var t=A,n=A,i=A;for(null==e&&(e=A),t=A,n=[this];r(p(n.$size(),0));)if(i=n.$shift(),r(i["$respond_to?"]("children"))){if(r(i.$children()["$[]"](e))){t=i.$children()["$[]"](e);break}c(i.$children().$keys(),"each",[],(function(e){return null==e&&(e=A),n["$<<"](i.$children()["$[]"](e))}))}return t}),-1),u(o,"$find_object_by",(function(e){var t=this,n=A,a=A;return null==e&&(e=A),n=A,a=!!r(_("GxG")["$valid_uuid?"](e)),function(){try{var s=d("break");return c(t.title_registry.$keys(),"each",[],(function t(o){var $=null==t.$$s?this:t.$$s;if(null==$.title_registry&&($.title_registry=A),null==o&&(o=A),i(a,!0)){if(!r($.title_registry["$[]"](o).$to_s()["$include?"](e.$to_s())))return A;n=$.$find_object(o),s.$throw(A,t.$$is_lambda)}else{if(!i(e,$.title_registry["$[]"](o)))return A;n=$.$find_object(o),s.$throw(A,t.$$is_lambda)}}),{$$s:t})}catch(e){if(e===s)return e.$v;throw e}finally{s.is_orphan=!0}}(),n}),-1),u(o,"$register_object",(function(e,t){return null==e&&(e=A),null==t&&(t=A),!(!r(e)||!r(t))&&(this.title_registry["$[]="](t.$uuid(),e.$to_s()),!0)}),-1),u(o,"$unregister_object",(function(e){var t=A;return null==e&&(e=A),!!r(e)&&(t=this.$find_object_by(e),r(t)&&(r(t["$is_a?"](N(N(N("GxG"),"Gui"),"ApplicationViewport")))&&t.$detach(),this.title_registry.$delete(t.$uuid())),!0)}),-1),u(o,"$factory",(function(){var e,t=this;return t.factory=r(e=t.factory)?e:N(N(N(_("GxG"),"Gui"),"Vdom"),"Factory").$new(t)})),u(o,"$element",(function(){return this.$factory().$body()})),u(o,"$parent",O),u(o,"$root",O),u(o,"$domclear",(function(){for(;document.body.firstChild;)document.body.removeChild(document.body.firstChild);return!0})),u(o,"$clear",(function(){var e,t=this;return c(t,"all_descendants",[],(function(e){return null==e&&(e=A),e.$remove_listeners()})),t.$remove_listeners(),c(t,"each_child",[],(function(e){return null==e&&(e=A),e.$destroy()})),e=document.body.getAttributeNames(),c(e,"each",[],(function e(t){return null==t&&(t=A),(null==e.$$s?this:e.$$s).$clear_attribute(t)}),{$$s:t}),!0}))}(I[0],0,I),o(D,"$load_page",(function(e){var t,n,a=this;return null==e&&(e=A),r(N(N("GxG"),"DISPLAY_DETAILS")["$[]"]("object")["$is_any?"](N(N(N("GxG"),"Gui"),"Page"),N(N(N(N("GxG"),"Gui"),"Vdom"),"Page")))&&(N(N("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$clear(),N(N(N("GxG"),"Gui"),"Vdom").$clear_rules(),N(N(N("GxG"),"Gui"),"Vdom").$refresh_css_cache()),t=r(n=e["$[]"]("settings")["$[]"]("theme"))?n:"default",c(N(N("GxG"),"CONNECTION"),"pull_object",["/Public/www/content/themes/"+t],(function t(n){var a=null==t.$$s?this:t.$$s;return null==n&&(n=A),r(n["$is_a?"](N("Array")))?(c(n["$[]"](0)["$[]"]("resources"),"each",[],(function(e){return null==e&&(e=A),i(e["$[]"]("resource_type"),"font-face")?N(N(N("GxG"),"Gui"),"Vdom").$load_font(e):A})),c(n["$[]"](0)["$[]"]("rules"),"each_pair",[],(function(e,t){return null==e&&(e=A),null==t&&(t=A),N(N(N("GxG"),"Gui"),"Vdom").$set_rule(e,t)})),r(N(N("GxG"),"DISPLAY_DETAILS")["$[]"]("object")["$is_any?"](N(N(N("GxG"),"Gui"),"Page"),N(N(N(N("GxG"),"Gui"),"Vdom"),"Page")))?N(N("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$build_page(e):N(N("GxG"),"DISPLAY_DETAILS")["$[]="]("object",N(N(N("GxG"),"Gui"),"Page").$new(e)),N(N("GxG"),"Gui").$layout_refresh()):a.$log_error(new Map([["error",T("Exception").$new("Invalid theme object as response.")]]))}),{$$s:a}),r(e["$[]"]("requirements")["$is_any?"](N("Array"),N(N(N("GxG"),"Database"),"DetachedArray"),N(N(N("GxG"),"Database"),"PersistedArray")))&&r(p(e["$[]"]("requirements").$size(),0))&&a.$load_libraries(e["$[]"]("requirements")),r(e["$[]"]("auto_start")["$is_any?"](N("Array"),N(N(N("GxG"),"Database"),"DetachedArray"),N(N(N("GxG"),"Database"),"PersistedArray")))&&r(p(e["$[]"]("auto_start").$size(),0))&&c(e["$[]"]("auto_start"),"each",[],(function e(t){return null==t&&(t=A),(null==e.$$s?this:e.$$s).$application_open(new Map([["name",t["$[]"]("name")],["restore",!0]]))}),{$$s:a}),!0}),-1),o(D,"$navigate_to",(function(t){var n=A,a=A;return null==t&&(t=""),n=r(p(N(N("GxG"),"CONNECTION").$relative_url().$to_s().$size(),0))?t["$[]"](e.Range.$new(N(N("GxG"),"CONNECTION").$relative_url().$size(),-1,!1)):t,(i(n,"/")||i(n,""))&&(n="/index"),i(n["$[]"](0),"/")||(n=s("/",n)),N(N("GxG"),"DISPLAY_DETAILS")["$[]="]("host_path",n),r(N(T("GxG"),"PAGES")["$[]"](n))?N(N(T("GxG"),"Gui"),"Vdom").$load_page(N(T("GxG"),"PAGES")["$[]"](n)):(a=c(T("Proc"),"new",[],(function e(t){return null==t&&(t=A),(null==e.$$s?this:e.$$s).$log_error(t.$inspect())}),{$$s:this}),c(N(N("GxG"),"CONNECTION"),"pull_object",["/Public/www/content/pages"+n,a],(function e(t){var i=null==e.$$s?this:e.$$s;return null==t&&(t=A),i.$puts("Response (Page Load): "+t.$inspect()),r(t["$is_any?"](N("Array")))?(N(T("GxG"),"PAGES")["$[]="](n,t["$[]"](0)),N(N(T("GxG"),"Gui"),"Vdom").$load_page(N(T("GxG"),"PAGES")["$[]"](n))):i.$log_error(new Map([["error",T("Exception").$new("Invalid page object as response.")]])),N(N("GxG"),"Gui").$layout_refresh()}),{$$s:this}))}),-1)}(D[0],D)}(D[0],D)}(M[0],M)},Opal.modules["web/gxg_foundation"]=function(e){var t,n=e.module,r=e.klass,i=e.send2,a=e.find_super,s=e.send,o=e.def,u=e.truthy,l=e.rb_gt,c=e.eqeq,_=e.const_set,d=e.defs,p=e.Class,f=e.neqeq,h=e.return_ivar,m=e.rb_plus,g=[],v=e.nil,b=e.$$$;return e.add_stubs("[]=,to_s,clone,values,children,>,size,shift,==,domtype,to_sym,title,value,each,<<,delete,[],on,index,keys,component_class,is_a?,is_any?,component_registered?,!=,log_warn,inspect,register_component_class,include?,new_component,title=,build_components,page,find_object_by,set_text,state_active?,set_state,application,menu_item_select,new,add_child,+,set_attribute,uuid,set_script,find_descendant,raise,downcase,value=,private,log_error"),function(t,$){var h=[n(t,"GxG")].concat($);(function(t,$){var h=n(t,"Gui"),m=[h].concat($),g=e.$r(m);r(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"Page"),"Page"),function(e,t){var n=r(e,t,"Abbreviation"),$=n.$$prototype;$.title=$.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="abbr",t=["title",n.title.$clone().$to_s()],s(n.options,"[]=",t),t[t.length-1]}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Address");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="address"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Area");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="area"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Bold");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="b"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Bdi");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="bdi"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Bdo");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="bdo"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"BlockQuote");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="blockquote"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Break");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="br"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Caption");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="caption"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Cite");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="cite"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Code");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="code"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Column");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="col"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"ColumnGroup");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="colgroup"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Data");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="data"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"DataList");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="datalist"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Description");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="dd"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Deleted");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="del"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Details");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="details"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Dfn");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="dfn"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Dialog");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="dialog"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Division");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"DescriptionList");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="dl"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"DescriptionTerm");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="dt"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Emphasis");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="em"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Figure");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="figure"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"FigureCaption");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="figcaption"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"ThemeDivider");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="hr"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Italic");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="i"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"InlineFrame");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="iframe"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Insertion");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ins"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"KeyboardKey");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="kbd"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Map");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="map"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Mark");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="mark"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Meter");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="meter"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"NoScript");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="noscript"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Object");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="object"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"OptionGroup");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="optgroup"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Parameter");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="param"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Picture");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="picture"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Preformatted");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="pre"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Progress");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="progress"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Quotation");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="q"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"StrikeThrough");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="s"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Sample");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="samp"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Source");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="source"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Strong");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="strong"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Small");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="small"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Style");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="style"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"SubScript");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="sub"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Summary");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="summary"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"SuperScript");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="sup"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Svg");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="svg"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Template");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="template"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Time");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="time"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Track");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="track"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Misspelled");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="u"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Variable");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="var"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"WordBreak");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="wbr"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Header");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="header"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Navigation");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="nav"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Main");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="main"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Section");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="section"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Article");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="article"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Aside");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="aside"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Footer");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="footer"}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Form");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div"})),o(n,"$form_data",(function(){var e=v,t=v,n=v;for(e=new Map,t=this.$children().$values();u(l(t.$size(),0));)n=t.$shift(),u(n)&&(c(n.$domtype(),"input")?e["$[]="](n.$title().$to_s().$to_sym(),n.$value()):s(n.$children().$values(),"each",[],(function(e){return null==e&&(e=v),t["$<<"](e)})));return e}))}(m[0],b(b(b(g("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"ButtonInput");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),t=["type","button"],s(n.options,"[]=",t),t[t.length-1]}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseClickableElement")),function(e,t){var n=r(e,t,"SubmitButton");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),t=["type","submit"],s(n.options,"[]=",t),t[t.length-1]}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseClickableElement")),function(e,t){var n=r(e,t,"Block");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",t.options.$delete("type"),!0}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseClickableElement")),function(e,t){var n=r(e,t,"CheckBox");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),t=["type","checkbox"],s(n.options,"[]=",t),t[t.length-1]}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseClickableElement")),function(e,t){var n=r(e,t,"Image");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n,r=this;return e.$$p=null,i(r,a(r,"_before_create",e,!1,!0),"_before_create",[],null),r.domtype="image",u(r.options["$[]"]("source"))&&r.options["$[]="]("src",r.options.$delete("source")),u(n=r.options["$[]"]("alt"))?n:(t=["alt",r.options["$[]"]("src")],s(r.options,"[]=",t),t[t.length-1])}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Video");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="video",u(n.options["$[]"]("source"))?(t=["src",n.options.$delete("source")],s(n.options,"[]=",t),t[t.length-1]):v}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Audio");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="audio",u(n.options["$[]"]("source"))?(t=["src",n.options.$delete("source")],s(n.options,"[]=",t),t[t.length-1]):v}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Canvas");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="canvas",u(n.options["$[]"]("source"))?(t=["src",n.options.$delete("source")],s(n.options,"[]=",t),t[t.length-1]):v}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"HiddenInput");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),t=["type","hidden"],s(n.options,"[]=",t),t[t.length-1]}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var n=r(e,t,"FileInput");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),t=["type","file"],s(n.options,"[]=",t),t[t.length-1]}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var n=r(e,t,"TextInput");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),t=["type","text"],s(n.options,"[]=",t),t[t.length-1]}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var n=r(e,t,"PasswordInput");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),t=["type","password"],s(n.options,"[]=",t),t[t.length-1]}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var n=r(e,t,"ResetInput");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),t=["type","reset"],s(n.options,"[]=",t),t[t.length-1]}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var n=r(e,t,"RadioButton");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),t=["type","radio"],s(n.options,"[]=",t),t[t.length-1]}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var n=r(e,t,"ColorPicker");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),t=["type","color"],s(n.options,"[]=",t),t[t.length-1]}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var n=r(e,t,"DatePicker");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),t=["type","date"],s(n.options,"[]=",t),t[t.length-1]}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var n=r(e,t,"DateTimeLocal");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),t=["type","datetime-local"],s(n.options,"[]=",t),t[t.length-1]}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var n=r(e,t,"EmailInput");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),t=["type","email"],s(n.options,"[]=",t),t[t.length-1]}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var n=r(e,t,"MonthPicker");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),t=["type","month"],s(n.options,"[]=",t),t[t.length-1]}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var n=r(e,t,"NumberInput");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),t=["type","number"],s(n.options,"[]=",t),t[t.length-1]}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var n=r(e,t,"RangeInput");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),t=["type","range"],s(n.options,"[]=",t),t[t.length-1]}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var n=r(e,t,"SearchInput");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),t=["type","search"],s(n.options,"[]=",t),t[t.length-1]}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var n=r(e,t,"PhoneInput");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),t=["type","tel"],s(n.options,"[]=",t),t[t.length-1]}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var n=r(e,t,"TimePicker");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),t=["type","time"],s(n.options,"[]=",t),t[t.length-1]}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var n=r(e,t,"UrlInput");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),t=["type","url"],s(n.options,"[]=",t),t[t.length-1]}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var n=r(e,t,"WeekPicker");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),t=["type","week"],s(n.options,"[]=",t),t[t.length-1]}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseInputElement")),function(e,t){var n=r(e,t,"Label");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="label"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"TextArea");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="textarea"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Output");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="output"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Paragraph");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="p"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Header1");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="h1"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Header2");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="h2"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Header3");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="h3"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Header4");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="h4"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Header5");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="h5"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Header6");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="h6"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"List");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ul"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"OrderedList");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="ol"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"ListItem");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Anchor");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="a"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"ExternalLink");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),u(t.options["$[]"]("target"))||t.options["$[]="]("target","_blank"),t.domtype="a"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Button"),$=n.$$prototype;$.options=$.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="button",c(n.options["$[]"]("type"),"button")||n.options["$[]="]("type","button"),c(n.states["$[]"]("button"),!0)?v:(t=["button",!0],s(n.states,"[]=",t),t[t.length-1])})),o(n,"$_after_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_after_create",e,!1,!0),"_after_create",[],null),s(t,"on",["click"],(function(e){return null==e&&(e=v),document.activeElement.blur()}))}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Table");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="table"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"TableHeader");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="th"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"TableRow");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="tr"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"TableCell");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="td"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"BlockTable");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("table"),!0)?v:(t=["table",!0],s(n.states,"[]=",t),t[t.length-1])}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"BlockTableHeader");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("th"),!0)?v:(t=["th",!0],s(n.states,"[]=",t),t[t.length-1])}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"BlockTableRow");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("tr"),!0)?v:(t=["tr",!0],s(n.states,"[]=",t),t[t.length-1])}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"BlockTableCell");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("td"),!0)?v:(t=["td",!0],s(n.states,"[]=",t),t[t.length-1])}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Span");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="span"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Select");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="select"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Option");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="option"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"FieldSet");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="fieldset",c(n.states["$[]"]("fieldset"),!0)?v:(t=["fieldset",!0],s(n.states,"[]=",t),t[t.length-1])}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),function(e,t){var n=r(e,t,"Legend");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="legend"}))}(m[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),_(m[0],"COMPONENT_CLASSES",new Map([["org.gxg.gui.page",b(b(b("GxG"),"Gui"),"Page")],["org.gxg.gui.abbreviation",b(b(b("GxG"),"Gui"),"Abbreviation")],["org.gxg.gui.address",b(b(b("GxG"),"Gui"),"Address")],["org.gxg.gui.area",b(b(b("GxG"),"Gui"),"Area")],["org.gxg.gui.bold",b(b(b("GxG"),"Gui"),"Bold")],["org.gxg.gui.bdi",b(b(b("GxG"),"Gui"),"Bdi")],["org.gxg.gui.bdo",b(b(b("GxG"),"Gui"),"Bdo")],["org.gxg.gui.blockquote",b(b(b("GxG"),"Gui"),"BlockQuote")],["org.gxg.gui.break",b(b(b("GxG"),"Gui"),"Break")],["org.gxg.gui.caption",b(b(b("GxG"),"Gui"),"Caption")],["org.gxg.gui.cite",b(b(b("GxG"),"Gui"),"Cite")],["org.gxg.gui.code",b(b(b("GxG"),"Gui"),"Code")],["org.gxg.gui.column",b(b(b("GxG"),"Gui"),"Column")],["org.gxg.gui.column.group",b(b(b("GxG"),"Gui"),"ColumnGroup")],["org.gxg.gui.data",b(b(b("GxG"),"Gui"),"Data")],["org.gxg.gui.data.list",b(b(b("GxG"),"Gui"),"DataList")],["org.gxg.gui.description",b(b(b("GxG"),"Gui"),"Description")],["org.gxg.gui.deleted",b(b(b("GxG"),"Gui"),"Deleted")],["org.gxg.gui.details",b(b(b("GxG"),"Gui"),"Details")],["org.gxg.gui.dfn",b(b(b("GxG"),"Gui"),"Dfn")],["org.gxg.gui.dialog",b(b(b("GxG"),"Gui"),"Dialog")],["org.gxg.gui.division",b(b(b("GxG"),"Gui"),"Division")],["org.gxg.gui.description.list",b(b(b("GxG"),"Gui"),"DescriptionList")],["org.gxg.gui.description.item",b(b(b("GxG"),"Gui"),"DescriptionTerm")],["org.gxg.gui.emphasis",b(b(b("GxG"),"Gui"),"Emphasis")],["org.gxg.gui.figure",b(b(b("GxG"),"Gui"),"Figure")],["org.gxg.gui.figure.caption",b(b(b("GxG"),"Gui"),"FigureCaption")],["org.gxg.gui.theme.divider",b(b(b("GxG"),"Gui"),"ThemeDivider")],["org.gxg.gui.italic",b(b(b("GxG"),"Gui"),"Italic")],["org.gxg.gui.frame.inline",b(b(b("GxG"),"Gui"),"InlineFrame")],["org.gxg.gui.insertion",b(b(b("GxG"),"Gui"),"Insertion")],["org.gxg.gui.keyboard.key",b(b(b("GxG"),"Gui"),"KeyboardKey")],["org.gxg.gui.map",b(b(b("GxG"),"Gui"),"Map")],["org.gxg.gui.mark",b(b(b("GxG"),"Gui"),"Mark")],["org.gxg.gui.meter",b(b(b("GxG"),"Gui"),"Meter")],["org.gxg.gui.noscript",b(b(b("GxG"),"Gui"),"NoScript")],["org.gxg.gui.object",b(b(b("GxG"),"Gui"),"Object")],["org.gxg.gui.option.group",b(b(b("GxG"),"Gui"),"OptionGroup")],["org.gxg.gui.parameter",b(b(b("GxG"),"Gui"),"Parameter")],["org.gxg.gui.picture",b(b(b("GxG"),"Gui"),"Picture")],["org.gxg.gui.preformatted",b(b(b("GxG"),"Gui"),"Preformatted")],["org.gxg.gui.progress",b(b(b("GxG"),"Gui"),"Progress")],["org.gxg.gui.quotation",b(b(b("GxG"),"Gui"),"Quotation")],["org.gxg.gui.strike.through",b(b(b("GxG"),"Gui"),"StrikeThrough")],["org.gxg.gui.sample",b(b(b("GxG"),"Gui"),"Sample")],["org.gxg.gui.section",b(b(b("GxG"),"Gui"),"Section")],["org.gxg.gui.small",b(b(b("GxG"),"Gui"),"Small")],["org.gxg.gui.source",b(b(b("GxG"),"Gui"),"Source")],["org.gxg.gui.strong",b(b(b("GxG"),"Gui"),"Strong")],["org.gxg.gui.style",b(b(b("GxG"),"Gui"),"Style")],["org.gxg.gui.sub.script",b(b(b("GxG"),"Gui"),"SubScript")],["org.gxg.gui.summary",b(b(b("GxG"),"Gui"),"Summary")],["org.gxg.gui.super.script",b(b(b("GxG"),"Gui"),"SuperScript")],["org.gxg.gui.svg",b(b(b("GxG"),"Gui"),"Svg")],["org.gxg.gui.template",b(b(b("GxG"),"Gui"),"Template")],["org.gxg.gui.text.area",b(b(b("GxG"),"Gui"),"TextArea")],["org.gxg.gui.time",b(b(b("GxG"),"Gui"),"Time")],["org.gxg.gui.track",b(b(b("GxG"),"Gui"),"Track")],["org.gxg.gui.misspelled",b(b(b("GxG"),"Gui"),"Misspelled")],["org.gxg.gui.variable",b(b(b("GxG"),"Gui"),"Variable")],["org.gxg.gui.word.break",b(b(b("GxG"),"Gui"),"WordBreak")],["org.gxg.gui.header",b(b(b("GxG"),"Gui"),"Header")],["org.gxg.gui.navigator",b(b(b("GxG"),"Gui"),"Navigation")],["org.gxg.gui.main",b(b(b("GxG"),"Gui"),"Main")],["org.gxg.gui.article",b(b(b("GxG"),"Gui"),"Article")],["org.gxg.gui.aside",b(b(b("GxG"),"Gui"),"Aside")],["org.gxg.gui.footer",b(b(b("GxG"),"Gui"),"Footer")],["org.gxg.gui.form",b(b(b("GxG"),"Gui"),"Form")],["org.gxg.gui.input.button",b(b(b("GxG"),"Gui"),"ButtonInput")],["org.gxg.gui.input.button.submit",b(b(b("GxG"),"Gui"),"SubmitButton")],["org.gxg.gui.block",b(b(b("GxG"),"Gui"),"Block")],["org.gxg.gui.button.checkbox",b(b(b("GxG"),"Gui"),"CheckBox")],["org.gxg.gui.image",b(b(b("GxG"),"Gui"),"Image")],["org.gxg.gui.video",b(b(b("GxG"),"Gui"),"Video")],["org.gxg.gui.audio",b(b(b("GxG"),"Gui"),"Audio")],["org.gxg.gui.canvas",b(b(b("GxG"),"Gui"),"Canvas")],["org.gxg.gui.input.hidden",b(b(b("GxG"),"Gui"),"HiddenInput")],["org.gxg.gui.input.file",b(b(b("GxG"),"Gui"),"FileInput")],["org.gxg.gui.input.text",b(b(b("GxG"),"Gui"),"TextInput")],["org.gxg.gui.input.password",b(b(b("GxG"),"Gui"),"PasswordInput")],["org.gxg.gui.input.reset",b(b(b("GxG"),"Gui"),"ResetInput")],["org.gxg.gui.button.radio",b(b(b("GxG"),"Gui"),"RadioButton")],["org.gxg.gui.picker.color",b(b(b("GxG"),"Gui"),"ColorPicker")],["org.gxg.gui.picker.date",b(b(b("GxG"),"Gui"),"DatePicker")],["org.gxg.gui.input.datetime.local",b(b(b("GxG"),"Gui"),"DateTimeLocal")],["org.gxg.gui.input.email",b(b(b("GxG"),"Gui"),"EmailInput")],["org.gxg.gui.picker.month",b(b(b("GxG"),"Gui"),"MonthPicker")],["org.gxg.gui.picker.number",b(b(b("GxG"),"Gui"),"NumberInput")],["org.gxg.gui.input.range",b(b(b("GxG"),"Gui"),"RangeInput")],["org.gxg.gui.input.search",b(b(b("GxG"),"Gui"),"SearchInput")],["org.gxg.gui.input.phone",b(b(b("GxG"),"Gui"),"PhoneInput")],["org.gxg.gui.picker.time",b(b(b("GxG"),"Gui"),"TimePicker")],["org.gxg.gui.input.url",b(b(b("GxG"),"Gui"),"UrlInput")],["org.gxg.gui.picker.week",b(b(b("GxG"),"Gui"),"WeekPicker")],["org.gxg.gui.label",b(b(b("GxG"),"Gui"),"Label")],["org.gxg.gui.output",b(b(b("GxG"),"Gui"),"Output")],["org.gxg.gui.paragraph",b(b(b("GxG"),"Gui"),"Paragraph")],["org.gxg.gui.header.one",b(b(b("GxG"),"Gui"),"Header1")],["org.gxg.gui.header.two",b(b(b("GxG"),"Gui"),"Header2")],["org.gxg.gui.header.three",b(b(b("GxG"),"Gui"),"Header3")],["org.gxg.gui.header.four",b(b(b("GxG"),"Gui"),"Header4")],["org.gxg.gui.header.five",b(b(b("GxG"),"Gui"),"Header5")],["org.gxg.gui.header.six",b(b(b("GxG"),"Gui"),"Header6")],["org.gxg.gui.list",b(b(b("GxG"),"Gui"),"List")],["org.gxg.gui.list.ordered",b(b(b("GxG"),"Gui"),"OrderedList")],["org.gxg.gui.list.item",b(b(b("GxG"),"Gui"),"ListItem")],["org.gxg.gui.link.anchor",b(b(b("GxG"),"Gui"),"Anchor")],["org.gxg.gui.link.external",b(b(b("GxG"),"Gui"),"ExternalLink")],["org.gxg.gui.button",b(b(b("GxG"),"Gui"),"Button")],["org.gxg.gui.table",b(b(b("GxG"),"Gui"),"Table")],["org.gxg.gui.table.header",b(b(b("GxG"),"Gui"),"TableHeader")],["org.gxg.gui.table.row",b(b(b("GxG"),"Gui"),"TableRow")],["org.gxg.gui.table.cell",b(b(b("GxG"),"Gui"),"TableCell")],["org.gxg.gui.block.table",b(b(b("GxG"),"Gui"),"BlockTable")],["org.gxg.gui.block.table.header",b(b(b("GxG"),"Gui"),"BlockTableHeader")],["org.gxg.gui.block.table.row",b(b(b("GxG"),"Gui"),"BlockTableRow")],["org.gxg.gui.block.table.cell",b(b(b("GxG"),"Gui"),"BlockTableCell")],["org.gxg.gui.span",b(b(b("GxG"),"Gui"),"Span")],["org.gxg.gui.select",b(b(b("GxG"),"Gui"),"Select")],["org.gxg.gui.option",b(b(b("GxG"),"Gui"),"Option")],["org.gxg.gui.field.set",b(b(b("GxG"),"Gui"),"FieldSet")],["org.gxg.gui.legend",b(b(b("GxG"),"Gui"),"Legend")]])),d(h,"$component_class",(function(e){var t=v;return null==e&&(e=v),t=v,u(e)&&(t=b(b(g("GxG"),"Gui"),"COMPONENT_CLASSES")["$[]"](e.$to_s().$to_sym())),t}),-1),d(h,"$class_component",(function(e){var t=v,n=v;return null==e&&(e=v),t=v,u(e)&&(n=b(b(g("GxG"),"Gui"),"COMPONENT_CLASSES").$values().$index(e),u(n)&&(t=b(b(g("GxG"),"Gui"),"COMPONENT_CLASSES").$keys()["$[]"](n))),t}),-1),d(h,"$component_registered?",(function(e){return null==e&&(e=v),!!u(b(g("GxG"),"Gui").$component_class(e))}),-1),d(h,"$register_component_class",(function(e,t){return null==e&&(e=v),null==t&&(t=v),!(!u(e["$is_any?"](b("String"),b("Symbol")))||!u(t["$is_a?"](p)))&&(u(b(g("GxG"),"Gui")["$component_registered?"](e.$to_s().$to_sym()))?f(b(g("GxG"),"Gui").$component_class(e.$to_s().$to_sym()),t)?(b(b(g("GxG"),"Gui"),"COMPONENT_CLASSES")["$[]="](e.$to_s().$to_sym(),t),!0):(this.$log_warn("Component Class "+e.$to_s().$to_sym().$inspect()+" => "+t.$inspect()+" already defined."),!1):(b(b(g("GxG"),"Gui"),"COMPONENT_CLASSES")["$[]="](e.$to_s().$to_sym(),t),!0))}),-1)})(h[0],h)}(g[0],g),function(e,t){var l=[n(e,"GxG")].concat(t);(function(e,t){var l=[n(e,"Gui")].concat(t);(function(e,t){var n=r(e,t,"GridContainer");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("grid-container"),!0)?v:(t=["grid-container",!0],s(n.states,"[]=",t),t[t.length-1])})),o(n,"$_after_create",(function e(){return e.$$p=null,i(this,a(this,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()}))})(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.grid.container",b(b(b("GxG"),"Gui"),"GridContainer")),function(e,t){var n=r(e,t,"GridX");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("grid-x"),!0)?v:(t=["grid-x",!0],s(n.states,"[]=",t),t[t.length-1])})),o(n,"$_after_create",(function e(){return e.$$p=null,i(this,a(this,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.grid.x",b(b(b("GxG"),"Gui"),"GridX")),function(e,t){var n=r(e,t,"GridY");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("grid-y"),!0)?v:(t=["grid-y",!0],s(n.states,"[]=",t),t[t.length-1])})),o(n,"$_after_create",(function e(){return e.$$p=null,i(this,a(this,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.grid.y",b(b(b("GxG"),"Gui"),"GridY")),function(e,t){var n=r(e,t,"Accordion"),l=n.$$prototype;l.states=l.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="ul",c(n.states["$[]"]("accordion"),!0)||n.states["$[]="]("accordion",!0),u(n.options.$keys()["$include?"]("data-accordion"))?v:(t=["data-accordion",v],s(n.options,"[]=",t),t[t.length-1])})),o(n,"$_after_create",(function e(){return e.$$p=null,i(this,a(this,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.accordion",b(b(b("GxG"),"Gui"),"Accordion")),function(e,t){var n=r(e,t,"AccordionItem"),l=n.$$prototype;l.states=l.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="li",c(n.states["$[]"]("accordion-item"),!0)||n.states["$[]="]("accordion-item",!0),u(n.options.$keys()["$include?"]("data-accordion-item"))?v:(t=["data-accordion-item",v],s(n.options,"[]=",t),t[t.length-1])})),o(n,"$_after_create",(function e(){return e.$$p=null,i(this,a(this,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.accordion.item",b(b(b("GxG"),"Gui"),"AccordionItem")),function(e,t){var n=r(e,t,"AccordionMenu"),l=n.$$prototype;l.states=l.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="ul",c(n.states["$[]"]("vertical"),!0)||n.states["$[]="]("vertical",!0),c(n.states["$[]"]("menu"),!0)||n.states["$[]="]("menu",!0),u(n.options.$keys()["$include?"]("data-accordion-menu"))?v:(t=["data-accordion-menu",v],s(n.options,"[]=",t),t[t.length-1])})),o(n,"$_after_create",(function e(){return e.$$p=null,i(this,a(this,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.accordion.menu",b(b(b("GxG"),"Gui"),"AccordionMenu")),function(e,t){var n=r(e,t,"AccordionSubMenu");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="ul",c(n.states["$[]"]("vertical"),!0)||n.states["$[]="]("vertical",!0),c(n.states["$[]"]("menu"),!0)||n.states["$[]="]("menu",!0),c(n.states["$[]"]("nested"),!0)?v:(t=["nested",!0],s(n.states,"[]=",t),t[t.length-1])})),o(n,"$_after_create",(function e(){return e.$$p=null,i(this,a(this,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.accordion.submenu",b(b(b("GxG"),"Gui"),"AccordionSubMenu")),function(e,t){var n=r(e,t,"AccordionMenuItem");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li"}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.accordion.menu.item",b(b(b("GxG"),"Gui"),"AccordionMenuItem")),function(e,t){var n=r(e,t,"AnchorButton");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="a",c(n.states["$[]"]("button"),!0)?v:(t=["button",!0],s(n.states,"[]=",t),t[t.length-1])})),o(n,"$_after_create",(function e(){return e.$$p=null,i(this,a(this,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.anchor.button",b(b(b("GxG"),"Gui"),"AnchorButton")),function(e,t){var n=r(e,t,"Badge");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="span",c(n.states["$[]"]("badge"),!0)?v:(t=["badge",!0],s(n.states,"[]=",t),t[t.length-1])})),o(n,"$_after_create",(function e(){return e.$$p=null,i(this,a(this,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.badge",b(b(b("GxG"),"Gui"),"Badge")),function(e,t){var n=r(e,t,"Breadcrumb");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="ul",c(n.states["$[]"]("breadcrumb"),!0)?v:(t=["breadcrumb",!0],s(n.states,"[]=",t),t[t.length-1])})),o(n,"$_after_create",(function e(){return e.$$p=null,i(this,a(this,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.breadcrumb",b(b(b("GxG"),"Gui"),"Breadcrumb")),function(e,t){var n=r(e,t,"BreadcrumbItem");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li"})),o(n,"$_after_create",(function e(){return e.$$p=null,i(this,a(this,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.breadcrumb.item",b(b(b("GxG"),"Gui"),"BreadcrumbItem")),function(e,t){var n=r(e,t,"ButtonGroup");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("button-group"),!0)?v:(t=["button-group",!0],s(n.states,"[]=",t),t[t.length-1])})),o(n,"$_after_create",(function e(){return e.$$p=null,i(this,a(this,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.button.group",b(b(b("GxG"),"Gui"),"ButtonGroup")),function(e,t){var n=r(e,t,"Callout");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("callout"),!0)?v:(t=["callout",!0],s(n.states,"[]=",t),t[t.length-1])})),o(n,"$_after_create",(function e(){return e.$$p=null,i(this,a(this,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.callout",b(b(b("GxG"),"Gui"),"Callout")),function(e,t){var n=r(e,t,"ColoredLabel");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="span",c(n.states["$[]"]("label"),!0)?v:(t=["label",!0],s(n.states,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.label.colored",b(b(b("GxG"),"Gui"),"ColoredLabel")),function(e,t){var n=r(e,t,"DrilldownMenu"),l=n.$$prototype;l.states=l.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="ul",c(n.states["$[]"]("vertical"),!0)||n.states["$[]="]("vertical",!0),c(n.states["$[]"]("menu"),!0)||n.states["$[]="]("menu",!0),u(n.options.$keys()["$include?"]("data-drilldown"))?v:(t=["data-drilldown",v],s(n.options,"[]=",t),t[t.length-1])})),o(n,"$_after_create",(function e(){return e.$$p=null,i(this,a(this,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.drilldown.menu",b(b(b("GxG"),"Gui"),"DrilldownMenu")),function(e,t){var n=r(e,t,"DrilldownSubMenu");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="ul",c(n.states["$[]"]("vertical"),!0)||n.states["$[]="]("vertical",!0),c(n.states["$[]"]("menu"),!0)?v:(t=["menu",!0],s(n.states,"[]=",t),t[t.length-1])})),o(n,"$_after_create",(function e(){return e.$$p=null,i(this,a(this,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.drilldown.submenu",b(b(b("GxG"),"Gui"),"DrilldownSubMenu")),function(e,t){var n=r(e,t,"DrilldownMenuItem");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li"}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.drilldown.menu.item",b(b(b("GxG"),"Gui"),"DrilldownMenuItem")),function(e,t){var n=r(e,t,"DropdownSubMenu");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="ul",c(n.states["$[]"]("menu"),!0)?v:(t=["menu",!0],s(n.states,"[]=",t),t[t.length-1])})),o(n,"$_after_create",(function e(){return e.$$p=null,i(this,a(this,"_after_create",e,!1,!0),"_after_create",[],null),$(document).foundation()}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.dropdown.submenu",b(b(b("GxG"),"Gui"),"DropdownSubMenu")),function(e,t){var n=r(e,t,"DropdownMenuItem"),$=n.$$prototype;$.uuid=$.settings=$.application=$.label=$.parent=v,o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li"})),o(n,"$initialize",(function e(t,n,r){var s=this;return e.$$p=null,null==r&&(r=new Map),s.label=v,i(s,a(s,"initialize",e,!1,!0),"initialize",[t,n,r],null),s}),-3),o(n,"$cascade",(function(){var e,t,n=this,r=v;return(r=n.$new_component("org.gxg.gui.link.anchor"))["$title="]("label "+n.uuid.$to_s()),r["$[]="]("options",new Map([["content",(u(e=n.settings["$[]"]("label"))?e:"Untitled").$to_s()]])),r["$[]="]("script","\n on(:mouseup) do |event|\n if @parent.enabled?\n @parent.selecct()\n end\n end\n "),n.$page().$build_components(n,[r],new Map([["application",n.application]])),t=n.$page().$find_object_by("label "+n.uuid.$to_s()),u(t)?n.label=t:v})),o(n,"$label",h("label")),o(n,"$set_label_text",(function(e){var t,n=this;return null==e&&(e=v),u(n.label)?(n.label.$set_text(e.$to_s()),t=["label",e.$to_s()],s(n.settings,"[]=",t),t[t.length-1]):v}),-1),o(n,"$enabled?",(function(){return!!u(this.label)&&!u(this.label["$state_active?"]("menu-item-disabled"))})),o(n,"$enable",(function(){return u(this.label)?this.label.$set_state("menu-item-disabled",!1):v})),o(n,"$disable",(function(){return u(this.label)?this.label.$set_state("menu-item-disabled",!0):v})),o(n,"$set_data",(function(e){var t;return null==e&&(e=v),t=["data",e],s(this.settings,"[]=",t),t[t.length-1]}),-1),o(n,"$select",(function(e){var t=v;return null==e&&(e=v),t=this.parent.$application(),u(t)?t.$menu_item_select(this.settings):v}),-1)}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.dropdown.menu.item",b(b(b("GxG"),"Gui"),"DropdownMenuItem")),function(e,t){var n=r(e,t,"Equalizer"),$=n.$$prototype;$.states=$.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("grid-x"),!0)||n.states["$[]="]("grid-x",!0),c(n.states["$[]"]("grid-margin-x"),!0)||n.states["$[]="]("grid-margin-x",!0),u(n.options.$keys()["$include?"]("data-equalizer"))||n.options["$[]="]("data-equalizer",v),u(n.options.$keys()["$include?"]("data-equalize-on"))?v:(t=["data-equalize-on","medium"],s(n.options,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.equalizer",b(b(b("GxG"),"Gui"),"Equalizer")),function(e,t){var n=r(e,t,"FlexGridRow");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("row"),!0)?v:(t=["row",!0],s(n.states,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.flexgrid.row",b(b(b("GxG"),"Gui"),"FlexGridRow")),function(e,t){var n=r(e,t,"FlexGridColumn");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("columns"),!0)?v:(t=["columns",!0],s(n.states,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.flexgrid.column",b(b(b("GxG"),"Gui"),"FlexGridColumn")),function(e,t){var n=r(e,t,"Embed");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("responsive-embed"),!0)?v:(t=["responsive-embed",!0],s(n.states,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.embed",b(b(b("GxG"),"Gui"),"Embed")),function(e,t){var n=r(e,t,"MediaObject");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("media-object"),!0)?v:(t=["media-object",!0],s(n.states,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.media.object",b(b(b("GxG"),"Gui"),"MediaObject")),function(e,t){var n=r(e,t,"MediaObjectSection");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("media-object-section"),!0)?v:(t=["media-object-section",!0],s(n.states,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.media.object.section",b(b(b("GxG"),"Gui"),"MediaObjectSection")),function(e,t){var n=r(e,t,"DropdownMenu"),$=n.$$prototype;$.states=$.options=$.application=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="ul",c(n.states["$[]"]("dropdown"),!0)||n.states["$[]="]("dropdown",!0),c(n.states["$[]"]("menu"),!0)||n.states["$[]="]("menu",!0),u(n.options.$keys()["$include?"]("data-dropdown-menu"))?v:(t=["data-dropdown-menu",v],s(n.options,"[]=",t),t[t.length-1])})),o(n,"$add_menu_item",(function(e,t){var n=this,r=v;return null==e&&(e=v),null==t&&(t=v),(r=b(b(b("GxG"),"Database"),"DetachedHash").$new())["$[]="]("component","org.gxg.gui.dropdown.menu.item"),r["$[]="]("settings",new Map([["label",e],["data",t]])),r["$[]="]("options",new Map),r["$[]="]("script",""),r["$[]="]("content",[]),n.$page().$build_components(n,[r],new Map([["application",n.application]])),!0}),-1)}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.dropdown.menu",b(b(b("GxG"),"Gui"),"DropdownMenu")),r(l[0],b(b(b("GxG"),"Gui"),"DropdownMenu"),"MenuBar"),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.menu.bar",b(b(b("GxG"),"Gui"),"MenuBar")),function(e,t){var n=r(e,t,"Menu"),$=n.$$prototype;$.states=$.application=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="ul",c(n.states["$[]"]("menu"),!0)?v:(t=["menu",!0],s(n.states,"[]=",t),t[t.length-1])})),o(n,"$add_menu_item",(function(e,t){var n=this,r=v;return null==e&&(e=v),null==t&&(t=v),(r=n.$new_component("org.gxg.gui.menu.item"))["$[]="]("settings",new Map([["label",e],["data",t]])),n.$page().$build_components(n,[r],new Map([["application",n.application]])),!0}),-1)}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.menu",b(b(b("GxG"),"Gui"),"Menu")),function(e,t){var n=r(e,t,"MenuItem"),$=n.$$prototype;$.uuid=$.settings=$.application=$.label=$.parent=v,o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li"})),o(n,"$initialize",(function e(t,n,r){var s=this;return e.$$p=null,null==r&&(r=new Map),s.label=v,i(s,a(s,"initialize",e,!1,!0),"initialize",[t,n,r],null),s}),-3),o(n,"$cascade",(function(){var e,t,n=this,r=v;return(r=n.$new_component("org.gxg.gui.link.anchor"))["$title="]("label "+n.uuid.$to_s()),r["$[]="]("options",new Map([["content",(u(e=n.settings["$[]"]("label"))?e:"Untitled").$to_s()]])),r["$[]="]("script","\n on(:mouseup) do |event|\n if @parent.enabled?\n @parent.selecct()\n end\n end\n "),n.$page().$build_components(n,[r],new Map([["application",n.application]])),t=n.$page().$find_object_by("label "+n.uuid.$to_s()),u(t)?n.label=t:v})),o(n,"$label",h("label")),o(n,"$set_label_text",(function(e){var t,n=this;return null==e&&(e=v),u(n.label)?(n.label.$set_text(e.$to_s()),t=["label",e.$to_s()],s(n.settings,"[]=",t),t[t.length-1]):v}),-1),o(n,"$enabled?",(function(){return!!u(this.label)&&!u(this.label["$state_active?"]("menu-item-disabled"))})),o(n,"$enable",(function(){return u(this.label)?this.label.$set_state("menu-item-disabled",!1):v})),o(n,"$disable",(function(){return u(this.label)?this.label.$set_state("menu-item-disabled",!0):v})),o(n,"$set_data",(function(e){var t;return null==e&&(e=v),t=["data",e],s(this.settings,"[]=",t),t[t.length-1]}),-1),o(n,"$select",(function(e){var t=v;return null==e&&(e=v),t=this.parent.$application(),u(t)?t.$menu_item_select(this.settings):v}),-1)}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.menu.item",b(b(b("GxG"),"Gui"),"MenuItem")),function(e,t){var n=r(e,t,"OffCanvasWrapper");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("off-canvas-wrapper"),!0)?v:(t=["off-canvas-wrapper",!0],s(n.states,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.offcanvas.wrapper",b(b(b("GxG"),"Gui"),"OffCanvasWrapper")),function(e,t){var n=r(e,t,"OffCanvasWrapperInner"),$=n.$$prototype;$.states=$.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("off-canvas-wrapper-inner"),!0)||n.states["$[]="]("off-canvas-wrapper-inner",!0),u(n.options.$keys()["$include?"]("data-off-canvas-wrapper"))?v:(t=["data-off-canvas-wrapper",v],s(n.options,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.offcanvas.wrapper.inner",b(b(b("GxG"),"Gui"),"OffCanvasWrapperInner")),function(e,t){var n=r(e,t,"OffCanvasLeft"),$=n.$$prototype;$.states=$.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("off-canvas"),!0)||n.states["$[]="]("off-canvas",!0),c(n.states["$[]"]("position-left"),!0)||n.states["$[]="]("position-left",!0),u(n.options.$keys()["$include?"]("data-off-canvas"))?v:(t=["data-off-canvas",v],s(n.options,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.offcanvas.left",b(b(b("GxG"),"Gui"),"OffCanvasLeft")),function(e,t){var n=r(e,t,"OffCanvasRight"),$=n.$$prototype;$.states=$.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("off-canvas"),!0)||n.states["$[]="]("off-canvas",!0),c(n.states["$[]"]("position-right"),!0)||n.states["$[]="]("position-right",!0),u(n.options.$keys()["$include?"]("data-off-canvas"))||n.options["$[]="]("data-off-canvas",v),u(n.options.$keys()["$include?"]("data-position"))?v:(t=["data-position","right"],s(n.options,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.offcanvas.right",b(b(b("GxG"),"Gui"),"OffCanvasRight")),function(e,t){var n=r(e,t,"OffCanvasContent"),$=n.$$prototype;$.states=$.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("off-canvas-content"),!0)||n.states["$[]="]("off-canvas-content",!0),u(n.options.$keys()["$include?"]("data-off-canvas-content"))?v:(t=["data-off-canvas-content",v],s(n.options,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.offcanvas.content",b(b(b("GxG"),"Gui"),"OffCanvasContent")),function(e,t){var n=r(e,t,"Orbit"),$=n.$$prototype;$.states=$.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("orbit"),!0)||n.states["$[]="]("orbit",!0),u(n.options.$keys()["$include?"]("role"))||n.options["$[]="]("role","region"),u(n.options.$keys()["$include?"]("data-orbit"))?v:(t=["data-orbit",v],s(n.options,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.orbit",b(b(b("GxG"),"Gui"),"Orbit")),function(e,t){var n=r(e,t,"OrbitContainer");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="ul",c(n.states["$[]"]("orbit-container"),!0)?v:(t=["orbit-container",!0],s(n.states,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.orbit.container",b(b(b("GxG"),"Gui"),"OrbitContainer")),function(e,t){var n=r(e,t,"OrbitPrevious");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="button",c(n.states["$[]"]("orbit-previous"),!0)?v:(t=["orbit-previous",!0],s(n.states,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.orbit.previous",b(b(b("GxG"),"Gui"),"OrbitPrevious")),function(e,t){var n=r(e,t,"OrbitNext");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="button",c(n.states["$[]"]("orbit-next"),!0)?v:(t=["orbit-next",!0],s(n.states,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.orbit.next",b(b(b("GxG"),"Gui"),"OrbitNext")),function(e,t){var n=r(e,t,"OrbitSlide");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="li",c(n.states["$[]"]("orbit-slide"),!0)?v:(t=["orbit-slide",!0],s(n.states,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.orbit.slide",b(b(b("GxG"),"Gui"),"OrbitSlide")),function(e,t){var n=r(e,t,"OrbitNavigator");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="nav",c(n.states["$[]"]("orbit-bullets"),!0)?v:(t=["orbit-bullets",!0],s(n.states,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.orbit.navigator",b(b(b("GxG"),"Gui"),"OrbitNavigator")),function(e,t){var n=r(e,t,"OrbitBullet");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="button",u(n.options.$keys()["$include?"]("data-slide"))?v:(t=["data-slide","0"],s(n.options,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.orbit.bullet",b(b(b("GxG"),"Gui"),"OrbitBullet")),function(e,t){var n=r(e,t,"Pagination");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="ul",u(n.options.$keys()["$include?"]("role"))?v:(t=["role","navigation"],s(n.options,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.pagination",b(b(b("GxG"),"Gui"),"Pagination")),function(e,t){var n=r(e,t,"PaginationItem");o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="li"}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.pagination.item",b(b(b("GxG"),"Gui"),"PaginationItem")),function(e,t){var n=r(e,t,"ProgressBar"),$=n.$$prototype;$.states=$.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("progress"),!0)||n.states["$[]="]("progress",!0),u(n.options.$keys()["$include?"]("role"))?v:(t=["role","progressbar"],s(n.options,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.progress.bar",b(b(b("GxG"),"Gui"),"ProgressBar")),function(e,t){var n=r(e,t,"ProgressMeter");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("progress-meter"),!0)?v:(t=["progress-meter",!0],s(n.states,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.progress.meter",b(b(b("GxG"),"Gui"),"ProgressMeter")),function(e,t){var n=r(e,t,"HorizontalSlider"),s=n.$$prototype;s.states=s.options=s.data_second=s.data_start=s.data_end=s.uuid=v,o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",c(t.states["$[]"]("slider"),!0)||t.states["$[]="]("slider",!0),u(t.options["$[]"]("data-initial-start"))?t.data_start=t.options.$delete("data-initial-start"):t.data_start="50",u(t.options["$[]"]("data-initial-end"))?t.data_second=t.options.$delete("data-initial-end"):t.data_second=v,u(t.options["$[]"]("data-end"))?t.data_end=t.options.$delete("data-end"):t.data_end="200"})),o(n,"$_after_create",(function e(){var t=this,n=v,r=v,s=v,o=v,l=v;return e.$$p=null,i(t,a(t,"_after_create",e,!1,!0),"_after_create",[],null),u(t.data_second)?(r=(n=t.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider_container"],["settings",new Map],["options",new Map([["states",["small-10 columns"]]])],["script",""],["content",[]]])).$add_child(new Map([["component","org.gxg.gui.block"],["title","slider"],["settings",new Map],["options",new Map([["data-slider",v],["data-initial-start",t.data_start],["data-initial-end",t.data_second],["data-end",t.data_end],["states",["slider"]]])],["script",""],["content",[]]]))).$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle"],["settings",new Map],["options",new Map([["data-slider-handle",v],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),n.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_groove"],["settings",new Map],["options",new Map([["data-slider-fill",v],["states",["slider-fill"]]])],["script",""],["content",[]]])),s=n.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle_two"],["settings",new Map],["options",new Map([["data-slider-handle",v],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),o=t.$add_child(new Map([["component","org.gxg.gui.block"],["title",m("value_container",t.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])).$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),l=t.$add_child(new Map([["component","org.gxg.gui.block"],["title",m("value_container_two",t.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])).$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value_two"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),r.$set_attribute("aria-controls",o.$uuid().$to_s()),s.$set_attribute("aria-controls",l.$uuid().$to_s())):(r=(n=t.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider_container"],["settings",new Map],["options",new Map([["states",["small-10 columns"]]])],["script",""],["content",[]]])).$add_child(new Map([["component","org.gxg.gui.block"],["title","slider"],["settings",new Map],["options",new Map([["data-slider",v],["data-initial-start",t.data_start],["data-end",t.data_end],["states",["slider"]]])],["script",""],["content",[]]]))).$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle"],["settings",new Map],["options",new Map([["data-slider-handle",v],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),n.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_groove"],["settings",new Map],["options",new Map([["data-slider-fill",v],["states",["slider-fill"]]])],["script",""],["content",[]]])),o=t.$add_child(new Map([["component","org.gxg.gui.block"],["title",m("value_container",t.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])).$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),r.$set_attribute("aria-controls",o.$uuid().$to_s())),$(document).foundation()})),o(n,"$set_script",(function e(t,n){var r=this,s=v,o=v;return e.$$p=null,null==t&&(t=""),null==n&&(n=v),u(n)?n.$set_script(t):u(r.data_second)?(s=r.$find_descendant("slider_handle"),u(s)||r.$raise("Unable to find slider handle object."),i(r,a(r,"set_script",e,!1,!0),"set_script",[t,s],null),o=r.$find_descendant("slider_handle_two"),u(o)||r.$raise("Unable to find slider handle object."),i(r,a(r,"set_script",e,!1,!0),"set_script",[t,o],null)):(s=r.$find_descendant("slider_handle"),u(s)||r.$raise("Unable to find slider handle object."),i(r,a(r,"set_script",e,!1,!0),"set_script",[t,s],null))}),-1)}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.slider.horizontal",b(b(b("GxG"),"Gui"),"HorizontalSlider")),function(e,t){var n=r(e,t,"VerticalSlider"),s=n.$$prototype;s.states=s.options=s.data_second=s.data_start=s.data_end=s.uuid=v,o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div",c(t.states["$[]"]("slider"),!0)||t.states["$[]="]("slider",!0),c(t.states["$[]"]("vertical"),!0)||t.states["$[]="]("vertical",!0),u(t.options["$[]"]("data-initial-start"))?t.data_start=t.options.$delete("data-initial-start"):t.data_start="50",u(t.options["$[]"]("data-initial-end"))?t.data_second=t.options.$delete("data-initial-end"):t.data_second=v,u(t.options["$[]"]("data-end"))?t.data_end=t.options.$delete("data-end"):t.data_end="200"})),o(n,"$_after_create",(function e(){var t=this,n=v,r=v,s=v,o=v,l=v;return e.$$p=null,i(t,a(t,"_after_create",e,!1,!0),"_after_create",[],null),u(t.data_second)?(r=(n=t.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider_container"],["settings",new Map],["options",new Map([["states",["small-10 columns"]]])],["script",""],["content",[]]])).$add_child(new Map([["component","org.gxg.gui.block"],["title","slider"],["settings",new Map],["options",new Map([["data-slider",v],["data-initial-start",t.data_start],["data-initial-end",t.data_second],["data-end",t.data_end],["states",["vertical","slider"]]])],["script",""],["content",[]]]))).$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle"],["settings",new Map],["options",new Map([["data-slider-handle",v],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),n.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_groove"],["settings",new Map],["options",new Map([["data-slider-fill",v],["states",["slider-fill"]]])],["script",""],["content",[]]])),s=n.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle_two"],["settings",new Map],["options",new Map([["data-slider-handle",v],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),o=t.$add_child(new Map([["component","org.gxg.gui.block"],["title",m("value_container",t.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])).$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),l=t.$add_child(new Map([["component","org.gxg.gui.block"],["title",m("value_container_two",t.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])).$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value_two"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),r.$set_attribute("aria-controls",o.$uuid().$to_s()),s.$set_attribute("aria-controls",l.$uuid().$to_s())):(r=(n=t.$add_child(new Map([["component","org.gxg.gui.block"],["title","slider_container"],["settings",new Map],["options",new Map([["states",["small-10 columns"]]])],["script",""],["content",[]]])).$add_child(new Map([["component","org.gxg.gui.block"],["title","slider"],["settings",new Map],["options",new Map([["data-slider",v],["data-initial-start",t.data_start],["data-end",t.data_end],["states",["vertical","slider"]]])],["script",""],["content",[]]]))).$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_handle"],["settings",new Map],["options",new Map([["data-slider-handle",v],["role","slider"],["tabindex","1"],["states",["slider-handle"]]])],["script",""],["content",[]]])),n.$add_child(new Map([["component","org.gxg.gui.span"],["title","slider_groove"],["settings",new Map],["options",new Map([["data-slider-fill",v],["states",["slider-fill"]]])],["script",""],["content",[]]])),o=t.$add_child(new Map([["component","org.gxg.gui.block"],["title",m("value_container",t.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["small-2 columns"]]])],["script",""],["content",[]]])).$add_child(new Map([["component","org.gxg.gui.picker.number"],["title","slider_value"],["settings",new Map],["options",new Map],["script",""],["content",[]]])),r.$set_attribute("aria-controls",o.$uuid().$to_s())),$(document).foundation()})),o(n,"$set_script",(function e(t,n){var r=this,s=v,o=v;return e.$$p=null,null==t&&(t=""),null==n&&(n=v),u(n)?n.$set_script(t):u(r.data_second)?(s=r.$find_descendant("slider_handle"),u(s)||r.$raise("Unable to find slider handle object."),i(r,a(r,"set_script",e,!1,!0),"set_script",[t,s],null),o=r.$find_descendant("slider_handle_two"),u(o)||r.$raise("Unable to find slider handle object."),i(r,a(r,"set_script",e,!1,!0),"set_script",[t,o],null)):(s=r.$find_descendant("slider_handle"),u(s)||r.$raise("Unable to find slider handle object."),i(r,a(r,"set_script",e,!1,!0),"set_script",[t,s],null))}),-1)}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.slider.vertical",b(b(b("GxG"),"Gui"),"VerticalSlider")),function(e,t){var n=r(e,t,"StickyContainer");n.$$prototype.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",u(n.options.$keys()["$include?"]("data-sticky-container"))?v:(t=["data-sticky-container",v],s(n.options,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.sticky.container",b(b(b("GxG"),"Gui"),"StickyContainer")),function(e,t){var n=r(e,t,"Sticky"),$=n.$$prototype;$.states=$.options=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("sticky"),!0)||n.states["$[]="]("sticky",!0),u(n.options.$keys()["$include?"]("data-sticky"))?v:(t=["data-sticky",v],s(n.options,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.sticky",b(b(b("GxG"),"Gui"),"Sticky")),function(e,t){var n=r(e,t,"Switch"),u=n.$$prototype;u.states=u.uuid=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("switch"),!0)?v:(t=["switch",!0],s(n.states,"[]=",t),t[t.length-1])})),o(n,"$_after_create",(function(){var e=this,t=v;return t=e.$add_child(new Map([["component","org.gxg.gui.button.checkbox"],["title",m("switch_input",e.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["switch-input"]]])],["script",""],["content",[]]])),e.$add_child(new Map([["component","org.gxg.gui.label"],["title",m("switch_paddle",e.uuid.$to_s())],["settings",new Map],["options",new Map([["for",t.$uuid().$to_s()],["states",["switch-paddle"]]])],["script",""],["content",[]]])).$add_child(new Map([["component","org.gxg.gui.span"],["title",m("switch_span",e.uuid.$to_s())],["settings",new Map],["options",new Map([["states",["show-for-sr"]]])],["script",""],["content",[]]])),$(document).foundation()}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.switch",b(b(b("GxG"),"Gui"),"Switch")),function(e,t){var n=r(e,t,"TabContent");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("tabs-panel"),!0)?v:(t=["tabs-panel",!0],s(n.states,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.tab.content",b(b(b("GxG"),"Gui"),"TabContent")),function(e,t){var n=r(e,t,"TabSet"),s=n.$$prototype;s.uuid=s.tabs=s.tab_content=v,o(n,"$_before_create",(function e(){var t=this;return e.$$p=null,i(t,a(t,"_before_create",e,!1,!0),"_before_create",[],null),t.domtype="div"})),o(n,"$_after_create",(function(){var e=this;return e.tabs=e.$add_child(new Map([["component","org.gxg.gui.list"],["title",m("tabs",e.uuid.$to_s())],["settings",new Map],["options",new Map([["data-tabs",v],["states",["tabs"]]])],["script",""],["content",[]]])),e.tab_content=e.$add_child(new Map([["component","org.gxg.gui.block"],["title",m("tab_content",e.uuid.$to_s())],["settings",new Map],["options",new Map([["data-tabs-content",e.tabs.$uuid().$to_s()],["states",["tabs-content"]]])],["script",""],["content",[]]])),$(document).foundation()})),o(n,"$add_child",(function(e,t){var n=this,r=v;return null==e&&(e=new Map),null==t&&(t=new Map),r=v,c(e["$[]"]("component").$to_s().$downcase().$to_sym(),"tab_content")?(r=n.tab_content.$add_child(e),n.tabs.$add_child(new Map([["component","org.gxg.gui.list.item"],["title",m("tab",r.$uuid().$to_s())],["settings",new Map],["options",new Map([["states",["tabs-title"]]])],["script",""],["content",[]]])).$add_child(new Map([["component","org.gxg.gui.link.anchor"],["title",m("link",r.$uuid().$to_s())],["settings",new Map],["options",new Map([["href",m("#",r.$uuid().$to_s())],["states",[]]])],["script",""],["content",[]]]))["$value="](r.$title().$to_s())):n.$raise("Unacceptable Component Type"),r}),-1)}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.tab.set",b(b(b("GxG"),"Gui"),"TabSet")),function(e,t){var n=r(e,t,"Thumbnail");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="img",c(n.states["$[]"]("thumbnail"),!0)?v:(t=["thumbnail",!0],s(n.states,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.thumbnail",b(b(b("GxG"),"Gui"),"Thumbnail")),function(e,t){var n=r(e,t,"Titlebar");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("title-bar"),!0)?v:(t=["title-bar",!0],s(n.states,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.titlebar",b(b(b("GxG"),"Gui"),"Titlebar")),function(e,t){var n=r(e,t,"TitlebarLeft");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("title-bar-left"),!0)?v:(t=["title-bar-left",!0],s(n.states,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.titlebar.left",b(b(b("GxG"),"Gui"),"TitlebarLeft")),function(e,t){var n=r(e,t,"TitlebarRight");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("title-bar-right"),!0)?v:(t=["title-bar-right",!0],s(n.states,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.titlebar.right",b(b(b("GxG"),"Gui"),"TitlebarRight")),function(e,t){var n=r(e,t,"Topbar");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("top-bar"),!0)?v:(t=["top-bar",!0],s(n.states,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.topbar",b(b(b("GxG"),"Gui"),"Topbar")),function(e,t){var n=r(e,t,"TopbarLeft");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("top-bar-left"),!0)?v:(t=["top-bar-left",!0],s(n.states,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.topbar.left",b(b(b("GxG"),"Gui"),"TopbarLeft")),function(e,t){var n=r(e,t,"TopbarRight");n.$$prototype.states=v,o(n,"$_before_create",(function e(){var t,n=this;return e.$$p=null,i(n,a(n,"_before_create",e,!1,!0),"_before_create",[],null),n.domtype="div",c(n.states["$[]"]("top-bar-right"),!0)?v:(t=["top-bar-right",!0],s(n.states,"[]=",t),t[t.length-1])}))}(l[0],b(b(b(b("GxG"),"Gui"),"Vdom"),"BaseElement")),b(b("GxG"),"Gui").$register_component_class("org.gxg.gui.topbar.right",b(b(b("GxG"),"Gui"),"TopbarRight"))})(l[0],l)}(g[0],g),(t=r(g[0],null,"Object")).$private(),o(t,"$new_component",(function(e){var t=v;return null==e&&(e=v),t=v,u(e)?u(b(b("GxG"),"Gui")["$component_registered?"](e.$to_s().$to_sym()))?((t=b(b(b("GxG"),"Database"),"DetachedHash").$new())["$[]="]("component",e.$to_s()),t["$[]="]("settings",new Map),t["$[]="]("options",new Map),t["$[]="]("script",""),t["$[]="]("content",[])):this.$log_error("Component "+e.$inspect()+" not registered."):this.$log_error("You MUST specify a registered component moniker."),t}),-1)},Opal.modules["web/gxg_layout"]=function(e){var t,n=e.module,r=e.send,i=e.truthy,a=e.rb_divide,s=e.rb_gt,o=e.rb_lt,$=e.rb_times,u=e.defs,l=e.thrower,c=e.def,_=[],d=e.nil,p=e.$$$;return e.add_stubs("to_i,max,each,each_pair,[],find_object,[]=,element,/,to_f,to_sym,to_s,values,>,<,*,include?,layout_refresh,delete"),t=_,function(e){var t=n(e,"Gui");return u(t,"$layout_refresh",(function(){var e,t,n=d,u=d,l=d,c=d,_=d,f=d,h=d;return n=window.innerWidth.$to_i(),e=document.body,t=document.documentElement,u=0,u=Math.max(e.scrollHeight,e.offsetHeight,t.clientHeight,t.scrollHeight,t.offsetHeight),l=[window.innerHeight.$to_i(),u.$to_i()].$max(),c=0,_=0,f=1,h=1,r(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"],"each",[],(function e(t){var s=null==e.$$s?this:e.$$s;return null==t&&(t=d),r(p(p("GxG"),"LAYOUT")["$[]"](t),"each_pair",[],(function e(s,o){var $,u=d,c=d,_=d;return null==s&&(s=d),null==o&&(o=d),u=(null==e.$$s?this:e.$$s).$find_object(s),i(u)?((c=new Map([["top",0],["left",0],["right",0],["bottom",0]]))["$[]="]("top",u.$element().getBoundingClientRect().top.$to_i()),c["$[]="]("left",u.$element().getBoundingClientRect().left.$to_i()),c["$[]="]("right",u.$element().getBoundingClientRect().right.$to_i()),c["$[]="]("bottom",u.$element().getBoundingClientRect().bottom.$to_i()),(_=new Map([["top",0],["left",0],["right",0],["bottom",0]]))["$[]="]("top",a(c["$[]"]("top").$to_f(),l.$to_f())),_["$[]="]("left",a(c["$[]"]("left").$to_f(),n.$to_f())),_["$[]="]("right",a(c["$[]"]("right").$to_f(),n.$to_f())),_["$[]="]("bottom",a(c["$[]"]("bottom").$to_f(),l.$to_f())),$=[s.$to_s().$to_sym(),_],r(p(p("GxG"),"LAYOUT")["$[]"](t.$to_s().$to_sym()),"[]=",$),$[$.length-1]):d}),{$$s:s})}),{$$s:this}),r(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"],"each",[],(function(e){return null==e&&(e=d),r(p(p("GxG"),"LAYOUT")["$[]"](e).$values(),"each",[],(function(t){switch(null==t&&(t=d),e.valueOf()){case"top":return i(s(t["$[]"]("bottom"),c))?c=t["$[]"]("bottom"):d;case"left":return i(s(t["$[]"]("right"),_))?_=t["$[]"]("right"):d;case"right":return i(o(t["$[]"]("left"),f))?f=t["$[]"]("left"):d;case"bottom":return i(o(t["$[]"]("top"),h))?h=t["$[]"]("top"):d;case"top-left":return i(s(t["$[]"]("bottom"),c))&&(c=t["$[]"]("bottom")),i(s(t["$[]"]("right"),_))?_=t["$[]"]("right"):d;case"top-right":return i(s(t["$[]"]("bottom"),c))&&(c=t["$[]"]("bottom")),i(o(t["$[]"]("left"),f))?f=t["$[]"]("left"):d;case"bottom-right":return i(o(t["$[]"]("top"),h))&&(h=t["$[]"]("top")),i(o(t["$[]"]("left"),f))?f=t["$[]"]("left"):d;case"bottom-left":return i(o(t["$[]"]("top"),h))&&(h=t["$[]"]("top")),i(s(t["$[]"]("right"),_))?_=t["$[]"]("right"):d;default:return d}}))})),p(p("GxG"),"LAYOUT_LIMITS")["$[]="]("page_width",n.$to_i()),p(p("GxG"),"LAYOUT_LIMITS")["$[]="]("page_height",l.$to_i()),p(p("GxG"),"LAYOUT_LIMITS")["$[]="]("top",$(c,l.$to_f()).$to_i()),p(p("GxG"),"LAYOUT_LIMITS")["$[]="]("top_percent",$(c,100)),p(p("GxG"),"LAYOUT_LIMITS")["$[]="]("left",$(_,n.$to_f()).$to_i()),p(p("GxG"),"LAYOUT_LIMITS")["$[]="]("left_percent",$(_,100)),p(p("GxG"),"LAYOUT_LIMITS")["$[]="]("right",$(f,n.$to_f()).$to_i()),p(p("GxG"),"LAYOUT_LIMITS")["$[]="]("right_percent",$(f,100)),p(p("GxG"),"LAYOUT_LIMITS")["$[]="]("bottom",$(h,l.$to_f()).$to_i()),p(p("GxG"),"LAYOUT_LIMITS")["$[]="]("bottom_percent",$(h,100)),!0})),u(t,"$layout_add_item",(function(e,t,n){return null==e&&(e=d),null==t&&(t=d),null==n&&(n=!0),!!i(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"]["$include?"](t.$to_s().$to_sym()))&&(p(p("GxG"),"LAYOUT")["$[]"](t.$to_s().$to_sym())["$[]="](e.$to_s().$to_sym(),new Map([["top",0],["left",0],["right",0],["bottom",0]])),i(n)&&p(p("GxG"),"Gui").$layout_refresh(),!0)}),-1),u(t,"$layout_remove_item",(function(e){return null==e&&(e=d),function(){try{var t=l("break");return r(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"],"each",[],(function n(r){if(null==r&&(r=d),!i(p(p("GxG"),"LAYOUT")["$[]"](r.$to_s().$to_sym())["$[]"](e.$to_s().$to_sym())))return d;p(p("GxG"),"LAYOUT")["$[]"](r.$to_s().$to_sym()).$delete(e.$to_s().$to_sym()),t.$throw(d,n.$$is_lambda)}))}catch(e){if(e===t)return e.$v;throw e}finally{t.is_orphan=!0}}(),p(p("GxG"),"Gui").$layout_refresh(),!0}),-1),c(t,"$layout_content_area",(function(){return p(p("GxG"),"LAYOUT_LIMITS")}))}([n(_[0],"GxG")].concat(t)[0])},Opal.modules["web/gxg_windows"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.alias,a=e.truthy,s=e.assign_ivar,o=e.return_ivar,$=e.rb_times,u=e.rb_divide,l=e.rb_minus,c=e.rb_plus,_=e.send,d=e.rb_ge,p=e.rb_le,f=e.rb_lt,h=e.rb_gt,m=e.eqeq,g=e.send2,v=e.find_super,b=e.thrower,y=[],w=e.nil,x=e.$$$;return e.add_stubs("set_application,respond_to?,unlink_viewport,register_component_class,layout_content_area,[],*,/,to_f,height,width,[]=,gxg_merge_style,parent,-,size,+,each_pair,to_sym,to_s,include?,to_i,gsub,update_appearance,is_any?,delete,element,is_a?,>=,fit_within_boundaries,commit_settings,set_top,set_left,<=,set_right,set_bottom,set_width,set_height,<,>,set_text,set_window_title,set_frame,layout_refresh,==,add_child,original_add_child,children,valid_uuid?,values,original_children,shift,uuid,title,each,<<,new,title=,theme_widget,build_components,page,find_object_by,post_event,set_data,set_responder,dialog_close,call,set_attribute,merge_style,set_script,menu_reference,search_content,set_menu,log_warn,inspect,window_register,before_open,open,show,after_open,get_window_registration,before_close,close,hide,after_close,application,unlink_window,window_unregister,destroy,set_title,get_window,link_window,every_child,dialog_open,to_proc,min,collect,max,window_is_in_back?,window_back_layer,window_top_layer,window_next_layer,step,get_window_switcher,next_minimize_slot,window_send_to_back,animate,top,left,right,bottom,find_child,unminimize_effect,clear_special_state,unmaximize_effect,rolldown_effect,window_restoreable?,window_restore,set_special_state,minimize_effect,maximize_effect,window_bring_to_front,rollup_effect,keys,to_h,sort_by,each_with_index,window_repack_layers"),function(y,k){var G=[t(y,"GxG")].concat(k);return function(y,k){var G=[t(y,"Gui")].concat(k);return function(e,t){var s=n(e,t,"ApplicationViewport"),o=s.$$prototype;o.application=o.uuid=w,r(s,"$set_application",(function(e){return null==e&&(e=w),this.application=e}),-1),i(s,"application=","set_application"),r(s,"$detach",(function(){var e=this;return a(e.application)&&a(e.application["$respond_to?"]("unlink_viewport"))?(e.application.$unlink_viewport(e.uuid),e.application=w):w}))}(G[0],x(x(x(x("GxG"),"Gui"),"Vdom"),"BaseElement")),x(x("GxG"),"Gui").$register_component_class("org.gxg.gui.application.viewport",x(x(x("GxG"),"Gui"),"ApplicationViewport")),function(t,b,y){var k=n(t,b,"Window"),G=[k].concat(y),E=e.$r(G),S=k.$$prototype;S.top=S.left=S.title_object=S.window_title=S.content=S.title_margin=S.menu_margin=S.resize_margin=S.tracking=S.menu_bar=S.menu_area=S.bottom=S.right=S.modal=S.menu_reference=S.uuid=S.closebox=S.minimizebox=S.maximizebox=S.scrolling=S.resize=S.application=w,r(k,"$before_close",(function(e){return null==e&&(e=w),w}),-1),r(k,"$close",(function(e){return null==e&&(e=w),w}),-1),r(k,"$after_close",(function(e){return null==e&&(e=w),w}),-1),r(k,"$before_open",(function(e){return null==e&&(e=w),w}),-1),r(k,"$open",(function(e){return null==e&&(e=w),w}),-1),r(k,"$after_open",(function(e){return null==e&&(e=w),w}),-1),r(k,"$set_application",s("application")),i(k,"application=","set_application"),r(k,"$application",o("application")),r(k,"$commit_settings",(function(){var e,t,n,r,i=this,s=w,o=w;return s=x(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area(),e=$(u(i.top.$to_f(),s["$[]"]("page_height").$to_f()),100),t=$(u(i.left.$to_f(),s["$[]"]("page_width").$to_f()),100),n=$(u(i.$height().$to_f(),s["$[]"]("page_height").$to_f()),100),r=$(u(i.$width().$to_f(),s["$[]"]("page_width").$to_f()),100),(o=new Map)["$[]="]("position","absolute"),o["$[]="]("display","block"),o["$[]="]("tabindex",-1),o["$[]="]("top",e+"%"),o["$[]="]("left",t+"%"),o["$[]="]("height",n+"%"),o["$[]="]("width",r+"%"),i.$gxg_merge_style(o),a(i.title_object)&&i.title_object.$parent().$gxg_merge_style(new Map([["padding","0px 0px 0px "+l(l(u(i.$width(),2),$(u(i.window_title.$size(),2),8)),60)+"px"]])),a(i.content)&&(i.content.$gxg_merge_style(new Map([["height",l(i.$height(),c(c(i.title_margin,i.menu_margin),i.resize_margin))+"px"],["width",l(i.$width(),$(i.resize_margin,2))+"px"]])),_(i.tracking,"each_pair",[],(function e(t,n){var r,i=null==e.$$s?this:e.$$s;return null==t&&(t=w),null==n&&(n=w),r=new Map,_(n["$[]"]("details"),"each_pair",[],(function e(t,n){var i,s=null==e.$$s?this:e.$$s;switch(null==s.resize_margin&&(s.resize_margin=w),null==s.title_margin&&(s.title_margin=w),null==s.menu_margin&&(s.menu_margin=w),null==t&&(t=w),null==n&&(n=w),t.$to_s().$to_sym().valueOf()){case"width":return a(n.$to_s()["$include?"]("%"))?(i=["width",c($(u(n.$to_s().$gsub("%","").$to_f(),100),l(s.$width(),$(s.resize_margin,2)).$to_f()).$to_i().$to_s(),"px")],_(r,"[]=",i),i[i.length-1]):(i=["width",n.$to_s()+"px"],_(r,"[]=",i),i[i.length-1]);case"height":return a(n.$to_s()["$include?"]("%"))?(i=["height",c($(u(n.$to_s().$gsub("%","").$to_f(),100),l(s.$height(),c(c(s.title_margin,s.menu_margin),s.resize_margin)).$to_f()).$to_i().$to_s(),"px")],_(r,"[]=",i),i[i.length-1]):(i=["height",n.$to_s()+"px"],_(r,"[]=",i),i[i.length-1]);default:return w}}),{$$s:i}),n["$[]"]("object").$gxg_merge_style(r)}),{$$s:i})),a(i.menu_bar)?(i.menu_area.$gxg_merge_style(new Map([["width",l(i.$width(),$(i.resize_margin,2))+"px"]])),a(i.menu_bar["$respond_to?"]("update_appearance"))?i.menu_bar.$update_appearance():w):w})),r(k,"$track_deltas",(function(e,t,n){return null==e&&(e=w),null==t&&(t=w),null==n&&(n=new Map),!!(a(e)&&a(t)&&a(n["$is_any?"](x("Hash"),x(x(x("GxG"),"Database"),"DetachedHash"))))&&(this.tracking["$[]="](e,new Map([["object",t],["details",n]])),!0)}),-1),r(k,"$untrack_deltas",(function(e){return null==e&&(e=w),!!a(e)&&(this.tracking.$delete(e),!0)}),-1),r(k,"$content",o("content")),r(k,"$content_width",(function(){var e=this;return a(e.content)?(e.content.$element().getBoundingClientRect().right-e.content.$element().getBoundingClientRect().left).$to_i():0})),r(k,"$content_height",(function(){var e=this;return a(e.content)?(e.content.$element().getBoundingClientRect().bottom-e.content.$element().getBoundingClientRect().top).$to_i():0})),r(k,"$set_top",(function(e){var t=this;return null==e&&(e=w),a(e["$is_a?"](x("Numeric")))&&a(d(l(t.bottom,e),100))&&a(d(e,x(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area()["$[]"]("top")))?(t.top=e,t.$fit_within_boundaries(),t.$commit_settings()):w}),-1),i(k,"top=","set_top"),r(k,"$top",o("top")),r(k,"$set_left",(function(e){var t=this;return null==e&&(e=w),a(e["$is_a?"](x("Numeric")))&&a(d(l(t.right,e),200))&&a(d(e,x(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area()["$[]"]("left")))?(t.left=e,t.$fit_within_boundaries(),t.$commit_settings()):w}),-1),i(k,"left=","set_left"),r(k,"$left",o("left")),r(k,"$set_right",(function(e){var t=this;return null==e&&(e=w),a(e["$is_a?"](x("Numeric")))&&a(d(l(e,t.left),200))&&a(p(e,x(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area()["$[]"]("right")))?(t.right=e,t.$fit_within_boundaries(),t.$commit_settings()):w}),-1),i(k,"right=","set_right"),r(k,"$right",o("right")),r(k,"$set_bottom",(function(e){var t=this;return null==e&&(e=w),a(e["$is_a?"](x("Numeric")))&&a(d(l(e,t.top),100))&&a(p(e,x(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area()["$[]"]("bottom")))?(t.bottom=e,t.$fit_within_boundaries(),t.$commit_settings()):w}),-1),i(k,"bottom=","set_bottom"),r(k,"$bottom",o("bottom")),r(k,"$set_width",(function(e){var t=this;return null==e&&(e=w),a(e["$is_a?"](x("Numeric")))&&a(d(e,200))&&a(p(c(t.left,e),x(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area()["$[]"]("right")))?(t.right=c(t.left,e),t.$fit_within_boundaries(),t.$commit_settings()):w}),-1),i(k,"width=","set_width"),r(k,"$width",(function(){return l(this.right,this.left)})),r(k,"$set_height",(function(e){var t=this;return null==e&&(e=w),a(e["$is_a?"](x("Numeric")))&&a(d(e,100))&&a(p(c(t.top,e),x(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area()["$[]"]("bottom")))?(t.bottom=c(t.top,e),t.$fit_within_boundaries(),t.$commit_settings()):w}),-1),i(k,"height=","set_height"),r(k,"$height",(function(){return l(this.bottom,this.top)})),r(k,"$set_position",(function(t,n){var r,i,s=this,o=w;return null==t&&(t=w),null==n&&(n=w),r=s.$width(),i=s.$height(),o=x(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area(),a(e.Range.$new(o["$[]"]("top"),o["$[]"]("bottom"),!1)["$include?"](n.$to_i()))&&a(e.Range.$new(o["$[]"]("top"),o["$[]"]("bottom"),!1)["$include?"](c(n.$to_i(),i)))&&(s.top=n.$to_i()),a(e.Range.$new(o["$[]"]("left"),o["$[]"]("right"),!1)["$include?"](t.$to_i()))&&a(e.Range.$new(o["$[]"]("left"),o["$[]"]("right"),!1)["$include?"](c(t.$to_i(),r)))&&(s.left=t.$to_i()),s.bottom=c(s.top,i),s.right=c(s.left,r),s.$fit_within_boundaries(),s.$commit_settings()}),-1),r(k,"$set_frame",(function(e){var t=this,n=w;return null==e&&(e=w),a(e["$is_a?"](x("Hash")))?(t.top=a(n=e["$[]"]("top"))?n:t.top,t.left=a(n=e["$[]"]("left"))?n:t.left,t.right=a(n=e["$[]"]("right"))?n:t.right,t.bottom=a(n=e["$[]"]("bottom"))?n:t.bottom,t.$fit_within_boundaries(),t.$commit_settings()):w}),-1),r(k,"$position",(function(){return new Map([["x",this.left],["y",this.top]])})),r(k,"$fit_within_boundaries",(function(){var e,t,n=this,r=w;return e=n.$width(),t=n.$height(),r=x(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area(),a(f(n.top,r["$[]"]("top")))&&(n.top=r["$[]"]("top")),a(f(n.left,r["$[]"]("left")))&&(n.left=r["$[]"]("left")),n.right=c(n.left,e),n.bottom=c(n.top,t),a(h(n.bottom,r["$[]"]("bottom")))&&(n.bottom=r["$[]"]("bottom")),a(h(n.right,r["$[]"]("right")))?n.right=r["$[]"]("right"):w})),r(k,"$set_window_title",(function(e){var t=this;return null==e&&(e=w),a(t.title_object)&&a(e["$is_a?"](x("String")))?(t.window_title=e,t.title_object.$set_text(t.window_title),t.title_object.$parent().$gxg_merge_style(new Map([["padding","0px 0px 0px "+l(l(u(t.$width(),2),$(u(t.window_title.$size(),2),8)),60)+"px"]]))):w}),-1),i(k,"window_title=","set_window_title"),r(k,"$window_title",(function(){return a(this.title_object)?this.window_title:w})),r(k,"$special_state",o("special_state")),r(k,"$set_special_state",(function(e){var t=this,n=w;return null==e&&(e=w),a(e["$is_a?"](x("Hash")))?(t.special_state=e,t.top=a(n=e["$[]"]("top"))?n:t.top,t.left=a(n=e["$[]"]("left"))?n:t.left,t.right=a(n=e["$[]"]("right"))?n:t.right,t.bottom=a(n=e["$[]"]("bottom"))?n:t.bottom,t.$fit_within_boundaries(),t.$commit_settings()):w}),-1),r(k,"$clear_special_state",(function(e){return null==e&&(e=w),this.special_state=w,a(e["$is_a?"](x("Hash")))?this.$set_frame(e):w}),-1),r(k,"$initialize",(function e(t,n,r){var i=this,s=w,o=w;return e.$$p=null,null==r&&(r=new Map),x(x("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_refresh(),s=x(E("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area(),i.special_state=w,i.content=w,a(n["$[]"]("top")["$is_a?"](x("String")))||a(n["$[]"]("top").$to_s()["$include?"]("."))?a(n["$[]"]("top")["$is_a?"](x("String")))?i.top=$(s["$[]"]("page_height"),u(n["$[]"]("top").$gsub("%","").$to_f(),100)):i.top=$(s["$[]"]("page_height"),u(n["$[]"]("top"),100)):i.top=a(o=n["$[]"]("top"))?o:l(u(window.innerHeight.$to_i(),2),50),a(n["$[]"]("left")["$is_a?"](x("String")))||a(n["$[]"]("left").$to_s()["$include?"]("."))?a(n["$[]"]("left")["$is_a?"](x("String")))?i.left=$(s["$[]"]("page_width"),u(n["$[]"]("left").$gsub("%","").$to_f(),100)):i.left=$(s["$[]"]("page_width"),u(n["$[]"]("left"),100)):i.left=a(o=n["$[]"]("left"))?o:l(u(window.innerWidth.$to_i(),2),100),a(n["$[]"]("right")["$is_a?"](x("String")))||a(n["$[]"]("right").$to_s()["$include?"]("."))?a(n["$[]"]("right")["$is_a?"](x("String")))?i.right=$(s["$[]"]("page_width"),u(n["$[]"]("right").$gsub("%","").$to_f(),100)):i.right=$(s["$[]"]("page_width"),u(n["$[]"]("right"),100)):i.right=a(o=n["$[]"]("right"))?o:c(u(window.innerWidth.$to_i(),2),100),a(n["$[]"]("bottom")["$is_a?"](x("String")))||a(n["$[]"]("bottom").$to_s()["$include?"]("."))?a(n["$[]"]("bottom")["$is_a?"](x("String")))?i.bottom=$(s["$[]"]("page_height"),u(n["$[]"]("bottom").$gsub("%","").$to_f(),100)):i.bottom=$(s["$[]"]("page_height"),u(n["$[]"]("bottom"),100)):i.bottom=a(o=n["$[]"]("bottom"))?o:c(u(window.innerHeight.$to_i(),2),50),i.window_title=a(o=n["$[]"]("window_title"))?o:"Untitled",i.title_object=w,a(n["$[]"]("width")["$is_a?"](x("String")))||a(n["$[]"]("width").$to_s()["$include?"]("."))?a(n["$[]"]("width")["$is_a?"](x("String")))?i.right=c(i.left,$(l(s["$[]"]("right"),s["$[]"]("left")),u(n["$[]"]("width").$gsub("%","").$to_f(),100))):i.right=c(i.left,$(l(s["$[]"]("right"),s["$[]"]("left")),u(n["$[]"]("width"),100))):a(n["$[]"]("width")["$is_a?"](x("Numeric")))&&(i.right=c(i.left,n.$delete("width"))),a(n["$[]"]("height")["$is_a?"](x("String")))||a(n["$[]"]("height").$to_s()["$include?"]("."))?a(n["$[]"]("height")["$is_a?"](x("String")))?i.bottom=c(i.top,$(l(s["$[]"]("bottom"),s["$[]"]("top")),u(n["$[]"]("height").$gsub("%","").$to_f(),100))):i.bottom=c(i.top,$(l(s["$[]"]("bottom"),s["$[]"]("top")),u(n["$[]"]("height"),100))):a(n["$[]"]("height")["$is_a?"](x("Numeric")))&&(i.bottom=c(i.top,n["$[]"]("height"))),i.$fit_within_boundaries(),i.modal=a(o=n["$[]"]("modal"))&&o,i.scrolling=n["$[]"]("scroll"),i.title_margin=24,m(i.modal,!0)?(i.resize=!1,i.resize_margin=0):(i.resize=!a(o=n["$[]"]("resize"))||o,i.resize_margin=2,i.title_margin=26),m(i.modal,!0)?(i.closebox=!1,i.minimizebox=!1,i.maximizebox=!1):(m(n["$[]"]("close"),!1)?i.closebox=!1:i.closebox=(a(o=n["$[]"]("close"))?o:"enabled").$to_s().$to_sym(),m(n["$[]"]("minimize"),!1)?i.minimizebox=!1:i.minimizebox=(a(o=n["$[]"]("minimize"))?o:"enabled").$to_s().$to_sym(),m(n["$[]"]("maximize"),!1)?i.maximizebox=!1:i.maximizebox=(a(o=n["$[]"]("maximize"))?o:"enabled").$to_s().$to_sym()),i.tracking=new Map,i.menu_reference=n["$[]"]("menu"),i.menu_area=w,i.menu_bar=w,a(i.menu_reference)?i.menu_margin=16:i.menu_margin=0,g(i,v(i,"initialize",e,!1,!0),"initialize",[t,n,r],null),i}),-3),r(k,"$menu_reference",o("menu_reference")),r(k,"$menubar",o("menu_area")),i(k,"original_add_child","add_child"),r(k,"$add_child",(function(e){var t=this;return null==e&&(e=w),a(t.content)?t.content.$add_child(e):t.$original_add_child(e)}),-1),i(k,"original_children","children"),r(k,"$children",(function(){return a(this.content)?this.content.$children():new Map})),r(k,"$find_child",(function(e,t){var n=w,r=w,i=w,s=w;for(null==e&&(e=w),null==t&&(t=!1),n=w,r=!!a(E("GxG")["$valid_uuid?"](e)),i=m(t,!0)?this.$original_children().$values():this.$children().$values();a(h(i.$size(),0));)if(s=i.$shift(),a(s)){if(a(r)){if(m(s.$uuid(),e)){n=s;break}}else if(m(s.$title(),e)){n=s;break}a(n)||_(s.$children().$values(),"each",[],(function(e){return null==e&&(e=w),i["$<<"](e)}))}return n}),-1),r(k,"$cascade",(function(){var e,t=this,n=w,r=w,i=w,s=w,o=w,d=w,p=w,f=w,h=w,g=w,v=w,b=w,y=w,k=w,G=w,S=w,O=w,M=w,A=w,N=w,z=w,D=w,I=w,T=w,R=w;return t.$commit_settings(),n=[],(r=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$title="]("title_object "+t.uuid.$to_s()),r["$[]="]("component","org.gxg.gui.label"),r["$[]="]("settings",new Map),r["$[]="]("options",new Map([["content",t.window_title],["style",new Map([["width","100%"],["font-size","16px"],["text-align","center"]])]])),r["$[]="]("script",""),r["$[]="]("content",[]),(i=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$[]="]("component","org.gxg.gui.image"),i["$[]="]("settings",new Map),i["$[]="]("options",new Map([["src",t.$theme_widget("close.png")],["width",20],["height",20],["style",new Map([["padding","2px"]])]])),i["$[]="]("script","\n on(:mouseup) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('close.png'))\n the_window = self.window\n if the_window\n if the_window.application\n the_window.application.window_close({:window => the_window.uuid})\n else\n GxG::DISPLAY_DETAILS[:object].window_close(the_window.uuid)\n end\n else\n log_warn('Window Not Found')\n end\n end\n end\n on(:mousedown) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('close_mousedown.png'))\n end\n end\n on(:mouseenter) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('close_mouseenter.png'))\n end\n end\n on(:mouseleave) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('close.png'))\n end\n end\n "),i["$[]="]("content",[]),(s=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$[]="]("component","org.gxg.gui.image"),s["$[]="]("settings",new Map),s["$[]="]("options",new Map([["src",t.$theme_widget("minimize.png")],["width",20],["height",20],["style",new Map([["padding","2px"]])]])),s["$[]="]("script","\n on(:mouseup) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('minimize.png'))\n the_window = self.window\n if the_window\n special = the_window.special_state()\n if special.is_a?(::Hash)\n if special[:action] == :minimize\n GxG::DISPLAY_DETAILS[:object].window_restore(the_window.uuid)\n else\n GxG::DISPLAY_DETAILS[:object].window_minimize(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom})\n end\n else\n GxG::DISPLAY_DETAILS[:object].window_minimize(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom})\n end\n end\n end\n end\n on(:mousedown) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('minimize_mousedown.png'))\n end\n end\n on(:mouseenter) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('minimize_mouseenter.png'))\n end\n end\n on(:mouseleave) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('minimize.png'))\n end\n end\n "),s["$[]="]("content",[]),(o=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$[]="]("component","org.gxg.gui.image"),o["$[]="]("settings",new Map),o["$[]="]("options",new Map([["src",t.$theme_widget("maximize.png")],["width",20],["height",20],["style",new Map([["padding","2px"]])]])),o["$[]="]("script","\n on(:mouseup) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('maximize.png'))\n the_window = self.window\n if the_window\n special = the_window.special_state()\n if special.is_a?(::Hash)\n if special[:action] == :maximize\n GxG::DISPLAY_DETAILS[:object].window_restore(the_window.uuid)\n else\n GxG::DISPLAY_DETAILS[:object].window_maximize(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom})\n end\n else\n GxG::DISPLAY_DETAILS[:object].window_maximize(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom})\n end\n end\n end\n end\n on(:mousedown) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('maximize_mousedown.png'))\n end\n end\n on(:mouseenter) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('maximize_mouseenter.png'))\n end\n end\n on(:mouseleave) do |event|\n unless self.gxg_get_state(:disabled) == true\n self.gxg_set_attribute(:src,theme_widget('maximize.png'))\n end\n end\n "),o["$[]="]("content",[]),(d=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$[]="]("component","org.gxg.gui.block.table"),d["$[]="]("settings",new Map),d["$[]="]("options",new Map([["style",new Map([["clear","both"],["height","24px"],["padding","0px"],["margin","0px"],["border-radius","5px 5px 0px 0px"],["border-bottom","1px solid #c2c2c2"]])],["states",new Map([["default-background-color",!0]])]])),d["$[]="]("script",""),d["$[]="]("content",[]),(p=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$[]="]("component","org.gxg.gui.block.table.row"),p["$[]="]("settings",new Map),p["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["vertical-align","middle"],["background-color","transparent"]])]])),p["$[]="]("script",""),p["$[]="]("content",[]),(f=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$[]="]("component","org.gxg.gui.block.table.cell"),f["$[]="]("settings",new Map),f["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["vertical-align","middle"],["background-color","transparent"]])]])),f["$[]="]("script",""),f["$[]="]("content",[]),(h=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$[]="]("component","org.gxg.gui.block.table.cell"),h["$[]="]("settings",new Map),h["$[]="]("options",new Map([["style",new Map([["width","100%"],["padding","0px 0px 0px "+l(l(u(t.$width(),2),$(u(t.window_title.$size(),2),8)),60)+"px"],["vertical-align","middle"],["margin","0px"],["background-color","transparent"]])]])),h["$[]="]("script",""),h["$[]="]("content",[]),(g=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$[]="]("component","org.gxg.gui.block.table.cell"),g["$[]="]("settings",new Map),g["$[]="]("options",new Map([["style",new Map([["float","right"],["padding","0px"],["vertical-align","middle"],["margin","0px"],["background-color","transparent"]])]])),g["$[]="]("script",""),g["$[]="]("content",[]),a(t.closebox)&&(m(t.closebox,"disabled")&&(i["$[]"]("options")["$[]="]("src",t.$theme_widget("close_disable.png")),i["$[]"]("options")["$[]="]("states",new Map([["disabled",!0]]))),f["$[]"]("content")["$<<"](i)),a(t.minimizebox)&&(m(t.minimizebox,"disabled")&&(s["$[]"]("options")["$[]="]("src",t.$theme_widget("minimize_disable.png")),s["$[]"]("options")["$[]="]("states",new Map([["disabled",!0]]))),f["$[]"]("content")["$<<"](s)),a(t.maximizebox)&&(m(t.maximizebox,"disabled")&&(o["$[]"]("options")["$[]="]("src",t.$theme_widget("maximize_disable.png")),o["$[]"]("options")["$[]="]("states",new Map([["disabled",!0]]))),f["$[]"]("content")["$<<"](o)),h["$[]="]("script","\n def do_drag(event)\n if ((event[:buttons] & 1) == 1)\n #\n if @window_handle\n unless @last_mouse_x\n @last_mouse_x = event[:pageX]\n end\n unless @last_mouse_y\n @last_mouse_y = event[:pageY]\n end\n offset_x = (event[:pageX] - @window_handle.left)\n if event[:pageY] < @window_handle.top\n offset_y = (@window_handle.top - event[:pageY])\n else\n offset_y = (event[:pageY] - @window_handle.top)\n end\n new_x = ((event[:pageX] - offset_x) + (event[:pageX] - @last_mouse_x))\n new_y = ((event[:pageY] - offset_y) + (event[:pageY] - @last_mouse_y))\n @window_handle.set_position(new_x,new_y)\n @last_mouse_x = event[:pageX]\n @last_mouse_y = event[:pageY]\n end\n end\n end\n on(:dblclick) do |event|\n the_window = self.window\n if the_window\n special = the_window.special_state()\n if special.is_a?(::Hash)\n if special[:action] == :rollup\n GxG::DISPLAY_DETAILS[:object].window_restore(the_window.uuid)\n else\n GxG::DISPLAY_DETAILS[:object].window_rollup(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom})\n end\n else\n GxG::DISPLAY_DETAILS[:object].window_rollup(the_window.uuid,{:top => the_window.top, :left => the_window.left, :right => the_window.right, :bottom => the_window.bottom})\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousemove) do |event|\n @window_handle = self.window\n if ((event[:buttons] & 1) == 1)\n @mode = :drag\n do_drag(event)\n else\n @mode = :hover\n end\n end\n on(:mouseover) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseleave) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseenter) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n "),h["$[]"]("content")["$<<"](r),p["$[]"]("content")["$<<"](f),p["$[]"]("content")["$<<"](h),p["$[]"]("content")["$<<"](g),d["$[]"]("content")["$<<"](p),n["$<<"](d),(v=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$title="]("content "+t.uuid.$to_s()),v["$[]="]("component","org.gxg.gui.block"),v["$[]="]("settings",new Map),v["$[]="]("options",new Map([["style",new Map([["clear","both"],["padding","0px"],["margin","0px"],["border","0px"],["width",l(t.$width(),$(t.resize_margin,2))+"px"],["height",l(t.$height(),c(c(t.title_margin,t.menu_margin),t.resize_margin))+"px"]])],["states",new Map([["default-background-color",!0]])]])),v["$[]="]("script",""),v["$[]="]("content",[]),e=v.$uuid(),a(t.scrolling)?m(t.scrolling,!0)?v["$[]"]("options")["$[]"]("style")["$[]="]("overflow","scroll"):(m(t.scrolling,"vertical")&&v["$[]"]("options")["$[]"]("style")["$[]="]("overflow-y","scroll"),m(t.scrolling,"horizontal")&&v["$[]"]("options")["$[]"]("style")["$[]="]("overflow-x","scroll")):v["$[]"]("options")["$[]"]("style")["$[]="]("overflow","hidden"),(b=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$[]="]("component","org.gxg.gui.block.table.cell"),b["$[]="]("settings",new Map),b["$[]="]("options",new Map([["style",new Map([["width","2px"],["cursor","w-resize"]])]])),b["$[]="]("script","\n def do_drag(event)\n if ((event[:buttons] & 1) == 1)\n window_handle = self.window\n if window_handle\n window_handle.set_left(event[:pageX])\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousedown) do |event|\n @mode = :drag\n do_drag(event)\n end\n on(:mouseover) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseleave) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseenter) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n "),b["$[]="]("content",[]),(y=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$[]="]("component","org.gxg.gui.block.table.cell"),y["$[]="]("settings",new Map),y["$[]="]("options",new Map([["style",new Map([["width","2px"],["cursor","e-resize"]])]])),y["$[]="]("script","\n def do_drag(event)\n if ((event[:buttons] & 1) == 1)\n window_handle = self.window\n if window_handle\n window_handle.set_right(event[:pageX] + 1)\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousedown) do |event|\n @mode = :drag\n do_drag(event)\n end\n on(:mouseover) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseleave) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseenter) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n "),y["$[]="]("content",[]),(k=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$[]="]("component","org.gxg.gui.block.table.cell"),k["$[]="]("settings",new Map),k["$[]="]("options",new Map([["style",new Map([["height","2px"],["cursor","s-resize"]])]])),k["$[]="]("script","\n def do_drag(event)\n window_handle = self.window\n if window_handle\n if ((event[:buttons] & 1) == 1)\n window_handle.set_bottom(event[:pageY] + 4)\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousedown) do |event|\n @mode = :drag\n do_drag(event)\n end\n on(:mouseover) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseleave) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseenter) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n "),k["$[]="]("content",[]),(G=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$[]="]("component","org.gxg.gui.block.table.cell"),G["$[]="]("settings",new Map),G["$[]="]("options",new Map([["style",new Map([["width","2px"],["height","2px"],["cursor","sw-resize"]])]])),G["$[]="]("script","\n def do_drag(event)\n if ((event[:buttons] & 1) == 1)\n window_handle = self.window\n if window_handle\n window_handle.set_left(event[:pageX] - 2)\n window_handle.set_bottom(event[:pageY] + 4)\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousedown) do |event|\n @mode = :drag\n do_drag(event)\n end\n on(:mouseover) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseleave) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseenter) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n "),G["$[]="]("content",[]),(S=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$[]="]("component","org.gxg.gui.block.table.cell"),S["$[]="]("settings",new Map),S["$[]="]("options",new Map([["style",new Map([["width","2px"],["height","2px"],["cursor","se-resize"]])]])),S["$[]="]("script","\n def do_drag(event)\n if ((event[:buttons] & 1) == 1)\n window_handle = self.window\n if window_handle\n window_handle.set_right(event[:pageX] + 2)\n window_handle.set_bottom(event[:pageY] + 4)\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousedown) do |event|\n @mode = :drag\n do_drag(event)\n end\n on(:mouseover) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseleave) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseenter) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n "),S["$[]="]("content",[]),(O=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$[]="]("component","org.gxg.gui.block.table.cell"),O["$[]="]("settings",new Map),O["$[]="]("options",new Map([["style",new Map([["width","2px"],["cursor","w-resize"]])]])),O["$[]="]("script","\n def do_drag(event)\n if ((event[:buttons] & 1) == 1)\n window_handle = self.window\n if window_handle\n window_handle.set_left(event[:pageX])\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousedown) do |event|\n @mode = :drag\n do_drag(event)\n end\n on(:mouseover) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseleave) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseenter) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n "),O["$[]="]("content",[]),(M=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$[]="]("component","org.gxg.gui.block.table.cell"),M["$[]="]("settings",new Map),M["$[]="]("options",new Map([["style",new Map([["width","2px"],["cursor","e-resize"]])]])),M["$[]="]("script","\n def do_drag(event)\n if ((event[:buttons] & 1) == 1)\n window_handle = self.window\n if window_handle\n window_handle.set_right(event[:pageX] + 1)\n end\n end\n end\n on(:mouseup) do |event|\n @mode = :hover\n the_window = self.window\n if the_window\n GxG::DISPLAY_DETAILS[:object].window_bring_to_front(the_window.uuid)\n end\n end\n on(:mousedown) do |event|\n @mode = :drag\n do_drag(event)\n end\n on(:mouseover) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseleave) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n on(:mouseenter) do |event|\n if @mode == :drag\n do_drag(event)\n end\n end\n "),M["$[]="]("content",[]),(A=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$title="]("menu_area "+t.uuid.$to_s()),A["$[]="]("component","org.gxg.gui.block.table.cell"),A["$[]="]("settings",new Map),A["$[]="]("options",new Map([["style",new Map([["overflow","hidden"],["height","16px"],["padding","0px"],["margin","0px"]])]])),A["$[]="]("script",""),A["$[]="]("content",[]),(N=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$title="]("menu_area_row "+t.uuid.$to_s()),N["$[]="]("component","org.gxg.gui.block.table.row"),N["$[]="]("settings",new Map),N["$[]="]("options",new Map([["style",new Map([["overflow","hidden"],["clear","both"],["padding","0px"],["width","100%"],["height","16px"],["margin","0px"],["vertical-align","middle"],["background-color","transparent"],["border-bottom","1px solid #c2c2c2"]])]])),N["$[]="]("script",""),N["$[]="]("content",[O,A,M]),(z=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$title="]("content_area "+t.uuid.$to_s()),z["$[]="]("component","org.gxg.gui.block.table.cell"),z["$[]="]("settings",new Map),z["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["border","0px"]])]])),z["$[]="]("script",""),z["$[]="]("content",[v]),(D=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$[]="]("component","org.gxg.gui.block.table.row"),D["$[]="]("settings",new Map),D["$[]="]("options",new Map),D["$[]="]("script",""),D["$[]="]("content",[]),(I=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$[]="]("component","org.gxg.gui.block.table.row"),I["$[]="]("settings",new Map),I["$[]="]("options",new Map),I["$[]="]("script",""),I["$[]="]("content",[]),(T=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$title="]("window_body "+t.uuid.$to_s()),T["$[]="]("component","org.gxg.gui.block.table"),T["$[]="]("settings",new Map),T["$[]="]("options",new Map([["style",new Map([["width","100%"]])],["states",new Map([["default-background-color",!0]])]])),T["$[]="]("script",""),T["$[]="]("content",[]),a(t.resize)?(D["$[]="]("content",[b,z,y]),I["$[]="]("content",[G,k,S]),a(t.menu_reference)?T["$[]="]("content",[N,D,I]):T["$[]="]("content",[D,I])):a(t.menu_reference)?(D["$[]="]("content",[z]),T["$[]="]("content",[N,D])):(D["$[]="]("content",[z]),T["$[]="]("content",[D])),n["$<<"](T),t.content=w,t.$page().$build_components(t,n,new Map([["application",t.application]])),R=t.$page().$find_object_by(e),a(R)&&(t.content=R),R=t.$page().$find_object_by("window_body "+t.uuid.$to_s()),a(R)&&(t.window_body=R),R=t.$page().$find_object_by("title_object "+t.uuid.$to_s()),a(R)&&(t.title_object=R),R=t.$page().$find_object_by("menu_area "+t.uuid.$to_s()),a(R)&&(t.menu_area=R,t.menu_margin=(t.menu_area.$element().getBoundingClientRect().bottom-t.menu_area.$element().getBoundingClientRect().top).$to_i(),a(t.menu_area)&&t.menu_area.$parent().$parent().$gxg_merge_style(new Map([["border-collapse","collapse"]]))),_(x(E("GxG"),"DISPATCHER"),"post_event",[],(function e(){return(null==e.$$s?this:e.$$s).$commit_settings()}),{$$s:t}),t}))}(G[0],x(x(x(x("GxG"),"Gui"),"Vdom"),"BaseElement"),G),x(x("GxG"),"Gui").$register_component_class("org.gxg.gui.window",x(x(x("GxG"),"Gui"),"Window")),function(t,d,p){var f=n(t,d,"DialogBox"),b=[f].concat(p),y=e.$r(b),k=f.$$prototype;k.title_object=k.window_title=k.responder=k.right=k.left=k.bottom=k.top=k.opacity=k.content=k.background_color=k.layer=k.uuid=w,r(f,"$_before_create",(function e(){return e.$$p=null,g(this,v(this,"_before_create",e,!1,!0),"_before_create",[],null)})),r(f,"$uuid",o("uuid")),r(f,"$before_close",(function(e){return null==e&&(e=w),w}),-1),r(f,"$after_close",(function(e){return null==e&&(e=w),w}),-1),r(f,"$before_open",(function(e){return null==e&&(e=w),w}),-1),r(f,"$after_open",(function(e){return null==e&&(e=w),w}),-1),r(f,"$set_application",s("application")),i(f,"application=","set_application"),r(f,"$application",o("application")),r(f,"$set_window_title",(function(e){var t=this;return null==e&&(e=w),a(t.title_object)&&a(e["$is_a?"](x("String")))?(t.window_title=e,t.title_object.$set_text(t.window_title)):w}),-1),i(f,"window_title=","set_window_title"),r(f,"$window_title",(function(){return a(this.title_object)?this.window_title:w})),r(f,"$set_data",(function(e){return null==e&&(e=new Map),this.data=e}),-1),i(f,"data=","set_data"),r(f,"$data",o("data")),r(f,"$set_responder",(function(e){return null==e&&(e=w),a(e["$respond_to?"]("call"))?this.responder=e:w}),-1),i(f,"responder=","set_responder"),r(f,"$respond",(function(e){var t=this;return null==e&&(e=w),t.$page().$dialog_close(),a(t.responder["$respond_to?"]("call"))?t.responder.$call(e):w}),-1),r(f,"$top",o("top")),r(f,"$left",o("left")),r(f,"$right",o("right")),r(f,"$bottom",o("bottom")),r(f,"$width",(function(){return l(this.right,this.left)})),r(f,"$height",(function(){return l(this.bottom,this.top)})),r(f,"$position",(function(){return new Map([["x",this.left],["y",this.top]])})),r(f,"$layer",o("layer")),r(f,"$initialize",(function e(t,n,r){var i=this,s=w,o=w,_=w;return e.$$p=null,null==r&&(r=new Map),i.special_state=w,i.content=w,s=w,a(n["$[]"]("width")["$is_a?"](x("String")))||a(n["$[]"]("width").$to_s()["$include?"]("."))?s=a(n["$[]"]("width")["$is_a?"](x("String")))?$(window.innerWidth.$to_f(),u(n["$[]"]("width").$gsub("%","").$to_f(),100)):$(window.innerWidth.$to_f(),u(n["$[]"]("width"),100)):a(n["$[]"]("width")["$is_a?"](x("Numeric")))&&(s=n["$[]"]("width").$to_f()),a(s)&&(i.left=l(u(window.innerWidth.$to_f(),2),u(s,2)),i.right=c(u(window.innerWidth.$to_f(),2),u(s,2))),o=w,a(n["$[]"]("height")["$is_a?"](x("String")))||a(n["$[]"]("height").$to_s()["$include?"]("."))?o=a(n["$[]"]("height")["$is_a?"](x("String")))?$(window.innerHeight.$to_f(),u(n["$[]"]("height").$gsub("%","").$to_f(),100)):$(window.innerHeight.$to_f(),u(n["$[]"]("height"),100)):a(n["$[]"]("height")["$is_a?"](x("Numeric")))&&(o=n["$[]"]("height").$to_f()),a(o)&&(i.top=l(u(window.innerHeight.$to_f(),2),u(o,2)),i.bottom=c(u(window.innerHeight.$to_f(),2),u(o,2))),a(n["$[]"]("top")["$is_a?"](x("String")))||a(n["$[]"]("top").$to_s()["$include?"]("."))?a(n["$[]"]("top")["$is_a?"](x("String")))?i.top=$(window.innerHeight.$to_f(),u(n["$[]"]("top").$gsub("%","").$to_f(),100)):i.top=$(window.innerHeight.$to_f(),u(n["$[]"]("top"),100)):a(o)||(i.top=a(_=n["$[]"]("top"))?_:l(u(window.innerHeight.$to_i(),2),150)),a(n["$[]"]("left")["$is_a?"](x("String")))||a(n["$[]"]("left").$to_s()["$include?"]("."))?a(n["$[]"]("left")["$is_a?"](x("String")))?i.left=$(window.innerWidth.$to_f(),u(n["$[]"]("left").$gsub("%","").$to_f(),100)):i.left=$(window.innerWidth.$to_f(),u(n["$[]"]("left"),100)):a(s)||(i.left=a(_=n["$[]"]("left"))?_:l(u(window.innerWidth.$to_i(),2),300)),a(n["$[]"]("right")["$is_a?"](x("String")))||a(n["$[]"]("right").$to_s()["$include?"]("."))?a(n["$[]"]("right")["$is_a?"](x("String")))?i.right=$(window.innerWidth.$to_f(),u(n["$[]"]("right").$gsub("%","").$to_f(),100)):i.right=$(window.innerWidth.$to_f(),u(n["$[]"]("right"),100)):a(s)||(i.right=a(_=n["$[]"]("right"))?_:c(u(window.innerWidth.$to_i(),2),300)),a(n["$[]"]("bottom")["$is_a?"](x("String")))||a(n["$[]"]("bottom").$to_s()["$include?"]("."))?a(n["$[]"]("bottom")["$is_a?"](x("String")))?i.bottom=$(window.innerHeight.$to_f(),u(n["$[]"]("bottom").$gsub("%","").$to_f(),100)):i.bottom=$(window.innerHeight.$to_f(),u(n["$[]"]("bottom"),100)):a(o)||(i.bottom=a(_=n["$[]"]("bottom"))?_:c(u(window.innerHeight.$to_i(),2),150)),i.window_title=a(_=n["$[]"]("window_title"))?_:"Untitled",i.title_object=w,i.opacity=a(_=n["$[]"]("opacity"))?_:.8,i.background_color=a(_=n["$[]"]("background-color"))?_:"rgba(0,0,0,"+i.opacity.$to_s()+")",i.layer=2e3,i.tracking=new Map,i.responder=w,i.data=new Map,g(i,v(i,"initialize",e,!1,!0),"initialize",[t,n,r],null),i.$set_attribute("draggable",!1),i}),-3),i(f,"original_add_child","add_child"),r(f,"$add_child",(function(e){var t=this;return a(t.content)?t.content.$add_child(e):t.$original_add_child(e)})),i(f,"original_children","children"),r(f,"$children",(function(){return a(this.content)?this.content.$children():new Map})),r(f,"$find_child",(function(e,t){var n=w,r=w,i=w,s=w;for(null==e&&(e=w),null==t&&(t=!1),n=w,r=!!a(y("GxG")["$valid_uuid?"](e)),i=m(t,!0)?this.$original_children().$values():this.$children().$values();a(h(i.$size(),0));)if(s=i.$shift(),a(s)){if(a(r)){if(m(s.$uuid(),e)){n=s;break}}else if(m(s.$title(),e)){n=s;break}a(n)||_(s.$children().$values(),"each",[],(function(e){return null==e&&(e=w),i["$<<"](e)}))}return n}),-1),r(f,"$cascade",(function(){var e=this,t=w,n=w,r=w,i=w,s=w,o=w,_=w,d=w;return e.$merge_style(new Map([["position","absolute"],["top","0px"],["left","0px"],["width","100%"],["height","100%"],["background-color",e.background_color],["z-index",e.layer]])),"\n on(:mouseup,true) do |event|\n end\n on(:mousedown,true) do |event|\n end\n on(:mousemove,true) do |event|\n end\n on(:mouseenter,true) do |event|\n end\n on(:mouseleave,true) do |event|\n end\n ",e.$set_script("\n on(:mouseup,true) do |event|\n end\n on(:mousedown,true) do |event|\n end\n on(:mousemove,true) do |event|\n end\n on(:mouseenter,true) do |event|\n end\n on(:mouseleave,true) do |event|\n end\n "),t=[],(n=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$title="]("modal_frame "+e.uuid.$to_s()),n["$[]="]("component","org.gxg.gui.block.table"),n["$[]="]("settings",new Map),n["$[]="]("options",new Map([["style",new Map([["opacity",1],["clear","both"],["overflow","hidden"],["position","absolute"],["top",e.top+"px"],["left",e.left+"px"],["width",e.$width()+"px"],["height",e.$height()+"px"],["padding","0px"],["margin","0px"],["border-radius","5px 5px 5px 5px"],["z-index",c(e.layer,100)]])],["states",new Map([["default-background-color",!0]])]])),n["$[]="]("script",""),n["$[]="]("content",[]),(r=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$title="]("title "+e.uuid.$to_s()),r["$[]="]("component","org.gxg.gui.label"),r["$[]="]("settings",new Map),r["$[]="]("options",new Map([["content",e.window_title],["style",new Map([["opacity",1],["width","100%"],["font-size","16px"],["text-align","center"]])]])),r["$[]="]("script",""),r["$[]="]("content",[]),(i=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$[]="]("component","org.gxg.gui.block.table.cell"),i["$[]="]("settings",new Map),i["$[]="]("options",new Map([["style",new Map([["opacity",1],["width","100%"],["padding","0px 0px 0px "+l(u(e.$width(),2),$(u(e.window_title.$size(),2),8))+"px"],["margin","0px"],["vertical-align","middle"],["background-color","transparent"]])]])),i["$[]="]("script",""),i["$[]="]("content",[r]),(s=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$[]="]("component","org.gxg.gui.block.table.row"),s["$[]="]("settings",new Map),s["$[]="]("options",new Map([["style",new Map([["opacity",1],["clear","both"],["padding","0px"],["width","100%"],["height","24px"],["margin","0px"],["vertical-align","middle"],["background-color","#ffffff"],["border-bottom","1px solid #c2c2c2"]])]])),s["$[]="]("script",""),s["$[]="]("content",[i]),(o=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$title="]("content "+e.uuid.$to_s()),o["$[]="]("component","org.gxg.gui.block.table.cell"),o["$[]="]("settings",new Map),o["$[]="]("options",new Map([["style",new Map([["opacity",1],["clear","both"],["padding","0px"],["margin","0px"],["border","0px"],["width",e.$width()+"px"],["height",e.$height()+"px"]])],["states",new Map([["default-background-color",!0]])]])),o["$[]="]("script",""),o["$[]="]("content",[]),(_=x(x(x("GxG"),"Database"),"DetachedHash").$new())["$[]="]("component","org.gxg.gui.block.table.row"),_["$[]="]("settings",new Map),_["$[]="]("options",new Map([["style",new Map([["opacity",1],["width",e.$width()+"px"],["height",l(e.$height(),24)+"px"],["padding","0px"],["margin","0px"],["border","0px"]])]])),_["$[]="]("script",""),_["$[]="]("content",[o]),n["$[]="]("content",[s,_]),t["$<<"](n),e.content=w,e.$page().$build_components(e,t),d=e.$page().$find_object_by("content "+e.uuid.$to_s()),a(d)&&(e.content=d),d=e.$page().$find_object_by("title "+e.uuid.$to_s()),a(d)?e.title_object=d:w})),r(f,"$open",(function(e){return null==e&&(e=new Map),w}),-1),r(f,"$close",(function(e){return null==e&&(e=new Map),w}),-1)}(G[0],x(x(x(x("GxG"),"Gui"),"Vdom"),"BaseElement"),G),x(x("GxG"),"Gui").$register_component_class("org.gxg.gui.window.dialog",x(x(x("GxG"),"Gui"),"DialogBox")),function(i,s){var u=[t(i,"Vdom")].concat(s);return function(t,i,s){var u=n(t,null,"Page"),d=[u].concat(s),p=e.$r(d),g=u.$$prototype;return g.dialog=g.dialog_queue=g.window_registry=w,r(u,"$window_open",(function(e,t){var n=this,r=w,i=w;return null==e&&(e=w),null==t&&(t=w),!!a(e["$is_a?"](x(x(p("GxG"),"Database"),"DetachedHash")))&&(n.$build_components(n,[e],new Map([["application",t]])),r=n.$find_object_by(e.$uuid()),a(r)?(a(r.$menu_reference())&&(i=t.$search_content(r.$menu_reference()),a(i["$is_a?"](x(x(p("GxG"),"Database"),"DetachedHash")))?r.$set_menu(i):n.$log_warn("Invalid Menu Resource referenced: "+r.$menu_reference().$inspect())),n.$window_register(r.$uuid(),r),r.$before_open(),r.$open(),r.$show(),r.$after_open(),!0):(n.$log_warn("Unable to locate newly created window object."),!1))}),-1),r(u,"$window_close",(function(e,t){var n=w;return null==e&&(e=w),null==t&&(t=new Map),!!a(e["$is_any?"](x("String"),x("Symbol")))&&(n=this.$get_window_registration(e),!!a(n)&&(n["$[]"]("window").$before_close(),n["$[]"]("window").$close(),n["$[]"]("window").$hide(),n["$[]"]("window").$after_close(),a(n["$[]"]("window").$application())&&(n["$[]"]("window").$application().$unlink_window(e),n["$[]"]("window").$set_application(w)),this.$window_unregister(e),n["$[]"]("window").$destroy(),!0))}),-1),r(u,"$dialog_open",(function e(t,n,r){var i=e.$$p||w,s=this,o=w;return e.$$p=null,null==t&&(t=w),null==n&&(n=w),null==r&&(r=w),a(t["$is_a?"](x(x(x("GxG"),"Database"),"DetachedHash")))?a(s.dialog["$is_a?"](x(x(x("GxG"),"Gui"),"DialogBox")))?(s.dialog_queue["$<<"](new Map([["source",t],["application",n],["details",r],["responder",i]])),!0):(s.$page().$build_components(s,[t],new Map([["application",n]])),o=s.$page().$find_object_by(t.$uuid()),!!a(o)&&(o.$set_title(t.$title()),a(n["$is_a?"](x(x("GxG"),"Application")))&&(o.$set_application(n),a(n.$get_window(t.$uuid()))||n.$link_window(o)),a(r)&&o.$set_data(r),a(i["$respond_to?"]("call"))&&o.$set_responder(i),o.$before_open(),o.$open(),o.$show(new Map([["origin",new Map([["opacity",0]])],["destination",new Map([["opacity",1]])]])),o.$after_open(),!0)):w}),-1),r(u,"$dialog_close",(function(e){var t=this,n=w;return null==e&&(e=new Map),a(t.dialog["$is_a?"](x(x(x("GxG"),"Gui"),"DialogBox")))&&(t.dialog.$before_close(),n=_(p("Proc"),"new",[],(function e(){var t=null==e.$$s?this:e.$$s,n=w;return null==t.dialog&&(t.dialog=w),null==t.dialog_queue&&(t.dialog_queue=w),t.dialog.$close(),t.dialog.$after_close(),_(t.dialog,"every_child",[],(function(e){var t=w;return null==e&&(e=w),a(e["$is_a?"](x(x(x("GxG"),"Gui"),"ApplicationViewport")))?(t=e.$application(),a(t)?t.$unlink_viewport(e.$title()):w):w})),t.dialog.$destroy(),t.dialog=w,a(h(t.dialog_queue.$size(),0))?(n=t.dialog_queue.$shift(),_(t.$page(),"dialog_open",[n["$[]"]("source"),n["$[]"]("application"),n["$[]"]("details")],n["$[]"]("responder").$to_proc())):w}),{$$s:t}),a(e["$[]"]("origin"))&&a(e["$[]"]("destination"))?_(t.dialog,"hide",[e],n.$to_proc()):_(t.dialog,"hide",[new Map([["origin",new Map([["opacity",1]])],["destination",new Map([["opacity",0]])],["options",new Map([["duration",500]])]])],n.$to_proc())),!0}),-1),r(u,"$window_is_in_back?",(function(e){var t=w,n=w,r=w;return null==e&&(e=w),t=this.$get_window_registration(e),!!a(t)&&(n=a(r=_(this.window_registry,"collect",[],(function(e,t){return null==e&&(e=w),null==t&&(t=w),t["$[]"]("layer")})).$min())?r:0,!!m(t["$[]"]("layer"),n))}),-1),r(u,"$window_is_in_front?",(function(e){var t=w,n=w,r=w;return null==e&&(e=w),t=this.$get_window_registration(e),!!a(t)&&(n=a(r=_(this.window_registry,"collect",[],(function(e,t){return null==e&&(e=w),null==t&&(t=w),t["$[]"]("layer")})).$max())?r:0,!!m(t["$[]"]("layer"),n))}),-1),r(u,"$window_send_to_back",(function(e){var t,n=this,r=w,i=w;return null==e&&(e=w),r=n.$get_window_registration(e),!!a(r)&&(a(n["$window_is_in_back?"](e))?w:(i=n.$window_back_layer(),r["$[]"]("window").$gxg_merge_style("z-index",c(200,i)),_(r,"[]=",t=["layer",i]),t[t.length-1]))}),-1),r(u,"$window_bring_to_front",(function(e,t){var n=this,r=w,i=w;return null==e&&(e=w),null==t&&(t=new Map),r=n.$get_window_registration(e),!!a(r)&&(m(r["$[]"]("layer"),n.$window_top_layer())||(i=n.$window_next_layer(),r["$[]"]("window").$gxg_merge_style("z-index",c(200,i)),r["$[]="]("layer",i)),!0)}),-1),r(u,"$next_minimize_slot",(function(){var t,n,r,i=this,s=w,o=w;return t=200,24,s=x(p("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area(),n=e.Range.$new(0,l(s["$[]"]("right"),s["$[]"]("left")).$step(t).$size(),!1),r=e.Range.$new(0,l(s["$[]"]("bottom"),s["$[]"]("top")).$step(24).$size(),!1),o=w,function(){try{var u=b("break");return _(e.Range.$new(0,l(r,1),!1),"each",[],(function r(i){var d=null==r.$$s?this:r.$$s;if(null==i&&(i=w),function(){try{var r=b("break");return _(e.Range.$new(0,l(n,1),!1),"each",[],(function e(n){var u=null==e.$$s?this:e.$$s,l=w,d=w;if(null==u.window_registry&&(u.window_registry=w),null==n&&(n=w),l=!1,d=new Map([["top",c(s["$[]"]("top"),$(i,24))],["left",c(s["$[]"]("left"),$(n,t))],["right",c(c(s["$[]"]("left"),$(n,t)),t)],["bottom",c(c(s["$[]"]("top"),$(i,24)),24)]]),function(){try{var e=b("break");return _(u.window_registry.$values(),"each",[],(function t(n){var r=w;if(null==n&&(n=w),(r=new Map([["top",0],["left",0],["right",0],["bottom",0]]))["$[]="]("top",n["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),r["$[]="]("left",n["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),r["$[]="]("right",n["$[]"]("window").$element().getBoundingClientRect().right.$to_i()),r["$[]="]("bottom",n["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i()),!(m(r["$[]"]("top"),d["$[]"]("top"))&&m(r["$[]"]("left"),d["$[]"]("left"))&&m(r["$[]"]("right"),d["$[]"]("right"))&&m(r["$[]"]("bottom"),d["$[]"]("bottom"))))return w;l=!0,e.$throw(w,t.$$is_lambda)}))}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),a(l))return w;o=d,r.$throw(w,e.$$is_lambda)}),{$$s:d})}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}}(),!a(o))return w;u.$throw(w,r.$$is_lambda)}),{$$s:i})}catch(e){if(e===u)return e.$v;throw e}finally{u.is_orphan=!0}}(),o})),r(u,"$minimize_effect",(function e(t){var n,r=e.$$p||w,i=this,s=w,o=w,$=w,u=w,c=w,d=w,f=w,h=w,m=w,g=w;return e.$$p=null,null==t&&(t=w),s=i.$get_window_switcher(),a(s)?((o=new Map([["opacity",1]]))["$[]="]("top",t["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),o["$[]="]("left",t["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),$=t["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),u=t["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i(),o["$[]="]("width",l($,o["$[]"]("left"))),o["$[]="]("height",l(u,o["$[]"]("top"))),(c=new Map([["opacity",0]]))["$[]="]("top",s.$element().getBoundingClientRect().top.$to_i()),c["$[]="]("left",s.$element().getBoundingClientRect().right.$to_i()),d=s.$element().getBoundingClientRect().right.$to_i(),f=s.$element().getBoundingClientRect().top.$to_i(),c["$[]="]("width",l(d,c["$[]"]("left"))),c["$[]="]("height",l(f,c["$[]"]("top"))),h=_(p("Proc"),"new",[],(function(){return a(r["$respond_to?"]("call"))?r.$call(!0):w}))):(m=i.$next_minimize_slot(),(o=new Map([["opacity",1]]))["$[]="]("top",t["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),o["$[]="]("left",t["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),$=t["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),u=t["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i(),o["$[]="]("width",l($,o["$[]"]("left"))),o["$[]="]("height",l(u,o["$[]"]("top"))),(c=new Map([["opacity",.5]]))["$[]="]("top",m["$[]"]("top")),c["$[]="]("left",m["$[]"]("left")),d=m["$[]"]("right"),f=m["$[]"]("bottom"),c["$[]="]("width",l(d,c["$[]"]("left"))),c["$[]="]("height",l(f,c["$[]"]("top"))),h=_(p("Proc"),"new",[],(function e(){return(null==e.$$s?this:e.$$s).$window_send_to_back(t["$[]"]("window").$uuid()),a(r["$respond_to?"]("call"))?r.$call(!0):w}),{$$s:i})),n=_(p("Proc"),"new",[],(function(){var e,n,r,i;return e=t["$[]"]("window").$element().getBoundingClientRect().top.$to_i(),n=t["$[]"]("window").$element().getBoundingClientRect().left.$to_i(),r=t["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),i=t["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i(),t["$[]"]("window").$set_frame(new Map([["top",e],["left",n],["right",r],["bottom",i]]))})),t["$[]"]("window").$animate(new Map([["origin",o],["destination",c],["options",new Map([["duration",500],["animationiteration",n],["animationend",h]])]])),(g=new Map([["action","minimize"],["top",0],["left",0],["right",0],["bottom",0]]))["$[]="]("top",t["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),g["$[]="]("left",t["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),g["$[]="]("right",t["$[]"]("window").$element().getBoundingClientRect().right.$to_i()),g["$[]="]("bottom",t["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i()),g}),-1),r(u,"$unminimize_effect",(function e(t){var n,r,i,s=e.$$p||w,o=w,$=w,u=w,c=w,d=w,f=w;return e.$$p=null,null==t&&(t=w),n=this.$get_window_switcher(),a(n)?((o=new Map([["opacity",0]]))["$[]="]("top",t["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),o["$[]="]("left",t["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),$=t["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),u=t["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i(),o["$[]="]("width",l($,o["$[]"]("left"))),o["$[]="]("height",l(u,o["$[]"]("top"))),(c=new Map([["opacity",1]]))["$[]="]("top",t["$[]"]("restore")["$[]"]("settings")["$[]"]("top")),c["$[]="]("left",t["$[]"]("restore")["$[]"]("settings")["$[]"]("left")),d=t["$[]"]("restore")["$[]"]("settings")["$[]"]("right"),f=t["$[]"]("restore")["$[]"]("settings")["$[]"]("bottom"),c["$[]="]("width",l(d,c["$[]"]("left"))),c["$[]="]("height",l(f,c["$[]"]("top")))):((o=new Map([["opacity",.5]]))["$[]="]("top",t["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),o["$[]="]("left",t["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),$=t["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),u=t["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i(),o["$[]="]("width",l($,o["$[]"]("left"))),o["$[]="]("height",l(u,o["$[]"]("top"))),(c=new Map([["opacity",1]]))["$[]="]("top",t["$[]"]("restore")["$[]"]("settings")["$[]"]("top")),c["$[]="]("left",t["$[]"]("restore")["$[]"]("settings")["$[]"]("left")),d=t["$[]"]("restore")["$[]"]("settings")["$[]"]("right"),f=t["$[]"]("restore")["$[]"]("settings")["$[]"]("bottom"),c["$[]="]("width",l(d,c["$[]"]("left"))),c["$[]="]("height",l(f,c["$[]"]("top")))),r=_(p("Proc"),"new",[],(function(){var e,n,r,i;return e=t["$[]"]("window").$element().getBoundingClientRect().top.$to_i(),n=t["$[]"]("window").$element().getBoundingClientRect().left.$to_i(),r=t["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),i=t["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i(),t["$[]"]("window").$set_frame(new Map([["top",e],["left",n],["right",r],["bottom",i]]))})),i=_(p("Proc"),"new",[],(function(){return a(s["$respond_to?"]("call"))?s.$call(!0):w})),t["$[]"]("window").$animate(new Map([["origin",o],["destination",c],["options",new Map([["duration",500],["animationiteration",r],["animationend",i]])]])),!0}),-1),r(u,"$maximize_effect",(function e(t){var n,r,i,s,o=e.$$p||w,$=w,u=w,c=w,d=w;return e.$$p=null,null==t&&(t=w),$=x(p("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$layout_content_area(),(u=new Map)["$[]="]("top",t["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),u["$[]="]("left",t["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),n=t["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),r=t["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i(),u["$[]="]("width",l(n,u["$[]"]("left"))),u["$[]="]("height",l(r,u["$[]"]("top"))),(c=new Map)["$[]="]("top",$["$[]"]("top")),c["$[]="]("left",$["$[]"]("left")),c["$[]="]("width",l($["$[]"]("right"),c["$[]"]("left"))),c["$[]="]("height",l($["$[]"]("bottom"),c["$[]"]("top"))),i=_(p("Proc"),"new",[],(function(){var e,n,r,i;return e=t["$[]"]("window").$element().getBoundingClientRect().top.$to_i(),n=t["$[]"]("window").$element().getBoundingClientRect().left.$to_i(),r=t["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),i=t["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i(),t["$[]"]("window").$set_frame(new Map([["top",e],["left",n],["right",r],["bottom",i]]))})),s=_(p("Proc"),"new",[],(function(){return a(o["$respond_to?"]("call"))?o.$call(!0):w})),t["$[]"]("window").$animate(new Map([["origin",u],["destination",c],["options",new Map([["duration",500],["animationiteration",i],["animationend",s]])]])),(d=new Map([["action","maximize"],["top",0],["left",0],["right",0],["bottom",0]]))["$[]="]("top",$["$[]"]("top")),d["$[]="]("left",$["$[]"]("left")),d["$[]="]("right",$["$[]"]("right")),d["$[]="]("bottom",$["$[]"]("bottom")),d}),-1),r(u,"$unmaximize_effect",(function e(t){var n,r,i,s,o,$,u=e.$$p||w,c=w,d=w;return e.$$p=null,null==t&&(t=w),(c=new Map)["$[]="]("top",t["$[]"]("window").$top()),c["$[]="]("left",t["$[]"]("window").$left()),n=t["$[]"]("window").$right(),r=t["$[]"]("window").$bottom(),c["$[]="]("width",l(n,c["$[]"]("left"))),c["$[]="]("height",l(r,c["$[]"]("top"))),(d=new Map)["$[]="]("top",t["$[]"]("restore")["$[]"]("settings")["$[]"]("top")),d["$[]="]("left",t["$[]"]("restore")["$[]"]("settings")["$[]"]("left")),i=t["$[]"]("restore")["$[]"]("settings")["$[]"]("right"),s=t["$[]"]("restore")["$[]"]("settings")["$[]"]("bottom"),d["$[]="]("width",l(i,d["$[]"]("left"))),d["$[]="]("height",l(s,d["$[]"]("top"))),o=_(p("Proc"),"new",[],(function(){var e,n,r,i;return e=t["$[]"]("window").$element().getBoundingClientRect().top.$to_i(),n=t["$[]"]("window").$element().getBoundingClientRect().left.$to_i(),r=t["$[]"]("window").$element().getBoundingClientRect().right.$to_i(),i=t["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i(),t["$[]"]("window").$set_frame(new Map([["top",e],["left",n],["right",r],["bottom",i]]))})),$=_(p("Proc"),"new",[],(function(){return a(u["$respond_to?"]("call"))?u.$call(!0):w})),t["$[]"]("window").$animate(new Map([["origin",c],["destination",d],["options",new Map([["duration",500],["animationiteration",o],["animationend",$]])]])),!0}),-1),r(u,"$rollup_effect",(function e(t){var n,r=e.$$p||w,i=w,s=w,o=w;return e.$$p=null,null==t&&(t=w),i=new Map,t["$[]"]("window").$top(),i["$[]="]("height",t["$[]"]("window").$height()),(s=new Map)["$[]="]("height",24),n=t["$[]"]("window").$find_child("window_body",!0),a(n)&&_(n,"hide",[new Map([["origin",new Map([["opacity",1]])],["destination",new Map([["opacity",0]])]])],(function(){return t["$[]"]("window").$animate(new Map([["origin",i],["destination",s]])),a(r["$respond_to?"]("call"))?r.$call(!0):w})),(o=new Map([["action","rollup"],["top",0],["left",0],["right",0],["bottom",0]]))["$[]="]("top",t["$[]"]("window").$element().getBoundingClientRect().top.$to_i()),o["$[]="]("left",t["$[]"]("window").$element().getBoundingClientRect().left.$to_i()),o["$[]="]("right",t["$[]"]("window").$element().getBoundingClientRect().right.$to_i()),o["$[]="]("bottom",t["$[]"]("window").$element().getBoundingClientRect().bottom.$to_i()),o}),-1),r(u,"$rolldown_effect",(function e(t){var n,r=e.$$p||w,i=w,s=w;return e.$$p=null,null==t&&(t=w),(i=new Map)["$[]="]("height",24),(s=new Map)["$[]="]("height",l(t["$[]"]("restore")["$[]"]("settings")["$[]"]("bottom"),t["$[]"]("restore")["$[]"]("settings")["$[]"]("top"))),n=_(p("Proc"),"new",[],(function(){var e;return e=t["$[]"]("window").$find_child("window_body",!0),a(e)?_(e,"show",[new Map([["origin",new Map([["opacity",0]])],["destination",new Map([["opacity",1]])]])],(function(){return t["$[]"]("window").$commit_settings(),a(r["$respond_to?"]("call"))?r.$call(!0):w})):w})),t["$[]"]("window").$animate(new Map([["origin",i],["destination",s],["options",new Map([["duration",500],["animationend",n]])]])),!0}),-1),r(u,"$window_restoreable?",(function(e){var t=w;return null==e&&(e=w),t=this.$get_window_registration(e),!!a(t)&&!!a(t["$[]"]("restore")["$is_a?"](x("Hash")))}),-1),r(u,"$window_restore",(function e(t,n){var r=e.$$p||w,i=this,s=w;if(e.$$p=null,null==t&&(t=w),null==n&&(n=new Map),s=i.$get_window_registration(t),a(s)){if(a(s["$[]"]("restore")["$is_a?"](x("Hash")))){switch(s["$[]"]("restore")["$[]"]("action").valueOf()){case"minimize":_(i,"unminimize_effect",[s],(function(){return s["$[]"]("window").$clear_special_state(s["$[]"]("restore")["$[]"]("settings")),s["$[]="]("restore",w),a(r["$respond_to?"]("call"))?r.$call(!0):w}));break;case"maximize":_(i,"unmaximize_effect",[s],(function(){return s["$[]"]("window").$clear_special_state(s["$[]"]("restore")["$[]"]("settings")),s["$[]="]("restore",w),a(r["$respond_to?"]("call"))?r.$call(!0):w}));break;case"rollup":_(i,"rolldown_effect",[s],(function(){return s["$[]"]("window").$clear_special_state(s["$[]"]("restore")["$[]"]("settings")),s["$[]="]("restore",w),a(r["$respond_to?"]("call"))?r.$call(!0):w}))}return!0}return!1}return!1}),-1),r(u,"$window_minimize",(function(e,t){var n=this,r=w;return null==e&&(e=w),null==t&&(t=new Map),r=n.$get_window_registration(e),!!a(r)&&(a(n["$window_restoreable?"](e))?_(n,"window_restore",[e],(function e(){var n=null==e.$$s?this:e.$$s;return t=new Map([["top",r["$[]"]("window").$top()],["left",r["$[]"]("window").$left()],["right",r["$[]"]("window").$right()],["bottom",r["$[]"]("window").$bottom()]]),r["$[]="]("restore",new Map([["action","minimize"],["settings",t]])),r["$[]"]("window").$set_special_state(n.$minimize_effect(r))}),{$$s:n}):(r["$[]="]("restore",new Map([["action","minimize"],["settings",t]])),r["$[]"]("window").$set_special_state(n.$minimize_effect(r))),!0)}),-1),r(u,"$window_maximize",(function(e,t){var n=this,r=w;return null==e&&(e=w),null==t&&(t=new Map),r=n.$get_window_registration(e),!!a(r)&&(a(n["$window_restoreable?"](e))?_(n,"window_restore",[e],(function n(){var i=null==n.$$s?this:n.$$s;return t=new Map([["top",r["$[]"]("window").$top()],["left",r["$[]"]("window").$left()],["right",r["$[]"]("window").$right()],["bottom",r["$[]"]("window").$bottom()]]),r["$[]="]("restore",new Map([["action","maximize"],["settings",t]])),r["$[]"]("window").$set_special_state(i.$maximize_effect(r)),i.$window_bring_to_front(e)}),{$$s:n}):(r["$[]="]("restore",new Map([["action","maximize"],["settings",t]])),r["$[]"]("window").$set_special_state(n.$maximize_effect(r)),n.$window_bring_to_front(e)),!0)}),-1),r(u,"$window_rollup",(function(e,t){var n=this,r=w;return null==e&&(e=w),null==t&&(t=new Map),r=n.$get_window_registration(e),!!a(r)&&(a(n["$window_restoreable?"](e))?_(n,"window_restore",[e],(function e(){var n=null==e.$$s?this:e.$$s;return t=new Map([["top",r["$[]"]("window").$top()],["left",r["$[]"]("window").$left()],["right",r["$[]"]("window").$right()],["bottom",r["$[]"]("window").$bottom()]]),r["$[]="]("restore",new Map([["action","rollup"],["settings",t]])),r["$[]"]("window").$set_special_state(n.$rollup_effect(r))}),{$$s:n}):(r["$[]="]("restore",new Map([["action","rollup"],["settings",t]])),r["$[]"]("window").$set_special_state(n.$rollup_effect(r))),!0)}),-1),r(u,"$get_window_registration",(function(e){return null==e&&(e=w),a(e["$is_any?"](x("String"),x("Symbol")))?this.window_registry["$[]"](e):w}),-1),r(u,"$get_window",(function(e){var t=w;return null==e&&(e=w),a(e["$is_any?"](x("String"),x("Symbol")))?(t=this.$get_window_registration(e),a(t)?t["$[]"]("window"):w):w}),-1),r(u,"$window_list",(function(){var e=w;return e=[],_(this.window_registry.$keys(),"each",[],(function t(n){var r=null==t.$$s?this:t.$$s;return null==r.window_registry&&(r.window_registry=w),null==n&&(n=w),e["$<<"](new Map([["uuid",n],["title",r.window_registry["$[]"](n)["$[]"]("window").$title()]]))}),{$$s:this}),e})),r(u,"$window_repack_layers",(function(){var e=this;return e.window_registry=_(e.window_registry,"sort_by",[],(function(e,t){return null==e&&(e=w),null==t&&(t=w),t["$[]"]("layer")})).$to_h(),_(e.window_registry.$values(),"each_with_index",[],(function(e,t){var n;return null==e&&(e=w),null==t&&(t=w),e["$[]"]("window").$gxg_merge_style("z-index",c(200,t)),_(e,"[]=",n=["layer",t]),n[n.length-1]})),!0})),r(u,"$window_top_layer",(function(){var e;return a(e=_(this.window_registry,"collect",[],(function(e,t){return null==e&&(e=w),null==t&&(t=w),t["$[]"]("layer")})).$max())?e:0})),r(u,"$window_back_layer",(function(){var e=this,t=w,n=w;return t=l(a(n=_(e.window_registry,"collect",[],(function(e,t){return null==e&&(e=w),null==t&&(t=w),t["$[]"]("layer")})).$min())?n:0,1),a(f(t,100))&&(e.$window_repack_layers(),t=l(a(n=_(e.window_registry,"collect",[],(function(e,t){return null==e&&(e=w),null==t&&(t=w),t["$[]"]("layer")})).$min())?n:0,1)),t})),r(u,"$window_next_layer",(function(){var e=this,t=w,n=w;return t=c(a(n=_(e.window_registry,"collect",[],(function(e,t){return null==e&&(e=w),null==t&&(t=w),t["$[]"]("layer")})).$max())?n:0,1),a(h(t,99))&&(e.$window_repack_layers(),t=c(a(n=_(e.window_registry,"collect",[],(function(e,t){return null==e&&(e=w),null==t&&(t=w),t["$[]"]("layer")})).$max())?n:0,1)),t})),r(u,"$window_register",(function(e,t){var n=w;return null==e&&(e=w),null==t&&(t=w),!!a(e["$is_any?"](x("String"),x("Symbol")))&&(!!a(t)&&(n=this.$window_next_layer(),t.$gxg_merge_style("z-index",c(200,n)),this.window_registry["$[]="](e,new Map([["window",t],["layer",n],["restore",w]])),!0))}),-1),r(u,"$window_unregister",(function(e){return null==e&&(e=w),!!a(e["$is_any?"](x("String"),x("Symbol")))&&(this.window_registry.$delete(e),!0)}),-1),r(u,"$set_window_switcher",(function(e){return null==e&&(e=w),a(e)?this.window_switcher=e:w}),-1),r(u,"$get_window_switcher",o("window_switcher"))}(u[0],0,u)}(G[0],G)}(G[0],G)}(y[0],y)},Opal.modules["web/gxg_gui"]=function(e){var t=e.module,n=e.klass,r=e.send2,i=e.find_super,a=e.def,s=e.assign_ivar,o=e.return_ivar,$=e.truthy,u=e.rb_gt,l=e.send,c=e.eqeq,_=e.thrower,d=e.alias,p=e.rb_plus,f=e.neqeq,h=e.rb_times,m=e.rb_minus,g=e.rb_divide,v=e.range,b=[],y=e.nil,w=e.$$$;return e.add_stubs(">,size,shift,valid_uuid?,[],children,uuid,object_source,each_child,<<,==,title,register_component_class,add_child,is_a?,original_add_child,values,original_children,each,new_component,title=,to_s,[]=,build_components,page,find_object_by,respond_to?,include?,to_sym,log_warn,inspect,clone,node_path,nodes,split,node_at_path,+,join,gxg_get_state,expand,post_event,expand_path,to_proc,call,!=,unhighlight,highlight,parent,unshift,is_any?,update_appearance,find_parent_type,theme_icon,theme_widget,new,merge_style,show,set_state,set_attribute,tree,hide,collapse,unpersist,each_pair,animate,layout_refresh,to_i,*,to_f,layout_content_area,-,round,/,dialog_open,log_error,basename,reverse"),function(b,x){var k=[t(b,"GxG")].concat(x);return function(b,x){var k=[t(b,"Gui")].concat(x);return function(t,d,p){var f=n(t,d,"ApplicationViewport"),h=[f].concat(p),m=e.$r(h);a(f,"$_before_create",(function e(){var t=this;return e.$$p=null,t.domtype="div",r(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null)})),a(f,"$set_application",s("application")),a(f,"$application",o("application")),a(f,"$find_child",(function(e){var t=this,n=y,r=y,i=y;if(null==e&&(e=y),n=y,$(e))for(r=[t];$(u(r.$size(),0));)if(i=r.$shift(),$(i))if($(m("GxG")["$valid_uuid?"](e))){if($(i.$children()["$[]"](t.$object_source().$uuid()))){n=i.$children()["$[]"](t.$object_source().$uuid());break}l(i,"each_child",[],(function(e){return null==e&&(e=y),r["$<<"](e)}))}else!function(){try{var t=_("break");return l(i,"each_child",[],(function i(a){if(null==a&&(a=y),!c(a.$title(),e))return r["$<<"](a);n=a,t.$throw(y,i.$$is_lambda)}))}catch(e){if(e===t)return e.$v;throw e}finally{t.is_orphan=!0}}();return n}),-1)}(k[0],w(w(w(w("GxG"),"Gui"),"Vdom"),"BaseElement"),k),w(w("GxG"),"Gui").$register_component_class("org.gxg.gui.application.viewport",w(w(w("GxG"),"Gui"),"ApplicationViewport")),function(t,s,h){var m=n(t,s,"Tree"),g=[m].concat(h),v=e.$r(g),b=m.$$prototype;b.content=b.uuid=b.processors=b.selection=y,d(m,"original_add_child","add_child"),a(m,"$add_child",(function(e){var t=this;return null==e&&(e=y),$(e["$is_a?"](w(w(w("GxG"),"Database"),"DetachedHash")))?$(t.content)?t.content.$add_child(e):t.$original_add_child(e):y}),-1),d(m,"original_children","children"),a(m,"$children",(function(){return $(this.content)?this.content.$children():new Map})),a(m,"$find_child",(function(e,t){var n=y,r=y,i=y,a=y;for(null==e&&(e=y),null==t&&(t=!1),n=y,r=!!$(v("GxG")["$valid_uuid?"](e)),i=c(t,!0)?this.$original_children().$values():this.$children().$values();$(u(i.$size(),0));)if(a=i.$shift(),$(a)){if($(r)){if(c(a.$uuid(),e)){n=a;break}}else if(c(a.$title(),e)){n=a;break}$(n)||l(a.$children().$values(),"each",[],(function(e){return null==e&&(e=y),i["$<<"](e)}))}return n}),-1),a(m,"$initialize",(function e(t,n){var a=this;return e.$$p=null,a.content=y,a.selection=y,a.processors=new Map,r(a,i(a,"initialize",e,!1,!0),"initialize",[t,n],null),a})),a(m,"$cascade",(function(){var e,t=this,n=y;return(n=t.$new_component("org.gxg.gui.list"))["$title="]("content "+t.uuid.$to_s()),n["$[]="]("options",new Map([["style",new Map([["white-space","nowrap"],["width","auto"],["height","auto"],["list-style","none"],["margin","0px"],["padding","0px"]])]])),t.content=y,t.$page().$build_components(t,[n]),e=t.$page().$find_object_by("content "+t.uuid.$to_s()),$(e)?t.content=e:y})),a(m,"$update_appearance",(function(e){return null==e&&(e=y),y}),-1),a(m,"$set_processor",(function e(t){var n,r=e.$$p||y;return e.$$p=null,null==t&&(t=y),$(r["$respond_to?"]("call"))?$(["select","expand","collapse"]["$include?"](t.$to_s().$to_sym()))?(n=[t.$to_s().$to_sym(),r],l(this.processors,"[]=",n),n[n.length-1]):this.$log_warn("Unsupported processor type: "+t.$to_s().$to_sym().$inspect()):y}),-1),a(m,"$node_at_path",(function(e){var t=y,n=y,r=y;for(null==e&&(e=y),t=y,n=this.$children().$values().$clone();$(u(n.$size(),0));)if(r=n.$shift(),$(r["$is_a?"](w(w(v("GxG"),"Gui"),"TreeNode")))){if(c(r.$node_path(),e)){t=r;break}l(r.$nodes().$values(),"each",[],(function(e){return null==e&&(e=y),n["$<<"](e)}))}return t}),-1),a(m,"$expand_path",(function e(t){var n=e.$$p||y,r=this,i=y,a=y;return e.$$p=null,null==t&&(t=y),$(t["$is_a?"](w("String")))&&(i=[],a=t.$split("/"),function(){try{var e=_("break");return l(a,"each",[],(function r(a){var s=null==r.$$s?this:r.$$s,o=y;return null==a&&(a=y),$(u(a.$size(),0))?(i["$<<"](a),o=s.$node_at_path(p("/",i.$join("/"))),$(o["$is_a?"](w(w(v("GxG"),"Gui"),"TreeNode")))?(c(o.$gxg_get_state("expanded"),!1)&&(o.$expand(),l(w(v("GxG"),"DISPATCHER"),"post_event",["display"],(function e(){return l(null==e.$$s?this:e.$$s,"expand_path",[t],n.$to_proc())}),{$$s:s}),e.$throw(y,r.$$is_lambda)),c(o.$node_path(),t)&&$(n["$respond_to?"]("call"))?n.$call():y):(l(w(v("GxG"),"DISPATCHER"),"post_event",["display"],(function e(){return l(null==e.$$s?this:e.$$s,"expand_path",[t],n.$to_proc())}),{$$s:s}),void e.$throw(y,r.$$is_lambda))):y}),{$$s:r})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()),!0}),-1),a(m,"$selection",o("selection")),a(m,"$select",(function(e){var t=this;return null==e&&(e=y),$(e["$is_a?"](w(w(v("GxG"),"Gui"),"TreeNode")))&&f(t.selection,e)?($(t.selection)&&t.selection.$unhighlight(),t.selection=e,t.selection.$highlight(),$(t.processors["$[]"]("select")["$respond_to?"]("call"))?t.processors["$[]"]("select").$call(t.selection):y):y}),-1),a(m,"$expand",(function(e){return null==e&&(e=y),$(e["$is_a?"](w(w(v("GxG"),"Gui"),"TreeNode")))&&$(this.processors["$[]"]("expand")["$respond_to?"]("call"))?this.processors["$[]"]("expand").$call(e):y}),-1),a(m,"$collapse",(function(e){return null==e&&(e=y),$(e["$is_a?"](w(w(v("GxG"),"Gui"),"TreeNode")))&&$(this.processors["$[]"]("collapse")["$respond_to?"]("call"))?this.processors["$[]"]("collapse").$call(e):y}),-1)}(k[0],w(w(w(w("GxG"),"Gui"),"Vdom"),"BaseElement"),k),w(w("GxG"),"Gui").$register_component_class("tree",w(w(w("GxG"),"Gui"),"Tree")),function(t,s,_){var h=n(t,s,"TreeNode"),m=[h].concat(_),g=e.$r(m),v=h.$$prototype;v.data=v.content=v.appearance=v.uuid=v.label=v.expander=y,a(h,"$_before_create",(function e(){var t=this;return e.$$p=null,$(t.data["$is_a?"](w("Hash")))&&$(t.data["$[]"]("title"))&&(t.title=t.data["$[]"]("title")),r(t,i(t,"_before_create",e,!1,!0),"_before_create",[],null)})),d(h,"original_add_child","add_child"),a(h,"$add_child",(function(e){var t=this;return null==e&&(e=y),$(e["$is_a?"](w(w(w("GxG"),"Database"),"DetachedHash")))?$(t.content)?t.content.$add_child(e):t.$original_add_child(e):y}),-1),a(h,"$nodes",(function(){return $(this.content)?this.content.$children():new Map})),a(h,"$node_path",(function(){var e=y,t=y,n=y;for(e="",t=[this],n=this.$parent();f(n,y);)$(n["$is_a?"](w(w(g("GxG"),"Gui"),"TreeNode")))&&t.$unshift(n),n=n.$parent(),$(n["$is_a?"](w(w(g("GxG"),"Gui"),"Tree")))&&(n=y);return l(t,"each",[],(function(t){return null==t&&(t=y),e=p(e,"/"+t.$title())})),e})),a(h,"$find_child",(function(e){var t=y,n=y,r=y,i=y;for(null==e&&(e=y),t=y,n=!!$(g("GxG")["$valid_uuid?"](e)),r=this.$children().$values();$(u(r.$size(),0));)if(i=r.$shift(),$(i)){if($(n)){if(c(i.$uuid(),e)){t=i;break}}else if(c(i.$title(),e)){t=i;break}$(t)||l(i.$children().$values(),"each",[],(function(e){return null==e&&(e=y),r["$<<"](e)}))}return t}),-1),a(h,"$update_appearance",(function(e){return null==e&&(e=y),!!$(this.appearance["$is_any?"](w("Hash"),w(w(w("GxG"),"Database"),"DetachedHash")))}),-1),a(h,"$data",o("data")),a(h,"$appearance",o("appearance")),a(h,"$set_appearance",(function(e){return null==e&&(e=y),$(e["$is_any?"](w("Hash"),w(w(w("GxG"),"Database"),"DetachedHash")))?(this.appearance=e,this.$update_appearance()):y}),-1),a(h,"$tree_node",(function(){return this.$find_parent_type(w(w(w("GxG"),"Gui"),"TreeNode"))})),a(h,"$tree",(function(){return this.$find_parent_type(w(w(w("GxG"),"Gui"),"Tree"))})),a(h,"$initialize",(function e(t,n){var a=this,s=y;return e.$$p=null,a.content=y,a.appearance=new Map([["icon",a.$theme_icon("folder.svg")],["label","Untitled"]]),$(n["$is_any?"](w("Hash"),w(w(w("GxG"),"Database"),"DetachedHash")))&&(a.data=$(s=n["$[]"]("data"))?s:new Map([["title","Untitled"],["type","virtual_directory"],["content",new Map]]),a.appearance["$[]="]("icon",($(s=n["$[]"]("icon"))?s:a.$theme_icon("folder.svg")).$to_s()),a.appearance["$[]="]("label",($(s=n["$[]"]("label"))?s:a.data["$[]"]("title")).$to_s())),r(a,i(a,"initialize",e,!1,!0),"initialize",[t,n],null),a})),a(h,"$cascade",(function(){var e=this,t=y,n=y,r=y,i=y,a=y,s=y,o=y,u=y,l=y,c=y,_=y,d=y;return(t=e.$new_component("org.gxg.gui.block.table"))["$[]"]("settings")["$[]="]("nodepath",e.$node_path()),n=e.$new_component("org.gxg.gui.block.table"),(r=e.$new_component("org.gxg.gui.image"))["$title="]("expander "+e.uuid.$to_s()),r["$[]="]("options",new Map([["src",e.$theme_widget("collapse.svg")],["width",32],["height",32],["style",new Map([["clear","both"],["vertical-align","middle"]])]])),r["$[]="]("script","\n on(:mouseup) do |event|\n the_node = self.tree_node()\n if the_node\n unless the_node.get_state(:disabled) == true\n if self.get_state(:expanded) == true\n self.set_attribute(:src, theme_widget('collapse.svg'))\n self.set_state(:expanded,false)\n the_node.collapse()\n else\n self.set_attribute(:src, theme_widget('expand.svg'))\n self.set_state(:expanded,true)\n the_node.expand()\n end\n end\n end\n end\n "),i=w(w(w("GxG"),"Database"),"DetachedHash").$new(),(i=e.$new_component("org.gxg.gui.block.table.cell"))["$[]="]("options",new Map([["style",new Map([["float","left"],["width","32px"],["vertical-align","middle"]])]])),i["$[]"]("content")["$<<"](r),(a=e.$new_component("org.gxg.gui.block.table.cell"))["$title="]("icon "+e.uuid.$to_s()),a["$[]="]("options",new Map([["src",e.appearance["$[]"]("icon")],["style",new Map([["clear","both"],["width","32px"],["height","32px"],["vertical-align","middle"]])]])),a["$[]="]("script","\n on(:mouseup) do |event|\n the_node = self.tree_node()\n if the_node\n the_tree = the_node.tree()\n if the_tree\n the_tree.select(the_node)\n end\n end\n end\n "),s=w(w(w("GxG"),"Database"),"DetachedHash").$new(),(s=e.$new_component("org.gxg.gui.block.table.cell"))["$[]="]("options",new Map([["style",new Map([["float","left"],["width","32px"],["vertical-align","middle"]])]])),s["$[]"]("content")["$<<"](a),(o=e.$new_component("org.gxg.gui.label"))["$title="]("title "+e.uuid.$to_s()),o["$[]="]("options",new Map([["content",e.appearance["$[]"]("label")],["style",new Map([["float","left"],["font-size","16px"],["vertical-align","middle"],["text-align","left"],["margin","2px"],["padding","2px"]])]])),o["$[]="]("script","\n on(:mouseup) do |event|\n the_node = self.tree_node()\n if the_node\n the_tree = the_node.tree()\n if the_tree\n the_tree.select(the_node)\n end\n end\n end\n "),(u=e.$new_component("org.gxg.gui.block.table.cell"))["$[]="]("options",new Map([["style",new Map([["float","left"],["vertical-align","middle"]])]])),u["$[]"]("content")["$<<"](o),(n=e.$new_component("org.gxg.gui.block.table.row"))["$[]="]("script","\n on(:mouseenter) do |event|\n the_node = self.tree_node()\n if the_node\n the_tree = the_node.highlight()\n end\n end\n on(:mouseleave) do |event|\n the_node = self.tree_node()\n if the_node\n the_tree = the_node.unhighlight()\n end\n end\n "),n["$[]"]("content")["$<<"](i),n["$[]"]("content")["$<<"](s),n["$[]"]("content")["$<<"](u),(l=e.$new_component("org.gxg.gui.list"))["$title="]("content "+e.uuid.$to_s()),l["$[]="]("options",new Map([["width","100%"],["height","100%"],["style",new Map([["list-style","none"]])]])),(c=e.$new_component("org.gxg.gui.block.table.cell"))["$[]"]("content")["$<<"](l),(_=e.$new_component("org.gxg.gui.block.table.row"))["$[]"]("content")["$<<"](c),t["$[]"]("content")["$<<"](n),t["$[]"]("content")["$<<"](_),e.content=y,e.$page().$build_components(e,[t]),d=e.$page().$find_object_by("content "+e.uuid.$to_s()),$(d)&&(e.content=d),d=e.$page().$find_object_by("expander "+e.uuid.$to_s()),$(d)&&(e.expander=d),d=e.$page().$find_object_by("icon "+e.uuid.$to_s()),$(d)&&(e.icon=d),d=e.$page().$find_object_by("title "+e.uuid.$to_s()),$(d)?e.label=d:y})),a(h,"$highlight",(function(e){return null==e&&(e=y),$(this.label)?this.label.$merge_style(new Map([["background-color","#87acd5"]])):y}),-1),a(h,"$unhighlight",(function(e){return null==e&&(e=y),$(this.label)?this.label.$merge_style(new Map([["background-color","#f2f2f2"]])):y}),-1),a(h,"$expand",(function(e){var t=this,n=y;return null==e&&(e=y),t.content.$show(e),t.$set_state("expanded",!0),$(t.expander)&&t.expander.$set_attribute("src",t.$page().$theme_widget("expand.svg")),n=t.$tree(),$(n)?n.$expand(t):y}),-1),a(h,"$collapse",(function(e){var t=this,n=y;return null==e&&(e=y),t.content.$hide(e),t.$set_state("expanded",!1),$(t.expander)&&t.expander.$set_attribute("src",t.$page().$theme_widget("collapse.svg")),n=t.$tree(),$(n)?n.$collapse(t):y}),-1),a(h,"$enable",(function(e){return null==e&&(e=y),$(e["$is_any?"](w("Hash"),w(w(w("GxG"),"Database"),"DetachedHash")))?$(e["$is_a?"](w(w(w("GxG"),"Database"),"DetachedHash")))&&(e=e.$unpersist()):e=new Map([["origin",new Map([["opacity",.5]])],["destination",new Map([["opacity",1]])]]),l(this.$children(),"each_pair",[],(function t(n,r){var i=null==t.$$s?this:t.$$s;return null==i.uuid&&(i.uuid=y),null==n&&(n=y),null==r&&(r=y),c(n,("content "+i.uuid.$to_s()).$to_sym())?y:(r.$set_state("disabled",!1),r.$animate(e))}),{$$s:this})}),-1),a(h,"$disable",(function(e){return null==e&&(e=y),$(e["$is_any?"](w("Hash"),w(w(w("GxG"),"Database"),"DetachedHash")))?$(e["$is_a?"](w(w(w("GxG"),"Database"),"DetachedHash")))&&(e=e.$unpersist()):e=new Map([["origin",new Map([["opacity",1]])],["destination",new Map([["opacity",.5]])]]),l(this.$children(),"each_pair",[],(function t(n,r){var i=null==t.$$s?this:t.$$s;return null==i.uuid&&(i.uuid=y),null==n&&(n=y),null==r&&(r=y),c(n,("content "+i.uuid.$to_s()).$to_sym())?y:(r.$animate(e),r.$set_state("disabled",!0))}),{$$s:this})}),-1)}(k[0],w(w(w("GxG"),"Gui"),"ListItem"),k),w(w("GxG"),"Gui").$register_component_class("tree_node",w(w(w("GxG"),"Gui"),"TreeNode")),n(k[0],w(w(w(w("GxG"),"Gui"),"Vdom"),"BaseElement"),"Panel"),w(w("GxG"),"Gui").$register_component_class("panel",w(w(w("GxG"),"Gui"),"Panel")),function(r,i){var s=[t(r,"Vdom")].concat(i);return function(t,r,i){var s=n(t,null,"Page"),o=[s].concat(i),_=e.$r(o);return a(s,"$upload_dialog",(function t(n,r){var i,a,s=t.$$p||y,o=this,c=y,d=y,f=y,v=y,b=y,w=y,x=y,k=y,G=y,E=y,S=y,O=y,M=y,A=y,N=y;if(t.$$p=null,null==n&&(n=y),null==r&&(r=y),o.$layout_refresh(),i=($(c=r)?c:new Map([["title","Choose a file:"]]))["$[]"]("title").$to_s(),d=($(c=r)?c:new Map([["banner","Choose a file to upload"]]))["$[]"]("banner").$to_s(),f=($(c=r)?c:new Map([["destination",y]]))["$[]"]("destination").$to_s(),a=h(o.$layout_content_area()["$[]"]("page_width").$to_f(),.25).$to_i(),20,5,m(a,h(p(20,5),2)),v=h(p(20,5),2),16,$(u(d.$to_s().$size(),40))?h(g(d.$size().$to_f(),40),16..$to_f()).$round().$to_i():16,16,!$(u(f.$size(),0)))return o.$log_error("You MUST provide a destination path"),!1;(b=o.$new_component("org.gxg.gui.form"))["$[]"]("options")["$[]="]("action","/file_upload"),b["$[]"]("options")["$[]="]("method","POST"),b["$[]"]("options")["$[]="]("enctype","multipart/form-data"),b["$[]"]("options")["$[]="]("style",new Map([["background-color","#f2f2f2"],["padding","20px"],["margin","5px"],["width","100%"]])),v=330,(w=o.$new_component("org.gxg.gui.input.file"))["$title="]("file"),w["$[]"]("options")["$[]="]("name","file"),b["$[]"]("content")["$<<"](w),(x=o.$new_component("org.gxg.gui.input.hidden"))["$title="]("destination"),x["$[]"]("options")["$[]="]("name","destination"),x["$[]"]("options")["$[]="]("value",f),b["$[]"]("content")["$<<"](x),k=o.$new_component("org.gxg.gui.grid.container"),G=o.$new_component("org.gxg.gui.grid.x"),E=o.$new_component("org.gxg.gui.grid.x"),S=o.$new_component("org.gxg.gui.input.button"),O=o.$new_component("org.gxg.gui.input.button.submit"),G["$[]"]("content")["$<<"](S),E["$[]"]("content")["$<<"](O),k["$[]"]("content")["$<<"](G),k["$[]"]("content")["$<<"](E),b["$[]"]("content")["$<<"](k),S["$[]="]("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n form = self.find_parent_type(::GxG::Gui::Form)\n if the_window && form\n the_window.respond({:action => :cancel})\n end\n end\n "),O["$[]="]("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n form = self.find_parent_type(::GxG::Gui::Form)\n if the_window && form\n page.set_busy true\n ::GxG::CONNECTION.post(form) do |response|\n page.set_busy false\n the_window.respond({:action => :upload, :destination => form.form_data[:destination].to_s})\n end\n end\n end\n "),(M=o.$new_component("org.gxg.gui.application.viewport"))["$title="]("gxg_selection_viewport"),M["$[]"]("options")["$[]="]("style",new Map([["overflow","hidden"],["width","100%"],["height","100%"]])),M["$[]"]("content")["$<<"](b),(A=o.$new_component("org.gxg.gui.window.dialog"))["$title="](i),A["$[]="]("options",new Map([["window_title",i],["states",new Map([["hidden",!0]])],["width",350],["height",v]])),A["$[]"]("content")["$<<"](M);try{return l(o,"dialog_open",[A,n,r],s.$to_proc()),!0}catch(t){if(!e.rescue(t,[_("Exception")]))throw t;N=t;try{return o.$log_error(new Map([["error",N],["parameters",r]])),!1}finally{e.pop_exception(t)}}}),-1),a(s,"$choice_dialog",(function t(n,r){var i,a,s,o,d,f,v,b,w,x,k,G,E,S,O,M,A,N,z=t.$$p||y,D=this,I=y,T=y,R=y,q=y,C=y,j=y,B=y,P=y,L=y,H=y,F=y,U=y,Y=y,V=y,K=y,W=y,X=y,J=y;switch(t.$$p=null,null==n&&(n=y),null==r&&(r=y),D.$layout_refresh(),i=($(I=r)?I:new Map([["title","Choose"]]))["$[]"]("title").$to_s(),T=($(I=r)?I:new Map([["banner","(Please provide some text here)"]]))["$[]"]("banner").$to_s(),R=($(I=r)?I:new Map([["one",""]]))["$[]"]("one").$to_s(),q=($(I=r)?I:new Map([["two",""]]))["$[]"]("two").$to_s(),C=($(I=r)?I:new Map([["three",""]]))["$[]"]("three").$to_s(),a=($(I=r)?I:new Map([["default",""]]))["$[]"]("default").$to_s(),j=$(I=($(s=r)?s:new Map([["type","choose"]]))["$[]"]("type"))?I:"choose",o=h(D.$layout_content_area()["$[]"]("page_width").$to_f(),.25).$to_i(),20,5,d=m(o,h(p(20,5),2)),B=h(p(20,5),2),16,P=$(u(T.$to_s().$size(),40))?h(g(T.$size().$to_f(),40),16..$to_f()).$round().$to_i():16,16,f=new Map([["component","org.gxg.gui.text"],["options",new Map([["content",T],["style",new Map([["font-size","16px"],["width","100%"]])]])],["content",[]],["script",""]]),v=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"],["height",P],["vertical-align","middle"]])]])],["content",[f]],["script",""]]),b=new Map([["component","org.gxg.gui.input.text"],["options",new Map([["title","data"],["content",a],["style",new Map([["background-color","#f2f2f2"],["font-size","16px"],["width","100%"]])]])],["content",[]],["script",""]]),w=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"],["vertical-align","middle"]])]])],["content",[b]],["script",""]]),(L=new Map([["component","org.gxg.gui.button"],["options",new Map([["content",R],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]))["$[]="]("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.respond({:action => :one})\n end\n end\n "),x=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","40%"],["vertical-align","middle"]])]])],["content",[L]],["script",""]]),(H=new Map([["component","org.gxg.gui.button"],["options",new Map([["content",q],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]))["$[]="]("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.respond({:action => :two})\n end\n end\n "),k=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","40%"],["vertical-align","middle"]])]])],["content",[H]],["script",""]]),(F=new Map([["component","org.gxg.gui.button"],["options",new Map([["content",C],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]))["$[]="]("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.respond({:action => :three})\n end\n end\n "),G=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","40%"],["vertical-align","middle"]])]])],["content",[F]],["script",""]]),(U=new Map([["component","org.gxg.gui.button"],["options",new Map([["content","Cancel"],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]))["$[]="]("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.respond({:action => :cancel})\n end\n end\n "),E=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["vertical-align","middle"]])]])],["content",[U]],["script",""]]),S=new Map([["component","org.gxg.gui.block.table.row"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])],["content",[v]],["script",""]]),O=new Map([["component","org.gxg.gui.block.table.row"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])],["content",[w]],["script",""]]),Y=new Map([["component","org.gxg.gui.block.table.row"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])],["content",[]],["script",""]]),M=new Map([["component","org.gxg.gui.block.table"],["options",new Map([["style",new Map([["padding","5px"],["margin","0px"],["width","100%"]])]])],["content",[S]],["script",""]]),A=new Map([["component","org.gxg.gui.block.table"],["options",new Map([["style",new Map([["padding","5px"],["margin","0px"],["width","100%"]])]])],["content",[O]],["script",""]]),N=new Map([["component","org.gxg.gui.block.table"],["options",new Map([["style",new Map([["padding","5px"],["margin","0px"],["width","100%"]])]])],["content",[Y]],["script",""]]),V=new Map([["component","org.gxg.gui.form"],["options",new Map([["style",new Map([["background-color","#f2f2f2"],["padding","20px"],["margin","5px"]])]])],["content",[]],["script",""]]),$(u(T.$size(),0))&&V["$[]"]("content")["$<<"](M),j.valueOf()){case"choose":$(u(R.$size(),0))&&Y["$[]"]("content")["$<<"](x),$(u(q.$size(),0))&&Y["$[]"]("content")["$<<"](k),$(u(C.$size(),0))&&Y["$[]"]("content")["$<<"](G);break;case"alert":(K=new Map([["component","org.gxg.gui.button"],["options",new Map([["content","OK"],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]))["$[]="]("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.respond({:action => :ok})\n end\n end\n "),W=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"]])]])],["content",[K]],["script",""]]),Y["$[]"]("content")["$<<"](W);break;case"input":Y["$[]"]("content")["$<<"](E),(K=new Map([["component","button"],["options",new Map([["content","OK"],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])],["content",[]],["script",""]]))["$[]="]("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n form = self.find_parent_type(:form)\n if the_window && form\n the_window.respond({:action => :ok, :form => form.form_data()})\n end\n end\n "),W=new Map([["component","org.gxg.gui.block.table.cell"],["options",new Map([["style",new Map([["padding","0px"],["margin","0px"]])]])],["content",[K]],["script",""]]),Y["$[]"]("content")["$<<"](W),V["$[]"]("content")["$<<"](A)}switch(V["$[]"]("content")["$<<"](N),V["$[]"]("options")["$[]"]("style")["$[]="]("width",o+"px"),$(u(T.$to_s().$size(),0))&&(V["$[]"]("content")["$[]"](0)["$[]"]("options")["$[]"]("style")["$[]="]("width",d+"px"),V["$[]"]("content")["$[]"](0)["$[]"]("options")["$[]"]("style")["$[]="]("height",P+"px"),V["$[]"]("content")["$[]"](0)["$[]"]("options")["$[]"]("style")["$[]="]("padding","10px 0px 10px 0px"),B=p(B,p(P,20))),c(j,"input")?(V["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("width",d+"px"),V["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("height","16px"),V["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("padding","10px 0px 10px 0px"),B=p(B,p(16,20)),V["$[]"]("content")["$[]"](2)["$[]"]("options")["$[]"]("style")["$[]="]("width",d+"px"),V["$[]"]("content")["$[]"](2)["$[]"]("options")["$[]"]("style")["$[]="]("height","32px"),V["$[]"]("content")["$[]"](2)["$[]"]("options")["$[]"]("style")["$[]="]("padding","10px 0px 10px 0px"),B=p(B,52)):(V["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("width",d+"px"),V["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("height","32px"),V["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("padding","10px 0px 10px 0px"),B=p(B,52)),B=p(B,32),V["$[]"]("options")["$[]"]("style")["$[]="]("height",m(B,h(p(20,5),2))+"px"),Y["$[]"]("content").$size().valueOf()){case 1:Y["$[]"]("content")["$[]"](0)["$[]"]("options")["$[]"]("style")["$[]="]("padding","5px 0px 5px "+m(g(d,2),25)+"px");break;case 2:Y["$[]"]("content")["$[]"](0)["$[]"]("options")["$[]"]("style")["$[]="]("padding","5px 0px 5px "+m(g(d,4),12)+"px"),Y["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("padding","5px 0px 5px "+m(g(d,4),12)+"px");break;case 3:Y["$[]"]("content")["$[]"](0)["$[]"]("options")["$[]"]("style")["$[]="]("padding","5px 0px 5px "+m(g(d,6),6)+"px"),Y["$[]"]("content")["$[]"](1)["$[]"]("options")["$[]"]("style")["$[]="]("padding","5px 0px 5px "+m(g(d,6),6)+"px"),Y["$[]"]("content")["$[]"](2)["$[]"]("options")["$[]"]("style")["$[]="]("padding","5px 0px 5px "+m(g(d,6),6)+"px")}(X=new Map([["component","org.gxg.gui.window.dialog"],["options",new Map([["window_title",i],["states",new Map([["hidden",!0]])],["width",o],["height",B]])],["script",""],["content",[V]]]))["$[]="]("script","\n on(:keyup) do |event|\n if event[:which] == 27\n self.respond({:action => :cancel})\n end\n end\n ");try{return l(D,"dialog_open",[X,n,r],z.$to_proc()),!0}catch(t){if(!e.rescue(t,[_("Exception")]))throw t;J=t;try{return D.$log_error(new Map([["error",J],["parameters",new Map]])),!1}finally{e.pop_exception(t)}}}),-1),a(s,"$vfs_dialog",(function t(n,r){var i,a=t.$$p||y,s=this,o=y,u=y,d=y,f=y,h=y,g=y,b=y,w=y,x=y,k=y,G=y,E=y,S=y,O=y,M=y,A=y,N=y,z=y,D=y,I=y,T=y,R=y,q=y,C=y,j=y,B=y,P=y,L=y,H=y,F=y,U=y;switch(t.$$p=null,null==n&&(n=y),null==r&&(r=y),o="Unsupported Dialog Type",u="Unsupported",(d=($(f=r)?f:new Map([["type","folder"]]))["$[]"]("type")).valueOf()){case"save":case"save":o="Save As ...",u="Save";break;case"folder":case"folder":o="Choose Folder",u="Choose";break;case"object":case"object":o="Select Object",u="Select"}switch(i="\n def select(data=nil)\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.settings[:data] = @settings[:data]\n menu_bar_header = page.find_object_by('gxg_path_menu_header')\n if menu_bar_header\n menu_bar_header.set_label(File.basename(@settings[:data]))\n menu_bar_header.set_data(@settings[:data])\n end\n menu = page.find_object_by('gxg_path_menu')\n if menu\n menu.update_menu(@settings[:data])\n end\n sublist = page.find_object_by('gxg_path_subitems')\n if sublist\n sublist.update_appearance()\n end\n end\n end\n ",(h=s.$new_component("org.gxg.gui.menu.bar"))["$title="]("gxg_path_menu_bar"),h["$[]="]("settings",new Map([["path",$(f=r["$[]"]("path"))?f:"/"]])),(g=s.$new_component("org.gxg.gui.menu.item"))["$title="]("gxg_path_menu_header"),g["$[]="]("settings",new Map([["label",_("File").$basename(h["$[]"]("settings")["$[]"]("path"))],["data",y]])),(b=s.$new_component("org.gxg.gui.menu"))["$title="]("gxg_path_menu"),b["$[]="]("settings",new Map([["item_script",i]])),b["$[]="]("script","\n def update_menu(the_path=nil)\n if the_path.is_a?(::String)\n build_list = []\n menu[:content] = []\n #\n menu_manifest = []\n (0..(the_path.split('/').size - 1)).each do |the_index|\n menu_manifest << (the_path.split('/')[0..(the_index)].join('/'))\n end\n menu_manifest.reverse.[1..-1].each do |the_subpath|\n the_item = ::GxG::Database::DetachedHash.new\n the_item[:component] = 'menu_item'\n the_item[:settings] = {:label => File.basename(the_subpath), :data => the_subpath}\n the_item[:options] = {}\n the_item[:script] = @settings[:item_script].to_s\n the_item[:content] = []\n build_list << the_item\n end\n children.values.reverse.each do |the_child|\n the_child.destroy\n end\n if build_list.size > 0\n page.build_components(self, build_list)\n end\n #\n end\n end\n "),w=[],l(e.Range.$new(0,m(h["$[]"]("settings")["$[]"]("path").$split("/").$size(),1),!1),"each",[],(function(t){return null==t&&(t=y),w["$<<"](h["$[]"]("settings")["$[]"]("path").$split("/")["$[]"](e.Range.$new(0,t,!1)).$join("/"))})),l(w.$reverse()["$[]"](v(1,-1,!1)),"each",[],(function e(t){var n=y;return null==t&&(t=y),(n=(null==e.$$s?this:e.$$s).$new_component("org.gxg.gui.menu.item"))["$[]="]("settings",new Map([["label",_("File").$basename(t)],["data",t]])),n["$[]="]("script",i),b["$[]"]("content")["$<<"](n)}),{$$s:s}),g["$[]"]("content")["$<<"](b),h["$[]"]("content")["$<<"](g),(x=s.$new_component("org.gxg.gui.block.table.cell"))["$[]="]("options",new Map([["style",new Map([["border","1px solid #c2c2c2"],["padding","0px"],["margin","0px"],["width","100%"]])]])),x["$[]="]("content",[h]),"\n def highlight()\n self.merge_style({:'background-color' => '#c2c2c2'})\n end\n def unhighlight()\n self.merge_style({:'background-color' => '#ffffff'})\n end\n def select()\n # unhighlight all others\n parent.children.values.each do |the_child|\n the_child.unhighlight()\n end\n # set selection\n self.highlight()\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.settings[:selection] = self\n end\n end\n on(:mouseup) do |the_event|\n self.select()\n end\n ",(k=s.$new_component("org.gxg.gui.list"))["$title="]("gxg_path_subitems"),k["$[]="]("settings",new Map([["list_item_script","\n def highlight()\n self.merge_style({:'background-color' => '#c2c2c2'})\n end\n def unhighlight()\n self.merge_style({:'background-color' => '#ffffff'})\n end\n def select()\n # unhighlight all others\n parent.children.values.each do |the_child|\n the_child.unhighlight()\n end\n # set selection\n self.highlight()\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.settings[:selection] = self\n end\n end\n on(:mouseup) do |the_event|\n self.select()\n end\n "]])),k["$[]="]("options",new Map([["style",new Map([["clear","both"],["list-style","none"],["padding","0px"],["margin","0px"]])]])),k["$[]="]("script","\n def add_list_item(the_icon=nil, the_path=nil, the_profile=nil)\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n #\n the_item = ::GxG::Database::DetachedHash.new\n the_item[:component] = 'list_tiem'\n the_item[:settings] = {:label => File.basename(the_path), :data => the_path}\n the_item[:options] = {}\n the_item[:script] = @settings[:list_item_script].to_s\n the_item[:content] = []\n #\n the_window.settings[:manifest][(the_item.uuid.to_s.to_sym)] = {:path => the_path, :profile => the_profile}\n #\n icon_item = ::GxG::Database::DetachedHash.new\n icon_item[:component] = 'image'\n icon_item[:settings] = {}\n icon_item[:options] = {src => the_icon.to_s, :style => {:width => '16px', :height => '16px'}}\n icon_item[:script] = '\n on(:mouseup) do |the_event|\n parent.select()\n end\n '\n icon_item[:content] = []\n #\n label_item = ::GxG::Database::DetachedHash.new\n label_item[:component] = 'label'\n label_item[:settings] = {}\n label_item[:options] = {:content => File.basename(the_path)}\n label_item[:script] = '\n on(:mouseup) do |the_event|\n parent.select()\n end\n '\n label_item[:content] = []\n #\n the_item[:content] << icon_item\n the_item[:content] << label_item\n page.build_components(self, [(the_item)])\n true\n else\n false\n end\n end\n #\n def update_appearance(data=nil)\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n dialog_type = (the_window.settings[:type] || :folder)\n the_path = the_window.settings[:data]\n if the_path.is_a?(::String)\n #\n the_window.settings[:selection] = nil\n the_window.settings[:manifest] = {}\n # Clear List\n self.children.values.each do |the_child|\n the_child.destroy\n end\n # Rebuild List\n GxG::CONNECTION.entries({:location => (the_path)}) do |response|\n if response.is_a?(::Hash)\n response[:result].each do |the_profile|\n # add list item\n item_path = (the_path + '/' + the_profile[:title].to_s)\n if dialog_type == :folder\n if [:virtual_directory, :directory, :persisted_array].include?(the_profile[:type].to_s.to_sym)\n self.add_list_item(self.theme_icon('folder.svg'), item_path, the_profile)\n end\n else\n case (the_profile[:type].to_s.to_sym)\n when :virtual_directory, :directory, :persisted_array\n the_icon_path = self.theme_icon('folder.svg')\n when :persisted_hash\n the_icon_path = self.theme_icon('object.svg')\n else\n # Review: further qualify file type icons ??\n the_icon_path = self.theme_icon('file.svg')\n end\n self.add_list_item(the_icon_path, item_path, the_profile)\n end\n #\n end\n #\n end\n end\n #\n end\n end\n end\n "),d.valueOf()){case"save":case"folder":k["$[]="]("script",p(p(k["$[]"]("script"),"\n"),"\n self.set_select_responder do |the_uuid|\n if @manifest[(the_uuid.to_s.to_sym)]\n # nothing\n end\n end\n self.set_open_responder do |the_uuid|\n if @manifest[(the_uuid.to_s.to_sym)]\n if [:virtual_directory, :directory, :persisted_array].include?(@manifest[(the_uuid.to_s.to_sym)][:profile][:type].to_s.to_sym)\n # open folder\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n menu_bar = the_window.find_child('path_menu_bar')\n if menu_bar\n GxG::DISPATCHER.post_event(:root) do\n menu_bar.path = @manifest[(the_uuid.to_s.to_sym)][:path]\n end\n end\n end\n end\n end\n end\n "));break;case"object":k["$[]="]("script",p(p(k["$[]"]("script"),"\n"),"\n self.set_select_responder do |the_uuid|\n if @manifest[(the_uuid.to_s.to_sym)]\n # if object selected enable Select button else disable it.\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n action_button = the_window.find_child('action_button')\n if action_button\n if [:file, :persisted_hash].include?(@manifest[(the_uuid.to_s.to_sym)][:profile][:type].to_s.to_sym)\n action_button.enable()\n else\n action_button.disable()\n end\n end\n end\n end\n end\n self.set_open_responder do |the_uuid|\n if @manifest[(the_uuid.to_s.to_sym)]\n if [:virtual_directory, :directory, :persisted_array].include?(@manifest[(the_uuid.to_s.to_sym)][:profile][:type].to_s.to_sym)\n # open folder\n # first, disable Select button\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n menu_bar = the_window.find_child('path_menu_bar')\n if menu_bar\n GxG::DISPATCHER.post_event(:root) do\n menu_bar.path = @manifest[(the_uuid.to_s.to_sym)][:profile][:path]\n end\n end\n end\n end\n end\n end\n "))}(G=s.$new_component("org.gxg.gui.block"))["$[]="]("options",new Map([["style",new Map([["width","100%"],["height","192px"],["overflow-y","scroll"]])]])),G["$[]="]("content",[k]),(E=s.$new_component("org.gxg.gui.block.table.cell"))["$[]="]("options",new Map([["style",new Map([["border","1px solid #c2c2c2"],["padding","0px"],["margin","0px"],["width","100%"]])]])),E["$[]="]("content",[G]),(S=s.$new_component("org.gxg.gui.input.text"))["$title="]("gxg_save_name"),S["$[]="]("options",new Map([["style",new Map([["background-color","#f2f2f2"],["font-size","16px"],["width","100%"]])]])),(O=s.$new_component("org.gxg.gui.block.table.cell"))["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),O["$[]="]("content",[S]),(M=s.$new_component("org.gxg.gui.input.button.submit"))["$title="]("gxg_action_button"),M["$[]="]("options",new Map([["content",u],["style",new Map([["padding","0px"],["width","80px"],["height","32px"]])]])),M["$[]="]("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n form = self.find_parent_type(::GxG::Gui::Form)\n if the_window && form\n the_action = the_window.settings[:type].to_s.to_sym\n the_path = the_window.settings[:data].to_s\n if the_action == :save\n the_path = (the_path + '/' + (form.form_data()[:gxg_save_name] || 'Untitled.data').to_s)\n end\n the_window.respond({:action => the_action, :path => the_path})\n end\n end\n "),(A=s.$new_component("org.gxg.gui.block.table.cell"))["$[]="]("options",new Map([["style",new Map([["padding","10px 0px 0px 35px"],["margin","0px"],["width","50%"]])]])),A["$[]="]("content",[M]),(N=s.$new_component("org.gxg.gui.input.button.submit"))["$title="]("gxg_cancel_button"),N["$[]="]("options",new Map([["content","Cancel"],["style",new Map([["padding","2px"],["width","80px"],["height","32px"]])]])),N["$[]="]("script","\n on(:mouseup) do |event|\n the_window = self.find_parent_type(::GxG::Gui::DialogBox)\n if the_window\n the_window.respond({:action => :cancel})\n end\n end\n "),(z=s.$new_component("org.gxg.gui.block.table.cell"))["$[]="]("options",new Map([["style",new Map([["padding","10px 0px 0px 35px"],["margin","0px"],["width","50%"]])]])),z["$[]="]("content",[N]),(D=s.$new_component("org.gxg.gui.block.table.row"))["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),D["$[]="]("content",[x]),(I=s.$new_component("org.gxg.gui.block.table.row"))["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),I["$[]="]("content",[E]),(T=s.$new_component("org.gxg.gui.block.table.row"))["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),T["$[]="]("content",[O]),(R=s.$new_component("org.gxg.gui.block.table.row"))["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","100%"]])]])),R["$[]="]("content",[z,A]),(q=s.$new_component("org.gxg.gui.block.table"))["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","300px"],["height","32px"]])]])),q["$[]="]("content",[D]),(C=s.$new_component("org.gxg.gui.block.table"))["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","300px"],["height","192px"]])]])),C["$[]="]("content",[I]),(j=s.$new_component("org.gxg.gui.block.table"))["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","300px"],["height","32px"]])]])),j["$[]="]("content",[T]),(B=s.$new_component("org.gxg.gui.block.table"))["$[]="]("options",new Map([["style",new Map([["padding","0px"],["margin","0px"],["width","300px"],["height","32px"]])]])),B["$[]="]("content",[R]),(P=s.$new_component("org.gxg.gui.form"))["$[]="]("options",new Map([["style",new Map([["background-color","#f2f2f2"],["padding","20px"],["margin","5px"],["width","100%"]])]])),P["$[]="]("content",[]),L=330,P["$[]"]("content")["$<<"](q),P["$[]"]("content")["$<<"](C),(c(d,"save")||c(d,"save"))&&(P["$[]"]("content")["$<<"](j),L=p(L,32)),P["$[]"]("content")["$<<"](B),(H=s.$new_component("org.gxg.gui.application.viewport"))["$title="]("gxg_selection_viewport"),H["$[]="]("options",new Map([["style",new Map([["overflow","hidden"],["width","100%"],["height","100%"]])]])),H["$[]="]("content",[P]),(F=s.$new_component("org.gxg.gui.window.dialog"))["$title="](o),F["$[]="]("options",new Map([["window_title",o],["states",new Map([["hidden",!0]])],["width",350],["height",L]])),F["$[]="]("content",[H]);try{return l(s,"dialog_open",[F,n,r],a.$to_proc()),!0}catch(t){if(!e.rescue(t,[_("Exception")]))throw t;U=t;try{return s.$log_error(new Map([["error",U],["parameters",new Map]])),!1}finally{e.pop_exception(t)}}}),-1)}(s[0],0,s)}(k[0],k)}(k[0],k)}(b[0],b)},Opal.modules["web/gxg_comm"]=function(e){var t=e.module,n=e.klass,r=e.def,i=e.truthy,a=e.send,s=e.return_ivar,o=e.rb_gt,$=e.rb_lt,u=e.rb_plus,l=e.eqeq,c=e.rb_minus,_=[],d=e.nil,p=e.$$$;return e.add_stubs("is_any?,respond_to?,[]=,to_sym,downcase,to_s,next_message,[],is_a?,keys,call,<<,parse,decode64,log_error,new,shift,encode64,generate,export,include?,to_json,valid_uuid?,uuid_generate,new_message,pull,cancel_timer,get_attribute,>,size,to_i,<,log_info,inspect,element,open?,on,to_proc,body,fail,succeed,+,==,pull_data,base64?,json?,process_detached_import,push,uuid,format,search,constraint,each,clone,gxg_export,push_data,set_busy,encrypt,id,send,socket,basename,split,index,join,-,post_event,sleep,navigate_to,open,gsub,create_channel,import,decrypt,fetch_channel,write,add_periodic_timer,follow_up,heartbeat"),function(_,f){var h=[t(_,"GxG")].concat(f);return function(o,$){var u=[t(o,"Networking")].concat($);(function(t,s,o){var $=n(t,null,"SocketMonitor"),u=[$].concat(o),l=e.$r(u);$.$$prototype.event_handlers=d,r($,"$initialize",(function(){return this.event_handlers=new Map,this})),r($,"$on",(function e(t){var n,r=e.$$p||d;return e.$$p=null,null==t&&(t=d),i(t["$is_any?"](p("String"),p("Symbol")))&&i(r["$respond_to?"]("call"))?(n=[t.$to_s().$downcase().$to_sym(),r],a(this.event_handlers,"[]=",n),n[n.length-1]):d}),-1),r($,"$follow_up",(function(e){var t=d,n=d;return null==e&&(e=new Map),t=p(l("GxG"),"DISPLAY_DETAILS")["$[]"]("socket").$next_message(),i(t["$is_a?"](p("Hash")))?(n=t.$keys()["$[]"](0),i(this.event_handlers["$[]"](n)["$respond_to?"]("call"))?this.event_handlers["$[]"](n).$call(t["$[]"](n)):d):d}),-1)})(u[0],0,u),function(t,o,$){var u=n(t,null,"Socket"),l=[u].concat($),c=e.$r(l),_=u.$$prototype;_.inbox=_.socket=d,r(u,"$inbox",s("inbox")),r(u,"$add_to_inbox",(function(t){var n=d;null==t&&(t="");try{return this.inbox["$<<"](p("JSON").$parse(t.$decode64(),new Map([["symbolize_names",!0]])))}catch(r){if(!e.rescue(r,[c("Exception")]))throw r;n=r;try{return this.$log_error(new Map([["error",n],["parameters",t.$decode64()]]))}finally{e.pop_exception(r)}}}),-1),r(u,"$error_message",(function(e){return this.$log_error(new Map([["error",c("Exception").$new(e)]]))})),r(u,"$next_message",(function(){return this.inbox.$shift()})),r(u,"$write",(function(e){var t=d;return null==e&&(e=""),i(e["$is_any?"](p("Hash"),p(p(p("GxG"),"Database"),"DetachedHash")))&&(e=i(e["$is_a?"](p("Hash")))?c("JSON").$generate(e).$to_s().$encode64():c("JSON").$generate(e.$export()).$to_s().$encode64()),t=this.socket,!!i(t)&&(t.send(e),!0)}),-1),r(u,"$close",(function(){var e;return e=this.socket,!!i(e)&&(e.close,this.socket=d,!0)})),r(u,"$open?",(function(){return!!i(this.socket)})),r(u,"$open",(function(t){var n,r=this,s=d,o=d,$=d,u=d;r.socket=d,s=i(window.location.href["$include?"]("https://"))?"wss://"+t:"ws://"+t;try{o=new Map([["attach_display",!0]]).$to_json().$encode64(),($=new WebSocket(s)).onopen=function(e){$.send(o)},$.onmessage=function(t){e.eval("GxG::DISPLAY_DETAILS[:socket].add_to_inbox('"+t.data+"')")},$.onclose=function(t){e.eval("GxG::DISPLAY_DETAILS[:socket].close")},$.onerror=function(t){e.eval("GxG::DISPLAY_DETAILS[:socket].error_message('"+t.message+"')")},r.socket=$}catch(t){if(!e.rescue(t,[c("Exception")]))throw t;u=t;try{r.$log_error(new Map([["error",u],["parameters",new Map([["url",s.$to_s()]])]]))}finally{e.pop_exception(t)}}return i(r.socket)?(n=["socket",r],a(p(p("GxG"),"DISPLAY_DETAILS"),"[]=",n),n[n.length-1]):d})),r(u,"$set_remote_uuid",(function(e){return null==e&&(e=d),!!i(c("GxG")["$valid_uuid?"](e))&&(this.remote_uuid=e.$to_sym(),!0)}),-1),r(u,"$initialize",(function(){var e=this;return e.uuid=c("GxG").$uuid_generate().$to_sym(),e.remote_uuid=d,e.inbox=[],e}))}(u[0],0,u)}(h[0],h),function(_,f){var h=[t(_,"Networking")].concat(f);return function(t,_,f){var h=n(t,null,"Connector"),m=[h].concat(f),g=e.$r(m),v=h.$$prototype;return v.uuid=v.remote_uuid=v.heart_beat_timer=v.active=v.relative_url=v.host_prefix=v.display_path=v.csrf=d,r(h,"$remote_uuid",s("remote_uuid")),r(h,"$open?",s("active")),r(h,"$close",(function(){var e=this,t=d;return(t=e.$new_message(new Map([["close",!0]])))["$[]="]("sender",e.uuid),t["$[]="]("to",e.remote_uuid),e.$pull(t,new Map([["synchronous",!0]])),e.active=!1,e.csrf=d,i(e.heart_beat_timer["$is_a?"](p("Hash")))&&p(g("GxG"),"DISPATCHER").$cancel_timer(e.heart_beat_timer),!0})),r(h,"$post",(function t(n,r){var s=t.$$p||d,u=this,l=d,c=d,_=d,f=d,h=d,m=d;return t.$$p=null,null==n&&(n=""),null==r&&(r=new Map),i(u.active)?!!i(n["$is_a?"](p(p(p("GxG"),"Gui"),"Form")))&&(l=n.$get_attribute("action").$to_s(),c=i(o(l.$size(),0))?i(o(u.relative_url.$to_s().$size(),0))?""+u.host_prefix+u.relative_url.$to_s()+l.$to_s()+"?display="+u.display_path.$to_s():""+u.host_prefix+l.$to_s()+"?display="+u.display_path.$to_s():i(o(u.relative_url.$to_s().$size(),0))?""+u.host_prefix+u.relative_url.$to_s()+"?display="+u.display_path.$to_s():u.host_prefix+"?display="+u.display_path.$to_s(),(_=new XMLHttpRequest).open("POST",c,!0),_.timeout=i(f=r["$[]"]("timeout"))?f:5e3,_.setRequestHeader("X-Requested-With","XMLHttpRequest"),_.setRequestHeader("Accept","application/json"),_.setRequestHeader("X-CSRF-Token",u.csrf),_.setRequestHeader("Content-Type","multipart/form-data"),h=a(g("Proc"),"new",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=new Map([["error","unknown"]])),n.$log_error(t)}),{$$arity:-1,$$s:u}),m=a(g("Proc"),"new",[],(function t(){var n,r=null==t.$$s?this:t.$$s,a=d,o=d;if(n=_.status.$to_i(),i($(n,300)))try{return a=p("JSON").$parse(_.response,new Map([["symbolize_names",!0]])),r.$log_info(a.$inspect()),i(s["$respond_to?"]("call"))?s.$call(a):d}catch(t){if(!e.rescue(t,[g("Exception")]))throw t;o=t;try{return r.$log_error(new Map([["error",o],["parameters",_.response]]))}finally{e.pop_exception(t)}}else try{return h.$call(p("JSON").$parse(_.response,new Map([["symbolize_names",!0]])))}catch(t){if(!e.rescue(t,[g("Exception")]))throw t;o=t;try{return r.$log_error(new Map([["error",o],["parameters",_.response]]))}finally{e.pop_exception(t)}}}),{$$s:u}),_.addEventListener("load",m),_.addEventListener("error",h),_.addEventListener("timeout",h),_.addEventListener("abort",h),_.send(n.$element()),!0):d}),-1),r(h,"$download_file",(function e(t,n){var r=e.$$p||d,s=this,o=d;return e.$$p=null,null==t&&(t=""),null==n&&(n=d),i(s["$open?"]())?!(!i(t["$is_a?"](p("String")))||!i(r))&&((o=s.$new_message(new Map([["download_file",new Map([["path",t]])]])))["$[]="]("sender",s.uuid),o["$[]="]("to",s.remote_uuid),i(n["$respond_to?"]("call"))&&a(o,"on",["fail"],n.$to_proc()),a(o,"on",["success"],(function(e){var t=d,n=d;if(null==e&&(e=d),i(e["$is_a?"](p("Hash")))){t=e["$[]"]("result")["$[]"]("file_name").$to_s(),n=e["$[]"]("result")["$[]"]("file_data").$decode64();const i=window.streamSaver.createWriteStream(t,{}).getWriter(),a=(new TextEncoder).encode(n);return i.write(a),i.close(),r.$call(!0)}return r.$call(!1)})),p(g("GxG"),"CONNECTION").$pull(o),!0):d}),-1),r(h,"$push",(function(t,n){var r=this,s=d,u=d,l=d,c=d,_=d,f=d;return null==t&&(t=d),null==n&&(n=new Map),i(r.active)?!!i(t["$is_a?"](p(p(p("GxG"),"Events"),"Message")))&&(s=i(o(r.relative_url.$to_s().$size(),0))?""+r.host_prefix+r.relative_url.$to_s()+"?display="+r.display_path.$to_s():r.host_prefix+"?display="+r.display_path.$to_s(),u=t.$body().$to_json().$to_s(),(l=new XMLHttpRequest).open("PUT",s,!0),l.timeout=i(c=n["$[]"]("timeout"))?c:5e3,l.setRequestHeader("X-Requested-With","XMLHttpRequest"),l.setRequestHeader("Accept","application/json"),l.setRequestHeader("X-CSRF-Token",r.csrf),l.setRequestHeader("Content-Type","application/json"),_=a(g("Proc"),"new",[],(function(e){return null==e&&(e=d),t.$fail(e)}),-1),f=a(g("Proc"),"new",[],(function n(){var r,a=null==n.$$s?this:n.$$s,s=d;if(r=l.status.$to_i(),!i($(r,300)))return _.$call(r);try{return t.$succeed(p("JSON").$parse(l.response,new Map([["symbolize_names",!0]])))}catch(t){if(!e.rescue(t,[g("Exception")]))throw t;s=t;try{return a.$log_error(new Map([["error",s],["parameters",l.response]]))}finally{e.pop_exception(t)}}}),{$$s:r}),l.addEventListener("load",f),l.addEventListener("error",_),l.addEventListener("timeout",_),l.addEventListener("abort",_),l.send(u),!0):d}),-1),r(h,"$pull",(function(t,n){var r=this,s=d,c=d,_=d,f=d,h=d,m=d;return null==t&&(t=d),null==n&&(n=new Map([["synchronous",!1]])),i(r.active)?!!i(t["$is_a?"](p(p(p("GxG"),"Events"),"Message")))&&(s="display="+r.display_path.$to_s()+"&details="+t.$body().$to_json().$encode64(),c=i(o(r.relative_url.$to_s().$size(),0))?u(u(u(r.host_prefix.$to_s(),r.relative_url.$to_s()),"?"),s):u(u(r.host_prefix.$to_s(),"?"),s),_=new XMLHttpRequest,l(n["$[]"]("synchronous"),!0)?_.open("GET",c.$to_s(),!1):(_.open("GET",c.$to_s(),!0),_.timeout=i(f=n["$[]"]("timeout"))?f:6e5),_.setRequestHeader("X-Requested-With","XMLHttpRequest"),_.setRequestHeader("Accept","application/json"),h=a(g("Proc"),"new",[],(function(e){return null==e&&(e=d),t.$fail(e)}),-1),m=a(g("Proc"),"new",[],(function n(){var r,a=null==n.$$s?this:n.$$s,s=d;if(r=_.status.$to_i(),!i($(r,300)))return h.$call(r);try{return t.$succeed(p("JSON").$parse(_.response,new Map([["symbolize_names",!0]])))}catch(t){if(!e.rescue(t,[g("Exception")]))throw t;s=t;try{return a.$log_error(new Map([["error",s],["parameters",_.response]]))}finally{e.pop_exception(t)}}}),{$$s:r}),_.addEventListener("load",m),_.addEventListener("error",h),_.addEventListener("timeout",h),_.addEventListener("abort",h),_.send(null),!0):d}),-1),r(h,"$push_message",(function(e){return null==e&&(e=d),d}),-1),r(h,"$pull_message",(function(e){return null==e&&(e=new Map),d}),-1),r(h,"$process_pending",(function(e){return null==e&&(e=new Map),d}),-1),r(h,"$push_object_portions",(function e(t,n){return e.$$p=null,null==t&&(t=new Map),null==n&&(n=d),d}),-1),r(h,"$search_database",(function e(t,n){var r=e.$$p||d;return e.$$p=null,null==t&&(t=new Map),null==n&&(n=d),!(!i(t["$is_a?"](p("Hash")))||!i(r))&&(a(this,"pull_data",[new Map([["search_database",new Map([["criteria",t]])]]),n],r.$to_proc()),!0)}),-1),r(h,"$search_pull",(function t(n,r){var s=t.$$p||d;return t.$$p=null,null==n&&(n=new Map),null==r&&(r=d),!(!i(n["$is_a?"](p("Hash")))||!i(s))&&(a(this,"pull_data",[new Map([["search_pull",new Map([["criteria",n]])]]),r],(function t(n){var a=null==t.$$s?this:t.$$s,o=d;if(null==n&&(n=d),!i(n["$is_a?"](p("Hash"))))return d;if(!i(n["$[]"]("result")))return i(n["$[]"]("error"))&&i(r["$respond_to?"]("call"))?r.$call(n):d;if(!i(n["$[]"]("result")["$is_a?"](p("String"))))return a.$log_error(new Map([["error",g("Exception").$new("Malformed Response Data")],["parameters",new Map([["data",n["$[]"]("result")]])]]));if(i(n["$[]"]("result").$to_s()["$base64?"]())&&(n=n["$[]"]("result").$decode64()),!i(n.$to_s()["$json?"]()))return d;try{return n=p("JSON").$parse(n.$to_s(),new Map([["symbolize_names",!0]])),s.$call(p(p("GxG"),"Database").$process_detached_import(n))}catch(t){if(!e.rescue(t,[g("Exception")]))throw t;o=t;try{return a.$log_error(new Map([["error",o],["parameters",new Map([["data",n]])]]))}finally{e.pop_exception(t)}}}),{$$s:this}),!0)}),-1),r(h,"$destroy_object",(function e(t,n){var r=e.$$p||d;return e.$$p=null,null==t&&(t=d),null==n&&(n=d),!(!i(t)||!i(r))&&(a(this,"pull_data",[new Map([["destroy_object",new Map([["path",t]])]]),n],(function(e){return null==e&&(e=d),i(e["$is_a?"](p("Hash")))?r.$call(e):d})),!0)}),-1),r(h,"$push_data",(function e(t,n){var r=e.$$p||d,s=this,o=d;return e.$$p=null,null==t&&(t=new Map),null==n&&(n=d),!(!i(t["$is_a?"](p("Hash")))||!i(r))&&((o=s.$new_message(t))["$[]="]("sender",s.uuid),o["$[]="]("to",s.remote_uuid),i(n["$respond_to?"]("call"))&&a(o,"on",["fail"],n.$to_proc()),a(o,"on",["success"],(function(e){return null==e&&(e=d),r.$call(e)})),p(g("GxG"),"CONNECTION").$push(o),!0)}),-1),r(h,"$push_object",(function e(t,n){var r=e.$$p||d,s=d,$=d,u=d,l=d;return e.$$p=null,null==t&&(t=new Map),null==n&&(n=d),!(!i(t["$is_a?"](p("Hash")))||!i(r))&&(s=d,$=new Map,i(t["$[]"]("object")["$is_any?"](p(p("GxG"),"BinaryArray"),p("String")))?i(o(t["$[]"]("path").$to_s().$size(),0))?($["$[]="]("path",t["$[]"]("path")),$["$[]="]("object",t["$[]"]("object").$to_s().$encode64())):s="You MUST specify a :path to store the data into.":i(t["$[]"]("object")["$is_a?"](p(p(p("GxG"),"Database"),"DetachedHash")))?(i(o(t["$[]"]("path").$to_s().$size(),0))&&$["$[]="]("path",t["$[]"]("path")),$["$[]="]("uuid",t["$[]"]("object").$uuid().$to_s()),u=[],l=new Map([["formats",new Map],["records",[]]]),i(o(t["$[]"]("object").$format().$to_s().$size(),0))&&u["$<<"](t["$[]"]("object").$format()),a(t["$[]"]("object"),"search",[],(function(e,t,n){return null==e&&(e=d),null==t&&(t=d),null==n&&(n=d),i(e["$is_a?"](p(p(p("GxG"),"Database"),"DetachedHash")))&&i(o(e.$format().$to_s().$size(),0))&&u["$<<"](e.$format()),i(e["$is_a?"](p(p(p("GxG"),"Database"),"PersistedArray")))&&i(o(e.$constraint().$to_s().$size(),0))?u["$<<"](e.$constraint()):d})),a(u,"each",[],(function(e){var t,n=d;return null==e&&(e=d),n=p(g("GxG"),"DB")["$[]"]("formats")["$[]"](e.$to_s().$to_sym()).$clone(),i(n["$is_a?"](p("Hash")))?(n["$[]="]("content",n["$[]"]("content").$gxg_export()),t=[e.$to_s().$to_sym(),n],a(l["$[]"]("formats"),"[]=",t),t[t.length-1]):d})),l["$[]"]("records")["$<<"](t["$[]"]("object").$export()),$["$[]="]("object",l)):s="Invalid Data Type",i(s)?(i(n["$respond_to?"]("call"))&&n.$call(new Map([["result",d],["error",s]])),!1):(a(this,"push_data",[new Map([["put_object",$]]),n],(function(e){return null==e&&(e=d),i(e["$is_a?"](p("Hash")))?r.$call(e):d})),!0))}),-1),r(h,"$pull_data",(function t(n,r){var s=t.$$p||d,o=this,$=d;return t.$$p=null,null==n&&(n=new Map),null==r&&(r=d),i(n)&&i(s)?(($=o.$new_message(n))["$[]="]("sender",o.uuid),$["$[]="]("to",o.remote_uuid),i(r["$respond_to?"]("call"))&&a($,"on",["fail"],r.$to_proc()),a($,"on",["success"],(function t(n){var r=null==t.$$s?this:t.$$s,a=d,o=d;if(null==n&&(n=d),i(n["$is_a?"](p("Hash")))){if(a=d,i(n["$[]"]("result")["$is_a?"](p("String")))){if(i(n["$[]"]("result").$to_s()["$base64?"]())&&(a=n["$[]"]("result").$decode64()),i(a.$to_s()["$json?"]()))try{a=p("JSON").$parse(a.$to_s(),new Map([["symbolize_names",!0]]))}catch(t){if(!e.rescue(t,[g("Exception")]))throw t;o=t;try{r.$log_error(new Map([["error",o],["parameters",new Map([["data",a]])]]))}finally{e.pop_exception(t)}}return s.$call(a)}return r.$log_error(new Map([["error",g("Exception").$new("Malformed Response Data")],["parameters",new Map([["data",n["$[]"]("result")]])]]))}return d}),{$$s:o}),p(g("GxG"),"CONNECTION").$pull($)):d}),-1),r(h,"$pull_object",(function e(t,n){var r=e.$$p||d,s=d;return e.$$p=null,null==t&&(t=d),null==n&&(n=d),!(!i(t)||!i(r))&&(s=i(g("GxG")["$valid_uuid?"](t.$to_s()))?new Map([["get_object",new Map([["uuid",t]])]]):new Map([["get_object",new Map([["path",t]])]]),a(this,"pull_data",[s,n],(function(e){return null==e&&(e=d),i(e["$is_a?"](p("Hash")))?r.$call(p(p("GxG"),"Database").$process_detached_import(e)):d})),!0)}),-1),r(h,"$load_format",(function t(n,r){var s=t.$$p||d;return t.$$p=null,null==n&&(n=new Map),null==r&&(r=d),!(!i(n)||!i(s))&&(a(this,"pull_data",[new Map([["get_format",n]]),r],(function t(n){var a=null==t.$$s?this:t.$$s,o=d;if(null==n&&(n=d),!i(n["$is_a?"](p("Hash"))))return d;if(!i(n["$[]"]("result")))return i(n["$[]"]("error"))&&i(r["$respond_to?"]("call"))?r.$call(n):d;if(!i(n["$[]"]("result")["$is_a?"](p("String"))))return a.$log_error(new Map([["error",g("Exception").$new("Malformed Response Data")],["parameters",new Map([["data",n["$[]"]("result")]])]]));if(i(n["$[]"]("result").$to_s()["$base64?"]())&&(n=n["$[]"]("result").$decode64()),!i(n.$to_s()["$json?"]()))return d;try{return n=p("JSON").$parse(n.$to_s(),new Map([["symbolize_names",!0]])),p(p("GxG"),"Database").$process_detached_import(n),s.$call(new Map([["result",!0]]))}catch(t){if(!e.rescue(t,[g("Exception")]))throw t;o=t;try{return a.$log_error(new Map([["error",o],["parameters",new Map([["data",n]])]]))}finally{e.pop_exception(t)}}}),{$$s:this}),!0)}),-1),r(h,"$store_format",(function e(t,n){var r=e.$$p||d,s=d,$=d;return e.$$p=null,null==t&&(t=new Map),null==n&&(n=d),!(!i(t)||!i(r))&&(l(t.$keys().$size(),0)?s=p(p("GxG"),"DB")["$[]"]("formats").$keys():(s=[],a(p(p("GxG"),"DB")["$[]"]("formats").$keys(),"each",[],(function(e){return null==e&&(e=d),i(o(t["$[]"]("uuid").$to_s().$size(),0))&&l(e,t["$[]"]("uuid"))&&(i(s["$include?"](e))||s["$<<"](e)),i(o(t["$[]"]("type").$to_s().$size(),0))&&l(p(p("GxG"),"DB")["$[]"]("formats")["$[]"](e)["$[]"]("type"),t["$[]"]("type"))&&(i(s["$include?"](e))||s["$<<"](e)),i(o(t["$[]"]("ufs").$to_s().$size(),0))&&l(p(p("GxG"),"DB")["$[]"]("formats")["$[]"](e)["$[]"]("ufs"),t["$[]"]("ufs"))&&(i(s["$include?"](e))||s["$<<"](e)),i(o(t["$[]"]("title").$to_s().$size(),0))&&l(p(p("GxG"),"DB")["$[]"]("formats")["$[]"](e)["$[]"]("title"),t["$[]"]("title"))&&(i(s["$include?"](e))||s["$<<"](e)),i(o(t["$[]"]("version").$to_s().$size(),0))&&l(p(p("GxG"),"DB")["$[]"]("formats")["$[]"](e)["$[]"]("version"),t["$[]"]("version"))?i(s["$include?"](e))?d:s["$<<"](e):d}))),$=new Map([["formats",new Map],["records",[]]]),a(s,"each",[],(function(e){var t,n=d;return null==e&&(e=d),(n=p(p("GxG"),"DB")["$[]"]("formats")["$[]"](e.$to_s().$to_sym()).$clone())["$[]="]("content",n["$[]"]("content").$gxg_export()),t=[e.$to_s().$to_sym(),n],a($["$[]"]("formats"),"[]=",t),t[t.length-1]})),a(this,"push_data",[new Map([["put_format",$]]),n],(function(e){return null==e&&(e=d),i(e["$is_a?"](p("Hash")))?r.$call(e):d})),!0)}),-1),r(h,"$get_permissions",(function e(t,n){var r=e.$$p||d;return e.$$p=null,null==t&&(t=d),null==n&&(n=d),!(!i(t)||!i(r))&&(a(this,"pull_data",[new Map([["get_permissions",new Map([["path",t]])]]),n],(function(e){return null==e&&(e=d),i(e["$is_a?"](p("Hash")))?r.$call(e):d})),!0)}),-1),r(h,"$call_event",(function e(t,n,r){var s=e.$$p||d;return e.$$p=null,null==t&&(t="core"),null==n&&(n=new Map([["interface",!0]])),null==r&&(r=d),i(this["$open?"]())?!(!i(n["$is_a?"](p("Hash")))||!i(s))&&(a(this,"pull_data",[new Map([["call_event",new Map([["service",t.$to_s()],["op_frame",n]])]]),r],s.$to_proc()),!0):d}),-1),r(h,"$library_pull",(function e(t,n){var r=e.$$p||d;return e.$$p=null,null==t&&(t=new Map),null==n&&(n=d),i(this["$open?"]())?!(!i(t["$is_a?"](p("Hash")))||!i(r))&&(a(this,"pull_data",[new Map([["get_library",t]]),n],(function(e){return null==e&&(e=d),r.$call(e)})),!0):d}),-1),r(h,"$format_pull",(function e(t,n){var r=e.$$p||d;return e.$$p=null,null==t&&(t=new Map),null==n&&(n=d),i(this["$open?"]())?!(!i(t["$is_any?"](p("Array"),p("Hash")))||!i(r))&&(a(this,"pull_data",[new Map([["format_pull",t]]),n],(function(e){return null==e&&(e=d),r.$call(e)})),!0):d}),-1),r(h,"$format_push",(function e(t,n){var r=e.$$p||d;return e.$$p=null,null==t&&(t=new Map),null==n&&(n=d),i(this["$open?"]())?!(!i(t["$is_a?"](p("Hash")))||!i(r))&&(a(this,"push_data",[new Map([["format_push",t]]),n],(function(e){return null==e&&(e=d),r.$call(e)})),!0):d}),-1),r(h,"$format_list",(function e(t,n){var r=e.$$p||d;return e.$$p=null,null==t&&(t=new Map),null==n&&(n=d),i(this["$open?"]())?!(!i(t["$is_a?"](p("Hash")))||!i(r))&&(a(this,"pull_data",[new Map([["format_list",t]]),n],(function(e){return null==e&&(e=d),r.$call(e)})),!0):d}),-1),r(h,"$admin",(function e(t,n){var r=e.$$p||d;return e.$$p=null,null==t&&(t=new Map),null==n&&(n=d),i(this["$open?"]())?!(!i(t["$is_a?"](p("Hash")))||!i(r))&&(a(this,"pull_data",[new Map([["admin",t]]),n],(function(e){return null==e&&(e=d),r.$call(e)})),!0):d}),-1),r(h,"$vfs",(function e(t,n){var r=e.$$p||d;return e.$$p=null,null==t&&(t=new Map),null==n&&(n=d),!!i(this["$open?"]())&&(!(!i(t["$is_a?"](p("Hash")))||!i(r))&&(!!i(["vfs_mkfile","vfs_mkdir","vfs_rename","vfs_destroy","vfs_copy","vfs_move","set_permissions"]["$include?"](t.$keys()["$[]"](0)))&&(a(this,"pull_data",[t,n],(function(e){return null==e&&(e=d),r.$call(e)})),!0)))}),-1),r(h,"$app_state_push",(function e(t,n){var r=e.$$p||d;return e.$$p=null,null==t&&(t=new Map),null==n&&(n=d),!(!i(t["$is_a?"](p("Hash")))||!i(r))&&(a(this,"push_data",[new Map([["app_state_push",new Map([["application",t["$[]"]("application")],["data",t["$[]"]("data")]])]]),n],(function(e){return null==e&&(e=d),i(e["$is_a?"](p("Hash")))?r.$call(e):d})),!0)}),-1),r(h,"$app_state_pull",(function e(t,n){var r=e.$$p||d;return e.$$p=null,null==t&&(t=new Map),null==n&&(n=d),i(this["$open?"]())?!(!i(t["$is_a?"](p("Hash")))||!i(r))&&(a(this,"pull_data",[new Map([["app_state_pull",new Map([["application",t["$[]"]("application")]])]]),n],(function(e){return null==e&&(e=d),r.$call(e)})),!0):d}),-1),r(h,"$application_open",(function e(t,n){var r=e.$$p||d,s=this,o=d;return e.$$p=null,null==t&&(t=new Map),null==n&&(n=d),i(s["$open?"]())?!(!i(t["$is_a?"](p("Hash")))||!i(r))&&(i(t["$[]"]("name"))?a(s,"pull_data",[new Map([["application_open",new Map([["restore",i(o=t["$[]"]("restore"))&&o],["name",t["$[]"]("name")]])]]),n],(function(e){return null==e&&(e=d),r.$call(e)})):a(s,"pull_data",[new Map([["application_open",new Map([["restore",i(o=t["$[]"]("restore"))&&o],["path",t["$[]"]("path")]])]]),n],(function(e){return null==e&&(e=d),r.$call(e)})),!0):d}),-1),r(h,"$application_close",(function e(t,n){var r=e.$$p||d;return e.$$p=null,null==t&&(t=new Map),null==n&&(n=d),i(this["$open?"]())?!(!i(t["$is_a?"](p("Hash")))||!i(r))&&(a(this,"pull_data",[new Map([["application_close",new Map([["application",t["$[]"]("application")]])]]),n],(function(e){return null==e&&(e=d),r.$call(e)})),!0):d}),-1),r(h,"$application_list",(function e(t){var n=e.$$p||d;return e.$$p=null,null==t&&(t=d),i(this["$open?"]())?!!i(n)&&(a(this,"pull_data",[new Map([["application_list",!0]]),t],(function(e){return null==e&&(e=d),n.$call(e)})),!0):d}),-1),r(h,"$application_menu",(function e(t){var n=e.$$p||d;return e.$$p=null,null==t&&(t=d),i(this["$open?"]())?!!i(n)&&(a(this,"pull_data",[new Map([["application_menu",!0]]),t],(function(e){return null==e&&(e=d),n.$call(e)})),!0):d}),-1),r(h,"$entries",(function e(t,n){var r=e.$$p||d;return e.$$p=null,null==t&&(t=new Map),null==n&&(n=d),i(this["$open?"]())?!(!i(t["$is_a?"](p("Hash")))||!i(r))&&(p(g("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$set_busy(!0),a(this,"pull_data",[new Map([["entries",new Map([["path",t["$[]"]("path")]])]]),n],(function(e){return null==e&&(e=d),r.$call(e),p(g("GxG"),"DISPLAY_DETAILS")["$[]"]("object").$set_busy(!1)})),!0):d}),-1),r(h,"$heartbeat",(function(){var e=this,t=d;return i(e.active)?((t=e.$new_message(new Map([["heartbeat",!0]])))["$[]="]("sender",e.uuid.$to_s()),t["$[]="]("to",e.remote_uuid.$to_s()),a(t,"on",["success"],(function(e){var t;return null==e&&(e=d),i(e["$is_a?"](p("Hash")))?(l(e["$[]"]("result")["$[]"]("status"),"credentialed"),t=["server_status",e["$[]"]("result")["$[]"]("server").$to_s().$to_sym()],a(p(g("GxG"),"DISPLAY_DETAILS"),"[]=",t),t[t.length-1]):d})),p(g("GxG"),"CONNECTION").$pull(t)):d})),r(h,"$update_credential",(function e(t,n){var r=e.$$p||d,s=this,o=d,$=d;return e.$$p=null,null==t&&(t=new Map),null==n&&(n=d),i(s["$open?"]())&&i(t["$is_a?"](p("Hash")))&&i(r)?(o=t.$to_json().$to_s().$encrypt(s.csrf.$to_s()).$encode64(),($=s.$new_message(new Map([["update_credential",o]])))["$[]="]("sender",s.uuid),$["$[]="]("to",s.remote_uuid),$["$[]"]("body")["$[]="]("thread",$.$id().$to_s()),a($,"on",["success"],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=d),i(t["$is_a?"](p("Hash")))&&l(t["$[]"]("status"),"credentialed")&&(p(g("GxG"),"DISPLAY_DETAILS")["$[]="]("logged_in",!0),a(g("GXG_FEDERATION")["$[]"]("connections").$keys(),"each",[],(function e(t){return null==t&&(t=d),(null==e.$$s?this:e.$$s).$socket().$send(new Map([["open_channel",t.$to_s()]]).$to_json().$encode64(),"text")}),{$$s:n})),r.$call(t)}),{$$s:s}),i(n)&&a($,"on",["fail"],(function(e){return null==e&&(e=d),n.$call(e)})),p(g("GxG"),"CONNECTION").$push($)):d}),-1),r(h,"$downgrade_credential",(function e(){var t=e.$$p||d,n=this,r=d;return e.$$p=null,i(n.active)?((r=n.$new_message(new Map([["downgrade_credential",!0]])))["$[]="]("sender",n.uuid.$to_s()),r["$[]="]("to",n.remote_uuid.$to_s()),a(r,"on",["success"],(function e(n){var r=null==e.$$s?this:e.$$s,s=d;return null==n&&(n=d),i(n["$is_a?"](p("Hash")))&&l(n["$[]"]("status"),"uncredentialed")?(a(g("GXG_FEDERATION")["$[]"]("connections").$keys(),"each",[],(function e(t){return null==t&&(t=d),(null==e.$$s?this:e.$$s).$socket().$send(new Map([["close_channel",t.$to_s()]]).$to_json().$encode64(),"text")}),{$$s:r}),p(g("GxG"),"DISPLAY_DETAILS")["$[]="]("logged_in",!1),i(t["$respond_to?"]("call"))&&t.$call(n),s=new CustomEvent("credentialchanged",{detail:n["$[]"]("status").$to_s()}),window.dispatchEvent(s)):d}),{$$s:n}),p(g("GxG"),"CONNECTION").$pull(r)):d})),r(h,"$action",(function e(t,n){return e.$$p=null,null==t&&(t=new Map),null==n&&(n=d),d}),-1),r(h,"$relative_url",s("relative_url")),r(h,"$query",s("query")),r(h,"$article",s("article")),r(h,"$display_path",s("display_path")),r(h,"$secret",s("csrf")),r(h,"$initialize",(function(){var t,n=this,r=d,s=d,$=d,_=d,f=d;return i(window.location.href["$include?"]("https://"))?n.host_prefix=u("https://",window.location.host):n.host_prefix=u("http://",window.location.host),n.relative_url="",t=g("File").$basename(window.location.pathname),s=(r=window.location.pathname.$split("/")).$index(t),i(s["$is_a?"](p("Numeric")))&&i(o(s,1))&&(n.relative_url=r["$[]"](e.Range.$new(0,c(s,1),!1)).$join("/")),n.article=d,n.query=new Map,$=window.location.href.$split("?")["$[]"](1),i($)?(n.article=$.$split("#")["$[]"](1),$=$.$split("#")["$[]"](0),_=i($["$include?"]("&"))?$.$split("&"):$.$split("&"),a(_,"each",[],(function e(t){var n,r=null==e.$$s?this:e.$$s,i=d;return null==r.query&&(r.query=d),null==t&&(t=d),n=[(i=t.$split("="))["$[]"](0).$to_s().$to_sym(),i["$[]"](1)],a(r.query,"[]=",n),n[n.length-1]}),{$$s:n})):n.article=window.location.href.$split("#")["$[]"](1),n.uuid=g("GxG").$uuid_generate().$to_sym(),n.remote_uuid=d,n.active=!0,n.display_path=d,n.in_busy=!1,n.out_busy=!1,n.pending=new Map,n.channels=new Map,n.buffers=new Map,n.csrf=d,n.the_connector=n,(f=n.$new_message(new Map([["introduction",n.uuid.$to_s()]])))["$[]="]("sender",n.uuid.$to_s()),f["$[]="]("to",n.host_prefix.$to_s()),a(f,"on",["success"],(function t(n){var r=null==t.$$s?this:t.$$s;return null==n&&(n=d),l(n["$[]"]("result"),"OK")?(i(n["$[]"]("csrf"))&&(r.csrf=n["$[]"]("csrf")),l(n["$[]"]("status"),"credentialed")?p(g("GxG"),"DISPLAY_DETAILS")["$[]="]("logged_in",!0):p(g("GxG"),"DISPLAY_DETAILS")["$[]="]("logged_in",!1),i(n["$[]"]("relative_url"))&&(r.relative_url=n["$[]"]("relative_url")),l(n["$[]"]("display"),"unavailable")?alert("Display Resource Unavailable"):(r.display_path=n["$[]"]("display"),r.active=!0,a(p(g("GxG"),"DISPATCHER"),"post_event",["display"],(function t(){var n=null==t.$$s?this:t.$$s;for(null==n.query&&(n.query=d),null==n.article&&(n.article=d),null==n.relative_url&&(n.relative_url=d);!l(document.readyState.$to_s(),"complete");)n.$sleep(.5);p(p("GxG"),"DISPLAY_DETAILS")["$[]="]("query",n.query),p(p("GxG"),"DISPLAY_DETAILS")["$[]="]("article",n.article);var r=function(t){e.GxG.$eval("GxG::DISPLAY_DETAILS[:socket].close"),t&&(t.returnValue="closing...");for(var n=0;n<5e8;n++);return"closing..."};return window.addEventListener("unload",r,!1),window.addEventListener("onunload",r,!1),window.addEventListener("beforeunload",r,!1),window.addEventListener("onbeforeunload",r,!1),window.onbeforeunload=r,window.beforeunload=r,a(p(g("GxG"),"DISPATCHER"),"post_event",["display"],(function(){return p(p(p("GxG"),"Gui"),"Vdom").$navigate_to(window.location.pathname)})),p(p("GxG"),"DISPLAY_DETAILS")["$[]="]("socket",p(p(p("GxG"),"Networking"),"Socket").$new()),p(p("GxG"),"DISPLAY_DETAILS")["$[]"]("socket").$open(u(u(u(window.location.host,"/"),n.relative_url),"/ws").$gsub("//","/")),a(p(p("GxG"),"SOCKET_MONITOR"),"on",["attach_socket"],(function e(t){var n=null==e.$$s?this:e.$$s,r=d;return null==n.uuid&&(n.uuid=d),null==n.remote_uuid&&(n.remote_uuid=d),null==t&&(t=d),i(p("GxG")["$valid_uuid?"](t))?((r=n.$new_message(new Map([["attach_socket",t.$to_s()]])))["$[]="]("sender",n.uuid),r["$[]="]("to",n.remote_uuid),a(r,"on",["success"],(function e(t){var n=null==e.$$s?this:e.$$s;return null==n.uuid&&(n.uuid=d),null==t&&(t=d),p(p("GxG"),"CHANNELS").$create_channel(n.uuid)}),{$$s:n}),p(g("GxG"),"CONNECTION").$push(r)):d}),{$$s:n}),a(p(p("GxG"),"SOCKET_MONITOR"),"on",["payload"],(function e(t){var n=null==e.$$s?this:e.$$s,r=d,a=d;return null==n.csrf&&(n.csrf=d),null==t&&(t=d),r=p(p(p("GxG"),"Events"),"Message").$import(t.$to_s().$decode64().$decrypt(n.csrf)),i(r["$is_a?"](p(p(p("GxG"),"Events"),"Message")))?(a=p(p("GxG"),"CHANNELS").$fetch_channel(r["$[]"]("to")),i(a)||(p(p("GxG"),"CHANNELS").$create_channel(r["$[]"]("to")),a=p(p("GxG"),"CHANNELS").$fetch_channel(r["$[]"]("to"))),i(a)?a.$write(r):d):d}),{$$s:n}),a(p(p("GxG"),"DISPATCHER"),"add_periodic_timer",[new Map([["interval",.333]])],(function(){return p(p("GxG"),"SOCKET_MONITOR").$follow_up()}))}),{$$s:r}))):d}),{$$s:n}),a(f,"on",["fail"],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=d),n.active=!1,n.$log_error(new Map([["error",g("Exception").$new("Communication Error")],["parameters",new Map([["response",t]])]]))}),{$$s:n}),a(p(g("GxG"),"DISPATCHER"),"post_event",["communications"],(function e(){var t=null==e.$$s?this:e.$$s;return p(g("GxG"),"CONNECTION").$pull(f),t.heart_beat_timer=a(p(g("GxG"),"DISPATCHER"),"add_periodic_timer",[new Map([["interval",60]])],(function(){return p(g("GxG"),"CONNECTION").$heartbeat()}))}),{$$s:n}),n}))}(h[0],0,h)}(h[0],h)}(_[0],_)},Opal.queue((function(e){var t=e.module,n=e.const_set,r=e.klass,i=e.def,a=e.top,s=[],o=e.nil,$=e.$$$;return e.add_stubs("require,to_i,new,private,[]"),a.$require("opal"),a.$require("opal/paths"),a.$require("bigdecimal"),a.$require("buffer"),a.$require("base64"),a.$require("console"),a.$require("date"),a.$require("delegate"),a.$require("enumerator"),a.$require("forwardable"),a.$require("iconv"),a.$require("json"),a.$require("js"),a.$require("observer"),a.$require("opal-parser"),a.$require("opal-platform"),a.$require("pathname"),a.$require("pp"),a.$require("promise"),a.$require("securerandom"),a.$require("singleton"),a.$require("stringio"),a.$require("strscan"),a.$require("thread"),a.$require("time"),a.$require("deps/chronic"),a.$require("web/gxg"),a.$require("web/gxg_augments"),a.$require("web/gxg_elements"),a.$require("web/gxg_events"),a.$require("web/gxg_database"),a.$require("web/gxg_libraries"),a.$require("web/gxg_applications"),a.$require("web/gxg_vdom"),a.$require("web/gxg_foundation"),a.$require("web/gxg_layout"),a.$require("web/gxg_windows"),a.$require("web/gxg_gui"),a.$require("web/gxg_comm"),function(e,r){var i=[t(e,"GxG")].concat(r);n(i[0],"DISPLAY_DETAILS",new Map([["server_status","running"],["logged_in",!1],["host_path",""],["use_ssl",!1],["socket",o],["object",o],["theme","default"],["query",new Map],["article",o],["mode","browsing"]])),n(i[0],"LAYOUT",new Map([["top-left",new Map],["top",new Map],["top-right",new Map],["right",new Map],["bottom-right",new Map],["bottom",new Map],["bottom-left",new Map],["left",new Map]])),n(i[0],"LAYOUT_LIMITS",new Map([["top",0],["left",0],["bottom",window.innerHeight.$to_i()],["right",window.innerWidth.$to_i()],["page_width",window.innerWidth.$to_i()],["page_height",window.innerHeight.$to_i()]])),n(i[0],"APPLICATIONS",new Map([["processes",new Map],["libraries",new Map],["viewports",new Map],["prefetching",!1]])),n(i[0],"ANIMATION",new Map([["animations",new Map],["assets",new Map]])),n(i[0],"DB",new Map([["formats",new Map]])),n(i[0],"CONNECTION",$($($("GxG"),"Networking"),"Connector").$new()),n(i[0],"SOCKET_MONITOR",$($($("GxG"),"Networking"),"SocketMonitor").$new()),n(i[0],"THEMES",new Map),n(i[0],"PAGES",new Map),n(i[0],"DOCUMENTS",new Map)}(s[0],s),function(e,t){var n=r(e,null,"Object");return n.$private(),i(n,"$page",(function(){return $($("GxG"),"DISPLAY_DETAILS")["$[]"]("object")})),i(n,"$applications",(function(){return $($("GxG"),"APPLICATIONS")["$[]"]("processes")})),i(n,"$libraries",(function(){return $($("GxG"),"APPLICATIONS")["$[]"]("libraries")})),i(n,"$viewports",(function(){return $($("GxG"),"APPLICATIONS")["$[]"]("viewports")})),i(n,"$connector",(function(){return $($("GxG"),"CONNECTION")})),i(n,"$socket",(function(){return $($("GxG"),"DISPLAY_DETAILS")["$[]"]("socket")})),i(n,"$sockets",(function(){return $($("GxG"),"SOCKET_MONITOR")})),i(n,"$documents",(function(){return $($("GxG"),"DOCUMENTS")}))}(s[0])})),Opal.queue((function(e){var t=e.Kernel;e.nil;return e.add_stubs("exit"),t.$exit()})); |