mol_plot_all 1.2.1550 → 1.2.1551

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["-","../../../../mam.ts","../../../../mol/dom/context/context.ts","../../../../mol/fail/fail.ts","../../../../mol/promise/like/like.ts","../../../../mol/fail/hidden/hidden.ts","../../../../mol/fail/catch/catch.ts","../../../../mol/try/try.node.ts","../../../../mol/fail/log/log.ts","../../../../node/node.node.ts","../../../../mol/func/name/name.ts","../../../../mol/error/mix/mix.ts","../../../../mol/ambient/ambient.ts","../../../../mol/delegate/delegate.ts","../../../../mol/owning/owning.ts","../../../../mol/object2/object2.ts","../../../../mol/object/object.ts","../../../../mol/env/env.ts","../../../../mol/env/env.node.ts","../../../../mol/guid/guid.ts","../../../../mol/wire/cursor/cursor.ts","../../../../mol/wire/pub/pub.ts","../../../../mol/wire/wire.ts","../../../../mol/dev/format/format.ts","../../../../mol/wire/pub/sub/sub.ts","../../../../mol/after/tick/tick.ts","../../../../mol/wire/fiber/fiber.ts","../../../../mol/compare/deep/deep.ts","../../../../mol/log3/log3.ts","../../../../mol/span/span.ts","../../../../mol/tree2/to/string/string.ts","../../../../mol/maybe/maybe.ts","../../../../mol/tree2/tree2.ts","../../../../mol/error/syntax/syntax.ts","../../../../mol/tree2/from/string/string.ts","../../../../mol/tree2/from/json/json.ts","../../../../mol/term/color/color.ts","../../../../mol/log3/log3.node.ts","../../../../mol/wire/task/task.ts","../../../../mol/wire/sync/sync.ts","../../../../mol/run/run.node.ts","../../../../mol/exec/exec.node.ts","../../../../mol/dom/context/context.node.ts","../../../../mol/dom/dom.ts","../../../../mol/style/attach/attach.ts","../../../../mol/promise/promise/promise.ts","../../../../mol/promise/blocker/blocker.ts","../../../../mol/decor/decor.ts","../../../../mol/style/unit/unit.ts","../../../../mol/style/func/func.ts","../../../../mol/style/prop/prop.ts","../../../../mol/key/key.ts","../../../../mol/after/timeout/timeout.ts","../../../../mol/after/frame/frame.node.ts","../../../../mol/wire/method/method.ts","../../../../mol/wire/atom/atom.ts","../../../../mol/wire/solo/solo.ts","../../../../mol/wire/plex/plex.ts","../../../../mol/mem/mem.ts","../../../../mol/action/action.ts","../../../../mol/state/arg/arg.node.ts","../../../../mol/media/media.ts","../../../../mol/wire/solid/solid.ts","../../../../mol/mem/persist/persist.ts","../../../../mol/wire/probe/probe.ts","../../../../mol/mem/cached/cached.ts","../../../../mol/storage/storage.ts","../../../../mol/state/local/local.ts","../../../../mol/const/const.ts","../../../../mol/wire/async/async.ts","../../../../mol/lock/lock.ts","../../../../mol/compare/array/array.ts","../../../../mol/charset/decode/decode.ts","../../../../mol/charset/encode/encode.ts","../../../../mol/file/transaction/transaction.ts","../../../../mol/file/transaction/transaction.node.ts","../../../../mol/file/base/base.ts","../../../../mol/file/file.ts","../../../../mol/file/file.node.ts","../../../../mol/state/local/local.node.ts","../../../../mol/lights/lights.ts","../../../../mol/theme/theme.ts","../../../../mol/theme/-css/theme.css.ts","../../../../mol/theme/theme_lights.ts","../../../../mol/gap/gap.ts","../../../../mol/gap/-css/gap.css.ts","../../../../mol/dom/render/children/children.ts","../../../../mol/jsx/jsx.ts","../../../../mol/window/window.node.ts","../../../../mol/guard/defined.ts","../../../../mol/view/selection/selection.ts","../../../../mol/wrapper/wrapper.ts","../../../../mol/memo/memo.ts","../../../../mol/dom/qname/qname.ts","../../../../mol/wire/watch/watch.ts","../../../../mol/dom/render/attributes/attributes.ts","../../../../mol/dom/render/events/events.ts","../../../../mol/dom/render/styles/styles.ts","../../../../mol/dom/render/fields/fields.ts","../../../../mol/view/view/-css/view.css.ts","../../../../mol/view/view/view.tsx","../../../../mol/plugin/plugin.ts","../../../../mol/svg/svg.view.tree","../../../../mol/state/time/time.ts","../../../../mol/svg/svg.view.ts","../../../../mol/svg/root/root.view.tree","../../../../mol/svg/root/-css/root.view.css.ts","../../../../mol/vector/vector.ts","../../../../mol/touch/touch.view.tree","../../../../mol/touch/touch.view.ts","../../../../mol/plot/pane/pane.view.tree","../../../../mol/svg/group/group.view.tree","../../../../mol/svg/title/title.view.tree","../../../../mol/plot/graph/graph.view.tree","../../../../mol/plot/graph/graph.view.ts","../../../../mol/plot/graph/-css/graph.view.css.ts","../../../../mol/plot/pane/pane.view.ts","../../../../mol/plot/pane/-css/pane.view.css.ts","../../../../mol/plot/line/line.view.tree","../../../../mol/plot/line/line.view.ts","../../../../mol/plot/line/-css/line.view.css.ts","../../../../mol/plot/group/group.view.tree","../../../../mol/plot/group/group.view.ts","../../../../mol/svg/path/path.view.tree","../../../../mol/plot/dot/dot.view.tree","../../../../mol/coord/coord.ts","../../../../mol/plot/dot/dot.view.ts","../../../../mol/plot/dot/-css/dot.view.css.ts","../../../../mol/plot/map/heat/heat.view.tree","../../../../mol/plot/map/heat/heat.view.ts","../../../../mol/plot/map/heat/-css/heat.view.css.ts","../../../../mol/plot/bar/bar.view.tree","../../../../mol/plot/bar/bar.view.ts","../../../../mol/plot/bar/-css/bar.view.css.ts","../../../../mol/plot/fill/fill.view.tree","../../../../mol/plot/fill/fill.view.ts","../../../../mol/plot/fill/-css/fill.view.css.ts","../../../../mol/svg/rect/rect.view.tree","../../../../mol/svg/rect/rect.view.ts","../../../../mol/svg/text/text.view.tree","../../../../mol/svg/text/text.view.ts","../../../../mol/svg/text/-css/text.view.css.ts","../../../../mol/plot/ruler/ruler.view.tree","../../../../mol/math/round/expand/expand.ts","../../../../mol/plot/ruler/ruler.view.ts","../../../../mol/plot/ruler/-css/ruler.view.css.ts","../../../../mol/plot/ruler/vert/vert.view.tree","../../../../mol/plot/ruler/vert/vert.view.ts","../../../../mol/plot/ruler/vert/-css/vert.view.css.ts","../../../../mol/plot/ruler/hor/hor.view.tree","../../../../mol/plot/ruler/hor/hor.view.ts","../../../../mol/plot/ruler/hor/-css/hor.view.css.ts","../../../../mol/svg/text/box/box.view.tree","../../../../mol/font/canvas/canvas.ts","../../../../mol/font/measure/measure.ts","../../../../mol/svg/text/box/box.view.ts","../../../../mol/svg/text/box/-css/box.view.css.ts","../../../../mol/plot/mark/cross/cross.view.tree","../../../../mol/plot/mark/cross/cross.view.ts","../../../../mol/plot/mark/cross/-css/cross.view.css.ts","../../../../mol/plot/mark/hor/hor.view.tree","../../../../mol/plot/mark/hor/hor.view.ts","../../../../mol/plot/mark/hor/-css/hor.view.css.ts"],"names":[],"mappings":"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","sourcesContent":[null,"Error.stackTraceLimit = 50;\n\ndeclare let _$_: { new(): {} } & typeof globalThis\ndeclare class $ extends _$_ {}\n\nnamespace $ {\n\texport type $ = typeof $$\n\texport declare class $$ extends $ {\n\t\tstatic $: $\n\t}\n\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n","namespace $ {\n\t\n\texport var $mol_dom_context : typeof globalThis\n\t\n}\n","namespace $ {\n\n\texport function $mol_fail( error : any ) : never {\n\t\tthrow error\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_promise_like( val: any ): val is Promise<any> {\n\t\ttry {\n\t\t\treturn val && typeof val === 'object' && 'then' in val && typeof val.then === 'function'\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_fail_hidden( error : any ) : never {\n\t\tthrow error /// Use 'Never Pause Here' breakpoint in DevTools or simply blackbox this script\n\t}\n\n}\n","namespace $ {\n\n\tconst catched = new WeakMap< any , boolean >()\n\n\texport function $mol_fail_catch( error: unknown ) {\n\t\t\n\t\tif( typeof error !== 'object' ) return false\n\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\tif( catched.get( error ) ) return false\n\t\t\n\t\tcatched.set( error , true )\n\t\treturn true\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_try< Result >( handler : ()=> Result ) : Result|Error {\n\t\ttry {\n\t\t\treturn handler()\n\t\t} catch( error: any ) {\n\t\t\treturn error\n\t\t}\n\t}\n\t\n} \n","namespace $ {\n\t\n\texport function $mol_fail_log( error: unknown ) {\n\t\t\n\t\tif( $mol_promise_like( error ) ) return false\n\t\tif( !$mol_fail_catch( error ) ) return false\n\t\t\n\t\t$mol_try( ()=> { $mol_fail_hidden( error ) } )\n\t\t\n\t\treturn true\n\t\t\n\t}\n\n}\n","interface $node {\n\t[key:string]: any\n}\n\nvar $node = new Proxy( { require } as any , {\n\t\n\tget( target , name : string , wrapper ) {\n\n\t\tif( target[ name ] ) return target[ name ]\n\n\t\tif( name.startsWith( 'node:' ) ) return target.require ( name )\n\t\tif( name[0] === '.' ) return target.require( name )\n\t\t\n\t\tconst mod = target.require/****/( 'module' ) as typeof import/****/( 'module' )\n\t\tif( mod.builtinModules.indexOf( name ) >= 0 ) return target.require ( name )\n\n\t\ttry {\n\t\t\ttarget.require.resolve( name )\n\t\t} catch {\n\t\t\n\t\t\tconst $$ = ( $ as any )\n\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '--omit=dev', name )\n\t\t\t\n\t\t\ttry {\n\t\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '--omit=dev', '@types/' + name )\n\t\t\t} catch (e) {\n\t\t\t\tif ($$.$mol_fail_catch(e)) {\n\t\t\t\t\t$$.$mol_fail_log(e)\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\t\n\t\ttry {\n\t\t\treturn target.require( name )\n\t\t} catch( error ) {\n\n\t\t\tif($.$mol_fail_catch(error) && ( error as any ).code === 'ERR_REQUIRE_ESM' ) {\n\t\t\t\tconst module = cache.get( name )\n\t\t\t\tif( module ) return module\n throw Object.assign(\n import( name ).then( module => cache.set( name, module ) ),\n { cause: error }\n )\n\t\t\t}\n\t\t\t\n\t\t\t$.$mol_fail_log( error )\n\n\t\t\treturn null\n\t\t}\n\n\t},\n\n\tset( target , name : string , value ) {\n\t\ttarget[ name ] = value\n\t\treturn true\n\t},\n\n} ) as $node\n\nconst cache = new Map< string, any >()\n\nrequire = ( req =>\n\tObject.assign( function require( name : string ) {\n\t\treturn $node[ name ]\n\t} , req )\n)( require )\n\n","namespace $ {\n\t\n\tconst named = new WeakSet< Function >()\n\t\n\texport function $mol_func_name( this : $ , func : Function ) : string {\n\t\t\n\t\tlet name = func.name\n\t\tif( name?.length > 1 ) return name\n\t\tif( named.has( func ) ) return name\n\n\t\tfor( let key in this ) {\n\t\t\ttry {\n\t\t\t\tif( (this as any)[ key ] !== func ) continue\n\t\t\t\tname = key\n\t\t\t\tObject.defineProperty( func , 'name' , { value : name } )\n\t\t\t\tbreak\n\t\t\t} catch {}\n\t\t}\n\n\t\tnamed.add( func )\n\t\treturn name\n\t\t\n\t}\n\n\texport function $mol_func_name_from< Target extends Function >( target : Target , source : Function ) {\n\t\tObject.defineProperty( target , 'name' , { value : source.name } )\n\t\treturn target\n\t}\n\n}\n","namespace $ {\n\n\tfunction cause_serialize(cause: unknown) {\n\t\treturn JSON.stringify( cause, null, ' ' )\n\t\t\t.replace(/\\(/,'<')\n\t\t\t.replace(/\\)/,' >')\n\t}\n\n\tfunction frame_normalize(frame: string | Object) {\n\t\treturn ( typeof frame === 'string' ? frame : cause_serialize(frame) )\n\t\t\t.trim()\n\t\t\t.replace( /at /gm, ' at ' )\n\t\t\t.replace( /^(?! +at )(.*)/gm, ' at | $1 (#)' )\n\t}\n\n\texport class $mol_error_mix< Cause extends {} = {} > extends AggregateError {\n\t\t\n\t\tname = $$.$mol_func_name( this.constructor ).replace( /^\\$/, '' ) + '_Error'\n\n\t\tconstructor(\n\t\t\tmessage: string,\n\t\t\treadonly cause = {} as Cause,\n\t\t\t... errors: readonly Error[]\n\t\t) {\n\t\t\t\n\t\t\tsuper( errors, message, { cause } )\n\t\t\t\n\t\t\tconst desc = Object.getOwnPropertyDescriptor( this, 'stack' )\n\t\t\tconst stack_get = ()=> desc?.get?.() ?? super.stack ?? desc?.value ?? this.message\n\t\t\t\n\t\t\tObject.defineProperty( this, 'stack', {\n\t\t\t\tget: ()=> stack_get() + '\\n' + [\n\t\t\t\t\t\tthis.cause ?? 'no cause',\n\t\t\t\t\t\t... this.errors.flatMap( e => [\n\t\t\t\t\t\t\tString( e.stack ),\n\t\t\t\t\t\t\t... e instanceof $mol_error_mix || ! e.cause ? [] : [ e.cause ]\n\t\t\t\t\t\t] )\n\t\t\t\t\t].map(frame_normalize).join('\\n')\n\t\t\t} )\n\n\t\t\t// в nodejs, что б не дублировалось cause в консоли\n\t\t\tObject.defineProperty(this, 'cause', {\n\t\t\t\tget: () => cause\n\t\t\t})\t\n\t\t}\n\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\treturn $$.$mol_func_name( this )\n\t\t}\n\n\t\tstatic make(\n\t\t\t...params: ConstructorParameters<typeof $mol_error_mix>\n\t\t) {\n\t\t\treturn new this(...params)\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\n\texport const $mol_ambient_ref : unique symbol = Symbol( '$mol_ambient_ref' )\n\n\t/** @deprecated use $ instead */\n\texport type $mol_ambient_context = $\n\n\texport function $mol_ambient( this : $ | void , overrides : Partial< $ > ) : $ {\n\t\treturn Object.setPrototypeOf( overrides , this || $ )\n\t}\n\n}\n","namespace $ {\n\n\tconst instances = new WeakSet< any >()\n\n\t/**\n\t * Proxy that delegates all to lazy returned target.\n\t * \n\t * \t$mol_delegate( Array.prototype , ()=> fetch_array() )\n\t */\n export function $mol_delegate< Value extends object >(\n\t\tproto : Value ,\n\t\ttarget : ()=> Value ,\n\t) {\n\n\t\tconst proxy = new Proxy( proto , {\n\n\t\t\tget: ( _ , field )=> {\n\t\t\t\tconst obj = target()\n\t\t\t\tlet val = Reflect.get( obj , field )\n\t\t\t\tif( typeof val === 'function' ) {\n\t\t\t\t\tval = val.bind( obj )\n\t\t\t\t} \n\t\t\t\treturn val\n\t\t\t},\n\t\t\thas: ( _ , field )=> Reflect.has( target(), field ),\n\t\t\tset: ( _ , field , value )=> Reflect.set( target() , field , value ),\n\t\t\t\n\t\t\tgetOwnPropertyDescriptor: ( _ , field )=> Reflect.getOwnPropertyDescriptor( target() , field ),\n\t\t\townKeys: ()=> Reflect.ownKeys( target() ),\n\t\t\t\n\t\t\tgetPrototypeOf: ()=> Reflect.getPrototypeOf( target() ),\n\t\t\tsetPrototypeOf: ( _ , donor )=> Reflect.setPrototypeOf( target() , donor ),\n\t\t\t\n\t\t\tisExtensible: ()=> Reflect.isExtensible( target() ),\n\t\t\tpreventExtensions: ()=> Reflect.preventExtensions( target() ),\n\t\t\t\n\t\t\tapply: ( _ , self , args )=> Reflect.apply( target() as Function , self , args ),\n\t\t\tconstruct: ( _ , args , retarget )=> Reflect.construct( target() as Function , args , retarget ),\n\t\t\t\n\t\t\tdefineProperty: ( _ , field , descr )=> Reflect.defineProperty( target() , field , descr ),\n\t\t\tdeleteProperty: ( _ , field )=> Reflect.deleteProperty( target() , field ),\n\n\t\t} )\n\n\t\tinstances.add( proxy )\n\n\t\treturn proxy\n\n\t}\n\n\tReflect.defineProperty(\n\t\t$mol_delegate ,\n\t\tSymbol.hasInstance ,\n\t\t{\n\t\t\tvalue : ( obj : object )=> instances.has( obj ),\n\t\t},\n\t)\n\n}\n","namespace $ {\n\n\texport const $mol_owning_map = new WeakMap< any , any >()\n\n\texport function $mol_owning_allow< Having >(\n\t\thaving : Having ,\n\t) : having is Having & {\n\t\tdestructor() : void\n\t} {\n\t\ttry {\n\t\t\tif( !having ) return false\n\t\t\tif( typeof having !== 'object' && typeof having !== 'function' ) return false\n\t\t\tif( having instanceof $mol_delegate ) return false\n\t\t\tif( typeof (having as any)['destructor'] !== 'function' ) return false\n\t\t\treturn true\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n\texport function $mol_owning_get< Having , Owner extends object >( having : Having , Owner? : { new() : Owner } ) : Owner | null {\n\t\n\t\tif( !$mol_owning_allow( having ) ) return null\n\n\t\twhile( true ) {\n\n\t\t\tconst owner = $mol_owning_map.get( having )\n\t\t\tif( !owner ) return owner\n\t\t\tif( !Owner ) return owner\n\t\t\t\n\t\t\tif( owner instanceof Owner ) return owner\n\n\t\t\thaving = owner\n\t\t}\n\n\t}\n\t\n\texport function $mol_owning_check< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) : having is Having & { destructor() : void } {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) !== owner ) return false\n\t\treturn true\n\t}\n\t\n\texport function $mol_owning_catch< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) ) return false\n\n\t\t$mol_owning_map.set( having , owner )\n\t\treturn true\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_object2 {\n\t\t\n\t\tstatic $ = $ as any as $\n\t\t\n\t\t[Symbol.toStringTag]!: string\n\n\t\t[ $mol_ambient_ref ] = null as any as $\n\t\tget $() {\n\t\t\tif( this[ $mol_ambient_ref ] ) return this[ $mol_ambient_ref ]\n\t\t\tconst owner = $mol_owning_get( this ) as any\n\t\t\treturn this[ $mol_ambient_ref ] = owner?.$ || (this.constructor as { $?: $ }).$ || $mol_object2.$ as $\n\t\t}\n\t\tset $( next : $ ) {\n\t\t\tif( this[ $mol_ambient_ref ] ) $mol_fail_hidden( new Error( 'Context already defined' ) )\n\t\t\tthis[ $mol_ambient_ref ] = next\n\t\t}\n\n\t\tpublic static create< Instance >(\n\t\t\tthis : new( init? : ( instance : any )=> void )=> Instance ,\n\t\t\tinit? : ( instance : $mol_type_writable<Instance> )=> void\n\t\t) : Instance {\n\t\t\tconst obj = new this\n\t\t\tif( init ) init( obj )\n\t\t\treturn obj\n\t\t}\n\t\t\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\treturn ( this as any )[ Symbol.toStringTag ] || this.$.$mol_func_name( this )\n\t\t}\n\t\t\n\t\tstatic toJSON() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tdestructor() { }\n\t\tstatic destructor() { }\n\t\t\n\t\t//[ Symbol.toPrimitive ]( hint: string ) {\n\t\t//\treturn hint === 'number' ? this.valueOf() : this.toString()\n\t\t//}\n\t\t\n\t\ttoString(): string {\n\t\t\treturn this[ Symbol.toStringTag ] || this.constructor.name + '<>'\n\t\t}\n\t\t\n\t\t// toJSON(): any {\n\t\t// \treturn this.toString()\n\t\t// }\n\n\t}\n}\n","namespace $ {\n\n\texport namespace $$ { let $ }\n\n\texport const $mol_object_field = Symbol( '$mol_object_field' )\n\t\n\texport class $mol_object extends $mol_object2 {\n\t\t\n\t\tpublic static make< This extends typeof $mol_object >(\n\t\t\tthis: This,\n\t\t\tconfig: Partial< InstanceType< This > >,\n\t\t) {\n\t\t\treturn super.create( obj => {\n\t\t\t\tfor( let key in config ) ( obj as any )[ key ] = config[ key ]!\n\t\t\t} ) as InstanceType< This >\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\texport function $mol_env() {\n\t\treturn {} as Record< string, string | undefined >\n\t}\n}\n","namespace $ {\n\t$.$mol_env = function $mol_env() {\n\t\treturn this.process.env\n\t}\n}\n","namespace $ {\n\n\t/** Generates unique identifier. */\n\texport function $mol_guid(\n\t\tlength = 8,\n\t\texists: ( id: string )=> boolean = ()=> false,\n\t) {\n\n\t\tfor(;;) {\n\n\t\t\tlet id = Math.random().toString( 36 ).substring( 2, length + 2 ).toUpperCase()\n\t\t\tif( exists( id ) ) continue\n\t\t\t\n\t\t\treturn id\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Special status statuses. */\n\texport enum $mol_wire_cursor {\n\t\t\n\t\t/** Update required. */\n\t\tstale = -1,\n\t\t\n\t\t/** Some of (transitive) pub update required. */\n\t\tdoubt = -2,\n\t\t\n\t\t/** Actual state but may be dropped. */\n\t\tfresh = -3,\n\t\t\n\t\t/** State will never be changed. */\n\t\tfinal = -4,\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Collects subscribers in compact array. 28B\n\t */\n\texport class $mol_wire_pub extends Object {\n\t\t\n\t\tconstructor( id = `$mol_wire_pub:${ $mol_guid() }` ) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = id\n\t\t}\n\t\t\n\t\t[ Symbol.toStringTag ]!: string\n\t\tdata = [] as unknown[]\n\t\t\n\t\t// Derived objects should be Arrays.\n\t\tstatic get [ Symbol.species ]() {\n\t\t\treturn Array\n\t\t}\n\t\t\n\t\t/**\n\t\t * Index of first subscriber.\n\t\t */\n\t\tprotected sub_from = 0 // 4B\n\t\t\n\t\t/**\n\t\t * All current subscribers.\n\t\t */\n\t\tget sub_list() {\n\t\t\tconst res = [] as $mol_wire_sub[]\n\t\t\tfor( let i = this.sub_from; i < this.data.length; i += 2 ) {\n\t\t\t\tres.push( this.data[i] as $mol_wire_sub )\n\t\t\t}\n\t\t\treturn res as readonly $mol_wire_sub[]\n\t\t}\n\t\t\n\t\t/**\n\t\t * Has any subscribers or not.\n\t\t */\n\t\tget sub_empty() {\n\t\t\treturn this.sub_from === this.data.length\n\t\t}\n\t\t\n\t\t/**\n\t\t * Subscribe subscriber to this publisher events and return position of subscriber that required to unsubscribe.\n\t\t */\n\t\tsub_on( sub: $mol_wire_pub, pub_pos: number ) {\n\t\t\tconst pos = this.data.length\n\t\t\tthis.data.push( sub, pub_pos )\n\t\t\treturn pos\n\t\t}\n\t\t\n\t\t/**\n\t\t * Unsubscribe subscriber from this publisher events by subscriber position provided by `on(pub)`.\n\t\t */\n\t\tsub_off( sub_pos: number ) {\n\t\t\t\n\t\t\tif(!( sub_pos < this.data.length )) {\n\t\t\t\t$mol_fail( new Error( `Wrong pos ${ sub_pos }` ) )\n\t\t\t}\n\t\t\t\n\t\t\tconst end = this.data.length - 2\n\t\t\tif( sub_pos !== end ) {\n\t\t\t\tthis.peer_move( end, sub_pos )\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = end\n\t\t\t\n\t\t\tif( end === this.sub_from ) this.reap()\n\t\t\t\n\t\t}\n\t\t\n\t\t/**\n\t\t * Called when last sub was unsubscribed.\n\t\t **/\n\t\treap() { }\n\t\t\n\t\t/**\n\t\t * Autowire this publisher with current subscriber.\n\t\t **/\n\t\tpromote() {\n\t\t\t$mol_wire_auto()?.track_next( this )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Enforce actualization. Should not throw errors.\n\t\t */\n\t\tfresh() {}\n\t\t\n\t\t/**\n\t\t * Allow to put data to caches in the subtree.\n\t\t */\n\t\tcomplete() {}\n\t\t\n\t\tget incompleted() {\n\t\t\treturn false\n\t\t}\n\t\t\n\t\t/**\n\t\t * Notify subscribers about self changes.\n\t\t */\n\t\temit( quant = $mol_wire_cursor.stale ) {\n\t\t\tfor( let i = this.sub_from; i < this.data.length; i += 2 ) {\n\t\t\t\t;( this.data[i] as $mol_wire_sub ).absorb( quant, this.data[ i + 1 ] as number )\n\t\t\t}\n\t\t}\n\t\t\n\t\t/**\n\t\t * Moves peer from one position to another. Doesn't clear data at old position!\n\t\t */\n\t\tpeer_move( from_pos: number, to_pos: number ) {\n\t\t\t\n\t\t\tconst peer = this.data[ from_pos ] as $mol_wire_pub\n\t\t\tconst self_pos = this.data[ from_pos + 1 ] as number\n\t\t\t\n\t\t\tthis.data[ to_pos ] = peer\n\t\t\tthis.data[ to_pos + 1 ] = self_pos\n\t\t\t\n\t\t\tpeer.peer_repos( self_pos, to_pos )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Updates self position in the peer.\n\t\t */\n\t\tpeer_repos( peer_pos: number, self_pos: number ) {\n\t\t\tthis.data[ peer_pos + 1 ] = self_pos\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport let $mol_wire_auto_sub: $mol_wire_sub | null = null\n\t\n\t/**\n\t * When fulfilled, all publishers are promoted to this subscriber on access to its.\n\t */\n\texport function $mol_wire_auto( next = $mol_wire_auto_sub ) {\n\t\treturn $mol_wire_auto_sub = next\n\t}\n\t\n\t/**\n\t * Affection queue. Used to prevent accidental stack overflow on emit.\n\t */\n\texport const $mol_wire_affected = [] as ( $mol_wire_sub | number )[]\n\t\n}\n","namespace $ {\n\n\t// https://docs.google.com/document/d/1FTascZXT9cxfetuPRT2eXPQKXui4nWFivUnS_335T3U/preview#\n\t($ as any)['devtoolsFormatters'] ||= []\n\n\texport function $mol_dev_format_register( config : {\n\t\theader : ( val : any , config : any )=> any\n\t\thasBody : ( val : any , config : any )=> false\n\t} | {\n\t\theader : ( val : any , config : any )=> any\n\t\thasBody : ( val : any , config : any )=> boolean\n\t\tbody : ( val : any , config : any )=> any\n\t} ) {\n\t\t($ as any)['devtoolsFormatters'].push( config )\n\t}\n\n\texport const $mol_dev_format_head = Symbol( '$mol_dev_format_head' )\n\texport const $mol_dev_format_body = Symbol( '$mol_dev_format_body' )\n\t\n\tfunction $mol_dev_format_button( label: any, click: ()=> any ) {\n\t\treturn $mol_dev_format_auto( {\n\t\t\t[ $mol_dev_format_head ]() {\n\t\t\t\treturn $mol_dev_format_span( { color: 'cornflowerblue' }, label )\n\t\t\t},\n\t\t\t[ $mol_dev_format_body ]() {\n\t\t\t\tPromise.resolve().then( click )\n\t\t\t\treturn $mol_dev_format_span({})\n\t\t\t}\n\t\t} )\n\t}\n\n\t$mol_dev_format_register({\n\n\t\theader : ( val : any , config = false ) => {\n\t\t\t\n\t\t\tif( config ) return null\n\n\t\t\tif( !val ) return null\n\t\t\t\n\t\t\tif( $mol_dev_format_head in val ) {\n\t\t\t\ttry {\n\t\t\t\t\treturn val[ $mol_dev_format_head ]()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\treturn $mol_dev_format_accent( $mol_dev_format_native( val ), '💨', $mol_dev_format_native( error ), '' )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif( typeof val === 'function' ) {\n\t\t\t\treturn $mol_dev_format_native( val )\n\t\t\t}\n\t\t\t\n\t\t\tif( val instanceof Error ) {\n\t\t\t\t\n\t\t\t\treturn $mol_dev_format_span( {},\n\t\t\t\t\t$mol_dev_format_native( val ),\n\t\t\t\t\t' ',\n\t\t\t\t\t$mol_dev_format_button( 'throw', ()=> $mol_fail_hidden( val ) ),\n\t\t\t\t)\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( val instanceof Promise ) {\n\t\t\t\treturn $mol_dev_format_shade(\n\t\t\t\t\t$mol_dev_format_native( val ),\n\t\t\t\t\t' ',\n\t\t\t\t\tval[ Symbol.toStringTag ] ?? '',\n\t\t\t\t)\n\t\t\t}\n\t\t\t\n\t\t\tif( Symbol.toStringTag in val ) {\n\t\t\t\treturn $mol_dev_format_native( val )\n\t\t\t}\n\t\t\t\n\t\t\treturn null\n\t\t\t\n\t\t} ,\n\t\t\n\t\thasBody : ( val: any , config = false )=> {\n\t\t\t\n\t\t\tif( config ) return false\n\t\t\tif( !val ) return false\n\t\t\t\n\t\t\t// if( Error.isError( val ) ) true\n\t\t\tif( val[ $mol_dev_format_body ] ) return true\n\t\t\t\n\t\t\treturn false\n\t\t},\n\n\t\tbody : ( val: any , config = false )=> {\n\t\t\t\n\t\t\tif( config ) return null\n\n\t\t\tif( !val ) return null\n\t\t\t\n\t\t\tif( $mol_dev_format_body in val ) {\n\t\t\t\ttry {\n\t\t\t\t\treturn val[ $mol_dev_format_body ]()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\treturn $mol_dev_format_accent( $mol_dev_format_native( val ), '💨', $mol_dev_format_native( error ), '' )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// if( Error.isError( val ) ) {\n\t\t\t// \treturn $mol_dev_format_native( val )\n\t\t\t// }\n\t\t\t\n\t\t\treturn null\n\t\t},\n\n\t})\n\n\texport function $mol_dev_format_native( obj : any ) {\n\t\t\n\t\tif( typeof obj === 'undefined' ) return $mol_dev_format_shade( 'undefined' )\n\t\t\n\t\t// if( ![ 'object', 'function', 'symbol' ].includes( typeof obj ) ) return obj\n\n\t\treturn [\n\t\t\t'object' ,\n\t\t\t{\n\t\t\t\tobject : obj ,\n\t\t\t\tconfig : true ,\n\t\t\t} ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_auto( obj : any ) {\n\t\t\n\t\tif( obj == null ) return $mol_dev_format_shade( String( obj ) )\n\n\t\treturn [\n\t\t\t'object' ,\n\t\t\t{\n\t\t\t\tobject : obj ,\n\t\t\t\tconfig : false ,\n\t\t\t} ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_element( element : string , style : object , ...content : any[] ) {\n\t\t\t\n\t\tconst styles = [] as string[]\n\t\t\n\t\tfor( let key in style ) styles.push( `${ key } : ${ (style as any)[key] }` )\n\t\t\n\t\treturn [\n\t\t\telement ,\n\t\t\t{\n\t\t\t\tstyle : styles.join( ' ; ' ) ,\n\t\t\t} ,\n\t\t\t... content ,\n\t\t]\n\n\t}\n\n\texport let $mol_dev_format_span = $mol_dev_format_element.bind( null , 'span' )\n\texport let $mol_dev_format_div = $mol_dev_format_element.bind( null , 'div' )\n\texport let $mol_dev_format_ol = $mol_dev_format_element.bind( null , 'ol' )\n\texport let $mol_dev_format_li = $mol_dev_format_element.bind( null , 'li' )\n\texport let $mol_dev_format_table = $mol_dev_format_element.bind( null , 'table' )\n\texport let $mol_dev_format_tr = $mol_dev_format_element.bind( null , 'tr' )\n\texport let $mol_dev_format_td = $mol_dev_format_element.bind( null , 'td' )\n\n\texport let $mol_dev_format_accent = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'magenta' ,\n\t} )\n\n\texport let $mol_dev_format_strong = $mol_dev_format_span.bind( null , {\n\t\t'font-weight' : 'bold' ,\n\t} )\n\n\texport let $mol_dev_format_string = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'green',\n\t} )\n\n\texport let $mol_dev_format_shade = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'gray',\n\t} )\n\n\texport let $mol_dev_format_indent = $mol_dev_format_div.bind( null , {\n\t\t'margin-left': '13px'\n\t} )\n\t\n\tclass Stack extends Array< Call > {\n\t\t\n\t\t// [ Symbol.toPrimitive ]() {\n\t\t// \treturn this.toString()\n\t\t// }\n\t\t\n\t\ttoString() {\n\t\t\treturn this.join( '\\n' )\n\t\t}\n\t\t\n\t}\n\t\n\tclass Call extends Object {\n\t\t\n\t\treadonly type: string\n\t\treadonly function: string\n\t\treadonly method: string\n\t\treadonly eval: string\n\t\treadonly source: string\n\t\treadonly offset: number\n\t\treadonly pos: [ number, number ]\n\t\treadonly object: unknown\n\t\treadonly flags: readonly string[]\n\t\t[ Symbol.toStringTag ]!: string\n\t\t\n\t\tconstructor( call: NodeJS.CallSite ) {\n\t\t\tsuper()\n\t\t\t\n\t\t\tthis.type = call.getTypeName() ?? ''\n\t\t\tthis.function = call.getFunctionName() ?? ''\n\t\t\tthis.method = call.getMethodName() ?? ''\n\t\t\tif( this.method === this.function ) this.method = ''\n\t\t\t// const func = c.getFunction()\n\t\t\tthis.pos = [ call.getEnclosingLineNumber() ?? 0, call.getEnclosingColumnNumber() ?? 0 ]\n\t\t\tthis.eval = call.getEvalOrigin() ?? ''\n\t\t\tthis.source = call.getScriptNameOrSourceURL() ?? ''\n\t\t\tthis.object = call.getThis()\n\t\t\tthis.offset = call.getPosition()\n\t\t\t\n\t\t\tconst flags = []\n\t\t\tif( call.isAsync() ) flags.push( 'async' )\n\t\t\tif( call.isConstructor() ) flags.push( 'constructor' )\n\t\t\tif( call.isEval() ) flags.push( 'eval' )\n\t\t\tif( call.isNative() ) flags.push( 'native' )\n\t\t\tif( call.isPromiseAll() ) flags.push( 'PromiseAll' )\n\t\t\tif( call.isToplevel() ) flags.push( 'top' )\n\t\t\tthis.flags = flags\n\t\t\n\t\t\tconst type = this.type ? this.type + '.' : ''\n\t\t\tconst func = this.function || '<anon>'\n\t\t\tconst method = this.method ? ' [' + this.method + '] ' : ''\n\t\t\t\n\t\t\tthis[ Symbol.toStringTag ] = `${type}${func}${method}`\n\t\t}\n\t\t\n\t\t[ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\tconst object = this.object || ''\n\t\t\tconst label = this[ Symbol.toStringTag ]\n\t\t\tconst source = `${ this.source }:${ this.pos.join( ':' ) } #${ this.offset }`\n\t\t\treturn `\\tat ${object}${label} (${source})`\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_div( {},\n\t\t\t\t$mol_dev_format_native( this ),\n\t\t\t\t$mol_dev_format_shade( ' ' ),\n\t\t\t\t... this.object ? [\n\t\t\t\t\t$mol_dev_format_native( this.object ),\n\t\t\t\t] : [],\n\t\t\t\t... this.method ? [ $mol_dev_format_shade( ' ',\n\t\t\t\t\t' [',\n\t\t\t\t\tthis.method,\n\t\t\t\t\t']',\n\t\t\t\t) ] : [],\n\t\t\t\t$mol_dev_format_shade( ' ', this.flags.join( ', ' ) ),\n\t\t\t)\n\t\t}\n\n\t}\n\t\n\tError.prepareStackTrace ??= ( error: Error, stack: NodeJS.CallSite[] )=> new Stack( ... stack.map( call => new Call( call ) ) )\n\n}\n","namespace $ {\n\t\n\t/**\n\t * Publisher that can auto collect other publishers. 32B\n\t * \n\t * \tP1 P2 P3 P4 S1 S2 S3\n\t * \t^ ^\n\t * \tpubs_from subs_from\n\t */\n\texport class $mol_wire_pub_sub extends $mol_wire_pub implements $mol_wire_sub {\n\t\t\n\t\tprotected pub_from = 0 // 4B\n\t\tprotected cursor = $mol_wire_cursor.stale // 4B\n\t\t\n\t\tget temp() {\n\t\t\treturn false\n\t\t}\n\t\t\n\t\tget pub_list() {\n\t\t\tconst res = [] as $mol_wire_pub[]\n\t\t\tconst max = this.cursor >=0 ? this.cursor : this.sub_from\n\t\t\tfor( let i = this.pub_from; i < max; i += 2 ) {\n\t\t\t\tif( this.data[i] ) res.push( this.data[i] as $mol_wire_pub )\n\t\t\t}\n\t\t\treturn res\n\t\t}\n\t\t\n\t\ttrack_on() {\n\t\t\tthis.cursor = this.pub_from\n\t\t\tconst sub = $mol_wire_auto()\n\t\t\t$mol_wire_auto( this )\n\t\t\treturn sub\n\t\t}\n\t\t\n\t\tpromote() {\n\t\t\t\n\t\t\tif( this.cursor >= this.pub_from ) {\n\t\t\t\t$mol_fail( new Error( 'Circular subscription' ) )\n\t\t\t}\n\t\t\t\n\t\t\tsuper.promote()\n\t\t}\n\t\t\n\t\ttrack_next( pub?: $mol_wire_pub ): $mol_wire_pub | null {\n\t\t\t\n\t\t\tif( this.cursor < 0 ) $mol_fail( new Error( 'Promo to non begun sub' ) )\n\t\t\t\n\t\t\tif( this.cursor < this.sub_from ) {\n\t\t\t\n \t\t\t\tconst next = this.data[ this.cursor ] as $mol_wire_pub | undefined\n\t\t\t\tif( pub === undefined ) return next ?? null\n\t\t\t\t\n\t\t\t\tif( next === pub ) {\n\t\t\t\t\tthis.cursor += 2\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( next ) {\n\t\t\t\t\t\n\t\t\t\t\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\t\tthis.peer_move( this.sub_from, this.data.length )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis.peer_move( this.cursor, this.sub_from )\n\t\t\t\t\tthis.sub_from += 2\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( pub === undefined ) return null\n\t\t\t\t\n\t\t\t\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\tthis.peer_move( this.sub_from, this.data.length )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.sub_from += 2\n\t\t\t\t\n\t\t\t}\t\t\t\n\t\t\t\n\t\t\tthis.data[ this.cursor ] = pub\n\t\t\tthis.data[ this.cursor + 1 ] = pub.sub_on( this, this.cursor )\n\t\t\t\n\t\t\tthis.cursor += 2\n\t\t\t\n\t\t\treturn pub\n\t\t}\n\t\t\n\t\ttrack_off( sub: $mol_wire_sub | null ) {\n\t\t\t\n\t\t\t$mol_wire_auto( sub )\n\t\t\t\n\t\t\tif( this.cursor < 0 ) {\n\t\t\t\t$mol_fail( new Error( 'End of non begun sub' ) )\n\t\t\t}\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < this.cursor;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tpub.fresh()\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\n\t\t}\n\t\t\n\t\tpub_off( sub_pos: number ) {\n\t\t\tthis.data[ sub_pos ] = undefined as any\n\t\t\tthis.data[ sub_pos + 1 ] = undefined as any \n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.data.length - 2;\n\t\t\t\tcursor >= this.sub_from;\n\t\t\t\tcursor -= 2\n\t\t\t) {\n\t\t\t\tconst sub = this.data[ cursor ] as $mol_wire_sub\n\t\t\t\tconst pos = this.data[ cursor + 1 ] as number\n\t\t\t\tsub.pub_off( pos )\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = this.sub_from \n\t\t\tthis.cursor = this.pub_from\n\t\t\tthis.track_cut()\n\t\t\tthis.cursor = $mol_wire_cursor.stale\n\t\t\t\n\t\t}\n\t\t\n\t\ttrack_cut() {\n\t\t\t\n\t\t\tif( this.cursor < this.pub_from ) {\n\t\t\t\t$mol_fail( new Error( 'Cut of non begun sub' ) )\n\t\t\t}\n\t\t\t\n\t\t\tlet end = this.data.length\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.cursor;\n\t\t\t\tcursor < this.sub_from;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\t\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub | undefined\n\t\t\t\tpub?.sub_off( this.data[ cursor + 1 ] as number )\n\t\t\t\t\n\t\t\t\tend -= 2\n\t\t\t\tif( this.sub_from <= end ) this.peer_move( end, cursor )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = end\n\t\t\t\n\t\t\tthis.sub_from = this.cursor\n\t\t\t\n\t\t}\n\t\t\n\t\tcomplete() { }\n\t\t\n\t\tcomplete_pubs() {\n\t\t\t\n\t\t\tconst limit = this.cursor < 0 ? this.sub_from : this.cursor \n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < limit;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tif( pub?.incompleted ) return \n\t\t\t}\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < limit;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tpub?.complete()\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tabsorb( quant = $mol_wire_cursor.stale, pos = -1 ) {\n\t\t\t\n\t\t\tif( this.cursor === $mol_wire_cursor.final ) return\n\t\t\tif( this.cursor >= quant ) return\n\t\t\t\n\t\t\tthis.cursor = quant\n\t\t\tthis.emit( $mol_wire_cursor.doubt )\n\t\t\t\n\t\t\t// if( pos >= 0 && pos < this.sub_from - 2 ) {\n\t\t\t\t\n\t\t\t// \tconst pub = this.data[ pos ] as $mol_wire_pub\n\t\t\t// \tif( pub instanceof $mol_wire_task ) return\n\t\t\t\t\n\t\t\t// \tfor(\n\t\t\t// \t\tlet cursor = this.pub_from;\n\t\t\t// \t\tcursor < this.sub_from;\n\t\t\t// \t\tcursor += 2\n\t\t\t// \t) {\n\t\t\t\t\t\n\t\t\t// \t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\t\t\n\t\t\t// \t\tif( pub instanceof $mol_wire_task ) {\n\t\t\t// \t\t\tpub.destructor()\n\t\t\t// \t\t}\n\t\t\t\t\t\n\t\t\t// \t}\n\t\t\t\t\n\t\t\t// }\n\t\t\t\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_native( this )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Is subscribed to any publisher or not.\n\t\t */\n\t\tget pub_empty() {\n\t\t\treturn this.sub_from === this.pub_from\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_tick extends $mol_object2 {\n\n\t\tstatic promise = null as Promise<void> | null\n\t\tcancelled = false\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\t\n\t\t\tif( !$mol_after_tick.promise ) $mol_after_tick.promise = Promise.resolve().then( ()=> {\n\t\t\t\t$mol_after_tick.promise = null\n\t\t\t} )\n\t\t\t\n\t\t\t$mol_after_tick.promise.then( ()=> {\n\t\t\t\tif( this.cancelled ) return\n\t\t\t\ttask()\n\t\t\t} )\n\t\t\t\n\t\t}\n\n\t\tdestructor() {\n\t\t\tthis.cancelled = true\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\tconst wrappers = new WeakMap< Promise< unknown >, Promise< any > >()\n\t\n\t/**\n\t * Suspendable task with support both sync/async api.\n\t * \n\t * \tA1 A2 A3 A4 P1 P2 P3 P4 S1 S2 S3\n\t * \t^ ^ ^\n\t * \targs_from pubs_from subs_from\n\t **/\n\texport abstract class $mol_wire_fiber<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_pub_sub {\n\t\n\t\tstatic warm = true\n\t\t\n\t\tstatic planning = new Set< $mol_wire_fiber< any, any, any > >()\n\t\tstatic reaping = new Set< $mol_wire_fiber< any, any, any > >()\n\t\t\n\t\tstatic plan_task: $mol_after_tick | null = null\n\t\tstatic plan() {\n\t\t\t\n\t\t\tif( this.plan_task ) return\n\t\t\t\n\t\t\tthis.plan_task = new $mol_after_tick( ()=> {\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tthis.sync()\n\t\t\t\t} finally {\n\t\t\t\t\t$mol_wire_fiber.plan_task = null\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t\n\t\t}\n\t\t\n\t\tstatic sync() {\n\t\t\t\n\t\t\t// Sync whole fiber graph\n\t\t\twhile( this.planning.size ) {\n\t\t\t\tfor( const fiber of this.planning ) {\n\t\t\t\t\tthis.planning.delete( fiber )\n\t\t\t\t\tif( fiber.cursor >= 0 ) continue\n\t\t\t\t\tif( fiber.cursor === $mol_wire_cursor.final ) continue\n\t\t\t\t\tfiber.fresh()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// Collect garbage\n\t\t\twhile( this.reaping.size ) {\n\t\t\t\t\n\t\t\t\tconst fibers = this.reaping\n\t\t\t\tthis.reaping = new Set\n\t\t\t\t\n\t\t\t\tfor( const fiber of fibers ) {\n\t\t\t\t\tif( !fiber.sub_empty ) continue\n\t\t\t\t\tfiber.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tpublic cache: Result | Error | Promise< Result | Error > = undefined as any\n\t\t\n\t\tget args() {\n\t\t\treturn this.data.slice( 0 , this.pub_from ) as any as Args\n\t\t}\n\t\t\n\t\tresult() {\n\t\t\tif( $mol_promise_like( this.cache ) ) return\n\t\t\tif( this.cache instanceof Error ) return\n\t\t\treturn this.cache\n\t\t}\n\t\t\n\t\tget incompleted() {\n\t\t\treturn $mol_promise_like( this.cache )\n\t\t}\n\t\t\n\t\tfield() {\n\t\t\treturn this.task.name + '()'\n\t\t}\n\t\t\n\t\tconstructor(\n\t\t\tid: string,\n\t\t\treadonly task: ( this : Host , ... args : Args )=> Result,\n\t\t\treadonly host?: Host,\n\t\t\targs?: Args\n\t\t) {\n\t\t\t\n\t\t\tsuper( id )\n\t\t\tif( args ) this.data.push( ... args )\n\t\t\tthis.pub_from = this.sub_from = args?.length ?? 0\n\t\t\t\n\t\t}\n\t\t\n\t\tplan() {\n\t\t\t$mol_wire_fiber.planning.add( this )\n\t\t\t$mol_wire_fiber.plan()\n\t\t\treturn this\n\t\t}\n\t\t\n\t\treap() {\n\t\t\t$mol_wire_fiber.reaping.add( this )\n\t\t\t$mol_wire_fiber.plan()\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\t\n\t\t\tconst cursor = {\n\t\t\t\t[ $mol_wire_cursor.stale ]: '🔴',\n\t\t\t\t[ $mol_wire_cursor.doubt ]: '🟡',\n\t\t\t\t[ $mol_wire_cursor.fresh ]: '🟢',\n\t\t\t\t[ $mol_wire_cursor.final ]: '🔵',\n\t\t\t}[ this.cursor ] ?? this.cursor.toString()\n\t\t\t\n\t\t\treturn $mol_dev_format_div( {},\n\t\t\t\t$mol_owning_check( this, this.cache )\n\t\t\t\t\t? $mol_dev_format_shade( cursor )\n\t\t\t\t\t: $mol_dev_format_shade( this[ Symbol.toStringTag ], cursor ),\n\t\t\t\t$mol_dev_format_auto( this.cache ),\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t[ $mol_dev_format_body ]() { return null }\n\t\t\n\t\tget $() {\n\t\t\treturn ( this.host ?? this.task as any )['$']\n\t\t}\n\t\t\n\t\temit( quant = $mol_wire_cursor.stale ) {\n\t\t\tif( this.sub_empty ) this.plan()\n\t\t\telse super.emit( quant )\n\t\t}\n\t\t\n\t\tfresh() {\n\n\t\t\ttype Result = typeof this.cache\n\t\t\t\n\t\t\tif( this.cursor === $mol_wire_cursor.fresh ) return\n\t\t\tif( this.cursor === $mol_wire_cursor.final ) return\n\t\t\t\n\t\t\tcheck: if( this.cursor === $mol_wire_cursor.doubt ) {\n\t\t\t\t\n\t\t\t\tfor( let i = this.pub_from ; i < this.sub_from; i += 2 ) {\n\t\t\t\t\t;( this.data[i] as $mol_wire_pub )?.fresh()\n\t\t\t\t\tif( this.cursor !== $mol_wire_cursor.doubt ) break check\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\treturn\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst bu = this.track_on()\n\t\t\tlet result: typeof this.cache\n\n\t\t\ttry {\n\n\t\t\t\tswitch( this.pub_from ) {\n\t\t\t\t\tcase 0: result = (this.task as any).call( this.host! ); break\n\t\t\t\t\tcase 1: result = (this.task as any).call( this.host!, this.data[0] ); break\n\t\t\t\t\tdefault: result = (this.task as any).call( this.host!, ... this.args ); break\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( result ) ) {\n\n\t\t\t\t\tif( wrappers.has( result ) ) {\n\t\t\t\t\t\tresult = wrappers.get( result )!.then(a=>a)\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst put = ( res: Result )=> {\n\t\t\t\t\t\t\tif( this.cache === result ) this.put( res )\n\t\t\t\t\t\t\treturn res\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twrappers.set( result, result = Object.assign(\n\t\t\t\t\t\t\tresult.then( put, put ),\n\t\t\t\t\t\t\t{ destructor: ( result as any ).destructor || (()=> {}) }\n\t\t\t\t\t\t) )\n\t\t\t\t\t\twrappers.set( result, result )\n\n\t\t\t\t\t\tconst error = new Error( `Promise in ${ this }` )\n\t\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t\n\t\t\t\tif( error instanceof Error || $mol_promise_like( error ) ) {\n\t\t\t\t\tresult = error\n\t\t\t\t} else {\n\t\t\t\t\tresult = new Error( String( error ), { cause: error } )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( result ) ) {\n\t\t\t\t\t\n\t\t\t\t\tif( wrappers.has( result ) ) {\n\t\t\t\t\t\tresult = wrappers.get( result )!\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst put = ( v: any )=> {\n\t\t\t\t\t\t\tif( this.cache === result ) this.absorb()\n\t\t\t\t\t\t\treturn v\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\twrappers.set( result, result = Object.assign(\n\t\t\t\t\t\t\tresult.then( put, put ),\n\t\t\t\t\t\t\t{ destructor: ( result as any ).destructor || (()=> {}) }\n\t\t\t\t\t\t) )\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst error = new Error( `Promise in ${ this }` )\n\t\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( ! $mol_promise_like( result ) ) {\n\t\t\t\tthis.track_cut()\n\t\t\t}\n\t\t\t\n\t\t\tthis.track_off( bu )\n\t\t\tthis.put( result )\n\t\t\t\n\t\t\treturn this\n\t\t}\n\t\t\n\t\trefresh() {\n\t\t\tthis.cursor = $mol_wire_cursor.stale\n\t\t\tthis.fresh()\n\t\t}\n\t\t\n\t\tabstract put( next: Result | Error | Promise< Result | Error > ): Result | Error | Promise< Result | Error >\n\t\t\n\t\t/**\n\t\t * Synchronous execution. Throws Promise when waits async task (SuspenseAPI provider).\n\t\t * Should be called inside SuspenseAPI consumer (ie fiber).\n\t\t */\n\t\tsync() {\n\t\t\t\n\t\t\tif( !$mol_wire_fiber.warm ) {\n\t\t\t\treturn this.result() as Awaited< Result >\n\t\t\t}\n\t\t\t\n\t\t\tthis.promote()\n\t\t\tthis.fresh()\n\t\t\t\n\t\t\tif( this.cache instanceof Error ) {\n\t\t\t\treturn $mol_fail_hidden( this.cache )\n\t\t\t}\n\t\t\t\n\t\t\tif( $mol_promise_like( this.cache ) ) {\n\t\t\t\treturn $mol_fail_hidden( this.cache )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.cache as Awaited< Result >\n\t\t}\n\n\t\t/**\n\t\t * Asynchronous execution.\n\t\t * It's SuspenseAPI consumer. So SuspenseAPI providers can be called inside.\n\t\t */\n\t\tasync async_raw() {\n\t\t\t\n\t\t\twhile( true ) {\n\t\t\t\t\n\t\t\t\tthis.fresh()\n\t\t\t\t\n\t\t\t\tif( this.cache instanceof Error ) {\n\t\t\t\t\t$mol_fail_hidden( this.cache )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( ! $mol_promise_like( this.cache ) ) return this.cache\n\t\t\t\t\t\n\t\t\t\tawait Promise.race([ this.cache, this.step() ])\n\t\t\t\tif( ! $mol_promise_like( this.cache ) ) return this.cache\n\t\t\t\t\t\n\t\t\t\tif( this.cursor === $mol_wire_cursor.final ) {\n\t\t\t\t\t// never ends on destructed fiber\n\t\t\t\t\tawait new Promise( ()=> {} )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tasync() {\n\t\t\tconst promise = this.async_raw() as Promise<Result> & { destructor(): void }\n\n\t\t\tif (! promise.destructor) promise.destructor = () => this.destructor()\n\n\t\t\treturn promise\n\t\t}\n\t\t\n\t\tstep() {\n\t\t\treturn new Promise< null >( done => {\n\t\t\t\tconst sub = new $mol_wire_pub_sub\n\t\t\t\tconst prev = sub.track_on()\n\t\t\t\tsub.track_next( this )\n\t\t\t\tsub.track_off( prev )\n\t\t\t\tsub.absorb = ()=> {\n\t\t\t\t\tdone( null )\n\t\t\t\t\tsetTimeout( ()=> sub.destructor() )\n\t\t\t\t}\n\t\t\t} )\n\t\t}\n\n\t\tdestructor() {\n\t\t\t\n\t\t\tsuper.destructor()\n\t\t\t\n\t\t\t$mol_wire_fiber.planning.delete( this )\n\t\t\t\n\t\t\tif( ! $mol_owning_check( this, this.cache ) ) return\n\n\t\t\ttry {\n\t\t\t\tthis.cache.destructor()\n\t\t\t} catch (result) {\n\t\t\t\tif ($mol_promise_like(result)) {\n\t\t\t\t\tconst error = new Error( `Promise in ${ this }.destructor()` )\n\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\t\t\t\t}\n\n\t\t\t\t$mol_fail_hidden(result)\n\t\t\t}\n\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport let $mol_compare_deep_cache = new WeakMap< any , WeakMap< any , boolean > >()\n\t\n\t/**\n\t * Deeply compares two values. Returns true if equal.\n\t * Define `Symbol.toPrimitive` to customize.\n\t */\n\texport function $mol_compare_deep< Value >( left: Value, right: Value ): boolean {\n\n\t\tif( Object.is( left , right ) ) return true\n\n\t\tif( left === null ) return false\n\t\tif( right === null ) return false\n\n\t\tif( typeof left !== 'object' ) return false\n\t\tif( typeof right !== 'object' ) return false\n\n\t\tconst left_proto = Reflect.getPrototypeOf( left as any )\n\t\tconst right_proto = Reflect.getPrototypeOf( right as any )\n\t\t\n\t\tif( left_proto !== right_proto ) return false\n\n\t\tif( left instanceof Boolean ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof Number ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof String ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof Date ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof RegExp ) return left.source === (right as any).source && left.flags === (right as any).flags\n\t\tif( left instanceof Error ) return left.message === (right as any).message && $mol_compare_deep( left.stack, (right as any).stack )\n\n\t\tlet left_cache = $mol_compare_deep_cache.get( left )\n\t\tif( left_cache ) {\n\n\t\t\tconst right_cache = left_cache.get( right )\n\t\t\tif( typeof right_cache === 'boolean' ) return right_cache\n\n\t\t} else {\n\t\t\t\n\t\t\tleft_cache = new WeakMap< any , boolean >()\n\t\t\t$mol_compare_deep_cache.set( left , left_cache )\n\n\t\t}\n\n\t\tleft_cache.set(right, true);\n\n\t\tlet result!: boolean\n\n\t\ttry {\n\t\t\t\n\t\t\tif( !left_proto ) result = compare_pojo( left, right as any )\n\t\t\telse if( !Reflect.getPrototypeOf( left_proto ) ) result = compare_pojo( left, right as any )\n\t\t\telse if( Symbol.toPrimitive in left ) result = compare_primitive( left, right )\n\t\t\telse if( Array.isArray( left ) ) result = compare_array( left, right as any )\n\t\t\telse if( left instanceof Set ) result = compare_set( left, right as any )\n\t\t\telse if( left instanceof Map ) result = compare_map( left, right as any )\n\t\t\telse if( ArrayBuffer.isView( left ) ) result = compare_buffer( left, right as any )\n\t\t\telse if( Symbol.iterator in left ) result = compare_iterator( ( left as any )[ Symbol.iterator ](), ( right as any )[ Symbol.iterator ]() )\n\t\t\telse result = false\n\n\t\t} finally {\n\t\t\tleft_cache.set( right , result )\n\t\t}\n\t\t\n\t\treturn result\n\t}\n\n\tfunction compare_array< Value extends any[] >( left: Value, right: Value ): boolean {\n\t\t\n\t\tconst len = left.length\n\t\tif( len !== right.length ) return false\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( !$mol_compare_deep( left[i] , right[i] ) ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_buffer( left: ArrayBufferView, right: ArrayBufferView ): boolean {\n\t\t\n\t\tconst len = left.byteLength\n\t\tif( len !== right.byteLength ) return false\n\t\t\n\t\tif( left instanceof DataView ) return compare_buffer(\n\t\t\tnew Uint8Array( left.buffer, left.byteOffset, left.byteLength ),\n\t\t\tnew Uint8Array( right.buffer, right.byteOffset, right.byteLength ),\n\t\t)\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( (left as any)[i] !== (right as any)[i] ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_iterator< Value extends IterableIterator<any> >(\n\t\tleft: Value,\n\t\tright: Value,\n\t): boolean {\n\t\t\n\t\twhile( true ) {\n\n\t\t\tconst left_next = left.next()\n\t\t\tconst right_next = right.next()\n\n\t\t\tif( left_next.done !== right_next.done ) return false\n\t\t\tif( left_next.done ) break\n\n\t\t\tif( !$mol_compare_deep( left_next.value , right_next.value ) ) return false\n\n\t\t}\n\n\t\treturn true\n\n\t}\n\t\n\tfunction compare_set< Value extends Set<any> >( left: Value, right: Value ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_map< Key, Value >( left: Map< Key, Value > , right: Map< Key, Value > ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.keys(), right.keys() )\n\t\t\t&& compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_pojo( left: {}, right: {} ): boolean {\n\t\t\n\t\tconst left_keys = Object.getOwnPropertyNames( left )\n\t\tconst right_keys = Object.getOwnPropertyNames( right )\n\t\t\n\t\tif( !compare_array( left_keys, right_keys ) ) return false\n\n\t\tfor( let key of left_keys ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\tconst left_syms = Object.getOwnPropertySymbols( left )\n\t\tconst right_syms = Object.getOwnPropertySymbols( right )\n\t\t\n\t\tif( !compare_array( left_syms, right_syms ) ) return false\n\n\t\tfor( let key of left_syms ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\treturn true\n\t}\n\t\n\tfunction compare_primitive( left: {}, right: {} ): boolean {\n\t\treturn Object.is(\n\t\t\t(left as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t\t(right as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t)\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Logger event data */\n\texport type $mol_log3_event< Fields > = {\n\t\t[ key in string ] : unknown\n\t} & {\n\t\t\n\t\t/** Time of event creation */\n\t\ttime? : string\n\n\t\t/** Place of event creation */\n\t\tplace : unknown\n\n\t\t/** Short description of event */\n\t\tmessage : string\n\n\t} & Fields\n\n\t/** Logger function */\n\texport type $mol_log3_logger< Fields , Res = void > = (\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event< Fields > ,\n\t)=> Res\n\n\t/** Log begin of some task */\n\texport declare let $mol_log3_come : $mol_log3_logger<{}>\n\t\n\t/** Log end of some task */\n\texport declare let $mol_log3_done : $mol_log3_logger<{}>\n\t\n\t/** Log error */\n\texport declare let $mol_log3_fail : $mol_log3_logger<{}>\n\t\n\t/** Log warning message */\n\texport declare let $mol_log3_warn : $mol_log3_logger<{ hint : string }>\n\t\n\t/** Log some generic event */\n\texport declare let $mol_log3_rise : $mol_log3_logger<{}>\n\n\t/** Log begin of log group, returns func to close group */\n\texport declare let $mol_log3_area : $mol_log3_logger< {} , ()=> void >\n\n\t/** Log begin of collapsed group only when some logged inside, returns func to close group */\n\texport function $mol_log3_area_lazy(\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event<{}> ,\n\t) {\n\n\t\tconst self = this.$\n\t\tconst stack = self.$mol_log3_stack\n\n\t\tconst deep = stack.length\n\t\tlet logged = false\n\n\t\tstack.push( ()=> {\n\t\t\tlogged = true\n\t\t\tself.$mol_log3_area.call( self , event )\n\t\t} )\n\n\t\treturn ()=> {\n\t\t\tif( logged ) self.console.groupEnd()\n\t\t\tif( stack.length > deep ) stack.length = deep\n\t\t}\n\n\t}\n\n\texport let $mol_log3_stack = [] as ( ()=> void )[]\n\n}\n","namespace $ {\n\n\t/** Position in any resource. */\n\texport class $mol_span extends $mol_object2 {\n\n\t\tconstructor(\n\t\t\treadonly uri: string ,\n\t\t\treadonly source: string ,\n\t\t\treadonly row: number ,\n\t\t\treadonly col: number ,\n\t\t\treadonly length: number ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = this.uri + ( '#' + this.row + ':' + this.col + '/' + this.length )\n\t\t}\n\n\t\t/** Span for begin of unknown resource */\n\t\tstatic unknown = $mol_span.begin('?')\n\n\t\t/** Makes new span for begin of resource. */\n\t\tstatic begin( uri: string, source = '' ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for end of resource. */\n\t\tstatic end( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , source.length + 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for entire resource. */\n\t\tstatic entire( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , source.length )\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn {\n\t\t\t\turi: this.uri,\n\t\t\t\trow: this.row,\n\t\t\t\tcol: this.col,\n\t\t\t\tlength: this.length\n\t\t\t}\n\t\t}\n\n\t\t/** Makes new error for this span. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn new Class( `${message} (${this})` )\n\t\t}\n\n\t\t/** Makes new span for same uri. */\n\t\tspan( row : number , col : number , length : number ) {\n\t\t\treturn new $mol_span( this.uri , this.source, row , col , length )\n\t\t}\n\n\t\t/** Makes new span after end of this. */\n\t\tafter( length = 0 ) {\n\t\t\treturn new $mol_span( this.uri , this.source, this.row , this.col + this.length , length )\n\t\t}\n\n\t\t/** Makes new span between begin and end. */\n\t\tslice( begin: number, end = -1 ) {\n\t\t\tlet len = this.length\n\t\t\t\n\t\t\tif( begin < 0 ) begin += len\n\t\t\tif( end < 0 ) end += len\n\n\t\t\tif (begin < 0 || begin > len) this.$.$mol_fail( this.error( `Begin value '${begin}' out of range`, RangeError ) )\n\t\t\tif (end < 0 || end > len) this.$.$mol_fail( this.error( `End value '${end}' out of range`, RangeError ) )\n\t\t\tif (end < begin) this.$.$mol_fail( this.error( `End value '${end}' can't be less than begin value`, RangeError ) )\n\n\t\t\treturn this.span( this.row , this.col + begin , end - begin )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Serializes tree to string in tree format. */\n\texport function $mol_tree2_to_string(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t) : string {\n\n\t\tlet output = [] as string[]\n\t\t\n\t\tfunction dump(\n\t\t\ttree: $mol_tree2,\n\t\t\tprefix = '',\n\t\t) {\n\n\t\t\tif( tree.type.length ) {\n\t\t\t\t\n\t\t\t\tif( !prefix.length ) {\n\t\t\t\t\tprefix = \"\\t\";\n\t\t\t\t}\n\n\t\t\t\toutput.push( tree.type )\n\n\t\t\t\tif( tree.kids.length == 1 ) {\n\t\t\t\t\toutput.push( ' ' )\n\t\t\t\t\tdump( tree.kids[ 0 ], prefix )\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\toutput.push( \"\\n\" )\n\n\t\t\t} else if( tree.value.length || prefix.length ) {\n\n\t\t\t\toutput.push( \"\\\\\" + tree.value + \"\\n\" )\n\n\t\t\t}\n\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\toutput.push( prefix )\n\t\t\t\tdump( kid, prefix + \"\\t\" )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tdump( tree )\n\n\t\treturn output.join('')\n\t}\n\t\t\n}\n","namespace $ {\n\t\n\texport function $mol_maybe< Value >( value : Value | null | undefined ) : Value[] {\n\t\treturn ( value == null ) ? [] : [ value ]\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Path by types in tree. */\n\texport type $mol_tree2_path =\n\t\tArray< string | number | null >\n\t\n\t/** Hask tool for processing node. */\n\texport type $mol_tree2_hack< Context > =\n\t\t(\n\t\t\tinput : $mol_tree2 ,\n\t\t\tbelt : $mol_tree2_belt< Context > ,\n\t\t\tcontext : Context ,\n\t\t)=> readonly $mol_tree2[]\n\n\t/** Collection of hask tools for processing tree. */\n\texport type $mol_tree2_belt< Context > =\n\t\tRecord< string , $mol_tree2_hack< Context > >\n\n\t/**\n\t * Abstract Syntax Tree with human readable serialization.\n\t * Avoid direct instantiation. Use static factories instead.\n\t * @see https://github.com/nin-jin/tree.d\n\t */\n\texport class $mol_tree2 extends Object {\n\t\t\n\t\tconstructor(\n\n\t\t\t/** Type of structural node, `value` should be empty */\n\t\t\treadonly type : string,\n\t\t\t\n\t\t\t/** Content of data node, `type` should be empty */\n\t\t\treadonly value : string,\n\n\t\t\t/** Child nodes */\n\t\t\treadonly kids : readonly $mol_tree2[],\n\t\t\t\n\t\t\t/** Position in most far source resource */\n\t\t\treadonly span : $mol_span,\n\n\t\t) {\n\t\t\tsuper()\n\t\t\t;(this as any)[ Symbol.toStringTag ] = type || '\\\\' + value\n\t\t}\n\n\t\t/** Makes collection node. */\n\t\tstatic list(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\t\t\treturn new $mol_tree2( '' , '' , kids , span )\n\t\t}\n\t\t\n\t\t/** Makes new derived collection node. */\n\t\tlist(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.list( kids , this.span )\n\t\t}\n\n\t\t/** Makes data node for any string. */\n\t\tstatic data(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tconst chunks = value.split( '\\n' )\n\n\t\t\tif( chunks.length > 1 ) {\n\t\t\t\n\t\t\t\tlet kid_span = span.span( span.row , span.col , 0 )\n\n\t\t\t\tconst data = chunks.map( chunk => {\n\t\t\t\t\tkid_span = kid_span.after( chunk.length )\n\t\t\t\t\treturn new $mol_tree2( '' , chunk , [] , kid_span )\n\t\t\t\t} )\n\n\t\t\t\tkids = [ ... data , ... kids ]\n\n\t\t\t\tvalue = ''\n\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( '' , value , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived data node. */\n\t\tdata(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.data( value , kids , this.span )\n\t\t}\n\t\t\n\t\t/** Makes struct node. */\n\t\tstatic struct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tif( /[ \\n\\t\\\\]/.test( type ) ) {\n\t\t\t\t$$.$mol_fail( span.error( `Wrong type ${ JSON.stringify( type ) }` ) )\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( type , '' , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived structural node. */\n\t\tstruct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.struct( type , kids , this.span )\n\t\t}\n\n\t\t/** Makes new derived node with different kids id defined. */\n\t\tclone( kids : readonly $mol_tree2[], span = this.span ) {\n\t\t\treturn new $mol_tree2( this.type , this.value , kids , span )\n\t\t}\n\n\t\t/** Returns multiline text content. */\n\t\ttext() {\n\n\t\t\tvar values : string[] = []\n\t\t\t\n\t\t\tfor( var kid of this.kids ) {\n\t\t\t\tif( kid.type ) continue\n\t\t\t\tvalues.push( kid.value )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.value + values.join( '\\n' )\n\n\t\t}\n\t\t\n\t\t/** Parses tree format. */\n\t\t/** @deprecated Use $mol_tree2_from_string */\n\t\tstatic fromString( str : string , uri = 'unknown' ) {\n\t\t\treturn $$.$mol_tree2_from_string( str, uri )\n\t\t}\n\n\t\t/** Serializes to tree format. */\n\t\ttoString() : string {\n\t\t\treturn $$.$mol_tree2_to_string( this )\n\t\t}\n\t\t\n\t\t/** Makes new tree with node overrided by path. */\n\t\tinsert( value : $mol_tree2 | null , ...path : $mol_tree2_path ) : $mol_tree2 {\n\t\t\treturn this.update( $mol_maybe( value ), ... path )[0]\n\t\t}\n\n\t\t/** Makes new tree with node overrided by path. */\n\t\tupdate( value : readonly $mol_tree2[] , ...path : $mol_tree2_path ) : readonly $mol_tree2[] {\n\n\t\t\tif( path.length === 0 ) return value\n\t\t\t\n\t\t\tconst type = path[0]\n\t\t\tif( typeof type === 'string' ) {\n\n\t\t\t\tlet replaced = false\n\t\t\t\tconst sub = this.kids.flatMap( ( item , index )=> {\n\t\t\t\t\tif( item.type !== type ) return item\n\t\t\t\t\treplaced = true\n\t\t\t\t\treturn item.update( value , ... path.slice( 1 ) )\n\t\t\t\t} ).filter( Boolean )\n\t\t\t\t\n\t\t\t\tif( !replaced && value ) {\n\t\t\t\t\tsub.push( ... this.struct( type , [] ).update( value , ... path.slice( 1 ) ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn [ this.clone( sub ) ]\n\n\t\t\t} else if( typeof type === 'number' ) {\n\t\t\t\t\n\t\t\t\tconst ins = ( this.kids[ type ] || this.list([]) )\n\t\t\t\t\t.update( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn [ this.clone([\n\t\t\t\t\t... this.kids.slice( 0, type ),\n\t\t\t\t\t... ins,\n\t\t\t\t\t... this.kids.slice( type + 1 ),\n\t\t\t\t]) ]\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst kids = ( ( this.kids.length === 0 ) ? [ this.list([]) ] : this.kids )\n\t\t\t\t\t.flatMap( item => item.update( value , ... path.slice( 1 ) ) )\n\n\t\t\t\treturn [ this.clone( kids ) ]\n\n\t\t\t}\n\n\t\t}\n\n\t\t/** Query nodes by path. */\n\t\tselect( ...path : $mol_tree2_path ) {\n\n\t\t\tlet next = [ this as $mol_tree2 ]\n\n\t\t\tfor( const type of path ) {\n\n\t\t\t\tif( !next.length ) break\n\t\t\t\t\n\t\t\t\tconst prev = next\n\t\t\t\tnext = []\n\n\t\t\t\tfor( var item of prev ) {\n\n\t\t\t\t\tswitch( typeof( type ) ) {\n\n\t\t\t\t\t\tcase 'string' :\n\n\t\t\t\t\t\t\tfor( var child of item.kids ) {\n\t\t\t\t\t\t\t\tif( child.type == type ) {\n\t\t\t\t\t\t\t\t\tnext.push( child )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase 'number' :\n\n\t\t\t\t\t\t\tif( type < item.kids.length ) next.push( item.kids[ type ] )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tdefault : next.push( ... item.kids )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.list( next )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Filter kids by path or value. */\n\t\tfilter( path : string[] , value? : string ) {\n\n\t\t\tconst sub = this.kids.filter( item => {\n\t\t\t\t\t\n\t\t\t\tvar found = item.select( ...path )\n\t\t\t\t\n\t\t\t\tif( value === undefined ) {\n\t\t\t\t\treturn Boolean( found.kids.length )\n\t\t\t\t} else {\n\t\t\t\t\treturn found.kids.some( child => child.value == value )\n\t\t\t\t}\n\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn this.clone( sub )\n\n\t\t}\n\n\t\thack_self< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\tlet handle = belt[ this.type ] || belt[ '' ]\n\t\t\t\t\n\t\t\tif( !handle || handle === Object.prototype[ this.type as keyof Object ] ) {\n\t\t\t\thandle = ( input, belt, context )=> [\n\t\t\t\t\tinput.clone( input.hack( belt, context ), context.span )\n\t\t\t\t]\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\treturn handle( this , belt , context! )\n\t\t\t} catch( error: any ) {\n\t\t\t\terror.message += `\\n${ this.clone([]) }${ this.span }`\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t}\n\n\t\t/** Transform tree through context with transformers */\n\t\thack< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\treturn ( [] as readonly $mol_tree2[] ).concat(\n\t\t\t\t... this.kids.map( child => child.hack_self(belt, context) )\n\t\t\t)\n\n\t\t}\n\n\t\t/** Makes Error with node coordinates. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn this.span.error( `${ message }\\n${ this.clone([]) }` , Class )\n\t\t}\n\n\t}\n\n\texport class $mol_tree2_empty extends $mol_tree2 {\n\t\tconstructor() {\n\t\t\tsuper( '' , '' , [] , $mol_span.unknown )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Syntax error with cordinates and source line snippet. */\n\texport class $mol_error_syntax extends SyntaxError {\n\t\tconstructor (\n\t\t\tpublic reason: string,\n\t\t\tpublic line: string,\n\t\t\tpublic span: $mol_span,\n\t\t) {\n\t\t\tsuper(`${ reason }\\n${ span }\\n${ line.substring( 0 , span.col - 1 ).replace( /\\S/g, ' ' ) }${ ''.padEnd( span.length, '!' ) }\\n${ line }`)\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Parses tree format from string. */\n\texport function $mol_tree2_from_string(\n\t\tthis: $,\n\t\tstr: string,\n\t\turi = '?',\n\t) : $mol_tree2 {\n\n\t\tconst span = $mol_span.entire( uri, str )\n\n\t\tvar root = $mol_tree2.list( [], span )\n\t\tvar stack = [ root ]\n\n\t\tvar pos = 0, row = 0, min_indent = 0\n\t\t\n\t\twhile( str.length > pos ) {\n\n\t\t\tvar indent = 0\n\t\t\tvar line_start = pos\n\n\t\t\trow++\n\n\t\t\t// read indent\n\t\t\twhile( str.length > pos && str[ pos ] == '\\t' ) {\n\t\t\t\tindent++\n\t\t\t\tpos++\n\t\t\t}\n\n\t\t\tif( ! root.kids.length ) {\n\t\t\t\tmin_indent = indent\n\t\t\t}\n\n\t\t\tindent -= min_indent\n\n\t\t\t// invalid tab size\n\t\t\tif( indent < 0 || indent >= stack.length ) {\n\n\t\t\t\tconst sp = span.span( row, 1, pos - line_start )\n\n\t\t\t\t// skip error line\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( indent < 0 ) {\n\t\t\t\t\tif( str.length > pos ) {\n\t\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t\t`Too few tabs`,\n\t\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\t\tsp,\n\t\t\t\t\t\t) )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Too many tabs`,\n\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tstack.length = indent + 1\n\t\t\tvar parent = stack[ indent ]\n\n\t\t\t// parse types\n\t\t\twhile( str.length > pos && str[ pos ] != '\\\\' && str[ pos ] != '\\n' ) {\n\n\t\t\t\t// type can not contain space and tab\n\t\t\t\tvar error_start = pos\n\t\t\t\twhile( str.length > pos && ( str[ pos ] == ' ' || str[ pos ] == '\\t' ) ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( pos > error_start ) {\n\t\t\t\t\tlet line_end = str.indexOf( '\\n' , pos )\n\t\t\t\t\tif( line_end === -1 ) line_end = str.length\n\t\t\t\t\tconst sp = span.span( row, error_start - line_start + 1, pos - error_start )\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Wrong nodes separator`,\n\t\t\t\t\t\tstr.substring( line_start, line_end ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t\t// read type\n\t\t\t\tvar type_start = pos\n\t\t\t\twhile( \n\t\t\t\t\tstr.length > pos && \n\t\t\t\t\tstr[ pos ] != '\\\\' && \n\t\t\t\t\tstr[ pos ] != ' ' && \n\t\t\t\t\tstr[ pos ] != '\\t' && \n\t\t\t\t\tstr[ pos ] != '\\n'\n\t\t\t\t) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tif( pos > type_start ) {\n\t\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t\tstr.slice( type_start , pos ),\n\t\t\t\t\t\t'',\n\t\t\t\t\t\t[],\n\t\t\t\t\t\tspan.span( row, type_start - line_start + 1, pos - type_start ),\n\t\t\t\t\t)\n\t\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\t\tparent_kids.push( next )\n\t\t\t\t\tparent = next\n\t\t\t\t}\n\n\t\t\t\t// read one space if exists\n\t\t\t\tif( str.length > pos && str[ pos ] == ' ' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// read data\n\t\t\tif( str.length > pos && str[ pos ] == '\\\\' ) {\n\t\t\t\tvar data_start = pos\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t'',\n\t\t\t\t\tstr.slice( data_start + 1 , pos ),\n\t\t\t\t\t[],\n\t\t\t\t\tspan.span( row, data_start - line_start + 2, pos - data_start - 1 ),\n\t\t\t\t)\n\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\tparent_kids.push( next )\n\t\t\t\tparent = next\n\t\t\t}\n\n\t\t\t// now must be end of text\n\t\t\tif( str.length === pos && stack.length > 0 ) {\n\t\t\t\tconst sp = span.span( row, pos - line_start + 1, 1 )\n\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t`Unexpected EOF, LF required`,\n\t\t\t\t\tstr.substring( line_start, str.length ),\n\t\t\t\t\tsp,\n\t\t\t\t) )\n\t\t\t}\n\n\t\t\tstack.push( parent )\n\t\t\tpos++\n\t\t}\n\n\t\treturn root\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_tree2_from_json( json: any, span = $mol_span.unknown ): $mol_tree2 {\n\n\t\tif( typeof json === 'boolean' || typeof json === 'number' || json === null ) {\n\t\t\treturn new $mol_tree2( String( json ) , '' , [] , span )\n\t\t}\n\t\t\n\t\tif( typeof json === 'string' ) {\n\t\t\treturn $mol_tree2.data( json , [], span )\n\t\t}\n\n\t\tif( typeof json.toJSON === 'function' ) {\n\t\t\treturn $mol_tree2_from_json( json.toJSON() )\n\t\t}\n\n\t\tif( Array.isArray( json ) ) {\n\t\t\tconst sub = json.map( json => $mol_tree2_from_json( json , span ) )\n\t\t\treturn new $mol_tree2( '/' , '', sub, span )\n\t\t}\n\t\t\n\t\tif( ArrayBuffer.isView( json ) ) {\n\t\t\tconst buf = new Uint8Array( json.buffer, json.byteOffset, json.byteLength )\n\t\t\treturn $mol_tree2.data( String.fromCharCode( ... buf ) , [], span )\n\t\t}\n\t\t\t\n\t\tif( json instanceof Date ) {\n\t\t\treturn new $mol_tree2( '', json.toISOString() , [] , span )\n\t\t}\n\n\t\tif( json.toString !== Object.prototype.toString ) {\n\t\t\treturn $mol_tree2.data( json.toString() , [], span )\n\t\t}\n\n\t\tif( json instanceof Error ) {\n\t\t\tconst { name , message , stack } = json\n\t\t\tjson = { ... json, name, message, stack }\n\t\t}\n\n\t\tconst sub = [] as $mol_tree2[]\n\t\t\n\t\tfor( var key in json ) {\n\n\t\t\tconst val = json[ key ]\n\n\t\t\tif( val === undefined ) continue\n\n\t\t\tconst subsub = $mol_tree2_from_json( val, span )\n\t\t\t\n\t\t\tif( /^[^\\n\\t\\\\ ]+$/.test( key ) ) {\n\t\t\t\tsub.push( new $mol_tree2( key, '', [ subsub ], span ) )\n\t\t\t} else {\n\t\t\t\tsub.push( $mol_tree2.data( key, [ subsub ], span ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn new $mol_tree2( '*' , '', sub , span )\n\t\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Module for working with terminal. Text coloring when output in terminal */\n\texport class $mol_term_color {\n\t\t\n\t\tstatic reset = this.ansi( 0, 0 )\n\t\tstatic bold = this.ansi( 1, 22 )\n\t\tstatic italic = this.ansi( 3, 23 )\n\t\tstatic underline = this.ansi( 4, 24 )\n\t\tstatic inverse = this.ansi( 7, 27 )\n\t\tstatic hidden = this.ansi( 8, 28 )\n\t\tstatic strike = this.ansi( 9, 29 )\n\t\t\n\t\tstatic gray = this.ansi( 90, 39 )\n\t\tstatic red = this.ansi( 91, 39 )\n\t\tstatic green = this.ansi( 92, 39 )\n\t\tstatic yellow = this.ansi( 93, 39 )\n\t\tstatic blue = this.ansi( 94, 39 )\n\t\tstatic magenta = this.ansi( 95, 39 )\n\t\tstatic cyan = this.ansi( 96, 39 )\n\t\t\n\t\tstatic Gray = ( str: string )=> this.inverse( this.gray( str ) )\n\t\tstatic Red = ( str: string )=> this.inverse( this.red( str ) )\n\t\tstatic Green = ( str: string )=> this.inverse( this.green( str ) )\n\t\tstatic Yellow = ( str: string )=> this.inverse( this.yellow( str ) )\n\t\tstatic Blue = ( str: string )=> this.inverse( this.blue( str ) )\n\t\tstatic Magenta = ( str: string )=> this.inverse( this.magenta( str ) )\n\t\tstatic Cyan = ( str: string )=> this.inverse( this.cyan( str ) )\n\t\t\n\t\tstatic ansi( open: number, close: number ) {\n\t\n\t\t\tif( typeof process === 'undefined' ) return String\n\t\t\tif( !process.stdout.isTTY ) return String\n\t\t\n\t\t\tconst prefix = `\\x1b[${open}m`\n\t\t\tconst postfix = `\\x1b[${close}m`\n\t\t\t\n\t\t\tconst suffix_regexp = new RegExp( postfix.replace( '[', '\\\\[' ), 'g' )\n\t\t\n\t\t\treturn function colorer( str: string ) {\n\t\t\n\t\t\t\tstr = String( str )\n\t\t\t\tif( str === '' ) return str\n\t\t\n\t\t\t\tconst suffix = str.replace( suffix_regexp, prefix )\n\t\t\t\treturn prefix + suffix + postfix\n\t\t\n\t\t\t}\n\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_log3_node_make(\n\t\tlevel : keyof Console ,\n\t\toutput : 'stdout' | 'stderr',\n\t\ttype : string ,\n\t\tcolor: ( str: string )=> string ,\n\t) {\n\n\t\treturn function $mol_log3_logger(\n\t\t\tthis : $ ,\n\t\t\tevent : $mol_log3_event<{}> ,\n\t\t) {\n\n\t\t\tif( !event.time ) event = { time : new Date().toISOString() , ... event }\n\n\t\t\tlet tree = this.$mol_tree2_from_json( event )\n\t\t\ttree = tree.struct( type, tree.kids )\n\t\t\t\n\t\t\tlet str = color( tree.toString() )\n\t\t\t;( this.console[ level ] as any )( str )\n\t\n\t\t\tconst self = this\n\t\t\treturn ()=> self.console.groupEnd()\n\n\t\t}\n\n\t}\n\n\t$.$mol_log3_come = $mol_log3_node_make( 'info' , 'stdout' , 'come' , $mol_term_color.blue )\n\t$.$mol_log3_done = $mol_log3_node_make( 'info' , 'stdout' , 'done' , $mol_term_color.green )\n\t$.$mol_log3_fail = $mol_log3_node_make( 'error' , 'stderr' , 'fail' , $mol_term_color.red )\n\t$.$mol_log3_warn = $mol_log3_node_make( 'warn' , 'stderr' , 'warn' , $mol_term_color.yellow )\n\t$.$mol_log3_rise = $mol_log3_node_make( 'log' , 'stdout' , 'rise' , $mol_term_color.magenta )\n\t$.$mol_log3_area = $mol_log3_node_make( 'log' , 'stdout' , 'area' , $mol_term_color.cyan )\n\n}\n","namespace $ {\n\t\n\t/** One-shot fiber */\n\texport class $mol_wire_task<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_fiber< Host, Args, Result > {\n\t\t\n\t\tstatic getter<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\ttask: ( this : Host , ... args : Args )=> Result,\n\t\t): ( host: Host, args: Args )=> $mol_wire_task< Host, Args, Result > {\n\t\t\t\n\t\t\treturn function $mol_wire_task_get( host: Host, args: Args ) {\n\t\t\t\t\n\t\t\t\tconst sub = $mol_wire_auto()\n\t\t\t\tconst existen = sub?.track_next() as $mol_wire_task< Host, Args, Result > | undefined\n\t\t\t\tlet cause = ''\n\t\t\t\t\n\t\t\t\treuse: if( existen ) {\n\t\t\t\t\t\n\t\t\t\t\tif( !existen.temp ) break reuse\n\t\t\t\t\t\n\t\t\t\t\tif( existen.task !== task ) { cause = 'task'; break reuse }\n\t\t\t\t\tif( existen.host !== host ) { cause = 'host'; break reuse }\n\t\t\t\t\tif( !$mol_compare_deep( existen.args, args ) ) { cause = 'args'; break reuse }\n\t\t\t\t\t\n\t\t\t\t\treturn existen\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst key = ( (host as any)?.[ Symbol.toStringTag ] ?? host ) + ( '.' + task.name + '<#>' )\n\t\t\t\tconst next = new $mol_wire_task( key, task, host, args )\n\t\t\t\t\n\t\t\t\t// Disabled because non-idempotency is required for try-catch\n\t\t\t\tif( existen?.temp ) {\n\t\t\t\t\t$$.$mol_log3_warn({\n\t\t\t\t\t\tplace: '$mol_wire_task',\n\t\t\t\t\t\tmessage: `Different ${cause} on restart`,\n\t\t\t\t\t\tsub,\n\t\t\t\t\t\tprev: existen,\n\t\t\t\t\t\tnext,\n\t\t\t\t\t\thint: 'Maybe required additional memoization',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn next\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tget temp() {\n\t\t\treturn true\n\t\t}\n\t\t\n\t\tcomplete() {\n\t\t\tif( $mol_promise_like( this.cache ) ) return\n\t\t\tthis.destructor()\n\t\t}\n\t\t\n\t\tput( next: Result | Error | Promise< Result | Error > ) {\n\t\t\t\n\t\t\tconst prev = this.cache\n\t\t\tthis.cache = next\n\t\t\t\n\t\t\tif( $mol_promise_like( next ) ) {\n\t\t\t\t\n\t\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\tif( next !== prev ) this.emit()\n\t\t\t\t\n\t\t\t\tif( $mol_owning_catch( this, next ) ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t(next as any)[ Symbol.toStringTag ] = (this as any)[ Symbol.toStringTag ]\n\t\t\t\t\t} catch { // Promises throw in strict mode\n\t\t\t\t\t\tObject.defineProperty( next, Symbol.toStringTag, { value: (this as any)[ Symbol.toStringTag ] } )\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn next\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_wire_cursor.final\n\t\t\t\n\t\t\tif( this.sub_empty ) this.destructor()\n\t\t\telse if( next !== prev ) this.emit()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\tsuper.destructor()\n\t\t\tthis.cursor = $mol_wire_cursor.final\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\tconst factories = new WeakMap<Function, Function>()\n\n\tfunction factory<Args extends unknown[], Result>(\n\t\tval: new (...args: Args) => Result\n\t) {\n\t\tlet make = factories.get(val) as null | ((...args: Args) => Result)\n\n\t\tif ( make ) return make\n\n\t\tmake = $mol_func_name_from((...args: Args) => new val(...args), val)\n\t\tfactories.set(val, make)\n\n\t\treturn make\n\t}\n\n\tconst getters = new WeakMap<Object, Record<string | symbol, (next?: unknown) => unknown>>()\n\n\tfunction get_prop(\n\t\thost: Object,\n\t\tfield: string | symbol,\n\t) {\n\t\tlet props = getters.get(host)\n\t\tlet get_val = props?.[field]\n\n\t\tif ( get_val ) return get_val\n\n\t\tget_val = (next?: unknown) => {\n\t\t\tif (next !== undefined) host[field as keyof typeof host] = next as any\n\n\t\t\treturn host[field as keyof typeof host]\n\t\t}\n\n\t\tObject.defineProperty( get_val , 'name' , { value : field } )\n\n\t\tif (! props) {\n\t\t\tprops = {}\n\t\t\tgetters.set(host, props)\n\t\t}\n\t\tprops[field] = get_val\n\n\t\treturn get_val\n\t}\n\n\t/**\n\t * Convert asynchronous (promise-based) API to synchronous by wrapping function and method calls in a fiber.\n\t * @see https://mol.hyoo.ru/#!section=docs/=1fcpsq_1wh0h2\n\t */\n\texport function $mol_wire_sync< Host extends object >( obj: Host ) {\n\t\treturn new Proxy( obj, {\n\t\t\t\n\t\t\tget( obj, field ) {\n\t\t\t\t\n\t\t\t\tlet val = (obj as any)[ field ]\n\t\t\t\tconst temp = $mol_wire_task.getter(typeof val === 'function' ? val : get_prop(obj, field))\n\n\t\t\t\tif (typeof val !== 'function') return temp( obj, [] ).sync()\n\n\t\t\t\treturn function $mol_wire_sync( this: Host, ... args: unknown[] ) {\n\t\t\t\t\tconst fiber = temp( obj, args )\n\t\t\t\t\treturn fiber.sync()\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tset( obj, field, next) {\n\t\t\t\tconst temp = $mol_wire_task.getter(get_prop(obj, field))\n\t\t\t\ttemp( obj, [ next ] ).sync()\n\n\t\t\t\treturn true\n\t\t\t},\n\n\t\t\tconstruct(obj, args) {\n\t\t\t\tconst temp = $mol_wire_task.getter(factory(obj as (new ( ... args: unknown[] )=> unknown)))\n\t\t\t\treturn temp( obj, args ).sync() as object\n\t\t\t},\n\n\t\t\tapply( obj, self, args ) {\n\t\t\t\tconst temp = $mol_wire_task.getter(obj as ( ... args: any[] )=> any)\n\t\t\t\treturn temp(self, args).sync()\n\t\t\t},\n\t\t\t\n\t\t} ) as unknown as ObjectOrFunctionResultAwaited<Host>\n\t}\n\n\ttype FunctionResultAwaited<Some> = Some extends (...args: infer Args) => infer Res\n\t\t? (...args: Args) => Awaited<Res>\n\t\t: Some\n\n\ttype ConstructorResultAwaited<Some> = Some extends new (...args: infer Args) => infer Res\n\t\t? new (...args: Args) => Res\n\t\t: {}\n\n\ttype MethodsResultAwaited<Host extends Object> = {\n\t\t[K in keyof Host]: FunctionResultAwaited<Host[K]>\n\t}\n\n\ttype ObjectOrFunctionResultAwaited<Some> = (\n\t\tSome extends (...args: any) => unknown ? FunctionResultAwaited<Some> : {}\n\t) & ( Some extends Object ? MethodsResultAwaited<Some> & ConstructorResultAwaited<Some> : Some )\n\n}\n","namespace $ {\n\n\texport type $mol_run_error_context = {\n\t\tpid?: number\n\t\tstdout: Buffer | string\n\t\tstderr: Buffer | string\n\t}\n\n\texport class $mol_run_error extends $mol_error_mix<{\n\t\ttimeout_kill?: boolean\n\t\tpid?: number\n\t\tsignal?: NodeJS.Signals | null\n\t\tstatus?: number | null\n\t\tcommand: string\n\t\tdir: string\n\t}> {}\n\n\texport const $mol_run_spawn = (\n\t\t...args: Parameters<typeof $node['child_process']['spawn']>\n\t) => $node['child_process'].spawn(...args)\n\n\texport const $mol_run_spawn_sync = (\n\t\t...args: Parameters<typeof $node['child_process']['spawnSync']>\n\t) => $node['child_process'].spawnSync(...args)\n\n\texport type $mol_run_options = {\n\t\tcommand : readonly string[] | string\n\t\tdir : string\n\t\ttimeout?: number\n\t\tenv?: Record<string, string | undefined>\n\t}\n\n\texport class $mol_run extends $mol_object {\n\n\t\tstatic async_enabled() {\n\t\t\treturn Boolean(this.$.$mol_env()['MOL_RUN_ASYNC'])\n\t\t}\n\n\t\tstatic spawn(options: $mol_run_options) {\n\t\t\tconst sync = ! this.async_enabled() || ! Boolean($mol_wire_auto())\n\t\t\tconst env = options.env ?? this.$.$mol_env()\n\n\t\t\treturn $mol_wire_sync(this).spawn_async( { ...options, sync, env } )\n\t\t}\n\n\t\tstatic spawn_async(\n\t\t\t{ dir, sync, timeout, command, env }: $mol_run_options & { sync?: boolean }\n\t\t) {\n\t\t\tconst args_raw = typeof command === 'string' ? command.split( ' ' ) : command\n\t\t\tconst [ app, ...args ] = args_raw\n\t\t\tconst opts = { shell: true, cwd: dir, env }\n\n\t\t\tconst log_object = {\n\t\t\t\tplace: `${this}.spawn()`,\n\t\t\t\tmessage: 'Run',\n\t\t\t\tcommand: args_raw.join(' ') ,\n\t\t\t\tdir: $node.path.relative( '' , dir ) ,\n\t\t\t}\n\n\t\t\tif (sync) {\n\n\t\t\t\tthis.$.$mol_log3_come({\n\t\t\t\t\thint: 'Run inside fiber',\n\t\t\t\t\t...log_object\n\t\t\t\t})\n\n\t\t\t\tlet error: Error | undefined\n\t\t\t\tlet res\n\n\t\t\t\ttry {\n\t\t\t\t\tres = this.$.$mol_run_spawn_sync(app, args, opts)\n\t\t\t\t\terror = res.error\n\t\t\t\t} catch (err) {\n\t\t\t\t\terror = err as Error\n\t\t\t\t}\n\n\t\t\t\tif (! res || error || res.status) {\n\t\t\t\t\tthrow new $mol_run_error(\n\t\t\t\t\t\tthis.error_message(res),\n\t\t\t\t\t\t{ ...log_object, status: res?.status, signal: res?.signal },\n\t\t\t\t\t\t...(error ? [error] : [])\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tlet sub\n\n\t\t\ttry {\n\t\t\t\tsub = this.$.$mol_run_spawn(app, args, {\n\t\t\t\t\t...opts,\n\t\t\t\t\tstdio: [ 'pipe', 'inherit', 'inherit' ],\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tthrow new $mol_run_error(\n\t\t\t\t\tthis.error_message(undefined),\n\t\t\t\t\tlog_object,\n\t\t\t\t\terror as Error\n\t\t\t\t)\n\t\t\t}\n\t\n\t\t\tconst pid = sub.pid ?? 0\n\n\t\t\tthis.$.$mol_log3_come({\n\t\t\t\t...log_object,\n\t\t\t\tpid,\n\t\t\t})\n\t\n\t\t\tlet timeout_kill = false\n\t\t\tlet timer: undefined | ReturnType<typeof setTimeout>\n\t\n\t\t\tconst std_data = [] as Buffer[]\n\t\t\tconst error_data = [] as Buffer[]\n\t\n\t\t\tconst add = (std_chunk?: Buffer, error_chunk?: Buffer) => {\n\t\t\t\tif (std_chunk) std_data.push(std_chunk)\n\t\t\t\tif (error_chunk) error_data.push(error_chunk)\n\t\t\t\tif (! timeout) return\n\t\n\t\t\t\tclearTimeout(timer)\n\t\n\t\t\t\ttimer = setTimeout(() => {\n\t\t\t\t\tconst signal = timeout_kill ? 'SIGKILL' : 'SIGTERM'\n\t\t\t\t\ttimeout_kill = true\n\t\t\t\t\tadd()\n\t\t\t\t\tsub.kill(signal)\n\t\t\t\t}, timeout)\n\t\t\t}\n\t\n\t\t\tadd()\n\t\n\t\t\tsub.stdout?.on('data', data => add(data) )\n\t\t\tsub.stderr?.on('data', data => add(undefined, data) )\n\t\n\t\t\tconst result_promise = new Promise<$mol_run_error_context>((done, fail) => {\n\t\t\t\tconst close = (error: Error | null, status: number | null = null, signal: NodeJS.Signals | null = null) => {\n\t\t\t\t\tif (! timer && timeout) return\n\t\n\t\t\t\t\tclearTimeout(timer)\n\t\t\t\t\ttimer = undefined\n\t\n\t\t\t\t\tconst res = {\n\t\t\t\t\t\tpid,\n\t\t\t\t\t\tsignal,\n\t\t\t\t\t\tget stdout() { return Buffer.concat(std_data) },\n\t\t\t\t\t\tget stderr() { return Buffer.concat(error_data) }\n\t\t\t\t\t}\n\t\t\n\t\t\t\t\tif (error || status || timeout_kill) return fail( new $mol_run_error(\n\t\t\t\t\t\tthis.error_message(res) + (timeout_kill ? ', timeout' : ''),\n\t\t\t\t\t\t{ ...log_object, pid, status, signal, timeout_kill },\n\t\t\t\t\t\t...error ? [ error ] : []\n\t\t\t\t\t) )\n\n\t\t\t\t\tthis.$.$mol_log3_done({\n\t\t\t\t\t\t...log_object,\n\t\t\t\t\t\tpid,\n\t\t\t\t\t})\n\t\t\t\n\t\t\t\t\tdone(res)\n\t\t\t\t}\n\t\n\t\t\t\tsub.on('disconnect', () => close(new Error('Disconnected')) )\n\t\t\t\tsub.on('error', err => close(err) )\n\t\t\t\tsub.on('exit', (status, signal) => close(null, status, signal) )\n\t\t\t})\n\t\n\t\t\treturn Object.assign(result_promise, { destructor: () => {\n\t\t\t\tclearTimeout(timer)\n\t\t\t\tsub.kill('SIGKILL')\n\t\t\t} })\n\t\t}\n\n\t\tstatic error_message(res?: $mol_run_error_context) {\n\t\t\treturn res?.stderr.toString() || res?.stdout.toString() || 'Run error'\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_exec(\n\t\tthis : $ ,\n\t\tdir : string ,\n\t\tcommand : string ,\n\t\t...args : readonly string[]\n\t) {\n\t\treturn this.$mol_run.spawn( { command: [ command, ...args ], dir } )\n\t}\n}\n","namespace $ {\n\t\n\t$.$mol_dom_context = new $node.jsdom.JSDOM( '' , { url : 'https://localhost/' } ).window as any\n\t\n}\n","namespace $ {\n\t\n\texport var $mol_dom = $mol_dom_context\n\t\n}\n","namespace $ {\n\n\texport function $mol_style_attach(\n\t\tid : string ,\n\t\ttext : string ,\n\t) {\n\n\t\tconst doc = $mol_dom_context.document\n\t\tif( !doc ) return null\n\t\t\n\t\tconst elid = `$mol_style_attach:${id}`\n\t\t\n\t\tlet el = doc.getElementById( elid ) as HTMLStyleElement\n\t\tif( !el ) {\n\t\t\tel = doc.createElement('style')\n\t\t\tel.id = elid\n\t\t\tdoc.head.appendChild( el )\n\t\t}\n\t\tif( el.innerHTML != text ) el.innerHTML = text\n\t\t\n\t\treturn el\n\t}\n\n}\n","namespace $ {\n\texport class $mol_promise<Result = void> extends Promise<Result> {\n\t\tdone: (value: Result | PromiseLike<Result>) => void\n\t\tfail: (reason?: any) => void\n\n\t\tconstructor(\n\t\t\texecutor?: (\n\t\t\t\tdone: (value: Result | PromiseLike<Result>) => void,\n\t\t\t\tfail: (reason?: any) => void\n\t\t\t) => void\n\t\t) {\n\t\t\tlet done: (value: Result | PromiseLike<Result>) => void\n\t\t\tlet fail: (reason?: any) => void\n\n\t\t\tsuper((d, f) => {\n\t\t\t\tdone = d\n\t\t\t\tfail = f\n\t\t\t\texecutor?.(d, f)\n\t\t\t})\n\n\t\t\tthis.done = done!\n\t\t\tthis.fail = fail!\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_promise_blocker<Result> extends $mol_promise<Result> {\n\t\tstatic [Symbol.toStringTag] = '$mol_promise_blocker'\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_decor< Value > {\n\t\t\n\t\tconstructor(\n\t\t\treadonly value : Value\n\t\t) {}\n\n\t\tprefix() { return '' }\n\t\tvalueOf() { return this.value }\n\t\tpostfix() { return '' }\n\n\t\ttoString(){\n\t\t\treturn `${ this.prefix() }${ this.valueOf() }${ this.postfix() }`\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport type $mol_style_unit_length =\n\t| '%'\n\t| 'px' | 'cm' | 'mm' | 'Q' | 'in' | 'pc' | 'pt'\n\t| 'cap' | 'ch' | 'em' | 'rem' | 'ex' | 'ic' | 'lh' | 'rlh'\n\t| 'vh' | 'vw' | 'vi' | 'vb' | 'vmin' | 'vmax'\n\t\n\texport type $mol_style_unit_angle = 'deg' | 'rad' | 'grad' | 'turn'\n\t\n\texport type $mol_style_unit_time = 's' | 'ms'\n\n\texport type $mol_style_unit_any = $mol_style_unit_length | $mol_style_unit_angle | $mol_style_unit_time\n\n\texport type $mol_style_unit_str< Quanity extends $mol_style_unit_any = $mol_style_unit_any> = `${number}${Quanity}`\n\n\t/**\n\t * CSS Units\n\t * @see https://mol.hyoo.ru/#!section=docs/=xwq9q5_f966fg\n\t */\n\texport class $mol_style_unit<\n\t\tLiteral extends $mol_style_unit_any\n\t> extends $mol_decor< number > {\n\n\t\tconstructor(\n\t\t\tvalue : number,\n\t\t\treadonly literal : Literal,\n\t\t) {\n\t\t\tsuper( value )\n\t\t}\n\n\t\tpostfix() {\n\t\t\treturn this.literal\n\t\t}\n\n\t\tstatic per( value : number ) { return `${value}%` as const }\n\t\tstatic px( value : number ) { return `${ value }px` as const }\n\t\tstatic mm( value : number ) { return `${value}mm` as const }\n\t\tstatic cm( value : number ) { return `${value}cm` as const }\n\t\tstatic Q( value : number ) { return `${value}Q` as const }\n\t\tstatic in( value : number ) { return `${value}in` as const }\n\t\tstatic pc( value : number ) { return `${value}pc` as const }\n\t\tstatic pt( value : number ) { return `${value}pt` as const }\n\t\tstatic cap( value : number ) { return `${value}cap` as const }\n\t\tstatic ch( value : number ) { return `${value}ch` as const }\n\t\tstatic em( value : number ) { return `${value}em` as const }\n\t\tstatic rem( value : number ) { return `${value}rem` as const }\n\t\tstatic ex( value : number ) { return `${value}ex` as const }\n\t\tstatic ic( value : number ) { return `${value}ic` as const }\n\t\tstatic lh( value : number ) { return `${value}lh` as const }\n\t\tstatic rlh( value : number ) { return `${value}rlh` as const }\n\t\tstatic vh( value : number ) { return `${value}vh` as const }\n\t\tstatic vw( value : number ) { return `${value}vw` as const }\n\t\tstatic vi( value : number ) { return `${value}vi` as const }\n\t\tstatic vb( value : number ) { return `${value}vb` as const }\n\t\tstatic vmin( value : number ) { return `${value}vmin` as const }\n\t\tstatic vmax( value : number ) { return `${value}vmax` as const }\n\t\t\n\t\tstatic deg( value : number ) { return `${value}deg` as const }\n\t\tstatic rad( value : number ) { return `${value}rad` as const }\n\t\tstatic grad( value : number ) { return `${value}grad` as const }\n\t\tstatic turn( value : number ) { return `${value}turn` as const }\n\n\t\tstatic s( value : number ) { return `${value}s` as const }\n\t\tstatic ms( value : number ) { return `${value}ms` as const }\n\t\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_style_func_name =\n\t| 'calc'\n\t| 'hsla'\n\t| 'rgba'\n\t| 'var'\n\t| 'clamp'\n\t| 'scale'\n\t| 'cubic-bezier'\n\t| 'linear'\n\t| 'steps'\n\t| $mol_style_func_image\n\t| $mol_style_func_filter\n\t\n\texport type $mol_style_func_image =\n\t| 'url'\n\t| 'linear-gradient'\n\t| 'radial-gradient'\n\t| 'conic-gradient'\n\t\n\texport type $mol_style_func_filter =\n\t| 'blur'\n\t| 'brightness'\n\t| 'contrast'\n\t| 'drop-shadow'\n\t| 'grayscale'\n\t| 'hue-rotate'\n\t| 'invert'\n\t| 'opacity'\n\t| 'sepia'\n\t| 'saturate'\n\n\tconst { per } = $mol_style_unit\n\t\n\t/**\n\t * CSS Functions\n\t * @see https://mol.hyoo.ru/#!section=docs/=xwq9q5_f966fg\n\t */\n\texport class $mol_style_func<\n\t\tName extends $mol_style_func_name ,\n\t\tValue = unknown,\n\t> extends $mol_decor< Value > {\n\n\t\tconstructor(\n\t\t\treadonly name : Name,\n\t\t\tvalue : Value,\n\t\t) {\n\t\t\tsuper( value )\n\t\t}\n\n\t\tprefix() { return this.name + '(' }\n\t\tpostfix() { return ')' }\n\n\t\tstatic linear_gradient< Value >( value : Value ) {\n\t\t\treturn new $mol_style_func( 'linear-gradient' , value )\n\t\t}\n\n\t\tstatic radial_gradient< Value >( value : Value ) {\n\t\t\treturn new $mol_style_func( 'radial-gradient' , value )\n\t\t}\n\n\t\tstatic calc< Value >( value : Value ) {\n\t\t\treturn new $mol_style_func( 'calc' , value )\n\t\t}\n\n\t\tstatic vary< Name extends string, Value extends string >( name : Name, defaultValue? : Value ) {\n\t\t\treturn new $mol_style_func( 'var' , defaultValue ? [name, defaultValue] : name )\n\t\t}\n\n\t\tstatic url< Href extends string >( href : Href ) {\n\t\t\treturn new $mol_style_func( 'url' , JSON.stringify( href ) )\n\t\t}\n\n\t\tstatic hsla(\n\t\t\thue: number,\n\t\t\tsaturation: number,\n\t\t\tlightness: number,\n\t\t\talpha: number,\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t'hsla',\n\t\t\t\t[ hue , per( saturation ) , per( lightness ) , alpha ],\n\t\t\t)\n\t\t}\n\t\n\t\tstatic clamp(\n\t\t\tmin: $mol_style_unit_str< any >,\n\t\t\tmid: $mol_style_unit_str< any >,\n\t\t\tmax: $mol_style_unit_str< any >,\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t'clamp',\n\t\t\t\t[ min, mid, max ],\n\t\t\t)\n\t\t}\n\t\n\t\tstatic rgba(\n\t\t\tred: number,\n\t\t\tgreen: number,\n\t\t\tblue: number,\n\t\t\talpha: number,\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t'rgba',\n\t\t\t\t[ red , green , blue , alpha ],\n\t\t\t)\n\t\t}\n\t\n\t\tstatic scale(\n\t\t\tzoom: number,\n\t\t) {\n\t\t\treturn new $mol_style_func( 'scale', [ zoom ] )\n\t\t}\n\t\t\n\t\tstatic linear(\n\t\t\t...breakpoints : Array<number | [number, number | $mol_style_unit_str<'%'>]>\n\t\t){\n\t\t\treturn new $mol_style_func(\n\t\t\t\t\"linear\",\n\t\t\t\tbreakpoints.map((e) =>\n\t\t\t\t\tArray.isArray(e)\n\t\t\t\t\t\t? String(e[0]) +\n\t\t\t\t\t\t \" \" +\n\t\t\t\t\t\t (typeof e[1] === \"number\" ? e[1] + \"%\" : e[1].toString())\n\t\t\t\t\t\t: String(e)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\t\n\t\tstatic cubic_bezier(\n\t\t\tx1: number,\n\t\t\ty1: number,\n\t\t\tx2: number,\n\t\t\ty2: number\n\t\t){\n\t\t\treturn new $mol_style_func( 'cubic-bezier', [ x1, y1, x2, y2 ]);\n\t\t}\n\t\t\n\t\tstatic steps(value: number, step_position: 'jump-start' | 'jump-end' | 'jump-none' | 'jump-both' | 'start' | 'end'){\n\t\t\treturn new $mol_style_func( 'steps', [ value, step_position ] )\n\t\t}\n\t\t\n\t\tstatic blur(value?: $mol_style_unit_str<$mol_style_unit_length>){\n\t\t\treturn new $mol_style_func( 'blur', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic brightness(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'brightness', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic contrast(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'contrast', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic drop_shadow(\n\t\t\tcolor: $mol_style_properties_color,\n\t\t\tx_offset: $mol_style_unit_str<$mol_style_unit_length>,\n\t\t\ty_offset: $mol_style_unit_str<$mol_style_unit_length>,\n\t\t\tblur_radius?: $mol_style_unit_str<$mol_style_unit_length>\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t\"drop-shadow\",\n\t\t\t\tblur_radius\n\t\t\t\t\t? [color, x_offset, y_offset, blur_radius]\n\t\t\t\t\t: [color, x_offset, y_offset]\n\t\t\t);\n\t\t}\n\t\t\n\t\tstatic grayscale(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'grayscale', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic hue_rotate(value?: 0 | $mol_style_unit_str<$mol_style_unit_angle>){\n\t\t\treturn new $mol_style_func( 'hue-rotate', value ?? \"\")\n\t\t}\n\t\t\n\t\tstatic invert(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'invert', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic opacity(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'opacity', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic sepia(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'sepia', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic saturate(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'saturate', value ?? \"\" );\n\t\t}\n\t\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Create record of CSS variables. */\n\texport function $mol_style_prop< Keys extends string[] >(\n\t\tprefix: string ,\n\t\tkeys: Keys\n\t) {\n\t\t\n\t\tconst record = keys.reduce( ( rec , key: Keys[number] )=> {\n\t\t\t\n\t\t\trec[ key ] = $mol_style_func.vary( `--${ prefix }_${ key }` )\n\t\t\treturn rec\n\t\t\t\n\t\t}, {} as Record< Keys[number], $mol_style_func< 'var' > > )\n\t\t\n\t\treturn record\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport const $mol_key_store = new WeakMap< object, string >()\n\t\n\tconst TypedArray = Object.getPrototypeOf( Uint8Array )\n\n\t/** Returns string key for any value. */\n\texport function $mol_key< Value >( value : Value ) : string {\n\t\t\n\t\tif( typeof value === 'bigint' ) return value.toString() + 'n'\n\t\tif( typeof value === 'symbol' ) return value.description!\n\t\tif( !value ) return JSON.stringify( value )\n\t\tif( typeof value !== 'object' && typeof value !== 'function' ) return JSON.stringify( value )\n\t\t\n\t\treturn JSON.stringify( value, ( field, value )=> {\n\t\t\t\n\t\t\tif( typeof value === 'bigint' ) return value.toString() + 'n'\n\t\t\tif( typeof value === 'symbol' ) return value.description\n\t\t\tif( !value ) return value\n\t\t\tif( typeof value !== 'object' && typeof value !== 'function' ) return value\n\t\t\tif( Array.isArray( value ) ) return value\n\t\t\t\n\t\t\tconst proto = Reflect.getPrototypeOf( value )\n\t\t\tif( !proto ) return value\n\t\t\tif( Reflect.getPrototypeOf( proto ) === null ) return value\n\t\t\t\n\t\t\tif( 'toJSON' in value ) return value\n\t\t\tif( value instanceof RegExp ) return value.toString()\n\t\t\t// if( value instanceof DataView ) return [ ... new Uint8Array( value.buffer ) ]\n\t\t\tif( value instanceof TypedArray ) return [ ... value as any ]\n\t\t\t\n\t\t\tlet key = $mol_key_store.get( value )\n\t\t\tif( key ) return key\n\t\t\t\n\t\t\tkey = $mol_guid()\n\t\t\t$mol_key_store.set( value, key )\n\t\t\t\n\t\t\treturn key\n\t\t} )\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_timeout extends $mol_object2 {\n\n\t\tid : any\n\n\t\tconstructor(\n\t\t\tpublic delay : number ,\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis.id = setTimeout( task , delay )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tclearTimeout( this.id )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_frame extends $mol_after_timeout {\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper( 16 , task )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Decorates method to fiber to ensure it is executed only once inside other fiber.\n\t */\n\texport function $mol_wire_method<\n\t\tHost extends object,\n\t\tArgs extends readonly any[],\n\t>(\n\t\thost : Host,\n\t\tfield : PropertyKey,\n\t\tdescr? : TypedPropertyDescriptor< ( ... args: Args )=> any >,\n\t) {\n\t\t\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field ) as any\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\t\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst temp = $mol_wire_task.getter( orig )\n\t\tconst value = function( this: Host, ... args: Args ) {\n\t\t\tconst fiber = temp( this ?? null as any, args )\n\t\t\treturn fiber.sync()\n\t\t}\n\t\t\n\t\tObject.defineProperty( value , 'name' , { value : orig.name + ' ' } )\n\t\t\n\t\tObject.assign( value, { orig } )\n\t\tconst descr2 = { ... descr, value }\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Long-living fiber. */\n\texport class $mol_wire_atom<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_fiber< Host, Args, Result > {\n\n\t\tstatic solo<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\thost: Host,\n\t\t\ttask: ( this: Host, ... args: Args )=> Result,\n\t\t): $mol_wire_atom< Host, Args, Result > {\n\t\t\t\n\t\t\tconst field = task.name + '()'\n\t\t\t\n\t\t\tconst existen = Object.getOwnPropertyDescriptor( host ?? task, field )?.value\n\t\t\tif( existen ) return existen\n\t\t\t\n\t\t\tconst prefix = (host as any)?.[ Symbol.toStringTag ] ?? ( host instanceof Function ? $$.$mol_func_name( host ) : host )\n\t\t\tconst key = prefix + ( '.' + task.name + '<>' )\n\t\t\t\n\t\t\tconst fiber = new $mol_wire_atom( key, task, host, [] as any as Args )\n\t\t\t;( host as any ?? task )[ field ] = fiber\n\t\t\t\n\t\t\treturn fiber\n\t\t}\n\t\t\n\t\tstatic plex<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\thost: Host,\n\t\t\ttask: ( this: Host , ... args: Args )=> Result,\n\t\t\tkey: Args[0],\n\t\t): $mol_wire_atom< Host, Args, Result > {\n\t\t\t\n\t\t\tconst field = task.name + '()'\n\t\t\tlet dict = Object.getOwnPropertyDescriptor( host ?? task, field )?.value\n\t\t\tconst prefix = (host as any)?.[ Symbol.toStringTag ] ?? ( host instanceof Function ? $$.$mol_func_name( host ) : host )\n\t\t\tconst key_str = $mol_key( key )\n\t\t\t\n\t\t\tif( dict ) {\n\t\t\t\tconst existen = dict.get( key_str )\n\t\t\t\tif( existen ) return existen\n\t\t\t} else {\n\t\t\t\tdict = ( host as any ?? task )[ field ] = new Map<any,any>()\n\t\t\t}\n\t\t\t\n\t\t\tconst id = prefix + ( '.' + task.name ) + ( '<' + key_str.replace( /^\"|\"$/g, \"'\" ) + '>' )\n\t\t\tconst fiber = new $mol_wire_atom( id, task, host, [ key ] as any as Args )\n\t\t\tdict.set( key_str, fiber )\n\t\t\t\n\t\t\treturn fiber\n\t\t}\n\t\t\n\t\tstatic watching = new Set< $mol_wire_atom< any, any, any > >()\n\t\tstatic watcher = null as $mol_after_frame | null\n\t\t\n\t\tstatic watch() {\n\t\t\n\t\t\t$mol_wire_atom.watcher = new $mol_after_frame( $mol_wire_atom.watch )\n\t\t\t\n\t\t\tfor( const atom of $mol_wire_atom.watching ) {\n\t\t\t\t\n\t\t\t\tif( atom.cursor === $mol_wire_cursor.final ) {\n\t\t\t\t\t$mol_wire_atom.watching.delete( atom )\n\t\t\t\t} else {\n\t\t\t\t\tatom.cursor = $mol_wire_cursor.stale\n\t\t\t\t\tatom.fresh()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\twatch() {\n\t\t\t\n\t\t\tif( !$mol_wire_atom.watcher ) {\n\t\t\t\t$mol_wire_atom.watcher = new $mol_after_frame( $mol_wire_atom.watch )\n\t\t\t}\n\t\t\t\n\t\t\t$mol_wire_atom.watching.add( this )\n\t\t\t\n\t\t}\n\t\t\n\t\t/**\n\t\t * Update atom value through another temp fiber.\n\t\t */\n\t\t@ $mol_wire_method\n\t\tresync( args: Args ) {\n\t\t\t\n\t\t\t// enforce pulling tasks abort\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < this.sub_from;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tif( pub && pub instanceof $mol_wire_task ) {\n\t\t\t\t\tpub.destructor()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn this.put( this.task.call( this.host!, ... args ) )\n\t\t}\n\t\t\n\t\t@ $mol_wire_method\n\t\tonce() {\n\t\t\treturn this.sync()\n\t\t}\n\t\t\n\t\tchannel() {\n\t\t\treturn Object.assign( ( next?: $mol_type_foot< Args > )=> {\n\t\t\t\t\t\n\t\t\t\tif( next !== undefined ) return this.resync( [ ... this.args, next ] as any ) as never\n\t\t\t\tif( !$mol_wire_fiber.warm ) return this.result() as never\n\t\t\t\t\n\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\treturn this.once()\n\t\t\t\t} else {\n\t\t\t\t\treturn this.sync()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}, { atom: this as $mol_wire_atom< Host, Args, Result > } )\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t\n\t\t\tsuper.destructor()\n\t\t\t\n\t\t\tif( this.pub_from === 0 ) {\n\t\t\t\t;( this.host as any ?? this.task )[ this.field() ] = null\n\t\t\t} else {\n\t\t\t\t;( this.host as any ?? this.task )[ this.field() ].delete( $mol_key( this.args[0] ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tput( next: Result | Error | Promise< Result | Error > ) {\n\t\t\t\n\t\t\tconst prev = this.cache\n\t\t\t\n\t\t\tupdate: if( next !== prev ) {\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tif( $mol_compare_deep( prev, next ) ) break update\n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t$mol_fail_log( error )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_owning_check( this, prev ) ) {\n\t\t\t\t\tprev.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_owning_catch( this, next ) ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t(next as any)[ Symbol.toStringTag ] = (this as any)[ Symbol.toStringTag ]\n\t\t\t\t\t} catch { // Promises throw in strict mode\n\t\t\t\t\t\tObject.defineProperty( next, Symbol.toStringTag, { value: (this as any)[ Symbol.toStringTag ] } )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !this.sub_empty ) this.emit()\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.cache = next\n\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\n\t\t\tif( $mol_promise_like( next ) ) return next\n\t\t\t\n\t\t\tthis.complete_pubs()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\t/** Decorates solo object channel to [mol_wire_atom](../atom/atom.ts). */\n\texport function $mol_wire_solo< Args extends any[] >(\n\t\thost: object,\n\t\tfield: string,\n\t\tdescr?: TypedPropertyDescriptor< ( ... args: Args )=> any >\n\t) {\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field )\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst descr2 = {\n\t\t\t... descr,\n\t\t\tvalue: function( this: typeof host, ... args: Args ){\n\t\t\t\n\t\t\t\tlet atom = $mol_wire_atom.solo( this, orig )\n\t\t\t\t\n\t\t\t\tif(( args.length === 0 )||( args[0] === undefined )) {\n\t\t\t\t\t\n\t\t\t\t\tif( !$mol_wire_fiber.warm ) return atom.result()\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\t\treturn atom.once()\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn atom.sync()\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn atom.resync( args )\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tReflect.defineProperty( descr2.value , 'name' , { value : orig.name + ' ' } )\n\t\tReflect.defineProperty( descr2.value , 'length' , { value : orig.length } )\n\t\tObject.assign( descr2.value, { orig } )\n\t\t\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2 as any as TypedPropertyDescriptor< ( ... args: First_optional< Args > )=> any >\n\t}\n\n\ttype First_optional< Args extends any[] > = Args extends []\n\t\t? []\n\t\t: [ Args[0] | undefined, ... $mol_type_tail< Args > ]\n\n}\n","namespace $ {\n\t\n\t/** Reactive memoizing multiplexed property decorator. */\n\texport function $mol_wire_plex< Args extends [ any, ... any[] ] >(\n\t\thost: object,\n\t\tfield: string,\n\t\tdescr?: TypedPropertyDescriptor< ( ... args: Args )=> any >\n\t) {\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field )\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst descr2 = {\n\t\t\t... descr,\n\t\t\tvalue: function( this: typeof host, ... args: Args ) {\n\t\t\t\n\t\t\t\tlet atom = $mol_wire_atom.plex( this, orig, args[0] )\n\t\t\t\t\n\t\t\t\tif(( args.length === 1 )||( args[1] === undefined )) {\n\t\t\t\t\t\n\t\t\t\t\tif( !$mol_wire_fiber.warm ) return atom.result()\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\t\treturn atom.once()\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn atom.sync()\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn atom.resync( args )\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tReflect.defineProperty( descr2.value , 'name' , { value : orig.name + ' ' } )\n\t\tReflect.defineProperty( descr2.value , 'length' , { value : orig.length } )\n\t\tObject.assign( descr2.value, { orig } )\n\t\t\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2\n\t}\n\t\n}\n","namespace $ {\n\n\t/**\n\t * Reactive memoizing solo property decorator from [mol_wire](../wire/README.md)\n\t * @example\n\t * '@' $mol_mem\n\t * name(next?: string) {\n\t * \treturn next ?? 'default'\n\t * }\n\t * @see https://mol.hyoo.ru/#!section=docs/=qxmh6t_sinbmb\n\t */\n\texport let $mol_mem = $mol_wire_solo\n\n\t/**\n\t * Reactive memoizing multiplexed property decorator [mol_wire](../wire/README.md)\n\t * @example\n\t * '@' $mol_mem_key\n\t * name(id: number, next?: string) {\n\t * return next ?? 'default'\n\t * }\n\t * @see https://mol.hyoo.ru/#!section=docs/=qxmh6t_sinbmb\n\t */\n\texport let $mol_mem_key = $mol_wire_plex\n}\n","namespace $ {\n\t/**\n\t * Decorates method to fiber to ensure it is executed only once inside other fiber from [mol_wire](../wire/README.md)\n\t * @see https://mol.hyoo.ru/#!section=docs/=1fcpsq_1wh0h2\n\t */\n\texport let $mol_action = $mol_wire_method\n}\n","namespace $ {\n\n\t/** State of arguments like `foo=bar xxx` */\n\texport class $mol_state_arg extends $mol_object {\n\t\t\n\t\tstatic prolog = ''\n\t\tstatic separator = ' '\n\t\t\n\t\t@ $mol_mem\n\t\tstatic href( next? : string ) {\n\t\t\treturn next || process.argv.slice( 2 ).join( ' ' )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic href_normal() {\n\t\t\treturn this.link({})\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic dict( next? : { [ key : string ] : string | null } ) {\n\t\t\tif( next !== void 0 ) this.href( this.make_link( next ) )\n\t\t\t\n\t\t\tvar href = this.href()\n\t\t\tvar chunks = href.split( ' ' )\n\t\t\t\n\t\t\tvar params : { [ key : string ] : string } = {}\n\t\t\tchunks.forEach(\n\t\t\t\tchunk => {\n\t\t\t\t\tif( !chunk ) return\n\t\t\t\t\tvar vals = chunk.split( '=' ).map( decodeURIComponent )\n\t\t\t\t\tparams[ vals.shift()! ] = vals.join('=')\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\treturn params as Readonly< typeof params >\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic value( key : string , next? : string | null ) {\n\t\t\tif( next === void 0 ) return this.dict()[ key ] ?? null\n\t\t\tthis.href( this.link( { [ key ] : next } ) )\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tstatic link( next : Record<string, string | null> ) {\n\t\t\tconst params : Record<string, string | null> = {}\n\t\t\t\n\t\t\tvar prev = this.dict()\n\t\t\tfor( var key in prev ) {\n\t\t\t\tparams[ key ] = prev[ key ]\n\t\t\t}\n\t\t\t\n\t\t\tfor( var key in next ) {\n\t\t\t\tparams[ key ] = next[ key ]\n\t\t\t}\n\t\t\t\n\t\t\treturn this.make_link( params )\n\t\t}\n\t\t\n\t\tstatic make_link( next : Record<string, string | null>) {\n\t\t\tconst chunks : string[] = []\n\t\t\tfor( const key in next ) {\n\t\t\t\tif( next[ key ] !== null ) {\n\t\t\t\t\tchunks.push([key, next[key]!].map(encodeURIComponent).join('='))\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn chunks.join( ' ' )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tstatic go( next : { [ key : string ] : string | null } ) {\n\t\t\tthis.href( this.link( next ) )\n\t\t}\n\t\t\n\t\tstatic commit() {}\n\t\t\n\t\tconstructor( public prefix = '' ) {\n\t\t\tsuper()\n\t\t}\n\t\t\n\t\tvalue( key : string , next? : string ) {\n\t\t\treturn ( this.constructor as typeof $mol_state_arg ).value( this.prefix + key , next )\n\t\t}\n\t\t\n\t\tsub( postfix : string ) {\n\t\t\treturn new ( this.constructor as typeof $mol_state_arg )( this.prefix + postfix + '.' )\n\t\t}\n\t\t\n\t\tlink( next : Record<string, string | null> ) {\n\t\t\tconst prefix = this.prefix\n\t\t\tconst dict : Record<string, string | null> = {}\n\t\t\tfor( var key in next ) {\n\t\t\t\tdict[ prefix + key ] = next[ key ]\n\t\t\t}\n\t\t\treturn ( this.constructor as typeof $mol_state_arg ).link( dict )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_media extends $mol_object2 {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic match( query: string, next?: boolean ) {\n\t\t\t\n\t\t\tif( next !== undefined ) return next\n\t\t\t\n\t\t\tconst res = this.$.$mol_dom_context.matchMedia?.( query ) ?? {}\n\t\t\tres.onchange = ()=> this.match( query, res.matches )\n\t\t\t\n\t\t\treturn res.matches\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Disable reaping of current subscriber\n\t */\n\texport function $mol_wire_solid() {\n\t\tlet current = $mol_wire_auto() as $mol_wire_fiber< any, any, any >\n\t\tif( current!.temp ) current = current!.host\n\t\tif( current!.reap !== nothing ) {\n\t\t\tcurrent?.sub_on( sub, sub.data.length )\n\t\t}\n\t\tcurrent!.reap = nothing\n\t}\n\t\n\tconst nothing = ()=> {}\n\tconst sub = new $mol_wire_pub_sub\n\t\n}\n","namespace $ {\n\texport let $mol_mem_persist = $mol_wire_solid\n}\n","namespace $ {\n\t\n\t/** Run code without state changes */\n\texport function $mol_wire_probe< Value >(\n\t\ttask : ()=> Value, def?: Value\n\t) : Value | undefined {\n\t\t\n\t\tconst warm = $mol_wire_fiber.warm\n\t\t\n\t\ttry {\n\t\t\t$mol_wire_fiber.warm = false\n\t\t\tconst res = task()\n\t\t\tif( res === undefined ) return def\n\t\t\treturn res\n\t\t} finally {\n\t\t\t$mol_wire_fiber.warm = warm\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\texport let $mol_mem_cached = $mol_wire_probe\n}\n","namespace $ {\n\texport class $mol_storage extends $mol_object2 {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic native() {\n\t\t\treturn this.$.$mol_dom_context.navigator.storage ?? { // exists only in secure context\n\t\t\t\tpersisted: async ()=> false,\n\t\t\t\tpersist: async ()=> false,\n\t\t\t\testimate: async ()=> ({}),\n\t\t\t\tgetDirectory: async ()=> null! as FileSystemHandle,\n\t\t\t} as StorageManager\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic persisted( next?: boolean, cache?: 'cache' ): boolean {\n\t\t\t\n\t\t\t$mol_mem_persist()\n\t\t\t\n\t\t\tif( cache ) return Boolean( next )\n\t\t\t\n\t\t\tconst native = this.native()\n\t\t\tif( next && !$mol_mem_cached( ()=> this.persisted() ) ) {\n\t\t\t\tnative.persist().then( actual => {\n\t\t\t\t\t\n\t\t\t\t\tsetTimeout( ()=> this.persisted( actual, 'cache' ), 5000 )\n\t\t\t\t\t\n\t\t\t\t\tif( actual ) this.$.$mol_log3_done({ place: `$mol_storage`, message: `Persist: Yes` })\n\t\t\t\t\telse this.$.$mol_log3_fail({ place: `$mol_storage`, message: `Persist: No` })\n\t\t\t\t\t\n\t\t\t\t} )\n\t\t\t}\n\t\t\t\n\t\t\treturn next ?? $mol_wire_sync( native ).persisted()\n\t\t}\n\t\t\n\t\tstatic estimate() {\n\t\t\treturn $mol_wire_sync( this.native() ?? {} ).estimate()\n\t\t}\n\t\t\n\t\tstatic dir() {\n\t\t\treturn $mol_wire_sync( this.native() ).getDirectory()\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\texport class $mol_state_local< Value > extends $mol_object {\n\t\t\n\t\tstatic 'native()' : Pick< Storage , 'getItem'|'setItem'|'removeItem' >\n\t\tstatic native() {\n\t\t\tif( this['native()'] ) return this['native()']\n\n\t\t\tcheck : try {\n\t\t\t\tconst native = $mol_dom_context.localStorage\n\t\t\t\tif( !native ) break check\n\t\t\t\t\n\t\t\t\tnative.setItem( '' , '' )\n\t\t\t\tnative.removeItem( '' )\n\t\t\t\treturn this['native()'] = native\n\t\t\t} catch( error: any ) {\n\t\t\t\tconsole.warn( error )\n\t\t\t}\n\n\t\t\treturn this['native()'] = {\n\t\t\t\tgetItem( key : string ) {\n\t\t\t\t\treturn (this as any)[ ':' + key ]\n\t\t\t\t} ,\n\t\t\t\tsetItem( key : string , value : string ) {\n\t\t\t\t\t(this as any)[ ':' + key ] = value\n\t\t\t\t} ,\n\t\t\t\tremoveItem( key : string ) {\n\t\t\t\t\t(this as any)[ ':' + key ] = void 0\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic changes( next?: StorageEvent ) { return next }\n\n\t\t@ $mol_mem_key\n\t\tstatic value< Value >(\n\t\t\tkey : string ,\n\t\t\tnext? : Value | null ,\n\t\t) : Value | null {\n\t\t\t\n\t\t\tthis.changes()\n\t\t\t\n\t\t\tif( next === void 0 ) return JSON.parse( this.native().getItem( key ) || 'null' )\n\t\t\t\n\t\t\tif( next === null ) {\n\t\t\t\tthis.native().removeItem( key )\n\t\t\t} else {\n\t\t\t\tthis.native().setItem( key , JSON.stringify( next ) )\n\t\t\t\tthis.$.$mol_storage.persisted( true )\n\t\t\t}\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tprefix() { return '' }\n\t\t\n\t\tvalue( key : string , next? : Value ) {\n\t\t\treturn $mol_state_local.value( this.prefix() + '.' + key , next )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ { \n\t/**\n\t * Returns closure that returns constant value.\n\t * @example\n\t * const rnd = $mol_const( Math.random() )\n\t */\n\texport function $mol_const< Value >( value : Value ) {\n\t\tconst getter = <{ () : Value , '()' : Value }> ( () => value )\n\t\tgetter['()'] = value\n\t\t;(getter as any)[ Symbol.toStringTag ] = value\n\t\t;(getter as any )[ $mol_dev_format_head ] = ()=> $mol_dev_format_span( {} , '()=> ', $mol_dev_format_auto( value ) )\n\t\treturn getter\n\t}\n}\n","namespace $ {\n\t\n\t/** Convert a pseudo-synchronous (Suspense API) API to an explicit asynchronous one (for integrating with external systems). */\n\texport function $mol_wire_async< Host extends object >( obj: Host ) {\n\t\t\n\t\tlet fiber: $mol_wire_fiber< any, any, any >\n\t\tconst temp = $mol_wire_task.getter( obj as ( ... args: any[] )=> any )\n\t\t\n\t\treturn new Proxy( obj, {\n\t\t\t\n\t\t\tget( obj, field ) {\n\t\t\t\t\n\t\t\t\tconst val = (obj as any)[ field ]\n\t\t\t\tif( typeof val !== 'function' ) return val\n\t\t\t\t\n\t\t\t\tlet fiber: $mol_wire_fiber< any, any, any >\n\t\t\t\tconst temp = $mol_wire_task.getter( val ) \n\t\t\t\t\n\t\t\t\treturn function $mol_wire_async( this: Host, ... args: any[] ) {\n\t\t\t\t\tfiber?.destructor()\n\t\t\t\t\tfiber = temp( obj, args )\n\t\t\t\t\treturn fiber.async()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t},\n\t\t\t\n\t\t\tapply( obj, self, args ) {\n\t\t\t\tfiber?.destructor()\n\t\t\t\tfiber = temp( self, args )\n\t\t\t\treturn fiber.async()\n\t\t\t},\n\t\t\t\n\t\t} ) as unknown as ObjectOrFunctionResultPromisify<Host>\n\t\t\n\t}\n\n\ttype FunctionResultPromisify<Some> = Some extends (...args: infer Args) => infer Res\n\t\t? Res extends PromiseLike<unknown> ? Some : (...args: Args) => Promise<Res>\n\t\t: Some\n\n\ttype MethodsResultPromisify<Host extends Object> = {\n\t\t[K in keyof Host]: FunctionResultPromisify<Host[K]>\n\t}\n\n\ttype ObjectOrFunctionResultPromisify<Some> = (\n\t\tSome extends (...args: any) => unknown ? FunctionResultPromisify<Some> : {}\n\t) & ( Some extends Object ? MethodsResultPromisify<Some> : Some )\n\n}\n","namespace $ {\n\texport class $mol_lock extends $mol_object {\n\t\tprotected promise = null as null | Promise<void>\n\n\t\tasync wait() {\n let next = () => {}\n\t\t\tlet destructed = false\n const task = $mol_wire_auto()\n\t\t\tif (! task) return next\n\n\t\t\tconst destructor = task.destructor.bind(task)\n task.destructor = ()=> {\n\t\t\t\tdestructor()\n\t\t\t\tdestructed = true\n next()\n }\n\n\t\t\tlet promise\n\n\t\t\tdo {\n\t\t\t\tpromise = this.promise\n\t\t\t\tawait promise\n\t\t\t\tif (destructed) return next\n\t\t\t} while (promise !== this.promise)\n\n\t\t\tthis.promise = new Promise(done => { next = done })\n\t\t\treturn next\n\t\t}\n\n\t\tgrab() { return $mol_wire_sync(this).wait() }\n\t}\n}\n","namespace $ {\n export function $mol_compare_array<Value extends ArrayLike<unknown>>(a: Value, b: Value): boolean {\n\t\tif (a === b) return true\n\t\tif (Object.getPrototypeOf(a) !== Object.getPrototypeOf(b)) return false\n\t\tif (a.length !== b.length) return false\n\n\t\tfor (let i = 0; i < a.length; i++)\n\t\t\tif (a[i] !== b[i]) return false\n\n\t\treturn true\n\t}\n}\n","namespace $ {\n\n\tconst decoders = {} as { [ key in $mol_charset_encoding ]?: TextDecoder }\n\n\texport function $mol_charset_decode(\n\t\tbuffer: AllowSharedBufferSource,\n\t\tencoding: $mol_charset_encoding = 'utf8',\n\t) {\n\t\t\n\t\tlet decoder = decoders[ encoding ]\n\t\tif( !decoder ) decoder = decoders[ encoding ] = new TextDecoder( encoding )\n\t\t\n\t\treturn decoder.decode( buffer )\n\t}\n\n}\n","namespace $ {\n\tconst TextEncoder = globalThis.TextEncoder ?? $node.util.TextEncoder\n\n\tconst encoder = new TextEncoder()\n\n\texport function $mol_charset_encode(value: string) {\n\t\treturn encoder.encode(value) as Uint8Array< ArrayBuffer >\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_file_transaction_mode = 'create' | 'exists_truncate' | 'exists_fail' | 'read_only'\n\t\t| 'write_only' | 'read_write' | 'append'\n\n\texport type $mol_file_transaction_buffer = ArrayBufferView\n\n\texport class $mol_file_transaction extends $mol_object {\n\t\tpath() { return '' }\n\n\t\tmodes() { return [] as readonly $mol_file_transaction_mode[] }\n\n\t\twrite(options: {\n\t\t\tbuffer: ArrayBufferView | string | readonly ArrayBufferView[],\n\t\t\toffset?: number | null,\n\t\t\tlength?: number | null,\n\t\t\tposition?: number | null,\n\t\t}) {\n\t\t\treturn 0\n\t\t}\n\n\t\tread() {\n\t\t\treturn new Uint8Array()\n\t\t}\n\n\t\ttruncate(size: number) {}\n\n\t\tclose() {}\n\n\t\toverride destructor() {\n\t\t\tthis.close()\n\t\t}\n\n\t}\n}\n","namespace $ {\n\tenum file_modes {\n\t\t/** create if it doesn't already exist */\n\t\tcreate = $node.fs.constants.O_CREAT,\n\t\t/** truncate to zero size if it already exists */\n\t\texists_truncate = $node.fs.constants.O_TRUNC,\n\t\t/** throw exception if it already exists */\n\t\texists_fail = $node.fs.constants.O_EXCL,\n\t\tread_only = $node.fs.constants.O_RDONLY,\n\t\twrite_only = $node.fs.constants.O_WRONLY,\n\t\tread_write = $node.fs.constants.O_RDWR,\n\t\t/** data will be appended to the end */\n\t\tappend = $node.fs.constants.O_APPEND,\n\t}\n\n\tfunction mode_mask(modes: readonly $mol_file_transaction_mode[]) {\n\t\treturn modes.reduce( ( res, mode )=> res | file_modes[ mode ], 0 )\n\t}\n\n\texport class $mol_file_transaction_node extends $mol_file_transaction {\n\t\t@ $mol_mem\n\t\tprotected descr() {\n\t\t\t$mol_wire_solid()\n\t\t\treturn $node.fs.openSync(this.path(), mode_mask(this.modes()) )\n\t\t}\n\n\t\toverride write({ buffer, offset = 0, length, position = null }: {\n\t\t\tbuffer: ArrayBufferView | string | readonly ArrayBufferView[],\n\t\t\toffset?: number | null,\n\t\t\tlength?: number | null,\n\t\t\tposition?: number | null,\n\t\t}) {\n\t\t\tif (Array.isArray(buffer)) {\n\t\t\t\treturn $node.fs.writevSync( this.descr(), buffer, position ?? undefined)\n\t\t\t}\n\n\t\t\tif (typeof buffer === 'string') {\n\t\t\t\treturn $node.fs.writeSync( this.descr(), buffer, position )\n\t\t\t}\n\n\t\t\tlength = length ?? (buffer as ArrayBufferView).byteLength\n\n\t\t\treturn $node.fs.writeSync( this.descr(), buffer as NodeJS.ArrayBufferView, offset, length, position )\n\t\t}\n\n\t\toverride truncate(size: number) {\n\t\t\t$node.fs.ftruncateSync(this.descr())\n\t\t}\n\n\t\toverride read() {\n\t\t\treturn $mol_file_node_buffer_normalize($node.fs.readFileSync(this.descr()) as Buffer< ArrayBuffer >)\n\t\t}\n\n\t\toverride close() {\n\t\t\t$node.fs.closeSync(this.descr())\n\t\t}\n\n\t}\n\n\t$.$mol_file_transaction = $mol_file_transaction_node\n}\n","namespace $ {\n\n\texport class $mol_file_base extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic absolute<This extends typeof $mol_file_base>(this: This, path : string ) {\n\t\t\treturn this.make<typeof $mol_file_base>({\n\t\t\t\tpath : $mol_const( path )\n\t\t\t}) as InstanceType< This >\n\t\t}\n\n\t\tstatic relative<This extends typeof $mol_file_base>(this: This, path : string ) : InstanceType<This> {\n\t\t\tthrow new Error( 'Not implemented yet' )\n\t\t}\n\t\t\n\t\tstatic base = ''\n\t\t\n\t\tpath() {\n\t\t\treturn '.'\n\t\t}\n\t\t\n\t\tparent() {\n\t\t\treturn this.resolve( '..' )\n\t\t}\n\n\t\t@ $mol_action\n\t\texists_cut() { return this.exists() }\n\n\t\tprotected root() {\n\t\t\tconst path = this.path()\n\t\t\tconst base = (this.constructor as typeof $mol_file_base).base\n\n\t\t\t// Если путь выше или равен base или если parent такойже как и this - считаем это корнем\n\t\t\treturn base.startsWith(path) || this == this.parent()\n\t\t}\n\n\t\t@ $mol_mem\n\t\tprotected stat(next? : $mol_file_stat | null, virt?: 'virt') {\n\n\t\t\tconst path = this.path()\n\t\t\tconst parent = this.parent()\n\n\t\t\t// Отслеживать проверку наличия родительской папки не стоит до корня диска\n\t\t\t// Лучше ограничить mam-ом\n\t\t\tif ( ! this.root() ) {\n\t\t\t\t/*\n\t\t\t\tЕсли parent папка удалилась, надо ресетнуть все объекты в ней на любой глубине.\n\t\t\t\tНапример, rm -rf с последующим git pull: parent папка может удалиться, потом создасться,\n\t\t\t\tа текущая папка успеет только удалиться до момента выполнения stat.\n\t\t\t\tПоэтому parent.exists() не запустит перевычисления, нужна именно parent.version()\n\n\t\t\t\tОднако, parent.version() меняется не только при удалении, будет ложное срабатывание\n\t\t\t\tС этим придется мириться, красивого решения пока нет.\n\t\t\t\t*/\n\n\t\t\t\tparent.version()\n\t\t\t}\n\t\t\tparent.watcher()\n\n\t\t\tif( virt ) return next ?? null\n\t\t\t\n\t\t\treturn next ?? this.info(path)\n\t\t}\n\n\t\tprotected static changed = new Set<$mol_file_base>\n\n\t\tprotected static frame = null as null | $mol_after_timeout\n\n\t\tprotected static changed_add(type: 'change' | 'rename', path: string) {\n\t\t\tif (/([\\/\\\\]\\.|___$)/.test( path )) return\n\n\t\t\tconst file = this.relative( path.at(-1) === '/' ? path.slice(0, -1) : path )\n\t\t\t// console.log(type, path)\n\n\t\t\t// add (change): добавился файл - у parent надо обновить список sub, если он был заюзан\n\t\t\t// change, unlink (rename): обновился или удалился файл - ресетим\n\t\t\t// addDir (change), добавилась папка, у parent обновляем список директорий в sub\n\t\t\t// дочерние ресетим\n\n\t\t\t// unlinkDir (rename), удалилась папка, ресетим ее\n\t\t\t// stat у всех дочерних обновится сам, т.к. связан с parent.version()\n\t\t\tthis.changed.add(file)\n\n\t\t\tif (! this.watching) return\n\n\t\t\t// throttle, пока события поступают не сбрасываем.\n\t\t\t// аналог awaitWriteFinish из chokidar\n\t\t\t// интервалы между change-сообщениями модифицируемого файла должны быть меньше watch_debounce\n\t\t\tthis.frame?.destructor()\n\t\t\tthis.frame = new this.$.$mol_after_timeout(this.watch_debounce(), () => {\n\t\t\t\tif (! this.watching) return\n\t\t\t\tthis.watching = false\n\t\t\t\t$mol_wire_async(this).flush()\n\t\t\t} )\n\t\t}\n\n\t\t/**\n\t\t * Должно быть больше, чем время между событиями от вотчера при записи внешним процессом.\n\t\t * Иначе запуск ресетов паралельно с изменением может привести к неконсистентности.\n\t\t */\n\t\tstatic watch_debounce() { return 500 }\n\n\t\t@ $mol_action\n\t\tstatic flush() {\n\t\t\t// Пока flush работает, вотчер сюда не заходит, но может добавлять новые изменения\n\t\t\t// на каждом перезапуске они применятся\n\t\t\t// Пока run выполняется, изменения накапливаются, в конце run вызывается flush\n\t\t\t// Пока применяются изменения, run должен ожидать конца flush\n\n\t\t\tfor (const file of this.changed) {\n\t\t\t\tconst parent = file.parent()\n\n\t\t\t\ttry {\n\t\t\t\t\tif ( $mol_wire_probe(() => parent.sub()) ) parent.sub(null)\n\t\t\t\t\tfile.reset()\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif ($mol_fail_catch(error)) $mol_fail_log(error)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.changed.clear()\n\t\t\tthis.watching = true\n\n\t\t\t// this.watch_wd?.destructor()\n\t\t\t// this.watch_wd = null\n\t}\n\n\t\tprotected static watching = true\n\n\t\tprotected static lock = new $mol_lock\n\n\t\t@ $mol_action\n\t\tprotected static watch_off(path: string) {\n\t\t\tthis.watching = false\n\t\t\t// run должен ожидать конца flush\n\t\t\tthis.flush()\n\t\t\tthis.watching = false\n\n\t\t\t/*\n\t\t\twatch запаздывает и событие может прилететь через 3 сек после окончания сайд эффекта\n\t\t\tпоэтому добавляем папку, которую меняет side_effect\n\t\t\tКогда дойдет до выполнения flush, он ресетнет ее\n\t\t\t\n\t\t\tИначе будут лишние срабатывания\n\t\t\tНапример, удалили hyoo/board, watch ресетит и exists начинает отдавать false, срабатывает git clone\n\t\t\tСразу после него событие addDir еще не успело прийти,\n\t\t\tна следующем перезапуске вызывается git pull, т.к.\n\t\t\tс точки зрения реактивной системы hyoo/board еще не существует.\n\t\t\t*/\n\t\t\tthis.changed.add(this.absolute(path))\n\t\t}\n\t\n\t\t// protected static watch_wd = null as null | $mol_after_timeout\n\n\t\tstatic unwatched<Result>(side_effect: () => Result, affected_dir: string) {\n\t\t\t// ждем, пока выполнится предыдущий unwatched\n\t\t\tconst unlock = this.lock.grab()\n\t\t\tthis.watch_off(affected_dir)\n\n\t\t\ttry {\n\t\t\t\tconst result = side_effect()\n\t\t\t\tthis.flush()\n\t\t\t\tunlock()\n\t\t\t\treturn result\n\t\t\t} catch(e) {\n\t\t\t\tif (! $mol_promise_like(e)) {\n\t\t\t\t\tthis.flush()\n\t\t\t\t\tunlock()\n\t\t\t\t}\n\t\t\t\t$mol_fail_hidden(e)\n\t\t\t}\n\t\t}\n\n\t\treset() {\n\t\t\tthis.stat( null )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tmodified() { return this.stat()?.mtime ?? null }\n\n\t\t@ $mol_mem\n\t\tversion() {\n\t\t\tconst next = this.stat()?.mtime.getTime().toString( 36 ).toUpperCase() ?? ''\n\t\t\t// console.log('version', next, this.path())\n\t\t\treturn next\n\t\t}\n\n\t\tprotected info( path: string ) { return null as null | $mol_file_stat }\n\t\tprotected ensure() {}\n\t\tprotected drop() {}\n\t\tprotected copy(to: string) {}\n\t\tprotected read(): Uint8Array<ArrayBuffer> { return new Uint8Array }\n\t\tprotected write(buffer: Uint8Array<ArrayBuffer>) { }\n\t\tprotected kids() {\n\t\t\treturn [] as readonly this[]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\treadable(opts: { start?: number, end?: number }) {\n\t\t\treturn new ReadableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\twritable(opts: { start?: number }) {\n\t\t\treturn new WritableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t\t// open( ... modes: readonly $mol_file_mode[] ) { return 0 }\n\n\t\t@ $mol_mem\n\t\tbuffer( next? : Uint8Array<ArrayBuffer> ): Uint8Array<ArrayBuffer> {\n\n\t\t\t// Если версия пустая - возвращаем пустой буфер\n\t\t\tlet readed: Uint8Array<ArrayBuffer> = new Uint8Array()\n\n\t\t\tif( next === undefined ) {\n\t\t\t\t// Если меняется версия файла, буфер надо перечитать\n\t\t\t\tif ( this.version() ) readed = this.read()\n\t\t\t}\n\n\t\t\tconst prev = $mol_mem_cached( ()=> this.buffer() )\n\t\t\tconst changed = prev === undefined || ! $mol_compare_array( prev, next ?? readed)\n\n\t\t\tif( prev !== undefined && changed ) {\n\t\t\t\t// Логируем, если повторно читаем/пишем и буфер поменялся\n\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\tplace: `$mol_file_node.buffer()`,\n\t\t\t\t\tmessage: 'Changed' ,\n\t\t\t\t\tpath: this.relate() ,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (next === undefined) return changed ? readed : prev\n\n\t\t\t// Если буфер при записи не поменялся и файл не удаляли перед этим - не записываем новую версию.\n\t\t\t// Если записывать, это приведет к смене mtime и вотчер снова триггернется, даже если содержимое файла не поменялось.\n\n\t\t\t// В этом алгоритме есть изъян.\n\t\t\t// Если файл записали, потом отключили вотчер, кто-то из вне его поменял, потом включили вотчер, снова записали тот же буфер,\n\t\t\t// то буфер не запишется на диск, т.к. кэш не консистентен с диском.\n\t\t\t\n\t\t\tif (! changed && this.exists()) return prev\n\t\t\t\n\t\t\tthis.parent().exists( true )\n\t\t\tthis.stat( this.stat_make(next.length), 'virt' )\n\n\t\t\tthis.write(next)\n\n\t\t\treturn next\n\n\t\t}\n\n\t\t@ $mol_action\n\t\tstat_make(size: number) {\n\t\t\tconst now = new Date()\n\t\t\treturn {\n\t\t\t\ttype: 'file',\n\t\t\t\tsize,\n\t\t\t\tatime: now,\n\t\t\t\tmtime: now,\n\t\t\t\tctime: now,\n\t\t\t} as const\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tclone(to: string) {\n\t\t\tif (! this.exists() ) return null\n\n\t\t\tconst target = (this.constructor as typeof $mol_file_base).absolute(to) as this\n\n\t\t\ttry {\n\t\t\t\tthis.version()\n\t\t\t\ttarget.parent().exists(true)\n\t\t\t\tthis.copy(to)\n\t\t\t\ttarget.reset()\n\t\t\t\treturn target\n\t\t\t} catch (error) {\n\t\t\t\tif ( $mol_fail_catch(error)) {\n\t\t\t\t\tconsole.error(error)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t}\n\n\t\t// static watch_root = ''\n\n\t\t// static watcher_warned = false\n\t\twatcher() {\n\t\t\t// const constructor = this.constructor as typeof $mol_file_base\n\t\t\t// if (! constructor.watcher_warned) {\n\t\t\t// \tconsole.warn(`${constructor}.watcher() not implemented`)\n\t\t\t// \tconstructor.watcher_warned = true\n\t\t\t// }\n\n\t\t\treturn {\n\t\t\t\tdestructor() {}\n\t\t\t}\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\texists( next? : boolean ) {\n\t\t\t\n\t\t\tconst exists = Boolean( this.stat() )\n\n\t\t\t// console.log('exists current', exists, 'next', next, this.path())\n\t\t\tif( next === undefined ) return exists\n\t\t\tif( next === exists ) return exists\n\n\t\t\tif( next ) {\n\t\t\t\tthis.parent().exists( true )\n\t\t\t\tthis.ensure()\n\t\t\t} else {\n\t\t\t\tthis.drop()\n\t\t\t}\n\n\t\t\tthis.reset()\n\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttype() {\n\t\t\treturn this.stat()?.type ?? ''\n\t\t}\n\t\t\n\t\tname() {\n\t\t\treturn this.path().replace( /^.*\\//, '' )\n\t\t}\n\t\t\n\t\text() {\n\t\t\tconst match = /((?:\\.\\w+)+)$/.exec( this.path() )\n\t\t\treturn match ? match[ 1 ].substring( 1 ) : ''\n\t\t}\n\n\t\ttext(next?: string, virt?: 'virt') {\n\t\t\t// Если записываем text, и вотчер ресетнул записанный файл,\n\t\t\t// то надо снова его обновить, вызвать логику, которая делала пуш в text.\n\t\t\t// Например файл удалили, потом снова создали, версия поменялась - перезаписываем\n\t\t\t// Если использовать version, то вновь созданный файл, через вотчер запустит свое пересоздание\n\t\t\tif (next !== undefined) this.exists()\n\t\t\treturn this.text_int(next, virt)\n\t\t}\n\n\t\t@ $mol_mem\n\t\ttext_int(next?: string, virt?: 'virt') {\n\t\t\tif( virt ) {\n\t\t\t\tthis.stat( this.stat_make(0), 'virt' )\n\t\t\t\treturn next!\n\t\t\t}\n\n\t\t\tif( next === undefined ) {\n\t\t\t\treturn $mol_charset_decode( this.buffer( ) )\t\n\t\t\t} else {\n\t\t\t\tconst buffer = $mol_charset_encode( next )\n\t\t\t\tthis.buffer( buffer )\n\t\t\t\treturn next\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_mem\n\t\tsub(reset?: null) {\n\t\t\tif (! this.exists() ) return []\n\t\t\tif ( this.type() !== 'dir') return []\n\n\t\t\tthis.version()\n\n\t\t\t// Если дочерний file удалился, список надо обновить\n\t\t\treturn this.kids().filter(file => file.exists())\n\t\t}\n\n\t\tresolve(path: string): this {\n\t\t\tthrow new Error('implement')\n\t\t}\n\n\t\trelate( base = ( this.constructor as typeof $mol_file_base ).relative( '.' )): string {\n\t\t\tconst base_path = base.path()\n\t\t\tconst path = this.path()\n\t\t\treturn path.startsWith(base_path) ? path.slice(base_path.length) : path\n\t\t}\n\n\t\tfind(\n\t\t\tinclude? : RegExp ,\n\t\t\texclude? : RegExp\n\t\t) {\n\t\t\tconst found = [] as typeof this[]\n\t\t\tconst sub = this.sub()\n\n\t\t\tfor (const child of sub) {\n\t\t\t\tconst child_path = child.path()\n\n\t\t\t\tif( exclude && child_path.match( exclude ) ) continue\n\n\t\t\t\tif( !include || child_path.match( include ) ) found.push( child )\n\n\t\t\t\tif( child.type() === 'dir' ) {\n\t\t\t\t\tconst sub_child = child.find( include , exclude )\n\t\t\t\t\tfor (const child of sub_child) found.push(child)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn found\n\t\t}\n\n\t\t@ $mol_mem\n\t\tsize() {\n\t\t\tswitch( this.type() ) {\n\t\t\t\tcase 'file': return this.stat()?.size ?? 0\n\t\t\t\tdefault: return 0\n\t\t\t}\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this.path()\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\topen( ... modes: readonly $mol_file_transaction_mode[] ) {\n\t\t\treturn this.$.$mol_file_transaction.make({\n\t\t\t\tpath: () => this.path(),\n\t\t\t\tmodes: () => modes\n\t\t\t})\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_file_type = 'file' | 'dir' | 'link'\n\n\texport interface $mol_file_stat {\n\t\ttype: $mol_file_type\n\t\tsize: number\n\t\tatime: Date\n\t\tmtime: Date\n\t\tctime: Date\n\t}\n\n\texport class $mol_file extends $mol_file_base {}\n\n}\n","namespace $ {\n\n\tfunction stat_convert(stat: ReturnType<typeof $node.fs.statSync>): null | $mol_file_stat {\n\t\t\n\t\tif( !stat ) return null\n\t\t\n\t\tlet type: $mol_file_type | undefined\n\t\tif (stat.isDirectory()) type = 'dir'\n\t\tif (stat.isFile()) type = 'file'\n\t\tif (stat.isSymbolicLink()) type = 'link'\n\n\t\tif (! type) return $mol_fail( new Error(`Unsupported file type`) )\n\n\t\treturn {\n\t\t\ttype, \n\t\t\tsize: Number(stat.size),\n\t\t\tatime: stat.atime,\n\t\t\tmtime: stat.mtime,\n\t\t\tctime: stat.ctime\n\t\t}\n\t}\n\n\texport function $mol_file_node_buffer_normalize(buf: Buffer< ArrayBuffer >): Uint8Array< ArrayBuffer > {\n\t\treturn new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength)\n\t}\n\n\texport class $mol_file_node extends $mol_file {\n\n\t\tstatic relative<This extends typeof $mol_file>(this: This, path : string ) {\n\t\t\treturn this.absolute<This>( $node.path.resolve( this.base, path ).replace( /\\\\/g , '/' ) )\n\t\t}\n\n\t\t@ $mol_mem\n\t\toverride watcher(reset?: null) {\n\t\t\tconst path = this.path()\n\t\t\tconst root = this.root()\n\t\t\t// Если папки/файла нет, watch упадет с ошибкой\n\t\t\t// exists обратится к parent.version и parent.watcher\n\t\t\t// Поэтому у root-папки и выше не надо вызывать exists, иначе поднимется выше base до корня диска\n\t\t\t// exists вызывать надо, что б пересоздавать вотчер при появлении папки или файла\n\t\t\tif (! root && ! this.exists() ) return super.watcher()\n\n\t\t\tlet watcher\n\n\t\t\ttry {\n\t\t\t\t// Между exists и watch файл может удалиться, в любом случае надо обрабатывать ENOENT\n\t\t\t\twatcher = $node.fs.watch( path )\n\t\t\t} catch (error: any) {\n\t\t\t\tif ( ! (error instanceof Error) ) error = new Error('Unknown watch error', {cause: error})\n\t\t\t\terror.message += '\\n' + path\n\n\t\t\t\tif ( root || error.code !== 'ENOENT' ) {\n\t\t\t\t\tthis.$.$mol_fail_log(error)\n\t\t\t\t}\n\n\t\t\t\t// Если файла нет - вотчер не создается, создастся потом, когда exists поменяется на true.\n\t\t\t\t// Если создание упало с другой ошибкой - не ломаем работу mol_file, деградируем до не реактивной fs.\n\n\t\t\t\treturn super.watcher()\n\t\t\t}\n\n\t\t\twatcher.on('change', (type: 'change' | 'rename', name) => {\n\t\t\t\tif (! name) return\n\t\t\t\tconst path = $node.path.join( this.path(), name.toString() )\n\t\t\t\t;(this.constructor as typeof $mol_file_base).changed_add(type, path)\n\t\t\t})\n\n\t\t\twatcher.on('error', e => this.$.$mol_fail_log(e) )\n\n\t\t\tlet destructed = false\n\n\t\t\twatcher.on('close', () => {\n\t\t\t\t// Если в процессе работы вотчер сам закрылся, надо его переоткрыть\n\t\t\t\tif (! destructed) setTimeout(() => $mol_wire_async(this).watcher(null), 500)\n\t\t\t})\n\n\t\t\treturn {\n\t\t\t\tdestructor() {\n\t\t\t\t\tdestructed = true\n\t\t\t\t\twatcher.close()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override info( path: string ) {\n\t\t\ttry {\n\t\t\t\treturn stat_convert($node.fs.statSync(path))\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(error)) {\n\t\t\t\t\tif (error.code === 'ENOENT') return null\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t\tthis.$.$mol_fail_hidden(error)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override ensure() {\n\t\t\tconst path = this.path()\n\t\t\ttry {\n\t\t\t\t$node.fs.mkdirSync( path, { recursive: true } )\n\t\t\t\treturn null\n\t\t\t} catch( e: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(e)) {\n\t\t\t\t\tif (e.code === 'EEXIST') return null\n\t\t\t\t\te.message += '\\n' + path\n\t\t\t\t\tthis.$.$mol_fail_hidden(e)\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override copy(to: string) {\n\t\t\t$node.fs.copyFileSync(this.path(), to)\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tprotected override drop() {\n\t\t\t$node.fs.unlinkSync( this.path() )\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override read() {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\t\t\t\treturn $mol_file_node_buffer_normalize($node.fs.readFileSync( path ) as Buffer< ArrayBuffer >)\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (! $mol_promise_like(error)) {\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t}\n\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override write(buffer: Uint8Array< ArrayBuffer >) {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\n\t\t\t\t$node.fs.writeFileSync( path, buffer )\n\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(error)) {\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t}\n\t\t\t\treturn this.$.$mol_fail_hidden( error )\n\t\t\t}\n\n\t\t}\n\n\t\tprotected override kids() {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\t\t\t\tconst kids = $node.fs.readdirSync( path )\n\t\t\t\t\t.filter( name => !/^\\.+$/.test( name ) )\n\t\t\t\t\t.map( name => this.resolve( name ) )\n\n\t\t\t\treturn kids\n\t\t\t} catch( e: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(e)) {\n\t\t\t\t\tif (e.code === 'ENOENT') return []\n\t\t\t\t\te.message += '\\n' + path\n\t\t\t\t}\n\t\t\t\t$mol_fail_hidden(e)\n\t\t\t}\n\t\t}\n\t\t\n\t\toverride resolve( path : string ) {\n\t\t\treturn ( this.constructor as typeof $mol_file )\n\t\t\t\t.relative( $node.path.join( this.path() , path ) ) as this\n\t\t}\n\t\t\n\t\toverride relate( base = ( this.constructor as typeof $mol_file ).relative( '.' )) {\n\t\t\treturn $node.path.relative( base.path() , this.path() ).replace( /\\\\/g , '/' )\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\toverride readable(opts: { start?: number, end?: number }) {\n\t\t\tconst { Readable } = $node['node:stream'] as typeof import('stream')\n\t\t\tconst stream = $node.fs.createReadStream(this.path(), {\n\t\t\t\tflags: 'r',\n\t\t\t\tautoClose: true,\n\t\t\t\tstart: opts?.start,\n\t\t\t\tend: opts?.end,\n\t\t\t\tencoding: 'binary',\n\t\t\t})\n\n\t\t\treturn Readable.toWeb(stream) as ReadableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t\t@ $mol_mem\n\t\toverride writable(opts?: { start?: number }) {\n\t\t\tconst { Writable } = $node['node:stream'] as typeof import('stream')\n\t\t\tconst stream = $node.fs.createWriteStream(this.path(), {\n\t\t\t\tflags: 'w+',\n\t\t\t\tautoClose: true,\n\t\t\t\tstart: opts?.start,\n\t\t\t\tencoding: 'binary',\n\t\t\t})\n\n\t\t\treturn Writable.toWeb(stream) as WritableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t}\n\n\n\t$.$mol_file = $mol_file_node\n}\n","namespace $ {\n\texport class $mol_state_local_node< Value > extends $mol_state_local< Value > {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic dir() {\n\t\t\tconst base = process.env.XDG_DATA_HOME || ( $node.os.homedir() + '/.local/share' )\n\t\t\treturn $mol_file.absolute( base ).resolve( './mol_state_local' )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic value< Value >(\n\t\t\tkey : string ,\n\t\t\tnext? : Value | null ,\n\t\t) : Value | null {\n\t\t\t\n\t\t\tconst file = this.dir().resolve( encodeURIComponent( key ) + '.json' )\n\t\t\t\n\t\t\tif( next === null ) {\n\t\t\t\tfile.exists( false )\n\t\t\t\treturn null\n\t\t\t}\n\t\t\t\n\t\t\tconst arg = next === undefined ? undefined : JSON.stringify( next )\n\t\t\treturn JSON.parse( file.text( arg ) || 'null' )\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t$.$mol_state_local = $mol_state_local_node\n}\n","namespace $ {\n\t\n\tfunction parse( theme: string | null ) {\n\t\tif( theme === 'true' ) return true\n\t\tif( theme === 'false' ) return false\n\t\treturn null\n\t}\n\t\n\t/**\n\t * Switcher between light/dark themes (usually for `mol_theme_auto` plugin).\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_lights_demo\n\t */\n\texport function $mol_lights( this : $ , next? : boolean ) {\n\t\t\n\t\tconst arg = parse( this.$mol_state_arg.value( 'mol_lights' ) )\n\t\t\n\t\tconst base = this.$mol_media.match( '(prefers-color-scheme: light)' )\n\t\t\n\t\tif( next === undefined ) {\n\t\t\treturn arg ?? this.$mol_state_local.value< boolean >( '$mol_lights' ) ?? base\n\t\t} else {\n\t\t\tif( arg === null ) {\n\t\t\t\tthis.$mol_state_local.value( '$mol_lights' , next === base ? null : next )\n\t\t\t} else {\n\t\t\t\tthis.$mol_state_arg.value( 'mol_lights' , String( next ) )\n\t\t\t}\n\t\t\treturn next\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\t/**\n\t * Theme css variables\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_textarea_demo\n\t */\t\n\texport const $mol_theme = $mol_style_prop(\n\t\t'mol_theme',\n\t\t[\n\t\t\t'back',\n\t\t\t'hover',\n\t\t\t'card',\n\t\t\t'current',\n\t\t\t'special',\n\t\t\t'text',\n\t\t\t'control',\n\t\t\t'shade',\n\t\t\t'line',\n\t\t\t'focus',\n\t\t\t'field',\n\t\t\t'image',\n\t\t\t'spirit',\n\t\t] as const\n\t)\n\n}\n","namespace $ { $mol_style_attach( \"mol/theme/theme.css\",\n \":root {\\n\\t--mol_theme_hue: 240deg;\\n\\t--mol_theme_hue_spread: 90deg;\\n\\tcolor-scheme: dark light;\\n}\\n\\n:where([mol_theme]) {\\n\\tcolor: var(--mol_theme_text);\\n\\tfill: var(--mol_theme_text);\\n\\tbackground-color: var(--mol_theme_back);\\n}\\n\\t\\n:root, [mol_theme=\\\"$mol_theme_dark\\\"], :where([mol_theme=\\\"$mol_theme_dark\\\"]) [mol_theme] {\\n\\n\\t--mol_theme_luma: -1;\\n\\t--mol_theme_image: invert(1) hue-rotate( 180deg );\\n\\t--mol_theme_spirit: hsl( 0deg, 0%, 0%, .75 );\\n\\n\\t--mol_theme_back: hsl( var(--mol_theme_hue), 20%, 10% );\\n\\t--mol_theme_card: hsl( var(--mol_theme_hue), 50%, 20%, .25 );\\n\\t--mol_theme_field: hsl( var(--mol_theme_hue), 50%, 8%, .25 );\\n\\t--mol_theme_hover: hsl( var(--mol_theme_hue), 0%, 50%, .1 );\\n\\t\\n\\t--mol_theme_text: hsl( var(--mol_theme_hue), 0%, 80% );\\n\\t--mol_theme_shade: hsl( var(--mol_theme_hue), 0%, 60%, 1 );\\n\\t--mol_theme_line: hsl( var(--mol_theme_hue), 0%, 50%, .25 );\\n\\t--mol_theme_focus: hsl( calc( var(--mol_theme_hue) + 180deg ), 100%, 65% );\\n\\t\\n\\t--mol_theme_control: hsl( var(--mol_theme_hue), 60%, 65% );\\n\\t--mol_theme_current: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 60%, 65% );\\n\\t--mol_theme_special: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 60%, 65% );\\n\\n} @supports( color: oklch( 0% 0 0deg ) ) {\\n:root, [mol_theme=\\\"$mol_theme_dark\\\"], :where([mol_theme=\\\"$mol_theme_dark\\\"]) [mol_theme] {\\n\\t\\n\\t--mol_theme_back: oklch( 20% .03 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 30% .05 var(--mol_theme_hue) / .25 );\\n\\t--mol_theme_field: oklch( 15% 0 var(--mol_theme_hue) / .25 );\\n\\t--mol_theme_hover: oklch( 70% 0 var(--mol_theme_hue) / .1 );\\n\\t\\n\\t--mol_theme_text: oklch( 80% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_shade: oklch( 60% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_line: oklch( 60% 0 var(--mol_theme_hue) / .25 );\\n\\t--mol_theme_focus: oklch( 80% .2 calc( var(--mol_theme_hue) + 180deg ) );\\n\\t\\n\\t--mol_theme_control: oklch( 70% .1 var(--mol_theme_hue) );\\n\\t--mol_theme_current: oklch( 70% .2 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_special: oklch( 70% .2 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) );\\n\\n} }\\n\\n[mol_theme=\\\"$mol_theme_light\\\"], :where([mol_theme=\\\"$mol_theme_light\\\"]) [mol_theme] {\\n\\t\\n\\t--mol_theme_luma: 1;\\n\\t--mol_theme_image: none;\\n\\t--mol_theme_spirit: hsl( 0deg, 0%, 100%, .75 );\\n\\t\\n\\t--mol_theme_back: hsl( var(--mol_theme_hue), 20%, 92% );\\n\\t--mol_theme_card: hsl( var(--mol_theme_hue), 50%, 100%, .5 );\\n\\t--mol_theme_field: hsl( var(--mol_theme_hue), 50%, 100%, .75 );\\n\\t--mol_theme_hover: hsl( var(--mol_theme_hue), 0%, 50%, .1 );\\n\\t\\n\\t--mol_theme_text: hsl( var(--mol_theme_hue), 0%, 0% );\\n\\t--mol_theme_shade: hsl( var(--mol_theme_hue), 0%, 40%, 1 );\\n\\t--mol_theme_line: hsl( var(--mol_theme_hue), 0%, 50%, .25 );\\n\\t--mol_theme_focus: hsl( calc( var(--mol_theme_hue) + 180deg ), 100%, 40% );\\n\\t\\n\\t--mol_theme_control: hsl( var(--mol_theme_hue), 80%, 30% );\\n\\t--mol_theme_current: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 80%, 30% );\\n\\t--mol_theme_special: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 80%, 30% );\\n\\n} @supports( color: oklch( 0% 0 0deg ) ) {\\n[mol_theme=\\\"$mol_theme_light\\\"], :where([mol_theme=\\\"$mol_theme_light\\\"]) [mol_theme] {\\n\\t--mol_theme_back: oklch( 92% .01 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 99% .01 var(--mol_theme_hue) / .5 );\\n\\t--mol_theme_field: oklch( 100% 0 var(--mol_theme_hue) / .5 );\\n\\t--mol_theme_hover: oklch( 50% 0 var(--mol_theme_hue) / .1 );\\n\\t\\n\\t--mol_theme_text: oklch( 20% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_shade: oklch( 60% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_line: oklch( 50% 0 var(--mol_theme_hue) / .25 );\\n\\t--mol_theme_focus: oklch( 60% .2 calc( var(--mol_theme_hue) + 180deg ) );\\n\\t\\n\\t--mol_theme_control: oklch( 40% .15 var(--mol_theme_hue) );\\n\\t--mol_theme_current: oklch( 50% .2 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_special: oklch( 50% .2 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) );\\n\\n} }\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_base\\\"] {\\n\\t--mol_theme_back: oklch( 25% .075 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 35% .1 var(--mol_theme_hue) / .25 );\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_base\\\"] {\\n\\t--mol_theme_back: oklch( 85% .075 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 98% .03 var(--mol_theme_hue) / .25 );\\n}\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_current\\\"] {\\n\\t--mol_theme_back: oklch( 25% .05 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_card: oklch( 35% .1 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) / .25 );\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_current\\\"] {\\n\\t--mol_theme_back: oklch( 85% .05 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_card: oklch( 98% .03 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) / .25 );\\n}\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_special\\\"] {\\n\\t--mol_theme_back: oklch( 25% .05 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_card: oklch( 35% .1 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) / .25 );\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_special\\\"] {\\n\\t--mol_theme_back: oklch( 85% .05 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_card: oklch( 98% .03 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) / .25 );\\n}\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_accent\\\"] {\\n\\t--mol_theme_back: oklch( 35% .1 calc( var(--mol_theme_hue) + 180deg ) );\\n\\t--mol_theme_card: oklch( 45% .15 calc( var(--mol_theme_hue) + 180deg ) / .25 );\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_accent\\\"] {\\n\\t--mol_theme_back: oklch( 83% .1 calc( var(--mol_theme_hue) + 180deg ) );\\n\\t--mol_theme_card: oklch( 98% .03 calc( var(--mol_theme_hue) + 180deg ) / .25 );\\n}\\n\\n\"\n) }","namespace $ {\n\t$mol_style_attach( '$mol_theme_lights', `:root { --mol_theme_back: oklch( ${ $$.$mol_lights() ? 92 : 20 }% .01 var(--mol_theme_hue) ) }` )\n}\n","namespace $ {\n\n\t/**\n\t * Gap in CSS\n\t * @see https://page.hyoo.ru/#!=msdb74_bm7nsq\n\t */\n\texport let $mol_gap = $mol_style_prop(\n\t\t'mol_gap',\n\t\t[\n\t\t\t'block',\n\t\t\t'text',\n\t\t\t'round',\n\t\t\t'space',\n\t\t\t'blur',\n\t\t] as const\n\t)\n\n}\n","namespace $ { $mol_style_attach( \"mol/gap/gap.css\",\n \":root {\\n\\t--mol_gap_block: .75rem;\\n\\t--mol_gap_text: .5rem .75rem;\\n\\t--mol_gap_round: .25rem;\\n\\t--mol_gap_space: .25rem;\\n\\t--mol_gap_blur: .5rem;\\n}\\n\"\n) }","namespace $ {\n\n\texport function $mol_dom_render_children (\n\t\tel : Element | DocumentFragment ,\n\t\tchildNodes : NodeList | Array< Node | string | null >\n\t) {\n\t\tconst node_set = new Set< Node | string | null >( childNodes )\n\t\t\n\t\tlet nextNode : Node | null = el.firstChild\n\t\tfor( let view of childNodes ) {\n\n\t\t\tif( view == null ) continue\n\n\t\t\tif( view instanceof $mol_dom_context.Node ) {\n\t\t\t\t\n\t\t\t\twhile( true ) {\n\t\t\t\t\tif( !nextNode ) {\n\t\t\t\t\t\tel.appendChild( view )\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif( nextNode == view ) {\n\t\t\t\t\t\tnextNode = nextNode.nextSibling\n\t\t\t\t\t\tbreak\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif( node_set.has( nextNode ) ) {\n\t\t\t\t\t\t\tel.insertBefore( view , nextNode )\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst nn = nextNode.nextSibling\n\t\t\t\t\t\t\tel.removeChild( nextNode )\n\t\t\t\t\t\t\tnextNode = nn\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\tif( nextNode && nextNode.nodeName === '#text' ) {\n\t\t\t\t\tconst str = String( view )\n\t\t\t\t\tif( nextNode.nodeValue !== str ) nextNode.nodeValue = str\n\t\t\t\t\tnextNode = nextNode.nextSibling\n\t\t\t\t} else {\n\t\t\t\t\tconst textNode = $mol_dom_context.document.createTextNode( String( view ) )\n\t\t\t\t\tel.insertBefore( textNode , nextNode )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\twhile( nextNode ) {\n\t\t\tconst currNode = nextNode\n\t\t\tnextNode = currNode.nextSibling\n\t\t\tel.removeChild( currNode )\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport let $mol_jsx_prefix = ''\n\texport let $mol_jsx_crumbs = ''\n\n\texport let $mol_jsx_booked = null as null | Set< string >\n\t\n\texport let $mol_jsx_document : $mol_jsx.JSX.ElementClass['ownerDocument'] = {\n\t\tgetElementById : ()=> null ,\n\t\tcreateElementNS : ( space: string, name : string )=> $mol_dom_context.document.createElementNS( space, name ) as any,\n\t\tcreateDocumentFragment : ()=> $mol_dom_context.document.createDocumentFragment(),\n\t}\n\t\n\texport const $mol_jsx_frag = ''\n\n\t/**\n\t * JSX adapter that makes DOM tree.\n\t * Generates global unique ids for every DOM-element by components tree with ids.\n\t * Ensures all local ids are unique.\n\t * Can reuse an existing nodes by GUIDs when used inside [`mol_jsx_attach`](https://github.com/hyoo-ru/mam_mol/tree/master/jsx/attach).\n\t */\n\texport function $mol_jsx<\n\t\tProps extends $mol_jsx.JSX.IntrinsicAttributes,\n\t\tChildren extends Array< Node | string >\n\t>(\n\t\tElem : string\n\t\t\t| ( ( props : Props , ... children : Children ) => Element ) ,\n\t\tprops : Props ,\n\t\t... childNodes : Children\n\t) : Element | DocumentFragment {\n\n\t\tconst id = props && props.id || ''\n\t\tconst guid = id ? $mol_jsx_prefix ? $mol_jsx_prefix + '/'+ id : id : $mol_jsx_prefix\n\t\tconst crumbs_self = id ? $mol_jsx_crumbs.replace( /(\\S+)/g, `$1_${ id.replace( /\\/.*/i, '' ) }` ) : $mol_jsx_crumbs\n\t\t\n\t\tif( Elem && $mol_jsx_booked ) {\n\t\t\tif( $mol_jsx_booked.has( id ) ) {\n\t\t\t\t$mol_fail( new Error( `JSX already has tag with id ${ JSON.stringify( guid ) }` ) )\n\t\t\t} else {\n\t\t\t\t$mol_jsx_booked.add( id )\n\t\t\t}\n\t\t}\n\n\t\tlet node: Element | DocumentFragment | null = guid ? $mol_jsx_document.getElementById( guid ) : null\n\n\t\tif( $mol_jsx_prefix ) {\n\t\t\t\n\t\t\tconst prefix_ext = $mol_jsx_prefix\n\t\t\tconst booked_ext = $mol_jsx_booked\n\t\t\tconst crumbs_ext = $mol_jsx_crumbs\n\t\t\t\n\t\t\tfor( const field in props ) {\n\t\t\t\t\n\t\t\t\tconst func = props[ field ]\n\t\t\t\tif( typeof func !== 'function' ) continue\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tconst wrapper = function( this: any, ... args: any[] ) {\n\t\t\t\t\t\n\t\t\t\t\tconst prefix = $mol_jsx_prefix\n\t\t\t\t\tconst booked = $mol_jsx_booked\n\t\t\t\t\tconst crumbs = $mol_jsx_crumbs\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\n\t\t\t\t\t\t$mol_jsx_prefix = prefix_ext\n\t\t\t\t\t\t$mol_jsx_booked = booked_ext\n\t\t\t\t\t\t$mol_jsx_crumbs = crumbs_ext\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn func.call( this, ... args )\n\t\t\t\t\t\t\n\t\t\t\t\t} finally {\n\t\t\t\t\t\t\n\t\t\t\t\t\t$mol_jsx_prefix = prefix\n\t\t\t\t\t\t$mol_jsx_booked = booked\n\t\t\t\t\t\t$mol_jsx_crumbs = crumbs\n\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$mol_func_name_from( wrapper, func )\n\t\t\t\tprops[ field ] = wrapper as any\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tif( typeof Elem !== 'string' ) {\n\n\t\t\tif( 'prototype' in Elem ) {\n\n\t\t\t\tconst view = node && (node as any)[ String(Elem) ] || new ( Elem as any )\n\t\t\t\t\n\t\t\t\tObject.assign( view , props )\n\t\t\t\tview[ Symbol.toStringTag ] = guid\n\t\t\t\t\n\t\t\t\tview.childNodes = childNodes\n\t\t\t\t\n\t\t\t\tif( !view.ownerDocument ) view.ownerDocument = $mol_jsx_document\n\t\t\t\tview.className = ( crumbs_self ? crumbs_self + ' ' : '' ) + ( Elem['name'] || Elem )\n\t\t\t\t\n\t\t\t\tnode = view.valueOf()\n\t\t\t\t\n\t\t\t\t;(node as any)![ String(Elem) ] = view\n\t\t\t\t\n\t\t\t\treturn node!\n\n\t\t\t} else {\n\n\t\t\t\tconst prefix = $mol_jsx_prefix\n\t\t\t\tconst booked = $mol_jsx_booked\n\t\t\t\tconst crumbs = $mol_jsx_crumbs\n\t\t\t\t\n\t\t\t\ttry {\n\t\n\t\t\t\t\t$mol_jsx_prefix = guid\n\t\t\t\t\t$mol_jsx_booked = new Set\n\t\t\t\t\t$mol_jsx_crumbs = ( crumbs_self ? crumbs_self + ' ' : '' ) + ( Elem['name'] || Elem )\n\t\n\t\t\t\t\treturn ( Elem as any )( props , ... childNodes )\n\t\t\t\t\t\n\t\t\t\t} finally {\n\n\t\t\t\t\t$mol_jsx_prefix = prefix\n\t\t\t\t\t$mol_jsx_booked = booked\n\t\t\t\t\t$mol_jsx_crumbs = crumbs\n\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tif( !node ) {\n\t\t\tnode = Elem\n\t\t\t\t? $mol_jsx_document.createElementNS( props?.xmlns ?? 'http://www.w3.org/1999/xhtml', Elem )\n\t\t\t\t: $mol_jsx_document.createDocumentFragment()\n\t\t}\n\n\t\t$mol_dom_render_children( node , ( [] as ( Node | string )[] ).concat( ... childNodes ) )\n\t\tif( !Elem ) return node\n\n\t\tif( guid ) ( node as Element ).id = guid\n\t\tfor( const key in props ) {\n\t\t\tif( key === 'id' ) continue\n\t\t\t\n\t\t\tif( typeof props[ key ] === 'string' ) {\n\t\t\t\t\n\t\t\t\tif( typeof (node as any)[ key ] === 'string' ) (node as any)[ key ] = props[ key ]\n\t\t\t\t;( node as Element ).setAttribute( key , (props as any)[ key ] )\n\t\t\t\t\n\t\t\t} else if(\n\t\t\t\tprops[ key ] &&\n\t\t\t\ttypeof props[ key ] === 'object' &&\n\t\t\t\tReflect.getPrototypeOf( props[ key ] as any ) === Reflect.getPrototypeOf({})\n\t\t\t) {\n\n\t\t\t\tif( typeof (node as any)[ key ] === 'object' ) {\n\t\t\t\t\tObject.assign( ( node as any )[ key ] , props[ key ] )\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t(node as any)[ key ] = props[ key ]\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tif( $mol_jsx_crumbs ) ( node as Element ).className = ( (props as any)?.['class'] ? (props as any)['class'] + ' ' : '' ) + crumbs_self\n\n\t\treturn node\n\n\t}\n\n\texport declare namespace $mol_jsx.JSX {\n\n\t\texport interface Element extends HTMLElement {\n\t\t\tclass?: string\n\t\t}\n\t\t\n\t\texport interface ElementClass {\n\t\t\tattributes : {}\n\t\t\townerDocument : Pick< Document , 'getElementById' | 'createElementNS' | 'createDocumentFragment' >\n\t\t\tchildNodes : Array< Node | string >\n\t\t\tvalueOf() : Element\n\t\t}\n\t\t\n\t\ttype OrString< Dict > = {\n\t\t\t[ key in keyof Dict ]: Dict[ key ] | string\n\t\t}\n\t\t\n\t\t/** Props for html elements */\n\t\texport type IntrinsicElements = {\n\t\t\t[ key in keyof ElementTagNameMap ]? : $.$mol_type_partial_deep< OrString<\n\t\t\t\t& Element\n\t\t\t\t& IntrinsicAttributes\n\t\t\t\t& ElementTagNameMap[ key ]\n\t\t\t> >\n\t\t}\n\t\t\n\t\t/** Additional undeclared props */\n\t\texport interface IntrinsicAttributes {\n\t\t\tid? : string\n\t\t\txmlns? : string\n\t\t}\n\t\t\n\t\texport interface ElementAttributesProperty {\n\t\t\tattributes : {\n\t\t\t}\n\t\t}\n\t\t\n\t\t// export type IntrinsicClassAttributes< Class > = $.$mol_type_partial_deep< Omit< Class , 'valueOf' > >\n\t\t\n\t\tinterface ElementChildrenAttribute {\n\t\t}\n\t\n\t}\n\n}\n","namespace $ {\n\t\n\texport class $mol_window extends $mol_object {\n\t\t\n\t\tstatic size() {\n\t\t\treturn {\n\t\t\t\twidth: 1024,\n\t\t\t\theight: 768,\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\texport function $mol_guard_defined<T>(value: T): value is NonNullable<T> {\n\t\treturn value !== null && value !== undefined\n\t}\n}\n","namespace $ {\n\t\n\texport class $mol_view_selection extends $mol_object {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic focused( next? : Element[], notify?: 'notify' ) : Element[] {\n\t\t\t\n\t\t\tconst parents : Element[] = []\n\t\t\tlet element = next?.[0] ?? $mol_dom_context.document.activeElement\n\t\t\twhile( element?.shadowRoot ) {\n\t\t\t\telement = element!.shadowRoot.activeElement\n\t\t\t}\n\t\t\t\n\t\t\twhile( element ) {\n\t\t\t\tparents.push( element )\n\t\t\t\tconst parent = element.parentNode\n\t\t\t\tif( parent instanceof ShadowRoot ) element = parent.host\n\t\t\t\telse element = parent as HTMLElement\n\t\t\t}\n\t\t\t\n\t\t\tif( !next || notify ) return parents\n\t\t\t\n\t\t\tnew $mol_after_tick( ()=> {\n\t\t\t\t\n\t\t\t\tconst element = this.focused()![0] as HTMLElement\n\t\t\t\t\n\t\t\t\tif( element ) element.focus()\n\t\t\t\telse $mol_dom_context.blur()\n\t\t\t\t\n\t\t\t} )\n\n\t\t\treturn parents\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_wrapper extends $mol_object2 {\n\n\t\tstatic wrap : ( task : ( ... ags : any[] )=> any )=> ( ... ags : any[] )=> any\n\t\t\n\t\tstatic run< Result >( task : ()=> Result ) : Result {\n\t\t\treturn this.func( task )()\n\t\t}\n\t\n\t\tstatic func< Args extends any[] , Result , Host = void >(\n\t\t\tfunc : ( this : Host , ... args : Args )=> Result\n\t\t) : ( this : Host , ... args : Args )=> Result {\n\t\t\treturn this.wrap( func )\n\t\t}\n\n\t\tstatic get class() {\n\n\t\t\treturn < Class extends new ( ... args : any[] )=> any >(\n\t\t\t\tClass : Class\n\t\t\t) => {\n\n\t\t\t\ttype Args = ConstructorParameters< Class >\n\t\t\t\ttype Result = InstanceType< Class >\n\n\t\t\t\tconst construct = ( target : Class , args : Args )=> new Class( ... args )\n\n\t\t\t\tconst handler: ProxyHandler<Class> = {\n\t\t\t\t\tconstruct : this.func( construct )\n\t\t\t\t} \n\n\t\t\t\t;(handler as any)[ Symbol.toStringTag ] = Class.name + '#'\n\n\t\t\t\treturn new Proxy( Class , handler )\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tstatic get method() {\n\t\t\t\n\t\t\treturn (\n\t\t\t\tobj : object,\n\t\t\t\tname : PropertyKey,\n\t\t\t\tdescr = Reflect.getOwnPropertyDescriptor( obj, name )!,\n\t\t\t) => {\n\t\t\t\tdescr.value = this.func( descr.value! )\n\t\t\t\treturn descr\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tstatic get field() {\n\t\t\t\n\t\t\treturn <\n\t\t\t\tHost extends object ,\n\t\t\t\tField extends keyof Host ,\n\t\t\t\tArgs extends any[] ,\n\t\t\t\tResult ,\n\t\t\t>(\n\t\t\t\tobj : Host ,\n\t\t\t\tname : Field ,\n\t\t\t\tdescr = Reflect.getOwnPropertyDescriptor( obj, name )! as TypedPropertyDescriptor< Result >\n\t\t\t) => {\n\t\t\t\tdescr.get = descr.set = this.func( descr.get! )\n\t\t\t\treturn descr\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_memo extends $mol_wrapper {\n\t\t\n\t\tstatic wrap< This extends object , Value >( task : ( this : This , next? : Value )=> Value ) {\n\n\t\t\tconst store = new WeakMap< This , Value >()\n\n\t\t\tconst fun = function( this : This , next? : Value ) {\n\n\t\t\t\tif( next === undefined && store.has( this ) ) return store.get( this )\n\t\t\t\t\n\t\t\t\tconst val = task.call( this , next ) ?? next\n\t\t\t\t\n\t\t\t\tstore.set( this , val! )\n\t\t\t\t\n\t\t\t\treturn val\n\n\t\t\t}\n\n\t\t\tReflect.defineProperty( fun , 'name' , { value : task.name + ' ' } )\n\n\t\t\treturn fun\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_dom_qname( name : string ) {\n\t\treturn name.replace( /\\W/g , '' ).replace( /^(?=\\d+)/ , '_' )\n\t}\n\n}\n","namespace $ {\n\t\n\t/**\n\t * Real-time refresh current atom.\n\t * Don't use if possible. May reduce performance.\n\t */\n\texport function $mol_wire_watch() {\n\t\tconst atom = $mol_wire_auto()\n\t\tif( atom instanceof $mol_wire_atom ) {\n\t\t\tatom.watch()\n\t\t} else {\n\t\t\t$mol_fail( new Error( 'Atom is required for watching' ) )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_attributes (\n\t\tel : Element ,\n\t\tattrs : { [ key : string ] : string|number|boolean|null }\n\t) {\n\n\t\tfor( let name in attrs ) {\n\n\t\t\tlet val = attrs[ name ] as any\n\n\t\t\tif( val === undefined ) {\n\t\t\t\t\n\t\t\t\tcontinue\n\t\t\t\t\n\t\t\t} else if( val === null || val === false ) {\n\n\t\t\t\tif( !el.hasAttribute( name ) ) continue\n\t\t\t\t\n\t\t\t\tel.removeAttribute( name )\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst str = String( val )\n\t\t\t\tif( el.getAttribute( name ) === str ) continue\n\t\t\t\t\n\t\t\t\tel.setAttribute( name , str )\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_events (\n\t\tel : Element ,\n\t\tevents : { [ key : string ] : ( event : Event )=> any },\n\t\tpassive = false\n\t) {\n\t\tfor( let name in events ) {\n\t\t\tel.addEventListener( name , events[ name ] , { passive } )\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_styles (\n\t\tel : Element ,\n\t\tstyles : { [ key : string ] : string|number }\n\t) {\n\t\tfor( let name in styles ) {\n\t\t\tlet val = styles[ name ]\n\t\t\t\n\t\t\tconst style = ( el as HTMLElement ).style as any\n\t\t\tconst kebab = ( name : string )=> name.replace( /[A-Z]/g , letter => '-' + letter.toLowerCase() )\n\t\t\t\n\t\t\tif( typeof val === 'number' ) {\n\t\t\t\tstyle.setProperty(kebab(name), `${ val }px`);\n\t\t\t} else {\n\t\t\t\tstyle.setProperty(kebab(name), val);\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_fields (\n\t\tel : Element ,\n\t\tfields : { [ key : string ] : any }\n\t) {\n\t\tfor( let key in fields ) {\n\t\t\t\n\t\t\tconst val : any = fields[ key ]\n\t\t\t\n\t\t\tif( val === undefined ) continue\n\t\t\tif( val === (el as any)[ key ] ) continue\n\t\t\t\n\t\t\t(el as any)[ key ] = val\n\t\t}\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/view/view/view.css\",\n \"[mol_view] {\\n\\ttransition-property: height, width, min-height, min-width, max-width, max-height, transform, scale, translate, rotate;\\n\\ttransition-duration: .2s;\\n\\ttransition-timing-function: ease-out;\\n\\t-webkit-appearance: none;\\n\\tbox-sizing: border-box;\\n\\tdisplay: flex;\\n\\tflex-shrink: 0;\\n\\tcontain: style;\\n\\tscrollbar-color: var(--mol_theme_line) transparent;\\n\\tscrollbar-width: thin;\\n}\\t\\n\\n[mol_view]::selection {\\n\\tbackground: var(--mol_theme_line);\\n}\\t\\n\\n[mol_view]::-webkit-scrollbar {\\n\\twidth: .25rem;\\n\\theight: .25rem;\\n}\\n\\n[mol_view]::-webkit-scrollbar-corner {\\n\\tbackground-color: var(--mol_theme_line);\\n}\\n\\n[mol_view]::-webkit-scrollbar-track {\\n\\tbackground-color: transparent;\\n}\\n\\n[mol_view]::-webkit-scrollbar-thumb {\\n\\tbackground-color: var(--mol_theme_line);\\n\\tborder-radius: var(--mol_gap_round);\\n}\\n\\n[mol_view] > * {\\n\\tword-break: inherit;\\n}\\n\\n[mol_view_root] {\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tbox-sizing: border-box;\\n\\tfont-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\\n\\tfont-size: 1rem;\\n\\tline-height: 1.5rem;\\n\\t/* background: var(--mol_theme_back);\\n\\tcolor: var(--mol_theme_text); */\\n\\tcontain: unset; /** Fixes bg ignoring when applied to body on Chrome */\\n\\ttab-size: 4;\\n\\toverscroll-behavior: contain; /** Disable navigation gestures **/\\n}\\n\\n@media print {\\n\\t[mol_view_root] {\\n\\t\\theight: auto;\\n\\t}\\n}\\n[mol_view][mol_view_error]:not([mol_view_error=\\\"Promise\\\"], [mol_view_error=\\\"$mol_promise_blocker\\\"]) {\\n\\tbackground-image: repeating-linear-gradient(\\n\\t\\t-45deg,\\n\\t\\t#f92323,\\n\\t\\t#f92323 .5rem,\\n\\t\\t#ff3d3d .5rem,\\n\\t\\t#ff3d3d 1.5rem\\n\\t);\\n\\tcolor: black;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\\n@keyframes mol_view_wait {\\n\\tfrom {\\n\\t\\topacity: .25;\\n\\t}\\n\\t20% {\\n\\t\\topacity: .75;\\n\\t}\\n\\tto {\\n\\t\\topacity: .25;\\n\\t}\\n}\\n\\n:where([mol_view][mol_view_error=\\\"$mol_promise_blocker\\\"]),\\n:where([mol_view][mol_view_error=\\\"Promise\\\"]) {\\n\\tbackground: var(--mol_theme_hover);\\n}\\n\\n[mol_view][mol_view_error=\\\"Promise\\\"] {\\n\\tanimation: mol_view_wait 1s steps(20,end) infinite;\\n}\\n\"\n) }","/** @jsx $mol_jsx */\nnamespace $ {\n\n\texport type $mol_view_content = $mol_view|Node|string|number|boolean|null\n\t\n\texport function $mol_view_visible_width() {\n\t\treturn $mol_window.size().width\n\t}\n\t\n\texport function $mol_view_visible_height() {\n\t\treturn $mol_window.size().height\n\t}\n\t\n\texport function $mol_view_state_key( suffix : string ) {\n\t\treturn suffix\n\t}\n\t\n\t/**\n\t * The base class for all visual components. It provides the infrastructure for reactive lazy rendering, handling exceptions.\n\t * @see https://mol.hyoo.ru/#!section=docs/=vv2nig_s5zr0f\n\t */\n\t/// Reactive statefull lazy ViewModel\n\texport class $mol_view extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic Root< This extends typeof $mol_view >( this : This , id: number ) {\n\t\t\treturn new this as InstanceType< This >\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic roots() {\n\t\t\t\n\t\t\treturn [ ... $mol_dom.document.querySelectorAll( '[mol_view_root]:not([mol_view_root=\"\"])' ) ].map( ( node, index ) => {\n\n\t\t\t\tconst name = node.getAttribute( 'mol_view_root' )!\n\t\t\t\t\n\t\t\t\tconst View = (this.$ as any)[ name ] as typeof $mol_view\n\t\t\t\tif( !View ) {\n\t\t\t\t\t$mol_fail_log( new Error( `Autobind unknown view class`, { cause: { name } } ) )\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst view = View.Root( index )\n\t\t\t\tview.dom_node( node )\n\t\t\t\treturn view\n\t\t\t\t\n\t\t\t} ).filter( $mol_guard_defined )\n\t\t\t\n\t\t}\n\n\t\t@ $mol_mem\n\t\tstatic auto() {\n\t\t\t\n\t\t\tconst roots = this.roots()\n\t\t\tif( !roots.length ) return\n\t\t\t\n\t\t\tfor( const root of roots ) {\n\t\t\t\ttry {\n\t\t\t\t\troot.dom_tree()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\t$mol_fail_log( error )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\tdocument.title = roots[0].title()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\n\t\t\t\n\t\t\tdescr: try {\n\t\t\t\t\n\t\t\t\tconst descr = roots[0].hint()\n\t\t\t\tif( !descr ) break descr\n\t\t\t\t\n\t\t\t\tconst head = $mol_dom.document.head\n\t\t\t\tlet node = head.querySelector( 'meta[name=\"description\"]' ) as HTMLMetaElement | null\n\t\t\t\tif( node ) node.content = descr\n\t\t\t\telse head.append( <meta name=\"description\" content={ descr } /> )\n\t\t\t\t\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttitle() {\n\t\t\treturn this.toString().match( /.*\\.(\\w+)/ )?.[1] ?? this.toString()\n\t\t}\n\t\t\n\t\thint() {\n\t\t\treturn ''\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tfocused( next?: boolean ) {\n\t\t\tlet node = this.dom_node()\n\t\t\tconst value = $mol_view_selection.focused( next === undefined ? undefined : ( next ? [ node ] : [] ) )\n\t\t\treturn value.indexOf( node ) !== -1\n\t\t}\n\t\t\n\t\tstate_key( suffix = '' ) {\n\t\t\treturn this.$.$mol_view_state_key( suffix )\n\t\t}\n\t\t\n\t\t/// Name of element that created when element not found in DOM\n\t\t@ $mol_memo.method\n\t\tdom_name() {\n\t\t\treturn $mol_dom_qname( this.constructor.toString() ) || 'div'\n\t\t}\n\t\t\n\t\t/// NameSpace of element that created when element not found in DOM\n\t\tdom_name_space() { return 'http://www.w3.org/1999/xhtml' }\n\t\t\n\t\t/// Raw child views\n\t\tsub() {\n\t\t\treturn [] as readonly $mol_view_content[]\n\t\t}\n\t\t\n\t\t/// Visible sub views with defined ambient context\n\t\t/// Render all by default\n\t\tsub_visible() {\n\t\t\treturn this.sub()\n\t\t}\n\t\t\n\t\t/// Minimal width that used for lazy rendering\n\t\t@ $mol_mem\n\t\tminimal_width() {\n\t\t\t\n\t\t\tlet min = 0\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tconst sub = this.sub()\n\t\t\t\tif( !sub ) return 0\n\t\t\t\t\n\t\t\t\tsub.forEach( view => {\n\t\t\t\t\tif( view instanceof $mol_view ) {\n\t\t\t\t\t\tmin = Math.max( min , view.minimal_width() )\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn 24\n\t\t\t}\n\t\t\n\t\t\treturn min\n\t\t}\n\t\t\n\t\tmaximal_width() {\n\t\t\treturn this.minimal_width()\n\t\t}\n\t\t\n\t\t/// Minimal height that used for lazy rendering\n\t\t@ $mol_mem\n\t\tminimal_height() {\n\t\t\t\n\t\t\tlet min = 0\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tfor( const view of this.sub() ?? [] ) {\n\n\t\t\t\t\tif( view instanceof $mol_view ) {\n\t\t\t\t\t\tmin = Math.max( min , view.minimal_height() )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t \n\t\t\t} catch( error: any ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn 24\n\t\t\t}\n\n\t\t\treturn min\n\t\t}\n\n\t\tstatic watchers = new Set< $mol_view >()\n\n\t\t@ $mol_mem\n\t\tview_rect() {\n\t\t\tif( $mol_wire_probe( ()=> this.view_rect() ) === undefined ) {\n\t\t\t\t$mol_wire_watch()\n\t\t\t\treturn null // don't touch DOM to prevent instant reflow\n\t\t\t} else {\n\t\t\t\tconst { width, height, left, right, top, bottom } = this.dom_node().getBoundingClientRect()\n\t\t\t\treturn { width, height, left, right, top, bottom } // pick to optimize compare\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_memo.method\n\t\tdom_id() {\n\t\t\treturn this.toString().replace( /</g, '(' ).replace( />/g, ')' ).replaceAll( /\"/g, \"'\" )\n\t\t}\n\t\n\t\tdom_node_external( next?: Element) {\n\t\t\tconst node = next ?? $mol_dom_context.document.createElementNS( this.dom_name_space() , this.dom_name() )\n\n\t\t\tconst id = this.dom_id()\n\t\t\tnode.setAttribute( 'id' , id )\n\t\t\tnode.toString = $mol_const( '<#' + id + '>' )\n\n\t\t\treturn node\n\t\t}\n\n\t\t@ $mol_mem\n\t\tdom_node( next? : Element ) {\n\t\t\t$mol_wire_solid()\n\t\t\tconst node = this.dom_node_external( next )\n\t\t\t$mol_dom_render_attributes( node , this.attr_static() )\n\t\t\t\n\t\t\tconst events = this.event_async()\n\t\t\t$mol_dom_render_events(node, events)\n\n\t\t\treturn node\n\t\t}\n\n\t\t@ $mol_mem\n\t\tdom_final() {\n\t\t\t\n\t\t\tthis.render()\n\t\t\t\n\t\t\tconst sub = this.sub_visible()\n\t\t\tif( !sub ) return\n\t\t\t\n\t\t\tfor( const el of sub ) {\n\t\t\t\tif( el && typeof el === 'object' && 'dom_final' in el ) {\n\t\t\t\t\tel['dom_final']()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn this.dom_node()\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tdom_tree( next? : Element ) : Element {\n\t\t\tconst node = this.dom_node( next )\n\t\t\t\n\t\t\trender: try {\n\n\t\t\t\t$mol_dom_render_attributes( node , { mol_view_error : null } )\n\n\t\t\t\ttry {\n\t\t\t\t\n\t\t\t\t\tthis.render()\n\t\t\t\t\t\n\t\t\t\t} finally {\n\t\t\t\t\t\n\t\t\t\t\tfor( let plugin of this.plugins() ) {\n\t\t\t\t\t\tif( plugin instanceof $mol_plugin ) {\n\t\t\t\t\t\t\tplugin.dom_tree()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\tconst mol_view_error = $mol_promise_like(error)\n\t\t\t\t\t? (error as any).constructor[Symbol.toStringTag] ?? 'Promise'\n\t\t\t\t\t: error.name || error.constructor.name\n\t\t\t\t$mol_dom_render_attributes( node , { mol_view_error } )\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( error ) ) break render\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tconst message = error.message || error\n\t\t\t\t\t;( node as HTMLElement ).innerText = message.replace( /^|$/mg, '\\xA0\\xA0' )\n\t\t\t\t} catch {}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\tthis.auto()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\n\t\t\t\t\n\t\t\treturn node\n\t\t}\n\n\t\t@ $mol_mem\n\t\tdom_node_actual() {\n\t\t\tconst node = this.dom_node()\n\n\t\t\tconst attr = this.attr()\n\t\t\tconst style = this.style()\n\n\t\t\t$mol_dom_render_attributes( node , attr )\n\t\t\t$mol_dom_render_styles( node , style )\n\n\t\t\treturn node\n\t\t}\n\t\t\n\t\tauto() {\n\t\t\treturn [] as any\n\t\t}\n\n\t\t@ $mol_mem\n\t\trender() {\n\n\t\t\tconst node = this.dom_node_actual()\n\n\t\t\tconst sub = this.sub_visible()\n\t\t\tif( !sub ) return\n\t\t\t\n\t\t\tconst nodes = sub.map( child => {\n\t\t\t\tif( child == null ) return null\n\t\t\t\treturn ( child instanceof $mol_view )\n\t\t\t\t\t? child.dom_node()\n\t\t\t\t\t: child instanceof $mol_dom_context.Node\n\t\t\t\t\t? child\n\t\t\t\t\t: String( child )\n\t\t\t})\n\t\t\t\n\t\t\t$mol_dom_render_children( node , nodes )\n\n\t\t\tfor( const el of sub ) if( el && typeof el === 'object' && 'dom_tree' in el ) el['dom_tree']()\n\n\t\t\t$mol_dom_render_fields( node , this.field() )\n\t\t\t\n\t\t}\n\n\t\t@ $mol_memo.method\n\t\tstatic view_classes() {\n\t\t\tconst proto = this.prototype\n\t\t\t\n\t\t\tlet current = proto\n\t\t\tconst classes = [] as ( typeof $mol_view )[]\n\t\t\t\n\t\t\twhile( current ) {\n\t\t\t\tif( current.constructor.name !== classes.at(-1)?.name ) {\n\t\t\t\t\tclasses.push( current.constructor as typeof $mol_view )\n\t\t\t\t}\n\t\t\t\tif(!( current instanceof $mol_view )) break\n\t\t\t\tcurrent = Object.getPrototypeOf( current )\n\t\t\t}\n\t\t\t\n\t\t\treturn classes\n\t\t}\n\t\t\n\t\tstatic _view_names?: Map< string, string[] >\n\t\tstatic view_names( suffix: string ) {\n\t\t\t\n\t\t\tlet cache = Reflect.getOwnPropertyDescriptor( this, '_view_names' )?.value\n\t\t\tif( !cache ) cache = this._view_names = new Map\n\t\t\t\n\t\t\tconst cached = cache.get( suffix )\n\t\t\tif( cached ) return cached\n\t\t\t\n\t\t\tconst names = [] as string[]\n\t\t\tconst suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1)\n\t\t\t\n\t\t\tfor( const Class of this.view_classes() ) {\n\t\t\t\tif( suffix in Class.prototype ) names.push( this.$.$mol_func_name( Class ) + suffix2 )\n\t\t\t\telse break\n\t\t\t}\n\t\t\t\n\t\t\tcache.set( suffix, names )\n\t\t\treturn names\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\tview_names_owned() {\n\t\t\tconst names = [] as string[]\n\t\t\tlet owner = $mol_owning_get( this ) as $mol_wire_fiber< any, any[], any >\n\n\t\t\tif(!( owner?.host instanceof $mol_view )) return names\n\n\t\t\tconst suffix = owner.task.name.trim()\n\t\t\tconst suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1)\n\t\t\t\n\t\t\tnames.push( ... ( owner.host.constructor as typeof $mol_view ).view_names( suffix ) )\n\t\t\t\n\t\t\tfor( let prefix of owner.host.view_names_owned() ) {\n\t\t\t\tnames.push( prefix + suffix2 )\n\t\t\t}\n\t\t\t\n\t\t\treturn names\n\t\t}\n\n\t\t@ $mol_memo.method\n\t\tview_names() {\n\t\t\tconst names = new Set< string >()\n\t\t\t\n\t\t\tfor( let name of this.view_names_owned() ) names.add( name )\n\n\t\t\tfor( let Class of ( this.constructor as typeof $mol_view ).view_classes() ) {\n\t\t\t\tconst name = this.$.$mol_func_name( Class )\n\t\t\t\tif( name ) names.add( name )\n\t\t\t}\n\n\t\t\treturn names\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttheme( next = null as null | string ) {\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tattr_static() : { [ key : string ] : string|number|boolean|null } {\n\t\t\tlet attrs : any = {}\n\t\t\t\n\t\t\tfor( let name of this.view_names() ) attrs[ name.replace( /\\$/g , '' ).replace( /^(?=\\d)/ , '_' ).toLowerCase() ] = ''\n\t\t\t\n\t\t\treturn attrs\n\t\t}\n\t\t\n\t\tattr() {\n\t\t\treturn {\n\t\t\t\tmol_theme: this.theme() ?? undefined,\n\t\t\t} as {}\n\t\t}\n\t\t\n\t\tstyle() : { [ key : string ] : string|number } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\tfield() : { [ key : string ] : any } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\tevent() : { [ key : string ] : ( event : Event )=> void } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tevent_async() {\n\t\t\treturn { ... $mol_wire_async(this.event()) }\n\t\t}\n\n\t\tplugins() {\n\t\t\treturn [] as readonly $mol_view[]\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_span( {} ,\n\t\t\t\t$mol_dev_format_native( this ) ,\n\t\t\t\t// $mol_dev_format_shade( '/' ) ,\n\t\t\t\t// $mol_dev_format_auto( $mol_wire_cache( this ).sub().cache ) ,\n\t\t\t)\n\t\t}\n\n\t\t/** Deep search view by predicate. */\n\t\t*view_find(\n\t\t\tcheck: ( path : $mol_view, text?: string )=> boolean,\n\t\t\tpath = [] as $mol_view[],\n\t\t): Generator< $mol_view[] > {\n\n\t\t\tif( path.length === 0 && check( this ) ) return yield [ this ]\n\t\t\t\n\t\t\ttry {\n\t\t\t\tconst checked = new Set<$mol_view>()\n\t\t\t\tconst sub = this.sub()\n\n\t\t\t\tfor( const item of sub ) {\n\t\t\t\t\tif( ! ( item instanceof $mol_view ) ) continue\n\n\t\t\t\t\tif ( ! check( item ) ) continue\n\t\t\t\t\tchecked.add(item)\n\t\t\t\t\tyield [ ... path, this, item ]\n\t\t\t\t}\n\n\t\t\t\tfor( const item of sub ) {\n\t\t\t\t\tif ( ! ( item instanceof $mol_view) ) continue\n\t\t\t\t\tif ( checked.has(item) ) continue\n\t\t\t\t\tyield* item.view_find( check, [ ... path, this ] )\n\t\t\t\t}\n\t\t\t} catch( error: unknown ) {\n\t\t\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t/** Renders path of views to DOM. */\n\t\tforce_render(\n\t\t\tpath : Set< $mol_view >,\n\t\t) {\n\n\t\t\tconst kids = this.sub()\n\n\t\t\tconst index = kids.findIndex( item => {\n\t\t\t\tif( item instanceof $mol_view ) {\n\t\t\t\t\treturn path.has( item )\n\t\t\t\t} else {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tif( index >= 0 ) {\n\t\t\t\t( kids[ index ] as $mol_view ).force_render( path )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t/** Renders view to DOM and scroll to it. */\n\t\tensure_visible( view: $mol_view, align: ScrollLogicalPosition = \"start\" ) {\n\t\t\t\n\t\t\tconst path = this.view_find( v => v === view ).next().value\n\t\t\tthis.force_render( new Set( path ) )\n\t\t\t\n\t\t\ttry {\n\t\t\t\tthis.dom_final()\n\t\t\t} finally {\n\t\t\t\tview.dom_node().scrollIntoView({ block: align })\n\t\t\t}\n\n\t\t}\n\t\t\n\t\tbring() {\n\t\t\t\n\t\t\tconst win = this.$.$mol_dom_context\n\t\t\tif( win.parent !== win.self && !win.document.hasFocus() ) return\n\t\t\t\n\t\t\t// new this.$.$mol_after_frame( ()=> {\n\t\t\t// \tthis.dom_node().scrollIntoView({ block: 'start', inline: 'nearest' })\n\t\t\t// } )\n\t\t\t\n\t\t\tnew this.$.$mol_after_timeout( 0, ()=> {\n\t\t\t\tthis.focused( true )\n\t\t\t} )\n\t\t\t\n\t\t}\n\n\t\toverride destructor() {\n\t\t\tconst node = $mol_wire_probe(() => this.dom_node())\n\t\t\tif (! node) return\n\n\t\t\tconst events = $mol_wire_probe(() => this.event_async())\n\t\t\tif (! events) return\n\n\t\t\tfor( let event_name in events ) {\n\t\t\t\tnode.removeEventListener(\n\t\t\t\t\tevent_name ,\n\t\t\t\t\tevents[ event_name ]\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\texport type $mol_view_all = $mol_type_pick< $ , typeof $mol_view >\n\n}\n","namespace $ {\n\t/** Plugin is component without its own DOM element, but instead uses the owner DOM element */\n\texport class $mol_plugin extends $mol_view {\n\n\t\toverride dom_node_external( next? : Element ) {\n\t\t\treturn next ?? $mol_owning_get<typeof this, $mol_wire_fiber<$mol_view, any, any>>( this )!.host!.dom_node()\n\t\t}\n\n\t\toverride render() {\n\t\t\tthis.dom_node_actual()\n\t\t}\n\n\t}\n\n}\n","$mol_svg $mol_view\n\tdom_name \\svg\n\tdom_name_space \\http://www.w3.org/2000/svg\n\tfont_size 16\n\tfont_family \\\n\tstyle_size *\n","namespace $ {\n\t\n\t/** State of time moment */\n\texport class $mol_state_time extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic task( precision: number, reset?: null ): $mol_after_timeout | $mol_after_frame {\n\t\t\t\n\t\t\tif( precision ) {\n\t\t\t\treturn new $mol_after_timeout( precision, ()=> this.task( precision, null ) )\n\t\t\t} else {\n\t\t\t\treturn new $mol_after_frame( ()=> this.task( precision, null ) )\n\t\t\t}\n\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic now( precision: number ) {\n\t\t\tthis.task( precision )\n\t\t\treturn Date.now()\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $.$$ {\n\t/** Base SVG component to display SVG images or icons. */\n\texport class $mol_svg extends $.$mol_svg {\n\t\t@$mol_mem\n\t\tcomputed_style() {\n\t\t\tconst win = this.$.$mol_dom_context\n\t\t\tconst style = win.getComputedStyle(this.dom_node()) as Record<string, any>\n\n\t\t\tif(!style['font-size']) $mol_state_time.now( 0 )\n\n\t\t\treturn style\n\t\t}\n\n\t\t@$mol_mem\n\t\tfont_size(): number {\n\t\t\treturn parseInt(this.computed_style()['font-size']) || 16\n\t\t}\n\n\t\t@$mol_mem\n\t\tfont_family() {\n\t\t\treturn this.computed_style()['font-family']\n\t\t}\n\n\t}\n}\n","$mol_svg_root $mol_svg\n\tdom_name \\svg\n\tattr *\n\t\t^\n\t\tviewBox <= view_box \\0 0 100 100\n\t\tpreserveAspectRatio <= aspect \\xMidYMid\n","namespace $ { $mol_style_attach( \"mol/svg/root/root.view.css\",\n \"[mol_svg_root] {\\n\\toverflow: hidden;\\n}\\n\"\n) }","namespace $ {\n\n\texport class $mol_vector< Value , Length extends number > extends Array< Value > {\n\n\t\tget length() {\n\t\t\treturn super.length as Length\n\t\t}\n\n\t\tconstructor( ... values : Value[] & { length : Length } ) { super( ... values ) }\n\t\t\n\t\tmap< Res >(\n\t\t\tconvert : ( value : Value , index : number , array : this ) => Res ,\n\t\t\tself? : any ,\n\t\t) : $mol_vector< Res , Length > {\n\t\t\treturn super.map( convert as any , self ) as any\n\t\t}\n\n\t\tmerged< Patch >(\n\t\t\tpatches : readonly Patch[] & { length : Length } ,\n\t\t\tcombine : ( value : Value , patch : Patch ) => Value ,\n\t\t) : this {\n\t\t\treturn this.map( ( value , index )=> combine( value , patches[ index ] ) ) as any\n\t\t}\n\n\t\tlimited(\n\t\t\tthis : $mol_vector< number , Length > ,\n\t\t\tlimits : readonly ( readonly [ number , number ] )[] & { length : Length } ,\n\t\t) : this {\n\t\t\treturn this.merged( limits , ( value , [ min , max ] )=> ( value < min ) ? min : ( value > max ) ? max : value ) as any\n\t\t}\n\n\t\tadded0( this : $mol_vector< number , Length > , diff : number ) : this {\n\t\t\treturn this.map( value => value + diff ) as any\n\t\t}\n\n\t\tadded1( this : $mol_vector< number , Length > , diff : readonly number[] & { length : Length } ) : this {\n\t\t\treturn this.merged( diff , ( a , b )=> a + b ) as any\n\t\t}\n\n\t\tsubstracted1( this : $mol_vector< number , Length > , diff : readonly number[] & { length : Length } ) : this {\n\t\t\treturn this.merged( diff , ( a , b )=> a - b ) as any\n\t\t}\n\n\t\tmulted0( this : $mol_vector< number , Length > , mult : number ) : this {\n\t\t\treturn this.map( value => value * mult ) as any\n\t\t}\n\n\t\tmulted1(\n\t\t\tthis : $mol_vector< number , Length > ,\n\t\t\tmults : readonly number[] & { length : Length } ,\n\t\t) : this {\n\t\t\treturn this.merged( mults , ( a , b )=> a * b ) as any\n\t\t}\n\n\t\tdivided1(\n\t\t\tthis : $mol_vector< number , Length > ,\n\t\t\tmults : readonly number[] & { length : Length } ,\n\t\t) : this {\n\t\t\treturn this.merged( mults , ( a , b )=> a / b ) as any\n\t\t}\n\n\t\tpowered0( this : $mol_vector< number , Length > , mult : number ) : this {\n\t\t\treturn this.map( value => value ** mult ) as any\n\t\t}\n\n\t\texpanded1(\n\t\t\tthis : $mol_vector< $mol_vector_range< number > , Length > ,\n\t\t\tpoint : readonly number[] & { length : Length } ,\n\t\t) : this {\n\t\t\treturn this.merged( point , ( range , value )=> range.expanded0( value ) ) as any\n\t\t}\n\n\t\texpanded2(\n\t\t\tthis : $mol_vector< $mol_vector_range< number > , Length > ,\n\t\t\tpoint : readonly ( readonly [ number , number ] )[] & { length : Length } ,\n\t\t) : this {\n\t\t\treturn this.merged( point , ( range1 , range2 )=> {\n\t\t\t\tlet next = range1\n\t\t\t\tconst Range = range1.constructor as typeof $mol_vector_range\n\t\t\t\tif (range1[0] > range2[0]) next = new Range(range2[0], next.max);\n\t\t\t\tif (range1[1] < range2[1]) next = new Range(next.min, range2[1])\n\n\t\t\t\treturn next\n\t\t\t}) as any\n\t\t}\n\n\t\tcenter< Item extends $mol_vector< number, number > >(\n\t\t\tthis : $mol_vector< Item , Length > ,\n\t\t) : Item {\n\t\t\tconst Result = this[0].constructor as typeof $mol_vector\n\t\t\treturn new Result( ... this[0].map( (_,i)=> this.reduce( ( sum, point )=> sum + point[i], 0 ) / this.length ) ) as any\n\t\t}\n\n\t\tdistance(\n\t\t\tthis : $mol_vector< $mol_vector< number, number >, Length > ,\n\t\t): number {\n\t\t\tlet distance = 0\n\t\t\t\n\t\t\tfor( let i = 1; i < this.length; ++i ) {\n\t\t\t\tdistance += this[ i - 1 ].reduce( ( sum, min, j )=> sum + ( min - this[i][j] ) ** 2, 0 ) ** ( 1 / this[i].length )\n\t\t\t}\n\t\t\t\n\t\t\treturn distance\n\t\t}\n\n\t\ttransponed(\n\t\t\tthis : $mol_vector< $mol_vector< number, number >, Length > ,\n\t\t): $mol_vector< $mol_vector< number, Length >, typeof this[0]['length'] > {\n\t\t\treturn this[0].map( ( _, i )=> this.map( row => row[i] ) )\n\t\t}\n\n\t\tget x() { return this[0] }\n\t\tset x( next: Value ) { this[0] = next }\n\t\t\n\t\tget y() { return this[1] }\n\t\tset y( next: Value ) { this[1] = next }\n\t\t\n\t\tget z() { return this[2] }\n\t\tset z( next: Value ) { this[2] = next }\n\t\t\n\t}\n\n\texport class $mol_vector_1d< Value > extends $mol_vector< Value , 1 > { }\n\n\texport class $mol_vector_2d< Value > extends $mol_vector< Value , 2 > {}\n\n\texport class $mol_vector_3d< Value > extends $mol_vector< Value , 3 > {}\n\n\texport class $mol_vector_range< Value > extends $mol_vector< Value , 2 > {\n\t\t\n\t\t0: Value\n\t\t1: Value\n\t\t\n\t\tconstructor( min: Value, max = min ) {\n\t\t\tsuper( min, max )\n\t\t\tthis[0] = min\n\t\t\tthis[1] = max\n\t\t}\n\t\t\n\t\tget min() { return this[0] }\n\t\tset min( next: Value ) { this[0] = next }\n\t\t\n\t\tget max() { return this[1] }\n\t\tset max( next: Value ) { this[1] = next }\n\t\t\n\t\tget inversed() {\n\t\t\treturn new ( this.constructor as typeof $mol_vector_range )( this.max , this.min )\n\t\t}\n\n\t\texpanded0( value : Value ) {\n\t\t\tconst Range = this.constructor as typeof $mol_vector_range\n\t\t\tlet range = this as $mol_vector_range< Value >\n\t\t\t\n\t\t\tif( value > range.max ) range = new Range( range.min , value )\n\t\t\tif( value < range.min ) range = new Range( value , range.max )\n\n\t\t\treturn range\n\t\t}\n\n\t}\n\n\texport let $mol_vector_range_full = new $mol_vector_range( Number.NEGATIVE_INFINITY , Number.POSITIVE_INFINITY )\n\n\texport class $mol_vector_matrix<\n\t\tWidth extends number ,\n\t\tHeight extends number ,\n\t> extends $mol_vector< readonly number[] & { length : Width } , Height > {\n\n\t\tadded2(\n\t\t\tdiff : readonly ( readonly number[] & { length : Width } )[] & { length : Height }\n\t\t) : this {\n\t\t\treturn this.merged( diff , ( a , b )=> a.map( ( a2 , index ) => a2 + b[ index ] ) as any ) as any\n\t\t}\n\n\t\tmulted2(\n\t\t\tdiff : readonly ( readonly number[] & { length : Width } )[] & { length : Height }\n\t\t) : this {\n\t\t\treturn this.merged( diff , ( a , b )=> a.map( ( a2 , index ) => a2 * b[ index ] ) as any ) as any\n\t\t}\n\n\t}\n\n}\n","$mol_touch $mol_plugin\n\tstart_zoom? 0\n\tstart_distance? 0\n\tzoom? 1\n\tallow_draw true\n\tallow_pan true\n\tallow_zoom true\n\taction_type? \\\n\taction_point? $mol_vector_2d<number> /\n\t\tNaN\n\t\tNaN\n\t-\n\tstart_pan? /\n\t\t0\n\t\t0\n\tpan? $mol_vector_2d<number> /\n\t\t0\n\t\t0\n\tpointer_center $mol_vector_2d<number> /\n\t\tNaN\n\t\tNaN\n\t-\n\tstart_pos? null\n\tswipe_precision 16\n\t-\n\tswipe_right? null\n\tswipe_bottom? null\n\tswipe_left? null\n\tswipe_top? null\n\t-\n\tswipe_from_right? null\n\tswipe_from_bottom? null\n\tswipe_from_left? null\n\tswipe_from_top? null\n\t-\n\tswipe_to_right? null\n\tswipe_to_bottom? null\n\tswipe_to_left? null\n\tswipe_to_top? null\n\t-\n\tdraw_start?event null\n\tdraw?event null\n\tdraw_end?event null\n\t-\n\tstyle *\n\t\t^\n\t\ttouch-action \\none\n\t\toverscroll-behavior \\none\n\t-\n\tevent *\n\t\t^\n\t\tpointerdown?event <=> event_start?event null\n\t\tpointermove?event <=> event_move?event null\n\t\tpointerup?event <=> event_end?event null\n\t\tpointerleave?event <=> event_leave?event null\n\t\twheel?event <=> event_wheel?event null\n","namespace $.$$ {\n\n\t/**\n\t * Plugin for touch gestures.\n\t * @see [mol_plugin](../plugin/readme.md)\n\t */\n\texport class $mol_touch extends $.$mol_touch {\n\t\t\n\t\tauto() {\n\t\t\tthis.pointer_events()\n\t\t\tthis.start_pan()\n\t\t\tthis.start_pos()\n\t\t\tthis.start_distance()\n\t\t\tthis.start_zoom()\n\t\t\tthis.action_type()\n\t\t\tthis.view_rect()\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tpointer_events( next = [] as readonly PointerEvent[] ) {\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tpointer_coords() {\n\t\t\t\n\t\t\tconst events = this.pointer_events()\n\t\t\tconst touches = events.filter( e => e.pointerType === 'touch' )\n\t\t\tconst pens = events.filter( e => e.pointerType === 'pen' )\n\t\t\tconst mouses = events.filter( e => !e.pointerType || e.pointerType === 'mouse' )\n\t\t\tconst choosen = touches.length ? touches : pens.length ? pens : mouses\n\t\t\t\n\t\t\treturn new $mol_vector(\n\t\t\t\t... choosen.map( event => this.event_coords( event ) )\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tpointer_center() {\n\t\t\tconst coords = this.pointer_coords()\n\t\t\treturn coords.length ? coords.center() : new $mol_vector_2d( NaN , NaN )\n\t\t}\n\t\t\n\t\tevent_coords( event: PointerEvent | WheelEvent ) {\n\t\t\t\n\t\t\tconst { left, top } = this.view_rect()!\n\t\t\t\n\t\t\treturn new $mol_vector_2d(\n\t\t\t\tMath.round( event.pageX - left ),\n\t\t\t\tMath.round( event.pageY - top ),\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\taction_point() {\n\t\t\t\n\t\t\tconst coord = this.pointer_center()\n\t\t\tif( !coord ) return null!\n\t\t\t\n\t\t\tconst zoom = this.zoom()\n\t\t\tconst pan = this.pan()\n\t\t\t\n\t\t\treturn new $mol_vector_2d(\n\t\t\t\t( coord.x - pan.x ) / zoom,\n\t\t\t\t( coord.y - pan.y ) / zoom,\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t\tevent_eat( event: PointerEvent | WheelEvent ) {\n\t\t\t\n\t\t\tif( event instanceof PointerEvent ) {\n\n\t\t\t\tconst events = this.pointer_events()\n\t\t\t\t\t.filter( e => e instanceof PointerEvent )\n\t\t\t\t\t.filter( e => e.pointerId !== event.pointerId )\n\t\t\t\tif( event.type !== 'pointerup' && event.type !== 'pointerleave' ) events.push( event )\n\t\t\t\tthis.pointer_events( events )\n\t\t\t\t\n\t\t\t\tconst touch_count = events.filter( e => e.pointerType === 'touch' ).length\n\t\t\t\t\n\t\t\t\tif( this.allow_zoom() && touch_count === 2 ) {\n\t\t\t\t\treturn this.action_type( 'zoom' )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( this.action_type() === 'zoom' && touch_count === 1 ) {\n\t\t\t\t\treturn this.action_type( 'zoom' )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tenum button {\n\t\t\t\t\tleft = 1,\n\t\t\t\t\tright = 2,\n\t\t\t\t\tmiddle = 4,\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( events.length > 0 ) {\n\t\t\t\t\tif( event.ctrlKey && this.allow_zoom() ) return this.action_type( 'zoom' )\n\t\t\t\t\tif( event.buttons === button.left && this.allow_draw() ) return this.action_type( 'draw' )\n\t\t\t\t\tif( event.buttons && this.allow_pan() ) return this.action_type( 'pan' )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn this.action_type( '' )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( event instanceof WheelEvent ) {\n\t\t\t\tthis.pointer_events([ event as any ])\n\t\t\t\tif( event.shiftKey ) return this.action_type( 'pan' )\n\t\t\t\treturn this.action_type( 'zoom' )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.action_type( '' )\n\t\t}\n\t\t\n\t\tevent_start( event : PointerEvent ) {\n\t\t\tif( event.defaultPrevented ) return\n\t\t\t\n\t\t\tthis.start_pan( this.pan() )\n\n\t\t\tconst action_type = this.event_eat( event )\n\t\t\tif( !action_type ) return\n\t\t\t\n\t\t\tconst coords = this.pointer_coords()\n\t\t\tthis.start_pos( coords.center() )\n\t\t\t\n\t\t\tif( action_type === 'draw' ) {\n\t\t\t\tthis.draw_start( event )\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.start_distance( coords.distance() )\n\t\t\tthis.start_zoom( this.zoom() )\n\n\t\t}\n\n\t\tevent_move( event : PointerEvent ) {\n\t\t\tif( event.defaultPrevented ) return\n\n\t\t\tconst rect = this.view_rect()\n\t\t\tif( !rect ) return\n\t\n\t\t\tconst start_pan = this.start_pan()\n\n\t\t\tconst action_type = this.event_eat( event )\n\t\t\t\n\t\t\tconst start_pos = this.start_pos()\n\t\t\tlet pos = this.pointer_center()!\n\n\t\t\tif( !action_type ) return\n\t\t\tif( !start_pos ) return\n\t\t\t\n\t\t\tif( action_type === 'draw' ) {\n\t\t\t\t\n\t\t\t\tconst distance = new $mol_vector( start_pos, pos ).distance()\n\t\t\t\tif( distance >= 4 ) {\n\t\t\t\t\tthis.draw( event )\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\t\t\t\t\n\t\t\tif( action_type === 'pan' ) {\n\n\t\t\t\tthis.dom_node().setPointerCapture( event.pointerId )\n\t\t\t\t\n\t\t\t\tthis.pan(\n\t\t\t\t\tnew $mol_vector_2d(\n\t\t\t\t\t\tstart_pan[0] + pos[0] - start_pos[0],\n\t\t\t\t\t\tstart_pan[1] + pos[1] - start_pos[1],\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t\n\t\t\t}\n\n\t\t\tconst precision = this.swipe_precision()\n\t\t\t\n\t\t\tif(\n\t\t\t\t(\n\t\t\t\t\tthis.swipe_right !== $mol_touch.prototype.swipe_right\n\t\t\t\t\t|| this.swipe_from_left !== $mol_touch.prototype.swipe_from_left\n\t\t\t\t\t|| this.swipe_to_right !== $mol_touch.prototype.swipe_to_right\n\t\t\t\t)\n\t\t\t\t&& pos[0] - start_pos[0] > precision * 2\n\t\t\t\t&& Math.abs( pos[1] - start_pos[1] ) < precision\n\t\t\t) {\n\t\t\t\tthis.swipe_right( event )\n\t\t\t}\n\n\t\t\tif(\n\t\t\t\t(\n\t\t\t\t\tthis.swipe_left !== $mol_touch.prototype.swipe_left\n\t\t\t\t\t|| this.swipe_from_right !== $mol_touch.prototype.swipe_from_right\n\t\t\t\t\t|| this.swipe_to_left !== $mol_touch.prototype.swipe_to_left\n\t\t\t\t)\n\t\t\t\t&& start_pos[0] - pos[0] > precision * 2\n\t\t\t\t&& Math.abs( pos[1] - start_pos[1] ) < precision\n\t\t\t) {\n\t\t\t\tthis.swipe_left( event )\n\t\t\t}\n\n\t\t\tif(\n\t\t\t\t(\n\t\t\t\t\tthis.swipe_bottom !== $mol_touch.prototype.swipe_bottom\n\t\t\t\t\t|| this.swipe_from_top !== $mol_touch.prototype.swipe_from_top\n\t\t\t\t\t|| this.swipe_to_bottom !== $mol_touch.prototype.swipe_to_bottom\n\t\t\t\t)\n\t\t\t\t&& pos[1] - start_pos[1] > precision * 2\n\t\t\t\t&& Math.abs( pos[0] - start_pos[0] ) < precision\n\t\t\t) {\n\t\t\t\tthis.swipe_bottom( event )\n\t\t\t}\n\n\t\t\tif(\n\t\t\t\t(\n\t\t\t\t\tthis.swipe_top !== $mol_touch.prototype.swipe_top\n\t\t\t\t\t|| this.swipe_from_bottom !== $mol_touch.prototype.swipe_from_bottom\n\t\t\t\t\t|| this.swipe_to_top !== $mol_touch.prototype.swipe_to_top\n\t\t\t\t)\n\t\t\t\t&& start_pos[1] - pos[1] > precision * 2\n\t\t\t\t&& Math.abs( pos[0] - start_pos[0] ) < precision\n\t\t\t) {\n\t\t\t\tthis.swipe_top( event )\n\t\t\t}\n\n\t\t\tif( action_type === 'zoom' ) {\n\n\t\t\t\tconst coords = this.pointer_coords()\n\t\t\t\tconst distance = coords.distance()\n\t\t\t\tconst start_distance = this.start_distance()\n\t\t\t\tconst center = coords.center()\n\n\t\t\t\tconst start_zoom = this.start_zoom()\n\t\t\t\tlet mult = Math.abs( distance - start_distance ) < 32 ? 1 : distance / start_distance\n\t\t\t\tthis.zoom( start_zoom * mult )\n\n\t\t\t\tconst pan = new $mol_vector_2d(\n\t\t\t\t\t( start_pan[0] - center[0] + pos[0] - start_pos[0] ) * mult + center[0],\n\t\t\t\t\t( start_pan[1] - center[1] + pos[1] - start_pos[1] ) * mult + center[1],\n\t\t\t\t)\n\n\t\t\t\tthis.pan( pan )\n\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tevent_end( event : PointerEvent ) {\n\t\t\t\n\t\t\tconst action = this.action_type()\n\t\t\tif( action ==='draw' ) {\n\t\t\t\tthis.draw_end( event )\n\t\t\t}\n\t\t\t\n\t\t\tthis.event_leave( event )\n\t\t\t\n\t\t}\n\n\t\tevent_leave( event : PointerEvent ) {\n\n\t\t\tthis.event_eat( event )\n\t\t\tthis.dom_node().releasePointerCapture( event.pointerId )\n\t\t\tthis.start_pos( null )\n\t\t\t\n\t\t}\n\n\t\tswipe_left( event : PointerEvent ) {\n\t\t\tif( this.view_rect()!.right - this.start_pos()[0] < this.swipe_precision() * 2 ) this.swipe_from_right( event )\n\t\t\telse this.swipe_to_left( event )\n\t\t\tthis.event_end( event )\n\t\t}\n\t\t\n\t\tswipe_right( event : PointerEvent ) {\n\t\t\tif( this.start_pos()[0] - this.view_rect()!.left < this.swipe_precision() * 2 ) this.swipe_from_left( event )\n\t\t\telse this.swipe_to_right( event )\n\t\t\tthis.event_end( event )\n\t\t}\n\t\t\n\t\tswipe_top( event : PointerEvent ) {\n\t\t\tif( this.view_rect()!.bottom - this.start_pos()[1] < this.swipe_precision() * 2 ) this.swipe_from_bottom( event )\n\t\t\telse this.swipe_to_top( event )\n\t\t\tthis.event_end( event )\n\t\t}\n\t\t\n\t\tswipe_bottom( event : PointerEvent ) {\n\t\t\tif( this.start_pos()[1] - this.view_rect()!.top < this.swipe_precision() * 2 ) this.swipe_from_top( event )\n\t\t\telse this.swipe_to_bottom( event )\n\t\t\tthis.event_end( event )\n\t\t}\n\t\t\n\t\tevent_wheel( event : WheelEvent ) {\n\t\t\t\n\t\t\tif( event.defaultPrevented ) return\n\n\t\t\tif( this.pan === $mol_touch.prototype.pan && this.zoom === $mol_touch.prototype.zoom ) return\n\t\t\t\n\t\t\tif( this.pan !== $mol_touch.prototype.pan ) {\n\t\t\t\tevent.preventDefault()\n\t\t\t}\n\t\t\t\n\t\t\tconst action_type = this.event_eat( event )\n\n\t\t\tif( action_type === 'zoom' ) {\n\t\t\t\t\n\t\t\t\tconst zoom_prev = this.zoom() || 0.001\n\t\t\t\tlet zoom_next = zoom_prev * ( 1 - .001 * Math.min( event.deltaY, 100 ) )\n\t\t\t\tzoom_next = this.zoom( zoom_next )\n\t\t\t\tconst mult = zoom_next / zoom_prev\n\n\t\t\t\tconst pan_prev = this.pan()\n\t\t\t\tconst center = this.pointer_center()!\n\t\t\t\tconst pan_next = pan_prev.multed0( mult ).added1( center.multed0( 1 - mult ) )\n\n\t\t\t\tthis.pan( pan_next )\n\t\t\t}\n\t\t\t\n\t\t\tif( action_type === 'pan' ) {\n\t\t\t\t\n\t\t\t\tconst pan_prev = this.pan()\n\t\t\t\tconst pan_next = new $mol_vector_2d(\n\t\t\t\t\tpan_prev.x - event.deltaX,\n\t\t\t\t\tpan_prev.y - event.deltaY,\n\t\t\t\t)\n\n\t\t\t\tthis.pan( pan_next )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","$mol_plot_pane $mol_svg_root\n\taspect \\none\n\t-\n\thue_base? +NaN\n\thue_shift? 111\n\t-\n\tgap_hor 48\n\tgap_vert 24\n\tgap_left <= gap_hor\n\tgap_right <= gap_hor\n\tgap_top <= gap_vert\n\tgap_bottom <= gap_vert\n\tgap $mol_vector_2d<$mol_vector_range<number>> /\n\t\t<= gap_x $mol_vector_range<number> /\n\t\t\t<= gap_left\n\t\t\t<= gap_right\n\t\t<= gap_y $mol_vector_range<number> /\n\t\t\t<= gap_bottom\n\t\t\t<= gap_top\n\t-\n\tshift_limit $mol_vector_2d<$mol_vector_range<number>> /\n\t\t<= shift_limit_x $mol_vector_range<number> /\n\t\t\t0\n\t\t\t0\n\t\t<= shift_limit_y $mol_vector_range<number> /\n\t\t\t0\n\t\t\t0\n\tshift_default $mol_vector_2d<number> /\n\t\t0\n\t\t0\n\tshift? $mol_vector_2d<number> /\n\t\t0\n\t\t0\n\tscale_limit $mol_vector_2d<$mol_vector_range<number>> /\n\t\t<= scale_limit_x $mol_vector_range<number> /\n\t\t\t0\n\t\t\tInfinity\n\t\t<= scale_limit_y $mol_vector_range<number> /\n\t\t\t0\n\t\t\t-Infinity\n\tscale_default $mol_vector_2d<number> /\n\t\t0\n\t\t0\n\tscale? $mol_vector_2d<number> /\n\t\t1\n\t\t-1\n\tscale_x? 1\n\tscale_y? -1\n\tsize $mol_vector_2d<number> /\n\t\t0\n\t\t0\n\tsize_real $mol_vector_2d<number> /\n\t\t1\n\t\t1\n\tdimensions $mol_vector_2d<$mol_vector_range<number>> /\n\t\t<= dimensions_x $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\t\t<= dimensions_y $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\tdimensions_viewport $mol_vector_2d<$mol_vector_range<number>> /\n\t\t<= dimensions_viewport_x $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\t\t<= dimensions_viewport_y $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\t-\n\tsub <= graphs_sorted /$mol_svg\n\tgraphs_colored <= graphs_visible <= graphs_positioned <= graphs /$mol_plot_graph\n\t-\n\tplugins /\n\t\t^\n\t\t<= Touch $mol_touch\n\t\t\tzoom? <=> zoom? 1\n\t\t\tpan? <=> shift?\n\t\t\tpointer_center => cursor_position\n\t\t\tallow_draw <= allow_draw true\n\t\t\tallow_pan <= allow_pan true\n\t\t\tallow_zoom <= allow_zoom true\n\t\t\taction_type => action_type\n\t\t\taction_point => action_point\n\t\t\tdraw_start?event <=> draw_start?event null\n\t\t\tdraw?event <=> draw?event null\n\t\t\tdraw_end?event <=> draw_end?event null\n\t- event *\n\t\t^\n\t\tdblclick?event <=> reset?event null\n","$mol_svg_group $mol_svg\n\tdom_name \\g\n","$mol_svg_title $mol_svg\n\tdom_name \\title\n\tsub /\n\t\t<= title\n","$mol_plot_graph $mol_svg_group\n\tseries_x /number\n\tseries_y /number\n\t-\n\tattr *\n\t\t^\n\t\tmol_plot_graph_type <= type \\solid\n\t-\n\tstyle *\n\t\t^\n\t\tcolor <= color \\\n\t-\n\tviewport $mol_vector_2d<$mol_vector_range<number>> /\n\t\t<= viewport_x $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\t\t<= viewport_y $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\tshift /number\n\t\t0\n\t\t0\n\tscale /number\n\t\t1\n\t\t1\n\tcursor_position $mol_vector_2d<number> /\n\t\tNaN\n\t\tNaN\n\tdimensions_pane $mol_vector_2d<$mol_vector_range<number>> /\n\t\t<= dimensions_pane_x $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\t\t<= dimensions_pane_y $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\tdimensions $mol_vector_2d<$mol_vector_range<number>> /\n\t\t<= dimensions_x $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\t\t<= dimensions_y $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\tsize_real $mol_vector_2d<number> /\n\t\t0\n\t\t0\n\tgap $mol_vector_2d<$mol_vector_range<number>> /\n\t\t<= gap_x $mol_vector_range<number> /\n\t\t\t0\n\t\t\t0\n\t\t<= gap_y $mol_vector_range<number> /\n\t\t\t0\n\t\t\t0\n\trepos_x* 0\n\trepos_y* 0\n\tindexes /number\n\tpoints /readonly(number)[]\n\tfront /$mol_svg\n\tback /$mol_svg\n\tHint $mol_svg_title\n\t\ttitle <= hint <= title \\\n\thue? +NaN\n\tSample null\n\n$mol_plot_graph_sample $mol_view\n\tattr *\n\t\t^\n\t\tmol_plot_graph_type <= type \\solid\n\tstyle *\n\t\t^\n\t\tcolor <= color \\black\n","namespace $.$$ {\n\texport class $mol_plot_graph extends $.$mol_plot_graph {\n\t\t\n\t\tviewport() {\n\t\t\tconst size = this.size_real()\n\t\t\treturn new this.$.$mol_vector_2d(\n\t\t\t\tnew this.$.$mol_vector_range(0, size.x),\n\t\t\t\tnew this.$.$mol_vector_range(0, size.y),\n\t\t\t)\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tindexes() {\n\t\t\treturn this.series_x().map( (_,i)=> i ) as readonly number[]\n\t\t}\n\t\t\n\t\trepos_x( val: number ) {\n\t\t\treturn val\n\t\t}\n\n\t\trepos_y( val: number ) {\n\t\t\treturn val\n\t\t}\n\n\t\tpoints() {\n\t\t\tconst [shift_x, shift_y] = this.shift()\n\t\t\tconst [scale_x, scale_y] = this.scale()\n\t\t\tconst series_x = this.series_x()\n\t\t\tconst series_y = this.series_y()\n\n\t\t\treturn this.indexes().map(index => {\n\t\t\t\t\n\t\t\t\tlet point_x = Math.round(shift_x + this.repos_x( series_x[index] ) * scale_x)\n\t\t\t\tlet point_y = Math.round(shift_y + this.repos_y( series_y[index] ) * scale_y)\n\n\t\t\t\tpoint_x = Math.max( Number.MIN_SAFE_INTEGER, Math.min( point_x, Number.MAX_SAFE_INTEGER ) )\n\t\t\t\tpoint_y = Math.max( Number.MIN_SAFE_INTEGER, Math.min( point_y, Number.MAX_SAFE_INTEGER ) )\n\n\t\t\t\treturn [point_x, point_y]\n\t\t\t}) as readonly( readonly number[] )[]\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tseries_x() {\n\t\t\treturn this.series_y().map((val, index) => index) as readonly number[]\n\t\t}\n\n\t\t@ $mol_mem\n\t\tdimensions() {\n\t\t\tlet next = new this.$.$mol_vector_2d(\n\t\t\t\t$mol_vector_range_full.inversed,\n\t\t\t\t$mol_vector_range_full.inversed\n\t\t\t)\n\n\t\t\tconst series_x = this.series_x()\n\t\t\tconst series_y = this.series_y()\n\t\t\tfor(let i = 0; i < series_x.length; i++) {\n\t\t\t\tif( series_x[i] > next.x.max ) next.x.max = this.repos_x( series_x[i] )\n\t\t\t\tif( series_x[i] < next.x.min ) next.x.min = this.repos_x( series_x[i] )\n\t\t\t\tif( series_y[i] > next.y.max ) next.y.max = this.repos_y( series_y[i] )\n\t\t\t\tif( series_y[i] < next.y.min ) next.y.min = this.repos_y( series_y[i] )\n\t\t\t}\n\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tcolor() {\n\t\t\tconst hue = this.hue()\n\t\t\treturn hue ? `hsl( ${ hue } , 100% , 35% )` : ''\n\t\t}\n\t\t\n\t\tfront() {\n\t\t\treturn [ this ] as unknown as readonly $.$mol_svg[]\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/plot/graph/graph.view.css\",\n \"[mol_plot_graph] {\\n\\tstroke: currentColor;\\n}\\n\\n[mol_plot_graph_sample] {\\n\\tborder-width: 0;\\n\\tborder-style: solid;\\n}\\n\\n[mol_plot_graph_type=\\\"dashed\\\"] {\\n\\tstroke-dasharray: 4 4;\\n\\tborder-style: dashed;\\n}\\n\"\n) }","namespace $.$$ {\n\n\t/**\n\t * Fastest plot lib for vector graphics.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_plot_demo\n\t */\n\texport class $mol_plot_pane extends $.$mol_plot_pane {\n\t\t\n\t\t@ $mol_mem\n\t\tdimensions() {\n\t\t\tconst graphs = this.graphs()\n\t\t\tlet next = new this.$.$mol_vector_2d(\n\t\t\t\t$mol_vector_range_full.inversed,\n\t\t\t\t$mol_vector_range_full.inversed\n\t\t\t)\n\n\t\t\tfor( let graph of graphs ) {\n\t\t\t\tnext = next.expanded2(graph.dimensions())\n\t\t\t}\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsize() {\n\t\t\tconst dims = this.dimensions()\n\t\t\treturn new this.$.$mol_vector_2d(\n\t\t\t\t( dims.x.max - dims.x.min ) || 1 ,\n\t\t\t\t( dims.y.max - dims.y.min ) || 1 ,\n\t\t\t)\n\t\t}\n\t\t\t\n\t\tgraph_hue( index : number ) {\n\t\t\treturn ( 360 + ( this.hue_base() + this.hue_shift() * index ) % 360 ) % 360\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tgraphs_colored() {\n\t\t\tconst graphs = this.graphs_visible()\n\t\t\tfor (let index = 0; index < graphs.length; index++) {\n\t\t\t\tgraphs[index].hue( this.graph_hue( index ) )\n\t\t\t}\n\t\t\t\n\t\t\treturn graphs\n\t\t}\n\t\t\n\t\tsize_real() {\n\t\t\tconst rect = this.view_rect()\n\t\t\tif( !rect ) return new this.$.$mol_vector_2d( 1, 1 )\n\t\t\treturn new this.$.$mol_vector_2d( rect.width, rect.height )\n\t\t}\n\n\t\tview_box() {\n\t\t\tconst size = this.size_real()\n\t\t\treturn `0 0 ${ size.x } ${ size.y }`\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tscale_limit() {\n\t\t\tconst {\n\t\t\t\tx: {max: right},\n\t\t\t\ty: {max: top}\n\t\t\t} = super.scale_limit()\n\t\t\tconst gap = this.gap()\n\t\t\tconst size = this.size()\n\t\t\tconst real = this.size_real()\n\n\t\t\tconst left = + ( real.x - gap.x.min - gap.x.max ) / size.x\n\t\t\tconst bottom = - ( real.y - gap.y.max - gap.y.min) / size.y\n\n\t\t\treturn new this.$.$mol_vector_2d(\n\t\t\t\tnew this.$.$mol_vector_range(left, right),\n\t\t\t\tnew this.$.$mol_vector_range(top, bottom),\n\t\t\t)\n\t\t}\n\n\t\tscale_default() {\n\t\t\tconst limits = this.scale_limit()\n\t\t\treturn new $mol_vector_2d( limits.x.min, limits.y.max )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tscale(next?: $mol_vector_2d< number >): $mol_vector_2d< number > {\n\t\t\tif (next === undefined) {\n\t\t\t\tif (!this.graph_touched) return this.scale_default()\n\t\t\t\tnext = $mol_mem_cached( ()=> this.scale() ) ?? this.scale_default()\n\t\t\t}\n\t\t\tthis.graph_touched = true\n\n\t\t\treturn next!.limited(this.scale_limit())\n\t\t}\n\n\t\tscale_x(next?: number): number {\n\t\t\treturn this.scale(\n\t\t\t\tnext === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: new $mol_vector_2d( next , this.scale().y )\n\t\t\t).x\n\t\t}\n\n\t\tscale_y(next?: number): number {\n\t\t\treturn this.scale(\n\t\t\t\tnext === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: new $mol_vector_2d( this.scale().x , next )\n\t\t\t).y\n\t\t}\n\n\t\t@ $mol_mem\n\t\tshift_limit() {\n\t\t\tconst dims = this.dimensions()\n\t\t\tconst [scale_x, scale_y] = this.scale()\n\t\t\tconst size = this.size_real()\n\t\t\tconst gap = this.gap()\n\n\t\t\tconst left = gap.x.min - dims.x.min * scale_x\n\t\t\tconst right = size.x - gap.x.max - dims.x.max * scale_x\n\n\t\t\tconst top = gap.y.max - dims.y.max * scale_y\n\t\t\tconst bottom = size.y - gap.y.min - dims.y.min * scale_y\n\n\t\t\treturn new this.$.$mol_vector_2d(\n\t\t\t\tnew this.$.$mol_vector_range(right, left),\n\t\t\t\tnew this.$.$mol_vector_range(bottom, top),\n\t\t\t)\n\t\t}\n\n\t\t@ $mol_mem\n\t\tshift_default() {\n\t\t\tconst limits = this.shift_limit()\n\t\t\treturn new $mol_vector_2d( limits.x.min, limits.y.min )\n\t\t}\n\n\t\tgraph_touched: boolean = false\n\n\t\t@ $mol_mem\n\t\tshift(next?: $mol_vector_2d< number >): $mol_vector_2d< number > {\n\n\t\t\tif (next === undefined) {\n\t\t\t\tif (!this.graph_touched) return this.shift_default()\n\t\t\t\tnext = $mol_mem_cached( ()=> this.shift() ) ?? this.shift_default()\n\t\t\t}\n\n\t\t\tthis.graph_touched = true\n\n\t\t\treturn next!.limited(this.shift_limit())\n\t\t}\n\n\t\treset(event?: Event) {\n\t\t\tthis.graph_touched = false\n\t\t\tthis.scale(this.scale_default())\n\t\t\tthis.shift(this.shift_default())\n\t\t}\n\n\t\t@ $mol_mem\n\t\tgraphs_visible() {\n\t\t\t\n\t\t\tconst viewport = this.dimensions_viewport()\n\t\t\tconst size_real = this.size_real()\n\t\t\t\n\t\t\tconst max_x = ( viewport.x.max - viewport.x.min ) / size_real.x\n\t\t\tconst max_y = ( viewport.y.max - viewport.y.min ) / size_real.y\n\t\t\t\n\t\t\treturn this.graphs_positioned().filter( graph => {\n\t\t\t\t\n\t\t\t\tconst dims = graph.dimensions()\n\t\t\t\t\n\t\t\t\tif( dims.x.min > dims.x.max ) return true\n\t\t\t\tif( dims.y.min > dims.y.max ) return true\n\t\t\t\t\n\t\t\t\tconst size_x = dims.x.max - dims.x.min\n\t\t\t\tconst size_y = dims.y.max - dims.y.min\n\t\t\t\tif( ( size_x || size_y ) && size_x < max_x && size_y < max_y ) return false\n\t\t\t\t\n\t\t\t\tif( dims.x.min > viewport.x.max ) return false\n\t\t\t\tif( dims.x.max < viewport.x.min ) return false\n\t\t\t\t\n\t\t\t\tif( dims.y.min > viewport.y.max ) return false\n\t\t\t\tif( dims.y.max < viewport.y.min ) return false\n\t\t\t\t\n\t\t\t\treturn true\n\t\t\t} )\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tgraphs_positioned() {\n\t\t\tconst graphs = this.graphs()\n\t\t\tfor (let graph of graphs) {\n\t\t\t\tgraph.shift = ()=> this.shift()\n\t\t\t\tgraph.scale = ()=> this.scale()\n\t\t\t\tgraph.dimensions_pane = () => this.dimensions_viewport()\n\t\t\t\tgraph.viewport = () => this.viewport()\n\t\t\t\tgraph.size_real = ()=> this.size_real()\n\t\t\t\tgraph.cursor_position = ()=> this.cursor_position()\n\t\t\t\tgraph.gap = () => this.gap()\n\t\t\t}\n\t\t\t\n\t\t\treturn graphs\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tdimensions_viewport() {\n\t\t\tconst shift = this.shift().multed0(-1)\n\t\t\tconst scale = this.scale().powered0(-1)\n\t\t\treturn this.viewport().map( ( range, i )=> range.added0( shift[i] ).multed0( scale[i] ).sort( (a,b)=>a-b) )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tviewport() {\n\t\t\tconst size = this.size_real()\n\t\t\treturn new this.$.$mol_vector_2d(\n\t\t\t\tnew this.$.$mol_vector_range(0, size.x),\n\t\t\t\tnew this.$.$mol_vector_range(0, size.y),\n\t\t\t)\n\t\t}\n\n\t\t@ $mol_mem\n\t\tgraphs_sorted() {\n\t\t\tconst graphs = this.graphs_colored()\n\t\t\tconst sorted = [] as $.$mol_svg[]\n\t\t\t\n\t\t\tfor( let graph of graphs ) sorted.push(...graph.back())\n\t\t\tfor( let graph of graphs ) sorted.push(...graph.front())\n\t\t\t\n\t\t\treturn sorted\n\t\t}\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/plot/pane/pane.view.css\",\n \"[mol_plot_pane] {\\n\\tcolor: var(--mol_theme_control);\\n\\tflex: 1 1 auto;\\n\\talign-self: stretch;\\n\\tstroke-width: 2px;\\n\\tuser-select: none;\\n}\\n\"\n) }","$mol_plot_line $mol_plot_graph\n\tthreshold 1\n\tspacing 2\n\tcolor_fill \\none\n\tdom_name \\path\n\tattr *\n\t\t^\n\t\td <= curve \\\n\tsub /\n\t\t<= Hint\n\t-\n\tSample $mol_plot_graph_sample\n\t\tcolor <= color\n\t\ttype <= type\n","namespace $.$$ {\n\texport class $mol_plot_line extends $.$mol_plot_line {\n\n\t\tsub() {\n\t\t\treturn this.hint() ? super.sub() : []\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tindexes() {\n\t\t\t\n\t\t\tconst threshold = this.threshold()\n\t\t\tconst {\n\t\t\t\tx: {min: viewport_left, max: viewport_right},\n\t\t\t\ty: {min: viewport_bottom, max: viewport_top},\n\t\t\t} = this.viewport()\n\n\t\t\tconst [shift_x, shift_y] = this.shift()\n\t\t\tconst [scale_x, scale_y] = this.scale()\n\t\t\tconst indexes = [] as number[]\n\n\t\t\tlet last = new $mol_vector_2d( Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY )\n\t\t\tlet last_zone = new $mol_vector_2d( 0, 0 )\n\n\t\t\tconst series_x = this.series_x()\n\t\t\tconst series_y = this.series_y()\n\t\t\t\n\t\t\tconst zone_of = ( point: $mol_vector_2d<number> )=> new $mol_vector_2d(\n\t\t\t\tpoint.x < viewport_left ? -1\n\t\t\t\t\t: point.x > viewport_right ? 1\n\t\t\t\t\t: 0,\n\t\t\t\tpoint.y < viewport_bottom ? -1\n\t\t\t\t\t: point.y > viewport_top ? 1\n\t\t\t\t\t: 0,\n\t\t\t)\n\t\t\t\n\t\t\tfor (let i = 0; i < series_x.length-1; i++) {\n\t\t\t\t\n\t\t\t\tconst scaled = new $mol_vector_2d(\n\t\t\t\t\tMath.round( shift_x + this.repos_x( series_x[i] ) * scale_x ),\n\t\t\t\t\tMath.round( shift_y + this.repos_y( series_y[i] ) * scale_y ),\n\t\t\t\t)\n\n\t\t\t\tif (\n\t\t\t\t\tMath.abs( scaled.x - last.x ) < threshold\n\t\t\t\t\t&& Math.abs( scaled.y - last.y ) < threshold\n\t\t\t\t) continue\n\n\t\t\t\tconst zone = zone_of( scaled )\n\t\t\t\t\n\t\t\t\tlast = scaled\n\t\t\t\t\n\t\t\t\tif( zone.x !== 0 && zone.x === last_zone.x || zone.y !== 0 && zone.y === last_zone.y ) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( last_zone.x !== 0 || last_zone.y !== 0 ) {\n\t\t\t\t\tindexes.push( i - 1 )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tlast_zone = zone\n\t\t\t\t\n\t\t\t\tindexes.push(i)\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tindexes.push( series_x.length - 1 )\n\n\t\t\treturn indexes\n\t\t}\n\n\t\tcurve() {\n\t\t\tconst points = this.points()\n\t\t\tif( points.length === 0 ) return ''\n\n\t\t\tconst main = points.map( (point) => point.join(',')).join(' ')\n\n\t\t\treturn `M ${points[0].join(' ')} L ${main}`\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/plot/line/line.view.css\",\n \"[mol_plot_line] {\\n\\tfill: none;\\n\\tstroke-linejoin: round;\\n}\\n\\n[mol_plot_line_sample] {\\n\\theight: 0;\\n\\tleft: 0;\\n\\tright: 0;\\n\\tbottom: 0;\\n\\tborder-width: 2px 0 0;\\n\\tposition: absolute;\\n\\ttop: .75em;\\n\\ttransform: translateY(-50%);\\n}\\n\"\n) }","$mol_plot_group $mol_plot_graph\n\tsub <= graphs_enriched <= graphs /$mol_plot_graph\n\tSample $mol_plot_graph_sample\n\t\tsub <= graph_samples /$mol_view\n","namespace $.$$ {\n\texport class $mol_plot_group extends $.$mol_plot_group {\n\t\t\n\t\t@ $mol_mem\n\t\tgraphs_enriched() {\n\t\t\tconst graphs = this.graphs()\n\t\t\tfor( let graph of graphs ) {\n\t\t\t\tgraph.shift = ()=> this.shift()\n\t\t\t\tgraph.scale = ()=> this.scale()\n\t\t\t\tgraph.size_real = ()=> this.size_real()\n\t\t\t\tgraph.hue = ()=> this.hue()\n\t\t\t\tgraph.series_x = ()=> this.series_x()\n\t\t\t\tgraph.series_y = ()=> this.series_y()\n\t\t\t\tgraph.dimensions_pane = ()=> this.dimensions_pane()\n\t\t\t\tgraph.viewport = ()=> this.viewport()\n\t\t\t\tgraph.cursor_position = ()=> this.cursor_position()\n\t\t\t\tgraph.gap = ()=> this.gap()\n\t\t\t\tgraph.title = ()=> this.title()\n\t\t\t\tgraph.repos_x = val => this.repos_x( val )\n\t\t\t\tgraph.repos_y = val => this.repos_y( val )\n\t\t\t}\n\t\t\treturn graphs\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tdimensions() {\n\t\t\tconst graphs = this.graphs_enriched()\n\t\t\tlet next = new this.$.$mol_vector_2d(\n\t\t\t\t$mol_vector_range_full.inversed,\n\t\t\t\t$mol_vector_range_full.inversed\n\t\t\t)\n\n\t\t\tfor( let graph of graphs ) {\n\t\t\t\tnext = next.expanded2(graph.dimensions())\n\t\t\t}\n\n\t\t\treturn next\n\t\t}\n\n\t\t@ $mol_mem\n\t\tgraph_samples() {\n\t\t\treturn this.graphs_enriched().map( graph => graph.Sample() )\n\t\t}\n\t\t\n\t\tback() {\n\t\t\tconst graphs = this.graphs_enriched()\n\t\t\tconst next = [] as $mol_plot_graph[]\n\t\t\t\n\t\t\tfor( let graph of graphs ) next.push( ...graph.back() as $mol_plot_graph[])\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tfront() {\n\t\t\tconst graphs = this.graphs_enriched()\n\t\t\tconst next = [] as $mol_plot_graph[]\n\t\t\t\n\t\t\tfor( let graph of graphs ) next.push( ...graph.front() as $mol_plot_graph[])\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t}\n}\n","$mol_svg_path $mol_svg\n\tdom_name \\path\n\tattr *\n\t\t^\n\t\td <= geometry \\\n\n","$mol_plot_dot $mol_plot_graph\n\tpoints_max +Infinity\n\taspect 1\n\tstyle *\n\t\t^\n\t\tstroke-width <= diameter 8\n\tsub /\n\t\t<= Hint\n\t\t<= Curve $mol_svg_path\n\t\t\tgeometry <= curve \\\n\t-\n\tSample $mol_plot_graph_sample\n\t\tcolor <= color\n","namespace $ {\n\t\n\t// 00 HHHHH HHHHH HHHHH LLLLL LLLLL LLLLL\n\t\n\tconst mask = 0b11111_11111_11111\n\t\n\texport function $mol_coord_pack( high: number, low: number ) {\n\t\treturn ( high << 17 >>> 2 ) | ( low & mask )\n\t}\n\n\texport function $mol_coord_high( pack: number ) {\n\t\treturn pack << 2 >> 17\n\t}\n\n\texport function $mol_coord_low( pack: number ) {\n\t\treturn ( pack << 17 ) >> 17\n\t}\n\t\n}\n","namespace $.$$ {\n\texport class $mol_plot_dot extends $.$mol_plot_dot {\n\t\t\n\t\t@$mol_mem\n\t\tfilled(): Set<number> {\n\t\t\treturn new Set()\n\t\t}\n\n\t\t@ $mol_mem\n\t\tindexes() {\n\t\t\tconst radius = this.diameter() / 2\n\t\t\t// calculate by cpu\n\t\t\tconst points_max = this.points_max()\n\n\t\t\tconst viewport = this.viewport()\n\t\t\tconst viewport_left = viewport.x.min - radius\n\t\t\tconst viewport_right = viewport.x.max + radius\n\t\t\tconst viewport_bottom = viewport.y.min - radius\n\t\t\tconst viewport_top = viewport.y.max + radius\n\n\t\t\tconst [shift_x, shift_y] = this.shift()\n\t\t\tconst [scale_x, scale_y] = this.scale()\n\n\t\t\tlet last_x = Number.NEGATIVE_INFINITY\n\t\t\tlet last_y = Number.NEGATIVE_INFINITY\n\n\t\t\tlet spacing = 0\n\t\t\tlet filled: Set<number> = this.filled() \n\t\t\tlet indexes: number[]\n\n\t\t\tconst series_x = this.series_x()\n\t\t\tconst series_y = this.series_y()\n\t\t\tdo {\n\t\t\t\tindexes = []\n\t\t\t\tfor (let i = 0; i < series_x.length; i++) {\n\t\t\t\t\tconst point_x = this.repos_x( series_x[i] )\n\t\t\t\t\tconst point_y = this.repos_y( series_y[i] )\n\t\t\t\t\tconst scaled_x = Math.round(shift_x + point_x * scale_x)\n\t\t\t\t\tconst scaled_y = Math.round(shift_y + point_y * scale_y)\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tMath.abs( scaled_x - last_x ) < radius\n\t\t\t\t\t\t&& Math.abs( scaled_y - last_y ) < radius\n\t\t\t\t\t) continue\n\n\t\t\t\t\tlast_x = scaled_x\n\t\t\t\t\tlast_y = scaled_y\n\n\t\t\t\t\tif (scaled_x < viewport_left) continue\n\t\t\t\t\tif (scaled_y < viewport_bottom) continue\n\t\t\t\t\tif (scaled_x > viewport_right) continue\n\t\t\t\t\tif (scaled_y > viewport_top) continue\n\n\t\t\t\t\tif (spacing !== 0) {\n\t\t\t\t\t\tconst key = $mol_coord_pack(\n\t\t\t\t\t\t\tMath.round(point_x * scale_x / spacing) * spacing,\n\t\t\t\t\t\t\tMath.round(point_y * scale_y / spacing) * spacing\n\t\t\t\t\t\t)\n\t\t\t\t\t\tif (filled.has(key)) continue\n\n\t\t\t\t\t\tfilled.add(key)\n\t\t\t\t\t}\n\n\t\t\t\t\tindexes.push(i)\n\t\t\t\t\tif (indexes.length > points_max) break\n\t\t\t\t}\n\t\t\t\tspacing += Math.ceil(radius)\n\t\t\t\tfilled.clear()\n\t\t\t} while (indexes.length > points_max)\n\n\t\t\treturn indexes\n\t\t}\n\n\t\tcurve() {\n\t\t\t\n\t\t\tconst points = this.points()\n\t\t\tif( points.length === 0 ) return ''\n\t\t\t\n\t\t\tconst diameter = this.diameter()\n\t\t\tconst aspect = this.aspect()\n\t\t\t\n\t\t\tconst shift_y = Math.max( 0, Math.floor( ( aspect - 1 ) * diameter / 2 ) )\n\t\t\tconst shift_x = Math.max( 0, Math.floor( ( 1/aspect - 1 ) * diameter / 2 ) )\n\n\t\t\tconst size_y = Math.max( 0, Math.ceil( ( aspect - 1 ) * diameter ) )\n\t\t\tconst size_x = Math.max( 0, Math.ceil( ( 1/aspect - 1 ) * diameter ) )\n\n\t\t\treturn points.map(\n\t\t\t\tpoint => `M ${ point[0] - shift_x } ${ point[1] - shift_y } l ${ size_x } ${ size_y }`\n\t\t\t).join( ' ' )\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/plot/dot/dot.view.css\",\n \"[mol_plot_dot] {\\n\\tstroke-linecap: round;\\n\\tfill: none;\\n}\\n\\n[mol_plot_dot_sample] {\\n\\twidth: .5rem;\\n\\theight: .5rem;\\n\\tborder-radius: 1rem;\\n\\tbackground: currentColor;\\n\\tposition: absolute;\\n\\ttop: .75em;\\n\\tleft: 50%;\\n\\ttransform: translate(-50%, -50%);\\n}\\n\"\n) }","$mol_plot_map_heat $mol_plot_group\n\tseries_z /number\n\tgraphs <= level_graphs /\n\tLevel* $mol_plot_map_heat_level\n\t\thint <= level_hint* \\\n\t\tpoints <= level_points* /\n\t\topacity <= level_opacity* \\1\n\t\tdiameter <= level_diameter 10\n\t\taspect <= level_aspect 1\n\t-\n\tSample $mol_plot_graph_sample\n\t\tcolor <= color\n\n$mol_plot_map_heat_level $mol_plot_dot\n\tstyle *\n\t\t^\n\t\topacity <= opacity \\1\n","namespace $.$$ {\n\t/**\n\t * Heat map graph.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_plot_map_heat_demo\n\t */\n\texport class $mol_plot_map_heat extends $.$mol_plot_map_heat {\n\t\t\n\t\t@ $mol_mem\n\t\tlevels() {\n\t\t\treturn [ ... new Set<number>( this.series_z() ) ].sort( ( a, b )=> a - b )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tlevel_graphs() {\n\t\t\treturn this.levels().map( (_,i)=> this.Level( i ) )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tlevel_points( level: number ) {\n\t\t\tconst value = this.levels()[ level ]\n\t\t\tconst series_z = this.series_z()\n\t\t\tconst res = [] as (readonly number[])[]\n\t\t\tfor( const [ index, point ] of this.points().entries() ) {\n\t\t\t\tif( series_z[ index ] !== value ) continue\n\t\t\t\tres.push( point )\n\t\t\t}\n\t\t\treturn res\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tlevel_opacity( level: number ) {\n\t\t\treturn String( level / this.levels().length )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tlevel_diameter() {\n\t\t\treturn Math.min( ... this.scale().map( Math.abs ) )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tlevel_aspect() {\n\t\t\tconst scale = this.scale().map( Math.abs )\n\t\t\treturn scale[1] / scale[0]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tlevel_hint( index: number ) {\n\t\t\treturn this.levels()[ index ].toLocaleString()\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/plot/map/heat/heat.view.css\",\n \"[mol_plot_map_heat_level_curve] {\\n\\tstroke-linecap: square;\\n\\tfill: none;\\n}\\n\"\n) }","$mol_plot_bar $mol_plot_graph\n\tstyle *\n\t\t^\n\t\tstroke-width <= stroke_width \\1rem\n\tsub /\n\t\t<= Hint\n\t\t<= Curve $mol_svg_path\n\t\t\tgeometry <= curve \\\n\tSample $mol_plot_graph_sample\n\t\tcolor <= color\n","namespace $.$$ {\n\texport class $mol_plot_bar extends $.$mol_plot_bar {\n\n\t\t@$mol_mem\n\t\tindexes() {\n\t\t\tconst {\n\t\t\t\tx: {min: viewport_left, max: viewport_right},\n\t\t\t\ty: {min: viewport_bottom, max: viewport_top},\n\t\t\t} = this.viewport()\n\n\t\t\tconst [shift_x, shift_y] = this.shift()\n\t\t\tconst [scale_x, scale_y] = this.scale()\n\t\t\tconst indexes = [] as number[]\n\n\t\t\tconst series_x = this.series_x()\n\t\t\tconst series_y = this.series_y()\n\n\t\t\tlet first_x = null as number | null\n\t\t\tlet last_x = null as number | null\n\n\t\t\tfor (let i = 0; i < series_x.length; i++) {\n\t\t\t\tconst scaled = [\n\t\t\t\t\tMath.round( shift_x + series_x[i] * scale_x ),\n\t\t\t\t\tMath.round( shift_y + series_y[i] * scale_y ),\n\t\t\t\t] as const\n\n\t\t\t\tif (scaled[0] < viewport_left) {\n\t\t\t\t\tfirst_x = i\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif (scaled[0] > viewport_right) {\n\t\t\t\t\tif (last_x === null) last_x = i\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tif (scaled[1] < viewport_bottom) continue\n\t\t\t\tif (scaled[1] > viewport_top) continue\n \n\t\t\t\tif (first_x !== null) indexes.push(first_x)\n\n\t\t\t\tindexes.push(i)\n\n\t\t\t\tif (last_x !== null) indexes.push(last_x)\n\n\t\t\t\tfirst_x = last_x = null\n\t\t\t}\n\n\t\t\tif (first_x !== null) indexes.push(first_x)\n\t\t\tif (last_x !== null) indexes.push(last_x)\n\n\t\t\treturn indexes\n\t\t}\n\n\t\tcurve() {\n\t\t\tconst points = this.points()\n\t\t\tif( points.length === 0 ) return ''\n\t\t\tconst [, shift_y] = this.shift()\n\n\t\t\treturn points.map( point =>\n\t\t\t\t( Number.isFinite( point[0] ) && Number.isFinite( point[1] ) )\n\t\t\t\t\t? `M ${point[0]} ${shift_y} V ${point[1]}`\n\t\t\t\t\t: ``\n\t\t\t).join( ' ' )\n\t\t}\n\t\t\n\t\tstroke_width() {\n\t\t\treturn ( 8 / Math.sqrt( this.indexes().length ) ).toPrecision(2) + '%'\n\t\t}\n\t\t\n\t\tcolor() {\n\t\t\treturn `hsl( ${ this.hue() } , 80% , 80% )`\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tdimensions() {\n\t\t\tlet next = new this.$.$mol_vector_2d(\n\t\t\t\t$mol_vector_range_full.inversed,\n\t\t\t\tnew this.$.$mol_vector_range(0 , 0),\n\t\t\t)\n\t\t\t\n\t\t\tconst series_x = this.series_x()\n\t\t\tconst series_y = this.series_y()\n\t\t\tfor (let i = 0; i < series_x.length; i++) {\n\t\t\t\tnext = next.expanded1([series_x[i], series_y[i]] as const)\n\t\t\t}\n\t\t\t\n\t\t\tconst gap = ( next.x.max - next.x.min ) / series_x.length || 0.00000001\n\t\t\tnext[0] = next.x.added1([-gap, gap] as const)\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/plot/bar/bar.view.css\",\n \"[mol_plot_bar] {\\n\\tstroke-linecap: butt;\\n\\tstroke-width: 1rem;\\n}\\n\\n[mol_plot_bar_sample] {\\n\\tbackground: currentColor;\\n\\tposition: absolute;\\n\\ttop:0;\\n\\tbottom: 0;\\n\\tleft: 0;\\n\\tright: 0;\\n}\\n\"\n) }","$mol_plot_fill $mol_plot_line\n\tthreshold 4\n","namespace $.$$ {\n\texport class $mol_plot_fill extends $.$mol_plot_fill {\n\n\t\tcurve() {\n\t\t\tconst points = this.points()\n\t\t\tif( points.length === 0 ) return ''\n\t\t\t\n\t\t\tconst [, shift_y] = this.shift()\n\n\t\t\tconst main = points.map( point => point.join(',')).join(' ')\n\n\t\t\treturn `M ${points[0].join(' ')} L ${main} V ${shift_y} H ${points[0][0]}`\n\t\t}\n\t\t\n\t\tfront() {\n\t\t\treturn []\n\t\t}\n\t\t\n\t\tback() {\n\t\t\treturn [ this ]\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/plot/fill/fill.view.css\",\n \"[mol_plot_fill] {\\n\\tstroke: none;\\n\\tstroke-width: 0;\\n\\topacity: .1;\\n\\tfill: currentColor;\\n\\tpointer-events: none;\\n}\\n\\n[mol_plot_fill_sample] {\\n\\topacity: .1;\\n\\tbackground: currentColor;\\n\\tposition: absolute;\\n\\tbottom: 0;\\n\\ttop: .75em;\\n\\tleft: 0;\\n\\tright: 0;\\n}\\n\"\n) }","$mol_svg_rect $mol_svg\n\tdom_name \\rect\n\tpos /\n\tattr *\n\t\t^\n\t\twidth <= width \\0\n\t\theight <= height \\0\n\t\tx <= pos_x \\\n\t\ty <= pos_y \\\n","namespace $.$$ {\n\n\texport class $mol_svg_rect extends $.$mol_svg_rect {\n\t\t\n\t\tpos_x() {\n\t\t\treturn this.pos()[ 0 ]\n\t\t}\n\t\t\n\t\tpos_y() {\n\t\t\treturn this.pos()[ 1 ]\n\t\t}\n\t\t\n\t}\n\t\n}\n","$mol_svg_text $mol_svg\n\tdom_name \\text\n\tpos /\n\tattr *\n\t\t^\n\t\tx <= pos_x \\\n\t\ty <= pos_y \\\n\t\ttext-anchor <= align_hor <= align \\middle\n\t\talignment-baseline <= align_vert \\baseline\n\tsub /\n\t\t<= text \\\n","namespace $.$$ {\n\t\n\texport class $mol_svg_text extends $.$mol_svg_text {\n\t\t\n\t\tpos_x() {\n\t\t\treturn this.pos()[ 0 ]\n\t\t}\n\t\t\n\t\tpos_y() {\n\t\t\treturn this.pos()[ 1 ]\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ { $mol_style_attach( \"mol/svg/text/text.view.css\",\n \"[mol_svg_text] {\\n\\tfill: currentColor;\\n\\tstroke: none;\\n}\\n\"\n) }","$mol_plot_ruler $mol_plot_graph\n\tstep 0\n\tscale_axis 1\n\tscale_step 1\n\tshift_axis 1\n\tdimensions_axis $mol_vector_range<number> /\n\t\tInfinity\n\t\t-Infinity\n\tviewport_axis $mol_vector_range<number> /\n\t\tInfinity\n\t\t-Infinity\n\taxis_points /number\n\tnormalize? 0\n\tprecision 1\n\tsub /\n\t\t<= Background $mol_svg_rect\n\t\t\tpos_x <= background_x \\0\n\t\t\tpos_y <= background_y \\0\n\t\t\twidth <= background_width \\100%\n\t\t\theight <= background_height \\14\n\t\t<= Curve $mol_svg_path\n\t\t\tgeometry <= curve \\\n\t\t<= labels_formatted /\n\t\t<= Title $mol_svg_text\n\t\t\tpos_x <= title_pos_x \\0\n\t\t\tpos_y <= title_pos_y \\100%\n\t\t\talign <= title_align \\start\n\t\t\ttext <= title\n\tLabel* $mol_svg_text\n\t\tpos <= label_pos* /\n\t\t\t<= label_pos_x* \\\n\t\t\t<= label_pos_y* \\\n\t\ttext <= label_text* \\\n\t\talign <= label_align \\\n","namespace $ {\n\t\n\texport function $mol_math_round_expand( val : number , gap = 1 ) {\n\t\tif( val === 0 ) return 0\n\t\t\n\t\tconst val_abs = Math.abs( val )\n\t\tconst val_sign = val ? Math.round( val / val_abs ) : 0\n\t\t\n\t\tconst digits = Math.floor( Math.log( val_abs ) / Math.log( 10 ) )\n\t\tconst precission = Math.pow( 10 , digits - gap )\n\t\tconst val_expanded = precission * Math.ceil( val_abs / precission )\n\t\t\n\t\treturn val_sign * val_expanded\n\t}\n\t\n}\n","namespace $.$$ {\n\texport class $mol_plot_ruler extends $.$mol_plot_ruler {\n\t\tlabels_formatted() {\n\t\t\treturn this.axis_points().map( ( point , index )=> this.Label( index ) )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tstep() {\n\t\t\tconst scale = Math.abs( this.scale_step() )\n\t\t\tconst dims = this.dimensions_axis()\n\t\t\tconst range = dims.max - dims.min\n\t\t\tconst min_width = ( Math.abs( Math.log10( range ) ) + 2 ) * 15\n\t\t\tconst size = $mol_math_round_expand( range , -1 )\n\t\t\tconst count = Math.max( 1 , Math.pow( 10 , Math.floor( Math.log( size * scale / min_width ) / Math.log( 10 ) ) ) )\n\t\t\tlet step = size / count\n\t\t\tconst step_max = min_width * 2 / scale\n\t\t\tif( step > step_max ) step /= 2\n\t\t\tif( step > step_max ) step /= 2\n\n\t\t\treturn Math.max( step , Math.abs( dims.min ) / 1e10 , Math.abs( dims.max ) / 1e10 )\n\t\t}\n\n\t\tsnap_to_grid(coord: number) {\n\t\t\tconst viewport = this.viewport_axis()\n\t\t\tconst scale = this.scale_axis()\n\t\t\tconst shift = this.shift_axis()\n\t\t\tconst step = this.step()\n\n\t\t\tconst val = Math.round( coord / step ) * step\n\n\t\t\tif (scale == 0) return val\n\n\t\t\tconst step_scaled = step * scale\n\t\t\tconst scaled = val * scale + shift\n\t\t\tlet count = 0\n\t\t\tif (scaled < viewport.min) count = (scaled - viewport.min) / step_scaled\n\t\t\tif (scaled > viewport.max) count = (scaled - viewport.max) / step_scaled\n\n\t\t\treturn val - Math.floor(count) * step\n\t\t}\n\n\t\t@ $mol_mem\n\t\taxis_points() {\n\t\t\tconst dims = this.dimensions_axis()\n\t\t\tconst start = this.snap_to_grid(dims.min)\n\t\t\tconst end = this.snap_to_grid(dims.max)\n\t\t\tconst step = this.step()\n\n\t\t\tconst next = [] as number[]\n\t\t\tfor( let val = start ; val <= end ; val += step ) {\n\t\t\t\tnext.push(val)\n\t\t\t}\n\n\t\t\treturn next\n\t\t}\n\n\t\t@$mol_mem\n\t\tprecision() {\n\t\t\tconst step = this.step()\n\t\t\treturn Math.max( 0 , Math.min( 15 , ( step - Math.floor( step ) ).toString().length - 2 ) )\n\t\t}\n\n\t\tlabel_text( index : number ) {\n\t\t\tconst point = this.axis_points()[index]\n\t\t\treturn point.toFixed( this.precision() )\n\t\t}\n\n\t\tfont_size() {\n\t\t\treturn this.Background().font_size()\n\t\t}\n\n\t\tback() {\n\t\t\treturn [this.Curve()]\n\t\t}\n\n\t\tfront() {\n\t\t\treturn [\n\t\t\t\t// this.Background(),\n\t\t\t\t...this.labels_formatted(),\n\t\t\t\tthis.Title()\n\t\t\t] as readonly $.$mol_svg[]\n\t\t}\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/plot/ruler/ruler.view.css\",\n \"[mol_plot_ruler_curve] {\\n\\tcolor: var(--mol_theme_line);\\n\\tstroke-width: 1px;\\n\\tstroke: currentColor;\\n}\\n\\n[mol_plot_ruler_label] {\\n\\tcolor: var(--mol_theme_text);\\n\\ttext-shadow: 0 -1px var(--mol_theme_back), 0px 1px var(--mol_theme_back);\\n}\\n\\n[mol_plot_ruler_title] {\\n\\tcolor: var(--mol_theme_shade);\\n\\tbackground-color: var(--mol_theme_back);\\n\\ttext-shadow: 0 -1px var(--mol_theme_back), 0px 1px var(--mol_theme_back);\\n}\\n\\n[mol_plot_ruler_background] {\\n\\tstroke: none;\\n\\tfill: var(--mol_theme_back);\\n\\topacity: 0.8;\\n}\\n\"\n) }","$mol_plot_ruler_vert $mol_plot_ruler\n\ttitle_align \\end\n\tlabel_align \\end\n\ttitle_pos_y \\14\n\tlabel_pos_x* <= title_pos_x\n\tbackground_height \\100%\n\tbackground_width <= title_pos_x\n","namespace $.$$ {\n\texport class $mol_plot_ruler_vert extends $.$mol_plot_ruler_vert {\n\t\tdimensions_axis() {\n\t\t\treturn this.dimensions_pane().y\n\t\t}\n\n\t\tviewport_axis() {\n\t\t\treturn new this.$.$mol_vector_range(0, this.size_real().y)\n\t\t}\n\n\t\tscale_axis() {\n\t\t\treturn this.scale()[1]\n\t\t}\n\n\t\tscale_step() {\n\t\t\treturn -this.scale()[1]\n\t\t}\n\n\t\tshift_axis() {\n\t\t\treturn this.shift()[1]\n\t\t}\n\n\t\tcurve() {\n\t\t\tconst [, shift] = this.shift()\n\t\t\tconst [, scale] = this.scale()\n\n\t\t\treturn this.axis_points().map( point => {\n\t\t\t\tlet scaled = Math.round( point * scale + shift )\n\t\t\t\tscaled = Math.max( Number.MIN_SAFE_INTEGER, Math.min( scaled, Number.MAX_SAFE_INTEGER ) )\n\t\t\t\treturn `M 0 ${ scaled } H 2000`\n\t\t\t}).join( ' ' )\n\t\t}\n\n\t\ttitle_pos_x() {\n\t\t\treturn String(this.gap().x.min)\n\t\t}\n\n\t\tlabel_pos_y( index : number ) {\n\t\t\treturn (this.axis_points()[index] * this.scale()[1] + this.shift()[1]).toFixed(3)\n\t\t}\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/plot/ruler/vert/vert.view.css\",\n \"[mol_plot_ruler_vert_label] {\\n\\ttransform: translateY( 4px );\\n}\\n\"\n) }","$mol_plot_ruler_hor $mol_plot_ruler\n\ttitle_align \\start\n\tlabel_align \\middle\n\ttitle_pos_x \\0\n\ttitle_pos_y \\100%\n\tlabel_pos_y* <= title_pos_y\n\tbackground_width \\100%\n","namespace $.$$ {\n\texport class $mol_plot_ruler_hor extends $.$mol_plot_ruler_hor {\n\t\tdimensions_axis() {\n\t\t\treturn this.dimensions_pane().x\n\t\t}\n\n\t\tviewport_axis() {\n\t\t\treturn new this.$.$mol_vector_range(0, this.size_real().x)\n\t\t}\n\n\t\tscale_axis() {\n\t\t\treturn this.scale()[0]\n\t\t}\n\n\t\tscale_step() {\n\t\t\treturn this.scale()[0]\n\t\t}\n\n\t\tshift_axis() {\n\t\t\treturn this.shift()[0]\n\t\t}\n\t\t\n\t\tcurve() {\n\t\t\tconst [shift] = this.shift()\n\t\t\tconst [scale] = this.scale()\n\n\t\t\treturn this.axis_points().map( point => {\n\t\t\t\tlet scaled = Math.round( point * scale + shift )\n\t\t\t\tscaled = Math.max( Number.MIN_SAFE_INTEGER, Math.min( scaled, Number.MAX_SAFE_INTEGER ) )\n\t\t\t\treturn `M ${ scaled } 1000 V 0`\n\t\t\t}).join( ' ' )\n\t\t}\n\n\t\tlabel_pos_x( index : number ) {\n\t\t\treturn (this.axis_points()[index] * this.scale()[0] + this.shift()[0]).toFixed(3)\n\t\t}\n\n\t\tbackground_y() {\n\t\t\treturn String(this.size_real()[1] - this.font_size())\n\t\t}\n\n\t\ttitle_pos_y() {\n\t\t\treturn String(this.size_real()[1])\n\t\t}\n\n\t\tbackground_height() {\n\t\t\treturn String(this.font_size())\n\t\t}\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/plot/ruler/hor/hor.view.css\",\n \"[mol_plot_ruler_hor_label] {\\n\\ttransform: translateY( -4px );\\n}\\n\\n[mol_plot_ruler_hor_title] {\\n\\ttransform: translateY( -4px );\\n}\\n\"\n) }","$mol_svg_text_box $mol_svg_group\n\tfont_size 16\n\twidth 0\n\tsub /\n\t\t<= Back $mol_svg_rect\n\t\t\twidth <= box_width \\0.5rem\n\t\t\theight <= box_height \\1rem\n\t\t\tpos /\n\t\t\t\t<= box_pos_x <= pos_x\n\t\t\t\t<= box_pos_y \\0\n\t\t<= Text $mol_svg_text\n\t\t\tpos /\n\t\t\t\t<= pos_x \\0\n\t\t\t\t<= pos_y \\100%\n\t\t\talign <= align \\start\n\t\t\tsub /\n\t\t\t\t<= text \\\n","namespace $ {\n\n\tlet canvas : CanvasRenderingContext2D\n\n\texport function $mol_font_canvas( next = canvas ) {\n\t\tif( !next ) next = $mol_dom_context.document.createElement( 'canvas' ).getContext( '2d' )!\n\t\treturn canvas = next\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_font_measure( font: string, text: string ) {\n\t\tconst canvas = $mol_font_canvas()\n\t\tcanvas.font = font\n\t\treturn canvas.measureText( text ).width\n\t}\n\n}\n","namespace $.$$ {\n\texport class $mol_svg_text_box extends $.$mol_svg_text_box {\n\n\t\tbox_width() {\n\t\t\treturn `${ this.width() }px`\n\t\t}\n\n\t\t@ $mol_mem\n\t\twidth() {\n\t\t\treturn $mol_font_measure(\n\t\t\t\tthis.font_size() + 'px ' + this.font_family(),\n\t\t\t\tthis.text(),\n\t\t\t)\n\t\t}\n\n\t\tbox_pos_x() {\n\t\t\tconst align = this.align()\n\t\t\tif (align === 'end') return `calc(${this.pos_x()} - ${this.width()})`\n\t\t\tif (align === 'middle') return `calc(${this.pos_x()} - ${Math.round(this.width() / 2)})`\n\n\t\t\treturn this.pos_x()\n\t\t}\n\n\t\tbox_pos_y() {\n\t\t\treturn `calc(${this.pos_y()} - ${this.font_size() - 2})`\n\t\t}\n\t}\n\t\n}\n","namespace $ { $mol_style_attach( \"mol/svg/text/box/box.view.css\",\n \"[mol_svg_text_box_back] {\\n\\tstroke: none;\\n\\tfill: var(--mol_theme_back);\\n\\ttransition: none;\\n}\\n\"\n) }","$mol_plot_mark_cross $mol_plot_graph\n\tlabels /string\n\ttitle_x_gap 4\n\ttitle_y_gap 22\n\tthreshold 16\n\tgraphs /$mol_plot_graph\n\tdimensions $mol_vector_2d<$mol_vector_range<number>> /\n\t\t<= dimensions_x $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\t\t<= dimensions_y $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\tsub /\n\t\t<= Curve $mol_svg_path\n\t\t\tgeometry <= curve \\\n\t\t<= Label_x $mol_svg_text_box\n\t\t\tpos_x <= title_x_pos_x \\0\n\t\t\tpos_y <= title_x_pos_y \\100%\n\t\t\ttext <= title_x \\\n\t\t<= Label_y $mol_svg_text_box\n\t\t\tpos_x <= title_y_pos_x \\0\n\t\t\tpos_y <= title_y_pos_y \\0\n\t\t\ttext <= title_y \\\n","namespace $.$$ {\n\texport class $mol_plot_mark_cross extends $.$mol_plot_mark_cross {\n\n\t\t@$mol_mem\n\t\tnearest() {\n\t\t\tlet delta = this.threshold() ** 2\n\t\t\tconst [cursor_x, cursor_y] = this.cursor_position()\n\t\t\tif (Number.isNaN(cursor_x) || Number.isNaN(cursor_y)) return null\n\t\t\tconst graphs = this.graphs()\n\t\t\tlet index: number = 0\n\t\t\tlet graph: $.$mol_plot_graph = null as any\n\t\t\tconst [shift_x, shift_y] = this.shift()\n\t\t\tconst [scale_x, scale_y] = this.scale()\n\t\t\tfor (let current of graphs) {\n\t\t\t\tconst indexes = current.indexes()\n\t\t\t\tconst series_x = current.series_x()\n\t\t\t\tconst series_y = current.series_y()\n\t\n\t\t\t\tfor (let i of indexes) {\n\t\t\t\t\tconst point_x = shift_x + series_x[i] * scale_x\n\t\t\t\t\tconst point_y = shift_y + series_y[i] * scale_y\n\t\t\t\t\tconst diff = (point_x - cursor_x) ** 2 + (point_y - cursor_y) ** 2\n\t\t\t\t\tif (diff < delta) {\n\t\t\t\t\t\tdelta = diff\n\t\t\t\t\t\tindex = i\n\t\t\t\t\t\tgraph = current\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!graph) return null\n\n\t\t\tconst value = new $mol_vector_2d(graph.series_x()[index], graph.series_y()[index])\n\t\t\tconst scaled = new $mol_vector_2d(shift_x + value.x * scale_x, shift_y + value.y * scale_y)\n\n\t\t\treturn {value, scaled, index}\n\t\t}\n\n\t\tcurve() {\n\t\t\tconst nearest = this.nearest()\n\t\t\tif (!nearest) return ''\n\t\t\treturn `M ${nearest.scaled.x.toFixed(3)} 1000 V 0 M 0 ${nearest.scaled.y.toFixed(3)} H 2000`\n\t\t}\n\n\t\ttitle_x() {\n\t\t\tconst nearest = this.nearest()\n\t\t\tif (!nearest) return ''\n\n\t\t\tconst labels = this.labels()\n\n\t\t\tif (labels.length > nearest.index) return labels[nearest.index]\n\n\t\t\treturn String(nearest.value.x)\n\t\t}\n\n\t\ttitle_x_pos_x() {\n\t\t\tconst nearest = this.nearest()\n\t\t\tif (!nearest) return '0'\n\t\t\tconst width = this.Label_x().width()\n\n\t\t\treturn (nearest.scaled.x - width / 2).toFixed(3)\n\t\t}\n\n\t\ttitle_x_pos_y() {\n\t\t\tconst nearest = this.nearest()\n\t\t\tif (!nearest) return '0'\n\n\t\t\tconst pos = this.size_real().y - this.title_x_gap()\n\n\t\t\treturn pos.toFixed(3)\n\t\t}\n\n\t\ttitle_y() {\n\t\t\tconst nearest = this.nearest()\n\t\t\tif (!nearest) return ''\n\n\t\t\treturn String(nearest.value.y)\n\t\t}\n\n\t\ttitle_y_pos_y() {\n\t\t\tconst nearest = this.nearest()\n\t\t\tif (!nearest) return '0'\n\n\t\t\treturn nearest.scaled.y.toFixed(3)\n\t\t}\n\n\t\ttitle_y_pos_x() {\n\t\t\tconst nearest = this.nearest()\n\t\t\tif (!nearest) return '0'\n\n\t\t\tconst pos = this.title_y_gap()\n\n\t\t\treturn pos.toFixed(3)\n\t\t}\n\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/plot/mark/cross/cross.view.css\",\n \"[mol_plot_mark_cross_curve] {\\n\\tcolor: var(--mol_theme_focus);\\n\\tstroke-width: 1px;\\n\\tstroke: currentColor;\\n\\tpointer-events: none;\\n}\\n\\n[mol_plot_mark_cross_label_x], [mol_plot_mark_cross_label_y] {\\n\\tcolor: var(--mol_theme_focus);\\n\\tpointer-events: none;\\n}\\n\\n[mol_plot_mark_cross_label_y] {\\n\\ttransform: translateY( 4px );\\n}\\n\"\n) }","$mol_plot_mark_hor $mol_plot_ruler_hor\n\tlabels /string\n","namespace $.$$ {\n\texport class $mol_plot_mark_hor extends $.$mol_plot_mark_hor {\n\t\t@ $mol_mem\n\t\tseries_x(): readonly number[] {\n\t\t\treturn this.labels().map((val, index) => index)\n\t\t}\n\n\t\t@ $mol_mem\n\t\tlabels() {\n\t\t\treturn this.series_x().map(val => String(val)) as readonly string[]\n\t\t}\n\n\t\t@ $mol_mem\n\t\tvisible_indexes() {\n\t\t\tconst series_x = this.series_x()\n\t\t\tconst labels = this.labels()\n\t\t\tconst [shift_x,] = this.shift()\n\t\t\tconst [scale_x,] = this.scale()\n\t\t\tlet step = this.step() * scale_x\n\t\t\tconst [[viewport_left, viewport_right]] = this.viewport()\n\t\t\tconst size_x = viewport_right - viewport_left\n\t\t\tconst font_size = this.font_size()\n\t\t\tlet indexes: number[]\n\t\t\tlet labels_width: number\n\t\t\tdo {\n\t\t\t\tindexes = []\n\t\t\t\tlabels_width = 0\n\t\t\t\tlet last: number = 0\n\t\t\t\tlet current = 0\n\t\t\t\tfor (let i = 0; i < series_x.length; i++) {\n\t\t\t\t\tconst point_x = series_x[i]\n\t\t\t\t\tconst scaled_x = (shift_x + point_x * scale_x)\n\t\t\t\t\tif (scaled_x < viewport_left) continue\n\t\t\t\t\tif (scaled_x > viewport_right) continue\n\t\t\t\t\tif (current === 0) current = scaled_x\n\t\t\t\t\tif (scaled_x < current) {\n\t\t\t\t\t\tlast = i\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tindexes.push(i)\n\t\t\t\t\tcurrent += step\n\t\t\t\t\tlast = 0\n\t\t\t\t\tlabels_width += font_size * (labels[i].length + 1)\n\t\t\t\t\tif (labels_width > size_x) break\n\t\t\t\t}\n\t\t\t\tif (last !== 0) {\n\t\t\t\t\tindexes.push(last)\n\t\t\t\t\tlabels_width += font_size * (labels[last].length + 1)\n\t\t\t\t}\n\n\t\t\t\tstep *= 1.5\n\t\t\t} while (labels_width > size_x && indexes.length > 2)\n\n\t\t\treturn indexes\n\n\t\t}\n\n\t\tcurve() {\n\t\t\tconst [shift] = this.shift()\n\t\t\tconst [scale] = this.scale()\n\t\t\tconst series_x = this.series_x()\n\n\t\t\treturn this.visible_indexes().map( index => {\n\t\t\t\tconst scaled = series_x[index] * scale + shift\n\t\t\t\treturn `M ${ scaled.toFixed(3) } 1000 V 0`\n\t\t\t}).join( ' ' )\n\t\t}\n\n\t\tlabel_text( index : number ) {\n\t\t\treturn this.labels()[index]\n\t\t}\n\n\t\tlabels_formatted() {\n\t\t\treturn this.visible_indexes().map( index => this.Label( index ) )\n\t\t}\n\n\t\tlabel_pos_x( index : number ) {\n\t\t\treturn (this.series_x()[index] * this.scale()[0] + this.shift()[0]).toFixed(3)\n\t\t}\n\n\t\tlabel_pos_y( index : number ) {\n\t\t\treturn this.title_pos_y()\n\t\t}\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/plot/mark/hor/hor.view.css\",\n \"[mol_plot_mark_hor_curve] {\\n\\tcolor: var(--mol_theme_line);\\n\\tstroke-width: .1%;\\n\\tstroke: currentColor;\\n\\tpointer-events: none;\\n}\\n\\n[mol_plot_mark_hor_label] {\\n\\tcolor: var(--mol_theme_text);\\n\\ttransform: translateY( -4px );\\n}\\n\\n[mol_plot_mark_hor_title] {\\n\\tcolor: var(--mol_theme_shade);\\n\\ttransform: translateY( -4px );\\n}\\n\"\n) }"]}
1
+ {"version":3,"sources":["-","../../../../mam.ts","../../../../mol/dom/context/context.ts","../../../../mol/fail/fail.ts","../../../../mol/promise/like/like.ts","../../../../mol/fail/hidden/hidden.ts","../../../../mol/fail/catch/catch.ts","../../../../mol/try/try.node.ts","../../../../mol/fail/log/log.ts","../../../../node/node.node.ts","../../../../mol/func/name/name.ts","../../../../mol/error/mix/mix.ts","../../../../mol/ambient/ambient.ts","../../../../mol/delegate/delegate.ts","../../../../mol/owning/owning.ts","../../../../mol/object2/object2.ts","../../../../mol/object/object.ts","../../../../mol/env/env.ts","../../../../mol/env/env.node.ts","../../../../mol/guid/guid.ts","../../../../mol/wire/cursor/cursor.ts","../../../../mol/wire/pub/pub.ts","../../../../mol/wire/wire.ts","../../../../mol/dev/format/format.ts","../../../../mol/wire/pub/sub/sub.ts","../../../../mol/after/tick/tick.ts","../../../../mol/wire/fiber/fiber.ts","../../../../mol/compare/deep/deep.ts","../../../../mol/log3/log3.ts","../../../../mol/span/span.ts","../../../../mol/tree2/to/string/string.ts","../../../../mol/maybe/maybe.ts","../../../../mol/tree2/tree2.ts","../../../../mol/error/syntax/syntax.ts","../../../../mol/tree2/from/string/string.ts","../../../../mol/tree2/from/json/json.ts","../../../../mol/term/color/color.ts","../../../../mol/log3/log3.node.ts","../../../../mol/wire/task/task.ts","../../../../mol/wire/sync/sync.ts","../../../../mol/run/run.node.ts","../../../../mol/exec/exec.node.ts","../../../../mol/dom/context/context.node.ts","../../../../mol/dom/dom.ts","../../../../mol/style/attach/attach.ts","../../../../mol/promise/promise/promise.ts","../../../../mol/promise/blocker/blocker.ts","../../../../mol/decor/decor.ts","../../../../mol/style/unit/unit.ts","../../../../mol/style/func/func.ts","../../../../mol/style/prop/prop.ts","../../../../mol/key/key.ts","../../../../mol/after/timeout/timeout.ts","../../../../mol/after/frame/frame.node.ts","../../../../mol/wire/method/method.ts","../../../../mol/wire/atom/atom.ts","../../../../mol/wire/solo/solo.ts","../../../../mol/wire/plex/plex.ts","../../../../mol/mem/mem.ts","../../../../mol/action/action.ts","../../../../mol/state/arg/arg.node.ts","../../../../mol/media/media.ts","../../../../mol/wire/solid/solid.ts","../../../../mol/mem/persist/persist.ts","../../../../mol/wire/probe/probe.ts","../../../../mol/mem/cached/cached.ts","../../../../mol/storage/storage.ts","../../../../mol/state/local/local.ts","../../../../mol/const/const.ts","../../../../mol/wire/async/async.ts","../../../../mol/lock/lock.ts","../../../../mol/compare/array/array.ts","../../../../mol/charset/decode/decode.ts","../../../../mol/charset/encode/encode.ts","../../../../mol/file/transaction/transaction.ts","../../../../mol/file/transaction/transaction.node.ts","../../../../mol/file/base/base.ts","../../../../mol/file/file.ts","../../../../mol/file/file.node.ts","../../../../mol/state/local/local.node.ts","../../../../mol/lights/lights.ts","../../../../mol/theme/theme.ts","../../../../mol/theme/-css/theme.css.ts","../../../../mol/theme/theme_lights.ts","../../../../mol/gap/gap.ts","../../../../mol/gap/-css/gap.css.ts","../../../../mol/dom/render/children/children.ts","../../../../mol/jsx/jsx.ts","../../../../mol/window/window.node.ts","../../../../mol/guard/defined.ts","../../../../mol/view/selection/selection.ts","../../../../mol/wrapper/wrapper.ts","../../../../mol/memo/memo.ts","../../../../mol/dom/qname/qname.ts","../../../../mol/wire/watch/watch.ts","../../../../mol/dom/render/attributes/attributes.ts","../../../../mol/dom/render/events/events.ts","../../../../mol/dom/render/styles/styles.ts","../../../../mol/dom/render/fields/fields.ts","../../../../mol/view/view/-css/view.css.ts","../../../../mol/view/view/view.tsx","../../../../mol/plugin/plugin.ts","../../../../mol/svg/svg.view.tree","../../../../mol/state/time/time.ts","../../../../mol/svg/svg.view.ts","../../../../mol/svg/root/root.view.tree","../../../../mol/svg/root/-css/root.view.css.ts","../../../../mol/vector/vector.ts","../../../../mol/touch/touch.view.tree","../../../../mol/touch/touch.view.ts","../../../../mol/plot/pane/pane.view.tree","../../../../mol/svg/group/group.view.tree","../../../../mol/svg/title/title.view.tree","../../../../mol/plot/graph/graph.view.tree","../../../../mol/plot/graph/graph.view.ts","../../../../mol/plot/graph/-css/graph.view.css.ts","../../../../mol/plot/pane/pane.view.ts","../../../../mol/plot/pane/-css/pane.view.css.ts","../../../../mol/plot/line/line.view.tree","../../../../mol/plot/line/line.view.ts","../../../../mol/plot/line/-css/line.view.css.ts","../../../../mol/plot/group/group.view.tree","../../../../mol/plot/group/group.view.ts","../../../../mol/svg/path/path.view.tree","../../../../mol/plot/dot/dot.view.tree","../../../../mol/coord/coord.ts","../../../../mol/plot/dot/dot.view.ts","../../../../mol/plot/dot/-css/dot.view.css.ts","../../../../mol/plot/map/heat/heat.view.tree","../../../../mol/plot/map/heat/heat.view.ts","../../../../mol/plot/map/heat/-css/heat.view.css.ts","../../../../mol/plot/bar/bar.view.tree","../../../../mol/plot/bar/bar.view.ts","../../../../mol/plot/bar/-css/bar.view.css.ts","../../../../mol/plot/fill/fill.view.tree","../../../../mol/plot/fill/fill.view.ts","../../../../mol/plot/fill/-css/fill.view.css.ts","../../../../mol/svg/rect/rect.view.tree","../../../../mol/svg/rect/rect.view.ts","../../../../mol/svg/text/text.view.tree","../../../../mol/svg/text/text.view.ts","../../../../mol/svg/text/-css/text.view.css.ts","../../../../mol/plot/ruler/ruler.view.tree","../../../../mol/math/round/expand/expand.ts","../../../../mol/plot/ruler/ruler.view.ts","../../../../mol/plot/ruler/-css/ruler.view.css.ts","../../../../mol/plot/ruler/vert/vert.view.tree","../../../../mol/plot/ruler/vert/vert.view.ts","../../../../mol/plot/ruler/vert/-css/vert.view.css.ts","../../../../mol/plot/ruler/hor/hor.view.tree","../../../../mol/plot/ruler/hor/hor.view.ts","../../../../mol/plot/ruler/hor/-css/hor.view.css.ts","../../../../mol/svg/text/box/box.view.tree","../../../../mol/font/canvas/canvas.ts","../../../../mol/font/measure/measure.ts","../../../../mol/svg/text/box/box.view.ts","../../../../mol/svg/text/box/-css/box.view.css.ts","../../../../mol/plot/mark/cross/cross.view.tree","../../../../mol/plot/mark/cross/cross.view.ts","../../../../mol/plot/mark/cross/-css/cross.view.css.ts","../../../../mol/plot/mark/hor/hor.view.tree","../../../../mol/plot/mark/hor/hor.view.ts","../../../../mol/plot/mark/hor/-css/hor.view.css.ts"],"names":[],"mappings":";;;AAAA;AACA;AACA;AACA;;ACHA,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC;AAK3B,IAAU,CAAC,CAQV;AARD,WAAU,CAAC;AAQX,CAAC,EARS,CAAC,KAAD,CAAC,QAQV;AAED,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;;;ADflB;AACA;AACA;;;;;;;;;;;;;;;AEFA,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;AAIX,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;;;;ACJD,IAAU,CAAC,CAMV;AAND,WAAU,CAAC;IAEV,SAAgB,SAAS,CAAE,KAAW;QACrC,MAAM,KAAK,CAAA;IACZ,CAAC;IAFe,WAAS,YAExB,CAAA;AAEF,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CAUV;AAVD,WAAU,CAAC;IAEV,SAAgB,iBAAiB,CAAE,GAAQ;QAC1C,IAAI,CAAC;YACJ,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,CAAA;QACzF,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,KAAK,CAAA;QACb,CAAC;IACF,CAAC;IANe,mBAAiB,oBAMhC,CAAA;AAEF,CAAC,EAVS,CAAC,KAAD,CAAC,QAUV;;;;ACVD,IAAU,CAAC,CAMV;AAND,WAAU,CAAC;IAEV,SAAgB,gBAAgB,CAAE,KAAW;QAC5C,MAAM,KAAK,CAAA;IACZ,CAAC;IAFe,kBAAgB,mBAE/B,CAAA;AAEF,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CAeV;AAfD,WAAU,CAAC;IAEV,MAAM,OAAO,GAAG,IAAI,OAAO,EAAmB,CAAA;IAE9C,SAAgB,eAAe,CAAE,KAAc;QAE9C,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAG,OAAO,KAAK,CAAA;QAC5C,IAAI,iBAAiB,CAAE,KAAK,CAAE;YAAG,gBAAgB,CAAE,KAAK,CAAE,CAAA;QAC1D,IAAI,OAAO,CAAC,GAAG,CAAE,KAAK,CAAE;YAAG,OAAO,KAAK,CAAA;QAEvC,OAAO,CAAC,GAAG,CAAE,KAAK,EAAG,IAAI,CAAE,CAAA;QAC3B,OAAO,IAAI,CAAA;IAEZ,CAAC;IATe,iBAAe,kBAS9B,CAAA;AAEF,CAAC,EAfS,CAAC,KAAD,CAAC,QAeV;;;;ACfD,IAAU,CAAC,CAUV;AAVD,WAAU,CAAC;IAEV,SAAgB,QAAQ,CAAY,OAAqB;QACxD,IAAI,CAAC;YACJ,OAAO,OAAO,EAAE,CAAA;QACjB,CAAC;QAAC,OAAO,KAAU,EAAG,CAAC;YACtB,OAAO,KAAK,CAAA;QACb,CAAC;IACF,CAAC;IANe,UAAQ,WAMvB,CAAA;AAEF,CAAC,EAVS,CAAC,KAAD,CAAC,QAUV;;;;ACVD,IAAU,CAAC,CAaV;AAbD,WAAU,CAAC;IAEV,SAAgB,aAAa,CAAE,KAAc;QAE5C,IAAI,iBAAiB,CAAE,KAAK,CAAE;YAAG,OAAO,KAAK,CAAA;QAC7C,IAAI,CAAC,eAAe,CAAE,KAAK,CAAE;YAAG,OAAO,KAAK,CAAA;QAE5C,QAAQ,CAAE,GAAE,EAAE,GAAG,gBAAgB,CAAE,KAAK,CAAE,CAAA,CAAC,CAAC,CAAE,CAAA;QAE9C,OAAO,IAAI,CAAA;IAEZ,CAAC;IATe,eAAa,gBAS5B,CAAA;AAEF,CAAC,EAbS,CAAC,KAAD,CAAC,QAaV;;;;ACTD,IAAI,KAAK,GAAG,IAAI,KAAK,CAAE,EAAE,OAAO,EAAS,EAAG;IAE3C,GAAG,CAAE,MAAM,EAAG,IAAa,EAAG,OAAO;QAEpC,IAAI,MAAM,CAAE,IAAI,CAAE;YAAG,OAAO,MAAM,CAAE,IAAI,CAAE,CAAA;QAE1C,IAAI,IAAI,CAAC,UAAU,CAAE,OAAO,CAAE;YAAG,OAAO,MAAM,CAAC,OAAO,CAAG,IAAI,CAAE,CAAA;QAC/D,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;YAAG,OAAO,MAAM,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;QAEnD,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAQ,QAAQ,CAAqC,CAAA;QAC/E,IAAI,GAAG,CAAC,cAAc,CAAC,OAAO,CAAE,IAAI,CAAE,IAAI,CAAC;YAAG,OAAO,MAAM,CAAC,OAAO,CAAG,IAAI,CAAE,CAAA;QAE5E,IAAI,CAAC;YACJ,MAAM,CAAC,OAAO,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;QAC/B,CAAC;QAAC,MAAM,CAAC;YAER,MAAM,EAAE,GAAK,CAAU,CAAA;YACvB,EAAE,CAAC,SAAS,CAAE,GAAG,EAAG,KAAK,EAAG,SAAS,EAAG,YAAY,EAAE,IAAI,CAAE,CAAA;YAE5D,IAAI,CAAC;gBACJ,EAAE,CAAC,SAAS,CAAE,GAAG,EAAG,KAAK,EAAG,SAAS,EAAG,YAAY,EAAE,SAAS,GAAG,IAAI,CAAE,CAAA;YACzE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3B,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;gBACpB,CAAC;YACF,CAAC;QAEF,CAAC;QAED,IAAI,CAAC;YACJ,OAAO,MAAM,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAG,CAAC;YAEjB,IAAG,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,IAAM,KAAc,CAAC,IAAI,KAAK,iBAAiB,EAAG,CAAC;gBAC7E,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;gBAChC,IAAI,MAAM;oBAAG,OAAO,MAAM,CAAA;gBACd,MAAM,MAAM,CAAC,MAAM,CACf,MAAM,CAAE,IAAI,CAAE,CAAC,IAAI,CAAE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,EAAE,MAAM,CAAE,CAAE,EAC1D,EAAE,KAAK,EAAE,KAAK,EAAE,CACnB,CAAA;YACd,CAAC;YAED,CAAC,CAAC,aAAa,CAAE,KAAK,CAAE,CAAA;YAExB,OAAO,IAAI,CAAA;QACZ,CAAC;IAEF,CAAC;IAED,GAAG,CAAE,MAAM,EAAG,IAAa,EAAG,KAAK;QAClC,MAAM,CAAE,IAAI,CAAE,GAAG,KAAK,CAAA;QACtB,OAAO,IAAI,CAAA;IACZ,CAAC;CAED,CAAW,CAAA;AAEZ,MAAM,KAAK,GAAG,IAAI,GAAG,EAAiB,CAAA;AAEtC,OAAO,GAAG,CAAE,GAAG,CAAC,EAAE,CACjB,MAAM,CAAC,MAAM,CAAE,SAAS,OAAO,CAAE,IAAa;IAC7C,OAAO,KAAK,CAAE,IAAI,CAAE,CAAA;AACrB,CAAC,EAAG,GAAG,CAAE,CACT,CAAE,OAAO,CAAE,CAAA;;;;AClEZ,IAAU,CAAC,CA6BV;AA7BD,WAAU,CAAC;IAEV,MAAM,KAAK,GAAG,IAAI,OAAO,EAAc,CAAA;IAEvC,SAAgB,cAAc,CAAa,IAAe;QAEzD,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACpB,IAAI,IAAI,EAAE,MAAM,GAAG,CAAC;YAAG,OAAO,IAAI,CAAA;QAClC,IAAI,KAAK,CAAC,GAAG,CAAE,IAAI,CAAE;YAAG,OAAO,IAAI,CAAA;QAEnC,KAAK,IAAI,GAAG,IAAI,IAAI,EAAG,CAAC;YACvB,IAAI,CAAC;gBACJ,IAAK,IAAY,CAAE,GAAG,CAAE,KAAK,IAAI;oBAAG,SAAQ;gBAC5C,IAAI,GAAG,GAAG,CAAA;gBACV,MAAM,CAAC,cAAc,CAAE,IAAI,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,IAAI,EAAE,CAAE,CAAA;gBACzD,MAAK;YACN,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACX,CAAC;QAED,KAAK,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;QACjB,OAAO,IAAI,CAAA;IAEZ,CAAC;IAlBe,gBAAc,iBAkB7B,CAAA;IAED,SAAgB,mBAAmB,CAA6B,MAAe,EAAG,MAAiB;QAClG,MAAM,CAAC,cAAc,CAAE,MAAM,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,MAAM,CAAC,IAAI,EAAE,CAAE,CAAA;QAClE,OAAO,MAAM,CAAA;IACd,CAAC;IAHe,qBAAmB,sBAGlC,CAAA;AAEF,CAAC,EA7BS,CAAC,KAAD,CAAC,QA6BV;;;;AC7BD,IAAU,CAAC,CA8DV;AA9DD,WAAU,CAAC;IAEV,SAAS,eAAe,CAAC,KAAc;QACtC,OAAO,IAAI,CAAC,SAAS,CAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAE;aACxC,OAAO,CAAC,IAAI,EAAC,GAAG,CAAC;aACjB,OAAO,CAAC,IAAI,EAAC,IAAI,CAAC,CAAA;IACrB,CAAC;IAED,SAAS,eAAe,CAAC,KAAsB;QAC9C,OAAO,CAAE,OAAO,KAAK,KAAM,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAE;aACpE,IAAI,EAAE;aACN,OAAO,CAAE,OAAO,EAAE,QAAQ,CAAE;aAC5B,OAAO,CAAE,qBAAqB,EAAE,iBAAiB,CAAE,CAAA;IACtD,CAAC;IAED,MAAa,cAAwC,SAAQ,cAAc;QAMhE;QAJV,IAAI,GAAG,EAAE,CAAC,cAAc,CAAE,IAAI,CAAC,WAAW,CAAE,CAAC,OAAO,CAAE,KAAK,EAAE,EAAE,CAAE,GAAG,QAAQ,CAAA;QAE5E,YACC,OAAe,EACN,QAAQ,EAAW,EAC5B,GAAI,MAAwB;YAG5B,KAAK,CAAE,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAE,CAAA;YAJ1B,UAAK,GAAL,KAAK,CAAc;YAM5B,MAAM,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAE,IAAI,EAAE,OAAO,CAAE,CAAA;YAC7D,MAAM,SAAS,GAAG,GAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,OAAO,CAAA;YAElF,MAAM,CAAC,cAAc,CAAE,IAAI,EAAE,OAAO,EAAE;gBACrC,GAAG,EAAE,GAAE,EAAE,CAAC,SAAS,EAAE,GAAG,IAAI,GAAG;oBAC7B,IAAI,CAAC,KAAK,IAAI,UAAU;oBACxB,GAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAE,CAAC,CAAC,EAAE,CAAC;wBAC7B,MAAM,CAAE,CAAC,CAAC,KAAK,CAAE;wBACjB,GAAI,CAAC,YAAY,cAAc,IAAI,CAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,KAAK,CAAE;qBAC/D,CAAE;iBACH,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;aAClC,CAAE,CAAA;YAGH,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;gBACpC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK;aAChB,CAAC,CAAA;QACH,CAAC;QAED,MAAM,CAAC,CAAE,MAAM,CAAC,WAAW,CAAE;YAC5B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;QACvB,CAAC;QAED,MAAM,CAAC,QAAQ;YACd,OAAO,EAAE,CAAC,cAAc,CAAE,IAAI,CAAE,CAAA;QACjC,CAAC;QAED,MAAM,CAAC,IAAI,CACV,GAAG,MAAoD;YAEvD,OAAO,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC,CAAA;QAC3B,CAAC;KAED;IA7CY,gBAAc,iBA6C1B,CAAA;AAEF,CAAC,EA9DS,CAAC,KAAD,CAAC,QA8DV;;;;AC9DD,IAAU,CAAC,CAWV;AAXD,WAAU,CAAC;IAEG,kBAAgB,GAAmB,MAAM,CAAE,kBAAkB,CAAE,CAAA;IAK5E,SAAgB,YAAY,CAAoB,SAAwB;QACvE,OAAO,MAAM,CAAC,cAAc,CAAE,SAAS,EAAG,IAAI,IAAI,CAAC,CAAE,CAAA;IACtD,CAAC;IAFe,cAAY,eAE3B,CAAA;AAEF,CAAC,EAXS,CAAC,KAAD,CAAC,QAWV;;;;ACXD,IAAU,CAAC,CA0DV;AA1DD,WAAU,CAAC;IAEV,MAAM,SAAS,GAAG,IAAI,OAAO,EAAS,CAAA;IAOnC,SAAgB,aAAa,CAC/B,KAAa,EACb,MAAmB;QAGnB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAE,KAAK,EAAG;YAEhC,GAAG,EAAE,CAAE,CAAC,EAAG,KAAK,EAAE,EAAE;gBACnB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAA;gBACpB,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAE,GAAG,EAAG,KAAK,CAAE,CAAA;gBACpC,IAAI,OAAO,GAAG,KAAK,UAAU,EAAG,CAAC;oBAChC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBACtB,CAAC;gBACD,OAAO,GAAG,CAAA;YACX,CAAC;YACD,GAAG,EAAE,CAAE,CAAC,EAAG,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAE,MAAM,EAAE,EAAE,KAAK,CAAE;YACnD,GAAG,EAAE,CAAE,CAAC,EAAG,KAAK,EAAG,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAE,MAAM,EAAE,EAAG,KAAK,EAAG,KAAK,CAAE;YAEpE,wBAAwB,EAAE,CAAE,CAAC,EAAG,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAE,MAAM,EAAE,EAAG,KAAK,CAAE;YAC9F,OAAO,EAAE,GAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAE,MAAM,EAAE,CAAE;YAEzC,cAAc,EAAE,GAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAE,MAAM,EAAE,CAAE;YACvD,cAAc,EAAE,CAAE,CAAC,EAAG,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAE,MAAM,EAAE,EAAG,KAAK,CAAE;YAE1E,YAAY,EAAE,GAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAE,MAAM,EAAE,CAAE;YACnD,iBAAiB,EAAE,GAAE,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAE,MAAM,EAAE,CAAE;YAE7D,KAAK,EAAE,CAAE,CAAC,EAAG,IAAI,EAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAE,MAAM,EAAc,EAAG,IAAI,EAAG,IAAI,CAAE;YAChF,SAAS,EAAE,CAAE,CAAC,EAAG,IAAI,EAAG,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAE,MAAM,EAAc,EAAG,IAAI,EAAG,QAAQ,CAAE;YAEhG,cAAc,EAAE,CAAE,CAAC,EAAG,KAAK,EAAG,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAE,MAAM,EAAE,EAAG,KAAK,EAAG,KAAK,CAAE;YAC1F,cAAc,EAAE,CAAE,CAAC,EAAG,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAE,MAAM,EAAE,EAAG,KAAK,CAAE;SAE1E,CAAE,CAAA;QAEH,SAAS,CAAC,GAAG,CAAE,KAAK,CAAE,CAAA;QAEtB,OAAO,KAAK,CAAA;IAEb,CAAC;IAvCkB,eAAa,gBAuC/B,CAAA;IAED,OAAO,CAAC,cAAc,CACrB,aAAa,EACb,MAAM,CAAC,WAAW,EAClB;QACC,KAAK,EAAG,CAAE,GAAY,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAE,GAAG,CAAE;KAC/C,CACD,CAAA;AAEF,CAAC,EA1DS,CAAC,KAAD,CAAC,QA0DV;;;;AC1DD,IAAU,CAAC,CAyDV;AAzDD,WAAU,CAAC;IAEG,iBAAe,GAAG,IAAI,OAAO,EAAe,CAAA;IAEzD,SAAgB,iBAAiB,CAChC,MAAe;QAIf,IAAI,CAAC;YACJ,IAAI,CAAC,MAAM;gBAAG,OAAO,KAAK,CAAA;YAC1B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU;gBAAG,OAAO,KAAK,CAAA;YAC7E,IAAI,MAAM,YAAY,aAAa;gBAAG,OAAO,KAAK,CAAA;YAClD,IAAI,OAAQ,MAAc,CAAC,YAAY,CAAC,KAAK,UAAU;gBAAG,OAAO,KAAK,CAAA;YACtE,OAAO,IAAI,CAAA;QACZ,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,KAAK,CAAA;QACb,CAAC;IACF,CAAC;IAde,mBAAiB,oBAchC,CAAA;IAED,SAAgB,eAAe,CAAmC,MAAe,EAAG,KAA0B;QAE7G,IAAI,CAAC,iBAAiB,CAAE,MAAM,CAAE;YAAG,OAAO,IAAI,CAAA;QAE9C,OAAO,IAAI,EAAG,CAAC;YAEd,MAAM,KAAK,GAAG,EAAA,eAAe,CAAC,GAAG,CAAE,MAAM,CAAE,CAAA;YAC3C,IAAI,CAAC,KAAK;gBAAG,OAAO,KAAK,CAAA;YACzB,IAAI,CAAC,KAAK;gBAAG,OAAO,KAAK,CAAA;YAEzB,IAAI,KAAK,YAAY,KAAK;gBAAG,OAAO,KAAK,CAAA;YAEzC,MAAM,GAAG,KAAK,CAAA;QACf,CAAC;IAEF,CAAC;IAfe,iBAAe,kBAe9B,CAAA;IAED,SAAgB,iBAAiB,CAChC,KAAa,EACb,MAAe;QAEf,IAAI,CAAC,iBAAiB,CAAE,MAAM,CAAE;YAAG,OAAO,KAAK,CAAA;QAC/C,IAAI,EAAA,eAAe,CAAC,GAAG,CAAE,MAAM,CAAE,KAAK,KAAK;YAAG,OAAO,KAAK,CAAA;QAC1D,OAAO,IAAI,CAAA;IACZ,CAAC;IAPe,mBAAiB,oBAOhC,CAAA;IAED,SAAgB,iBAAiB,CAChC,KAAa,EACb,MAAe;QAEf,IAAI,CAAC,iBAAiB,CAAE,MAAM,CAAE;YAAG,OAAO,KAAK,CAAA;QAC/C,IAAI,EAAA,eAAe,CAAC,GAAG,CAAE,MAAM,CAAE;YAAG,OAAO,KAAK,CAAA;QAEhD,EAAA,eAAe,CAAC,GAAG,CAAE,MAAM,EAAG,KAAK,CAAE,CAAA;QACrC,OAAO,IAAI,CAAA;IACZ,CAAC;IATe,mBAAiB,oBAShC,CAAA;AAEF,CAAC,EAzDS,CAAC,KAAD,CAAC,QAyDV;;;;;;;ACzDD,IAAU,CAAC,CAwDV;AAxDD,WAAU,CAAC;IAEV,MAAa,YAAY;QAExB,MAAM,CAAC,CAAC,GAAG,CAAa,CAAA;QAExB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAS;QAE7B,CAAE,gBAAgB,CAAE,GAAG,IAAgB,CAAA;QACvC,IAAI,CAAC;YACJ,IAAI,IAAI,CAAE,gBAAgB,CAAE;gBAAG,OAAO,IAAI,CAAE,gBAAgB,CAAE,CAAA;YAC9D,MAAM,KAAK,GAAG,eAAe,CAAE,IAAI,CAAS,CAAA;YAC5C,OAAO,IAAI,CAAE,gBAAgB,CAAE,GAAG,KAAK,EAAE,CAAC,IAAK,IAAI,CAAC,WAAyB,CAAC,CAAC,IAAI,YAAY,CAAC,CAAM,CAAA;QACvG,CAAC;QACD,IAAI,CAAC,CAAE,IAAQ;YACd,IAAI,IAAI,CAAE,gBAAgB,CAAE;gBAAG,gBAAgB,CAAE,IAAI,KAAK,CAAE,yBAAyB,CAAE,CAAE,CAAA;YACzF,IAAI,CAAE,gBAAgB,CAAE,GAAG,IAAI,CAAA;QAChC,CAAC;QAEM,MAAM,CAAC,MAAM,CAEnB,IAA0D;YAE1D,MAAM,GAAG,GAAG,IAAI,IAAI,CAAA;YACpB,IAAI,IAAI;gBAAG,IAAI,CAAE,GAAG,CAAE,CAAA;YACtB,OAAO,GAAG,CAAA;QACX,CAAC;QAED,MAAM,CAAC,CAAE,MAAM,CAAC,WAAW,CAAE;YAC5B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;QACvB,CAAC;QAED,MAAM,CAAC,QAAQ;YACd,OAAS,IAAa,CAAE,MAAM,CAAC,WAAW,CAAE,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAE,IAAI,CAAE,CAAA;QAC9E,CAAC;QAED,MAAM,CAAC,MAAM;YACZ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;QACvB,CAAC;QAED,UAAU,KAAK,CAAC;QAChB,MAAM,CAAC,UAAU,KAAK,CAAC;QAMvB,QAAQ;YACP,OAAO,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAA;QAClE,CAAC;;IA/CW,cAAY,eAqDxB,CAAA;AACF,CAAC,EAxDS,CAAC,KAAD,CAAC,QAwDV;;;;ACxDD,IAAU,CAAC,CAmBV;AAnBD,WAAU,GAAC;IAEV,IAAiB,EAAE,CAAU;IAA7B,WAAiB,EAAE;QAAG,IAAI,CAAC,CAAA;IAAC,CAAC,EAAZ,EAAE,GAAF,MAAE,KAAF,MAAE,QAAU;IAEhB,qBAAiB,GAAG,MAAM,CAAE,mBAAmB,CAAE,CAAA;IAE9D,MAAa,WAAY,SAAQ,YAAY;QAErC,MAAM,CAAC,IAAI,CAEjB,MAAuC;YAEvC,OAAO,KAAK,CAAC,MAAM,CAAE,GAAG,CAAC,EAAE;gBAC1B,KAAK,IAAI,GAAG,IAAI,MAAM;oBAAK,GAAY,CAAE,GAAG,CAAE,GAAG,MAAM,CAAE,GAAG,CAAG,CAAA;YAChE,CAAC,CAA0B,CAAA;QAC5B,CAAC;KAED;IAXY,eAAW,cAWvB,CAAA;AAEF,CAAC,EAnBS,CAAC,KAAD,CAAC,QAmBV;;;;ACnBD,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;IACV,SAAgB,QAAQ;QACvB,OAAO,EAA0C,CAAA;IAClD,CAAC;IAFe,UAAQ,WAEvB,CAAA;AACF,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;ACJD,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;IACV,CAAC,CAAC,QAAQ,GAAG,SAAS,QAAQ;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAA;IACxB,CAAC,CAAA;AACF,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;ACJD,IAAU,CAAC,CAkBV;AAlBD,WAAU,CAAC;IAGV,SAAgB,SAAS,CACxB,MAAM,GAAG,CAAC,EACV,SAAmC,GAAE,EAAE,CAAC,KAAK;QAG7C,SAAQ,CAAC;YAER,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAE,EAAE,CAAE,CAAC,SAAS,CAAE,CAAC,EAAE,MAAM,GAAG,CAAC,CAAE,CAAC,WAAW,EAAE,CAAA;YAC9E,IAAI,MAAM,CAAE,EAAE,CAAE;gBAAG,SAAQ;YAE3B,OAAO,EAAE,CAAA;QACV,CAAC;IAEF,CAAC;IAbe,WAAS,YAaxB,CAAA;AAEF,CAAC,EAlBS,CAAC,KAAD,CAAC,QAkBV;;;;AClBD,IAAU,CAAC,CAmBV;AAnBD,WAAU,CAAC;IAGV,IAAY,gBAcX;IAdD,WAAY,gBAAgB;QAG3B,0DAAU,CAAA;QAGV,0DAAU,CAAA;QAGV,0DAAU,CAAA;QAGV,0DAAU,CAAA;IAEX,CAAC,EAdW,gBAAgB,GAAhB,kBAAgB,KAAhB,kBAAgB,QAc3B;AAEF,CAAC,EAnBS,CAAC,KAAD,CAAC,QAmBV;;;;ACnBD,IAAU,CAAC,CAkIV;AAlID,WAAU,CAAC;IAKV,MAAa,aAAc,SAAQ,MAAM;QAExC,YAAa,EAAE,GAAG,iBAAkB,SAAS,EAAG,EAAE;YACjD,KAAK,EAAE,CAAA;YACP,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,GAAG,EAAE,CAAA;QAChC,CAAC;QAED,CAAE,MAAM,CAAC,WAAW,CAAE,CAAS;QAC/B,IAAI,GAAG,EAAe,CAAA;QAGtB,MAAM,KAAK,CAAE,MAAM,CAAC,OAAO,CAAE;YAC5B,OAAO,KAAK,CAAA;QACb,CAAC;QAKS,QAAQ,GAAG,CAAC,CAAA;QAKtB,IAAI,QAAQ;YACX,MAAM,GAAG,GAAG,EAAqB,CAAA;YACjC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAG,CAAC;gBAC3D,GAAG,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAkB,CAAE,CAAA;YAC1C,CAAC;YACD,OAAO,GAA+B,CAAA;QACvC,CAAC;QAKD,IAAI,SAAS;YACZ,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;QAC1C,CAAC;QAKD,MAAM,CAAE,GAAkB,EAAE,OAAe;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;YAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,OAAO,CAAE,CAAA;YAC9B,OAAO,GAAG,CAAA;QACX,CAAC;QAKD,OAAO,CAAE,OAAe;YAEvB,IAAG,CAAC,CAAE,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAE,EAAE,CAAC;gBACpC,SAAS,CAAE,IAAI,KAAK,CAAE,aAAc,OAAQ,EAAE,CAAE,CAAE,CAAA;YACnD,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;YAChC,IAAI,OAAO,KAAK,GAAG,EAAG,CAAC;gBACtB,IAAI,CAAC,SAAS,CAAE,GAAG,EAAE,OAAO,CAAE,CAAA;YAC/B,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;YAEtB,IAAI,GAAG,KAAK,IAAI,CAAC,QAAQ;gBAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAExC,CAAC;QAKD,IAAI,KAAK,CAAC;QAKV,OAAO;YACN,cAAc,EAAE,EAAE,UAAU,CAAE,IAAI,CAAE,CAAA;QACrC,CAAC;QAKD,KAAK,KAAI,CAAC;QAKV,QAAQ,KAAI,CAAC;QAEb,IAAI,WAAW;YACd,OAAO,KAAK,CAAA;QACb,CAAC;QAKD,IAAI,CAAE,KAAK,GAAG,gBAAgB,CAAC,KAAK;YACnC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAG,CAAC;gBAC3D,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAoB,CAAC,MAAM,CAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC,CAAY,CAAE,CAAA;YACjF,CAAC;QACF,CAAC;QAKD,SAAS,CAAE,QAAgB,EAAE,MAAc;YAE1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,QAAQ,CAAmB,CAAA;YACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAE,QAAQ,GAAG,CAAC,CAAY,CAAA;YAEpD,IAAI,CAAC,IAAI,CAAE,MAAM,CAAE,GAAG,IAAI,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAE,MAAM,GAAG,CAAC,CAAE,GAAG,QAAQ,CAAA;YAElC,IAAI,CAAC,UAAU,CAAE,QAAQ,EAAE,MAAM,CAAE,CAAA;QACpC,CAAC;QAKD,UAAU,CAAE,QAAgB,EAAE,QAAgB;YAC7C,IAAI,CAAC,IAAI,CAAE,QAAQ,GAAG,CAAC,CAAE,GAAG,QAAQ,CAAA;QACrC,CAAC;KAED;IA3HY,eAAa,gBA2HzB,CAAA;AAEF,CAAC,EAlIS,CAAC,KAAD,CAAC,QAkIV;;;;;;;AClID,IAAU,CAAC,CAgBV;AAhBD,WAAU,CAAC;IAEC,oBAAkB,GAAyB,IAAI,CAAA;IAK1D,SAAgB,cAAc,CAAE,IAAI,GAAG,EAAA,kBAAkB;QACxD,OAAO,EAAA,kBAAkB,GAAG,IAAI,CAAA;IACjC,CAAC;IAFe,gBAAc,iBAE7B,CAAA;IAKY,oBAAkB,GAAG,EAAkC,CAAA;AAErE,CAAC,EAhBS,CAAC,KAAD,CAAC,QAgBV;;;;AChBD,IAAU,CAAC,CA+QV;AA/QD,WAAU,CAAC;IAGT,CAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAA;IAEvC,SAAgB,wBAAwB,CAAE,MAOzC;QACC,CAAS,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAE,MAAM,CAAE,CAAA;IAChD,CAAC;IATe,0BAAwB,2BASvC,CAAA;IAEY,sBAAoB,GAAG,MAAM,CAAE,sBAAsB,CAAE,CAAA;IACvD,sBAAoB,GAAG,MAAM,CAAE,sBAAsB,CAAE,CAAA;IAEpE,SAAS,sBAAsB,CAAE,KAAU,EAAE,KAAe;QAC3D,OAAO,oBAAoB,CAAE;YAC5B,CAAE,EAAA,oBAAoB,CAAE;gBACvB,OAAO,EAAA,oBAAoB,CAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,KAAK,CAAE,CAAA;YAClE,CAAC;YACD,CAAE,EAAA,oBAAoB,CAAE;gBACvB,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;gBAC/B,OAAO,EAAA,oBAAoB,CAAC,EAAE,CAAC,CAAA;YAChC,CAAC;SACD,CAAE,CAAA;IACJ,CAAC;IAED,wBAAwB,CAAC;QAExB,MAAM,EAAG,CAAE,GAAS,EAAG,MAAM,GAAG,KAAK,EAAG,EAAE;YAEzC,IAAI,MAAM;gBAAG,OAAO,IAAI,CAAA;YAExB,IAAI,CAAC,GAAG;gBAAG,OAAO,IAAI,CAAA;YAEtB,IAAI,EAAA,oBAAoB,IAAI,GAAG,EAAG,CAAC;gBAClC,IAAI,CAAC;oBACJ,OAAO,GAAG,CAAE,EAAA,oBAAoB,CAAE,EAAE,CAAA;gBACrC,CAAC;gBAAC,OAAO,KAAK,EAAG,CAAC;oBACjB,OAAO,EAAA,sBAAsB,CAAE,sBAAsB,CAAE,GAAG,CAAE,EAAE,IAAI,EAAE,sBAAsB,CAAE,KAAK,CAAE,EAAE,EAAE,CAAE,CAAA;gBAC1G,CAAC;YACF,CAAC;YAED,IAAI,OAAO,GAAG,KAAK,UAAU,EAAG,CAAC;gBAChC,OAAO,sBAAsB,CAAE,GAAG,CAAE,CAAA;YACrC,CAAC;YAED,IAAI,GAAG,YAAY,KAAK,EAAG,CAAC;gBAE3B,OAAO,EAAA,oBAAoB,CAAE,EAAE,EAC9B,sBAAsB,CAAE,GAAG,CAAE,EAC7B,GAAG,EACH,sBAAsB,CAAE,OAAO,EAAE,GAAE,EAAE,CAAC,gBAAgB,CAAE,GAAG,CAAE,CAAE,CAC/D,CAAA;YAEF,CAAC;YAED,IAAI,GAAG,YAAY,OAAO,EAAG,CAAC;gBAC7B,OAAO,EAAA,qBAAqB,CAC3B,sBAAsB,CAAE,GAAG,CAAE,EAC7B,GAAG,EACH,GAAG,CAAE,MAAM,CAAC,WAAW,CAAE,IAAI,EAAE,CAC/B,CAAA;YACF,CAAC;YAED,IAAI,MAAM,CAAC,WAAW,IAAI,GAAG,EAAG,CAAC;gBAChC,OAAO,sBAAsB,CAAE,GAAG,CAAE,CAAA;YACrC,CAAC;YAED,OAAO,IAAI,CAAA;QAEZ,CAAC;QAED,OAAO,EAAG,CAAE,GAAQ,EAAG,MAAM,GAAG,KAAK,EAAE,EAAE;YAExC,IAAI,MAAM;gBAAG,OAAO,KAAK,CAAA;YACzB,IAAI,CAAC,GAAG;gBAAG,OAAO,KAAK,CAAA;YAGvB,IAAI,GAAG,CAAE,EAAA,oBAAoB,CAAE;gBAAG,OAAO,IAAI,CAAA;YAE7C,OAAO,KAAK,CAAA;QACb,CAAC;QAED,IAAI,EAAI,CAAE,GAAQ,EAAG,MAAM,GAAG,KAAK,EAAE,EAAE;YAEtC,IAAI,MAAM;gBAAG,OAAO,IAAI,CAAA;YAExB,IAAI,CAAC,GAAG;gBAAG,OAAO,IAAI,CAAA;YAEtB,IAAI,EAAA,oBAAoB,IAAI,GAAG,EAAG,CAAC;gBAClC,IAAI,CAAC;oBACJ,OAAO,GAAG,CAAE,EAAA,oBAAoB,CAAE,EAAE,CAAA;gBACrC,CAAC;gBAAC,OAAO,KAAK,EAAG,CAAC;oBACjB,OAAO,EAAA,sBAAsB,CAAE,sBAAsB,CAAE,GAAG,CAAE,EAAE,IAAI,EAAE,sBAAsB,CAAE,KAAK,CAAE,EAAE,EAAE,CAAE,CAAA;gBAC1G,CAAC;YACF,CAAC;YAMD,OAAO,IAAI,CAAA;QACZ,CAAC;KAED,CAAC,CAAA;IAEF,SAAgB,sBAAsB,CAAE,GAAS;QAEhD,IAAI,OAAO,GAAG,KAAK,WAAW;YAAG,OAAO,EAAA,qBAAqB,CAAE,WAAW,CAAE,CAAA;QAI5E,OAAO;YACN,QAAQ;YACR;gBACC,MAAM,EAAG,GAAG;gBACZ,MAAM,EAAG,IAAI;aACb;SACD,CAAA;IAEF,CAAC;IAde,wBAAsB,yBAcrC,CAAA;IAED,SAAgB,oBAAoB,CAAE,GAAS;QAE9C,IAAI,GAAG,IAAI,IAAI;YAAG,OAAO,EAAA,qBAAqB,CAAE,MAAM,CAAE,GAAG,CAAE,CAAE,CAAA;QAE/D,OAAO;YACN,QAAQ;YACR;gBACC,MAAM,EAAG,GAAG;gBACZ,MAAM,EAAG,KAAK;aACd;SACD,CAAA;IAEF,CAAC;IAZe,sBAAoB,uBAYnC,CAAA;IAED,SAAgB,uBAAuB,CAAE,OAAgB,EAAG,KAAc,EAAG,GAAG,OAAe;QAE9F,MAAM,MAAM,GAAG,EAAc,CAAA;QAE7B,KAAK,IAAI,GAAG,IAAI,KAAK;YAAG,MAAM,CAAC,IAAI,CAAE,GAAI,GAAI,MAAQ,KAAa,CAAC,GAAG,CAAE,EAAE,CAAE,CAAA;QAE5E,OAAO;YACN,OAAO;YACP;gBACC,KAAK,EAAG,MAAM,CAAC,IAAI,CAAE,KAAK,CAAE;aAC5B;YACD,GAAI,OAAO;SACX,CAAA;IAEF,CAAC;IAde,yBAAuB,0BActC,CAAA;IAEU,sBAAoB,GAAG,uBAAuB,CAAC,IAAI,CAAE,IAAI,EAAG,MAAM,CAAE,CAAA;IACpE,qBAAmB,GAAG,uBAAuB,CAAC,IAAI,CAAE,IAAI,EAAG,KAAK,CAAE,CAAA;IAClE,oBAAkB,GAAG,uBAAuB,CAAC,IAAI,CAAE,IAAI,EAAG,IAAI,CAAE,CAAA;IAChE,oBAAkB,GAAG,uBAAuB,CAAC,IAAI,CAAE,IAAI,EAAG,IAAI,CAAE,CAAA;IAChE,uBAAqB,GAAG,uBAAuB,CAAC,IAAI,CAAE,IAAI,EAAG,OAAO,CAAE,CAAA;IACtE,oBAAkB,GAAG,uBAAuB,CAAC,IAAI,CAAE,IAAI,EAAG,IAAI,CAAE,CAAA;IAChE,oBAAkB,GAAG,uBAAuB,CAAC,IAAI,CAAE,IAAI,EAAG,IAAI,CAAE,CAAA;IAEhE,wBAAsB,GAAG,EAAA,oBAAoB,CAAC,IAAI,CAAE,IAAI,EAAG;QACrE,OAAO,EAAG,SAAS;KACnB,CAAE,CAAA;IAEQ,wBAAsB,GAAG,EAAA,oBAAoB,CAAC,IAAI,CAAE,IAAI,EAAG;QACrE,aAAa,EAAG,MAAM;KACtB,CAAE,CAAA;IAEQ,wBAAsB,GAAG,EAAA,oBAAoB,CAAC,IAAI,CAAE,IAAI,EAAG;QACrE,OAAO,EAAG,OAAO;KACjB,CAAE,CAAA;IAEQ,uBAAqB,GAAG,EAAA,oBAAoB,CAAC,IAAI,CAAE,IAAI,EAAG;QACpE,OAAO,EAAG,MAAM;KAChB,CAAE,CAAA;IAEQ,wBAAsB,GAAG,EAAA,mBAAmB,CAAC,IAAI,CAAE,IAAI,EAAG;QACpE,aAAa,EAAE,MAAM;KACrB,CAAE,CAAA;IAEH,MAAM,KAAM,SAAQ,KAAa;QAMhC,QAAQ;YACP,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;QACzB,CAAC;KAED;IAED,MAAM,IAAK,SAAQ,MAAM;QAEf,IAAI,CAAQ;QACZ,QAAQ,CAAQ;QAChB,MAAM,CAAQ;QACd,IAAI,CAAQ;QACZ,MAAM,CAAQ;QACd,MAAM,CAAQ;QACd,GAAG,CAAoB;QACvB,MAAM,CAAS;QACf,KAAK,CAAmB;QACjC,CAAE,MAAM,CAAC,WAAW,CAAE,CAAS;QAE/B,YAAa,IAAqB;YACjC,KAAK,EAAE,CAAA;YAEP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAA;YACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAA;YAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,CAAA;YACxC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ;gBAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;YAEpD,IAAI,CAAC,GAAG,GAAG,CAAE,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAE,CAAA;YACvF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,CAAA;YACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,wBAAwB,EAAE,IAAI,EAAE,CAAA;YACnD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;YAEhC,MAAM,KAAK,GAAG,EAAE,CAAA;YAChB,IAAI,IAAI,CAAC,OAAO,EAAE;gBAAG,KAAK,CAAC,IAAI,CAAE,OAAO,CAAE,CAAA;YAC1C,IAAI,IAAI,CAAC,aAAa,EAAE;gBAAG,KAAK,CAAC,IAAI,CAAE,aAAa,CAAE,CAAA;YACtD,IAAI,IAAI,CAAC,MAAM,EAAE;gBAAG,KAAK,CAAC,IAAI,CAAE,MAAM,CAAE,CAAA;YACxC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAAG,KAAK,CAAC,IAAI,CAAE,QAAQ,CAAE,CAAA;YAC5C,IAAI,IAAI,CAAC,YAAY,EAAE;gBAAG,KAAK,CAAC,IAAI,CAAE,YAAY,CAAE,CAAA;YACpD,IAAI,IAAI,CAAC,UAAU,EAAE;gBAAG,KAAK,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;YAC3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;YAElB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAA;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;YAE3D,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,EAAE,CAAA;QACvD,CAAC;QAED,CAAE,MAAM,CAAC,WAAW,CAAE;YACrB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;QACvB,CAAC;QAED,QAAQ;YACP,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAA;YAChC,MAAM,KAAK,GAAG,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,CAAA;YACxC,MAAM,MAAM,GAAG,GAAI,IAAI,CAAC,MAAO,IAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAE,GAAG,CAAG,KAAM,IAAI,CAAC,MAAO,EAAE,CAAA;YAC7E,OAAO,QAAQ,MAAM,GAAG,KAAK,KAAK,MAAM,GAAG,CAAA;QAC5C,CAAC;QAED,CAAE,EAAA,oBAAoB,CAAE;YACvB,OAAO,EAAA,mBAAmB,CAAE,EAAE,EAC7B,sBAAsB,CAAE,IAAI,CAAE,EAC9B,EAAA,qBAAqB,CAAE,GAAG,CAAE,EAC5B,GAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACjB,sBAAsB,CAAE,IAAI,CAAC,MAAM,CAAE;aACrC,CAAC,CAAC,CAAC,EAAE,EACN,GAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,EAAA,qBAAqB,CAAE,GAAG,EAC7C,IAAI,EACJ,IAAI,CAAC,MAAM,EACX,GAAG,CACH,CAAE,CAAC,CAAC,CAAC,EAAE,EACR,EAAA,qBAAqB,CAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAE,CAAE,CACrD,CAAA;QACF,CAAC;KAED;IAED,KAAK,CAAC,iBAAiB,KAAK,CAAE,KAAY,EAAE,KAAwB,EAAE,EAAE,CAAC,IAAI,KAAK,CAAE,GAAI,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAE,IAAI,CAAE,CAAE,CAAE,CAAA;AAEhI,CAAC,EA/QS,CAAC,KAAD,CAAC,QA+QV;;;;AC/QD,IAAU,CAAC,CAuOV;AAvOD,WAAU,CAAC;IASV,MAAa,iBAAkB,SAAQ,aAAa;QAEzC,QAAQ,GAAG,CAAC,CAAA;QACZ,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;QAEzC,IAAI,IAAI;YACP,OAAO,KAAK,CAAA;QACb,CAAC;QAED,IAAI,QAAQ;YACX,MAAM,GAAG,GAAG,EAAqB,CAAA;YACjC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,IAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAA;YACzD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAG,CAAC;gBAC9C,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBAAG,GAAG,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAkB,CAAE,CAAA;YAC7D,CAAC;YACD,OAAO,GAAG,CAAA;QACX,CAAC;QAED,QAAQ;YACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAA;YAC3B,MAAM,GAAG,GAAG,cAAc,EAAE,CAAA;YAC5B,cAAc,CAAE,IAAI,CAAE,CAAA;YACtB,OAAO,GAAG,CAAA;QACX,CAAC;QAED,OAAO;YAEN,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAG,CAAC;gBACnC,SAAS,CAAE,IAAI,KAAK,CAAE,uBAAuB,CAAE,CAAE,CAAA;YAClD,CAAC;YAED,KAAK,CAAC,OAAO,EAAE,CAAA;QAChB,CAAC;QAED,UAAU,CAAE,GAAmB;YAE9B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,wBAAwB,CAAE,CAAE,CAAA;YAExE,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAG,CAAC;gBAEjC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,MAAM,CAA+B,CAAA;gBACnE,IAAI,GAAG,KAAK,SAAS;oBAAG,OAAO,IAAI,IAAI,IAAI,CAAA;gBAE3C,IAAI,IAAI,KAAK,GAAG,EAAG,CAAC;oBACnB,IAAI,CAAC,MAAM,IAAI,CAAC,CAAA;oBAChB,OAAO,IAAI,CAAA;gBACZ,CAAC;gBAED,IAAI,IAAI,EAAG,CAAC;oBAEX,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC;wBACvC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAE,CAAA;oBAClD,CAAC;oBAED,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAE,CAAA;oBAC5C,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAA;gBAEnB,CAAC;YAEF,CAAC;iBAAM,CAAC;gBAEP,IAAI,GAAG,KAAK,SAAS;oBAAG,OAAO,IAAI,CAAA;gBAEnC,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC;oBACvC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAE,CAAA;gBAClD,CAAC;gBAED,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAA;YAEnB,CAAC;YAED,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,MAAM,CAAE,GAAG,GAAG,CAAA;YAC9B,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,GAAG,GAAG,CAAC,MAAM,CAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAE,CAAA;YAE9D,IAAI,CAAC,MAAM,IAAI,CAAC,CAAA;YAEhB,OAAO,GAAG,CAAA;QACX,CAAC;QAED,SAAS,CAAE,GAAyB;YAEnC,cAAc,CAAE,GAAG,CAAE,CAAA;YAErB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAG,CAAC;gBACtB,SAAS,CAAE,IAAI,KAAK,CAAE,sBAAsB,CAAE,CAAE,CAAA;YACjD,CAAC;YAED,KACC,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,EAC1B,MAAM,GAAG,IAAI,CAAC,MAAM,EACpB,MAAM,IAAI,CAAC,EACV,CAAC;gBACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,CAAmB,CAAA;gBAChD,GAAG,CAAC,KAAK,EAAE,CAAA;YACZ,CAAC;YAED,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;QAErC,CAAC;QAED,OAAO,CAAE,OAAe;YACvB,IAAI,CAAC,IAAI,CAAE,OAAO,CAAE,GAAG,SAAgB,CAAA;YACvC,IAAI,CAAC,IAAI,CAAE,OAAO,GAAG,CAAC,CAAE,GAAG,SAAgB,CAAA;QAC5C,CAAC;QAED,UAAU;YAET,KACC,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EACjC,MAAM,IAAI,IAAI,CAAC,QAAQ,EACvB,MAAM,IAAI,CAAC,EACV,CAAC;gBACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,CAAmB,CAAA;gBAChD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,GAAG,CAAC,CAAY,CAAA;gBAC7C,GAAG,CAAC,OAAO,CAAE,GAAG,CAAE,CAAA;YACnB,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAA;YAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAA;YAC3B,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;QAErC,CAAC;QAED,SAAS;YAER,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAG,CAAC;gBAClC,SAAS,CAAE,IAAI,KAAK,CAAE,sBAAsB,CAAE,CAAE,CAAA;YACjD,CAAC;YAED,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;YAE1B,KACC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EACxB,MAAM,GAAG,IAAI,CAAC,QAAQ,EACtB,MAAM,IAAI,CAAC,EACV,CAAC;gBAEF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,CAA+B,CAAA;gBAC5D,GAAG,EAAE,OAAO,CAAE,IAAI,CAAC,IAAI,CAAE,MAAM,GAAG,CAAC,CAAY,CAAE,CAAA;gBAEjD,GAAG,IAAI,CAAC,CAAA;gBACR,IAAI,IAAI,CAAC,QAAQ,IAAI,GAAG;oBAAG,IAAI,CAAC,SAAS,CAAE,GAAG,EAAE,MAAM,CAAE,CAAA;YAEzD,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;YAEtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAA;QAE5B,CAAC;QAED,QAAQ,KAAK,CAAC;QAEd,aAAa;YAEZ,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;YAE3D,KACC,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,EAC1B,MAAM,GAAG,KAAK,EACd,MAAM,IAAI,CAAC,EACV,CAAC;gBACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,CAAmB,CAAA;gBAChD,IAAI,GAAG,EAAE,WAAW;oBAAG,OAAM;YAC9B,CAAC;YAED,KACC,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,EAC1B,MAAM,GAAG,KAAK,EACd,MAAM,IAAI,CAAC,EACV,CAAC;gBACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,CAAmB,CAAA;gBAChD,GAAG,EAAE,QAAQ,EAAE,CAAA;YAChB,CAAC;QAEF,CAAC;QAED,MAAM,CAAE,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC;YAE/C,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK;gBAAG,OAAM;YACnD,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK;gBAAG,OAAM;YAEjC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;YACnB,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAC,KAAK,CAAE,CAAA;QAuBpC,CAAC;QAED,CAAE,oBAAoB,CAAE;YACvB,OAAO,sBAAsB,CAAE,IAAI,CAAE,CAAA;QACtC,CAAC;QAKD,IAAI,SAAS;YACZ,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAA;QACvC,CAAC;KAED;IA5NY,mBAAiB,oBA4N7B,CAAA;AAEF,CAAC,EAvOS,CAAC,KAAD,CAAC,QAuOV;;;;ACvOD,IAAU,CAAC,CA6BV;AA7BD,WAAU,CAAC;IAEV,MAAa,eAAgB,SAAQ,YAAY;QAMxC;QAJR,MAAM,CAAC,OAAO,GAAG,IAA4B,CAAA;QAC7C,SAAS,GAAG,KAAK,CAAA;QAEjB,YACQ,IAAgB;YAEvB,KAAK,EAAE,CAAA;YAFA,SAAI,GAAJ,IAAI,CAAY;YAIvB,IAAI,CAAC,eAAe,CAAC,OAAO;gBAAG,eAAe,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAE,GAAE,EAAE;oBACpF,eAAe,CAAC,OAAO,GAAG,IAAI,CAAA;gBAC/B,CAAC,CAAE,CAAA;YAEH,eAAe,CAAC,OAAO,CAAC,IAAI,CAAE,GAAE,EAAE;gBACjC,IAAI,IAAI,CAAC,SAAS;oBAAG,OAAM;gBAC3B,IAAI,EAAE,CAAA;YACP,CAAC,CAAE,CAAA;QAEJ,CAAC;QAED,UAAU;YACT,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACtB,CAAC;;IAvBW,iBAAe,kBAyB3B,CAAA;AAEF,CAAC,EA7BS,CAAC,KAAD,CAAC,QA6BV;;;;AC7BD,IAAU,CAAC,CAyVV;AAzVD,WAAU,CAAC;IAEV,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAwC,CAAA;IASpE,MAAsB,eAIpB,SAAQ,iBAAiB;QAyEhB;QACA;QAxEV,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QAElB,MAAM,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAsC,CAAA;QAC/D,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,EAAsC,CAAA;QAE9D,MAAM,CAAC,SAAS,GAA2B,IAAI,CAAA;QAC/C,MAAM,CAAC,IAAI;YAEV,IAAI,IAAI,CAAC,SAAS;gBAAG,OAAM;YAE3B,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAE,GAAE,EAAE;gBAEzC,IAAI,CAAC;oBACJ,IAAI,CAAC,IAAI,EAAE,CAAA;gBACZ,CAAC;wBAAS,CAAC;oBACV,eAAe,CAAC,SAAS,GAAG,IAAI,CAAA;gBACjC,CAAC;YAEF,CAAC,CAAE,CAAA;QAEJ,CAAC;QAED,MAAM,CAAC,IAAI;YAGV,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAG,CAAC;gBAC5B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAG,CAAC;oBACpC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAE,KAAK,CAAE,CAAA;oBAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;wBAAG,SAAQ;oBAChC,IAAI,KAAK,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK;wBAAG,SAAQ;oBACtD,KAAK,CAAC,KAAK,EAAE,CAAA;gBACd,CAAC;YACF,CAAC;YAGD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAG,CAAC;gBAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;gBAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAAA;gBAEtB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAG,CAAC;oBAC7B,IAAI,CAAC,KAAK,CAAC,SAAS;wBAAG,SAAQ;oBAC/B,KAAK,CAAC,UAAU,EAAE,CAAA;gBACnB,CAAC;YAEF,CAAC;QAEF,CAAC;QAEM,KAAK,GAA+C,SAAgB,CAAA;QAE3E,IAAI,IAAI;YACP,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC,EAAG,IAAI,CAAC,QAAQ,CAAiB,CAAA;QAC3D,CAAC;QAED,MAAM;YACL,IAAI,iBAAiB,CAAE,IAAI,CAAC,KAAK,CAAE;gBAAG,OAAM;YAC5C,IAAI,IAAI,CAAC,KAAK,YAAY,KAAK;gBAAG,OAAM;YACxC,OAAO,IAAI,CAAC,KAAK,CAAA;QAClB,CAAC;QAED,IAAI,WAAW;YACd,OAAO,iBAAiB,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;QACvC,CAAC;QAED,KAAK;YACJ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAC7B,CAAC;QAED,YACC,EAAU,EACD,IAAgD,EAChD,IAAW,EACpB,IAAW;YAGX,KAAK,CAAE,EAAE,CAAE,CAAA;YALF,SAAI,GAAJ,IAAI,CAA4C;YAChD,SAAI,GAAJ,IAAI,CAAO;YAKpB,IAAI,IAAI;gBAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,GAAI,IAAI,CAAE,CAAA;YACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC,CAAA;QAElD,CAAC;QAED,IAAI;YACH,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YACpC,eAAe,CAAC,IAAI,EAAE,CAAA;YACtB,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,IAAI;YACH,eAAe,CAAC,OAAO,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YACnC,eAAe,CAAC,IAAI,EAAE,CAAA;QACvB,CAAC;QAED,QAAQ;YACP,OAAO,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,CAAA;QAClC,CAAC;QAED,MAAM;YACL,OAAO,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,CAAA;QAClC,CAAC;QAED,CAAE,oBAAoB,CAAE;YAEvB,MAAM,MAAM,GAAG;gBACd,CAAE,gBAAgB,CAAC,KAAK,CAAE,EAAE,IAAI;gBAChC,CAAE,gBAAgB,CAAC,KAAK,CAAE,EAAE,IAAI;gBAChC,CAAE,gBAAgB,CAAC,KAAK,CAAE,EAAE,IAAI;gBAChC,CAAE,gBAAgB,CAAC,KAAK,CAAE,EAAE,IAAI;aAChC,CAAE,IAAI,CAAC,MAAM,CAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;YAE1C,OAAO,mBAAmB,CAAE,EAAE,EAC7B,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAE;gBACpC,CAAC,CAAC,qBAAqB,CAAE,MAAM,CAAE;gBACjC,CAAC,CAAC,qBAAqB,CAAE,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,EAAE,MAAM,CAAE,EAC9D,oBAAoB,CAAE,IAAI,CAAC,KAAK,CAAE,CAClC,CAAA;QAEF,CAAC;QACD,CAAE,oBAAoB,CAAE,KAAK,OAAO,IAAI,CAAA,CAAC,CAAC;QAE1C,IAAI,CAAC;YACJ,OAAO,CAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAW,CAAE,CAAC,GAAG,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,CAAE,KAAK,GAAG,gBAAgB,CAAC,KAAK;YACnC,IAAI,IAAI,CAAC,SAAS;gBAAG,IAAI,CAAC,IAAI,EAAE,CAAA;;gBAC3B,KAAK,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;QACzB,CAAC;QAED,KAAK;YAIJ,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK;gBAAG,OAAM;YACnD,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK;gBAAG,OAAM;YAEnD,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK,EAAG,CAAC;gBAEpD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAG,CAAC;oBACzD,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAoB,EAAE,KAAK,EAAE,CAAA;oBAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK;wBAAG,MAAM,KAAK,CAAA;gBACzD,CAAC;gBAED,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;gBACpC,OAAM;YAEP,CAAC;YAED,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;YAC1B,IAAI,MAAyB,CAAA;YAE7B,IAAI,CAAC;gBAEJ,QAAQ,IAAI,CAAC,QAAQ,EAAG,CAAC;oBACxB,KAAK,CAAC;wBAAE,MAAM,GAAI,IAAI,CAAC,IAAY,CAAC,IAAI,CAAE,IAAI,CAAC,IAAK,CAAE,CAAC;wBAAC,MAAK;oBAC7D,KAAK,CAAC;wBAAE,MAAM,GAAI,IAAI,CAAC,IAAY,CAAC,IAAI,CAAE,IAAI,CAAC,IAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC;wBAAC,MAAK;oBAC3E;wBAAS,MAAM,GAAI,IAAI,CAAC,IAAY,CAAC,IAAI,CAAE,IAAI,CAAC,IAAK,EAAE,GAAI,IAAI,CAAC,IAAI,CAAE,CAAC;wBAAC,MAAK;gBAC9E,CAAC;gBAED,IAAI,iBAAiB,CAAE,MAAM,CAAE,EAAG,CAAC;oBAElC,IAAI,QAAQ,CAAC,GAAG,CAAE,MAAM,CAAE,EAAG,CAAC;wBAC7B,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAE,MAAM,CAAG,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAA;oBAC5C,CAAC;yBAAM,CAAC;wBAEP,MAAM,GAAG,GAAG,CAAE,GAAW,EAAE,EAAE;4BAC5B,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;gCAAG,IAAI,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;4BAC3C,OAAO,GAAG,CAAA;wBACX,CAAC,CAAA;wBAED,QAAQ,CAAC,GAAG,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAC3C,MAAM,CAAC,IAAI,CAAE,GAAG,EAAE,GAAG,CAAE,EACvB,EAAE,UAAU,EAAI,MAAe,CAAC,UAAU,IAAI,CAAC,GAAE,EAAE,GAAE,CAAC,CAAC,EAAE,CACzD,CAAE,CAAA;wBACH,QAAQ,CAAC,GAAG,CAAE,MAAM,EAAE,MAAM,CAAE,CAAA;wBAE9B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAE,cAAe,IAAK,EAAE,CAAE,CAAA;wBACjD,MAAM,CAAC,cAAc,CAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,GAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAE,CAAA;oBAEpE,CAAC;gBACF,CAAC;YAEF,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBAEtB,IAAI,KAAK,YAAY,KAAK,IAAI,iBAAiB,CAAE,KAAK,CAAE,EAAG,CAAC;oBAC3D,MAAM,GAAG,KAAK,CAAA;gBACf,CAAC;qBAAM,CAAC;oBACP,MAAM,GAAG,IAAI,KAAK,CAAE,MAAM,CAAE,KAAK,CAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAE,CAAA;gBACxD,CAAC;gBAED,IAAI,iBAAiB,CAAE,MAAM,CAAE,EAAG,CAAC;oBAElC,IAAI,QAAQ,CAAC,GAAG,CAAE,MAAM,CAAE,EAAG,CAAC;wBAC7B,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAE,MAAM,CAAG,CAAA;oBACjC,CAAC;yBAAM,CAAC;wBAEP,MAAM,GAAG,GAAG,CAAE,CAAM,EAAE,EAAE;4BACvB,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;gCAAG,IAAI,CAAC,MAAM,EAAE,CAAA;4BACzC,OAAO,CAAC,CAAA;wBACT,CAAC,CAAA;wBAED,QAAQ,CAAC,GAAG,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAC3C,MAAM,CAAC,IAAI,CAAE,GAAG,EAAE,GAAG,CAAE,EACvB,EAAE,UAAU,EAAI,MAAe,CAAC,UAAU,IAAI,CAAC,GAAE,EAAE,GAAE,CAAC,CAAC,EAAE,CACzD,CAAE,CAAA;wBAEH,MAAM,KAAK,GAAG,IAAI,KAAK,CAAE,cAAe,IAAK,EAAE,CAAE,CAAA;wBACjD,MAAM,CAAC,cAAc,CAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,GAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAE,CAAA;oBAEpE,CAAC;gBAEF,CAAC;YAEF,CAAC;YAED,IAAI,CAAE,iBAAiB,CAAE,MAAM,CAAE,EAAG,CAAC;gBACpC,IAAI,CAAC,SAAS,EAAE,CAAA;YACjB,CAAC;YAED,IAAI,CAAC,SAAS,CAAE,EAAE,CAAE,CAAA;YACpB,IAAI,CAAC,GAAG,CAAE,MAAM,CAAE,CAAA;YAElB,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,OAAO;YACN,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;YACpC,IAAI,CAAC,KAAK,EAAE,CAAA;QACb,CAAC;QAQD,IAAI;YAEH,IAAI,CAAC,eAAe,CAAC,IAAI,EAAG,CAAC;gBAC5B,OAAO,IAAI,CAAC,MAAM,EAAuB,CAAA;YAC1C,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,KAAK,EAAE,CAAA;YAEZ,IAAI,IAAI,CAAC,KAAK,YAAY,KAAK,EAAG,CAAC;gBAClC,OAAO,gBAAgB,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YACtC,CAAC;YAED,IAAI,iBAAiB,CAAE,IAAI,CAAC,KAAK,CAAE,EAAG,CAAC;gBACtC,OAAO,gBAAgB,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YACtC,CAAC;YAED,OAAO,IAAI,CAAC,KAA0B,CAAA;QACvC,CAAC;QAMD,KAAK,CAAC,SAAS;YAEd,OAAO,IAAI,EAAG,CAAC;gBAEd,IAAI,CAAC,KAAK,EAAE,CAAA;gBAEZ,IAAI,IAAI,CAAC,KAAK,YAAY,KAAK,EAAG,CAAC;oBAClC,gBAAgB,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;gBAC/B,CAAC;gBAED,IAAI,CAAE,iBAAiB,CAAE,IAAI,CAAC,KAAK,CAAE;oBAAG,OAAO,IAAI,CAAC,KAAK,CAAA;gBAEzD,MAAM,OAAO,CAAC,IAAI,CAAC,CAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,CAAA;gBAC/C,IAAI,CAAE,iBAAiB,CAAE,IAAI,CAAC,KAAK,CAAE;oBAAG,OAAO,IAAI,CAAC,KAAK,CAAA;gBAEzD,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK,EAAG,CAAC;oBAE7C,MAAM,IAAI,OAAO,CAAE,GAAE,EAAE,GAAE,CAAC,CAAE,CAAA;gBAC7B,CAAC;YAEF,CAAC;QAEF,CAAC;QAED,KAAK;YACJ,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAA8C,CAAA;YAE5E,IAAI,CAAE,OAAO,CAAC,UAAU;gBAAE,OAAO,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAA;YAEtE,OAAO,OAAO,CAAA;QACf,CAAC;QAED,IAAI;YACH,OAAO,IAAI,OAAO,CAAU,IAAI,CAAC,EAAE;gBAClC,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAA;gBACjC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;gBAC3B,GAAG,CAAC,UAAU,CAAE,IAAI,CAAE,CAAA;gBACtB,GAAG,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;gBACrB,GAAG,CAAC,MAAM,GAAG,GAAE,EAAE;oBAChB,IAAI,CAAE,IAAI,CAAE,CAAA;oBACZ,UAAU,CAAE,GAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,CAAE,CAAA;gBACpC,CAAC,CAAA;YACF,CAAC,CAAE,CAAA;QACJ,CAAC;QAED,UAAU;YAET,KAAK,CAAC,UAAU,EAAE,CAAA;YAElB,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;YAEvC,IAAI,CAAE,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAE;gBAAG,OAAM;YAEpD,IAAI,CAAC;gBACJ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAA;YACxB,CAAC;YAAC,OAAO,MAAM,EAAE,CAAC;gBACjB,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC/B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAE,cAAe,IAAK,eAAe,CAAE,CAAA;oBAC9D,MAAM,CAAC,cAAc,CAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,GAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAE,CAAA;gBACpE,CAAC;gBAED,gBAAgB,CAAC,MAAM,CAAC,CAAA;YACzB,CAAC;QAEF,CAAC;;IA1UoB,iBAAe,kBA4UpC,CAAA;AAEF,CAAC,EAzVS,CAAC,KAAD,CAAC,QAyVV;;;;ACzVD,IAAU,CAAC,CA6JV;AA7JD,WAAU,CAAC;IAEC,yBAAuB,GAAG,IAAI,OAAO,EAAoC,CAAA;IAMpF,SAAgB,iBAAiB,CAAW,IAAW,EAAE,KAAY;QAEpE,IAAI,MAAM,CAAC,EAAE,CAAE,IAAI,EAAG,KAAK,CAAE;YAAG,OAAO,IAAI,CAAA;QAE3C,IAAI,IAAI,KAAK,IAAI;YAAG,OAAO,KAAK,CAAA;QAChC,IAAI,KAAK,KAAK,IAAI;YAAG,OAAO,KAAK,CAAA;QAEjC,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAG,OAAO,KAAK,CAAA;QAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAG,OAAO,KAAK,CAAA;QAE5C,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAE,IAAW,CAAE,CAAA;QACxD,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAE,KAAY,CAAE,CAAA;QAE1D,IAAI,UAAU,KAAK,WAAW;YAAG,OAAO,KAAK,CAAA;QAE7C,IAAI,IAAI,YAAY,OAAO;YAAG,OAAO,MAAM,CAAC,EAAE,CAAE,IAAI,CAAC,OAAO,EAAE,EAAI,KAAc,CAAC,SAAS,CAAC,EAAE,CAAE,CAAA;QAC/F,IAAI,IAAI,YAAY,MAAM;YAAG,OAAO,MAAM,CAAC,EAAE,CAAE,IAAI,CAAC,OAAO,EAAE,EAAI,KAAc,CAAC,SAAS,CAAC,EAAE,CAAE,CAAA;QAC9F,IAAI,IAAI,YAAY,MAAM;YAAG,OAAO,MAAM,CAAC,EAAE,CAAE,IAAI,CAAC,OAAO,EAAE,EAAI,KAAc,CAAC,SAAS,CAAC,EAAE,CAAE,CAAA;QAC9F,IAAI,IAAI,YAAY,IAAI;YAAG,OAAO,MAAM,CAAC,EAAE,CAAE,IAAI,CAAC,OAAO,EAAE,EAAI,KAAc,CAAC,SAAS,CAAC,EAAE,CAAE,CAAA;QAC5F,IAAI,IAAI,YAAY,MAAM;YAAG,OAAO,IAAI,CAAC,MAAM,KAAM,KAAa,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,KAAM,KAAa,CAAC,KAAK,CAAA;QAChH,IAAI,IAAI,YAAY,KAAK;YAAG,OAAO,IAAI,CAAC,OAAO,KAAM,KAAa,CAAC,OAAO,IAAI,iBAAiB,CAAE,IAAI,CAAC,KAAK,EAAG,KAAa,CAAC,KAAK,CAAE,CAAA;QAEnI,IAAI,UAAU,GAAG,EAAA,uBAAuB,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;QACpD,IAAI,UAAU,EAAG,CAAC;YAEjB,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAE,KAAK,CAAE,CAAA;YAC3C,IAAI,OAAO,WAAW,KAAK,SAAS;gBAAG,OAAO,WAAW,CAAA;QAE1D,CAAC;aAAM,CAAC;YAEP,UAAU,GAAG,IAAI,OAAO,EAAmB,CAAA;YAC3C,EAAA,uBAAuB,CAAC,GAAG,CAAE,IAAI,EAAG,UAAU,CAAE,CAAA;QAEjD,CAAC;QAED,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAE5B,IAAI,MAAgB,CAAA;QAEpB,IAAI,CAAC;YAEJ,IAAI,CAAC,UAAU;gBAAG,MAAM,GAAG,YAAY,CAAE,IAAI,EAAE,KAAY,CAAE,CAAA;iBACxD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAE,UAAU,CAAE;gBAAG,MAAM,GAAG,YAAY,CAAE,IAAI,EAAE,KAAY,CAAE,CAAA;iBACvF,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI;gBAAG,MAAM,GAAG,iBAAiB,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;iBAC1E,IAAI,KAAK,CAAC,OAAO,CAAE,IAAI,CAAE;gBAAG,MAAM,GAAG,aAAa,CAAE,IAAI,EAAE,KAAY,CAAE,CAAA;iBACxE,IAAI,IAAI,YAAY,GAAG;gBAAG,MAAM,GAAG,WAAW,CAAE,IAAI,EAAE,KAAY,CAAE,CAAA;iBACpE,IAAI,IAAI,YAAY,GAAG;gBAAG,MAAM,GAAG,WAAW,CAAE,IAAI,EAAE,KAAY,CAAE,CAAA;iBACpE,IAAI,WAAW,CAAC,MAAM,CAAE,IAAI,CAAE;gBAAG,MAAM,GAAG,cAAc,CAAE,IAAI,EAAE,KAAY,CAAE,CAAA;iBAC9E,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI;gBAAG,MAAM,GAAG,gBAAgB,CAAI,IAAa,CAAE,MAAM,CAAC,QAAQ,CAAE,EAAE,EAAI,KAAc,CAAE,MAAM,CAAC,QAAQ,CAAE,EAAE,CAAE,CAAA;;gBACtI,MAAM,GAAG,KAAK,CAAA;QAEpB,CAAC;gBAAS,CAAC;YACV,UAAU,CAAC,GAAG,CAAE,KAAK,EAAG,MAAM,CAAE,CAAA;QACjC,CAAC;QAED,OAAO,MAAM,CAAA;IACd,CAAC;IAxDe,mBAAiB,oBAwDhC,CAAA;IAED,SAAS,aAAa,CAAyB,IAAW,EAAE,KAAY;QAEvE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAA;QACvB,IAAI,GAAG,KAAK,KAAK,CAAC,MAAM;YAAG,OAAO,KAAK,CAAA;QAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAG,CAAC;YAC/B,IAAI,CAAC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,KAAK,CAAC,CAAC,CAAC,CAAE;gBAAG,OAAO,KAAK,CAAA;QAC5D,CAAC;QAED,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,SAAS,cAAc,CAAE,IAAqB,EAAE,KAAsB;QAErE,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAA;QAC3B,IAAI,GAAG,KAAK,KAAK,CAAC,UAAU;YAAG,OAAO,KAAK,CAAA;QAE3C,IAAI,IAAI,YAAY,QAAQ;YAAG,OAAO,cAAc,CACnD,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAE,EAC/D,IAAI,UAAU,CAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAE,CAClE,CAAA;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAG,CAAC;YAC/B,IAAK,IAAY,CAAC,CAAC,CAAC,KAAM,KAAa,CAAC,CAAC,CAAC;gBAAG,OAAO,KAAK,CAAA;QAC1D,CAAC;QAED,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,SAAS,gBAAgB,CACxB,IAAW,EACX,KAAY;QAGZ,OAAO,IAAI,EAAG,CAAC;YAEd,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;YAE/B,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI;gBAAG,OAAO,KAAK,CAAA;YACrD,IAAI,SAAS,CAAC,IAAI;gBAAG,MAAK;YAE1B,IAAI,CAAC,iBAAiB,CAAE,SAAS,CAAC,KAAK,EAAG,UAAU,CAAC,KAAK,CAAE;gBAAG,OAAO,KAAK,CAAA;QAE5E,CAAC;QAED,OAAO,IAAI,CAAA;IAEZ,CAAC;IAED,SAAS,WAAW,CAA4B,IAAW,EAAE,KAAY;QACxE,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;YAAG,OAAO,KAAK,CAAA;QAC3C,OAAO,gBAAgB,CAAE,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,CAAE,CAAA;IACzD,CAAC;IAED,SAAS,WAAW,CAAgB,IAAuB,EAAG,KAAwB;QACrF,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;YAAG,OAAO,KAAK,CAAA;QAC3C,OAAO,gBAAgB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAE;eAChD,gBAAgB,CAAE,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,CAAE,CAAA;IACtD,CAAC;IAED,SAAS,YAAY,CAAE,IAAQ,EAAE,KAAS;QAEzC,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,CAAE,IAAI,CAAE,CAAA;QACpD,MAAM,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAE,KAAK,CAAE,CAAA;QAEtD,IAAI,CAAC,aAAa,CAAE,SAAS,EAAE,UAAU,CAAE;YAAG,OAAO,KAAK,CAAA;QAE1D,KAAK,IAAI,GAAG,IAAI,SAAS,EAAG,CAAC;YAC5B,IAAI,CAAC,iBAAiB,CAAI,IAAa,CAAE,GAAG,CAAE,EAAI,KAAc,CAAE,GAAG,CAAE,CAAE;gBAAG,OAAO,KAAK,CAAA;QACzF,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,qBAAqB,CAAE,IAAI,CAAE,CAAA;QACtD,MAAM,UAAU,GAAG,MAAM,CAAC,qBAAqB,CAAE,KAAK,CAAE,CAAA;QAExD,IAAI,CAAC,aAAa,CAAE,SAAS,EAAE,UAAU,CAAE;YAAG,OAAO,KAAK,CAAA;QAE1D,KAAK,IAAI,GAAG,IAAI,SAAS,EAAG,CAAC;YAC5B,IAAI,CAAC,iBAAiB,CAAI,IAAa,CAAE,GAAG,CAAE,EAAI,KAAc,CAAE,GAAG,CAAE,CAAE;gBAAG,OAAO,KAAK,CAAA;QACzF,CAAC;QAED,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,SAAS,iBAAiB,CAAE,IAAQ,EAAE,KAAS;QAC9C,OAAO,MAAM,CAAC,EAAE,CACd,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,CAAE,SAAS,CAAE,EAC/C,KAAa,CAAE,MAAM,CAAC,WAAW,CAAE,CAAE,SAAS,CAAE,CACjD,CAAA;IACF,CAAC;AAEF,CAAC,EA7JS,CAAC,KAAD,CAAC,QA6JV;;;;AC7JD,IAAU,CAAC,CAoEV;AApED,WAAU,CAAC;IA2CV,SAAgB,mBAAmB,CAElC,KAA2B;QAG3B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAA;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAA;QAElC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAA;QACzB,IAAI,MAAM,GAAG,KAAK,CAAA;QAElB,KAAK,CAAC,IAAI,CAAE,GAAE,EAAE;YACf,MAAM,GAAG,IAAI,CAAA;YACb,IAAI,CAAC,cAAc,CAAC,IAAI,CAAE,IAAI,EAAG,KAAK,CAAE,CAAA;QACzC,CAAC,CAAE,CAAA;QAEH,OAAO,GAAE,EAAE;YACV,IAAI,MAAM;gBAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAA;YACpC,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI;gBAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAA;QAC9C,CAAC,CAAA;IAEF,CAAC;IArBe,qBAAmB,sBAqBlC,CAAA;IAEU,iBAAe,GAAG,EAAqB,CAAA;AAEnD,CAAC,EApES,CAAC,KAAD,CAAC,QAoEV;;;;ACpED,IAAU,CAAC,CA8EV;AA9ED,WAAU,CAAC;IAGV,MAAa,SAAU,SAAQ,YAAY;QAGhC;QACA;QACA;QACA;QACA;QALV,YACU,GAAW,EACX,MAAc,EACd,GAAW,EACX,GAAW,EACX,MAAc;YAEvB,KAAK,EAAE,CAAA;YANE,QAAG,GAAH,GAAG,CAAQ;YACX,WAAM,GAAN,MAAM,CAAQ;YACd,QAAG,GAAH,GAAG,CAAQ;YACX,QAAG,GAAH,GAAG,CAAQ;YACX,WAAM,GAAN,MAAM,CAAQ;YAGvB,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAE,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAE,CAAA;QAChG,CAAC;QAGD,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAGrC,MAAM,CAAC,KAAK,CAAE,GAAW,EAAE,MAAM,GAAG,EAAE;YACrC,OAAO,IAAI,SAAS,CAAE,GAAG,EAAG,MAAM,EAAE,CAAC,EAAG,CAAC,EAAG,CAAC,CAAE,CAAA;QAChD,CAAC;QAGD,MAAM,CAAC,GAAG,CAAE,GAAW,EAAG,MAAc;YACvC,OAAO,IAAI,SAAS,CAAE,GAAG,EAAG,MAAM,EAAE,CAAC,EAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAG,CAAC,CAAE,CAAA;QAChE,CAAC;QAGD,MAAM,CAAC,MAAM,CAAE,GAAW,EAAG,MAAc;YAC1C,OAAO,IAAI,SAAS,CAAE,GAAG,EAAG,MAAM,EAAE,CAAC,EAAG,CAAC,EAAG,MAAM,CAAC,MAAM,CAAE,CAAA;QAC5D,CAAC;QAED,QAAQ;YACP,OAAO,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,CAAA;QAClC,CAAC;QAED,MAAM;YACL,OAAO;gBACN,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,MAAM,EAAE,IAAI,CAAC,MAAM;aACnB,CAAA;QACF,CAAC;QAGD,KAAK,CAAE,OAAgB,EAAG,KAAK,GAAG,KAAK;YACtC,OAAO,IAAI,KAAK,CAAE,GAAG,OAAO,KAAK,IAAI,GAAG,CAAE,CAAA;QAC3C,CAAC;QAGD,IAAI,CAAE,GAAY,EAAG,GAAY,EAAG,MAAe;YAClD,OAAO,IAAI,SAAS,CAAE,IAAI,CAAC,GAAG,EAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAG,GAAG,EAAG,MAAM,CAAE,CAAA;QACnE,CAAC;QAGD,KAAK,CAAE,MAAM,GAAG,CAAC;YAChB,OAAO,IAAI,SAAS,CAAE,IAAI,CAAC,GAAG,EAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAG,MAAM,CAAE,CAAA;QAC3F,CAAC;QAGD,KAAK,CAAE,KAAa,EAAE,GAAG,GAAG,CAAC,CAAC;YAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAA;YAErB,IAAI,KAAK,GAAG,CAAC;gBAAG,KAAK,IAAI,GAAG,CAAA;YAC5B,IAAI,GAAG,GAAG,CAAC;gBAAG,GAAG,IAAI,GAAG,CAAA;YAExB,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG;gBAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAE,IAAI,CAAC,KAAK,CAAE,gBAAgB,KAAK,gBAAgB,EAAE,UAAU,CAAE,CAAE,CAAA;YACjH,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG;gBAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAE,IAAI,CAAC,KAAK,CAAE,cAAc,GAAG,gBAAgB,EAAE,UAAU,CAAE,CAAE,CAAA;YACzG,IAAI,GAAG,GAAG,KAAK;gBAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAE,IAAI,CAAC,KAAK,CAAE,cAAc,GAAG,kCAAkC,EAAE,UAAU,CAAE,CAAE,CAAA;YAElH,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,GAAG,EAAG,IAAI,CAAC,GAAG,GAAG,KAAK,EAAG,GAAG,GAAG,KAAK,CAAE,CAAA;QAC9D,CAAC;;IAvEW,WAAS,YAyErB,CAAA;AAEF,CAAC,EA9ES,CAAC,KAAD,CAAC,QA8EV;;;;AC9ED,IAAU,CAAC,CAiDV;AAjDD,WAAU,CAAC;IAGV,SAAgB,oBAAoB,CAEnC,IAAgB;QAGhB,IAAI,MAAM,GAAG,EAAc,CAAA;QAE3B,SAAS,IAAI,CACZ,IAAgB,EAChB,MAAM,GAAG,EAAE;YAGX,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC;gBAEvB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAG,CAAC;oBACrB,MAAM,GAAG,IAAI,CAAC;gBACf,CAAC;gBAED,MAAM,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,CAAA;gBAExB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAG,CAAC;oBAC5B,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;oBAClB,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,CAAC,CAAE,EAAE,MAAM,CAAE,CAAA;oBAC9B,OAAM;gBACP,CAAC;gBAED,MAAM,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAEpB,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAG,CAAC;gBAEhD,MAAM,CAAC,IAAI,CAAE,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAE,CAAA;YAExC,CAAC;YAED,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAG,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAE,MAAM,CAAE,CAAA;gBACrB,IAAI,CAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAE,CAAA;YAC3B,CAAC;QAEF,CAAC;QAED,IAAI,CAAE,IAAI,CAAE,CAAA;QAEZ,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC;IA5Ce,sBAAoB,uBA4CnC,CAAA;AAEF,CAAC,EAjDS,CAAC,KAAD,CAAC,QAiDV;;;;ACjDD,IAAU,CAAC,CAMV;AAND,WAAU,CAAC;IAEV,SAAgB,UAAU,CAAW,KAAgC;QACpE,OAAO,CAAE,KAAK,IAAI,IAAI,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,KAAK,CAAE,CAAA;IAC1C,CAAC;IAFe,YAAU,aAEzB,CAAA;AAEF,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CA4SV;AA5SD,WAAU,CAAC;IAuBV,MAAa,UAAW,SAAQ,MAAM;QAK3B;QAGA;QAGA;QAGA;QAZV,YAGU,IAAa,EAGb,KAAc,EAGd,IAA4B,EAG5B,IAAgB;YAGzB,KAAK,EAAE,CACN;YAbQ,SAAI,GAAJ,IAAI,CAAS;YAGb,UAAK,GAAL,KAAK,CAAS;YAGd,SAAI,GAAJ,IAAI,CAAwB;YAG5B,SAAI,GAAJ,IAAI,CAAY;YAIvB,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,CAAA;QAC5D,CAAC;QAGD,MAAM,CAAC,IAAI,CACV,IAA4B,EAC5B,IAAI,GAAG,SAAS,CAAC,OAAO;YAExB,OAAO,IAAI,UAAU,CAAE,EAAE,EAAG,EAAE,EAAG,IAAI,EAAG,IAAI,CAAE,CAAA;QAC/C,CAAC;QAGD,IAAI,CACH,IAA4B;YAE5B,OAAO,UAAU,CAAC,IAAI,CAAE,IAAI,EAAG,IAAI,CAAC,IAAI,CAAE,CAAA;QAC3C,CAAC;QAGD,MAAM,CAAC,IAAI,CACV,KAAc,EACd,OAAO,EAA2B,EAClC,IAAI,GAAG,SAAS,CAAC,OAAO;YAGxB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAE,IAAI,CAAE,CAAA;YAElC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAG,CAAC;gBAExB,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,GAAG,EAAG,IAAI,CAAC,GAAG,EAAG,CAAC,CAAE,CAAA;gBAEnD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAE,KAAK,CAAC,EAAE;oBAChC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAE,KAAK,CAAC,MAAM,CAAE,CAAA;oBACzC,OAAO,IAAI,UAAU,CAAE,EAAE,EAAG,KAAK,EAAG,EAAE,EAAG,QAAQ,CAAE,CAAA;gBACpD,CAAC,CAAE,CAAA;gBAEH,IAAI,GAAG,CAAE,GAAI,IAAI,EAAG,GAAI,IAAI,CAAE,CAAA;gBAE9B,KAAK,GAAG,EAAE,CAAA;YAEX,CAAC;YAED,OAAO,IAAI,UAAU,CAAE,EAAE,EAAG,KAAK,EAAG,IAAI,EAAG,IAAI,CAAE,CAAA;QAElD,CAAC;QAGD,IAAI,CACH,KAAc,EACd,OAAO,EAA2B;YAElC,OAAO,UAAU,CAAC,IAAI,CAAE,KAAK,EAAG,IAAI,EAAG,IAAI,CAAC,IAAI,CAAE,CAAA;QACnD,CAAC;QAGD,MAAM,CAAC,MAAM,CACZ,IAAa,EACb,OAAO,EAA2B,EAClC,IAAI,GAAG,SAAS,CAAC,OAAO;YAGxB,IAAI,WAAW,CAAC,IAAI,CAAE,IAAI,CAAE,EAAG,CAAC;gBAC/B,EAAE,CAAC,SAAS,CAAE,IAAI,CAAC,KAAK,CAAE,cAAe,IAAI,CAAC,SAAS,CAAE,IAAI,CAAG,EAAE,CAAE,CAAE,CAAA;YACvE,CAAC;YAED,OAAO,IAAI,UAAU,CAAE,IAAI,EAAG,EAAE,EAAG,IAAI,EAAG,IAAI,CAAE,CAAA;QAEjD,CAAC;QAGD,MAAM,CACL,IAAa,EACb,OAAO,EAA2B;YAElC,OAAO,UAAU,CAAC,MAAM,CAAE,IAAI,EAAG,IAAI,EAAG,IAAI,CAAC,IAAI,CAAE,CAAA;QACpD,CAAC;QAGD,KAAK,CAAE,IAA4B,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI;YACpD,OAAO,IAAI,UAAU,CAAE,IAAI,CAAC,IAAI,EAAG,IAAI,CAAC,KAAK,EAAG,IAAI,EAAG,IAAI,CAAE,CAAA;QAC9D,CAAC;QAGD,IAAI;YAEH,IAAI,MAAM,GAAc,EAAE,CAAA;YAE1B,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAG,CAAC;gBAC5B,IAAI,GAAG,CAAC,IAAI;oBAAG,SAAQ;gBACvB,MAAM,CAAC,IAAI,CAAE,GAAG,CAAC,KAAK,CAAE,CAAA;YACzB,CAAC;YAED,OAAO,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;QAExC,CAAC;QAID,MAAM,CAAC,UAAU,CAAE,GAAY,EAAG,GAAG,GAAG,SAAS;YAChD,OAAO,EAAE,CAAC,sBAAsB,CAAE,GAAG,EAAE,GAAG,CAAE,CAAA;QAC7C,CAAC;QAGD,QAAQ;YACP,OAAO,EAAE,CAAC,oBAAoB,CAAE,IAAI,CAAE,CAAA;QACvC,CAAC;QAGD,MAAM,CAAE,KAAyB,EAAG,GAAG,IAAsB;YAC5D,OAAO,IAAI,CAAC,MAAM,CAAE,UAAU,CAAE,KAAK,CAAE,EAAE,GAAI,IAAI,CAAE,CAAC,CAAC,CAAC,CAAA;QACvD,CAAC;QAGD,MAAM,CAAE,KAA6B,EAAG,GAAG,IAAsB;YAEhE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAG,OAAO,KAAK,CAAA;YAEpC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACpB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAG,CAAC;gBAE/B,IAAI,QAAQ,GAAG,KAAK,CAAA;gBACpB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAE,CAAE,IAAI,EAAG,KAAK,EAAE,EAAE;oBAChD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;wBAAG,OAAO,IAAI,CAAA;oBACpC,QAAQ,GAAG,IAAI,CAAA;oBACf,OAAO,IAAI,CAAC,MAAM,CAAE,KAAK,EAAG,GAAI,IAAI,CAAC,KAAK,CAAE,CAAC,CAAE,CAAE,CAAA;gBAClD,CAAC,CAAE,CAAC,MAAM,CAAE,OAAO,CAAE,CAAA;gBAErB,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAG,CAAC;oBACzB,GAAG,CAAC,IAAI,CAAE,GAAI,IAAI,CAAC,MAAM,CAAE,IAAI,EAAG,EAAE,CAAE,CAAC,MAAM,CAAE,KAAK,EAAG,GAAI,IAAI,CAAC,KAAK,CAAE,CAAC,CAAE,CAAE,CAAE,CAAA;gBAC/E,CAAC;gBAED,OAAO,CAAE,IAAI,CAAC,KAAK,CAAE,GAAG,CAAE,CAAE,CAAA;YAE7B,CAAC;iBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAG,CAAC;gBAEtC,MAAM,GAAG,GAAG,CAAE,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE;qBAChD,MAAM,CAAE,KAAK,EAAG,GAAI,IAAI,CAAC,KAAK,CAAE,CAAC,CAAE,CAAE,CAAA;gBAEvC,OAAO,CAAE,IAAI,CAAC,KAAK,CAAC;wBACnB,GAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC,EAAE,IAAI,CAAE;wBAC9B,GAAI,GAAG;wBACP,GAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAE,IAAI,GAAG,CAAC,CAAE;qBAC/B,CAAC,CAAE,CAAA;YAEL,CAAC;iBAAM,CAAC;gBAEP,MAAM,IAAI,GAAG,CAAE,CAAE,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAE,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAE;qBACzE,OAAO,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAE,KAAK,EAAG,GAAI,IAAI,CAAC,KAAK,CAAE,CAAC,CAAE,CAAE,CAAE,CAAA;gBAE/D,OAAO,CAAE,IAAI,CAAC,KAAK,CAAE,IAAI,CAAE,CAAE,CAAA;YAE9B,CAAC;QAEF,CAAC;QAGD,MAAM,CAAE,GAAG,IAAsB;YAEhC,IAAI,IAAI,GAAG,CAAE,IAAkB,CAAE,CAAA;YAEjC,KAAK,MAAM,IAAI,IAAI,IAAI,EAAG,CAAC;gBAE1B,IAAI,CAAC,IAAI,CAAC,MAAM;oBAAG,MAAK;gBAExB,MAAM,IAAI,GAAG,IAAI,CAAA;gBACjB,IAAI,GAAG,EAAE,CAAA;gBAET,KAAK,IAAI,IAAI,IAAI,IAAI,EAAG,CAAC;oBAExB,QAAQ,OAAM,CAAE,IAAI,CAAE,EAAG,CAAC;wBAEzB,KAAK,QAAQ;4BAEZ,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,EAAG,CAAC;gCAC9B,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,EAAG,CAAC;oCACzB,IAAI,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;gCACnB,CAAC;4BACF,CAAC;4BAED,MAAK;wBAEN,KAAK,QAAQ;4BAEZ,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;gCAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAE,CAAA;4BAE5D,MAAM;wBAEP,OAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAE,GAAI,IAAI,CAAC,IAAI,CAAE,CAAA;oBACrC,CAAC;gBACF,CAAC;YACF,CAAC;YAED,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;QAEzB,CAAC;QAGD,MAAM,CAAE,IAAe,EAAG,KAAe;YAExC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAE,IAAI,CAAC,EAAE;gBAEpC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAE,GAAG,IAAI,CAAE,CAAA;gBAElC,IAAI,KAAK,KAAK,SAAS,EAAG,CAAC;oBAC1B,OAAO,OAAO,CAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAE,CAAA;gBACpC,CAAC;qBAAM,CAAC;oBACP,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAE,CAAA;gBACxD,CAAC;YAEF,CAAC,CAAE,CAAA;YAEH,OAAO,IAAI,CAAC,KAAK,CAAE,GAAG,CAAE,CAAA;QAEzB,CAAC;QAED,SAAS,CACR,IAAgC,EAChC,UAAU,EAAa;YAEvB,IAAI,MAAM,GAAG,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,IAAI,IAAI,CAAE,EAAE,CAAE,CAAA;YAE5C,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,MAAM,CAAC,SAAS,CAAE,IAAI,CAAC,IAAoB,CAAE,EAAG,CAAC;gBAC1E,MAAM,GAAG,CAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;oBACnC,KAAK,CAAC,KAAK,CAAE,KAAK,CAAC,IAAI,CAAE,IAAI,EAAE,OAAO,CAAE,EAAE,OAAO,CAAC,IAAI,CAAE;iBACxD,CAAA;YACF,CAAC;YAED,IAAI,CAAC;gBACJ,OAAO,MAAM,CAAE,IAAI,EAAG,IAAI,EAAG,OAAQ,CAAE,CAAA;YACxC,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBACtB,KAAK,CAAC,OAAO,IAAI,KAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAE,GAAI,IAAI,CAAC,IAAK,EAAE,CAAA;gBACtD,gBAAgB,CAAE,KAAK,CAAE,CAAA;YAC1B,CAAC;QACF,CAAC;QAGD,IAAI,CACH,IAAgC,EAChC,UAAU,EAAa;YAEvB,OAAS,EAA6B,CAAC,MAAM,CAC5C,GAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAE,CAC5D,CAAA;QAEF,CAAC;QAGD,KAAK,CAAE,OAAgB,EAAG,KAAK,GAAG,KAAK;YACtC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAE,GAAI,OAAQ,KAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAE,EAAE,EAAG,KAAK,CAAE,CAAA;QACtE,CAAC;KAED;IA7QY,YAAU,aA6QtB,CAAA;IAED,MAAa,gBAAiB,SAAQ,UAAU;QAC/C;YACC,KAAK,CAAE,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,SAAS,CAAC,OAAO,CAAE,CAAA;QAC1C,CAAC;KACD;IAJY,kBAAgB,mBAI5B,CAAA;AAEF,CAAC,EA5SS,CAAC,KAAD,CAAC,QA4SV;;;;AC5SD,IAAU,CAAC,CAcV;AAdD,WAAU,CAAC;IAGV,MAAa,iBAAkB,SAAQ,WAAW;QAEzC;QACA;QACA;QAHR,YACQ,MAAc,EACd,IAAY,EACZ,IAAe;YAEtB,KAAK,CAAC,GAAI,MAAO,KAAM,IAAK,KAAM,IAAI,CAAC,SAAS,CAAE,CAAC,EAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAE,CAAC,OAAO,CAAE,KAAK,EAAE,GAAG,CAAG,GAAI,EAAE,CAAC,MAAM,CAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAG,KAAM,IAAK,EAAE,CAAC,CAAA;YAJpI,WAAM,GAAN,MAAM,CAAQ;YACd,SAAI,GAAJ,IAAI,CAAQ;YACZ,SAAI,GAAJ,IAAI,CAAW;QAGvB,CAAC;KAED;IATY,mBAAiB,oBAS7B,CAAA;AAEF,CAAC,EAdS,CAAC,KAAD,CAAC,QAcV;;;;ACdD,IAAU,CAAC,CAqJV;AArJD,WAAU,CAAC;IAGV,SAAgB,sBAAsB,CAErC,GAAW,EACX,GAAG,GAAG,GAAG;QAGT,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAE,GAAG,EAAE,GAAG,CAAE,CAAA;QAEzC,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAE,EAAE,EAAE,IAAI,CAAE,CAAA;QACtC,IAAI,KAAK,GAAG,CAAE,IAAI,CAAE,CAAA;QAEpB,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,CAAA;QAEpC,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,EAAG,CAAC;YAE1B,IAAI,MAAM,GAAG,CAAC,CAAA;YACd,IAAI,UAAU,GAAG,GAAG,CAAA;YAEpB,GAAG,EAAE,CAAA;YAGL,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,EAAG,CAAC;gBAChD,MAAM,EAAE,CAAA;gBACR,GAAG,EAAE,CAAA;YACN,CAAC;YAED,IAAI,CAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC;gBACzB,UAAU,GAAG,MAAM,CAAA;YACpB,CAAC;YAED,MAAM,IAAI,UAAU,CAAA;YAGpB,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,EAAG,CAAC;gBAE3C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,UAAU,CAAE,CAAA;gBAGhD,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,EAAG,CAAC;oBAChD,GAAG,EAAE,CAAA;gBACN,CAAC;gBAED,IAAI,MAAM,GAAG,CAAC,EAAG,CAAC;oBACjB,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAG,CAAC;wBACvB,IAAI,CAAC,SAAS,CAAE,IAAI,IAAI,CAAC,iBAAiB,CACzC,cAAc,EACd,GAAG,CAAC,SAAS,CAAE,UAAU,EAAE,GAAG,CAAE,EAChC,EAAE,CACF,CAAE,CAAA;oBACJ,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,SAAS,CAAE,IAAI,IAAI,CAAC,iBAAiB,CACzC,eAAe,EACf,GAAG,CAAC,SAAS,CAAE,UAAU,EAAE,GAAG,CAAE,EAChC,EAAE,CACF,CAAE,CAAA;gBACJ,CAAC;YAEF,CAAC;YAED,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAA;YACzB,IAAI,MAAM,GAAG,KAAK,CAAE,MAAM,CAAE,CAAA;YAG5B,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,EAAG,CAAC;gBAGtE,IAAI,WAAW,GAAG,GAAG,CAAA;gBACrB,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,CAAE,GAAG,CAAE,GAAG,CAAE,IAAI,GAAG,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,CAAE,EAAG,CAAC;oBACzE,GAAG,EAAE,CAAA;gBACN,CAAC;gBAED,IAAI,GAAG,GAAG,WAAW,EAAG,CAAC;oBACxB,IAAI,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAE,IAAI,EAAG,GAAG,CAAE,CAAA;oBACxC,IAAI,QAAQ,KAAK,CAAC,CAAC;wBAAG,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAA;oBAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,WAAW,GAAG,UAAU,GAAG,CAAC,EAAE,GAAG,GAAG,WAAW,CAAE,CAAA;oBAC5E,IAAI,CAAC,SAAS,CAAE,IAAI,IAAI,CAAC,iBAAiB,CACzC,uBAAuB,EACvB,GAAG,CAAC,SAAS,CAAE,UAAU,EAAE,QAAQ,CAAE,EACrC,EAAE,CACF,CAAE,CAAA;gBACJ,CAAC;gBAGD,IAAI,UAAU,GAAG,GAAG,CAAA;gBACpB,OACC,GAAG,CAAC,MAAM,GAAG,GAAG;oBAChB,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI;oBAClB,GAAG,CAAE,GAAG,CAAE,IAAI,GAAG;oBACjB,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI;oBAClB,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,EACjB,CAAC;oBACF,GAAG,EAAE,CAAA;gBACN,CAAC;gBACD,IAAI,GAAG,GAAG,UAAU,EAAG,CAAC;oBACvB,IAAI,IAAI,GAAG,IAAI,UAAU,CACxB,GAAG,CAAC,KAAK,CAAE,UAAU,EAAG,GAAG,CAAE,EAC7B,EAAE,EACF,EAAE,EACF,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,UAAU,GAAG,UAAU,GAAG,CAAC,EAAE,GAAG,GAAG,UAAU,CAAE,CAC/D,CAAA;oBACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAoB,CAAA;oBAC/C,WAAW,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;oBACxB,MAAM,GAAG,IAAI,CAAA;gBACd,CAAC;gBAGD,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,GAAG,EAAG,CAAC;oBAC5C,GAAG,EAAE,CAAA;gBACN,CAAC;YACF,CAAC;YAGD,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,EAAG,CAAC;gBAC7C,IAAI,UAAU,GAAG,GAAG,CAAA;gBACpB,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,EAAG,CAAC;oBAChD,GAAG,EAAE,CAAA;gBACN,CAAC;gBACD,IAAI,IAAI,GAAG,IAAI,UAAU,CACxB,EAAE,EACF,GAAG,CAAC,KAAK,CAAE,UAAU,GAAG,CAAC,EAAG,GAAG,CAAE,EACjC,EAAE,EACF,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,UAAU,GAAG,UAAU,GAAG,CAAC,EAAE,GAAG,GAAG,UAAU,GAAG,CAAC,CAAE,CACnE,CAAA;gBACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAoB,CAAA;gBAC/C,WAAW,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;gBACxB,MAAM,GAAG,IAAI,CAAA;YACd,CAAC;YAGD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAG,CAAC;gBAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,GAAG,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,CAAE,CAAA;gBACpD,IAAI,CAAC,SAAS,CAAE,IAAI,IAAI,CAAC,iBAAiB,CACzC,6BAA6B,EAC7B,GAAG,CAAC,SAAS,CAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAE,EACvC,EAAE,CACF,CAAE,CAAA;YACJ,CAAC;YAED,KAAK,CAAC,IAAI,CAAE,MAAM,CAAE,CAAA;YACpB,GAAG,EAAE,CAAA;QACN,CAAC;QAED,OAAO,IAAI,CAAA;IACZ,CAAC;IAhJe,wBAAsB,yBAgJrC,CAAA;AAEF,CAAC,EArJS,CAAC,KAAD,CAAC,QAqJV;;;;ACrJD,IAAU,CAAC,CA6DV;AA7DD,WAAU,CAAC;IAEV,SAAgB,oBAAoB,CAAE,IAAS,EAAE,IAAI,GAAG,SAAS,CAAC,OAAO;QAExE,IAAI,OAAO,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAG,CAAC;YAC7E,OAAO,IAAI,UAAU,CAAE,MAAM,CAAE,IAAI,CAAE,EAAG,EAAE,EAAG,EAAE,EAAG,IAAI,CAAE,CAAA;QACzD,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAG,CAAC;YAC/B,OAAO,UAAU,CAAC,IAAI,CAAE,IAAI,EAAG,EAAE,EAAE,IAAI,CAAE,CAAA;QAC1C,CAAC;QAED,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,EAAG,CAAC;YACxC,OAAO,oBAAoB,CAAE,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA;QAC7C,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAE,IAAI,CAAE,EAAG,CAAC;YAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAE,IAAI,EAAG,IAAI,CAAE,CAAE,CAAA;YACnE,OAAO,IAAI,UAAU,CAAE,GAAG,EAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAE,CAAA;QAC7C,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,CAAE,IAAI,CAAE,EAAG,CAAC;YACjC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAE,CAAA;YAC3E,OAAO,UAAU,CAAC,IAAI,CAAE,MAAM,CAAC,YAAY,CAAE,GAAI,GAAG,CAAE,EAAG,EAAE,EAAE,IAAI,CAAE,CAAA;QACpE,CAAC;QAED,IAAI,IAAI,YAAY,IAAI,EAAG,CAAC;YAC3B,OAAO,IAAI,UAAU,CAAE,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,EAAG,EAAE,EAAG,IAAI,CAAE,CAAA;QAC5D,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAG,CAAC;YAClD,OAAO,UAAU,CAAC,IAAI,CAAE,IAAI,CAAC,QAAQ,EAAE,EAAG,EAAE,EAAE,IAAI,CAAE,CAAA;QACrD,CAAC;QAED,IAAI,IAAI,YAAY,KAAK,EAAG,CAAC;YAC5B,MAAM,EAAE,IAAI,EAAG,OAAO,EAAG,KAAK,EAAE,GAAG,IAAI,CAAA;YACvC,IAAI,GAAG,EAAE,GAAI,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;QAC1C,CAAC;QAED,MAAM,GAAG,GAAG,EAAkB,CAAA;QAE9B,KAAK,IAAI,GAAG,IAAI,IAAI,EAAG,CAAC;YAEvB,MAAM,GAAG,GAAG,IAAI,CAAE,GAAG,CAAE,CAAA;YAEvB,IAAI,GAAG,KAAK,SAAS;gBAAG,SAAQ;YAEhC,MAAM,MAAM,GAAG,oBAAoB,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YAEhD,IAAI,eAAe,CAAC,IAAI,CAAE,GAAG,CAAE,EAAG,CAAC;gBAClC,GAAG,CAAC,IAAI,CAAE,IAAI,UAAU,CAAE,GAAG,EAAE,EAAE,EAAE,CAAE,MAAM,CAAE,EAAE,IAAI,CAAE,CAAE,CAAA;YACxD,CAAC;iBAAM,CAAC;gBACP,GAAG,CAAC,IAAI,CAAE,UAAU,CAAC,IAAI,CAAE,GAAG,EAAE,CAAE,MAAM,CAAE,EAAE,IAAI,CAAE,CAAE,CAAA;YACrD,CAAC;QAEF,CAAC;QAED,OAAO,IAAI,UAAU,CAAE,GAAG,EAAG,EAAE,EAAE,GAAG,EAAG,IAAI,CAAE,CAAA;IAE9C,CAAC;IAzDe,sBAAoB,uBAyDnC,CAAA;AAEF,CAAC,EA7DS,CAAC,KAAD,CAAC,QA6DV;;;;AC7DD,IAAU,CAAC,CAqDV;AArDD,WAAU,CAAC;IAGV,MAAa,eAAe;QAE3B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;QAChC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,EAAE,CAAE,CAAA;QAChC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,EAAE,CAAE,CAAA;QAClC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,EAAE,CAAE,CAAA;QACrC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,EAAE,CAAE,CAAA;QACnC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,EAAE,CAAE,CAAA;QAClC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,EAAE,CAAE,CAAA;QAElC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;QACjC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;QAChC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;QAClC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;QACnC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;QACjC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;QACpC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;QAEjC,MAAM,CAAC,IAAI,GAAG,CAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,CAAE,CAAA;QAChE,MAAM,CAAC,GAAG,GAAG,CAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,GAAG,CAAE,GAAG,CAAE,CAAE,CAAA;QAC9D,MAAM,CAAC,KAAK,GAAG,CAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,KAAK,CAAE,GAAG,CAAE,CAAE,CAAA;QAClE,MAAM,CAAC,MAAM,GAAG,CAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,MAAM,CAAE,GAAG,CAAE,CAAE,CAAA;QACpE,MAAM,CAAC,IAAI,GAAG,CAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,CAAE,CAAA;QAChE,MAAM,CAAC,OAAO,GAAG,CAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,OAAO,CAAE,GAAG,CAAE,CAAE,CAAA;QACtE,MAAM,CAAC,IAAI,GAAG,CAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,CAAE,CAAA;QAEhE,MAAM,CAAC,IAAI,CAAE,IAAY,EAAE,KAAa;YAEvC,IAAI,OAAO,OAAO,KAAK,WAAW;gBAAG,OAAO,MAAM,CAAA;YAClD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;gBAAG,OAAO,MAAM,CAAA;YAEzC,MAAM,MAAM,GAAG,QAAQ,IAAI,GAAG,CAAA;YAC9B,MAAM,OAAO,GAAG,QAAQ,KAAK,GAAG,CAAA;YAEhC,MAAM,aAAa,GAAG,IAAI,MAAM,CAAE,OAAO,CAAC,OAAO,CAAE,GAAG,EAAE,KAAK,CAAE,EAAE,GAAG,CAAE,CAAA;YAEtE,OAAO,SAAS,OAAO,CAAE,GAAW;gBAEnC,GAAG,GAAG,MAAM,CAAE,GAAG,CAAE,CAAA;gBACnB,IAAI,GAAG,KAAK,EAAE;oBAAG,OAAO,GAAG,CAAA;gBAE3B,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAE,aAAa,EAAE,MAAM,CAAE,CAAA;gBACnD,OAAO,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;YAEjC,CAAC,CAAA;QAEF,CAAC;;IA9CW,iBAAe,kBAgD3B,CAAA;AAEF,CAAC,EArDS,CAAC,KAAD,CAAC,QAqDV;;;;ACrDD,IAAU,CAAC,CAoCV;AApCD,WAAU,CAAC;IAEV,SAAgB,mBAAmB,CAClC,KAAqB,EACrB,MAA4B,EAC5B,IAAa,EACb,KAA+B;QAG/B,OAAO,SAAS,gBAAgB,CAE/B,KAA2B;YAG3B,IAAI,CAAC,KAAK,CAAC,IAAI;gBAAG,KAAK,GAAG,EAAE,IAAI,EAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAG,GAAI,KAAK,EAAE,CAAA;YAEzE,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAE,KAAK,CAAE,CAAA;YAC7C,IAAI,GAAG,IAAI,CAAC,MAAM,CAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAE,CAAA;YAErC,IAAI,GAAG,GAAG,KAAK,CAAE,IAAI,CAAC,QAAQ,EAAE,CAAE,CACjC;YAAE,IAAI,CAAC,OAAO,CAAE,KAAK,CAAW,CAAE,GAAG,CAAE,CAAA;YAExC,MAAM,IAAI,GAAG,IAAI,CAAA;YACjB,OAAO,GAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAA;QAEpC,CAAC,CAAA;IAEF,CAAC;IAzBe,qBAAmB,sBAyBlC,CAAA;IAED,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAE,MAAM,EAAG,QAAQ,EAAG,MAAM,EAAG,eAAe,CAAC,IAAI,CAAE,CAAA;IAC3F,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAE,MAAM,EAAG,QAAQ,EAAG,MAAM,EAAG,eAAe,CAAC,KAAK,CAAE,CAAA;IAC5F,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAE,OAAO,EAAG,QAAQ,EAAG,MAAM,EAAG,eAAe,CAAC,GAAG,CAAE,CAAA;IAC3F,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAE,MAAM,EAAG,QAAQ,EAAG,MAAM,EAAG,eAAe,CAAC,MAAM,CAAE,CAAA;IAC7F,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAE,KAAK,EAAG,QAAQ,EAAG,MAAM,EAAG,eAAe,CAAC,OAAO,CAAE,CAAA;IAC7F,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAE,KAAK,EAAG,QAAQ,EAAG,MAAM,EAAG,eAAe,CAAC,IAAI,CAAE,CAAA;AAE3F,CAAC,EApCS,CAAC,KAAD,CAAC,QAoCV;;;;ACpCD,IAAU,CAAC,CAmGV;AAnGD,WAAU,CAAC;IAGV,MAAa,cAIX,SAAQ,eAAqC;QAE9C,MAAM,CAAC,MAAM,CAKZ,IAAgD;YAGhD,OAAO,SAAS,kBAAkB,CAAE,IAAU,EAAE,IAAU;gBAEzD,MAAM,GAAG,GAAG,cAAc,EAAE,CAAA;gBAC5B,MAAM,OAAO,GAAG,GAAG,EAAE,UAAU,EAAsD,CAAA;gBACrF,IAAI,KAAK,GAAG,EAAE,CAAA;gBAEd,KAAK,EAAE,IAAI,OAAO,EAAG,CAAC;oBAErB,IAAI,CAAC,OAAO,CAAC,IAAI;wBAAG,MAAM,KAAK,CAAA;oBAE/B,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAG,CAAC;wBAAC,KAAK,GAAG,MAAM,CAAC;wBAAC,MAAM,KAAK,CAAA;oBAAC,CAAC;oBAC3D,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAG,CAAC;wBAAC,KAAK,GAAG,MAAM,CAAC;wBAAC,MAAM,KAAK,CAAA;oBAAC,CAAC;oBAC3D,IAAI,CAAC,iBAAiB,CAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAE,EAAG,CAAC;wBAAC,KAAK,GAAG,MAAM,CAAC;wBAAC,MAAM,KAAK,CAAA;oBAAC,CAAC;oBAE9E,OAAO,OAAO,CAAA;gBACf,CAAC;gBAED,MAAM,GAAG,GAAG,CAAG,IAAY,EAAE,CAAE,MAAM,CAAC,WAAW,CAAE,IAAI,IAAI,CAAE,GAAG,CAAE,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,CAAE,CAAA;gBAC3F,MAAM,IAAI,GAAG,IAAI,cAAc,CAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAA;gBAGxD,IAAI,OAAO,EAAE,IAAI,EAAG,CAAC;oBACpB,EAAE,CAAC,cAAc,CAAC;wBACjB,KAAK,EAAE,gBAAgB;wBACvB,OAAO,EAAE,aAAa,KAAK,aAAa;wBACxC,GAAG;wBACH,IAAI,EAAE,OAAO;wBACb,IAAI;wBACJ,IAAI,EAAE,uCAAuC;qBAC7C,CAAC,CAAA;gBACH,CAAC;gBAED,OAAO,IAAI,CAAA;YACZ,CAAC,CAAA;QAEF,CAAC;QAED,IAAI,IAAI;YACP,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,QAAQ;YACP,IAAI,iBAAiB,CAAE,IAAI,CAAC,KAAK,CAAE;gBAAG,OAAM;YAC5C,IAAI,CAAC,UAAU,EAAE,CAAA;QAClB,CAAC;QAED,GAAG,CAAE,IAAgD;YAEpD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;YACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;YAEjB,IAAI,iBAAiB,CAAE,IAAI,CAAE,EAAG,CAAC;gBAEhC,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;gBACpC,IAAI,IAAI,KAAK,IAAI;oBAAG,IAAI,CAAC,IAAI,EAAE,CAAA;gBAE/B,IAAI,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAE,EAAG,CAAC;oBACtC,IAAI,CAAC;wBACH,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,GAAI,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,CAAA;oBAC1E,CAAC;oBAAC,MAAM,CAAC;wBACR,MAAM,CAAC,cAAc,CAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,KAAK,EAAG,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,EAAE,CAAE,CAAA;oBAClG,CAAC;gBACF,CAAC;gBAED,OAAO,IAAI,CAAA;YACZ,CAAC;YAED,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;YAEpC,IAAI,IAAI,CAAC,SAAS;gBAAG,IAAI,CAAC,UAAU,EAAE,CAAA;iBACjC,IAAI,IAAI,KAAK,IAAI;gBAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAEpC,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,UAAU;YACT,KAAK,CAAC,UAAU,EAAE,CAAA;YAClB,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;QACrC,CAAC;KAED;IA9FY,gBAAc,iBA8F1B,CAAA;AAEF,CAAC,EAnGS,CAAC,KAAD,CAAC,QAmGV;;;;ACnGD,IAAU,CAAC,CAoGV;AApGD,WAAU,CAAC;IACV,MAAM,SAAS,GAAG,IAAI,OAAO,EAAsB,CAAA;IAEnD,SAAS,OAAO,CACf,GAAkC;QAElC,IAAI,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAuC,CAAA;QAEnE,IAAK,IAAI;YAAG,OAAO,IAAI,CAAA;QAEvB,IAAI,GAAG,mBAAmB,CAAC,CAAC,GAAG,IAAU,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;QACpE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAExB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAgE,CAAA;IAE3F,SAAS,QAAQ,CAChB,IAAY,EACZ,KAAsB;QAEtB,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC7B,IAAI,OAAO,GAAG,KAAK,EAAE,CAAC,KAAK,CAAC,CAAA;QAE5B,IAAK,OAAO;YAAG,OAAO,OAAO,CAAA;QAE7B,OAAO,GAAG,CAAC,IAAc,EAAE,EAAE;YAC5B,IAAI,IAAI,KAAK,SAAS;gBAAE,IAAI,CAAC,KAA0B,CAAC,GAAG,IAAW,CAAA;YAEtE,OAAO,IAAI,CAAC,KAA0B,CAAC,CAAA;QACxC,CAAC,CAAA;QAED,MAAM,CAAC,cAAc,CAAE,OAAO,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,KAAK,EAAE,CAAE,CAAA;QAE7D,IAAI,CAAE,KAAK,EAAE,CAAC;YACb,KAAK,GAAG,EAAE,CAAA;YACV,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACzB,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAA;QAEtB,OAAO,OAAO,CAAA;IACf,CAAC;IAMD,SAAgB,cAAc,CAAyB,GAAS;QAC/D,OAAO,IAAI,KAAK,CAAE,GAAG,EAAE;YAEtB,GAAG,CAAE,GAAG,EAAE,KAAK;gBAEd,IAAI,GAAG,GAAI,GAAW,CAAE,KAAK,CAAE,CAAA;gBAC/B,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;gBAE1F,IAAI,OAAO,GAAG,KAAK,UAAU;oBAAE,OAAO,IAAI,CAAE,GAAG,EAAE,EAAE,CAAE,CAAC,IAAI,EAAE,CAAA;gBAE5D,OAAO,SAAS,cAAc,CAAc,GAAI,IAAe;oBAC9D,MAAM,KAAK,GAAG,IAAI,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;oBAC/B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;gBACpB,CAAC,CAAA;YACF,CAAC;YAED,GAAG,CAAE,GAAG,EAAE,KAAK,EAAE,IAAI;gBACpB,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;gBACxD,IAAI,CAAE,GAAG,EAAE,CAAE,IAAI,CAAE,CAAE,CAAC,IAAI,EAAE,CAAA;gBAE5B,OAAO,IAAI,CAAA;YACZ,CAAC;YAED,SAAS,CAAC,GAAG,EAAE,IAAI;gBAClB,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,GAA8C,CAAC,CAAC,CAAA;gBAC3F,OAAO,IAAI,CAAE,GAAG,EAAE,IAAI,CAAE,CAAC,IAAI,EAAY,CAAA;YAC1C,CAAC;YAED,KAAK,CAAE,GAAG,EAAE,IAAI,EAAE,IAAI;gBACrB,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,GAAgC,CAAC,CAAA;gBACpE,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;YAC/B,CAAC;SAED,CAAoD,CAAA;IACtD,CAAC;IAlCe,gBAAc,iBAkC7B,CAAA;AAkBF,CAAC,EApGS,CAAC,KAAD,CAAC,QAoGV;;;;ACpGD,IAAU,CAAC,CAmLV;AAnLD,WAAU,CAAC;IAQV,MAAa,cAAe,SAAQ,cAOlC;KAAG;IAPQ,gBAAc,iBAOtB,CAAA;IAEQ,gBAAc,GAAG,CAC7B,GAAG,IAAwD,EAC1D,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;IAE7B,qBAAmB,GAAG,CAClC,GAAG,IAA4D,EAC9D,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAA;IAS9C,MAAa,QAAS,SAAQ,WAAW;QAExC,MAAM,CAAC,aAAa;YACnB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,eAAe,CAAC,CAAC,CAAA;QACnD,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,OAAyB;YACrC,MAAM,IAAI,GAAG,CAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;YAClE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;YAE5C,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,WAAW,CAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAE,CAAA;QACrE,CAAC;QAED,MAAM,CAAC,WAAW,CACjB,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAyC;YAE3E,MAAM,QAAQ,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAE,GAAG,CAAE,CAAC,CAAC,CAAC,OAAO,CAAA;YAC7E,MAAM,CAAE,GAAG,EAAE,GAAG,IAAI,CAAE,GAAG,QAAQ,CAAA;YACjC,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;YAE3C,MAAM,UAAU,GAAG;gBAClB,KAAK,EAAE,GAAG,IAAI,UAAU;gBACxB,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC3B,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAE,EAAE,EAAG,GAAG,CAAE;aACpC,CAAA;YAED,IAAI,IAAI,EAAE,CAAC;gBAEV,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;oBACrB,IAAI,EAAE,kBAAkB;oBACxB,GAAG,UAAU;iBACb,CAAC,CAAA;gBAEF,IAAI,KAAwB,CAAA;gBAC5B,IAAI,GAAG,CAAA;gBAEP,IAAI,CAAC;oBACJ,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;oBACjD,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;gBAClB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,KAAK,GAAG,GAAY,CAAA;gBACrB,CAAC;gBAED,IAAI,CAAE,GAAG,IAAI,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBAClC,MAAM,IAAI,cAAc,CACvB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EACvB,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAC3D,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACzB,CAAA;gBACF,CAAC;gBAED,OAAO,GAAG,CAAA;YACX,CAAC;YAED,IAAI,GAAG,CAAA;YAEP,IAAI,CAAC;gBACJ,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE;oBACtC,GAAG,IAAI;oBACP,KAAK,EAAE,CAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAE;iBACvC,CAAC,CAAA;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,IAAI,cAAc,CACvB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAC7B,UAAU,EACV,KAAc,CACd,CAAA;YACF,CAAC;YAED,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;YAExB,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;gBACrB,GAAG,UAAU;gBACb,GAAG;aACH,CAAC,CAAA;YAEF,IAAI,YAAY,GAAG,KAAK,CAAA;YACxB,IAAI,KAAgD,CAAA;YAEpD,MAAM,QAAQ,GAAG,EAAc,CAAA;YAC/B,MAAM,UAAU,GAAG,EAAc,CAAA;YAEjC,MAAM,GAAG,GAAG,CAAC,SAAkB,EAAE,WAAoB,EAAE,EAAE;gBACxD,IAAI,SAAS;oBAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACvC,IAAI,WAAW;oBAAE,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBAC7C,IAAI,CAAE,OAAO;oBAAE,OAAM;gBAErB,YAAY,CAAC,KAAK,CAAC,CAAA;gBAEnB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBACvB,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;oBACnD,YAAY,GAAG,IAAI,CAAA;oBACnB,GAAG,EAAE,CAAA;oBACL,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBACjB,CAAC,EAAE,OAAO,CAAC,CAAA;YACZ,CAAC,CAAA;YAED,GAAG,EAAE,CAAA;YAEL,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAE,CAAA;YAC1C,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAE,CAAA;YAErD,MAAM,cAAc,GAAG,IAAI,OAAO,CAAyB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;gBACzE,MAAM,KAAK,GAAG,CAAC,KAAmB,EAAE,SAAwB,IAAI,EAAE,SAAgC,IAAI,EAAE,EAAE;oBACzG,IAAI,CAAE,KAAK,IAAI,OAAO;wBAAE,OAAM;oBAE9B,YAAY,CAAC,KAAK,CAAC,CAAA;oBACnB,KAAK,GAAG,SAAS,CAAA;oBAEjB,MAAM,GAAG,GAAG;wBACX,GAAG;wBACH,MAAM;wBACN,IAAI,MAAM,KAAK,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAC;wBAC/C,IAAI,MAAM,KAAK,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA,CAAC,CAAC;qBACjD,CAAA;oBAED,IAAI,KAAK,IAAI,MAAM,IAAI,YAAY;wBAAE,OAAO,IAAI,CAAE,IAAI,cAAc,CACnE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAC3D,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,EACpD,GAAG,KAAK,CAAC,CAAC,CAAC,CAAE,KAAK,CAAE,CAAC,CAAC,CAAC,EAAE,CACzB,CAAE,CAAA;oBAEH,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;wBACrB,GAAG,UAAU;wBACb,GAAG;qBACH,CAAC,CAAA;oBAEF,IAAI,CAAC,GAAG,CAAC,CAAA;gBACV,CAAC,CAAA;gBAED,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAE,CAAA;gBAC7D,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAE,CAAA;gBACnC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAE,CAAA;YACjE,CAAC,CAAC,CAAA;YAEF,OAAO,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE;oBACvD,YAAY,CAAC,KAAK,CAAC,CAAA;oBACnB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACpB,CAAC,EAAE,CAAC,CAAA;QACL,CAAC;QAED,MAAM,CAAC,aAAa,CAAC,GAA4B;YAChD,OAAO,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,WAAW,CAAA;QACvE,CAAC;KACD;IAjJY,UAAQ,WAiJpB,CAAA;AAEF,CAAC,EAnLS,CAAC,KAAD,CAAC,QAmLV;;;;ACnLD,IAAU,CAAC,CAUV;AAVD,WAAU,CAAC;IAEV,SAAgB,SAAS,CAExB,GAAY,EACZ,OAAgB,EAChB,GAAG,IAAwB;QAE3B,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAE,EAAE,OAAO,EAAE,CAAE,OAAO,EAAE,GAAG,IAAI,CAAE,EAAE,GAAG,EAAE,CAAE,CAAA;IACrE,CAAC;IAPe,WAAS,YAOxB,CAAA;AACF,CAAC,EAVS,CAAC,KAAD,CAAC,QAUV;;;;ACVD,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;IAEV,CAAC,CAAC,gBAAgB,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAE,EAAE,EAAG,EAAE,GAAG,EAAG,oBAAoB,EAAE,CAAE,CAAC,MAAa,CAAA;AAEhG,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;ACJD,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;IAEC,UAAQ,GAAG,gBAAgB,CAAA;AAEvC,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;ACJD,IAAU,CAAC,CAuBV;AAvBD,WAAU,CAAC;IAEV,SAAgB,iBAAiB,CAChC,EAAW,EACX,IAAa;QAGb,MAAM,GAAG,GAAG,gBAAgB,CAAC,QAAQ,CAAA;QACrC,IAAI,CAAC,GAAG;YAAG,OAAO,IAAI,CAAA;QAEtB,MAAM,IAAI,GAAG,qBAAqB,EAAE,EAAE,CAAA;QAEtC,IAAI,EAAE,GAAG,GAAG,CAAC,cAAc,CAAE,IAAI,CAAsB,CAAA;QACvD,IAAI,CAAC,EAAE,EAAG,CAAC;YACV,EAAE,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YAC/B,EAAE,CAAC,EAAE,GAAG,IAAI,CAAA;YACZ,GAAG,CAAC,IAAI,CAAC,WAAW,CAAE,EAAE,CAAE,CAAA;QAC3B,CAAC;QACD,IAAI,EAAE,CAAC,SAAS,IAAI,IAAI;YAAG,EAAE,CAAC,SAAS,GAAG,IAAI,CAAA;QAE9C,OAAO,EAAE,CAAA;IACV,CAAC;IAnBe,mBAAiB,oBAmBhC,CAAA;AAEF,CAAC,EAvBS,CAAC,KAAD,CAAC,QAuBV;;;;ACvBD,IAAU,CAAC,CA0BV;AA1BD,WAAU,CAAC;IACV,MAAa,YAA4B,SAAQ,OAAe;QAC/D,IAAI,CAA+C;QACnD,IAAI,CAAwB;QAE5B,YACC,QAGS;YAET,IAAI,IAAmD,CAAA;YACvD,IAAI,IAA4B,CAAA;YAEhC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACd,IAAI,GAAG,CAAC,CAAA;gBACR,IAAI,GAAG,CAAC,CAAA;gBACR,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACjB,CAAC,CAAC,CAAA;YAEF,IAAI,CAAC,IAAI,GAAG,IAAK,CAAA;YACjB,IAAI,CAAC,IAAI,GAAG,IAAK,CAAA;QAClB,CAAC;KAED;IAvBY,cAAY,eAuBxB,CAAA;AAEF,CAAC,EA1BS,CAAC,KAAD,CAAC,QA0BV;;;;AC1BD,IAAU,CAAC,CAMV;AAND,WAAU,CAAC;IAEV,MAAa,oBAA6B,SAAQ,YAAoB;QACrE,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,sBAAsB,CAAA;;IADxC,sBAAoB,uBAEhC,CAAA;AAEF,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CAkBV;AAlBD,WAAU,CAAC;IAEV,MAAa,UAAU;QAGZ;QADV,YACU,KAAa;YAAb,UAAK,GAAL,KAAK,CAAQ;QACpB,CAAC;QAEJ,MAAM,KAAK,OAAO,EAAE,CAAA,CAAC,CAAC;QACtB,OAAO,KAAK,OAAO,IAAI,CAAC,KAAK,CAAA,CAAC,CAAC;QAC/B,OAAO,KAAK,OAAO,EAAE,CAAA,CAAC,CAAC;QAEvB,QAAQ;YACP,OAAO,GAAI,IAAI,CAAC,MAAM,EAAG,GAAI,IAAI,CAAC,OAAO,EAAG,GAAI,IAAI,CAAC,OAAO,EAAG,EAAE,CAAA;QAClE,CAAC;KAED;IAdY,YAAU,aActB,CAAA;AAEF,CAAC,EAlBS,CAAC,KAAD,CAAC,QAkBV;;;;AClBD,IAAU,CAAC,CAoEV;AApED,WAAU,CAAC;IAoBV,MAAa,eAEX,SAAQ,UAAoB;QAInB;QAFV,YACC,KAAc,EACL,OAAiB;YAE1B,KAAK,CAAE,KAAK,CAAE,CAAA;YAFL,YAAO,GAAP,OAAO,CAAU;QAG3B,CAAC;QAED,OAAO;YACN,OAAO,IAAI,CAAC,OAAO,CAAA;QACpB,CAAC;QAED,MAAM,CAAC,GAAG,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,GAAY,CAAA,CAAC,CAAC;QAC5D,MAAM,CAAC,EAAE,CAAE,KAAc,IAAK,OAAO,GAAI,KAAM,IAAa,CAAA,CAAC,CAAC;QAC9D,MAAM,CAAC,EAAE,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,IAAa,CAAA,CAAC,CAAC;QAC5D,MAAM,CAAC,EAAE,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,IAAa,CAAA,CAAC,CAAC;QAC5D,MAAM,CAAC,CAAC,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,GAAY,CAAA,CAAC,CAAC;QAC1D,MAAM,CAAC,EAAE,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,IAAa,CAAA,CAAC,CAAC;QAC5D,MAAM,CAAC,EAAE,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,IAAa,CAAA,CAAC,CAAC;QAC5D,MAAM,CAAC,EAAE,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,IAAa,CAAA,CAAC,CAAC;QAC5D,MAAM,CAAC,GAAG,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,KAAc,CAAA,CAAC,CAAC;QAC9D,MAAM,CAAC,EAAE,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,IAAa,CAAA,CAAC,CAAC;QAC5D,MAAM,CAAC,EAAE,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,IAAa,CAAA,CAAC,CAAC;QAC5D,MAAM,CAAC,GAAG,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,KAAc,CAAA,CAAC,CAAC;QAC9D,MAAM,CAAC,EAAE,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,IAAa,CAAA,CAAC,CAAC;QAC5D,MAAM,CAAC,EAAE,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,IAAa,CAAA,CAAC,CAAC;QAC5D,MAAM,CAAC,EAAE,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,IAAa,CAAA,CAAC,CAAC;QAC5D,MAAM,CAAC,GAAG,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,KAAc,CAAA,CAAC,CAAC;QAC9D,MAAM,CAAC,EAAE,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,IAAa,CAAA,CAAC,CAAC;QAC5D,MAAM,CAAC,EAAE,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,IAAa,CAAA,CAAC,CAAC;QAC5D,MAAM,CAAC,EAAE,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,IAAa,CAAA,CAAC,CAAC;QAC5D,MAAM,CAAC,EAAE,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,IAAa,CAAA,CAAC,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,MAAe,CAAA,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,MAAe,CAAA,CAAC,CAAC;QAEhE,MAAM,CAAC,GAAG,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,KAAc,CAAA,CAAC,CAAC;QAC9D,MAAM,CAAC,GAAG,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,KAAc,CAAA,CAAC,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,MAAe,CAAA,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,MAAe,CAAA,CAAC,CAAC;QAEhE,MAAM,CAAC,CAAC,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,GAAY,CAAA,CAAC,CAAC;QAC1D,MAAM,CAAC,EAAE,CAAE,KAAc,IAAK,OAAO,GAAG,KAAK,IAAa,CAAA,CAAC,CAAC;KAE5D;IA9CY,iBAAe,kBA8C3B,CAAA;AAEF,CAAC,EApES,CAAC,KAAD,CAAC,QAoEV;;;;ACpED,IAAU,CAAC,CAmMV;AAnMD,WAAU,CAAC;IAiCV,MAAM,EAAE,GAAG,EAAE,GAAG,eAAe,CAAA;IAM/B,MAAa,eAGX,SAAQ,UAAmB;QAGlB;QADV,YACU,IAAW,EACpB,KAAa;YAEb,KAAK,CAAE,KAAK,CAAE,CAAA;YAHL,SAAI,GAAJ,IAAI,CAAO;QAIrB,CAAC;QAED,MAAM,KAAK,OAAO,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA,CAAC,CAAC;QACnC,OAAO,KAAK,OAAO,GAAG,CAAA,CAAC,CAAC;QAExB,MAAM,CAAC,eAAe,CAAW,KAAa;YAC7C,OAAO,IAAI,eAAe,CAAE,iBAAiB,EAAG,KAAK,CAAE,CAAA;QACxD,CAAC;QAED,MAAM,CAAC,eAAe,CAAW,KAAa;YAC7C,OAAO,IAAI,eAAe,CAAE,iBAAiB,EAAG,KAAK,CAAE,CAAA;QACxD,CAAC;QAED,MAAM,CAAC,IAAI,CAAW,KAAa;YAClC,OAAO,IAAI,eAAe,CAAE,MAAM,EAAG,KAAK,CAAE,CAAA;QAC7C,CAAC;QAED,MAAM,CAAC,IAAI,CAA+C,IAAW,EAAE,YAAqB;YAC3F,OAAO,IAAI,eAAe,CAAE,KAAK,EAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAE,CAAA;QACjF,CAAC;QAED,MAAM,CAAC,GAAG,CAAyB,IAAW;YAC7C,OAAO,IAAI,eAAe,CAAE,KAAK,EAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAE,CAAA;QAC7D,CAAC;QAED,MAAM,CAAC,IAAI,CACV,GAAW,EACX,UAAkB,EAClB,SAAiB,EACjB,KAAa;YAEb,OAAO,IAAI,eAAe,CACzB,MAAM,EACN,CAAE,GAAG,EAAG,GAAG,CAAE,UAAU,CAAE,EAAG,GAAG,CAAE,SAAS,CAAE,EAAG,KAAK,CAAE,CACtD,CAAA;QACF,CAAC;QAED,MAAM,CAAC,KAAK,CACX,GAA+B,EAC/B,GAA+B,EAC/B,GAA+B;YAE/B,OAAO,IAAI,eAAe,CACzB,OAAO,EACP,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CACjB,CAAA;QACF,CAAC;QAED,MAAM,CAAC,IAAI,CACV,GAAW,EACX,KAAa,EACb,IAAY,EACZ,KAAa;YAEb,OAAO,IAAI,eAAe,CACzB,MAAM,EACN,CAAE,GAAG,EAAG,KAAK,EAAG,IAAI,EAAG,KAAK,CAAE,CAC9B,CAAA;QACF,CAAC;QAED,MAAM,CAAC,KAAK,CACX,IAAY;YAEZ,OAAO,IAAI,eAAe,CAAE,OAAO,EAAE,CAAE,IAAI,CAAE,CAAE,CAAA;QAChD,CAAC;QAED,MAAM,CAAC,MAAM,CACZ,GAAG,WAAyE;YAE5E,OAAO,IAAI,eAAe,CACzB,QAAQ,EACR,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACrB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBACf,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACZ,GAAG;oBACH,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC3D,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CACZ,CACD,CAAC;QACH,CAAC;QAED,MAAM,CAAC,YAAY,CAClB,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU;YAEV,OAAO,IAAI,eAAe,CAAE,cAAc,EAAE,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,KAAa,EAAE,aAAuF;YAClH,OAAO,IAAI,eAAe,CAAE,OAAO,EAAE,CAAE,KAAK,EAAE,aAAa,CAAE,CAAE,CAAA;QAChE,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,KAAmD;YAC9D,OAAO,IAAI,eAAe,CAAE,MAAM,EAAE,KAAK,IAAI,EAAE,CAAE,CAAC;QACnD,CAAC;QAED,MAAM,CAAC,UAAU,CAAC,KAAyC;YAC1D,OAAO,IAAI,eAAe,CAAE,YAAY,EAAE,KAAK,IAAI,EAAE,CAAE,CAAC;QACzD,CAAC;QAED,MAAM,CAAC,QAAQ,CAAC,KAAyC;YACxD,OAAO,IAAI,eAAe,CAAE,UAAU,EAAE,KAAK,IAAI,EAAE,CAAE,CAAC;QACvD,CAAC;QAED,MAAM,CAAC,WAAW,CACjB,KAAkC,EAClC,QAAqD,EACrD,QAAqD,EACrD,WAAyD;YAEzD,OAAO,IAAI,eAAe,CACzB,aAAa,EACb,WAAW;gBACV,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC;gBAC1C,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAC9B,CAAC;QACH,CAAC;QAED,MAAM,CAAC,SAAS,CAAC,KAAyC;YACzD,OAAO,IAAI,eAAe,CAAE,WAAW,EAAE,KAAK,IAAI,EAAE,CAAE,CAAC;QACxD,CAAC;QAED,MAAM,CAAC,UAAU,CAAC,KAAsD;YACvE,OAAO,IAAI,eAAe,CAAE,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAA;QACvD,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,KAAyC;YACtD,OAAO,IAAI,eAAe,CAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAE,CAAC;QACrD,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,KAAyC;YACvD,OAAO,IAAI,eAAe,CAAE,SAAS,EAAE,KAAK,IAAI,EAAE,CAAE,CAAC;QACtD,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,KAAyC;YACrD,OAAO,IAAI,eAAe,CAAE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAE,CAAC;QACpD,CAAC;QAED,MAAM,CAAC,QAAQ,CAAC,KAAyC;YACxD,OAAO,IAAI,eAAe,CAAE,UAAU,EAAE,KAAK,IAAI,EAAE,CAAE,CAAC;QACvD,CAAC;KAED;IA1JY,iBAAe,kBA0J3B,CAAA;AAEF,CAAC,EAnMS,CAAC,KAAD,CAAC,QAmMV;;;;;;;;;;ACnMD,IAAU,CAAC,CAmBV;AAnBD,WAAU,CAAC;IAGV,SAAgB,eAAe,CAC9B,MAAc,EACd,IAAU;QAGV,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAE,CAAE,GAAG,EAAG,GAAiB,EAAE,EAAE;YAExD,GAAG,CAAE,GAAG,CAAE,GAAG,eAAe,CAAC,IAAI,CAAE,KAAM,MAAO,IAAK,GAAI,EAAE,CAAE,CAAA;YAC7D,OAAO,GAAG,CAAA;QAEX,CAAC,EAAE,EAAsD,CAAE,CAAA;QAE3D,OAAO,MAAM,CAAA;IAEd,CAAC;IAde,iBAAe,kBAc9B,CAAA;AAEF,CAAC,EAnBS,CAAC,KAAD,CAAC,QAmBV;;;;;;;ACnBD,IAAU,CAAC,CA0CV;AA1CD,WAAU,CAAC;IAEG,gBAAc,GAAG,IAAI,OAAO,EAAoB,CAAA;IAE7D,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,CAAE,UAAU,CAAE,CAAA;IAGtD,SAAgB,QAAQ,CAAW,KAAa;QAE/C,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAG,OAAO,KAAK,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAA;QAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAG,OAAO,KAAK,CAAC,WAAY,CAAA;QACzD,IAAI,CAAC,KAAK;YAAG,OAAO,IAAI,CAAC,SAAS,CAAE,KAAK,CAAE,CAAA;QAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU;YAAG,OAAO,IAAI,CAAC,SAAS,CAAE,KAAK,CAAE,CAAA;QAE7F,OAAO,IAAI,CAAC,SAAS,CAAE,KAAK,EAAE,CAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAE/C,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAG,OAAO,KAAK,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAA;YAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAG,OAAO,KAAK,CAAC,WAAW,CAAA;YACxD,IAAI,CAAC,KAAK;gBAAG,OAAO,KAAK,CAAA;YACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU;gBAAG,OAAO,KAAK,CAAA;YAC3E,IAAI,KAAK,CAAC,OAAO,CAAE,KAAK,CAAE;gBAAG,OAAO,KAAK,CAAA;YAEzC,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAE,KAAK,CAAE,CAAA;YAC7C,IAAI,CAAC,KAAK;gBAAG,OAAO,KAAK,CAAA;YACzB,IAAI,OAAO,CAAC,cAAc,CAAE,KAAK,CAAE,KAAK,IAAI;gBAAG,OAAO,KAAK,CAAA;YAE3D,IAAI,QAAQ,IAAI,KAAK;gBAAG,OAAO,KAAK,CAAA;YACpC,IAAI,KAAK,YAAY,MAAM;gBAAG,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAA;YAErD,IAAI,KAAK,YAAY,UAAU;gBAAG,OAAO,CAAE,GAAI,KAAY,CAAE,CAAA;YAE7D,IAAI,GAAG,GAAG,EAAA,cAAc,CAAC,GAAG,CAAE,KAAK,CAAE,CAAA;YACrC,IAAI,GAAG;gBAAG,OAAO,GAAG,CAAA;YAEpB,GAAG,GAAG,SAAS,EAAE,CAAA;YACjB,EAAA,cAAc,CAAC,GAAG,CAAE,KAAK,EAAE,GAAG,CAAE,CAAA;YAEhC,OAAO,GAAG,CAAA;QACX,CAAC,CAAE,CAAA;IAEJ,CAAC;IAjCe,UAAQ,WAiCvB,CAAA;AAEF,CAAC,EA1CS,CAAC,KAAD,CAAC,QA0CV;;;;AC1CD,IAAU,CAAC,CAoBV;AApBD,WAAU,CAAC;IAEV,MAAa,kBAAmB,SAAQ,YAAY;QAK3C;QACA;QAJR,EAAE,CAAM;QAER,YACQ,KAAc,EACd,IAAgB;YAEvB,KAAK,EAAE,CAAA;YAHA,UAAK,GAAL,KAAK,CAAS;YACd,SAAI,GAAJ,IAAI,CAAY;YAGvB,IAAI,CAAC,EAAE,GAAG,UAAU,CAAE,IAAI,EAAG,KAAK,CAAE,CAAA;QACrC,CAAC;QAED,UAAU;YACT,YAAY,CAAE,IAAI,CAAC,EAAE,CAAE,CAAA;QACxB,CAAC;KAED;IAhBY,oBAAkB,qBAgB9B,CAAA;AAEF,CAAC,EApBS,CAAC,KAAD,CAAC,QAoBV;;;;ACpBD,IAAU,CAAC,CAYV;AAZD,WAAU,CAAC;IAEV,MAAa,gBAAiB,SAAQ,kBAAkB;QAG/C;QADR,YACQ,IAAgB;YAEvB,KAAK,CAAE,EAAE,EAAG,IAAI,CAAE,CAAA;YAFX,SAAI,GAAJ,IAAI,CAAY;QAGxB,CAAC;KAED;IARY,kBAAgB,mBAQ5B,CAAA;AAEF,CAAC,EAZS,CAAC,KAAD,CAAC,QAYV;;;;ACZD,IAAU,CAAC,CAsCV;AAtCD,WAAU,CAAC;IAKV,SAAgB,gBAAgB,CAI/B,IAAW,EACX,KAAmB,EACnB,KAA4D;QAG5D,IAAI,CAAC,KAAK;YAAG,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAE,IAAI,EAAG,KAAK,CAAS,CAAA;QAC5E,MAAM,IAAI,GAAG,KAAK,EAAE,KAAM,IAAK,IAAY,CAAE,KAAK,CAAE,CAAA;QAEpD,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAE,IAAI,CAAG,CAAA;QAC3C,IAAI,OAAQ,GAAW,CAAE,KAAK,CAAE,KAAK,UAAU,EAAG,CAAC;YAClD,MAAM,CAAC,cAAc,CAAE,IAAI,EAAG,MAAM,EAAG,EAAE,KAAK,EAAI,GAAW,CAAE,KAAK,CAAE,CAAC,IAAI,EAAE,CAAE,CAAA;QAChF,CAAC;QAED,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;QAC1C,MAAM,KAAK,GAAG,UAAsB,GAAI,IAAU;YACjD,MAAM,KAAK,GAAG,IAAI,CAAE,IAAI,IAAI,IAAW,EAAE,IAAI,CAAE,CAAA;YAC/C,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;QACpB,CAAC,CAAA;QAED,MAAM,CAAC,cAAc,CAAE,KAAK,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAE,CAAA;QAErE,MAAM,CAAC,MAAM,CAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAE,CAAA;QAChC,MAAM,MAAM,GAAG,EAAE,GAAI,KAAK,EAAE,KAAK,EAAE,CAAA;QACnC,OAAO,CAAC,cAAc,CAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAE,CAAA;QAE7C,OAAO,MAAM,CAAA;IAEd,CAAC;IA/Be,kBAAgB,mBA+B/B,CAAA;AAEF,CAAC,EAtCS,CAAC,KAAD,CAAC,QAsCV;;;;;;;;;;ACtCD,IAAU,CAAC,CAuLV;AAvLD,WAAU,CAAC;IAGV,MAAa,cAIX,SAAQ,eAAqC;QAE9C,MAAM,CAAC,IAAI,CAKV,IAAU,EACV,IAA6C;YAG7C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;YAE9B,MAAM,OAAO,GAAG,MAAM,CAAC,wBAAwB,CAAE,IAAI,IAAI,IAAI,EAAE,KAAK,CAAE,EAAE,KAAK,CAAA;YAC7E,IAAI,OAAO;gBAAG,OAAO,OAAO,CAAA;YAE5B,MAAM,MAAM,GAAI,IAAY,EAAE,CAAE,MAAM,CAAC,WAAW,CAAE,IAAI,CAAE,IAAI,YAAY,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAE,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAE,CAAA;YACvH,MAAM,GAAG,GAAG,MAAM,GAAG,CAAE,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAE,CAAA;YAE/C,MAAM,KAAK,GAAG,IAAI,cAAc,CAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAiB,CAAE,CACrE;YAAA,CAAE,IAAW,IAAI,IAAI,CAAE,CAAE,KAAK,CAAE,GAAG,KAAK,CAAA;YAEzC,OAAO,KAAK,CAAA;QACb,CAAC;QAED,MAAM,CAAC,IAAI,CAKV,IAAU,EACV,IAA8C,EAC9C,GAAY;YAGZ,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;YAC9B,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAE,IAAI,IAAI,IAAI,EAAE,KAAK,CAAE,EAAE,KAAK,CAAA;YACxE,MAAM,MAAM,GAAI,IAAY,EAAE,CAAE,MAAM,CAAC,WAAW,CAAE,IAAI,CAAE,IAAI,YAAY,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAE,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAE,CAAA;YACvH,MAAM,OAAO,GAAG,QAAQ,CAAE,GAAG,CAAE,CAAA;YAE/B,IAAI,IAAI,EAAG,CAAC;gBACX,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAE,OAAO,CAAE,CAAA;gBACnC,IAAI,OAAO;oBAAG,OAAO,OAAO,CAAA;YAC7B,CAAC;iBAAM,CAAC;gBACP,IAAI,GAAG,CAAE,IAAW,IAAI,IAAI,CAAE,CAAE,KAAK,CAAE,GAAG,IAAI,GAAG,EAAW,CAAA;YAC7D,CAAC;YAED,MAAM,EAAE,GAAG,MAAM,GAAG,CAAE,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAE,QAAQ,EAAE,GAAG,CAAE,GAAG,GAAG,CAAE,CAAA;YAC1F,MAAM,KAAK,GAAG,IAAI,cAAc,CAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAE,GAAG,CAAiB,CAAE,CAAA;YAC1E,IAAI,CAAC,GAAG,CAAE,OAAO,EAAE,KAAK,CAAE,CAAA;YAE1B,OAAO,KAAK,CAAA;QACb,CAAC;QAED,MAAM,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAqC,CAAA;QAC9D,MAAM,CAAC,OAAO,GAAG,IAA+B,CAAA;QAEhD,MAAM,CAAC,KAAK;YAEX,cAAc,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAE,cAAc,CAAC,KAAK,CAAE,CAAA;YAErE,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,QAAQ,EAAG,CAAC;gBAE7C,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK,EAAG,CAAC;oBAC7C,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;gBACvC,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;oBACpC,IAAI,CAAC,KAAK,EAAE,CAAA;gBACb,CAAC;YAEF,CAAC;QAEF,CAAC;QAED,KAAK;YAEJ,IAAI,CAAC,cAAc,CAAC,OAAO,EAAG,CAAC;gBAC9B,cAAc,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAE,cAAc,CAAC,KAAK,CAAE,CAAA;YACtE,CAAC;YAED,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;QAEpC,CAAC;QAMD,MAAM,CAAE,IAAU;YAGjB,KACC,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,EAC1B,MAAM,GAAG,IAAI,CAAC,QAAQ,EACtB,MAAM,IAAI,CAAC,EACV,CAAC;gBACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,CAAmB,CAAA;gBAChD,IAAI,GAAG,IAAI,GAAG,YAAY,cAAc,EAAG,CAAC;oBAC3C,GAAG,CAAC,UAAU,EAAE,CAAA;gBACjB,CAAC;YACF,CAAC;YAED,OAAO,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAK,EAAE,GAAI,IAAI,CAAE,CAAE,CAAA;QAC1D,CAAC;QAGD,IAAI;YACH,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;QACnB,CAAC;QAED,OAAO;YACN,OAAO,MAAM,CAAC,MAAM,CAAE,CAAE,IAA6B,EAAE,EAAE;gBAExD,IAAI,IAAI,KAAK,SAAS;oBAAG,OAAO,IAAI,CAAC,MAAM,CAAE,CAAE,GAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAS,CAAW,CAAA;gBACtF,IAAI,CAAC,eAAe,CAAC,IAAI;oBAAG,OAAO,IAAI,CAAC,MAAM,EAAW,CAAA;gBAEzD,IAAI,cAAc,EAAE,EAAE,IAAI,EAAG,CAAC;oBAC7B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;gBACnB,CAAC;qBAAM,CAAC;oBACP,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;gBACnB,CAAC;YAEF,CAAC,EAAE,EAAE,IAAI,EAAE,IAA4C,EAAE,CAAE,CAAA;QAC5D,CAAC;QAED,UAAU;YAET,KAAK,CAAC,UAAU,EAAE,CAAA;YAElB,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAG,CAAC;gBAC1B,CAAC;gBAAA,CAAE,IAAI,CAAC,IAAW,IAAI,IAAI,CAAC,IAAI,CAAE,CAAE,IAAI,CAAC,KAAK,EAAE,CAAE,GAAG,IAAI,CAAA;YAC1D,CAAC;iBAAM,CAAC;gBACP,CAAC;gBAAA,CAAE,IAAI,CAAC,IAAW,IAAI,IAAI,CAAC,IAAI,CAAE,CAAE,IAAI,CAAC,KAAK,EAAE,CAAE,CAAC,MAAM,CAAE,QAAQ,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAE,CAAA;YACtF,CAAC;QAEF,CAAC;QAED,GAAG,CAAE,IAAgD;YAEpD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;YAEvB,MAAM,EAAE,IAAI,IAAI,KAAK,IAAI,EAAG,CAAC;gBAE5B,IAAI,CAAC;oBACJ,IAAI,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAE;wBAAG,MAAM,MAAM,CAAA;gBACnD,CAAC;gBAAC,OAAO,KAAU,EAAG,CAAC;oBACtB,aAAa,CAAE,KAAK,CAAE,CAAA;gBACvB,CAAC;gBAED,IAAI,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAE,EAAG,CAAC;oBACtC,IAAI,CAAC,UAAU,EAAE,CAAA;gBAClB,CAAC;gBAED,IAAI,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAE,EAAG,CAAC;oBACtC,IAAI,CAAC;wBACH,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,GAAI,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,CAAA;oBAC1E,CAAC;oBAAC,MAAM,CAAC;wBACR,MAAM,CAAC,cAAc,CAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,KAAK,EAAG,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,EAAE,CAAE,CAAA;oBAClG,CAAC;gBACF,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,SAAS;oBAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAElC,CAAC;YAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;YACjB,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;YAEpC,IAAI,iBAAiB,CAAE,IAAI,CAAE;gBAAG,OAAO,IAAI,CAAA;YAE3C,IAAI,CAAC,aAAa,EAAE,CAAA;YAEpB,OAAO,IAAI,CAAA;QACZ,CAAC;;IArFD;QADE,gBAAgB;gDAgBjB;IAGD;QADE,gBAAgB;8CAGjB;IAhHW,gBAAc,iBAmL1B,CAAA;AACF,CAAC,EAvLS,CAAC,KAAD,CAAC,QAuLV;;;;ACvLD,IAAU,CAAC,CAoDV;AApDD,WAAU,CAAC;IAGV,SAAgB,cAAc,CAC7B,IAAY,EACZ,KAAa,EACb,KAA2D;QAG3D,IAAI,CAAC,KAAK;YAAG,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAE,IAAI,EAAG,KAAK,CAAE,CAAA;QACrE,MAAM,IAAI,GAAG,KAAK,EAAE,KAAM,IAAK,IAAY,CAAE,KAAK,CAAE,CAAA;QAEpD,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAE,IAAI,CAAG,CAAA;QAC3C,IAAI,OAAQ,GAAW,CAAE,KAAK,CAAE,KAAK,UAAU,EAAG,CAAC;YAClD,MAAM,CAAC,cAAc,CAAE,IAAI,EAAG,MAAM,EAAG,EAAE,KAAK,EAAI,GAAW,CAAE,KAAK,CAAE,CAAC,IAAI,EAAE,CAAE,CAAA;QAChF,CAAC;QAED,MAAM,MAAM,GAAG;YACd,GAAI,KAAK;YACT,KAAK,EAAE,UAA6B,GAAI,IAAU;gBAEjD,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;gBAE5C,IAAG,CAAE,IAAI,CAAC,MAAM,KAAK,CAAC,CAAE,IAAE,CAAE,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAE,EAAE,CAAC;oBAErD,IAAI,CAAC,eAAe,CAAC,IAAI;wBAAG,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;oBAEhD,IAAI,cAAc,EAAE,EAAE,IAAI,EAAG,CAAC;wBAC7B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;oBACnB,CAAC;yBAAM,CAAC;wBACP,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;oBACnB,CAAC;gBAEF,CAAC;gBAED,OAAO,IAAI,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;YAC3B,CAAC;SACD,CAAA;QAED,OAAO,CAAC,cAAc,CAAE,MAAM,CAAC,KAAK,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAE,CAAA;QAC7E,OAAO,CAAC,cAAc,CAAE,MAAM,CAAC,KAAK,EAAG,QAAQ,EAAG,EAAE,KAAK,EAAG,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA;QAC3E,MAAM,CAAC,MAAM,CAAE,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAE,CAAA;QAEvC,OAAO,CAAC,cAAc,CAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAE,CAAA;QAE7C,OAAO,MAAsF,CAAA;IAC9F,CAAC;IA3Ce,gBAAc,iBA2C7B,CAAA;AAMF,CAAC,EApDS,CAAC,KAAD,CAAC,QAoDV;;;;ACpDD,IAAU,CAAC,CAgDV;AAhDD,WAAU,CAAC;IAGV,SAAgB,cAAc,CAC7B,IAAY,EACZ,KAAa,EACb,KAA2D;QAG3D,IAAI,CAAC,KAAK;YAAG,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAE,IAAI,EAAG,KAAK,CAAE,CAAA;QACrE,MAAM,IAAI,GAAG,KAAK,EAAE,KAAM,IAAK,IAAY,CAAE,KAAK,CAAE,CAAA;QAEpD,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAE,IAAI,CAAG,CAAA;QAC3C,IAAI,OAAQ,GAAW,CAAE,KAAK,CAAE,KAAK,UAAU,EAAG,CAAC;YAClD,MAAM,CAAC,cAAc,CAAE,IAAI,EAAG,MAAM,EAAG,EAAE,KAAK,EAAI,GAAW,CAAE,KAAK,CAAE,CAAC,IAAI,EAAE,CAAE,CAAA;QAChF,CAAC;QAED,MAAM,MAAM,GAAG;YACd,GAAI,KAAK;YACT,KAAK,EAAE,UAA6B,GAAI,IAAU;gBAEjD,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAE,CAAA;gBAErD,IAAG,CAAE,IAAI,CAAC,MAAM,KAAK,CAAC,CAAE,IAAE,CAAE,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAE,EAAE,CAAC;oBAErD,IAAI,CAAC,eAAe,CAAC,IAAI;wBAAG,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;oBAEhD,IAAI,cAAc,EAAE,EAAE,IAAI,EAAG,CAAC;wBAC7B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;oBACnB,CAAC;yBAAM,CAAC;wBACP,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;oBACnB,CAAC;gBAEF,CAAC;gBAED,OAAO,IAAI,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;YAC3B,CAAC;SACD,CAAA;QAED,OAAO,CAAC,cAAc,CAAE,MAAM,CAAC,KAAK,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAE,CAAA;QAC7E,OAAO,CAAC,cAAc,CAAE,MAAM,CAAC,KAAK,EAAG,QAAQ,EAAG,EAAE,KAAK,EAAG,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA;QAC3E,MAAM,CAAC,MAAM,CAAE,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAE,CAAA;QAEvC,OAAO,CAAC,cAAc,CAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAE,CAAA;QAE7C,OAAO,MAAM,CAAA;IACd,CAAC;IA3Ce,gBAAc,iBA2C7B,CAAA;AAEF,CAAC,EAhDS,CAAC,KAAD,CAAC,QAgDV;;;;AChDD,IAAU,CAAC,CAuBV;AAvBD,WAAU,CAAC;IAWC,UAAQ,GAAG,cAAc,CAAA;IAWzB,cAAY,GAAG,cAAc,CAAA;AACzC,CAAC,EAvBS,CAAC,KAAD,CAAC,QAuBV;;;;ACvBD,IAAU,CAAC,CAMV;AAND,WAAU,CAAC;IAKC,aAAW,GAAG,gBAAgB,CAAA;AAC1C,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CAoGV;AApGD,WAAU,CAAC;IAGV,MAAa,cAAe,SAAQ,WAAW;QA0E1B;QAxEpB,MAAM,CAAC,MAAM,GAAG,EAAE,CAAA;QAClB,MAAM,CAAC,SAAS,GAAG,GAAG,CAAA;QAGf,AAAP,MAAM,CAAC,IAAI,CAAE,IAAc;YAC1B,OAAO,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC,CAAE,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;QACnD,CAAC;QAGM,AAAP,MAAM,CAAC,WAAW;YACjB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACrB,CAAC;QAGM,AAAP,MAAM,CAAC,IAAI,CAAE,IAA4C;YACxD,IAAI,IAAI,KAAK,KAAK,CAAC;gBAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAE,CAAA;YAEzD,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACtB,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAE,GAAG,CAAE,CAAA;YAE9B,IAAI,MAAM,GAAmC,EAAE,CAAA;YAC/C,MAAM,CAAC,OAAO,CACb,KAAK,CAAC,EAAE;gBACP,IAAI,CAAC,KAAK;oBAAG,OAAM;gBACnB,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAE,GAAG,CAAE,CAAC,GAAG,CAAE,kBAAkB,CAAE,CAAA;gBACvD,MAAM,CAAE,IAAI,CAAC,KAAK,EAAG,CAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACzC,CAAC,CACD,CAAA;YAED,OAAO,MAAmC,CAAA;QAC3C,CAAC;QAGM,AAAP,MAAM,CAAC,KAAK,CAAE,GAAY,EAAG,IAAqB;YACjD,IAAI,IAAI,KAAK,KAAK,CAAC;gBAAG,OAAO,IAAI,CAAC,IAAI,EAAE,CAAE,GAAG,CAAE,IAAI,IAAI,CAAA;YACvD,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,EAAE,CAAE,GAAG,CAAE,EAAG,IAAI,EAAE,CAAE,CAAE,CAAA;YAC5C,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,MAAM,CAAC,IAAI,CAAE,IAAoC;YAChD,MAAM,MAAM,GAAmC,EAAE,CAAA;YAEjD,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACtB,KAAK,IAAI,GAAG,IAAI,IAAI,EAAG,CAAC;gBACvB,MAAM,CAAE,GAAG,CAAE,GAAG,IAAI,CAAE,GAAG,CAAE,CAAA;YAC5B,CAAC;YAED,KAAK,IAAI,GAAG,IAAI,IAAI,EAAG,CAAC;gBACvB,MAAM,CAAE,GAAG,CAAE,GAAG,IAAI,CAAE,GAAG,CAAE,CAAA;YAC5B,CAAC;YAED,OAAO,IAAI,CAAC,SAAS,CAAE,MAAM,CAAE,CAAA;QAChC,CAAC;QAED,MAAM,CAAC,SAAS,CAAE,IAAoC;YACrD,MAAM,MAAM,GAAc,EAAE,CAAA;YAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAG,CAAC;gBACzB,IAAI,IAAI,CAAE,GAAG,CAAE,KAAK,IAAI,EAAG,CAAC;oBAC3B,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAE,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;gBACjE,CAAC;YACF,CAAC;YAED,OAAO,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;QAC1B,CAAC;QAGM,AAAP,MAAM,CAAC,EAAE,CAAE,IAA2C;YACrD,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAE,CAAA;QAC/B,CAAC;QAED,MAAM,CAAC,MAAM,KAAI,CAAC;QAElB,YAAoB,SAAS,EAAE;YAC9B,KAAK,EAAE,CAAA;YADY,WAAM,GAAN,MAAM,CAAK;QAE/B,CAAC;QAED,KAAK,CAAE,GAAY,EAAG,IAAc;YACnC,OAAS,IAAI,CAAC,WAAsC,CAAC,KAAK,CAAE,IAAI,CAAC,MAAM,GAAG,GAAG,EAAG,IAAI,CAAE,CAAA;QACvF,CAAC;QAED,GAAG,CAAE,OAAgB;YACpB,OAAO,IAAM,IAAI,CAAC,WAAsC,CAAE,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,GAAG,CAAE,CAAA;QACxF,CAAC;QAED,IAAI,CAAE,IAAoC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;YAC1B,MAAM,IAAI,GAAmC,EAAE,CAAA;YAC/C,KAAK,IAAI,GAAG,IAAI,IAAI,EAAG,CAAC;gBACvB,IAAI,CAAE,MAAM,GAAG,GAAG,CAAE,GAAG,IAAI,CAAE,GAAG,CAAE,CAAA;YACnC,CAAC;YACD,OAAS,IAAI,CAAC,WAAsC,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;QAClE,CAAC;;IAvFM;QADL,QAAQ;oCAGT;IAGM;QADL,QAAQ;2CAGT;IAGM;QADL,QAAQ;oCAiBT;IAGM;QADL,YAAY;qCAKb;IA6BM;QADL,WAAW;kCAGZ;IAtEW,gBAAc,iBA+F1B,CAAA;AAEF,CAAC,EApGS,CAAC,KAAD,CAAC,QAoGV;;;;ACpGD,IAAU,CAAC,CAiBV;AAjBD,WAAU,CAAC;IAEV,MAAa,UAAW,SAAQ,YAAY;QAGpC,AAAP,MAAM,CAAC,KAAK,CAAE,KAAa,EAAE,IAAc;YAE1C,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,IAAI,CAAA;YAEpC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAE,KAAK,CAAE,IAAI,EAAE,CAAA;YAC/D,GAAG,CAAC,QAAQ,GAAG,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAE,CAAA;YAEpD,OAAO,GAAG,CAAC,OAAO,CAAA;QACnB,CAAC;KAED;IAVO;QADL,YAAY;iCASb;IAXW,YAAU,aAatB,CAAA;AAEF,CAAC,EAjBS,CAAC,KAAD,CAAC,QAiBV;;;;ACjBD,IAAU,CAAC,CAiBV;AAjBD,WAAU,CAAC;IAKV,SAAgB,eAAe;QAC9B,IAAI,OAAO,GAAG,cAAc,EAAsC,CAAA;QAClE,IAAI,OAAQ,CAAC,IAAI;YAAG,OAAO,GAAG,OAAQ,CAAC,IAAI,CAAA;QAC3C,IAAI,OAAQ,CAAC,IAAI,KAAK,OAAO,EAAG,CAAC;YAChC,OAAO,EAAE,MAAM,CAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAE,CAAA;QACxC,CAAC;QACD,OAAQ,CAAC,IAAI,GAAG,OAAO,CAAA;IACxB,CAAC;IAPe,iBAAe,kBAO9B,CAAA;IAED,MAAM,OAAO,GAAG,GAAE,EAAE,GAAE,CAAC,CAAA;IACvB,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAA;AAElC,CAAC,EAjBS,CAAC,KAAD,CAAC,QAiBV;;;;ACjBD,IAAU,CAAC,CAEV;AAFD,WAAU,CAAC;IACC,kBAAgB,GAAG,eAAe,CAAA;AAC9C,CAAC,EAFS,CAAC,KAAD,CAAC,QAEV;;;;ACFD,IAAU,CAAC,CAoBV;AApBD,WAAU,CAAC;IAGV,SAAgB,eAAe,CAC9B,IAAiB,EAAE,GAAW;QAG9B,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAA;QAEjC,IAAI,CAAC;YACJ,eAAe,CAAC,IAAI,GAAG,KAAK,CAAA;YAC5B,MAAM,GAAG,GAAG,IAAI,EAAE,CAAA;YAClB,IAAI,GAAG,KAAK,SAAS;gBAAG,OAAO,GAAG,CAAA;YAClC,OAAO,GAAG,CAAA;QACX,CAAC;gBAAS,CAAC;YACV,eAAe,CAAC,IAAI,GAAG,IAAI,CAAA;QAC5B,CAAC;IAEF,CAAC;IAfe,iBAAe,kBAe9B,CAAA;AAEF,CAAC,EApBS,CAAC,KAAD,CAAC,QAoBV;;;;ACpBD,IAAU,CAAC,CAEV;AAFD,WAAU,CAAC;IACC,iBAAe,GAAG,eAAe,CAAA;AAC7C,CAAC,EAFS,CAAC,KAAD,CAAC,QAEV;;;;ACFD,IAAU,CAAC,CA4CV;AA5CD,WAAU,CAAC;IACV,MAAa,YAAa,SAAQ,YAAY;QAGtC,AAAP,MAAM,CAAC,MAAM;YACZ,OAAO,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,OAAO,IAAI;gBACnD,SAAS,EAAE,KAAK,IAAG,EAAE,CAAC,KAAK;gBAC3B,OAAO,EAAE,KAAK,IAAG,EAAE,CAAC,KAAK;gBACzB,QAAQ,EAAE,KAAK,IAAG,EAAE,CAAC,CAAC,EAAE,CAAC;gBACzB,YAAY,EAAE,KAAK,IAAG,EAAE,CAAC,IAAyB;aAChC,CAAA;QACpB,CAAC;QAGM,AAAP,MAAM,CAAC,SAAS,CAAE,IAAc,EAAE,KAAe;YAEhD,gBAAgB,EAAE,CAAA;YAElB,IAAI,KAAK;gBAAG,OAAO,OAAO,CAAE,IAAI,CAAE,CAAA;YAElC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;YAC5B,IAAI,IAAI,IAAI,CAAC,eAAe,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAE,EAAG,CAAC;gBACxD,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAE,MAAM,CAAC,EAAE;oBAE/B,UAAU,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAE,MAAM,EAAE,OAAO,CAAE,EAAE,IAAI,CAAE,CAAA;oBAE1D,IAAI,MAAM;wBAAG,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAA;;wBACjF,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAA;gBAE9E,CAAC,CAAE,CAAA;YACJ,CAAC;YAED,OAAO,IAAI,IAAI,cAAc,CAAE,MAAM,CAAE,CAAC,SAAS,EAAE,CAAA;QACpD,CAAC;QAED,MAAM,CAAC,QAAQ;YACd,OAAO,cAAc,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAE,CAAC,QAAQ,EAAE,CAAA;QACxD,CAAC;QAED,MAAM,CAAC,GAAG;YACT,OAAO,cAAc,CAAE,IAAI,CAAC,MAAM,EAAE,CAAE,CAAC,YAAY,EAAE,CAAA;QACtD,CAAC;KAED;IAvCO;QADL,QAAQ;oCAQT;IAGM;QADL,QAAQ;uCAoBT;IAhCW,cAAY,eA0CxB,CAAA;AACF,CAAC,EA5CS,CAAC,KAAD,CAAC,QA4CV;;;;AC5CD,IAAU,CAAC,CAgEV;AAhED,WAAU,CAAC;IAEV,MAAa,gBAA0B,SAAQ,WAAW;QAEzD,MAAM,CAAC,UAAU,CAAqD;QACtE,MAAM,CAAC,MAAM;YACZ,IAAI,IAAI,CAAC,UAAU,CAAC;gBAAG,OAAO,IAAI,CAAC,UAAU,CAAC,CAAA;YAE9C,KAAK,EAAG,IAAI,CAAC;gBACZ,MAAM,MAAM,GAAG,gBAAgB,CAAC,YAAY,CAAA;gBAC5C,IAAI,CAAC,MAAM;oBAAG,MAAM,KAAK,CAAA;gBAEzB,MAAM,CAAC,OAAO,CAAE,EAAE,EAAG,EAAE,CAAE,CAAA;gBACzB,MAAM,CAAC,UAAU,CAAE,EAAE,CAAE,CAAA;gBACvB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,CAAA;YACjC,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;YACtB,CAAC;YAED,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG;gBACzB,OAAO,CAAE,GAAY;oBACpB,OAAQ,IAAY,CAAE,GAAG,GAAG,GAAG,CAAE,CAAA;gBAClC,CAAC;gBACD,OAAO,CAAE,GAAY,EAAG,KAAc;oBACpC,IAAY,CAAE,GAAG,GAAG,GAAG,CAAE,GAAG,KAAK,CAAA;gBACnC,CAAC;gBACD,UAAU,CAAE,GAAY;oBACtB,IAAY,CAAE,GAAG,GAAG,GAAG,CAAE,GAAG,KAAK,CAAC,CAAA;gBACpC,CAAC;aACD,CAAA;QAEF,CAAC;QAGM,AAAP,MAAM,CAAC,OAAO,CAAE,IAAmB,IAAK,OAAO,IAAI,CAAA,CAAC,CAAC;QAG9C,AAAP,MAAM,CAAC,KAAK,CACX,GAAY,EACZ,IAAoB;YAGpB,IAAI,CAAC,OAAO,EAAE,CAAA;YAEd,IAAI,IAAI,KAAK,KAAK,CAAC;gBAAG,OAAO,IAAI,CAAC,KAAK,CAAE,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAE,GAAG,CAAE,IAAI,MAAM,CAAE,CAAA;YAEjF,IAAI,IAAI,KAAK,IAAI,EAAG,CAAC;gBACpB,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAE,GAAG,CAAE,CAAA;YAChC,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAE,GAAG,EAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAE,CAAA;gBACrD,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;YACtC,CAAC;YAED,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,MAAM,KAAK,OAAO,EAAE,CAAA,CAAC,CAAC;QAEtB,KAAK,CAAE,GAAY,EAAG,IAAa;YAClC,OAAO,gBAAgB,CAAC,KAAK,CAAE,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,EAAG,IAAI,CAAE,CAAA;QAClE,CAAC;KAED;IA5BO;QADL,QAAQ;yCAC2C;IAG9C;QADL,YAAY;uCAkBb;IApDW,kBAAgB,mBA4D5B,CAAA;AAEF,CAAC,EAhES,CAAC,KAAD,CAAC,QAgEV;;;;AChED,IAAU,CAAC,CAaV;AAbD,WAAU,CAAC;IAMV,SAAgB,UAAU,CAAW,KAAa;QACjD,MAAM,MAAM,GAAG,AAAD,CAAmC,GAAG,EAAE,CAAC,KAAK,CAAE,CAAA;QAC9D,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CACnB;QAAC,MAAc,CAAE,MAAM,CAAC,WAAW,CAAE,GAAG,KAAK,CAC7C;QAAC,MAAe,CAAE,oBAAoB,CAAE,GAAG,GAAE,EAAE,CAAC,oBAAoB,CAAE,EAAE,EAAG,OAAO,EAAE,oBAAoB,CAAE,KAAK,CAAE,CAAE,CAAA;QACpH,OAAO,MAAM,CAAA;IACd,CAAC;IANe,YAAU,aAMzB,CAAA;AACF,CAAC,EAbS,CAAC,KAAD,CAAC,QAaV;;;;ACbD,IAAU,CAAC,CAgDV;AAhDD,WAAU,CAAC;IAGV,SAAgB,eAAe,CAAyB,GAAS;QAEhE,IAAI,KAAuC,CAAA;QAC3C,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAE,GAAgC,CAAE,CAAA;QAEtE,OAAO,IAAI,KAAK,CAAE,GAAG,EAAE;YAEtB,GAAG,CAAE,GAAG,EAAE,KAAK;gBAEd,MAAM,GAAG,GAAI,GAAW,CAAE,KAAK,CAAE,CAAA;gBACjC,IAAI,OAAO,GAAG,KAAK,UAAU;oBAAG,OAAO,GAAG,CAAA;gBAE1C,IAAI,KAAuC,CAAA;gBAC3C,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;gBAEzC,OAAO,SAAS,eAAe,CAAc,GAAI,IAAW;oBAC3D,KAAK,EAAE,UAAU,EAAE,CAAA;oBACnB,KAAK,GAAG,IAAI,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;oBACzB,OAAO,KAAK,CAAC,KAAK,EAAE,CAAA;gBACrB,CAAC,CAAA;YAEF,CAAC;YAED,KAAK,CAAE,GAAG,EAAE,IAAI,EAAE,IAAI;gBACrB,KAAK,EAAE,UAAU,EAAE,CAAA;gBACnB,KAAK,GAAG,IAAI,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;gBAC1B,OAAO,KAAK,CAAC,KAAK,EAAE,CAAA;YACrB,CAAC;SAED,CAAuD,CAAA;IAEzD,CAAC;IA/Be,iBAAe,kBA+B9B,CAAA;AAcF,CAAC,EAhDS,CAAC,KAAD,CAAC,QAgDV;;;;AChDD,IAAU,CAAC,CA+BV;AA/BD,WAAU,CAAC;IACV,MAAa,SAAU,SAAQ,WAAW;QAC/B,OAAO,GAAG,IAA4B,CAAA;QAEhD,KAAK,CAAC,IAAI;YACA,IAAI,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;YAC5B,IAAI,UAAU,GAAG,KAAK,CAAA;YACb,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;YACtC,IAAI,CAAE,IAAI;gBAAE,OAAO,IAAI,CAAA;YAEvB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACpC,IAAI,CAAC,UAAU,GAAG,GAAE,EAAE;gBAC9B,UAAU,EAAE,CAAA;gBACZ,UAAU,GAAG,IAAI,CAAA;gBACL,IAAI,EAAE,CAAA;YACV,CAAC,CAAA;YAEV,IAAI,OAAO,CAAA;YAEX,GAAG,CAAC;gBACH,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;gBACtB,MAAM,OAAO,CAAA;gBACb,IAAI,UAAU;oBAAE,OAAO,IAAI,CAAA;YAC5B,CAAC,QAAQ,OAAO,KAAK,IAAI,CAAC,OAAO,EAAC;YAElC,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA,CAAC,CAAC,CAAC,CAAA;YACnD,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,IAAI,KAAK,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA,CAAC,CAAC;KAC7C;IA7BY,WAAS,YA6BrB,CAAA;AACF,CAAC,EA/BS,CAAC,KAAD,CAAC,QA+BV;;;;AC/BD,IAAU,CAAC,CAWV;AAXD,WAAU,CAAC;IACP,SAAgB,kBAAkB,CAAmC,CAAQ,EAAE,CAAQ;QACzF,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QACxB,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAA;QACvE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAA;QAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;YAChC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAA;QAEhC,OAAO,IAAI,CAAA;IACZ,CAAC;IATkB,oBAAkB,qBASpC,CAAA;AACF,CAAC,EAXS,CAAC,KAAD,CAAC,QAWV;;;;;;;ACXD,IAAU,CAAC,CAeV;AAfD,WAAU,CAAC;IAEV,MAAM,QAAQ,GAAG,EAAwD,CAAA;IAEzE,SAAgB,mBAAmB,CAClC,MAA+B,EAC/B,WAAkC,MAAM;QAGxC,IAAI,OAAO,GAAG,QAAQ,CAAE,QAAQ,CAAE,CAAA;QAClC,IAAI,CAAC,OAAO;YAAG,OAAO,GAAG,QAAQ,CAAE,QAAQ,CAAE,GAAG,IAAI,WAAW,CAAE,QAAQ,CAAE,CAAA;QAE3E,OAAO,OAAO,CAAC,MAAM,CAAE,MAAM,CAAE,CAAA;IAChC,CAAC;IATe,qBAAmB,sBASlC,CAAA;AAEF,CAAC,EAfS,CAAC,KAAD,CAAC,QAeV;;;;ACfD,IAAU,CAAC,CAiDV;AAjDD,WAAU,CAAC;IAEV,IAAI,GAAG,GAAG,IAAI,UAAU,CAAE,CAAC,IAAE,EAAE,CAAE,CAAA;IAEjC,SAAgB,mBAAmB,CAAE,GAAW;QAC/C,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;QAC/B,IAAI,GAAG,CAAC,UAAU,GAAG,QAAQ;YAAG,GAAG,GAAG,IAAI,UAAU,CAAE,QAAQ,CAAE,CAAA;QAChE,OAAO,GAAG,CAAC,KAAK,CAAE,CAAC,EAAE,sBAAsB,CAAE,GAAG,EAAE,GAAG,CAAE,CAAE,CAAA;IAC1D,CAAC;IAJe,qBAAmB,sBAIlC,CAAA;IAED,SAAgB,sBAAsB,CAAE,GAAW,EAAE,GAA8B,EAAE,IAAI,GAAG,CAAC;QAE5F,IAAI,GAAG,GAAG,IAAI,CAAA;QAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAG,CAAC;YAEtC,IAAI,IAAI,GAAG,GAAG,CAAC,UAAU,CAAE,CAAC,CAAE,CAAA;YAE9B,IAAI,IAAI,GAAG,IAAI,EAAG,CAAC;gBAElB,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,CAAA;YAErB,CAAC;iBAAM,IAAI,IAAI,GAAG,KAAK,EAAG,CAAC;gBAE1B,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,IAAI,IAAI,CAAC,CAAE,CAAA;gBACpC,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,IAAI,GAAG,IAAI,CAAE,CAAA;YAEvC,CAAC;iBAAM,IAAI,IAAI,GAAG,MAAM,IAAI,IAAI,IAAI,MAAM,EAAG,CAAC;gBAE7C,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,IAAI,IAAI,EAAE,CAAE,CAAA;gBACrC,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,CAAE,IAAI,IAAI,CAAC,CAAE,GAAG,IAAI,CAAE,CAAA;gBAC/C,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,IAAI,GAAG,IAAI,CAAE,CAAA;YAEvC,CAAC;iBAAM,CAAC;gBAEP,MAAM,KAAK,GAAG,CAAE,CAAE,IAAI,GAAG,MAAM,CAAE,IAAI,EAAE,CAAE,GAAG,GAAG,CAAC,UAAU,CAAE,EAAG,CAAC,CAAE,GAAG,MAAM,CAAA;gBAE3E,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,KAAK,IAAI,EAAE,CAAE,CAAA;gBACtC,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,CAAE,KAAK,IAAI,EAAE,CAAE,GAAG,IAAI,CAAE,CAAA;gBACjD,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,CAAE,KAAK,IAAI,CAAC,CAAE,GAAG,IAAI,CAAE,CAAA;gBAChD,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,KAAK,GAAG,IAAI,CAAE,CAAA;YAExC,CAAC;QAEF,CAAC;QAED,OAAO,GAAG,GAAG,IAAI,CAAA;IAClB,CAAC;IArCe,wBAAsB,yBAqCrC,CAAA;AAEF,CAAC,EAjDS,CAAC,KAAD,CAAC,QAiDV;;;;ACjDD,IAAU,CAAC,CAkCV;AAlCD,WAAU,CAAC;IAOV,MAAa,qBAAsB,SAAQ,WAAW;QACrD,IAAI,KAAK,OAAO,EAAE,CAAA,CAAC,CAAC;QAEpB,KAAK,KAAK,OAAO,EAA2C,CAAA,CAAC,CAAC;QAE9D,KAAK,CAAC,OAKL;YACA,OAAO,CAAC,CAAA;QACT,CAAC;QAED,IAAI;YACH,OAAO,IAAI,UAAU,EAAE,CAAA;QACxB,CAAC;QAED,QAAQ,CAAC,IAAY,IAAG,CAAC;QAEzB,KAAK,KAAI,CAAC;QAED,UAAU;YAClB,IAAI,CAAC,KAAK,EAAE,CAAA;QACb,CAAC;KAED;IA1BY,uBAAqB,wBA0BjC,CAAA;AACF,CAAC,EAlCS,CAAC,KAAD,CAAC,QAkCV;;;;AClCD,IAAU,CAAC,CA4DV;AA5DD,WAAU,CAAC;IACV,IAAK,UAYJ;IAZD,WAAK,UAAU;QAEd,kCAAS,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,YAAA,CAAA;QAEnC,2CAAkB,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,qBAAA,CAAA;QAE5C,uCAAc,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,iBAAA,CAAA;QACvC,qCAAY,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,eAAA,CAAA;QACvC,sCAAa,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,gBAAA,CAAA;QACxC,sCAAa,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,gBAAA,CAAA;QAEtC,kCAAS,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,YAAA,CAAA;IACrC,CAAC,EAZI,UAAU,KAAV,UAAU,QAYd;IAED,SAAS,SAAS,CAAC,KAA4C;QAC9D,OAAO,KAAK,CAAC,MAAM,CAAE,CAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,UAAU,CAAE,IAAI,CAAE,EAAE,CAAC,CAAE,CAAA;IACnE,CAAC;IAED,MAAa,0BAA2B,SAAQ,qBAAqB;QAE1D,KAAK;YACd,eAAe,EAAE,CAAA;YACjB,OAAO,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAE,CAAA;QAChE,CAAC;QAEQ,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,EAK3D;YACA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,OAAO,KAAK,CAAC,EAAE,CAAC,UAAU,CAAE,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,IAAI,SAAS,CAAC,CAAA;YACzE,CAAC;YAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAChC,OAAO,KAAK,CAAC,EAAE,CAAC,SAAS,CAAE,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAE,CAAA;YAC5D,CAAC;YAED,MAAM,GAAG,MAAM,IAAK,MAA0B,CAAC,UAAU,CAAA;YAEzD,OAAO,KAAK,CAAC,EAAE,CAAC,SAAS,CAAE,IAAI,CAAC,KAAK,EAAE,EAAE,MAAgC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAE,CAAA;QACtG,CAAC;QAEQ,QAAQ,CAAC,IAAY;YAC7B,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;QACrC,CAAC;QAEQ,IAAI;YACZ,OAAO,+BAA+B,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAA0B,CAAC,CAAA;QACrG,CAAC;QAEQ,KAAK;YACb,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;QACjC,CAAC;KAED;IApCU;QADR,QAAQ;2DAIT;IALW,4BAA0B,6BAsCtC,CAAA;IAED,CAAC,CAAC,qBAAqB,GAAG,0BAA0B,CAAA;AACrD,CAAC,EA5DS,CAAC,KAAD,CAAC,QA4DV;;;;AC5DD,IAAU,CAAC,CAwaV;AAxaD,WAAU,CAAC;IAEV,MAAa,cAAe,SAAQ,WAAW;QAGvC,AAAP,MAAM,CAAC,QAAQ,CAAiD,IAAa;YAC5E,OAAO,IAAI,CAAC,IAAI,CAAwB;gBACvC,IAAI,EAAG,UAAU,CAAE,IAAI,CAAE;aACzB,CAAyB,CAAA;QAC3B,CAAC;QAED,MAAM,CAAC,QAAQ,CAAiD,IAAa;YAC5E,MAAM,IAAI,KAAK,CAAE,qBAAqB,CAAE,CAAA;QACzC,CAAC;QAED,MAAM,CAAC,IAAI,GAAG,EAAE,CAAA;QAEhB,IAAI;YACH,OAAO,GAAG,CAAA;QACX,CAAC;QAED,MAAM;YACL,OAAO,IAAI,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;QAC5B,CAAC;QAGD,UAAU,KAAK,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA,CAAC,CAAC;QAE3B,IAAI;YACb,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,MAAM,IAAI,GAAI,IAAI,CAAC,WAAqC,CAAC,IAAI,CAAA;YAG7D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAA;QACtD,CAAC;QAGS,IAAI,CAAC,IAA6B,EAAE,IAAa;YAE1D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;YAI5B,IAAK,CAAE,IAAI,CAAC,IAAI,EAAE,EAAG,CAAC;gBAWrB,MAAM,CAAC,OAAO,EAAE,CAAA;YACjB,CAAC;YACD,MAAM,CAAC,OAAO,EAAE,CAAA;YAEhB,IAAI,IAAI;gBAAG,OAAO,IAAI,IAAI,IAAI,CAAA;YAE9B,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC/B,CAAC;QAES,MAAM,CAAC,OAAO,GAAG,IAAI,GAAmB,CAAA;QAExC,MAAM,CAAC,KAAK,GAAG,IAAiC,CAAA;QAEhD,MAAM,CAAC,WAAW,CAAC,IAAyB,EAAE,IAAY;YACnE,IAAI,iBAAiB,CAAC,IAAI,CAAE,IAAI,CAAE;gBAAE,OAAM;YAE1C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAE,CAAA;YAU5E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAEtB,IAAI,CAAE,IAAI,CAAC,QAAQ;gBAAE,OAAM;YAK3B,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,CAAA;YACxB,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE;gBACtE,IAAI,CAAE,IAAI,CAAC,QAAQ;oBAAE,OAAM;gBAC3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;gBACrB,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAA;YAC9B,CAAC,CAAE,CAAA;QACJ,CAAC;QAMD,MAAM,CAAC,cAAc,KAAK,OAAO,GAAG,CAAA,CAAC,CAAC;QAG/B,AAAP,MAAM,CAAC,KAAK;YAMX,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;gBAE5B,IAAI,CAAC;oBACJ,IAAK,eAAe,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;wBAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;oBAC3D,IAAI,CAAC,KAAK,EAAE,CAAA;gBACb,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,IAAI,eAAe,CAAC,KAAK,CAAC;wBAAE,aAAa,CAAC,KAAK,CAAC,CAAA;gBACjD,CAAC;YACF,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;YACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QAItB,CAAC;QAEU,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAA;QAEtB,MAAM,CAAC,IAAI,GAAG,IAAI,SAAS,CAAA;QAGpB,AAAP,MAAM,CAAC,SAAS,CAAC,IAAY;YACtC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;YAErB,IAAI,CAAC,KAAK,EAAE,CAAA;YACZ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;YAarB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QACtC,CAAC;QAID,MAAM,CAAC,SAAS,CAAS,WAAyB,EAAE,YAAoB;YAEvE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;YAC/B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;YAE5B,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,WAAW,EAAE,CAAA;gBAC5B,IAAI,CAAC,KAAK,EAAE,CAAA;gBACZ,MAAM,EAAE,CAAA;gBACR,OAAO,MAAM,CAAA;YACd,CAAC;YAAC,OAAM,CAAC,EAAE,CAAC;gBACX,IAAI,CAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5B,IAAI,CAAC,KAAK,EAAE,CAAA;oBACZ,MAAM,EAAE,CAAA;gBACT,CAAC;gBACD,gBAAgB,CAAC,CAAC,CAAC,CAAA;YACpB,CAAC;QACF,CAAC;QAED,KAAK;YACJ,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;QAClB,CAAC;QAGD,QAAQ,KAAK,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,IAAI,IAAI,CAAA,CAAC,CAAC;QAGhD,OAAO;YACN,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAE,EAAE,CAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAA;YAE5E,OAAO,IAAI,CAAA;QACZ,CAAC;QAES,IAAI,CAAE,IAAY,IAAK,OAAO,IAA6B,CAAA,CAAC,CAAC;QAC7D,MAAM,KAAI,CAAC;QACX,IAAI,KAAI,CAAC;QACT,IAAI,CAAC,EAAU,IAAG,CAAC;QACnB,IAAI,KAA8B,OAAO,IAAI,UAAU,CAAA,CAAC,CAAC;QACzD,KAAK,CAAC,MAA+B,IAAI,CAAC;QAC1C,IAAI;YACb,OAAO,EAAqB,CAAA;QAC7B,CAAC;QAGD,QAAQ,CAAC,IAAsC;YAC9C,OAAO,IAAI,cAAuC,CAAA;QACnD,CAAC;QAGD,QAAQ,CAAC,IAAwB;YAChC,OAAO,IAAI,cAAuC,CAAA;QACnD,CAAC;QAKD,MAAM,CAAE,IAA+B;YAGtC,IAAI,MAAM,GAA4B,IAAI,UAAU,EAAE,CAAA;YAEtD,IAAI,IAAI,KAAK,SAAS,EAAG,CAAC;gBAEzB,IAAK,IAAI,CAAC,OAAO,EAAE;oBAAG,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAC3C,CAAC;YAED,MAAM,IAAI,GAAG,eAAe,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA;YAClD,MAAM,OAAO,GAAG,IAAI,KAAK,SAAS,IAAI,CAAE,kBAAkB,CAAE,IAAI,EAAE,IAAI,IAAI,MAAM,CAAC,CAAA;YAEjF,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,EAAG,CAAC;gBAEpC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;oBACrB,KAAK,EAAE,yBAAyB;oBAChC,OAAO,EAAE,SAAS;oBAClB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;iBACnB,CAAC,CAAA;YACH,CAAC;YAED,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;YAStD,IAAI,CAAE,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE;gBAAE,OAAO,IAAI,CAAA;YAE3C,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;YAC5B,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAE,CAAA;YAEhD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAEhB,OAAO,IAAI,CAAA;QAEZ,CAAC;QAGD,SAAS,CAAC,IAAY;YACrB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;YACtB,OAAO;gBACN,IAAI,EAAE,MAAM;gBACZ,IAAI;gBACJ,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,GAAG;aACD,CAAA;QACX,CAAC;QAGD,KAAK,CAAC,EAAU;YACf,IAAI,CAAE,IAAI,CAAC,MAAM,EAAE;gBAAG,OAAO,IAAI,CAAA;YAEjC,MAAM,MAAM,GAAI,IAAI,CAAC,WAAqC,CAAC,QAAQ,CAAC,EAAE,CAAS,CAAA;YAE/E,IAAI,CAAC;gBACJ,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAC5B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBACb,MAAM,CAAC,KAAK,EAAE,CAAA;gBACd,OAAO,MAAM,CAAA;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAK,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBACrB,CAAC;YACF,CAAC;YACD,OAAO,IAAI,CAAA;QACZ,CAAC;QAKD,OAAO;YAON,OAAO;gBACN,UAAU,KAAI,CAAC;aACf,CAAA;QACF,CAAC;QAGD,MAAM,CAAE,IAAe;YAEtB,MAAM,MAAM,GAAG,OAAO,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;YAGrC,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,MAAM,CAAA;YACtC,IAAI,IAAI,KAAK,MAAM;gBAAG,OAAO,MAAM,CAAA;YAEnC,IAAI,IAAI,EAAG,CAAC;gBACX,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;gBAC5B,IAAI,CAAC,MAAM,EAAE,CAAA;YACd,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,IAAI,EAAE,CAAA;YACZ,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,CAAA;YAEZ,OAAO,IAAI,CAAA;QACZ,CAAC;QAGD,IAAI;YACH,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI,EAAE,CAAA;QAC/B,CAAC;QAED,IAAI;YACH,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAE,OAAO,EAAE,EAAE,CAAE,CAAA;QAC1C,CAAC;QAED,GAAG;YACF,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;YACjD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAE,CAAC,CAAE,CAAC,SAAS,CAAE,CAAC,CAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAC9C,CAAC;QAED,IAAI,CAAC,IAAa,EAAE,IAAa;YAKhC,IAAI,IAAI,KAAK,SAAS;gBAAE,IAAI,CAAC,MAAM,EAAE,CAAA;YACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACjC,CAAC;QAGD,QAAQ,CAAC,IAAa,EAAE,IAAa;YACpC,IAAI,IAAI,EAAG,CAAC;gBACX,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAE,CAAA;gBACtC,OAAO,IAAK,CAAA;YACb,CAAC;YAED,IAAI,IAAI,KAAK,SAAS,EAAG,CAAC;gBACzB,OAAO,mBAAmB,CAAE,IAAI,CAAC,MAAM,EAAG,CAAE,CAAA;YAC7C,CAAC;iBAAM,CAAC;gBACP,MAAM,MAAM,GAAG,mBAAmB,CAAE,IAAI,CAAE,CAAA;gBAC1C,IAAI,CAAC,MAAM,CAAE,MAAM,CAAE,CAAA;gBACrB,OAAO,IAAI,CAAA;YACZ,CAAC;QACF,CAAC;QAGD,GAAG,CAAC,KAAY;YACf,IAAI,CAAE,IAAI,CAAC,MAAM,EAAE;gBAAG,OAAO,EAAE,CAAA;YAC/B,IAAK,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK;gBAAE,OAAO,EAAE,CAAA;YAErC,IAAI,CAAC,OAAO,EAAE,CAAA;YAGd,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QACjD,CAAC;QAED,OAAO,CAAC,IAAY;YACnB,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAA;QAC7B,CAAC;QAED,MAAM,CAAE,OAAS,IAAI,CAAC,WAAsC,CAAC,QAAQ,CAAE,GAAG,CAAE;YAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACxE,CAAC;QAED,IAAI,CACH,OAAiB,EACjB,OAAiB;YAEjB,MAAM,KAAK,GAAG,EAAmB,CAAA;YACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAEtB,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;gBACzB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;gBAE/B,IAAI,OAAO,IAAI,UAAU,CAAC,KAAK,CAAE,OAAO,CAAE;oBAAG,SAAQ;gBAErD,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC,KAAK,CAAE,OAAO,CAAE;oBAAG,KAAK,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;gBAEjE,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,KAAK,EAAG,CAAC;oBAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAE,OAAO,EAAG,OAAO,CAAE,CAAA;oBACjD,KAAK,MAAM,KAAK,IAAI,SAAS;wBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACjD,CAAC;YACF,CAAC;YAED,OAAO,KAAK,CAAA;QACb,CAAC;QAGD,IAAI;YACH,QAAQ,IAAI,CAAC,IAAI,EAAE,EAAG,CAAC;gBACtB,KAAK,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC,CAAA;gBAC1C,OAAO,CAAC,CAAC,OAAO,CAAC,CAAA;YAClB,CAAC;QACF,CAAC;QAED,MAAM;YACL,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;QACnB,CAAC;QAGD,IAAI,CAAE,GAAI,KAA4C;YACrD,OAAO,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC;gBACxC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE;gBACvB,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK;aAClB,CAAC,CAAA;QACH,CAAC;;IA3YD;QADE,WAAW;oDACwB;IAW3B;QADR,QAAQ;8CA0BT;IAoHD;QADE,QAAQ;kDACsC;IAGhD;QADE,QAAQ;iDAKT;IAaD;QADE,YAAY;kDAGb;IAGD;QADE,YAAY;kDAGb;IAKD;QADE,QAAQ;gDAyCT;IAGD;QADE,WAAW;mDAUZ;IAGD;QADE,YAAY;+CAkBb;IAkBD;QADE,QAAQ;gDAmBT;IAGD;QADE,QAAQ;8CAGT;IAqBD;QADE,QAAQ;kDAcT;IAGD;QADE,QAAQ;6CAST;IAoCD;QADE,QAAQ;8CAMT;IAOD;QADE,WAAW;8CAMZ;IAhaM;QADL,YAAY;wCAKb;IA8FM;QADL,WAAW;qCAuBb;IAOiB;QADf,WAAW;yCAmBZ;IApJW,gBAAc,iBAoa1B,CAAA;AAEF,CAAC,EAxaS,CAAC,KAAD,CAAC,QAwaV;;;;ACxaD,IAAU,CAAC,CAcV;AAdD,WAAU,CAAC;IAYV,MAAa,SAAU,SAAQ,cAAc;KAAG;IAAnC,WAAS,YAA0B,CAAA;AAEjD,CAAC,EAdS,CAAC,KAAD,CAAC,QAcV;;;;ACdD,IAAU,CAAC,CAsNV;AAtND,WAAU,CAAC;IAEV,SAAS,YAAY,CAAC,IAA0C;QAE/D,IAAI,CAAC,IAAI;YAAG,OAAO,IAAI,CAAA;QAEvB,IAAI,IAAgC,CAAA;QACpC,IAAI,IAAI,CAAC,WAAW,EAAE;YAAE,IAAI,GAAG,KAAK,CAAA;QACpC,IAAI,IAAI,CAAC,MAAM,EAAE;YAAE,IAAI,GAAG,MAAM,CAAA;QAChC,IAAI,IAAI,CAAC,cAAc,EAAE;YAAE,IAAI,GAAG,MAAM,CAAA;QAExC,IAAI,CAAE,IAAI;YAAE,OAAO,SAAS,CAAE,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAE,CAAA;QAElE,OAAO;YACN,IAAI;YACJ,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;SACjB,CAAA;IACF,CAAC;IAED,SAAgB,+BAA+B,CAAC,GAA0B;QACzE,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;IAClE,CAAC;IAFe,iCAA+B,kCAE9C,CAAA;IAED,MAAa,cAAe,SAAQ,SAAS;QAE5C,MAAM,CAAC,QAAQ,CAA4C,IAAa;YACvE,OAAO,IAAI,CAAC,QAAQ,CAAQ,KAAK,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAE,CAAC,OAAO,CAAE,KAAK,EAAG,GAAG,CAAE,CAAE,CAAA;QAC3F,CAAC;QAGQ,OAAO,CAAC,KAAY;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAKxB,IAAI,CAAE,IAAI,IAAI,CAAE,IAAI,CAAC,MAAM,EAAE;gBAAG,OAAO,KAAK,CAAC,OAAO,EAAE,CAAA;YAEtD,IAAI,OAAO,CAAA;YAEX,IAAI,CAAC;gBAEJ,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAE,IAAI,CAAE,CAAA;YACjC,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACrB,IAAK,CAAE,CAAC,KAAK,YAAY,KAAK,CAAC;oBAAG,KAAK,GAAG,IAAI,KAAK,CAAC,qBAAqB,EAAG,EAAC,KAAK,EAAE,KAAK,EAAC,CAAC,CAAA;gBAC3F,KAAK,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAA;gBAE5B,IAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAG,CAAC;oBACvC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;gBAC5B,CAAC;gBAKD,OAAO,KAAK,CAAC,OAAO,EAAE,CAAA;YACvB,CAAC;YAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAyB,EAAE,IAAI,EAAE,EAAE;gBACxD,IAAI,CAAE,IAAI;oBAAE,OAAM;gBAClB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAE,CAC3D;gBAAC,IAAI,CAAC,WAAqC,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACrE,CAAC,CAAC,CAAA;YAEF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAE,CAAA;YAElD,IAAI,UAAU,GAAG,KAAK,CAAA;YAEtB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAExB,IAAI,CAAE,UAAU;oBAAE,UAAU,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;YAC7E,CAAC,CAAC,CAAA;YAEF,OAAO;gBACN,UAAU;oBACT,UAAU,GAAG,IAAI,CAAA;oBACjB,OAAO,CAAC,KAAK,EAAE,CAAA;gBAChB,CAAC;aACD,CAAA;QACF,CAAC;QAGkB,IAAI,CAAE,IAAY;YACpC,IAAI,CAAC;gBACJ,OAAO,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;YAC7C,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBACtB,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;oBACnC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;wBAAE,OAAO,IAAI,CAAA;oBACxC,KAAK,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAA;oBAC5B,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;gBAC/B,CAAC;YACF,CAAC;YACD,OAAO,IAAI,CAAA;QACZ,CAAC;QAGkB,MAAM;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,IAAI,CAAC;gBACJ,KAAK,CAAC,EAAE,CAAC,SAAS,CAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAE,CAAA;gBAC/C,OAAO,IAAI,CAAA;YACZ,CAAC;YAAC,OAAO,CAAM,EAAG,CAAC;gBAClB,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/B,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;wBAAE,OAAO,IAAI,CAAA;oBACpC,CAAC,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAA;oBACxB,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;gBAC3B,CAAC;YACF,CAAC;QAEF,CAAC;QAGkB,IAAI,CAAC,EAAU;YACjC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;QACvC,CAAC;QAGkB,IAAI;YACtB,KAAK,CAAC,EAAE,CAAC,UAAU,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;QACnC,CAAC;QAGkB,IAAI;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAExB,IAAI,CAAC;gBACJ,OAAO,+BAA+B,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAE,IAAI,CAA2B,CAAC,CAAA;YAC/F,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBACtB,IAAI,CAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;oBAChC,KAAK,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAA;gBAC7B,CAAC;gBAED,gBAAgB,CAAE,KAAK,CAAE,CAAA;YAC1B,CAAC;QACF,CAAC;QAGkB,KAAK,CAAC,MAAiC;YACzD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAExB,IAAI,CAAC;gBAEJ,KAAK,CAAC,EAAE,CAAC,aAAa,CAAE,IAAI,EAAE,MAAM,CAAE,CAAA;YAEvC,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBACtB,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;oBACnC,KAAK,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAA;gBAC7B,CAAC;gBACD,OAAO,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAE,KAAK,CAAE,CAAA;YACxC,CAAC;QAEF,CAAC;QAEkB,IAAI;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAExB,IAAI,CAAC;gBACJ,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,WAAW,CAAE,IAAI,CAAE;qBACvC,MAAM,CAAE,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAE,IAAI,CAAE,CAAE;qBACvC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAE,CAAE,CAAA;gBAErC,OAAO,IAAI,CAAA;YACZ,CAAC;YAAC,OAAO,CAAM,EAAG,CAAC;gBAClB,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/B,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;wBAAE,OAAO,EAAE,CAAA;oBAClC,CAAC,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAA;gBACzB,CAAC;gBACD,gBAAgB,CAAC,CAAC,CAAC,CAAA;YACpB,CAAC;QACF,CAAC;QAEQ,OAAO,CAAE,IAAa;YAC9B,OAAS,IAAI,CAAC,WAAiC;iBAC7C,QAAQ,CAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,EAAG,IAAI,CAAE,CAAU,CAAA;QAC5D,CAAC;QAEQ,MAAM,CAAE,OAAS,IAAI,CAAC,WAAiC,CAAC,QAAQ,CAAE,GAAG,CAAE;YAC/E,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAC,IAAI,EAAE,EAAG,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,OAAO,CAAE,KAAK,EAAG,GAAG,CAAE,CAAA;QAC/E,CAAC;QAGQ,QAAQ,CAAC,IAAsC;YACvD,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,aAAa,CAA4B,CAAA;YACpE,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;gBACrD,KAAK,EAAE,GAAG;gBACV,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,IAAI,EAAE,KAAK;gBAClB,GAAG,EAAE,IAAI,EAAE,GAAG;gBACd,QAAQ,EAAE,QAAQ;aAClB,CAAC,CAAA;YAEF,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,CAA4C,CAAA;QACzE,CAAC;QAGQ,QAAQ,CAAC,IAAyB;YAC1C,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,aAAa,CAA4B,CAAA;YACpE,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;gBACtD,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,IAAI,EAAE,KAAK;gBAClB,QAAQ,EAAE,QAAQ;aAClB,CAAC,CAAA;YAEF,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,CAA4C,CAAA;QACzE,CAAC;KAED;IAjLS;QADP,QAAQ;iDAkDT;IAGkB;QADjB,WAAW;8CAYZ;IAGkB;QADjB,WAAW;gDAcZ;IAGkB;QADjB,WAAW;8CAGZ;IAGkB;QADjB,WAAW;8CAGZ;IAGkB;QADjB,WAAW;8CAaZ;IAGkB;QADjB,WAAW;+CAeZ;IA8BQ;QADP,YAAY;kDAYb;IAGQ;QADP,QAAQ;kDAWT;IAtLW,gBAAc,iBAwL1B,CAAA;IAGD,CAAC,CAAC,SAAS,GAAG,cAAc,CAAA;AAC7B,CAAC,EAtNS,CAAC,KAAD,CAAC,QAsNV;;;;ACtND,IAAU,CAAC,CA6BV;AA7BD,WAAU,CAAC;IACV,MAAa,qBAA+B,SAAQ,gBAAyB;QAGrE,AAAP,MAAM,CAAC,GAAG;YACT,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,eAAe,CAAE,CAAA;YAClF,OAAO,SAAS,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAC,OAAO,CAAE,mBAAmB,CAAE,CAAA;QACjE,CAAC;QAGM,AAAP,MAAM,CAAC,KAAK,CACX,GAAY,EACZ,IAAoB;YAGpB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAE,kBAAkB,CAAE,GAAG,CAAE,GAAG,OAAO,CAAE,CAAA;YAEtE,IAAI,IAAI,KAAK,IAAI,EAAG,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAE,KAAK,CAAE,CAAA;gBACpB,OAAO,IAAI,CAAA;YACZ,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;YACnE,OAAO,IAAI,CAAC,KAAK,CAAE,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,IAAI,MAAM,CAAE,CAAA;QAEhD,CAAC;KAED;IAvBO;QADL,QAAQ;0CAIT;IAGM;QADL,YAAY;4CAgBb;IAxBW,uBAAqB,wBA0BjC,CAAA;IACD,CAAC,CAAC,gBAAgB,GAAG,qBAAqB,CAAA;AAC3C,CAAC,EA7BS,CAAC,KAAD,CAAC,QA6BV;;;;AC7BD,IAAU,CAAC,CA+BV;AA/BD,WAAU,CAAC;IAEV,SAAS,KAAK,CAAE,KAAoB;QACnC,IAAI,KAAK,KAAK,MAAM;YAAG,OAAO,IAAI,CAAA;QAClC,IAAI,KAAK,KAAK,OAAO;YAAG,OAAO,KAAK,CAAA;QACpC,OAAO,IAAI,CAAA;IACZ,CAAC;IAMD,SAAgB,WAAW,CAAa,IAAe;QAEtD,MAAM,GAAG,GAAG,KAAK,CAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAE,YAAY,CAAE,CAAE,CAAA;QAE9D,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAE,+BAA+B,CAAE,CAAA;QAErE,IAAI,IAAI,KAAK,SAAS,EAAG,CAAC;YACzB,OAAO,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAa,aAAa,CAAE,IAAI,IAAI,CAAA;QAC9E,CAAC;aAAM,CAAC;YACP,IAAI,GAAG,KAAK,IAAI,EAAG,CAAC;gBACnB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAE,aAAa,EAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAE,CAAA;YAC3E,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,cAAc,CAAC,KAAK,CAAE,YAAY,EAAG,MAAM,CAAE,IAAI,CAAE,CAAE,CAAA;YAC3D,CAAC;YACD,OAAO,IAAI,CAAA;QACZ,CAAC;IAEF,CAAC;IAjBe,aAAW,cAiB1B,CAAA;AAEF,CAAC,EA/BS,CAAC,KAAD,CAAC,QA+BV;;;;AC/BD,IAAU,CAAC,CAyBV;AAzBD,WAAU,CAAC;IAMG,YAAU,GAAG,eAAe,CACxC,WAAW,EACX;QACC,MAAM;QACN,OAAO;QACP,MAAM;QACN,SAAS;QACT,SAAS;QACT,MAAM;QACN,SAAS;QACT,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;KACC,CACV,CAAA;AAEF,CAAC,EAzBS,CAAC,KAAD,CAAC,QAyBV;;;;ACzBD,IAAU,CAAC,CAER;AAFH,WAAU,CAAC;IAAG,iBAAiB,CAAE,qBAAqB,EACrD,ujMAAujM,CACvjM,CAAA;AAAC,CAAC,EAFO,CAAC,KAAD,CAAC,QAER;;;;ACFH,IAAU,CAAC,CAEV;AAFD,WAAU,CAAC;IACV,iBAAiB,CAAE,mBAAmB,EAAE,oCAAqC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAG,gCAAgC,CAAE,CAAA;AAC3I,CAAC,EAFS,CAAC,KAAD,CAAC,QAEV;;;;ACFD,IAAU,CAAC,CAiBV;AAjBD,WAAU,CAAC;IAMC,UAAQ,GAAG,eAAe,CACpC,SAAS,EACT;QACC,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;KACG,CACV,CAAA;AAEF,CAAC,EAjBS,CAAC,KAAD,CAAC,QAiBV;;;;ACjBD,IAAU,CAAC,CAER;AAFH,WAAU,CAAC;IAAG,iBAAiB,CAAE,iBAAiB,EACjD,6JAA6J,CAC7J,CAAA;AAAC,CAAC,EAFO,CAAC,KAAD,CAAC,QAER;;;;ACFH,IAAU,CAAC,CAuDV;AAvDD,WAAU,CAAC;IAEV,SAAgB,wBAAwB,CACvC,EAA+B,EAC/B,UAAqD;QAErD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAA0B,UAAU,CAAE,CAAA;QAE9D,IAAI,QAAQ,GAAiB,EAAE,CAAC,UAAU,CAAA;QAC1C,KAAK,IAAI,IAAI,IAAI,UAAU,EAAG,CAAC;YAE9B,IAAI,IAAI,IAAI,IAAI;gBAAG,SAAQ;YAE3B,IAAI,IAAI,YAAY,gBAAgB,CAAC,IAAI,EAAG,CAAC;gBAE5C,OAAO,IAAI,EAAG,CAAC;oBACd,IAAI,CAAC,QAAQ,EAAG,CAAC;wBAChB,EAAE,CAAC,WAAW,CAAE,IAAI,CAAE,CAAA;wBACtB,MAAK;oBACN,CAAC;oBACD,IAAI,QAAQ,IAAI,IAAI,EAAG,CAAC;wBACvB,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAA;wBAC/B,MAAK;oBACN,CAAC;yBAAM,CAAC;wBACP,IAAI,QAAQ,CAAC,GAAG,CAAE,QAAQ,CAAE,EAAG,CAAC;4BAC/B,EAAE,CAAC,YAAY,CAAE,IAAI,EAAG,QAAQ,CAAE,CAAA;4BAClC,MAAK;wBACN,CAAC;6BAAM,CAAC;4BACP,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAA;4BAC/B,EAAE,CAAC,WAAW,CAAE,QAAQ,CAAE,CAAA;4BAC1B,QAAQ,GAAG,EAAE,CAAA;wBACd,CAAC;oBACF,CAAC;gBACF,CAAC;YAEF,CAAC;iBAAM,CAAC;gBACP,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,OAAO,EAAG,CAAC;oBAChD,MAAM,GAAG,GAAG,MAAM,CAAE,IAAI,CAAE,CAAA;oBAC1B,IAAI,QAAQ,CAAC,SAAS,KAAK,GAAG;wBAAG,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAA;oBACzD,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAA;gBAChC,CAAC;qBAAM,CAAC;oBACP,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAE,MAAM,CAAE,IAAI,CAAE,CAAE,CAAA;oBAC3E,EAAE,CAAC,YAAY,CAAE,QAAQ,EAAG,QAAQ,CAAE,CAAA;gBACvC,CAAC;YACF,CAAC;QAEF,CAAC;QAED,OAAO,QAAQ,EAAG,CAAC;YAClB,MAAM,QAAQ,GAAG,QAAQ,CAAA;YACzB,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAA;YAC/B,EAAE,CAAC,WAAW,CAAE,QAAQ,CAAE,CAAA;QAC3B,CAAC;IACF,CAAC;IAnDe,0BAAwB,2BAmDvC,CAAA;AAEF,CAAC,EAvDS,CAAC,KAAD,CAAC,QAuDV;;;;;;;ACvDD,IAAU,CAAC,CA6NV;AA7ND,WAAU,CAAC;IAEC,iBAAe,GAAG,EAAE,CAAA;IACpB,iBAAe,GAAG,EAAE,CAAA;IAEpB,iBAAe,GAAG,IAA4B,CAAA;IAE9C,mBAAiB,GAAgD;QAC3E,cAAc,EAAG,GAAE,EAAE,CAAC,IAAI;QAC1B,eAAe,EAAG,CAAE,KAAa,EAAE,IAAa,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAE,KAAK,EAAE,IAAI,CAAS;QACpH,sBAAsB,EAAG,GAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,sBAAsB,EAAE;KAChF,CAAA;IAEY,eAAa,GAAG,EAAE,CAAA;IAQ/B,SAAgB,QAAQ,CAIvB,IAC6D,EAC7D,KAAa,EACb,GAAI,UAAqB;QAGzB,MAAM,EAAE,GAAG,KAAK,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;QAClC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAA,eAAe,CAAC,CAAC,CAAC,EAAA,eAAe,GAAG,GAAG,GAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAA,eAAe,CAAA;QACpF,MAAM,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,EAAA,eAAe,CAAC,OAAO,CAAE,QAAQ,EAAE,MAAO,EAAE,CAAC,OAAO,CAAE,OAAO,EAAE,EAAE,CAAG,EAAE,CAAE,CAAC,CAAC,CAAC,EAAA,eAAe,CAAA;QAEnH,IAAI,IAAI,IAAI,EAAA,eAAe,EAAG,CAAC;YAC9B,IAAI,EAAA,eAAe,CAAC,GAAG,CAAE,EAAE,CAAE,EAAG,CAAC;gBAChC,SAAS,CAAE,IAAI,KAAK,CAAE,+BAAgC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAG,EAAE,CAAE,CAAE,CAAA;YACpF,CAAC;iBAAM,CAAC;gBACP,EAAA,eAAe,CAAC,GAAG,CAAE,EAAE,CAAE,CAAA;YAC1B,CAAC;QACF,CAAC;QAED,IAAI,IAAI,GAAsC,IAAI,CAAC,CAAC,CAAC,EAAA,iBAAiB,CAAC,cAAc,CAAE,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAEpG,IAAI,EAAA,eAAe,EAAG,CAAC;YAEtB,MAAM,UAAU,GAAG,EAAA,eAAe,CAAA;YAClC,MAAM,UAAU,GAAG,EAAA,eAAe,CAAA;YAClC,MAAM,UAAU,GAAG,EAAA,eAAe,CAAA;YAElC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAG,CAAC;gBAE5B,MAAM,IAAI,GAAG,KAAK,CAAE,KAAK,CAAE,CAAA;gBAC3B,IAAI,OAAO,IAAI,KAAK,UAAU;oBAAG,SAAQ;gBAGzC,MAAM,OAAO,GAAG,UAAqB,GAAI,IAAW;oBAEnD,MAAM,MAAM,GAAG,EAAA,eAAe,CAAA;oBAC9B,MAAM,MAAM,GAAG,EAAA,eAAe,CAAA;oBAC9B,MAAM,MAAM,GAAG,EAAA,eAAe,CAAA;oBAE9B,IAAI,CAAC;wBAEJ,EAAA,eAAe,GAAG,UAAU,CAAA;wBAC5B,EAAA,eAAe,GAAG,UAAU,CAAA;wBAC5B,EAAA,eAAe,GAAG,UAAU,CAAA;wBAE5B,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,EAAE,GAAI,IAAI,CAAE,CAAA;oBAEnC,CAAC;4BAAS,CAAC;wBAEV,EAAA,eAAe,GAAG,MAAM,CAAA;wBACxB,EAAA,eAAe,GAAG,MAAM,CAAA;wBACxB,EAAA,eAAe,GAAG,MAAM,CAAA;oBAEzB,CAAC;gBAEF,CAAC,CAAA;gBAED,mBAAmB,CAAE,OAAO,EAAE,IAAI,CAAE,CAAA;gBACpC,KAAK,CAAE,KAAK,CAAE,GAAG,OAAc,CAAA;YAEhC,CAAC;QAEF,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAG,CAAC;YAE/B,IAAI,WAAW,IAAI,IAAI,EAAG,CAAC;gBAE1B,MAAM,IAAI,GAAG,IAAI,IAAK,IAAY,CAAE,MAAM,CAAC,IAAI,CAAC,CAAE,IAAI,IAAM,IAAa,CAAA;gBAEzE,MAAM,CAAC,MAAM,CAAE,IAAI,EAAG,KAAK,CAAE,CAAA;gBAC7B,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,GAAG,IAAI,CAAA;gBAEjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;gBAE5B,IAAI,CAAC,IAAI,CAAC,aAAa;oBAAG,IAAI,CAAC,aAAa,GAAG,EAAA,iBAAiB,CAAA;gBAChE,IAAI,CAAC,SAAS,GAAG,CAAE,WAAW,CAAC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,GAAG,CAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAE,CAAA;gBAEpF,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAEpB;gBAAC,IAAa,CAAE,MAAM,CAAC,IAAI,CAAC,CAAE,GAAG,IAAI,CAAA;gBAEtC,OAAO,IAAK,CAAA;YAEb,CAAC;iBAAM,CAAC;gBAEP,MAAM,MAAM,GAAG,EAAA,eAAe,CAAA;gBAC9B,MAAM,MAAM,GAAG,EAAA,eAAe,CAAA;gBAC9B,MAAM,MAAM,GAAG,EAAA,eAAe,CAAA;gBAE9B,IAAI,CAAC;oBAEJ,EAAA,eAAe,GAAG,IAAI,CAAA;oBACtB,EAAA,eAAe,GAAG,IAAI,GAAG,CAAA;oBACzB,EAAA,eAAe,GAAG,CAAE,WAAW,CAAC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,GAAG,CAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAE,CAAA;oBAErF,OAAS,IAAa,CAAE,KAAK,EAAG,GAAI,UAAU,CAAE,CAAA;gBAEjD,CAAC;wBAAS,CAAC;oBAEV,EAAA,eAAe,GAAG,MAAM,CAAA;oBACxB,EAAA,eAAe,GAAG,MAAM,CAAA;oBACxB,EAAA,eAAe,GAAG,MAAM,CAAA;gBAEzB,CAAC;YAEF,CAAC;QAEF,CAAC;QAED,IAAI,CAAC,IAAI,EAAG,CAAC;YACZ,IAAI,GAAG,IAAI;gBACV,CAAC,CAAC,EAAA,iBAAiB,CAAC,eAAe,CAAE,KAAK,EAAE,KAAK,IAAI,8BAA8B,EAAE,IAAI,CAAE;gBAC3F,CAAC,CAAC,EAAA,iBAAiB,CAAC,sBAAsB,EAAE,CAAA;QAC9C,CAAC;QAED,wBAAwB,CAAE,IAAI,EAAK,EAA2B,CAAC,MAAM,CAAE,GAAI,UAAU,CAAE,CAAE,CAAA;QACzF,IAAI,CAAC,IAAI;YAAG,OAAO,IAAI,CAAA;QAEvB,IAAI,IAAI;YAAK,IAAiB,CAAC,EAAE,GAAG,IAAI,CAAA;QACxC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAG,CAAC;YAC1B,IAAI,GAAG,KAAK,IAAI;gBAAG,SAAQ;YAE3B,IAAI,OAAO,KAAK,CAAE,GAAG,CAAE,KAAK,QAAQ,EAAG,CAAC;gBAEvC,IAAI,OAAQ,IAAY,CAAE,GAAG,CAAE,KAAK,QAAQ;oBAAI,IAAY,CAAE,GAAG,CAAE,GAAG,KAAK,CAAE,GAAG,CAAE,CACjF;gBAAE,IAAiB,CAAC,YAAY,CAAE,GAAG,EAAI,KAAa,CAAE,GAAG,CAAE,CAAE,CAAA;YAEjE,CAAC;iBAAM,IACN,KAAK,CAAE,GAAG,CAAE;gBACZ,OAAO,KAAK,CAAE,GAAG,CAAE,KAAK,QAAQ;gBAChC,OAAO,CAAC,cAAc,CAAE,KAAK,CAAE,GAAG,CAAS,CAAE,KAAK,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,EAC3E,CAAC;gBAEF,IAAI,OAAQ,IAAY,CAAE,GAAG,CAAE,KAAK,QAAQ,EAAG,CAAC;oBAC/C,MAAM,CAAC,MAAM,CAAI,IAAa,CAAE,GAAG,CAAE,EAAG,KAAK,CAAE,GAAG,CAAE,CAAE,CAAA;oBACtD,SAAQ;gBACT,CAAC;YAEF,CAAC;iBAAM,CAAC;gBAEN,IAAY,CAAE,GAAG,CAAE,GAAG,KAAK,CAAE,GAAG,CAAE,CAAA;YAEpC,CAAC;QAEF,CAAC;QAED,IAAI,EAAA,eAAe;YAAK,IAAiB,CAAC,SAAS,GAAG,CAAG,KAAa,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,KAAa,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,GAAG,WAAW,CAAA;QAEtI,OAAO,IAAI,CAAA;IAEZ,CAAC;IA1Je,UAAQ,WA0JvB,CAAA;AA8CF,CAAC,EA7NS,CAAC,KAAD,CAAC,QA6NV;;;;AC7ND,IAAU,CAAC,CAaV;AAbD,WAAU,CAAC;IAEV,MAAa,WAAY,SAAQ,WAAW;QAE3C,MAAM,CAAC,IAAI;YACV,OAAO;gBACN,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,GAAG;aACX,CAAA;QACF,CAAC;KAED;IATY,aAAW,cASvB,CAAA;AAEF,CAAC,EAbS,CAAC,KAAD,CAAC,QAaV;;;;ACbD,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;IACV,SAAgB,kBAAkB,CAAI,KAAQ;QAC7C,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAA;IAC7C,CAAC;IAFe,oBAAkB,qBAEjC,CAAA;AACF,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;ACJD,IAAU,CAAC,CAoCV;AApCD,WAAU,CAAC;IAEV,MAAa,mBAAoB,SAAQ,WAAW;QAG5C,AAAP,MAAM,CAAC,OAAO,CAAE,IAAiB,EAAE,MAAiB;YAEnD,MAAM,OAAO,GAAe,EAAE,CAAA;YAC9B,IAAI,OAAO,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAA;YAClE,OAAO,OAAO,EAAE,UAAU,EAAG,CAAC;gBAC7B,OAAO,GAAG,OAAQ,CAAC,UAAU,CAAC,aAAa,CAAA;YAC5C,CAAC;YAED,OAAO,OAAO,EAAG,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAE,OAAO,CAAE,CAAA;gBACvB,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAA;gBACjC,IAAI,MAAM,YAAY,UAAU;oBAAG,OAAO,GAAG,MAAM,CAAC,IAAI,CAAA;;oBACnD,OAAO,GAAG,MAAqB,CAAA;YACrC,CAAC;YAED,IAAI,CAAC,IAAI,IAAI,MAAM;gBAAG,OAAO,OAAO,CAAA;YAEpC,IAAI,eAAe,CAAE,GAAE,EAAE;gBAExB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAG,CAAC,CAAC,CAAgB,CAAA;gBAEjD,IAAI,OAAO;oBAAG,OAAO,CAAC,KAAK,EAAE,CAAA;;oBACxB,gBAAgB,CAAC,IAAI,EAAE,CAAA;YAE7B,CAAC,CAAE,CAAA;YAEH,OAAO,OAAO,CAAA;QACf,CAAC;KAED;IA7BO;QADL,QAAQ;4CA4BT;IA9BW,qBAAmB,sBAgC/B,CAAA;AAEF,CAAC,EApCS,CAAC,KAAD,CAAC,QAoCV;;;;ACpCD,IAAU,CAAC,CAwEV;AAxED,WAAU,CAAC;IAEV,MAAa,YAAa,SAAQ,YAAY;QAE7C,MAAM,CAAC,IAAI,CAAmE;QAE9E,MAAM,CAAC,GAAG,CAAY,IAAkB;YACvC,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,EAAE,CAAA;QAC3B,CAAC;QAED,MAAM,CAAC,IAAI,CACV,IAAiD;YAEjD,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;QACzB,CAAC;QAED,MAAM,KAAK,KAAK;YAEf,OAAO,CACN,KAAa,EACZ,EAAE;gBAKH,MAAM,SAAS,GAAG,CAAE,MAAc,EAAG,IAAW,EAAE,EAAE,CAAC,IAAI,KAAK,CAAE,GAAI,IAAI,CAAE,CAAA;gBAE1E,MAAM,OAAO,GAAwB;oBACpC,SAAS,EAAG,IAAI,CAAC,IAAI,CAAE,SAAS,CAAE;iBAClC,CAEA;gBAAC,OAAe,CAAE,MAAM,CAAC,WAAW,CAAE,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,CAAA;gBAE1D,OAAO,IAAI,KAAK,CAAE,KAAK,EAAG,OAAO,CAAE,CAAA;YAEpC,CAAC,CAAA;QAEF,CAAC;QAED,MAAM,KAAK,MAAM;YAEhB,OAAO,CACN,GAAY,EACZ,IAAkB,EAClB,QAAQ,OAAO,CAAC,wBAAwB,CAAE,GAAG,EAAE,IAAI,CAAG,EACrD,EAAE;gBACH,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAE,KAAK,CAAC,KAAM,CAAE,CAAA;gBACvC,OAAO,KAAK,CAAA;YACb,CAAC,CAAA;QAEF,CAAC;QAED,MAAM,KAAK,KAAK;YAEf,OAAO,CAMN,GAAU,EACV,IAAY,EACZ,QAAQ,OAAO,CAAC,wBAAwB,CAAE,GAAG,EAAE,IAAI,CAAyC,EAC3F,EAAE;gBACH,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,KAAK,CAAC,GAAI,CAAE,CAAA;gBAC/C,OAAO,KAAK,CAAA;YACb,CAAC,CAAA;QAEF,CAAC;KAED;IApEY,cAAY,eAoExB,CAAA;AAEF,CAAC,EAxES,CAAC,KAAD,CAAC,QAwEV;;;;ACxED,IAAU,CAAC,CA2BV;AA3BD,WAAU,CAAC;IAEV,MAAa,SAAU,SAAQ,YAAY;QAE1C,MAAM,CAAC,IAAI,CAAiC,IAA8C;YAEzF,MAAM,KAAK,GAAG,IAAI,OAAO,EAAkB,CAAA;YAE3C,MAAM,GAAG,GAAG,UAAwB,IAAa;gBAEhD,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,CAAE,IAAI,CAAE;oBAAG,OAAO,KAAK,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;gBAEtE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,EAAG,IAAI,CAAE,IAAI,IAAI,CAAA;gBAE5C,KAAK,CAAC,GAAG,CAAE,IAAI,EAAG,GAAI,CAAE,CAAA;gBAExB,OAAO,GAAG,CAAA;YAEX,CAAC,CAAA;YAED,OAAO,CAAC,cAAc,CAAE,GAAG,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAE,CAAA;YAEpE,OAAO,GAAG,CAAA;QACX,CAAC;KAED;IAvBY,WAAS,YAuBrB,CAAA;AAEF,CAAC,EA3BS,CAAC,KAAD,CAAC,QA2BV;;;;AC3BD,IAAU,CAAC,CAMV;AAND,WAAU,CAAC;IAEV,SAAgB,cAAc,CAAE,IAAa;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAE,KAAK,EAAG,EAAE,CAAE,CAAC,OAAO,CAAE,UAAU,EAAG,GAAG,CAAE,CAAA;IAC9D,CAAC;IAFe,gBAAc,iBAE7B,CAAA;AAEF,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CAeV;AAfD,WAAU,CAAC;IAMV,SAAgB,eAAe;QAC9B,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;QAC7B,IAAI,IAAI,YAAY,cAAc,EAAG,CAAC;YACrC,IAAI,CAAC,KAAK,EAAE,CAAA;QACb,CAAC;aAAM,CAAC;YACP,SAAS,CAAE,IAAI,KAAK,CAAE,+BAA+B,CAAE,CAAE,CAAA;QAC1D,CAAC;IACF,CAAC;IAPe,iBAAe,kBAO9B,CAAA;AAEF,CAAC,EAfS,CAAC,KAAD,CAAC,QAeV;;;;ACfD,IAAU,CAAC,CAkCV;AAlCD,WAAU,CAAC;IAEV,SAAgB,0BAA0B,CACzC,EAAY,EACZ,KAAyD;QAGzD,KAAK,IAAI,IAAI,IAAI,KAAK,EAAG,CAAC;YAEzB,IAAI,GAAG,GAAG,KAAK,CAAE,IAAI,CAAS,CAAA;YAE9B,IAAI,GAAG,KAAK,SAAS,EAAG,CAAC;gBAExB,SAAQ;YAET,CAAC;iBAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,EAAG,CAAC;gBAE3C,IAAI,CAAC,EAAE,CAAC,YAAY,CAAE,IAAI,CAAE;oBAAG,SAAQ;gBAEvC,EAAE,CAAC,eAAe,CAAE,IAAI,CAAE,CAAA;YAE3B,CAAC;iBAAM,CAAC;gBAEP,MAAO,GAAG,GAAG,MAAM,CAAE,GAAG,CAAE,CAAA;gBAC1B,IAAI,EAAE,CAAC,YAAY,CAAE,IAAI,CAAE,KAAK,GAAG;oBAAG,SAAQ;gBAE9C,EAAE,CAAC,YAAY,CAAE,IAAI,EAAG,GAAG,CAAE,CAAA;YAE9B,CAAC;QAEF,CAAC;IAEF,CAAC;IA9Be,4BAA0B,6BA8BzC,CAAA;AAEF,CAAC,EAlCS,CAAC,KAAD,CAAC,QAkCV;;;;AClCD,IAAU,CAAC,CAYV;AAZD,WAAU,CAAC;IAEV,SAAgB,sBAAsB,CACrC,EAAY,EACZ,MAAuD,EACvD,OAAO,GAAG,KAAK;QAEf,KAAK,IAAI,IAAI,IAAI,MAAM,EAAG,CAAC;YAC1B,EAAE,CAAC,gBAAgB,CAAE,IAAI,EAAG,MAAM,CAAE,IAAI,CAAE,EAAG,EAAE,OAAO,EAAE,CAAE,CAAA;QAC3D,CAAC;IACF,CAAC;IARe,wBAAsB,yBAQrC,CAAA;AAEF,CAAC,EAZS,CAAC,KAAD,CAAC,QAYV;;;;ACZD,IAAU,CAAC,CAqBV;AArBD,WAAU,CAAC;IAEV,SAAgB,sBAAsB,CACrC,EAAY,EACZ,MAA6C;QAE7C,KAAK,IAAI,IAAI,IAAI,MAAM,EAAG,CAAC;YAC1B,IAAI,GAAG,GAAG,MAAM,CAAE,IAAI,CAAE,CAAA;YAExB,MAAM,KAAK,GAAK,EAAmB,CAAC,KAAY,CAAA;YAChD,MAAM,KAAK,GAAG,CAAE,IAAa,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,QAAQ,EAAG,MAAM,CAAC,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,CAAE,CAAA;YAEjG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAG,CAAC;gBAC9B,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAI,GAAI,IAAI,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACP,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACrC,CAAC;QAEF,CAAC;IACF,CAAC;IAjBe,wBAAsB,yBAiBrC,CAAA;AAEF,CAAC,EArBS,CAAC,KAAD,CAAC,QAqBV;;;;ACrBD,IAAU,CAAC,CAiBV;AAjBD,WAAU,CAAC;IAEV,SAAgB,sBAAsB,CACrC,EAAY,EACZ,MAAmC;QAEnC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAG,CAAC;YAEzB,MAAM,GAAG,GAAS,MAAM,CAAE,GAAG,CAAE,CAAA;YAE/B,IAAI,GAAG,KAAK,SAAS;gBAAG,SAAQ;YAChC,IAAI,GAAG,KAAM,EAAU,CAAE,GAAG,CAAE;gBAAG,SAAQ;YAExC,EAAU,CAAE,GAAG,CAAE,GAAG,GAAG,CAAA;QACzB,CAAC;IACF,CAAC;IAbe,wBAAsB,yBAarC,CAAA;AAEF,CAAC,EAjBS,CAAC,KAAD,CAAC,QAiBV;;;;;;;;;;ACjBD,IAAU,CAAC,CAER;AAFH,WAAU,CAAC;IAAG,iBAAiB,CAAE,wBAAwB,EACxD,glEAAglE,CAChlE,CAAA;AAAC,CAAC,EAFO,CAAC,KAAD,CAAC,QAER;;;;ACDH,IAAU,CAAC,CAgiBV;AAhiBD,WAAU,CAAC;IAIV,SAAgB,uBAAuB;QACtC,OAAO,WAAW,CAAC,IAAI,EAAE,CAAC,KAAK,CAAA;IAChC,CAAC;IAFe,yBAAuB,0BAEtC,CAAA;IAED,SAAgB,wBAAwB;QACvC,OAAO,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,CAAA;IACjC,CAAC;IAFe,0BAAwB,2BAEvC,CAAA;IAED,SAAgB,mBAAmB,CAAE,MAAe;QACnD,OAAO,MAAM,CAAA;IACd,CAAC;IAFe,qBAAmB,sBAElC,CAAA;IAOD,MAAa,SAAU,SAAQ,WAAW;QAGlC,AAAP,MAAM,CAAC,IAAI,CAAiD,EAAU;YACrE,OAAO,IAAI,IAA4B,CAAA;QACxC,CAAC;QAGM,AAAP,MAAM,CAAC,KAAK;YAEX,OAAO,CAAE,GAAI,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAE,yCAAyC,CAAE,CAAE,CAAC,GAAG,CAAE,CAAE,IAAI,EAAE,KAAK,EAAG,EAAE;gBAErH,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAE,eAAe,CAAG,CAAA;gBAElD,MAAM,IAAI,GAAI,IAAI,CAAC,CAAS,CAAE,IAAI,CAAsB,CAAA;gBACxD,IAAI,CAAC,IAAI,EAAG,CAAC;oBACZ,aAAa,CAAE,IAAI,KAAK,CAAE,6BAA6B,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;oBAChF,OAAO,IAAI,CAAA;gBACZ,CAAC;gBAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;gBAC/B,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;gBACrB,OAAO,IAAI,CAAA;YAEZ,CAAC,CAAE,CAAC,MAAM,CAAE,kBAAkB,CAAE,CAAA;QAEjC,CAAC;QAGM,AAAP,MAAM,CAAC,IAAI;YAEV,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;YAC1B,IAAI,CAAC,KAAK,CAAC,MAAM;gBAAG,OAAM;YAE1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAG,CAAC;gBAC3B,IAAI,CAAC;oBACJ,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAChB,CAAC;gBAAC,OAAO,KAAK,EAAG,CAAC;oBACjB,aAAa,CAAE,KAAK,CAAE,CAAA;gBACvB,CAAC;YACF,CAAC;YAED,IAAI,CAAC;gBACJ,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAA;YAClC,CAAC;YAAC,OAAO,KAAK,EAAG,CAAC;gBACjB,aAAa,CAAE,KAAK,CAAE,CAAA;YACvB,CAAC;YAED,KAAK,EAAE,IAAI,CAAC;gBAEX,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBAC7B,IAAI,CAAC,KAAK;oBAAG,MAAM,KAAK,CAAA;gBAExB,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAA;gBACnC,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAE,0BAA0B,CAA4B,CAAA;gBACrF,IAAI,IAAI;oBAAG,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;;oBAC1B,IAAI,CAAC,MAAM,CAAE,mBAAM,IAAI,EAAC,aAAa,EAAC,OAAO,EAAG,KAAK,GAAK,CAAE,CAAA;YAElE,CAAC;YAAC,OAAO,KAAK,EAAG,CAAC;gBACjB,aAAa,CAAE,KAAK,CAAE,CAAA;YACvB,CAAC;QAEF,CAAC;QAGD,KAAK;YACJ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAE,WAAW,CAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAA;QACpE,CAAC;QAED,IAAI;YACH,OAAO,EAAE,CAAA;QACV,CAAC;QAGD,OAAO,CAAE,IAAc;YACtB,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;YAC1B,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC,CAAC,CAAE,IAAI,CAAE,CAAC,CAAC,CAAC,EAAE,CAAE,CAAE,CAAA;YACtG,OAAO,KAAK,CAAC,OAAO,CAAE,IAAI,CAAE,KAAK,CAAC,CAAC,CAAA;QACpC,CAAC;QAED,SAAS,CAAE,MAAM,GAAG,EAAE;YACrB,OAAO,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAE,MAAM,CAAE,CAAA;QAC5C,CAAC;QAID,QAAQ;YACP,OAAO,cAAc,CAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAE,IAAI,KAAK,CAAA;QAC9D,CAAC;QAGD,cAAc,KAAK,OAAO,8BAA8B,CAAA,CAAC,CAAC;QAG1D,GAAG;YACF,OAAO,EAAkC,CAAA;QAC1C,CAAC;QAID,WAAW;YACV,OAAO,IAAI,CAAC,GAAG,EAAE,CAAA;QAClB,CAAC;QAID,aAAa;YAEZ,IAAI,GAAG,GAAG,CAAC,CAAA;YACX,IAAI,CAAC;gBAEJ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;gBACtB,IAAI,CAAC,GAAG;oBAAG,OAAO,CAAC,CAAA;gBAEnB,GAAG,CAAC,OAAO,CAAE,IAAI,CAAC,EAAE;oBACnB,IAAI,IAAI,YAAY,SAAS,EAAG,CAAC;wBAChC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAE,GAAG,EAAG,IAAI,CAAC,aAAa,EAAE,CAAE,CAAA;oBAC7C,CAAC;gBACF,CAAC,CAAE,CAAA;YAEJ,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBACtB,aAAa,CAAE,KAAK,CAAE,CAAA;gBACtB,OAAO,EAAE,CAAA;YACV,CAAC;YAED,OAAO,GAAG,CAAA;QACX,CAAC;QAED,aAAa;YACZ,OAAO,IAAI,CAAC,aAAa,EAAE,CAAA;QAC5B,CAAC;QAID,cAAc;YAEb,IAAI,GAAG,GAAG,CAAC,CAAA;YACX,IAAI,CAAC;gBAEJ,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAG,CAAC;oBAEtC,IAAI,IAAI,YAAY,SAAS,EAAG,CAAC;wBAChC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAE,GAAG,EAAG,IAAI,CAAC,cAAc,EAAE,CAAE,CAAA;oBAC9C,CAAC;gBAEF,CAAC;YAEF,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBACtB,aAAa,CAAE,KAAK,CAAE,CAAA;gBACtB,OAAO,EAAE,CAAA;YACV,CAAC;YAED,OAAO,GAAG,CAAA;QACX,CAAC;QAED,MAAM,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAA;QAGxC,SAAS;YACR,IAAI,eAAe,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAE,KAAK,SAAS,EAAG,CAAC;gBAC7D,eAAe,EAAE,CAAA;gBACjB,OAAO,IAAI,CAAA;YACZ,CAAC;iBAAM,CAAC;gBACP,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,qBAAqB,EAAE,CAAA;gBAC3F,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAA;YACnD,CAAC;QACF,CAAC;QAGD,MAAM;YACL,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAE,IAAI,EAAE,GAAG,CAAE,CAAC,OAAO,CAAE,IAAI,EAAE,GAAG,CAAE,CAAC,UAAU,CAAE,IAAI,EAAE,GAAG,CAAE,CAAA;QACzF,CAAC;QAED,iBAAiB,CAAE,IAAc;YAChC,MAAM,IAAI,GAAG,IAAI,IAAI,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAE,IAAI,CAAC,cAAc,EAAE,EAAG,IAAI,CAAC,QAAQ,EAAE,CAAE,CAAA;YAEzG,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;YACxB,IAAI,CAAC,YAAY,CAAE,IAAI,EAAG,EAAE,CAAE,CAAA;YAC9B,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAE,IAAI,GAAG,EAAE,GAAG,GAAG,CAAE,CAAA;YAE7C,OAAO,IAAI,CAAA;QACZ,CAAC;QAGD,QAAQ,CAAE,IAAe;YACxB,eAAe,EAAE,CAAA;YACjB,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAE,IAAI,CAAE,CAAA;YAC3C,0BAA0B,CAAE,IAAI,EAAG,IAAI,CAAC,WAAW,EAAE,CAAE,CAAA;YAEvD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;YACjC,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YAEpC,OAAO,IAAI,CAAA;QACZ,CAAC;QAGD,SAAS;YAER,IAAI,CAAC,MAAM,EAAE,CAAA;YAEb,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;YAC9B,IAAI,CAAC,GAAG;gBAAG,OAAM;YAEjB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAG,CAAC;gBACvB,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,WAAW,IAAI,EAAE,EAAG,CAAC;oBACxD,EAAE,CAAC,WAAW,CAAC,EAAE,CAAA;gBAClB,CAAC;YACF,CAAC;YAED,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;QAEvB,CAAC;QAGD,QAAQ,CAAE,IAAe;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;YAElC,MAAM,EAAE,IAAI,CAAC;gBAEZ,0BAA0B,CAAE,IAAI,EAAG,EAAE,cAAc,EAAG,IAAI,EAAE,CAAE,CAAA;gBAE9D,IAAI,CAAC;oBAEJ,IAAI,CAAC,MAAM,EAAE,CAAA;gBAEd,CAAC;wBAAS,CAAC;oBAEV,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,EAAG,CAAC;wBACpC,IAAI,MAAM,YAAY,WAAW,EAAG,CAAC;4BACpC,MAAM,CAAC,QAAQ,EAAE,CAAA;wBAClB,CAAC;oBACF,CAAC;gBAEF,CAAC;YAEF,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBAEtB,aAAa,CAAE,KAAK,CAAE,CAAA;gBACtB,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC;oBAC9C,CAAC,CAAE,KAAa,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,SAAS;oBAC7D,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAA;gBACvC,0BAA0B,CAAE,IAAI,EAAG,EAAE,cAAc,EAAE,CAAE,CAAA;gBAEvD,IAAI,iBAAiB,CAAE,KAAK,CAAE;oBAAG,MAAM,MAAM,CAAA;gBAE7C,IAAI,CAAC;oBACJ,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CACrC;oBAAE,IAAqB,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAE,OAAO,EAAE,UAAU,CAAE,CAAA;gBAC5E,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YAEX,CAAC;YAED,IAAI,CAAC;gBACJ,IAAI,CAAC,IAAI,EAAE,CAAA;YACZ,CAAC;YAAC,OAAO,KAAK,EAAG,CAAC;gBACjB,aAAa,CAAE,KAAK,CAAE,CAAA;YACvB,CAAC;YAED,OAAO,IAAI,CAAA;QACZ,CAAC;QAGD,eAAe;YACd,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;YAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;YAE1B,0BAA0B,CAAE,IAAI,EAAG,IAAI,CAAE,CAAA;YACzC,sBAAsB,CAAE,IAAI,EAAG,KAAK,CAAE,CAAA;YAEtC,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,IAAI;YACH,OAAO,EAAS,CAAA;QACjB,CAAC;QAGD,MAAM;YAEL,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;YAEnC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;YAC9B,IAAI,CAAC,GAAG;gBAAG,OAAM;YAEjB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAE,KAAK,CAAC,EAAE;gBAC9B,IAAI,KAAK,IAAI,IAAI;oBAAG,OAAO,IAAI,CAAA;gBAC/B,OAAO,CAAE,KAAK,YAAY,SAAS,CAAE;oBACpC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;oBAClB,CAAC,CAAC,KAAK,YAAY,gBAAgB,CAAC,IAAI;wBACxC,CAAC,CAAC,KAAK;wBACP,CAAC,CAAC,MAAM,CAAE,KAAK,CAAE,CAAA;YACnB,CAAC,CAAC,CAAA;YAEF,wBAAwB,CAAE,IAAI,EAAG,KAAK,CAAE,CAAA;YAExC,KAAK,MAAM,EAAE,IAAI,GAAG;gBAAG,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,UAAU,IAAI,EAAE;oBAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAA;YAE9F,sBAAsB,CAAE,IAAI,EAAG,IAAI,CAAC,KAAK,EAAE,CAAE,CAAA;QAE9C,CAAC;QAGM,AAAP,MAAM,CAAC,YAAY;YAClB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAA;YAE5B,IAAI,OAAO,GAAG,KAAK,CAAA;YACnB,MAAM,OAAO,GAAG,EAA4B,CAAA;YAE5C,OAAO,OAAO,EAAG,CAAC;gBACjB,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAG,CAAC;oBACxD,OAAO,CAAC,IAAI,CAAE,OAAO,CAAC,WAA+B,CAAE,CAAA;gBACxD,CAAC;gBACD,IAAG,CAAC,CAAE,OAAO,YAAY,SAAS,CAAE;oBAAE,MAAK;gBAC3C,OAAO,GAAG,MAAM,CAAC,cAAc,CAAE,OAAO,CAAE,CAAA;YAC3C,CAAC;YAED,OAAO,OAAO,CAAA;QACf,CAAC;QAED,MAAM,CAAC,WAAW,CAA0B;QAC5C,MAAM,CAAC,UAAU,CAAE,MAAc;YAEhC,IAAI,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAE,IAAI,EAAE,aAAa,CAAE,EAAE,KAAK,CAAA;YAC1E,IAAI,CAAC,KAAK;gBAAG,KAAK,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,CAAA;YAE/C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAE,MAAM,CAAE,CAAA;YAClC,IAAI,MAAM;gBAAG,OAAO,MAAM,CAAA;YAE1B,MAAM,KAAK,GAAG,EAAc,CAAA;YAC5B,MAAM,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;YAEnE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,EAAG,CAAC;gBAC1C,IAAI,MAAM,IAAI,KAAK,CAAC,SAAS;oBAAG,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,CAAC,CAAC,cAAc,CAAE,KAAK,CAAE,GAAG,OAAO,CAAE,CAAA;;oBACjF,MAAK;YACX,CAAC;YAED,KAAK,CAAC,GAAG,CAAE,MAAM,EAAE,KAAK,CAAE,CAAA;YAC1B,OAAO,KAAK,CAAA;QACb,CAAC;QAGD,gBAAgB;YACf,MAAM,KAAK,GAAG,EAAc,CAAA;YAC5B,IAAI,KAAK,GAAG,eAAe,CAAE,IAAI,CAAwC,CAAA;YAEzE,IAAG,CAAC,CAAE,KAAK,EAAE,IAAI,YAAY,SAAS,CAAE;gBAAE,OAAO,KAAK,CAAA;YAEtD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;YACrC,MAAM,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;YAEnE,KAAK,CAAC,IAAI,CAAE,GAAM,KAAK,CAAC,IAAI,CAAC,WAAiC,CAAC,UAAU,CAAE,MAAM,CAAE,CAAE,CAAA;YAErF,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAG,CAAC;gBACnD,KAAK,CAAC,IAAI,CAAE,MAAM,GAAG,OAAO,CAAE,CAAA;YAC/B,CAAC;YAED,OAAO,KAAK,CAAA;QACb,CAAC;QAGD,UAAU;YACT,MAAM,KAAK,GAAG,IAAI,GAAG,EAAY,CAAA;YAEjC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBAAG,KAAK,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YAE5D,KAAK,IAAI,KAAK,IAAM,IAAI,CAAC,WAAiC,CAAC,YAAY,EAAE,EAAG,CAAC;gBAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,cAAc,CAAE,KAAK,CAAE,CAAA;gBAC3C,IAAI,IAAI;oBAAG,KAAK,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YAC7B,CAAC;YAED,OAAO,KAAK,CAAA;QACb,CAAC;QAGD,KAAK,CAAE,OAAO,IAAqB;YAClC,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,WAAW;YACV,IAAI,KAAK,GAAS,EAAE,CAAA;YAEpB,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;gBAAG,KAAK,CAAE,IAAI,CAAC,OAAO,CAAE,KAAK,EAAG,EAAE,CAAE,CAAC,OAAO,CAAE,SAAS,EAAG,GAAG,CAAE,CAAC,WAAW,EAAE,CAAE,GAAG,EAAE,CAAA;YAEtH,OAAO,KAAK,CAAA;QACb,CAAC;QAED,IAAI;YACH,OAAO;gBACN,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,SAAS;aAC9B,CAAA;QACR,CAAC;QAED,KAAK;YACJ,OAAO,EAAE,CAAA;QACV,CAAC;QAED,KAAK;YACJ,OAAO,EAAE,CAAA;QACV,CAAC;QAED,KAAK;YACJ,OAAO,EAAE,CAAA;QACV,CAAC;QAGD,WAAW;YACV,OAAO,EAAE,GAAI,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAA;QAC7C,CAAC;QAED,OAAO;YACN,OAAO,EAA0B,CAAA;QAClC,CAAC;QAED,CAAE,oBAAoB,CAAE;YACvB,OAAO,oBAAoB,CAAE,EAAE,EAC9B,sBAAsB,CAAE,IAAI,CAAE,CAG9B,CAAA;QACF,CAAC;QAGD,CAAC,SAAS,CACT,KAAoD,EACpD,OAAO,EAAiB;YAGxB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAE,IAAI,CAAE;gBAAG,OAAO,MAAM,CAAE,IAAI,CAAE,CAAA;YAE9D,IAAI,CAAC;gBACJ,MAAM,OAAO,GAAG,IAAI,GAAG,EAAa,CAAA;gBACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;gBAEtB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAG,CAAC;oBACzB,IAAI,CAAE,CAAE,IAAI,YAAY,SAAS,CAAE;wBAAG,SAAQ;oBAE9C,IAAK,CAAE,KAAK,CAAE,IAAI,CAAE;wBAAG,SAAQ;oBAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;oBACjB,MAAM,CAAE,GAAI,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAA;gBAC/B,CAAC;gBAED,KAAK,MAAM,IAAI,IAAI,GAAG,EAAG,CAAC;oBACzB,IAAK,CAAE,CAAE,IAAI,YAAY,SAAS,CAAC;wBAAG,SAAQ;oBAC9C,IAAK,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;wBAAG,SAAQ;oBACjC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAE,KAAK,EAAE,CAAE,GAAI,IAAI,EAAE,IAAI,CAAE,CAAE,CAAA;gBACnD,CAAC;YACF,CAAC;YAAC,OAAO,KAAc,EAAG,CAAC;gBAC1B,IAAI,iBAAiB,CAAE,KAAK,CAAE;oBAAG,gBAAgB,CAAE,KAAK,CAAE,CAAA;gBAC1D,aAAa,CAAE,KAAK,CAAE,CAAA;YACvB,CAAC;QAEF,CAAC;QAGD,YAAY,CACX,IAAuB;YAGvB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAEvB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,EAAE;gBACpC,IAAI,IAAI,YAAY,SAAS,EAAG,CAAC;oBAChC,OAAO,IAAI,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;gBACxB,CAAC;qBAAM,CAAC;oBACP,OAAO,KAAK,CAAA;gBACb,CAAC;YACF,CAAC,CAAC,CAAA;YAEF,IAAI,KAAK,IAAI,CAAC,EAAG,CAAC;gBACf,IAAI,CAAE,KAAK,CAAiB,CAAC,YAAY,CAAE,IAAI,CAAE,CAAA;YACpD,CAAC;QAEF,CAAC;QAGD,cAAc,CAAE,IAAe,EAAE,QAA+B,OAAO;YAEtE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAA;YAC3D,IAAI,CAAC,YAAY,CAAE,IAAI,GAAG,CAAE,IAAI,CAAE,CAAE,CAAA;YAEpC,IAAI,CAAC;gBACJ,IAAI,CAAC,SAAS,EAAE,CAAA;YACjB,CAAC;oBAAS,CAAC;gBACV,IAAI,CAAC,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;YACjD,CAAC;QAEF,CAAC;QAED,KAAK;YAEJ,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAA;YACnC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBAAG,OAAM;YAMhE,IAAI,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAE,CAAC,EAAE,GAAE,EAAE;gBACrC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;YACrB,CAAC,CAAE,CAAA;QAEJ,CAAC;QAEQ,UAAU;YAClB,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;YACnD,IAAI,CAAE,IAAI;gBAAE,OAAM;YAElB,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;YACxD,IAAI,CAAE,MAAM;gBAAE,OAAM;YAEpB,KAAK,IAAI,UAAU,IAAI,MAAM,EAAG,CAAC;gBAChC,IAAI,CAAC,mBAAmB,CACvB,UAAU,EACV,MAAM,CAAE,UAAU,CAAE,CACpB,CAAA;YACF,CAAC;QACF,CAAC;;IArcD;QADE,QAAQ;0CAGT;IAOD;QADE,QAAQ;4CAKT;IAQD;QADE,SAAS,CAAC,MAAM;6CAGjB;IAkBD;QADE,QAAQ;kDAqBT;IAQD;QADE,QAAQ;mDAoBT;IAKD;QADE,QAAQ;8CAST;IAGD;QADE,SAAS,CAAC,MAAM;2CAGjB;IAaD;QADE,QAAQ;6CAUT;IAGD;QADE,QAAQ;8CAgBT;IAGD;QADE,QAAQ;6CA8CT;IAGD;QADE,QAAQ;oDAWT;IAOD;QADE,QAAQ;2CAuBT;IA0CD;QADE,SAAS,CAAC,MAAM;qDAiBjB;IAGD;QADE,SAAS,CAAC,MAAM;+CAYjB;IAGD;QADE,QAAQ;0CAGT;IA6BD;QADE,QAAQ;gDAGT;IAtZM;QADL,YAAY;+BAGb;IAGM;QADL,QAAQ;gCAmBT;IAGM;QADL,QAAQ;+BAkCT;IAkPM;QADL,SAAS,CAAC,MAAM;uCAgBjB;IA/TW,WAAS,YAugBrB,CAAA;AAIF,CAAC,EAhiBS,CAAC,KAAD,CAAC,QAgiBV;;;;ACjiBD,IAAU,CAAC,CAcV;AAdD,WAAU,CAAC;IAEV,MAAa,WAAY,SAAQ,SAAS;QAEhC,iBAAiB,CAAE,IAAe;YAC1C,OAAO,IAAI,IAAI,eAAe,CAAqD,IAAI,CAAG,CAAC,IAAK,CAAC,QAAQ,EAAE,CAAA;QAC5G,CAAC;QAEQ,MAAM;YACd,IAAI,CAAC,eAAe,EAAE,CAAA;QACvB,CAAC;KAED;IAVY,aAAW,cAUvB,CAAA;AAEF,CAAC,EAdS,CAAC,KAAD,CAAC,QAcV;;;ACdD,AAAA,+BAAS,sBAAT;AAAA,AACC;AAAA,AAAA,UAAU,KAAV;AAAA;AACA;AAAA,AAAA,UAAgB,4BAAhB;AAAA;AACA;AAAA,AAAA,UAAU,EAAV;AAAA;AACA;AAAA,AAAA,UAAa,EAAb;AAAA;AACA;AAAA,AAAA,UAAW,EAAX;AAAA;AALD,CAAA;;;;;ACAA,IAAU,CAAC,CAwBV;AAxBD,WAAU,CAAC;IAGV,MAAa,eAAgB,SAAQ,WAAW;QAGxC,AAAP,MAAM,CAAC,IAAI,CAAE,SAAiB,EAAE,KAAY;YAE3C,IAAI,SAAS,EAAG,CAAC;gBAChB,OAAO,IAAI,kBAAkB,CAAE,SAAS,EAAE,GAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAE,SAAS,EAAE,IAAI,CAAE,CAAE,CAAA;YAC9E,CAAC;iBAAM,CAAC;gBACP,OAAO,IAAI,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAE,SAAS,EAAE,IAAI,CAAE,CAAE,CAAA;YACjE,CAAC;QAEF,CAAC;QAGM,AAAP,MAAM,CAAC,GAAG,CAAE,SAAiB;YAC5B,IAAI,CAAC,IAAI,CAAE,SAAS,CAAE,CAAA;YACtB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAA;QAClB,CAAC;KAED;IAhBO;QADL,YAAY;qCASb;IAGM;QADL,YAAY;oCAIb;IAjBW,iBAAe,kBAmB3B,CAAA;AAEF,CAAC,EAxBS,CAAC,KAAD,CAAC,QAwBV;;;;;;;ACxBD,IAAU,CAAC,CAwBV;AAxBD,WAAU,CAAC;IAAC,IAAA,EAAE,CAwBb;IAxBW,WAAA,EAAE;QAEb,MAAa,QAAS,SAAQ,CAAC,CAAC,QAAQ;YAEvC,cAAc;gBACb,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAA;gBACnC,MAAM,KAAK,GAAG,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAwB,CAAA;gBAE1E,IAAG,CAAC,KAAK,CAAC,WAAW,CAAC;oBAAE,eAAe,CAAC,GAAG,CAAE,CAAC,CAAE,CAAA;gBAEhD,OAAO,KAAK,CAAA;YACb,CAAC;YAGD,SAAS;gBACR,OAAO,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAA;YAC1D,CAAC;YAGD,WAAW;gBACV,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,CAAA;YAC5C,CAAC;SAED;QAnBA;YADC,QAAQ;sDAQR;QAGD;YADC,QAAQ;iDAGR;QAGD;YADC,QAAQ;mDAGR;QAnBW,WAAQ,WAqBpB,CAAA;IACF,CAAC,EAxBW,EAAE,GAAF,IAAE,KAAF,IAAE,QAwBb;AAAD,CAAC,EAxBS,CAAC,KAAD,CAAC,QAwBV;;;ACxBD,AAAA,yCAAc,qBAAd;AAAA,AAIa;AAAA,AAAA,UAAU,aAAV;AAAA;AACY;AAAA,AAAA,UAAQ,UAAR;AAAA;AAJxB;AAAA,AAAA,UAAU,KAAV;AAAA;AACA;AAAA,AAAA,UAAK;AAAA,AACJ,qBADI;AAEJ,eAAQ,KAAG,WAAH,CAFJ;AAGJ,2BAAoB,KAAG,SAAH;AAHhB,CAAL;AAAA;AAFD,CAAA;;;;;ACAA,IAAU,CAAC,CAER;AAFH,WAAU,CAAC;IAAG,iBAAiB,CAAE,4BAA4B,EAC5D,4CAA4C,CAC5C,CAAA;AAAC,CAAC,EAFO,CAAC,KAAD,CAAC,QAER;;;;;;;ACFH,IAAU,CAAC,CAsLV;AAtLD,WAAU,CAAC;IAEV,MAAa,WAA6C,SAAQ,KAAc;QAE/E,IAAI,MAAM;YACT,OAAO,KAAK,CAAC,MAAgB,CAAA;QAC9B,CAAC;QAED,YAAa,GAAI,MAAsC,IAAK,KAAK,CAAE,GAAI,MAAM,CAAE,CAAA,CAAC,CAAC;QAEjF,GAAG,CACF,OAAkE,EAClE,IAAW;YAEX,OAAO,KAAK,CAAC,GAAG,CAAE,OAAc,EAAG,IAAI,CAAS,CAAA;QACjD,CAAC;QAED,MAAM,CACL,OAAgD,EAChD,OAAoD;YAEpD,OAAO,IAAI,CAAC,GAAG,CAAE,CAAE,KAAK,EAAG,KAAK,EAAE,EAAE,CAAC,OAAO,CAAE,KAAK,EAAG,OAAO,CAAE,KAAK,CAAE,CAAE,CAAS,CAAA;QAClF,CAAC;QAED,OAAO,CAEN,MAA0E;YAE1E,OAAO,IAAI,CAAC,MAAM,CAAE,MAAM,EAAG,CAAE,KAAK,EAAG,CAAE,GAAG,EAAG,GAAG,CAAE,EAAE,EAAE,CAAC,CAAE,KAAK,GAAG,GAAG,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,KAAK,GAAG,GAAG,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAS,CAAA;QACxH,CAAC;QAED,MAAM,CAA0C,IAAa;YAC5D,OAAO,IAAI,CAAC,GAAG,CAAE,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAS,CAAA;QAChD,CAAC;QAED,MAAM,CAA0C,IAA8C;YAC7F,OAAO,IAAI,CAAC,MAAM,CAAE,IAAI,EAAG,CAAE,CAAC,EAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAS,CAAA;QACtD,CAAC;QAED,YAAY,CAA0C,IAA8C;YACnG,OAAO,IAAI,CAAC,MAAM,CAAE,IAAI,EAAG,CAAE,CAAC,EAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAS,CAAA;QACtD,CAAC;QAED,OAAO,CAA0C,IAAa;YAC7D,OAAO,IAAI,CAAC,GAAG,CAAE,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAS,CAAA;QAChD,CAAC;QAED,OAAO,CAEN,KAA+C;YAE/C,OAAO,IAAI,CAAC,MAAM,CAAE,KAAK,EAAG,CAAE,CAAC,EAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAS,CAAA;QACvD,CAAC;QAED,QAAQ,CAEP,KAA+C;YAE/C,OAAO,IAAI,CAAC,MAAM,CAAE,KAAK,EAAG,CAAE,CAAC,EAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAS,CAAA;QACvD,CAAC;QAED,QAAQ,CAA0C,IAAa;YAC9D,OAAO,IAAI,CAAC,GAAG,CAAE,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,CAAS,CAAA;QACjD,CAAC;QAED,SAAS,CAER,KAA+C;YAE/C,OAAO,IAAI,CAAC,MAAM,CAAE,KAAK,EAAG,CAAE,KAAK,EAAG,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAE,KAAK,CAAE,CAAS,CAAA;QAClF,CAAC;QAED,SAAS,CAER,KAAyE;YAEzE,OAAO,IAAI,CAAC,MAAM,CAAE,KAAK,EAAG,CAAE,MAAM,EAAG,MAAM,EAAE,EAAE;gBAChD,IAAI,IAAI,GAAG,MAAM,CAAA;gBACjB,MAAM,KAAK,GAAG,MAAM,CAAC,WAAuC,CAAA;gBAC5D,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;oBAAE,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjE,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;oBAAE,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;gBAEhE,OAAO,IAAI,CAAA;YACZ,CAAC,CAAQ,CAAA;QACV,CAAC;QAED,MAAM;YAGL,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAiC,CAAA;YACxD,OAAO,IAAI,MAAM,CAAE,GAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAE,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAE,CAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAE,GAAG,IAAI,CAAC,MAAM,CAAE,CAAS,CAAA;QACvH,CAAC;QAED,QAAQ;YAGP,IAAI,QAAQ,GAAG,CAAC,CAAA;YAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAG,CAAC;gBACvC,QAAQ,IAAI,IAAI,CAAE,CAAC,GAAG,CAAC,CAAE,CAAC,MAAM,CAAE,CAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAE,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,EAAE,CAAC,CAAE,IAAI,CAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAE,CAAA;YACnH,CAAC;YAED,OAAO,QAAQ,CAAA;QAChB,CAAC;QAED,UAAU;YAGT,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAE,CAAA;QAC3D,CAAC;QAED,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC;QAC1B,IAAI,CAAC,CAAE,IAAW,IAAK,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA,CAAC,CAAC;QAEvC,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC;QAC1B,IAAI,CAAC,CAAE,IAAW,IAAK,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA,CAAC,CAAC;QAEvC,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC;QAC1B,IAAI,CAAC,CAAE,IAAW,IAAK,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA,CAAC,CAAC;KAEvC;IAtHY,aAAW,cAsHvB,CAAA;IAED,MAAa,cAAwB,SAAQ,WAAwB;KAAI;IAA5D,gBAAc,iBAA8C,CAAA;IAEzE,MAAa,cAAwB,SAAQ,WAAwB;KAAG;IAA3D,gBAAc,iBAA6C,CAAA;IAExE,MAAa,cAAwB,SAAQ,WAAwB;KAAG;IAA3D,gBAAc,iBAA6C,CAAA;IAExE,MAAa,iBAA2B,SAAQ,WAAwB;QAEvE,CAAC,CAAO;QACR,CAAC,CAAO;QAER,YAAa,GAAU,EAAE,GAAG,GAAG,GAAG;YACjC,KAAK,CAAE,GAAG,EAAE,GAAG,CAAE,CAAA;YACjB,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;YACb,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;QACd,CAAC;QAED,IAAI,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC;QAC5B,IAAI,GAAG,CAAE,IAAW,IAAK,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA,CAAC,CAAC;QAEzC,IAAI,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC;QAC5B,IAAI,GAAG,CAAE,IAAW,IAAK,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA,CAAC,CAAC;QAEzC,IAAI,QAAQ;YACX,OAAO,IAAM,IAAI,CAAC,WAAyC,CAAE,IAAI,CAAC,GAAG,EAAG,IAAI,CAAC,GAAG,CAAE,CAAA;QACnF,CAAC;QAED,SAAS,CAAE,KAAa;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAuC,CAAA;YAC1D,IAAI,KAAK,GAAG,IAAkC,CAAA;YAE9C,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG;gBAAG,KAAK,GAAG,IAAI,KAAK,CAAE,KAAK,CAAC,GAAG,EAAG,KAAK,CAAE,CAAA;YAC9D,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG;gBAAG,KAAK,GAAG,IAAI,KAAK,CAAE,KAAK,EAAG,KAAK,CAAC,GAAG,CAAE,CAAA;YAE9D,OAAO,KAAK,CAAA;QACb,CAAC;KAED;IA/BY,mBAAiB,oBA+B7B,CAAA;IAEU,wBAAsB,GAAG,IAAI,iBAAiB,CAAE,MAAM,CAAC,iBAAiB,EAAG,MAAM,CAAC,iBAAiB,CAAE,CAAA;IAEhH,MAAa,kBAGX,SAAQ,WAA8D;QAEvE,MAAM,CACL,IAAkF;YAElF,OAAO,IAAI,CAAC,MAAM,CAAE,IAAI,EAAG,CAAE,CAAC,EAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAE,CAAE,EAAE,EAAG,KAAK,EAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAE,KAAK,CAAE,CAAS,CAAS,CAAA;QAClG,CAAC;QAED,OAAO,CACN,IAAkF;YAElF,OAAO,IAAI,CAAC,MAAM,CAAE,IAAI,EAAG,CAAE,CAAC,EAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAE,CAAE,EAAE,EAAG,KAAK,EAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAE,KAAK,CAAE,CAAS,CAAS,CAAA;QAClG,CAAC;KAED;IAjBY,oBAAkB,qBAiB9B,CAAA;AAEF,CAAC,EAtLS,CAAC,KAAD,CAAC,QAsLV;;;ACtLD,AAAA,mCAAW,wBAAX;AAAA,AAmDwB;AAAA,AAAA;AAAA,UAAkB,IAAlB;AAAA;AACA;AAAA,AAAA;AAAA,UAAiB,IAAjB;AAAA;AACF;AAAA,AAAA;AAAA,UAAgB,IAAhB;AAAA;AACG;AAAA,AAAA;AAAA,UAAkB,IAAlB;AAAA;AACP;AAAA,AAAA;AAAA,UAAkB,IAAlB;AAAA;AAtDjB;AAAA,AAAA;AAAA,UAAY,CAAZ;AAAA;AACA;AAAA,AAAA;AAAA,UAAgB,CAAhB;AAAA;AACA;AAAA,AAAA;AAAA,UAAM,CAAN;AAAA;AACA;AAAA,AAAA,UAAW,IAAX;AAAA;AACA;AAAA,AAAA,UAAU,IAAV;AAAA;AACA;AAAA,AAAA,UAAW,IAAX;AAAA;AACA;AAAA,AAAA;AAAA,UAAc,EAAd;AAAA;AACA;AAAA,AAAA;AAAc,yCACb,GADa,EAEb,GAFa,CAAd;AAAA,UAAc,GAAd;AAAA;AAIA;AAAA,AAAA;AAAA,UAAW,CACV,CADU,EAEV,CAFU,CAAX;AAAA;AAGA;AAAA,AAAA;AAAK,yCACJ,CADI,EAEJ,CAFI,CAAL;AAAA,UAAK,GAAL;AAAA;AAGA;AAAA,AAAe,yCACd,GADc,EAEd,GAFc,CAAf;AAAA,UAAe,GAAf;AAAA;AAIA;AAAA,AAAA;AAAA,UAAW,IAAX;AAAA;AACA;AAAA,AAAA,UAAgB,EAAhB;AAAA;AAEA;AAAA,AAAA;AAAA,UAAa,IAAb;AAAA;AACA;AAAA,AAAA;AAAA,UAAc,IAAd;AAAA;AACA;AAAA,AAAA;AAAA,UAAY,IAAZ;AAAA;AACA;AAAA,AAAA;AAAA,UAAW,IAAX;AAAA;AAEA;AAAA,AAAA;AAAA,UAAkB,IAAlB;AAAA;AACA;AAAA,AAAA;AAAA,UAAmB,IAAnB;AAAA;AACA;AAAA,AAAA;AAAA,UAAiB,IAAjB;AAAA;AACA;AAAA,AAAA;AAAA,UAAgB,IAAhB;AAAA;AAEA;AAAA,AAAA;AAAA,UAAgB,IAAhB;AAAA;AACA;AAAA,AAAA;AAAA,UAAiB,IAAjB;AAAA;AACA;AAAA,AAAA;AAAA,UAAe,IAAf;AAAA;AACA;AAAA,AAAA;AAAA,UAAc,IAAd;AAAA;AAEA;AAAA,AAAA;AAAA,UAAiB,IAAjB;AAAA;AACA;AAAA,AAAA;AAAA,UAAW,IAAX;AAAA;AACA;AAAA,AAAA;AAAA,UAAe,IAAf;AAAA;AAEA;AAAA,AAAA,UAAM;AAAA,AACL,sBADK;AAEL,oBAAc,MAFT;AAGL,2BAAqB;AAHhB,CAAN;AAAA;AAKA;AAAA,AAAA,UAAM;AAAA,AACL,sBADK;AAEL,6BAAkB,KAAI,kBAAJ,CAFb;AAGL,6BAAkB,KAAI,iBAAJ,CAHb;AAIL,2BAAgB,KAAI,gBAAJ,CAJX;AAKL,8BAAmB,KAAI,kBAAJ,CALd;AAML,uBAAY,KAAI,kBAAJ;AANP,CAAN;AAAA;AAjDD,CAAA;AAmDwB,YAnDxB,CAmDwB,uCAnDxB;AAoDwB,YApDxB,CAoDwB,sCApDxB;AAqDsB,YArDtB,CAqDsB,qCArDtB;AAsDyB,YAtDzB,CAsDyB,uCAtDzB;AAuDkB,YAvDlB,CAuDkB,uCAvDlB;AACC,YADD,CACC,sCADD;AAEC,YAFD,CAEC,0CAFD;AAGC,YAHD,CAGC,gCAHD;AAOC,YAPD,CAOC,uCAPD;AAQC,YARD,CAQC,wCARD;AAYC,YAZD,CAYC,qCAZD;AAeC,YAfD,CAeC,+BAfD;AAkBC,YAlBD,CAkBC,0CAlBD;AAsBC,YAtBD,CAsBC,qCAtBD;AAyBC,YAzBD,CAyBC,uCAzBD;AA0BC,YA1BD,CA0BC,wCA1BD;AA2BC,YA3BD,CA2BC,sCA3BD;AA4BC,YA5BD,CA4BC,qCA5BD;AA8BC,YA9BD,CA8BC,4CA9BD;AA+BC,YA/BD,CA+BC,6CA/BD;AAgCC,YAhCD,CAgCC,2CAhCD;AAiCC,YAjCD,CAiCC,0CAjCD;AAmCC,YAnCD,CAmCC,0CAnCD;AAoCC,YApCD,CAoCC,2CApCD;AAqCC,YArCD,CAqCC,yCArCD;AAsCC,YAtCD,CAsCC,wCAtCD;AAwCC,YAxCD,CAwCC,sCAxCD;AAyCC,YAzCD,CAyCC,gCAzCD;AA0CC,YA1CD,CA0CC,oCA1CD;;;;;;;;;;;ACAA,IAAU,CAAC,CA2UV;AA3UD,WAAU,CAAC;IAAC,IAAA,EAAE,CA2Ub;IA3UW,WAAA,EAAE;QAMb,MAAa,UAAW,SAAQ,CAAC,CAAC,UAAU;YAE3C,IAAI;gBACH,IAAI,CAAC,cAAc,EAAE,CAAA;gBACrB,IAAI,CAAC,SAAS,EAAE,CAAA;gBAChB,IAAI,CAAC,SAAS,EAAE,CAAA;gBAChB,IAAI,CAAC,cAAc,EAAE,CAAA;gBACrB,IAAI,CAAC,UAAU,EAAE,CAAA;gBACjB,IAAI,CAAC,WAAW,EAAE,CAAA;gBAClB,IAAI,CAAC,SAAS,EAAE,CAAA;YACjB,CAAC;YAGD,cAAc,CAAE,OAAO,EAA6B;gBACnD,OAAO,IAAI,CAAA;YACZ,CAAC;YAGD,cAAc;gBAEb,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;gBACpC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,OAAO,CAAE,CAAA;gBAC/D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,KAAK,CAAE,CAAA;gBAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,KAAK,OAAO,CAAE,CAAA;gBAChF,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;gBAEtE,OAAO,IAAI,WAAW,CACrB,GAAI,OAAO,CAAC,GAAG,CAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAE,KAAK,CAAE,CAAE,CACtD,CAAA;YAEF,CAAC;YAGD,cAAc;gBACb,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;gBACpC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,cAAc,CAAE,GAAG,EAAG,GAAG,CAAE,CAAA;YACzE,CAAC;YAED,YAAY,CAAE,KAAgC;gBAE7C,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAG,CAAA;gBAEvC,OAAO,IAAI,cAAc,CACxB,IAAI,CAAC,KAAK,CAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAE,EAChC,IAAI,CAAC,KAAK,CAAE,KAAK,CAAC,KAAK,GAAG,GAAG,CAAE,CAC/B,CAAA;YAEF,CAAC;YAGD,YAAY;gBAEX,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;gBACnC,IAAI,CAAC,KAAK;oBAAG,OAAO,IAAK,CAAA;gBAEzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;gBACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;gBAEtB,OAAO,IAAI,cAAc,CACxB,CAAE,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,GAAG,IAAI,EAC1B,CAAE,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,GAAG,IAAI,CAC1B,CAAA;YAEF,CAAC;YAED,SAAS,CAAE,KAAgC;gBAE1C,IAAI,KAAK,YAAY,YAAY,EAAG,CAAC;oBAEpC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE;yBAClC,MAAM,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,YAAY,CAAE;yBACxC,MAAM,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,CAAE,CAAA;oBAChD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;wBAAG,MAAM,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;oBACtF,IAAI,CAAC,cAAc,CAAE,MAAM,CAAE,CAAA;oBAE7B,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,OAAO,CAAE,CAAC,MAAM,CAAA;oBAE1E,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,WAAW,KAAK,CAAC,EAAG,CAAC;wBAC7C,OAAO,IAAI,CAAC,WAAW,CAAE,MAAM,CAAE,CAAA;oBAClC,CAAC;oBAED,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,WAAW,KAAK,CAAC,EAAG,CAAC;wBACzD,OAAO,IAAI,CAAC,WAAW,CAAE,MAAM,CAAE,CAAA;oBAClC,CAAC;oBAED,IAAK,MAIJ;oBAJD,WAAK,MAAM;wBACV,mCAAQ,CAAA;wBACR,qCAAS,CAAA;wBACT,uCAAU,CAAA;oBACX,CAAC,EAJI,MAAM,KAAN,MAAM,QAIV;oBAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAG,CAAC;wBACxB,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE;4BAAG,OAAO,IAAI,CAAC,WAAW,CAAE,MAAM,CAAE,CAAA;wBAC1E,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;4BAAG,OAAO,IAAI,CAAC,WAAW,CAAE,MAAM,CAAE,CAAA;wBAC1F,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;4BAAG,OAAO,IAAI,CAAC,WAAW,CAAE,KAAK,CAAE,CAAA;oBACzE,CAAC;oBAED,OAAO,IAAI,CAAC,WAAW,CAAE,EAAE,CAAE,CAAA;gBAE9B,CAAC;gBAED,IAAI,KAAK,YAAY,UAAU,EAAG,CAAC;oBAClC,IAAI,CAAC,cAAc,CAAC,CAAE,KAAY,CAAE,CAAC,CAAA;oBACrC,IAAI,KAAK,CAAC,QAAQ;wBAAG,OAAO,IAAI,CAAC,WAAW,CAAE,KAAK,CAAE,CAAA;oBACrD,OAAO,IAAI,CAAC,WAAW,CAAE,MAAM,CAAE,CAAA;gBAClC,CAAC;gBAED,OAAO,IAAI,CAAC,WAAW,CAAE,EAAE,CAAE,CAAA;YAC9B,CAAC;YAED,WAAW,CAAE,KAAoB;gBAChC,IAAI,KAAK,CAAC,gBAAgB;oBAAG,OAAM;gBAEnC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,GAAG,EAAE,CAAE,CAAA;gBAE5B,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAE,KAAK,CAAE,CAAA;gBAC3C,IAAI,CAAC,WAAW;oBAAG,OAAM;gBAEzB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;gBACpC,IAAI,CAAC,SAAS,CAAE,MAAM,CAAC,MAAM,EAAE,CAAE,CAAA;gBAEjC,IAAI,WAAW,KAAK,MAAM,EAAG,CAAC;oBAC7B,IAAI,CAAC,UAAU,CAAE,KAAK,CAAE,CAAA;oBACxB,OAAM;gBACP,CAAC;gBAED,IAAI,CAAC,cAAc,CAAE,MAAM,CAAC,QAAQ,EAAE,CAAE,CAAA;gBACxC,IAAI,CAAC,UAAU,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;YAE/B,CAAC;YAED,UAAU,CAAE,KAAoB;gBAC/B,IAAI,KAAK,CAAC,gBAAgB;oBAAG,OAAM;gBAEnC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;gBAC7B,IAAI,CAAC,IAAI;oBAAG,OAAM;gBAElB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;gBAElC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAE,KAAK,CAAE,CAAA;gBAE3C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;gBAClC,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,EAAG,CAAA;gBAEhC,IAAI,CAAC,WAAW;oBAAG,OAAM;gBACzB,IAAI,CAAC,SAAS;oBAAG,OAAM;gBAEvB,IAAI,WAAW,KAAK,MAAM,EAAG,CAAC;oBAE7B,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAE,SAAS,EAAE,GAAG,CAAE,CAAC,QAAQ,EAAE,CAAA;oBAC7D,IAAI,QAAQ,IAAI,CAAC,EAAG,CAAC;wBACpB,IAAI,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;oBACnB,CAAC;oBACD,OAAM;gBACP,CAAC;gBAED,IAAI,WAAW,KAAK,KAAK,EAAG,CAAC;oBAE5B,IAAI,CAAC,QAAQ,EAAE,CAAC,iBAAiB,CAAE,KAAK,CAAC,SAAS,CAAE,CAAA;oBAEpD,IAAI,CAAC,GAAG,CACP,IAAI,cAAc,CACjB,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EACpC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CACpC,CACD,CAAA;gBAEF,CAAC;gBAED,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;gBAExC,IACC,CACC,IAAI,CAAC,WAAW,KAAK,UAAU,CAAC,SAAS,CAAC,WAAW;uBAClD,IAAI,CAAC,eAAe,KAAK,UAAU,CAAC,SAAS,CAAC,eAAe;uBAC7D,IAAI,CAAC,cAAc,KAAK,UAAU,CAAC,SAAS,CAAC,cAAc,CAC9D;uBACE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC;uBACrC,IAAI,CAAC,GAAG,CAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAE,GAAG,SAAS,EAC/C,CAAC;oBACF,IAAI,CAAC,WAAW,CAAE,KAAK,CAAE,CAAA;gBAC1B,CAAC;gBAED,IACC,CACC,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,SAAS,CAAC,UAAU;uBAChD,IAAI,CAAC,gBAAgB,KAAK,UAAU,CAAC,SAAS,CAAC,gBAAgB;uBAC/D,IAAI,CAAC,aAAa,KAAK,UAAU,CAAC,SAAS,CAAC,aAAa,CAC5D;uBACE,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC;uBACrC,IAAI,CAAC,GAAG,CAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAE,GAAG,SAAS,EAC/C,CAAC;oBACF,IAAI,CAAC,UAAU,CAAE,KAAK,CAAE,CAAA;gBACzB,CAAC;gBAED,IACC,CACC,IAAI,CAAC,YAAY,KAAK,UAAU,CAAC,SAAS,CAAC,YAAY;uBACpD,IAAI,CAAC,cAAc,KAAK,UAAU,CAAC,SAAS,CAAC,cAAc;uBAC3D,IAAI,CAAC,eAAe,KAAK,UAAU,CAAC,SAAS,CAAC,eAAe,CAChE;uBACE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC;uBACrC,IAAI,CAAC,GAAG,CAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAE,GAAG,SAAS,EAC/C,CAAC;oBACF,IAAI,CAAC,YAAY,CAAE,KAAK,CAAE,CAAA;gBAC3B,CAAC;gBAED,IACC,CACC,IAAI,CAAC,SAAS,KAAK,UAAU,CAAC,SAAS,CAAC,SAAS;uBAC9C,IAAI,CAAC,iBAAiB,KAAK,UAAU,CAAC,SAAS,CAAC,iBAAiB;uBACjE,IAAI,CAAC,YAAY,KAAK,UAAU,CAAC,SAAS,CAAC,YAAY,CAC1D;uBACE,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC;uBACrC,IAAI,CAAC,GAAG,CAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAE,GAAG,SAAS,EAC/C,CAAC;oBACF,IAAI,CAAC,SAAS,CAAE,KAAK,CAAE,CAAA;gBACxB,CAAC;gBAED,IAAI,WAAW,KAAK,MAAM,EAAG,CAAC;oBAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;oBACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;oBAClC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;oBAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;oBAE9B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;oBACpC,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAE,QAAQ,GAAG,cAAc,CAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,cAAc,CAAA;oBACrF,IAAI,CAAC,IAAI,CAAE,UAAU,GAAG,IAAI,CAAE,CAAA;oBAE9B,MAAM,GAAG,GAAG,IAAI,cAAc,CAC7B,CAAE,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAE,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EACvE,CAAE,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAE,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CACvE,CAAA;oBAED,IAAI,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;gBAEhB,CAAC;YAEF,CAAC;YAED,SAAS,CAAE,KAAoB;gBAE9B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;gBACjC,IAAI,MAAM,KAAI,MAAM,EAAG,CAAC;oBACvB,IAAI,CAAC,QAAQ,CAAE,KAAK,CAAE,CAAA;gBACvB,CAAC;gBAED,IAAI,CAAC,WAAW,CAAE,KAAK,CAAE,CAAA;YAE1B,CAAC;YAED,WAAW,CAAE,KAAoB;gBAEhC,IAAI,CAAC,SAAS,CAAE,KAAK,CAAE,CAAA;gBACvB,IAAI,CAAC,QAAQ,EAAE,CAAC,qBAAqB,CAAE,KAAK,CAAC,SAAS,CAAE,CAAA;gBACxD,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;YAEvB,CAAC;YAED,UAAU,CAAE,KAAoB;gBAC/B,IAAI,IAAI,CAAC,SAAS,EAAG,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC;oBAAG,IAAI,CAAC,gBAAgB,CAAE,KAAK,CAAE,CAAA;;oBAC1G,IAAI,CAAC,aAAa,CAAE,KAAK,CAAE,CAAA;gBAChC,IAAI,CAAC,SAAS,CAAE,KAAK,CAAE,CAAA;YACxB,CAAC;YAED,WAAW,CAAE,KAAoB;gBAChC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,EAAG,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC;oBAAG,IAAI,CAAC,eAAe,CAAE,KAAK,CAAE,CAAA;;oBACxG,IAAI,CAAC,cAAc,CAAE,KAAK,CAAE,CAAA;gBACjC,IAAI,CAAC,SAAS,CAAE,KAAK,CAAE,CAAA;YACxB,CAAC;YAED,SAAS,CAAE,KAAoB;gBAC9B,IAAI,IAAI,CAAC,SAAS,EAAG,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC;oBAAG,IAAI,CAAC,iBAAiB,CAAE,KAAK,CAAE,CAAA;;oBAC5G,IAAI,CAAC,YAAY,CAAE,KAAK,CAAE,CAAA;gBAC/B,IAAI,CAAC,SAAS,CAAE,KAAK,CAAE,CAAA;YACxB,CAAC;YAED,YAAY,CAAE,KAAoB;gBACjC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,EAAG,CAAC,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC;oBAAG,IAAI,CAAC,cAAc,CAAE,KAAK,CAAE,CAAA;;oBACtG,IAAI,CAAC,eAAe,CAAE,KAAK,CAAE,CAAA;gBAClC,IAAI,CAAC,SAAS,CAAE,KAAK,CAAE,CAAA;YACxB,CAAC;YAED,WAAW,CAAE,KAAkB;gBAE9B,IAAI,KAAK,CAAC,gBAAgB;oBAAG,OAAM;gBAEnC,IAAI,IAAI,CAAC,GAAG,KAAK,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,SAAS,CAAC,IAAI;oBAAG,OAAM;gBAE7F,IAAI,IAAI,CAAC,GAAG,KAAK,UAAU,CAAC,SAAS,CAAC,GAAG,EAAG,CAAC;oBAC5C,KAAK,CAAC,cAAc,EAAE,CAAA;gBACvB,CAAC;gBAED,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAE,KAAK,CAAE,CAAA;gBAE3C,IAAI,WAAW,KAAK,MAAM,EAAG,CAAC;oBAE7B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,CAAA;oBACtC,IAAI,SAAS,GAAG,SAAS,GAAG,CAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAE,KAAK,CAAC,MAAM,EAAE,GAAG,CAAE,CAAE,CAAA;oBACxE,SAAS,GAAG,IAAI,CAAC,IAAI,CAAE,SAAS,CAAE,CAAA;oBAClC,MAAM,IAAI,GAAG,SAAS,GAAG,SAAS,CAAA;oBAElC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;oBAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAG,CAAA;oBACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAE,IAAI,CAAE,CAAC,MAAM,CAAE,MAAM,CAAC,OAAO,CAAE,CAAC,GAAG,IAAI,CAAE,CAAE,CAAA;oBAE9E,IAAI,CAAC,GAAG,CAAE,QAAQ,CAAE,CAAA;gBACrB,CAAC;gBAED,IAAI,WAAW,KAAK,KAAK,EAAG,CAAC;oBAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;oBAC3B,MAAM,QAAQ,GAAG,IAAI,cAAc,CAClC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EACzB,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CACzB,CAAA;oBAED,IAAI,CAAC,GAAG,CAAE,QAAQ,CAAE,CAAA;gBACrB,CAAC;YAEF,CAAC;SAED;QAtTA;YADE,QAAQ;wDAGT;QAGD;YADE,QAAQ;wDAaT;QAGD;YADE,QAAQ;wDAIT;QAcD;YADE,QAAQ;sDAcT;QA/DW,aAAU,aAmUtB,CAAA;IAEF,CAAC,EA3UW,EAAE,GAAF,IAAE,KAAF,IAAE,QA2Ub;AAAD,CAAC,EA3US,CAAC,KAAD,CAAC,QA2UV;;;AC3UD,AAAA,2CAAe,0BAAf;AAAA,AAaK;AAAA,AAAM,4CACR,KAAG,WAAH,CADQ,EAER,KAAG,YAAH,CAFQ,CAAN;AAAA,UAAM,GAAN;AAAA;AAGA;AAAA,AAAM,4CACR,KAAG,aAAH,CADQ,EAER,KAAG,UAAH,CAFQ,CAAN;AAAA,UAAM,GAAN;AAAA;AAKA;AAAA,AAAc,4CAChB,CADgB,EAEhB,CAFgB,CAAd;AAAA,UAAc,GAAd;AAAA;AAGA;AAAA,AAAc,4CAChB,CADgB,EAEhB,CAFgB,CAAd;AAAA,UAAc,GAAd;AAAA;AAUA;AAAA,AAAc,4CAChB,CADgB,EAEhB,QAFgB,CAAd;AAAA,UAAc,GAAd;AAAA;AAGA;AAAA,AAAc,4CAChB,CADgB,EAEhB,SAFgB,CAAd;AAAA,UAAc,GAAd;AAAA;AAkBA;AAAA,AAAa,4CACf,QADe,EAEf,SAFe,CAAb;AAAA,UAAa,GAAb;AAAA;AAGA;AAAA,AAAa,4CACf,QADe,EAEf,SAFe,CAAb;AAAA,UAAa,GAAb;AAAA;AAIA;AAAA,AAAsB,4CACxB,QADwB,EAExB,SAFwB,CAAtB;AAAA,UAAsB,GAAtB;AAAA;AAGA;AAAA,AAAsB,4CACxB,QADwB,EAExB,SAFwB,CAAtB;AAAA,UAAsB,GAAtB;AAAA;AAIG;AAAA,AAAA,UAAc,EAAd;AAAA;AACkD;AAAA,AAAA,UAAO,EAAP;AAAA;AAArB;AAAA,AAAA,UAAkB,KAAG,SAAH,CAAlB;AAAA;AAAlB;AAAA,AAAA,UAAe,KAAG,oBAAH,CAAf;AAAA;AAKN;AAAA,AAAA;AAAA,UAAM,CAAN;AAAA;AAEQ;AAAA,AAAA,eAHhB,QAGF,iBAAkB;AAAA;AACJ;AAAA,AAAA,UAAW,IAAX;AAAA;AACD;AAAA,AAAA,UAAU,IAAV;AAAA;AACC;AAAA,AAAA,UAAW,IAAX;AAAA;AACC;AAAA,AAAA,eAPb,QAOF,cAAe;AAAA;AACC;AAAA,AAAA,eARd,QAQF,eAAgB;AAAA;AACK;AAAA,AAAA;AAAA,UAAiB,IAAjB;AAAA;AACN;AAAA,AAAA;AAAA,UAAW,IAAX;AAAA;AACI;AAAA,AAAA;AAAA,UAAe,IAAf;AAAA;AAXjB;AAAA,AAAM,sCAAN;AACF,2BAAM,KAAI,WAAJ,CAAN,CADE;AAEF,0BAAK,KAAI,YAAJ,CAAL,CAFE;AAIF,6BAAW,KAAG,aAAH,CAAX,CAJE;AAKF,4BAAU,KAAG,YAAH,CAAV,CALE;AAMF,6BAAW,KAAG,aAAH,CAAX,CANE;AASF,iCAAiB,KAAI,iBAAJ,CAAjB,CATE;AAUF,2BAAW,KAAI,WAAJ,CAAX,CAVE;AAWF,+BAAe,KAAI,eAAJ,CAAf,CAXE;AAAA,UAAM,GAAN;AAAA;AAzEJ;AAAA,AAAA,UAAQ,MAAR;AAAA;AAEA;AAAA,AAAA;AAAA,UAAU,IAAV;AAAA;AACA;AAAA,AAAA;AAAA,UAAW,GAAX;AAAA;AAEA;AAAA,AAAA,UAAQ,EAAR;AAAA;AACA;AAAA,AAAA,UAAS,EAAT;AAAA;AACA;AAAA,AAAA,UAAS,KAAG,UAAH,CAAT;AAAA;AACA;AAAA,AAAA,UAAU,KAAG,UAAH,CAAV;AAAA;AACA;AAAA,AAAA,UAAQ,KAAG,WAAH,CAAR;AAAA;AACA;AAAA,AAAA,UAAW,KAAG,WAAH,CAAX;AAAA;AACA;AAAA,AAAI,yCACH,KAAG,QAAH,CADG,EAIH,KAAG,QAAH,CAJG,CAAJ;AAAA,UAAI,GAAJ;AAAA;AAQA;AAAA,AAAY,yCACX,KAAG,gBAAH,CADW,EAIX,KAAG,gBAAH,CAJW,CAAZ;AAAA,UAAY,GAAZ;AAAA;AAOA;AAAA,AAAc,yCACb,CADa,EAEb,CAFa,CAAd;AAAA,UAAc,GAAd;AAAA;AAGA;AAAA,AAAA;AAAO,yCACN,CADM,EAEN,CAFM,CAAP;AAAA,UAAO,GAAP;AAAA;AAGA;AAAA,AAAY,yCACX,KAAG,gBAAH,CADW,EAIX,KAAG,gBAAH,CAJW,CAAZ;AAAA,UAAY,GAAZ;AAAA;AAOA;AAAA,AAAc,yCACb,CADa,EAEb,CAFa,CAAd;AAAA,UAAc,GAAd;AAAA;AAGA;AAAA,AAAA;AAAO,yCACN,CADM,EAEN,EAFM,CAAP;AAAA,UAAO,GAAP;AAAA;AAGA;AAAA,AAAA;AAAA,UAAS,CAAT;AAAA;AACA;AAAA,AAAA;AAAA,UAAS,EAAT;AAAA;AACA;AAAA,AAAK,yCACJ,CADI,EAEJ,CAFI,CAAL;AAAA,UAAK,GAAL;AAAA;AAGA;AAAA,AAAU,yCACT,CADS,EAET,CAFS,CAAV;AAAA,UAAU,GAAV;AAAA;AAGA;AAAA,AAAW,yCACV,KAAG,eAAH,CADU,EAIV,KAAG,eAAH,CAJU,CAAX;AAAA,UAAW,GAAX;AAAA;AAOA;AAAA,AAAoB,yCACnB,KAAG,wBAAH,CADmB,EAInB,KAAG,wBAAH,CAJmB,CAApB;AAAA,UAAoB,GAApB;AAAA;AAQA;AAAA,AAAA,UAAI,KAAG,gBAAH,CAAJ;AAAA;AACA;AAAA,AAAA,UAAe,KAAG,iBAAH,CAAf;AAAA;AAEA;AAAA,AAAA,UAAQ,CACP,oBADO,EAEP,KAAG,QAAH,CAFO,CAAR;AAAA;AAxED,CAAA;AAaK,YAbL,CAaK,qCAbL;AAgBK,YAhBL,CAgBK,qCAhBL;AAqBK,YArBL,CAqBK,6CArBL;AAwBK,YAxBL,CAwBK,6CAxBL;AAkCK,YAlCL,CAkCK,6CAlCL;AAqCK,YArCL,CAqCK,6CArCL;AAuDK,YAvDL,CAuDK,4CAvDL;AA0DK,YA1DL,CA0DK,4CA1DL;AA8DK,YA9DL,CA8DK,qDA9DL;AAiEK,YAjEL,CAiEK,qDAjEL;AA2Ea,YA3Eb,CA2Ea,oCA3Eb;AAmFwB,YAnFxB,CAmFwB,0CAnFxB;AAoFkB,YApFlB,CAoFkB,oCApFlB;AAqFsB,YArFtB,CAqFsB,wCArFtB;AA0EK,YA1EL,CA0EK,qCA1EL;AAGC,YAHD,CAGC,wCAHD;AAIC,YAJD,CAIC,yCAJD;AAYC,YAZD,CAYC,mCAZD;AAoBC,YApBD,CAoBC,2CApBD;AA2BC,YA3BD,CA2BC,6CA3BD;AA8BC,YA9BD,CA8BC,qCA9BD;AAiCC,YAjCD,CAiCC,2CAjCD;AAwCC,YAxCD,CAwCC,6CAxCD;AA2CC,YA3CD,CA2CC,qCA3CD;AA8CC,YA9CD,CA8CC,uCA9CD;AA+CC,YA/CD,CA+CC,uCA/CD;AAgDC,YAhDD,CAgDC,oCAhDD;AAmDC,YAnDD,CAmDC,yCAnDD;AAsDC,YAtDD,CAsDC,0CAtDD;AA6DC,YA7DD,CA6DC,mDA7DD;;;;ACAA,AAAA,2CAAe,qBAAf;AAAA,AACC;AAAA,AAAA,UAAU,GAAV;AAAA;AADD,CAAA;;;;;;;ACAA,AAAA,2CAAe,qBAAf;AAAA,AACC;AAAA,AAAA,UAAU,OAAV;AAAA;AACA;AAAA,AAAA,UAAI,CACH,KAAG,QAAH,CADG,CAAJ;AAAA;AAFD,CAAA;;;;;;;ACAA,AAAA,6CAAgB,2BAAhB;AAAA,AAMyB;AAAA,AAAA,UAAM,OAAN;AAAA;AAId;AAAA,AAAA,UAAO,EAAP;AAAA;AAGN;AAAA,AAAW,4CACb,QADa,EAEb,SAFa,CAAX;AAAA,UAAW,GAAX;AAAA;AAGA;AAAA,AAAW,4CACb,QADa,EAEb,SAFa,CAAX;AAAA,UAAW,GAAX;AAAA;AAaA;AAAA,AAAkB,4CACpB,QADoB,EAEpB,SAFoB,CAAlB;AAAA,UAAkB,GAAlB;AAAA;AAGA;AAAA,AAAkB,4CACpB,QADoB,EAEpB,SAFoB,CAAlB;AAAA,UAAkB,GAAlB;AAAA;AAIA;AAAA,AAAa,4CACf,QADe,EAEf,SAFe,CAAb;AAAA,UAAa,GAAb;AAAA;AAGA;AAAA,AAAa,4CACf,QADe,EAEf,SAFe,CAAb;AAAA,UAAa,GAAb;AAAA;AAOA;AAAA,AAAM,4CACR,CADQ,EAER,CAFQ,CAAN;AAAA,UAAM,GAAN;AAAA;AAGA;AAAA,AAAM,4CACR,CADQ,EAER,CAFQ,CAAN;AAAA,UAAM,GAAN;AAAA;AAUc;AAAA,AAAA,UAAO,EAAP;AAAA;AAAR;AAAA,AAAA,UAAK,KAAG,QAAH,CAAL;AAAA;AA1DV;AAAA,AAAA,UAAS,EAAT;AAAA;AACA;AAAA,AAAA,UAAS,EAAT;AAAA;AAEA;AAAA,AAAA,UAAK,CACJ,iBADI,EAEJ,uBAAoB,KAAG,OAAH,CAFhB,CAAL;AAAA;AAIA;AAAA,AAAA,UAAM,CACL,kBADK,EAEL,SAAM,KAAG,QAAH,CAFD,CAAN;AAAA;AAIA;AAAA,AAAS,yCACR,KAAG,aAAH,CADQ,EAIR,KAAG,aAAH,CAJQ,CAAT;AAAA,UAAS,GAAT;AAAA;AAOA;AAAA,AAAA,UAAM,CACL,CADK,EAEL,CAFK,CAAN;AAAA;AAGA;AAAA,AAAA,UAAM,CACL,CADK,EAEL,CAFK,CAAN;AAAA;AAGA;AAAA,AAAgB,yCACf,GADe,EAEf,GAFe,CAAhB;AAAA,UAAgB,GAAhB;AAAA;AAGA;AAAA,AAAgB,yCACf,KAAG,oBAAH,CADe,EAIf,KAAG,oBAAH,CAJe,CAAhB;AAAA,UAAgB,GAAhB;AAAA;AAOA;AAAA,AAAW,yCACV,KAAG,eAAH,CADU,EAIV,KAAG,eAAH,CAJU,CAAX;AAAA,UAAW,GAAX;AAAA;AAOA;AAAA,AAAU,yCACT,CADS,EAET,CAFS,CAAV;AAAA,UAAU,GAAV;AAAA;AAGA;AAAA,AAAI,yCACH,KAAG,QAAH,CADG,EAIH,KAAG,QAAH,CAJG,CAAJ;AAAA,UAAI,GAAJ;AAAA;AAOA;AAAA,AAAA,UAAS,CAAT;AAAA;AACA;AAAA,AAAA,UAAS,CAAT;AAAA;AACA;AAAA,AAAA,UAAQ,EAAR;AAAA;AACA;AAAA,AAAA,UAAO,EAAP;AAAA;AACA;AAAA,AAAA,UAAM,EAAN;AAAA;AACA;AAAA,AAAA,UAAK,EAAL;AAAA;AACA;AAAA,AAAK,0CAAL;AACC,wBAAM,KAAG,OAAH,CAAN,CADD;AAAA,UAAK,GAAL;AAAA;AAEA;AAAA,AAAA;AAAA,UAAK,IAAL;AAAA;AACA;AAAA,AAAA,UAAO,IAAP;AAAA;AA7DD,CAAA;AAaK,YAbL,CAaK,2CAbL;AAgBK,YAhBL,CAgBK,2CAhBL;AA6BK,YA7BL,CA6BK,kDA7BL;AAgCK,YAhCL,CAgCK,kDAhCL;AAoCK,YApCL,CAoCK,6CApCL;AAuCK,YAvCL,CAuCK,6CAvCL;AA8CK,YA9CL,CA8CK,sCA9CL;AAiDK,YAjDL,CAiDK,sCAjDL;AAYC,YAZD,CAYC,yCAZD;AAyBC,YAzBD,CAyBC,gDAzBD;AA4BC,YA5BD,CA4BC,gDA5BD;AAmCC,YAnCD,CAmCC,2CAnCD;AA0CC,YA1CD,CA0CC,0CA1CD;AA6CC,YA7CD,CA6CC,oCA7CD;AA0DC,YA1DD,CA0DC,qCA1DD;AA4DC,YA5DD,CA4DC,oCA5DD;AA+DA,2DAAuB,sBAAvB;AAAA,AAGyB;AAAA,AAAA,UAAM,OAAN;AAAA;AAGd;AAAA,AAAA,UAAO,OAAP;AAAA;AALV;AAAA,AAAA,UAAK,CACJ,iBADI,EAEJ,uBAAoB,KAAG,OAAH,CAFhB,CAAL;AAAA;AAGA;AAAA,AAAA,UAAM,CACL,kBADK,EAEL,SAAM,KAAG,QAAH,CAFD,CAAN;AAAA;AAJD,CA/DA;;;;;;;;ACAA,IAAU,CAAC,CA4EV;AA5ED,WAAU,CAAC;IAAC,IAAA,EAAE,CA4Eb;IA5EW,WAAA,EAAE;QACb,MAAa,eAAgB,SAAQ,CAAC,CAAC,eAAe;YAErD,QAAQ;gBACP,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;gBAC7B,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAC/B,IAAI,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EACvC,IAAI,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CACvC,CAAA;YACF,CAAC;YAGD,OAAO;gBACN,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAE,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAuB,CAAA;YAC7D,CAAC;YAED,OAAO,CAAE,GAAW;gBACnB,OAAO,GAAG,CAAA;YACX,CAAC;YAED,OAAO,CAAE,GAAW;gBACnB,OAAO,GAAG,CAAA;YACX,CAAC;YAED,MAAM;gBACL,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBACvC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAEhC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;oBAEjC,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAE,QAAQ,CAAC,KAAK,CAAC,CAAE,GAAG,OAAO,CAAC,CAAA;oBAC7E,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAE,QAAQ,CAAC,KAAK,CAAC,CAAE,GAAG,OAAO,CAAC,CAAA;oBAE7E,OAAO,GAAG,IAAI,CAAC,GAAG,CAAE,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAE,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAE,CAAE,CAAA;oBAC3F,OAAO,GAAG,IAAI,CAAC,GAAG,CAAE,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAE,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAE,CAAE,CAAA;oBAE3F,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;gBAC1B,CAAC,CAAoC,CAAA;YACtC,CAAC;YAGD,QAAQ;gBACP,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAsB,CAAA;YACvE,CAAC;YAGD,UAAU;gBACT,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CACnC,sBAAsB,CAAC,QAAQ,EAC/B,sBAAsB,CAAC,QAAQ,CAC/B,CAAA;gBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAChC,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG;wBAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAE,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAA;oBACvE,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG;wBAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAE,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAA;oBACvE,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG;wBAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAE,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAA;oBACvE,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG;wBAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAE,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAA;gBACxE,CAAC;gBAED,OAAO,IAAI,CAAA;YACZ,CAAC;YAED,KAAK;gBACJ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;gBACtB,OAAO,GAAG,CAAC,CAAC,CAAC,QAAS,GAAI,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAA;YACjD,CAAC;YAED,KAAK;gBACJ,OAAO,CAAE,IAAI,CAAsC,CAAA;YACpD,CAAC;SAED;QA/DA;YADE,QAAQ;sDAGT;QA6BD;YADE,QAAQ;uDAGT;QAGD;YADE,QAAQ;yDAiBT;QA/DW,kBAAe,kBA0E3B,CAAA;IACF,CAAC,EA5EW,EAAE,GAAF,IAAE,KAAF,IAAE,QA4Eb;AAAD,CAAC,EA5ES,CAAC,KAAD,CAAC,QA4EV;;;;AC5ED,IAAU,CAAC,CAER;AAFH,WAAU,CAAC;IAAG,iBAAiB,CAAE,+BAA+B,EAC/D,0NAA0N,CAC1N,CAAA;AAAC,CAAC,EAFO,CAAC,KAAD,CAAC,QAER;;;;;;;ACFH,IAAU,CAAC,CAqOV;AArOD,WAAU,CAAC;IAAC,IAAA,EAAE,CAqOb;IArOW,WAAA,EAAE;QAMb,MAAa,cAAe,SAAQ,CAAC,CAAC,cAAc;YAGnD,UAAU;gBACT,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;gBAC5B,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CACnC,sBAAsB,CAAC,QAAQ,EAC/B,sBAAsB,CAAC,QAAQ,CAC/B,CAAA;gBAED,KAAK,IAAI,KAAK,IAAI,MAAM,EAAG,CAAC;oBAC3B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAA;gBAC1C,CAAC;gBAED,OAAO,IAAI,CAAA;YACZ,CAAC;YAGD,IAAI;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;gBAC9B,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAC/B,CAAE,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAE,IAAI,CAAC,EAChC,CAAE,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAE,IAAI,CAAC,CAChC,CAAA;YACF,CAAC;YAED,SAAS,CAAE,KAAc;gBACxB,OAAO,CAAE,GAAG,GAAG,CAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,KAAK,CAAE,GAAG,GAAG,CAAE,GAAG,GAAG,CAAA;YAC5E,CAAC;YAGD,cAAc;gBACb,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;gBACpC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;oBACpD,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAE,IAAI,CAAC,SAAS,CAAE,KAAK,CAAE,CAAE,CAAA;gBAC7C,CAAC;gBAED,OAAO,MAAM,CAAA;YACd,CAAC;YAED,SAAS;gBACR,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;gBAC7B,IAAI,CAAC,IAAI;oBAAG,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;gBACpD,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAE,CAAA;YAC5D,CAAC;YAED,QAAQ;gBACP,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;gBAC7B,OAAO,OAAQ,IAAI,CAAC,CAAE,IAAK,IAAI,CAAC,CAAE,EAAE,CAAA;YACrC,CAAC;YAGD,WAAW;gBACV,MAAM,EACL,CAAC,EAAE,EAAC,GAAG,EAAE,KAAK,EAAC,EACf,CAAC,EAAE,EAAC,GAAG,EAAE,GAAG,EAAC,EACb,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;gBACvB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;gBACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;gBACxB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;gBAE7B,MAAM,IAAI,GAAG,CAAE,CAAE,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAE,GAAG,IAAI,CAAC,CAAC,CAAA;gBAC1D,MAAM,MAAM,GAAG,CAAE,CAAE,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;gBAE3D,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAC/B,IAAI,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,EACzC,IAAI,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CACzC,CAAA;YACF,CAAC;YAED,aAAa;gBACZ,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;gBACjC,OAAO,IAAI,cAAc,CAAE,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAE,CAAA;YACxD,CAAC;YAGD,KAAK,CAAC,IAA+B;gBACpC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACxB,IAAI,CAAC,IAAI,CAAC,aAAa;wBAAE,OAAO,IAAI,CAAC,aAAa,EAAE,CAAA;oBACpD,IAAI,GAAG,eAAe,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAA;gBACpE,CAAC;gBACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;gBAEzB,OAAO,IAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;YACzC,CAAC;YAED,OAAO,CAAC,IAAa;gBACpB,OAAO,IAAI,CAAC,KAAK,CAChB,IAAI,KAAK,SAAS;oBACjB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,IAAI,cAAc,CAAE,IAAI,EAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAE,CAC9C,CAAC,CAAC,CAAA;YACJ,CAAC;YAED,OAAO,CAAC,IAAa;gBACpB,OAAO,IAAI,CAAC,KAAK,CAChB,IAAI,KAAK,SAAS;oBACjB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,IAAI,cAAc,CAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAG,IAAI,CAAE,CAC9C,CAAC,CAAC,CAAA;YACJ,CAAC;YAGD,WAAW;gBACV,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;gBAC9B,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBACvC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;gBAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;gBAEtB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAA;gBAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAA;gBAEvD,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAA;gBAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAA;gBAExD,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAC/B,IAAI,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,EACzC,IAAI,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CACzC,CAAA;YACF,CAAC;YAGD,aAAa;gBACZ,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;gBACjC,OAAO,IAAI,cAAc,CAAE,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAE,CAAA;YACxD,CAAC;YAED,aAAa,GAAY,KAAK,CAAA;YAG9B,KAAK,CAAC,IAA+B;gBAEpC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACxB,IAAI,CAAC,IAAI,CAAC,aAAa;wBAAE,OAAO,IAAI,CAAC,aAAa,EAAE,CAAA;oBACpD,IAAI,GAAG,eAAe,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAA;gBACpE,CAAC;gBAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;gBAEzB,OAAO,IAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;YACzC,CAAC;YAED,KAAK,CAAC,KAAa;gBAClB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAA;gBAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;gBAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;YACjC,CAAC;YAGD,cAAc;gBAEb,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAA;gBAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;gBAElC,MAAM,KAAK,GAAG,CAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAE,GAAG,SAAS,CAAC,CAAC,CAAA;gBAC/D,MAAM,KAAK,GAAG,CAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAE,GAAG,SAAS,CAAC,CAAC,CAAA;gBAE/D,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAE,KAAK,CAAC,EAAE;oBAE/C,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,EAAE,CAAA;oBAE/B,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG;wBAAG,OAAO,IAAI,CAAA;oBACzC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG;wBAAG,OAAO,IAAI,CAAA;oBAEzC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAA;oBACtC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAA;oBACtC,IAAI,CAAE,MAAM,IAAI,MAAM,CAAE,IAAI,MAAM,GAAG,KAAK,IAAI,MAAM,GAAG,KAAK;wBAAG,OAAO,KAAK,CAAA;oBAE3E,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG;wBAAG,OAAO,KAAK,CAAA;oBAC9C,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG;wBAAG,OAAO,KAAK,CAAA;oBAE9C,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG;wBAAG,OAAO,KAAK,CAAA;oBAC9C,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG;wBAAG,OAAO,KAAK,CAAA;oBAE9C,OAAO,IAAI,CAAA;gBACZ,CAAC,CAAE,CAAA;YAEJ,CAAC;YAGD,iBAAiB;gBAChB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;gBAC5B,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC1B,KAAK,CAAC,KAAK,GAAG,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;oBAC/B,KAAK,CAAC,KAAK,GAAG,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;oBAC/B,KAAK,CAAC,eAAe,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAA;oBACxD,KAAK,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;oBACtC,KAAK,CAAC,SAAS,GAAG,GAAE,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;oBACvC,KAAK,CAAC,eAAe,GAAG,GAAE,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAA;oBACnD,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;gBAC7B,CAAC;gBAED,OAAO,MAAM,CAAA;YACd,CAAC;YAGD,mBAAmB;gBAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;gBACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;gBACvC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAE,CAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAE,KAAK,CAAC,CAAC,CAAC,CAAE,CAAC,OAAO,CAAE,KAAK,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,CAAE,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAA,CAAC,GAAC,CAAC,CAAC,CAAE,CAAA;YAC5G,CAAC;YAGD,QAAQ;gBACP,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;gBAC7B,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAC/B,IAAI,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EACvC,IAAI,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CACvC,CAAA;YACF,CAAC;YAGD,aAAa;gBACZ,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;gBACpC,MAAM,MAAM,GAAG,EAAkB,CAAA;gBAEjC,KAAK,IAAI,KAAK,IAAI,MAAM;oBAAG,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;gBACvD,KAAK,IAAI,KAAK,IAAI,MAAM;oBAAG,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;gBAExD,OAAO,MAAM,CAAA;YACd,CAAC;SACD;QA1NA;YADE,QAAQ;wDAaT;QAGD;YADE,QAAQ;kDAOT;QAOD;YADE,QAAQ;4DAQT;QAcD;YADE,QAAQ;yDAiBT;QAQD;YADE,QAAQ;mDAST;QAmBD;YADE,QAAQ;yDAiBT;QAGD;YADE,QAAQ;2DAIT;QAKD;YADE,QAAQ;mDAWT;QASD;YADE,QAAQ;4DA6BT;QAGD;YADE,QAAQ;+DAcT;QAGD;YADE,QAAQ;iEAKT;QAGD;YADE,QAAQ;sDAOT;QAGD;YADE,QAAQ;2DAST;QA5NW,iBAAc,iBA6N1B,CAAA;IAEF,CAAC,EArOW,EAAE,GAAF,IAAE,KAAF,IAAE,QAqOb;AAAD,CAAC,EArOS,CAAC,KAAD,CAAC,QAqOV;;;;ACrOD,IAAU,CAAC,CAER;AAFH,WAAU,CAAC;IAAG,iBAAiB,CAAE,6BAA6B,EAC7D,mJAAmJ,CACnJ,CAAA;AAAC,CAAC,EAFO,CAAC,KAAD,CAAC,QAER;;;ACFH,AAAA,2CAAe,4BAAf;AAAA,AAOO;AAAA,AAAA,UAAO,EAAP;AAAA;AANN;AAAA,AAAA,UAAU,CAAV;AAAA;AACA;AAAA,AAAA,UAAQ,CAAR;AAAA;AACA;AAAA,AAAA,UAAY,MAAZ;AAAA;AACA;AAAA,AAAA,UAAU,MAAV;AAAA;AACA;AAAA,AAAA,UAAK,CACJ,iBADI,EAEJ,KAAE,KAAG,QAAH,CAFE,CAAL;AAAA;AAGA;AAAA,AAAA,UAAI,CACH,KAAG,OAAH,CADG,CAAJ;AAAA;AAGA;AAAA,AAAO,kDAAP;AACC,wBAAM,KAAG,QAAH,CAAN,CADD;AAEC,uBAAK,KAAG,OAAH,CAAL,CAFD;AAAA,UAAO,GAAP;AAAA;AAXD,CAAA;AAWC,YAXD,CAWC,sCAXD;;;;;;;;ACAA,IAAU,CAAC,CAgFV;AAhFD,WAAU,CAAC;IAAC,IAAA,EAAE,CAgFb;IAhFW,WAAA,EAAE;QACb,MAAa,cAAe,SAAQ,CAAC,CAAC,cAAc;YAEnD,GAAG;gBACF,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;YACtC,CAAC;YAGD,OAAO;gBAEN,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;gBAClC,MAAM,EACL,CAAC,EAAE,EAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,EAAC,EAC5C,CAAC,EAAE,EAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,EAAC,GAC5C,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAEnB,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBACvC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBACvC,MAAM,OAAO,GAAG,EAAc,CAAA;gBAE9B,IAAI,IAAI,GAAG,IAAI,cAAc,CAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,CAAE,CAAA;gBACnF,IAAI,SAAS,GAAG,IAAI,cAAc,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;gBAE1C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAEhC,MAAM,OAAO,GAAG,CAAE,KAA6B,EAAE,EAAE,CAAC,IAAI,cAAc,CACrE,KAAK,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC3B,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;wBAC9B,CAAC,CAAC,CAAC,EACJ,KAAK,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC7B,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;wBAC5B,CAAC,CAAC,CAAC,CACJ,CAAA;gBAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAE5C,MAAM,MAAM,GAAG,IAAI,cAAc,CAChC,IAAI,CAAC,KAAK,CAAE,OAAO,GAAG,IAAI,CAAC,OAAO,CAAE,QAAQ,CAAC,CAAC,CAAC,CAAE,GAAG,OAAO,CAAE,EAC7D,IAAI,CAAC,KAAK,CAAE,OAAO,GAAG,IAAI,CAAC,OAAO,CAAE,QAAQ,CAAC,CAAC,CAAC,CAAE,GAAG,OAAO,CAAE,CAC7D,CAAA;oBAED,IACC,IAAI,CAAC,GAAG,CAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,SAAS;2BACtC,IAAI,CAAC,GAAG,CAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,SAAS;wBAC3C,SAAQ;oBAEV,MAAM,IAAI,GAAG,OAAO,CAAE,MAAM,CAAE,CAAA;oBAE9B,IAAI,GAAG,MAAM,CAAA;oBAEb,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,EAAG,CAAC;wBACvF,SAAQ;oBACT,CAAC;oBAED,IAAI,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,KAAK,CAAC,EAAG,CAAC;wBAC7C,OAAO,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC,CAAE,CAAA;oBACtB,CAAC;oBAED,SAAS,GAAG,IAAI,CAAA;oBAEhB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBAEhB,CAAC;gBAED,OAAO,CAAC,IAAI,CAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;gBAEnC,OAAO,OAAO,CAAA;YACf,CAAC;YAED,KAAK;gBACJ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;gBAC5B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;oBAAG,OAAO,EAAE,CAAA;gBAEnC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBAE9D,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAA;YAC5C,CAAC;SAED;QAvEA;YADE,QAAQ;qDA6DT;QAnEW,iBAAc,iBA8E1B,CAAA;IACF,CAAC,EAhFW,EAAE,GAAF,IAAE,KAAF,IAAE,QAgFb;AAAD,CAAC,EAhFS,CAAC,KAAD,CAAC,QAgFV;;;;AChFD,IAAU,CAAC,CAER;AAFH,WAAU,CAAC;IAAG,iBAAiB,CAAE,6BAA6B,EAC7D,sPAAsP,CACtP,CAAA;AAAC,CAAC,EAFO,CAAC,KAAD,CAAC,QAER;;;ACFH,AAAA,6CAAgB,4BAAhB;AAAA,AAC2B;AAAA,AAAA,UAAO,EAAP;AAAA;AAAnB;AAAA,AAAA,UAAgB,KAAG,SAAH,CAAhB;AAAA;AAEC;AAAA,AAAA,UAAc,EAAd;AAAA;AAFR;AAAA,AAAA,UAAI,KAAG,kBAAH,CAAJ;AAAA;AACA;AAAA,AAAO,kDAAP;AACC,sBAAI,KAAG,gBAAH,CAAJ,CADD;AAAA,UAAO,GAAP;AAAA;AAFD,CAAA;AAEC,YAFD,CAEC,uCAFD;;;;;;;;ACAA,IAAU,CAAC,CA+DV;AA/DD,WAAU,CAAC;IAAC,IAAA,EAAE,CA+Db;IA/DW,WAAA,EAAE;QACb,MAAa,eAAgB,SAAQ,CAAC,CAAC,eAAe;YAGrD,eAAe;gBACd,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;gBAC5B,KAAK,IAAI,KAAK,IAAI,MAAM,EAAG,CAAC;oBAC3B,KAAK,CAAC,KAAK,GAAG,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;oBAC/B,KAAK,CAAC,KAAK,GAAG,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;oBAC/B,KAAK,CAAC,SAAS,GAAG,GAAE,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;oBACvC,KAAK,CAAC,GAAG,GAAG,GAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;oBAC3B,KAAK,CAAC,QAAQ,GAAG,GAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;oBACrC,KAAK,CAAC,QAAQ,GAAG,GAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;oBACrC,KAAK,CAAC,eAAe,GAAG,GAAE,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAA;oBACnD,KAAK,CAAC,QAAQ,GAAG,GAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;oBACrC,KAAK,CAAC,eAAe,GAAG,GAAE,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAA;oBACnD,KAAK,CAAC,GAAG,GAAG,GAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;oBAC3B,KAAK,CAAC,KAAK,GAAG,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;oBAC/B,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,GAAG,CAAE,CAAA;oBAC1C,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,GAAG,CAAE,CAAA;gBAC3C,CAAC;gBACD,OAAO,MAAM,CAAA;YACd,CAAC;YAGD,UAAU;gBACT,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;gBACrC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CACnC,sBAAsB,CAAC,QAAQ,EAC/B,sBAAsB,CAAC,QAAQ,CAC/B,CAAA;gBAED,KAAK,IAAI,KAAK,IAAI,MAAM,EAAG,CAAC;oBAC3B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAA;gBAC1C,CAAC;gBAED,OAAO,IAAI,CAAA;YACZ,CAAC;YAGD,aAAa;gBACZ,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAE,CAAA;YAC7D,CAAC;YAED,IAAI;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;gBACrC,MAAM,IAAI,GAAG,EAAuB,CAAA;gBAEpC,KAAK,IAAI,KAAK,IAAI,MAAM;oBAAG,IAAI,CAAC,IAAI,CAAE,GAAG,KAAK,CAAC,IAAI,EAAuB,CAAC,CAAA;gBAE3E,OAAO,IAAI,CAAA;YACZ,CAAC;YAED,KAAK;gBACJ,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;gBACrC,MAAM,IAAI,GAAG,EAAuB,CAAA;gBAEpC,KAAK,IAAI,KAAK,IAAI,MAAM;oBAAG,IAAI,CAAC,IAAI,CAAE,GAAG,KAAK,CAAC,KAAK,EAAuB,CAAC,CAAA;gBAE5E,OAAO,IAAI,CAAA;YACZ,CAAC;SAED;QA1DA;YADE,QAAQ;8DAmBT;QAGD;YADE,QAAQ;yDAaT;QAGD;YADE,QAAQ;4DAGT;QAzCW,kBAAe,kBA6D3B,CAAA;IACF,CAAC,EA/DW,EAAE,GAAF,IAAE,KAAF,IAAE,QA+Db;AAAD,CAAC,EA/DS,CAAC,KAAD,CAAC,QA+DV;;;AC/DD,AAAA,yCAAc,qBAAd;AAAA,AAIO;AAAA,AAAA,UAAU,EAAV;AAAA;AAHN;AAAA,AAAA,UAAU,MAAV;AAAA;AACA;AAAA,AAAA,UAAK,CACJ,iBADI,EAEJ,KAAE,KAAG,WAAH,CAFE,CAAL;AAAA;AAFD,CAAA;;;;;;;ACAA,AAAA,yCAAc,4BAAd;AAAA,AAKkB;AAAA,AAAA,UAAS,CAAT;AAAA;AAIH;AAAA,AAAA,UAAO,EAAP;AAAA;AADV;AAAA,AAAM,yCAAN;AACF,2BAAS,KAAG,QAAH,CAAT,CADE;AAAA,UAAM,GAAN;AAAA;AAPJ;AAAA,AAAA,UAAW,SAAX;AAAA;AACA;AAAA,AAAA,UAAO,CAAP;AAAA;AACA;AAAA,AAAA,UAAM,CACL,kBADK,EAEL,gBAAa,KAAG,WAAH,CAFR,CAAN;AAAA;AAGA;AAAA,AAAA,UAAI,CACH,KAAG,OAAH,CADG,EAEH,KAAG,QAAH,CAFG,CAAJ;AAAA;AAKA;AAAA,AAAO,kDAAP;AACC,wBAAM,KAAG,QAAH,CAAN,CADD;AAAA,UAAO,GAAP;AAAA;AAXD,CAAA;AAQK,YARL,CAQK,oCARL;AAWC,YAXD,CAWC,qCAXD;;;;;ACAA,IAAU,CAAC,CAkBV;AAlBD,WAAU,CAAC;IAIV,MAAM,IAAI,GAAG,mBAAmB,CAAA;IAEhC,SAAgB,eAAe,CAAE,IAAY,EAAE,GAAW;QACzD,OAAO,CAAE,IAAI,IAAI,EAAE,KAAK,CAAC,CAAE,GAAG,CAAE,GAAG,GAAG,IAAI,CAAE,CAAA;IAC7C,CAAC;IAFe,iBAAe,kBAE9B,CAAA;IAED,SAAgB,eAAe,CAAE,IAAY;QAC5C,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAA;IACvB,CAAC;IAFe,iBAAe,kBAE9B,CAAA;IAED,SAAgB,cAAc,CAAE,IAAY;QAC3C,OAAO,CAAE,IAAI,IAAI,EAAE,CAAE,IAAI,EAAE,CAAA;IAC5B,CAAC;IAFe,gBAAc,iBAE7B,CAAA;AAEF,CAAC,EAlBS,CAAC,KAAD,CAAC,QAkBV;;;;;;;AClBD,IAAU,CAAC,CA6FV;AA7FD,WAAU,CAAC;IAAC,IAAA,EAAE,CA6Fb;IA7FW,WAAA,EAAE;QACb,MAAa,aAAc,SAAQ,CAAC,CAAC,aAAa;YAGjD,MAAM;gBACL,OAAO,IAAI,GAAG,EAAE,CAAA;YACjB,CAAC;YAGD,OAAO;gBACN,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;gBAElC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;gBAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAChC,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAA;gBAC7C,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAA;gBAC9C,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAA;gBAC/C,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAA;gBAE5C,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBACvC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBAEvC,IAAI,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAA;gBACrC,IAAI,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAA;gBAErC,IAAI,OAAO,GAAG,CAAC,CAAA;gBACf,IAAI,MAAM,GAAgB,IAAI,CAAC,MAAM,EAAE,CAAA;gBACvC,IAAI,OAAiB,CAAA;gBAErB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAChC,GAAG,CAAC;oBACH,OAAO,GAAG,EAAE,CAAA;oBACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAE,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAA;wBAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAE,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAA;wBAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,CAAA;wBACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,CAAA;wBAExD,IACC,IAAI,CAAC,GAAG,CAAE,QAAQ,GAAG,MAAM,CAAE,GAAG,MAAM;+BACnC,IAAI,CAAC,GAAG,CAAE,QAAQ,GAAG,MAAM,CAAE,GAAG,MAAM;4BACxC,SAAQ;wBAEV,MAAM,GAAG,QAAQ,CAAA;wBACjB,MAAM,GAAG,QAAQ,CAAA;wBAEjB,IAAI,QAAQ,GAAG,aAAa;4BAAE,SAAQ;wBACtC,IAAI,QAAQ,GAAG,eAAe;4BAAE,SAAQ;wBACxC,IAAI,QAAQ,GAAG,cAAc;4BAAE,SAAQ;wBACvC,IAAI,QAAQ,GAAG,YAAY;4BAAE,SAAQ;wBAErC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;4BACnB,MAAM,GAAG,GAAG,eAAe,CAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,GAAG,OAAO,EACjD,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,GAAG,OAAO,CACjD,CAAA;4BACD,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;gCAAE,SAAQ;4BAE7B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;wBAChB,CAAC;wBAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;wBACf,IAAI,OAAO,CAAC,MAAM,GAAG,UAAU;4BAAE,MAAK;oBACvC,CAAC;oBACD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;oBAC5B,MAAM,CAAC,KAAK,EAAE,CAAA;gBACf,CAAC,QAAQ,OAAO,CAAC,MAAM,GAAG,UAAU,EAAC;gBAErC,OAAO,OAAO,CAAA;YACf,CAAC;YAED,KAAK;gBAEJ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;gBAC5B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;oBAAG,OAAO,EAAE,CAAA;gBAEnC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAChC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;gBAE5B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAE,CAAE,MAAM,GAAG,CAAC,CAAE,GAAG,QAAQ,GAAG,CAAC,CAAE,CAAE,CAAA;gBAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAE,CAAE,CAAC,GAAC,MAAM,GAAG,CAAC,CAAE,GAAG,QAAQ,GAAG,CAAC,CAAE,CAAE,CAAA;gBAE5E,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAE,CAAE,MAAM,GAAG,CAAC,CAAE,GAAG,QAAQ,CAAE,CAAE,CAAA;gBACpE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAE,CAAE,CAAC,GAAC,MAAM,GAAG,CAAC,CAAE,GAAG,QAAQ,CAAE,CAAE,CAAA;gBAEtE,OAAO,MAAM,CAAC,GAAG,CAChB,KAAK,CAAC,EAAE,CAAC,KAAM,KAAK,CAAC,CAAC,CAAC,GAAG,OAAQ,IAAK,KAAK,CAAC,CAAC,CAAC,GAAG,OAAQ,MAAO,MAAO,IAAK,MAAO,EAAE,CACtF,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;YACd,CAAC;SAED;QAxFA;YADC,QAAQ;mDAGR;QAGD;YADE,QAAQ;oDA+DT;QAtEW,gBAAa,gBA2FzB,CAAA;IACF,CAAC,EA7FW,EAAE,GAAF,IAAE,KAAF,IAAE,QA6Fb;AAAD,CAAC,EA7FS,CAAC,KAAD,CAAC,QA6FV;;;;AC7FD,IAAU,CAAC,CAER;AAFH,WAAU,CAAC;IAAG,iBAAiB,CAAE,2BAA2B,EAC3D,+QAA+Q,CAC/Q,CAAA;AAAC,CAAC,EAFO,CAAC,KAAD,CAAC,QAER;;;ACFH,AAAA,mDAAmB,4BAAnB;AAAA,AAEW;AAAA,AAAA,UAAa,EAAb;AAAA;AAED;AAAA,AAAA,UAAa,EAAb;AAAA;AACE;AAAA,AAAA,UAAc,EAAd;AAAA;AACC;AAAA,AAAA,UAAgB,GAAhB;AAAA;AACC;AAAA,AAAA,UAAe,EAAf;AAAA;AACF;AAAA,AAAA,UAAa,CAAb;AAAA;AAPX;AAAA,AAAA,UAAS,EAAT;AAAA;AACA;AAAA,AAAA,UAAO,KAAG,eAAH,CAAP;AAAA;AACA;AAAA,AAAO,oDAAP;AACC,uBAAK,KAAG,eAAH,CAAL,CADD;AAEC,yBAAO,KAAG,iBAAH,CAAP,CAFD;AAGC,0BAAQ,KAAG,kBAAH,CAAR,CAHD;AAIC,2BAAS,KAAG,iBAAH,CAAT,CAJD;AAKC,yBAAO,KAAG,eAAH,CAAP,CALD;AAAA,UAAO,GAAP;AAAA;AAOA;AAAA,AAAO,kDAAP;AACC,wBAAM,KAAG,QAAH,CAAN,CADD;AAAA,UAAO,GAAP;AAAA;AAVD,CAAA;AAGC,gBAHD,CAGC,yCAHD;AAUC,YAVD,CAUC,0CAVD;AAaA,+DAAyB,0BAAzB;AAAA,AAGa;AAAA,AAAA,UAAS,GAAT;AAAA;AAFZ;AAAA,AAAA,UAAM,CACL,kBADK,EAEL,WAAQ,KAAG,UAAH,CAFH,CAAN;AAAA;AADD,CAbA;;;;;;;;ACAA,IAAU,CAAC,CAmDV;AAnDD,WAAU,CAAC;IAAC,IAAA,EAAE,CAmDb;IAnDW,WAAA,EAAE;QAKb,MAAa,kBAAmB,SAAQ,CAAC,CAAC,kBAAkB;YAG3D,MAAM;gBACL,OAAO,CAAE,GAAI,IAAI,GAAG,CAAU,IAAI,CAAC,QAAQ,EAAE,CAAE,CAAE,CAAC,IAAI,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAE,CAAA;YAC3E,CAAC;YAGD,YAAY;gBACX,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAE,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC,CAAE,CAAE,CAAA;YACpD,CAAC;YAGD,YAAY,CAAE,KAAa;gBAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAE,KAAK,CAAE,CAAA;gBACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAChC,MAAM,GAAG,GAAG,EAA2B,CAAA;gBACvC,KAAK,MAAM,CAAE,KAAK,EAAE,KAAK,CAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAG,CAAC;oBACzD,IAAI,QAAQ,CAAE,KAAK,CAAE,KAAK,KAAK;wBAAG,SAAQ;oBAC1C,GAAG,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;gBAClB,CAAC;gBACD,OAAO,GAAG,CAAA;YACX,CAAC;YAGD,aAAa,CAAE,KAAa;gBAC3B,OAAO,MAAM,CAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAE,CAAA;YAC9C,CAAC;YAGD,cAAc;gBACb,OAAO,IAAI,CAAC,GAAG,CAAE,GAAI,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,CAAE,CAAA;YACpD,CAAC;YAGD,YAAY;gBACX,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,CAAA;gBAC1C,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAC3B,CAAC;YAGD,UAAU,CAAE,KAAa;gBACxB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAE,KAAK,CAAE,CAAC,cAAc,EAAE,CAAA;YAC/C,CAAC;SAED;QA1CA;YADE,QAAQ;wDAGT;QAGD;YADE,QAAQ;8DAGT;QAGD;YADE,YAAY;8DAUb;QAGD;YADE,YAAY;+DAGb;QAGD;YADE,QAAQ;gEAGT;QAGD;YADE,QAAQ;8DAIT;QAGD;YADE,YAAY;4DAGb;QA3CW,qBAAkB,qBA6C9B,CAAA;IACF,CAAC,EAnDW,EAAE,GAAF,IAAE,KAAF,IAAE,QAmDb;AAAD,CAAC,EAnDS,CAAC,KAAD,CAAC,QAmDV;;;;ACnDD,IAAU,CAAC,CAER;AAFH,WAAU,CAAC;IAAG,iBAAiB,CAAE,iCAAiC,EACjE,kFAAkF,CAClF,CAAA;AAAC,CAAC,EAFO,CAAC,KAAD,CAAC,QAER;;;ACFH,AAAA,yCAAc,4BAAd;AAAA,AAGkB;AAAA,AAAA,UAAc,MAAd;AAAA;AAIH;AAAA,AAAA,UAAO,EAAP;AAAA;AADV;AAAA,AAAM,yCAAN;AACF,2BAAS,KAAG,QAAH,CAAT,CADE;AAAA,UAAM,GAAN;AAAA;AALJ;AAAA,AAAA,UAAM,CACL,kBADK,EAEL,gBAAa,KAAG,eAAH,CAFR,CAAN;AAAA;AAGA;AAAA,AAAA,UAAI,CACH,KAAG,OAAH,CADG,EAEH,KAAG,QAAH,CAFG,CAAJ;AAAA;AAIA;AAAA,AAAO,kDAAP;AACC,wBAAM,KAAG,QAAH,CAAN,CADD;AAAA,UAAO,GAAP;AAAA;AARD,CAAA;AAMK,YANL,CAMK,oCANL;AAQC,YARD,CAQC,qCARD;;;;;;;;ACAA,IAAU,CAAC,CA4FV;AA5FD,WAAU,CAAC;IAAC,IAAA,EAAE,CA4Fb;IA5FW,WAAA,EAAE;QACb,MAAa,aAAc,SAAQ,CAAC,CAAC,aAAa;YAGjD,OAAO;gBACN,MAAM,EACL,CAAC,EAAE,EAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,EAAC,EAC5C,CAAC,EAAE,EAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,EAAC,GAC5C,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAEnB,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBACvC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBACvC,MAAM,OAAO,GAAG,EAAc,CAAA;gBAE9B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAEhC,IAAI,OAAO,GAAG,IAAqB,CAAA;gBACnC,IAAI,MAAM,GAAG,IAAqB,CAAA;gBAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC1C,MAAM,MAAM,GAAG;wBACd,IAAI,CAAC,KAAK,CAAE,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAE;wBAC7C,IAAI,CAAC,KAAK,CAAE,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAE;qBACpC,CAAA;oBAEV,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,aAAa,EAAE,CAAC;wBAC/B,OAAO,GAAG,CAAC,CAAA;wBACX,SAAQ;oBACT,CAAC;oBACD,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,cAAc,EAAE,CAAC;wBAChC,IAAI,MAAM,KAAK,IAAI;4BAAE,MAAM,GAAG,CAAC,CAAA;wBAC/B,SAAQ;oBACT,CAAC;oBAED,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,eAAe;wBAAE,SAAQ;oBACzC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY;wBAAE,SAAQ;oBAEtC,IAAI,OAAO,KAAK,IAAI;wBAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;oBAE3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;oBAEf,IAAI,MAAM,KAAK,IAAI;wBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;oBAEzC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAA;gBACxB,CAAC;gBAED,IAAI,OAAO,KAAK,IAAI;oBAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBAC3C,IAAI,MAAM,KAAK,IAAI;oBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAEzC,OAAO,OAAO,CAAA;YACf,CAAC;YAED,KAAK;gBACJ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;gBAC5B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;oBAAG,OAAO,EAAE,CAAA;gBACnC,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBAEhC,OAAO,MAAM,CAAC,GAAG,CAAE,KAAK,CAAC,EAAE,CAC1B,CAAE,MAAM,CAAC,QAAQ,CAAE,KAAK,CAAC,CAAC,CAAC,CAAE,IAAI,MAAM,CAAC,QAAQ,CAAE,KAAK,CAAC,CAAC,CAAC,CAAE,CAAE;oBAC7D,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE;oBAC1C,CAAC,CAAC,EAAE,CACL,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;YACd,CAAC;YAED,YAAY;gBACX,OAAO,CAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAE,CAAE,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;YACvE,CAAC;YAED,KAAK;gBACJ,OAAO,QAAS,IAAI,CAAC,GAAG,EAAG,gBAAgB,CAAA;YAC5C,CAAC;YAGD,UAAU;gBACT,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CACnC,sBAAsB,CAAC,QAAQ,EAC/B,IAAI,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAG,CAAC,CAAC,CACnC,CAAA;gBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC1C,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAU,CAAC,CAAA;gBAC3D,CAAC;gBAED,MAAM,GAAG,GAAG,CAAE,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAE,GAAG,QAAQ,CAAC,MAAM,IAAI,UAAU,CAAA;gBACvE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAU,CAAC,CAAA;gBAE7C,OAAO,IAAI,CAAA;YACZ,CAAC;SACD;QAvFA;YADC,QAAQ;oDAgDR;QAuBD;YADE,QAAQ;uDAiBT;QAzFW,gBAAa,gBA0FzB,CAAA;IACF,CAAC,EA5FW,EAAE,GAAF,IAAE,KAAF,IAAE,QA4Fb;AAAD,CAAC,EA5FS,CAAC,KAAD,CAAC,QA4FV;;;;AC5FD,IAAU,CAAC,CAER;AAFH,WAAU,CAAC;IAAG,iBAAiB,CAAE,2BAA2B,EAC3D,0MAA0M,CAC1M,CAAA;AAAC,CAAC,EAFO,CAAC,KAAD,CAAC,QAER;;;ACFH,AAAA,2CAAe,2BAAf;AAAA,AACC;AAAA,AAAA,UAAU,CAAV;AAAA;AADD,CAAA;;;;;;;;ACAA,IAAU,CAAC,CAuBV;AAvBD,WAAU,CAAC;IAAC,IAAA,EAAE,CAuBb;IAvBW,WAAA,EAAE;QACb,MAAa,cAAe,SAAQ,CAAC,CAAC,cAAc;YAEnD,KAAK;gBACJ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;gBAC5B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;oBAAG,OAAO,EAAE,CAAA;gBAEnC,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBAEhC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBAE5D,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,OAAO,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YAC3E,CAAC;YAED,KAAK;gBACJ,OAAO,EAAE,CAAA;YACV,CAAC;YAED,IAAI;gBACH,OAAO,CAAE,IAAI,CAAE,CAAA;YAChB,CAAC;SAED;QArBY,iBAAc,iBAqB1B,CAAA;IACF,CAAC,EAvBW,EAAE,GAAF,IAAE,KAAF,IAAE,QAuBb;AAAD,CAAC,EAvBS,CAAC,KAAD,CAAC,QAuBV;;;;ACvBD,IAAU,CAAC,CAER;AAFH,WAAU,CAAC;IAAG,iBAAiB,CAAE,6BAA6B,EAC7D,sRAAsR,CACtR,CAAA;AAAC,CAAC,EAFO,CAAC,KAAD,CAAC,QAER;;;ACFH,AAAA,yCAAc,qBAAd;AAAA,AAKW;AAAA,AAAA,UAAO,GAAP;AAAA;AACC;AAAA,AAAA,UAAQ,GAAR;AAAA;AACL;AAAA,AAAA,UAAO,EAAP;AAAA;AACA;AAAA,AAAA,UAAO,EAAP;AAAA;AAPN;AAAA,AAAA,UAAU,MAAV;AAAA;AACA;AAAA,AAAA,UAAI,EAAJ;AAAA;AACA;AAAA,AAAA,UAAK;AAAA,AACJ,qBADI;AAEJ,aAAM,KAAG,QAAH,CAFF;AAGJ,cAAO,KAAG,SAAH,CAHH;AAIJ,SAAE,KAAG,QAAH,CAJE;AAKJ,SAAE,KAAG,QAAH;AALE,CAAL;AAAA;AAHD,CAAA;;;;;;;;ACAA,IAAU,CAAC,CAcV;AAdD,WAAU,CAAC;IAAC,IAAA,EAAE,CAcb;IAdW,WAAA,EAAE;QAEb,MAAa,aAAc,SAAQ,CAAC,CAAC,aAAa;YAEjD,KAAK;gBACJ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAE,CAAC,CAAE,CAAA;YACvB,CAAC;YAED,KAAK;gBACJ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAE,CAAC,CAAE,CAAA;YACvB,CAAC;SAED;QAVY,gBAAa,gBAUzB,CAAA;IAEF,CAAC,EAdW,EAAE,GAAF,IAAE,KAAF,IAAE,QAcb;AAAD,CAAC,EAdS,CAAC,KAAD,CAAC,QAcV;;;ACdD,AAAA,yCAAc,qBAAd;AAAA,AAKO;AAAA,AAAA,UAAO,EAAP;AAAA;AACA;AAAA,AAAA,UAAO,EAAP;AAAA;AACuB;AAAA,AAAA,UAAO,QAAP;AAAA;AAAb;AAAA,AAAA,UAAU,KAAG,QAAH,CAAV;AAAA;AACO;AAAA,AAAA,UAAY,UAAZ;AAAA;AAEnB;AAAA,AAAA,UAAM,EAAN;AAAA;AATJ;AAAA,AAAA,UAAU,MAAV;AAAA;AACA;AAAA,AAAA,UAAI,EAAJ;AAAA;AACA;AAAA,AAAA,UAAK;AAAA,AACJ,qBADI;AAEJ,SAAE,KAAG,QAAH,CAFE;AAGJ,SAAE,KAAG,QAAH,CAHE;AAIJ,mBAAY,KAAG,YAAH,CAJR;AAKJ,0BAAmB,KAAG,aAAH;AALf,CAAL;AAAA;AAMA;AAAA,AAAA,UAAI,CACH,KAAG,OAAH,CADG,CAAJ;AAAA;AATD,CAAA;;;;;;;;ACAA,IAAU,CAAC,CAcV;AAdD,WAAU,CAAC;IAAC,IAAA,EAAE,CAcb;IAdW,WAAA,EAAE;QAEb,MAAa,aAAc,SAAQ,CAAC,CAAC,aAAa;YAEjD,KAAK;gBACJ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAE,CAAC,CAAE,CAAA;YACvB,CAAC;YAED,KAAK;gBACJ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAE,CAAC,CAAE,CAAA;YACvB,CAAC;SAED;QAVY,gBAAa,gBAUzB,CAAA;IAEF,CAAC,EAdW,EAAE,GAAF,IAAE,KAAF,IAAE,QAcb;AAAD,CAAC,EAdS,CAAC,KAAD,CAAC,QAcV;;;;ACdD,IAAU,CAAC,CAER;AAFH,WAAU,CAAC;IAAG,iBAAiB,CAAE,4BAA4B,EAC5D,+DAA+D,CAC/D,CAAA;AAAC,CAAC,EAFO,CAAC,KAAD,CAAC,QAER;;;ACFH,AAAA,6CAAgB,4BAAhB;AAAA,AAgBY;AAAA,AAAA,UAAc,GAAd;AAAA;AACA;AAAA,AAAA,UAAc,GAAd;AAAA;AACA;AAAA,AAAA,UAAkB,MAAlB;AAAA;AACC;AAAA,AAAA,UAAmB,IAAnB;AAAA;AAJR;AAAA,AAAW,yCAAX;AACF,wBAAM,KAAG,eAAH,CAAN,CADE;AAEF,wBAAM,KAAG,eAAH,CAAN,CAFE;AAGF,wBAAM,KAAG,mBAAH,CAAN,CAHE;AAIF,yBAAO,KAAG,oBAAH,CAAP,CAJE;AAAA,UAAW,GAAX;AAAA;AAMU;AAAA,AAAA,UAAO,EAAP;AAAA;AADV;AAAA,AAAM,yCAAN;AACF,2BAAS,KAAG,QAAH,CAAT,CADE;AAAA,UAAM,GAAN;AAAA;AAEA;AAAA,AAAA,UAAiB,EAAjB;AAAA;AAEO;AAAA,AAAA,UAAa,GAAb;AAAA;AACA;AAAA,AAAA,UAAa,MAAb;AAAA;AACA;AAAA,AAAA,UAAa,OAAb;AAAA;AAHP;AAAA,AAAM,yCAAN;AACF,wBAAM,KAAG,cAAH,CAAN,CADE;AAEF,wBAAM,KAAG,cAAH,CAAN,CAFE;AAGF,wBAAM,KAAG,cAAH,CAAN,CAHE;AAIF,uBAAK,KAAG,QAAH,CAAL,CAJE;AAAA,UAAM,GAAN;AAAA;AAOC;AAAA,AAAA,UAAc,EAAd;AAAA;AACA;AAAA,AAAA,UAAc,EAAd;AAAA;AAFG;AAAA,AAAA,UAAW,CACjB,KAAG,gBAAH,CADiB,EAEjB,KAAG,gBAAH,CAFiB,CAAX;AAAA;AAGC;AAAA,AAAA,UAAa,EAAb;AAAA;AACC;AAAA,AAAA,UAAa,EAAb;AAAA;AAhCV;AAAA,AAAA,UAAK,CAAL;AAAA;AACA;AAAA,AAAA,UAAW,CAAX;AAAA;AACA;AAAA,AAAA,UAAW,CAAX;AAAA;AACA;AAAA,AAAA,UAAW,CAAX;AAAA;AACA;AAAA,AAAgB,4CACf,QADe,EAEf,SAFe,CAAhB;AAAA,UAAgB,GAAhB;AAAA;AAGA;AAAA,AAAc,4CACb,QADa,EAEb,SAFa,CAAd;AAAA,UAAc,GAAd;AAAA;AAGA;AAAA,AAAA,UAAY,EAAZ;AAAA;AACA;AAAA,AAAA;AAAA,UAAW,CAAX;AAAA;AACA;AAAA,AAAA,UAAU,CAAV;AAAA;AACA;AAAA,AAAA,UAAI;AAAA,AACH,SAAG,aAAH,CADG;AAMH,SAAG,QAAH,CANG;AAQH,SAAG,mBAAH,CARG;AASH,SAAG,QAAH;AATG,CAAJ;AAAA;AAcA;AAAA,AAAO,yCAAP;AACC,sBAAI,KAAG,cAAH,CAAJ,CADD;AAIC,uBAAK,KAAG,eAAH,CAAL,CAJD;AAKC,wBAAM,KAAG,cAAH,CAAN,CALD;AAAA,UAAO,GAAP;AAAA;AA5BD,CAAA;AAeK,YAfL,CAeK,2CAfL;AAoBK,YApBL,CAoBK,sCApBL;AAuBK,YAvBL,CAuBK,sCAvBL;AAKC,YALD,CAKC,gDALD;AAQC,YARD,CAQC,8CARD;AAYC,YAZD,CAYC,0CAZD;AA4BC,gBA5BD,CA4BC,sCA5BD;;;;;ACAA,IAAU,CAAC,CAeV;AAfD,WAAU,CAAC;IAEV,SAAgB,sBAAsB,CAAE,GAAY,EAAG,GAAG,GAAG,CAAC;QAC7D,IAAI,GAAG,KAAK,CAAC;YAAG,OAAO,CAAC,CAAA;QAExB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;QAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAE,GAAG,GAAG,OAAO,CAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAEtD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAE,IAAI,CAAC,GAAG,CAAE,OAAO,CAAE,GAAG,IAAI,CAAC,GAAG,CAAE,EAAE,CAAE,CAAE,CAAA;QACjE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAE,EAAE,EAAG,MAAM,GAAG,GAAG,CAAE,CAAA;QAChD,MAAM,YAAY,GAAG,UAAU,GAAG,IAAI,CAAC,IAAI,CAAE,OAAO,GAAG,UAAU,CAAE,CAAA;QAEnE,OAAO,QAAQ,GAAG,YAAY,CAAA;IAC/B,CAAC;IAXe,wBAAsB,yBAWrC,CAAA;AAEF,CAAC,EAfS,CAAC,KAAD,CAAC,QAeV;;;;;;;ACfD,IAAU,CAAC,CAmFV;AAnFD,WAAU,CAAC;IAAC,IAAA,EAAE,CAmFb;IAnFW,WAAA,EAAE;QACb,MAAa,eAAgB,SAAQ,CAAC,CAAC,eAAe;YACrD,gBAAgB;gBACf,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAE,CAAE,KAAK,EAAG,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAE,KAAK,CAAE,CAAE,CAAA;YACzE,CAAC;YAGD,IAAI;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,UAAU,EAAE,CAAE,CAAA;gBAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;gBACnC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;gBACjC,MAAM,SAAS,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,KAAK,CAAE,KAAK,CAAE,CAAE,GAAG,CAAC,CAAE,GAAG,EAAE,CAAA;gBAC9D,MAAM,IAAI,GAAG,sBAAsB,CAAE,KAAK,EAAG,CAAC,CAAC,CAAE,CAAA;gBACjD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAE,CAAC,EAAG,IAAI,CAAC,GAAG,CAAE,EAAE,EAAG,IAAI,CAAC,KAAK,CAAE,IAAI,CAAC,GAAG,CAAE,IAAI,GAAG,KAAK,GAAG,SAAS,CAAE,GAAG,IAAI,CAAC,GAAG,CAAE,EAAE,CAAE,CAAE,CAAE,CAAE,CAAA;gBAClH,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,CAAA;gBACvB,MAAM,QAAQ,GAAG,SAAS,GAAG,CAAC,GAAG,KAAK,CAAA;gBACtC,IAAI,IAAI,GAAG,QAAQ;oBAAG,IAAI,IAAI,CAAC,CAAA;gBAC/B,IAAI,IAAI,GAAG,QAAQ;oBAAG,IAAI,IAAI,CAAC,CAAA;gBAE/B,OAAO,IAAI,CAAC,GAAG,CAAE,IAAI,EAAG,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,GAAG,IAAI,EAAG,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,GAAG,IAAI,CAAE,CAAA;YACpF,CAAC;YAED,YAAY,CAAC,KAAa;gBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;gBACrC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;gBAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;gBAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;gBAExB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAE,KAAK,GAAG,IAAI,CAAE,GAAG,IAAI,CAAA;gBAE7C,IAAI,KAAK,IAAI,CAAC;oBAAE,OAAO,GAAG,CAAA;gBAE1B,MAAM,WAAW,GAAG,IAAI,GAAG,KAAK,CAAA;gBAChC,MAAM,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,CAAA;gBAClC,IAAI,KAAK,GAAG,CAAC,CAAA;gBACb,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG;oBAAE,KAAK,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,WAAW,CAAA;gBACxE,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG;oBAAE,KAAK,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,WAAW,CAAA;gBAExE,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;YACtC,CAAC;YAGD,WAAW;gBACV,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;gBACnC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACzC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;gBAExB,MAAM,IAAI,GAAG,EAAc,CAAA;gBAC3B,KAAK,IAAI,GAAG,GAAG,KAAK,EAAG,GAAG,IAAI,GAAG,EAAG,GAAG,IAAI,IAAI,EAAG,CAAC;oBAClD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACf,CAAC;gBAED,OAAO,IAAI,CAAA;YACZ,CAAC;YAGD,SAAS;gBACR,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;gBACxB,OAAO,IAAI,CAAC,GAAG,CAAE,CAAC,EAAG,IAAI,CAAC,GAAG,CAAE,EAAE,EAAG,CAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAE,IAAI,CAAE,CAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,CAAE,CAAE,CAAA;YAC5F,CAAC;YAED,UAAU,CAAE,KAAc;gBACzB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAA;gBACvC,OAAO,KAAK,CAAC,OAAO,CAAE,IAAI,CAAC,SAAS,EAAE,CAAE,CAAA;YACzC,CAAC;YAED,SAAS;gBACR,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,CAAA;YACrC,CAAC;YAED,IAAI;gBACH,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;YACtB,CAAC;YAED,KAAK;gBACJ,OAAO;oBAEN,GAAG,IAAI,CAAC,gBAAgB,EAAE;oBAC1B,IAAI,CAAC,KAAK,EAAE;iBACa,CAAA;YAC3B,CAAC;SACD;QA3EA;YADE,QAAQ;mDAcT;QAsBD;YADE,QAAQ;0DAaT;QAGD;YADC,QAAQ;wDAIR;QA3DW,kBAAe,kBAiF3B,CAAA;IACF,CAAC,EAnFW,EAAE,GAAF,IAAE,KAAF,IAAE,QAmFb;AAAD,CAAC,EAnFS,CAAC,KAAD,CAAC,QAmFV;;;;ACnFD,IAAU,CAAC,CAER;AAFH,WAAU,CAAC;IAAG,iBAAiB,CAAE,+BAA+B,EAC/D,4hBAA4hB,CAC5hB,CAAA;AAAC,CAAC,EAFO,CAAC,KAAD,CAAC,QAER;;;ACFH,AAAA,uDAAqB,4BAArB;AAAA,AACC;AAAA,AAAA,UAAa,KAAb;AAAA;AACA;AAAA,AAAA,UAAa,KAAb;AAAA;AACA;AAAA,AAAA,UAAa,IAAb;AAAA;AACA;AAAA,AAAA,UAAa,KAAG,cAAH,CAAb;AAAA;AACA;AAAA,AAAA,UAAmB,MAAnB;AAAA;AACA;AAAA,AAAA,UAAiB,KAAG,cAAH,CAAjB;AAAA;AAND,CAAA;;;;;;;;ACAA,IAAU,CAAC,CAyCV;AAzCD,WAAU,CAAC;IAAC,IAAA,EAAE,CAyCb;IAzCW,WAAA,EAAE;QACb,MAAa,oBAAqB,SAAQ,CAAC,CAAC,oBAAoB;YAC/D,eAAe;gBACd,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAA;YAChC,CAAC;YAED,aAAa;gBACZ,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;YAC3D,CAAC;YAED,UAAU;gBACT,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;YACvB,CAAC;YAED,UAAU;gBACT,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;YACxB,CAAC;YAED,UAAU;gBACT,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;YACvB,CAAC;YAED,KAAK;gBACJ,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBAC9B,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBAE9B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAE,KAAK,CAAC,EAAE;oBACtC,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAE,CAAA;oBAChD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAE,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAE,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAE,CAAE,CAAA;oBACzF,OAAO,OAAQ,MAAO,SAAS,CAAA;gBAChC,CAAC,CAAC,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;YACf,CAAC;YAED,WAAW;gBACV,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YAChC,CAAC;YAED,WAAW,CAAE,KAAc;gBAC1B,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YAClF,CAAC;SACD;QAvCY,uBAAoB,uBAuChC,CAAA;IACF,CAAC,EAzCW,EAAE,GAAF,IAAE,KAAF,IAAE,QAyCb;AAAD,CAAC,EAzCS,CAAC,KAAD,CAAC,QAyCV;;;;ACzCD,IAAU,CAAC,CAER;AAFH,WAAU,CAAC;IAAG,iBAAiB,CAAE,mCAAmC,EACnE,qEAAqE,CACrE,CAAA;AAAC,CAAC,EAFO,CAAC,KAAD,CAAC,QAER;;;ACFH,AAAA,qDAAoB,4BAApB;AAAA,AACC;AAAA,AAAA,UAAa,OAAb;AAAA;AACA;AAAA,AAAA,UAAa,QAAb;AAAA;AACA;AAAA,AAAA,UAAa,GAAb;AAAA;AACA;AAAA,AAAA,UAAa,MAAb;AAAA;AACA;AAAA,AAAA,UAAa,KAAG,cAAH,CAAb;AAAA;AACA;AAAA,AAAA,UAAkB,MAAlB;AAAA;AAND,CAAA;;;;;;;;ACAA,IAAU,CAAC,CAiDV;AAjDD,WAAU,CAAC;IAAC,IAAA,EAAE,CAiDb;IAjDW,WAAA,EAAE;QACb,MAAa,mBAAoB,SAAQ,CAAC,CAAC,mBAAmB;YAC7D,eAAe;gBACd,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAA;YAChC,CAAC;YAED,aAAa;gBACZ,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;YAC3D,CAAC;YAED,UAAU;gBACT,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;YACvB,CAAC;YAED,UAAU;gBACT,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;YACvB,CAAC;YAED,UAAU;gBACT,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;YACvB,CAAC;YAED,KAAK;gBACJ,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBAE5B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAE,KAAK,CAAC,EAAE;oBACtC,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAE,CAAA;oBAChD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAE,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAE,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAE,CAAE,CAAA;oBACzF,OAAO,KAAM,MAAO,WAAW,CAAA;gBAChC,CAAC,CAAC,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;YACf,CAAC;YAED,WAAW,CAAE,KAAc;gBAC1B,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YAClF,CAAC;YAED,YAAY;gBACX,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;YACtD,CAAC;YAED,WAAW;gBACV,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YACnC,CAAC;YAED,iBAAiB;gBAChB,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;YAChC,CAAC;SACD;QA/CY,sBAAmB,sBA+C/B,CAAA;IACF,CAAC,EAjDW,EAAE,GAAF,IAAE,KAAF,IAAE,QAiDb;AAAD,CAAC,EAjDS,CAAC,KAAD,CAAC,QAiDV;;;;ACjDD,IAAU,CAAC,CAER;AAFH,WAAU,CAAC;IAAG,iBAAiB,CAAE,iCAAiC,EACjE,0IAA0I,CAC1I,CAAA;AAAC,CAAC,EAFO,CAAC,KAAD,CAAC,QAER;;;ACFH,AAAA,iDAAkB,2BAAlB;AAAA,AAKY;AAAA,AAAA,UAAW,QAAX;AAAA;AACC;AAAA,AAAA,UAAY,MAAZ;AAAA;AAEN;AAAA,AAAA,UAAU,KAAG,QAAH,CAAV;AAAA;AACA;AAAA,AAAA,UAAW,GAAX;AAAA;AALF;AAAA,AAAK,yCAAL;AACF,wBAAM,KAAG,YAAH,CAAN,CADE;AAEF,yBAAO,KAAG,aAAH,CAAP,CAFE;AAGF,sBAAI,CACH,KAAG,YAAH,CADG,EAEH,KAAG,YAAH,CAFG,CAAJ,CAHE;AAAA,UAAK,GAAL;AAAA;AAQE;AAAA,AAAA,UAAO,GAAP;AAAA;AACA;AAAA,AAAA,UAAO,MAAP;AAAA;AACK;AAAA,AAAA,UAAO,OAAP;AAAA;AAEL;AAAA,AAAA,UAAM,EAAN;AAAA;AANF;AAAA,AAAK,yCAAL;AACF,sBAAI,CACH,KAAG,QAAH,CADG,EAEH,KAAG,QAAH,CAFG,CAAJ,CADE;AAIF,wBAAM,KAAG,QAAH,CAAN,CAJE;AAKF,sBAAI,CACH,KAAG,OAAH,CADG,CAAJ,CALE;AAAA,UAAK,GAAL;AAAA;AATJ;AAAA,AAAA,UAAU,EAAV;AAAA;AACA;AAAA,AAAA,UAAM,CAAN;AAAA;AACA;AAAA,AAAA,UAAI,CACH,KAAG,OAAH,CADG,EAOH,KAAG,OAAH,CAPG,CAAJ;AAAA;AAHD,CAAA;AAIK,YAJL,CAIK,uCAJL;AAUK,YAVL,CAUK,uCAVL;;;;;ACAA,IAAU,CAAC,CASV;AATD,WAAU,CAAC;IAEV,IAAI,MAAiC,CAAA;IAErC,SAAgB,gBAAgB,CAAE,IAAI,GAAG,MAAM;QAC9C,IAAI,CAAC,IAAI;YAAG,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAE,QAAQ,CAAE,CAAC,UAAU,CAAE,IAAI,CAAG,CAAA;QAC1F,OAAO,MAAM,GAAG,IAAI,CAAA;IACrB,CAAC;IAHe,kBAAgB,mBAG/B,CAAA;AAEF,CAAC,EATS,CAAC,KAAD,CAAC,QASV;;;;ACTD,IAAU,CAAC,CAQV;AARD,WAAU,CAAC;IAEV,SAAgB,iBAAiB,CAAE,IAAY,EAAE,IAAY;QAC5D,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;QACjC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QAClB,OAAO,MAAM,CAAC,WAAW,CAAE,IAAI,CAAE,CAAC,KAAK,CAAA;IACxC,CAAC;IAJe,mBAAiB,oBAIhC,CAAA;AAEF,CAAC,EARS,CAAC,KAAD,CAAC,QAQV;;;;;;;ACRD,IAAU,CAAC,CA4BV;AA5BD,WAAU,CAAC;IAAC,IAAA,EAAE,CA4Bb;IA5BW,WAAA,EAAE;QACb,MAAa,iBAAkB,SAAQ,CAAC,CAAC,iBAAiB;YAEzD,SAAS;gBACR,OAAO,GAAI,IAAI,CAAC,KAAK,EAAG,IAAI,CAAA;YAC7B,CAAC;YAGD,KAAK;gBACJ,OAAO,iBAAiB,CACvB,IAAI,CAAC,SAAS,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,EAC7C,IAAI,CAAC,IAAI,EAAE,CACX,CAAA;YACF,CAAC;YAED,SAAS;gBACR,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBAC1B,IAAI,KAAK,KAAK,KAAK;oBAAE,OAAO,QAAQ,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,GAAG,CAAA;gBACrE,IAAI,KAAK,KAAK,QAAQ;oBAAE,OAAO,QAAQ,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,CAAA;gBAExF,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;YACpB,CAAC;YAED,SAAS;gBACR,OAAO,QAAQ,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,CAAA;YACzD,CAAC;SACD;QAlBA;YADE,QAAQ;sDAMT;QAZW,oBAAiB,oBAyB7B,CAAA;IAEF,CAAC,EA5BW,EAAE,GAAF,IAAE,KAAF,IAAE,QA4Bb;AAAD,CAAC,EA5BS,CAAC,KAAD,CAAC,QA4BV;;;;AC5BD,IAAU,CAAC,CAER;AAFH,WAAU,CAAC;IAAG,iBAAiB,CAAE,+BAA+B,EAC/D,sGAAsG,CACtG,CAAA;AAAC,CAAC,EAFO,CAAC,KAAD,CAAC,QAER;;;ACFH,AAAA,uDAAqB,4BAArB;AAAA,AAOK;AAAA,AAAa,4CACf,QADe,EAEf,SAFe,CAAb;AAAA,UAAa,GAAb;AAAA;AAGA;AAAA,AAAa,4CACf,QADe,EAEf,SAFe,CAAb;AAAA,UAAa,GAAb;AAAA;AAKU;AAAA,AAAA,UAAO,EAAP;AAAA;AADV;AAAA,AAAM,yCAAN;AACF,2BAAS,KAAG,QAAH,CAAT,CADE;AAAA,UAAM,GAAN;AAAA;AAGO;AAAA,AAAA,UAAe,GAAf;AAAA;AACA;AAAA,AAAA,UAAe,MAAf;AAAA;AACD;AAAA,AAAA,UAAS,EAAT;AAAA;AAHN;AAAA,AAAQ,6CAAR;AACF,wBAAM,KAAG,gBAAH,CAAN,CADE;AAEF,wBAAM,KAAG,gBAAH,CAAN,CAFE;AAGF,uBAAK,KAAG,UAAH,CAAL,CAHE;AAAA,UAAQ,GAAR;AAAA;AAKO;AAAA,AAAA,UAAe,GAAf;AAAA;AACA;AAAA,AAAA,UAAe,GAAf;AAAA;AACD;AAAA,AAAA,UAAS,EAAT;AAAA;AAHN;AAAA,AAAQ,6CAAR;AACF,wBAAM,KAAG,gBAAH,CAAN,CADE;AAEF,wBAAM,KAAG,gBAAH,CAAN,CAFE;AAGF,uBAAK,KAAG,UAAH,CAAL,CAHE;AAAA,UAAQ,GAAR;AAAA;AAnBJ;AAAA,AAAA,UAAO,EAAP;AAAA;AACA;AAAA,AAAA,UAAY,CAAZ;AAAA;AACA;AAAA,AAAA,UAAY,EAAZ;AAAA;AACA;AAAA,AAAA,UAAU,EAAV;AAAA;AACA;AAAA,AAAA,UAAO,EAAP;AAAA;AACA;AAAA,AAAW,yCACV,KAAG,eAAH,CADU,EAIV,KAAG,eAAH,CAJU,CAAX;AAAA,UAAW,GAAX;AAAA;AAOA;AAAA,AAAA,UAAI;AAAA,AACH,SAAG,QAAH,CADG;AAGH,SAAG,UAAH,CAHG;AAOH,SAAG,UAAH;AAPG,CAAJ;AAAA;AAbD,CAAA;AAOK,YAPL,CAOK,kDAPL;AAUK,YAVL,CAUK,kDAVL;AAcK,YAdL,CAcK,2CAdL;AAgBK,YAhBL,CAgBK,6CAhBL;AAoBK,YApBL,CAoBK,6CApBL;AAMC,YAND,CAMC,gDAND;;;;;;;;ACAA,IAAU,CAAC,CAgGV;AAhGD,WAAU,CAAC;IAAC,IAAA,EAAE,CAgGb;IAhGW,WAAA,EAAE;QACb,MAAa,oBAAqB,SAAQ,CAAC,CAAC,oBAAoB;YAG/D,OAAO;gBACN,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;gBACjC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;gBACnD,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;oBAAE,OAAO,IAAI,CAAA;gBACjE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;gBAC5B,IAAI,KAAK,GAAW,CAAC,CAAA;gBACrB,IAAI,KAAK,GAAsB,IAAW,CAAA;gBAC1C,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBACvC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBACvC,KAAK,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;oBAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAA;oBACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;oBACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;oBAEnC,KAAK,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC;wBACvB,MAAM,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;wBAC/C,MAAM,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;wBAC/C,MAAM,IAAI,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;wBAClE,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;4BAClB,KAAK,GAAG,IAAI,CAAA;4BACZ,KAAK,GAAG,CAAC,CAAA;4BACT,KAAK,GAAG,OAAO,CAAA;wBAChB,CAAC;oBACF,CAAC;gBACF,CAAC;gBAED,IAAI,CAAC,KAAK;oBAAE,OAAO,IAAI,CAAA;gBAEvB,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;gBAClF,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,CAAA;gBAE3F,OAAO,EAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAC,CAAA;YAC9B,CAAC;YAED,KAAK;gBACJ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;gBAC9B,IAAI,CAAC,OAAO;oBAAE,OAAO,EAAE,CAAA;gBACvB,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;YAC7F,CAAC;YAED,OAAO;gBACN,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;gBAC9B,IAAI,CAAC,OAAO;oBAAE,OAAO,EAAE,CAAA;gBAEvB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;gBAE5B,IAAI,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK;oBAAE,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gBAE/D,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC/B,CAAC;YAED,aAAa;gBACZ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;gBAC9B,IAAI,CAAC,OAAO;oBAAE,OAAO,GAAG,CAAA;gBACxB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAA;gBAEpC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YACjD,CAAC;YAED,aAAa;gBACZ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;gBAC9B,IAAI,CAAC,OAAO;oBAAE,OAAO,GAAG,CAAA;gBAExB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;gBAEnD,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YACtB,CAAC;YAED,OAAO;gBACN,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;gBAC9B,IAAI,CAAC,OAAO;oBAAE,OAAO,EAAE,CAAA;gBAEvB,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC/B,CAAC;YAED,aAAa;gBACZ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;gBAC9B,IAAI,CAAC,OAAO;oBAAE,OAAO,GAAG,CAAA;gBAExB,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YACnC,CAAC;YAED,aAAa;gBACZ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;gBAC9B,IAAI,CAAC,OAAO;oBAAE,OAAO,GAAG,CAAA;gBAExB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;gBAE9B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YACtB,CAAC;SAED;QA3FA;YADC,QAAQ;2DAiCR;QAnCW,uBAAoB,uBA8FhC,CAAA;IACF,CAAC,EAhGW,EAAE,GAAF,IAAE,KAAF,IAAE,QAgGb;AAAD,CAAC,EAhGS,CAAC,KAAD,CAAC,QAgGV;;;;AChGD,IAAU,CAAC,CAER;AAFH,WAAU,CAAC;IAAG,iBAAiB,CAAE,oCAAoC,EACpE,qVAAqV,CACrV,CAAA;AAAC,CAAC,EAFO,CAAC,KAAD,CAAC,QAER;;;ACFH,AAAA,mDAAmB,gCAAnB;AAAA,AACC;AAAA,AAAA,UAAO,EAAP;AAAA;AADD,CAAA;;;;;;;;ACAA,IAAU,CAAC,CAoFV;AApFD,WAAU,CAAC;IAAC,IAAA,EAAE,CAoFb;IApFW,WAAA,EAAE;QACb,MAAa,kBAAmB,SAAQ,CAAC,CAAC,kBAAkB;YAE3D,QAAQ;gBACP,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;YAChD,CAAC;YAGD,MAAM;gBACL,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAsB,CAAA;YACpE,CAAC;YAGD,eAAe;gBACd,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAChC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;gBAC5B,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBAC/B,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBAC/B,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,CAAA;gBAChC,MAAM,CAAC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBACzD,MAAM,MAAM,GAAG,cAAc,GAAG,aAAa,CAAA;gBAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;gBAClC,IAAI,OAAiB,CAAA;gBACrB,IAAI,YAAoB,CAAA;gBACxB,GAAG,CAAC;oBACH,OAAO,GAAG,EAAE,CAAA;oBACZ,YAAY,GAAG,CAAC,CAAA;oBAChB,IAAI,IAAI,GAAW,CAAC,CAAA;oBACpB,IAAI,OAAO,GAAG,CAAC,CAAA;oBACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;wBAC3B,MAAM,QAAQ,GAAG,CAAC,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,CAAA;wBAC9C,IAAI,QAAQ,GAAG,aAAa;4BAAE,SAAQ;wBACtC,IAAI,QAAQ,GAAG,cAAc;4BAAE,SAAQ;wBACvC,IAAI,OAAO,KAAK,CAAC;4BAAE,OAAO,GAAG,QAAQ,CAAA;wBACrC,IAAI,QAAQ,GAAG,OAAO,EAAE,CAAC;4BACxB,IAAI,GAAG,CAAC,CAAA;4BACR,SAAQ;wBACT,CAAC;wBACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;wBACf,OAAO,IAAI,IAAI,CAAA;wBACf,IAAI,GAAG,CAAC,CAAA;wBACR,YAAY,IAAI,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;wBAClD,IAAI,YAAY,GAAG,MAAM;4BAAE,MAAK;oBACjC,CAAC;oBACD,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;wBAChB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;wBAClB,YAAY,IAAI,SAAS,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;oBACtD,CAAC;oBAED,IAAI,IAAI,GAAG,CAAA;gBACZ,CAAC,QAAQ,YAAY,GAAG,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAC;gBAErD,OAAO,OAAO,CAAA;YAEf,CAAC;YAED,KAAK;gBACJ,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAEhC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAE,KAAK,CAAC,EAAE;oBAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAA;oBAC9C,OAAO,KAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,WAAW,CAAA;gBAC3C,CAAC,CAAC,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;YACf,CAAC;YAED,UAAU,CAAE,KAAc;gBACzB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAA;YAC5B,CAAC;YAED,gBAAgB;gBACf,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAE,KAAK,CAAE,CAAE,CAAA;YAClE,CAAC;YAED,WAAW,CAAE,KAAc;gBAC1B,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YAC/E,CAAC;YAED,WAAW,CAAE,KAAc;gBAC1B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;YAC1B,CAAC;SACD;QAhFA;YADE,QAAQ;0DAGT;QAGD;YADE,QAAQ;wDAGT;QAGD;YADE,QAAQ;iEA2CT;QAtDW,qBAAkB,qBAkF9B,CAAA;IACF,CAAC,EApFW,EAAE,GAAF,IAAE,KAAF,IAAE,QAoFb;AAAD,CAAC,EApFS,CAAC,KAAD,CAAC,QAoFV;;;;ACpFD,IAAU,CAAC,CAER;AAFH,WAAU,CAAC;IAAG,iBAAiB,CAAE,gCAAgC,EAChE,sVAAsV,CACtV,CAAA;AAAC,CAAC,EAFO,CAAC,KAAD,CAAC,QAER;;","sourcesContent":[null,"Error.stackTraceLimit = 50;\n\ndeclare let _$_: { new(): {} } & typeof globalThis\ndeclare class $ extends _$_ {}\n\nnamespace $ {\n\texport type $ = typeof $$\n\texport declare class $$ extends $ {\n\t\tstatic $: $\n\t}\n\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n","namespace $ {\n\t\n\texport var $mol_dom_context : typeof globalThis\n\t\n}\n","namespace $ {\n\n\texport function $mol_fail( error : any ) : never {\n\t\tthrow error\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_promise_like( val: any ): val is Promise<any> {\n\t\ttry {\n\t\t\treturn val && typeof val === 'object' && 'then' in val && typeof val.then === 'function'\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_fail_hidden( error : any ) : never {\n\t\tthrow error /// Use 'Never Pause Here' breakpoint in DevTools or simply blackbox this script\n\t}\n\n}\n","namespace $ {\n\n\tconst catched = new WeakMap< any , boolean >()\n\n\texport function $mol_fail_catch( error: unknown ) {\n\t\t\n\t\tif( typeof error !== 'object' ) return false\n\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\tif( catched.get( error ) ) return false\n\t\t\n\t\tcatched.set( error , true )\n\t\treturn true\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_try< Result >( handler : ()=> Result ) : Result|Error {\n\t\ttry {\n\t\t\treturn handler()\n\t\t} catch( error: any ) {\n\t\t\treturn error\n\t\t}\n\t}\n\t\n} \n","namespace $ {\n\t\n\texport function $mol_fail_log( error: unknown ) {\n\t\t\n\t\tif( $mol_promise_like( error ) ) return false\n\t\tif( !$mol_fail_catch( error ) ) return false\n\t\t\n\t\t$mol_try( ()=> { $mol_fail_hidden( error ) } )\n\t\t\n\t\treturn true\n\t\t\n\t}\n\n}\n","interface $node {\n\t[key:string]: any\n}\n\nvar $node = new Proxy( { require } as any , {\n\t\n\tget( target , name : string , wrapper ) {\n\n\t\tif( target[ name ] ) return target[ name ]\n\n\t\tif( name.startsWith( 'node:' ) ) return target.require ( name )\n\t\tif( name[0] === '.' ) return target.require( name )\n\t\t\n\t\tconst mod = target.require/****/( 'module' ) as typeof import/****/( 'module' )\n\t\tif( mod.builtinModules.indexOf( name ) >= 0 ) return target.require ( name )\n\n\t\ttry {\n\t\t\ttarget.require.resolve( name )\n\t\t} catch {\n\t\t\n\t\t\tconst $$ = ( $ as any )\n\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '--omit=dev', name )\n\t\t\t\n\t\t\ttry {\n\t\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '--omit=dev', '@types/' + name )\n\t\t\t} catch (e) {\n\t\t\t\tif ($$.$mol_fail_catch(e)) {\n\t\t\t\t\t$$.$mol_fail_log(e)\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\t\n\t\ttry {\n\t\t\treturn target.require( name )\n\t\t} catch( error ) {\n\n\t\t\tif($.$mol_fail_catch(error) && ( error as any ).code === 'ERR_REQUIRE_ESM' ) {\n\t\t\t\tconst module = cache.get( name )\n\t\t\t\tif( module ) return module\n throw Object.assign(\n import( name ).then( module => cache.set( name, module ) ),\n { cause: error }\n )\n\t\t\t}\n\t\t\t\n\t\t\t$.$mol_fail_log( error )\n\n\t\t\treturn null\n\t\t}\n\n\t},\n\n\tset( target , name : string , value ) {\n\t\ttarget[ name ] = value\n\t\treturn true\n\t},\n\n} ) as $node\n\nconst cache = new Map< string, any >()\n\nrequire = ( req =>\n\tObject.assign( function require( name : string ) {\n\t\treturn $node[ name ]\n\t} , req )\n)( require )\n\n","namespace $ {\n\t\n\tconst named = new WeakSet< Function >()\n\t\n\texport function $mol_func_name( this : $ , func : Function ) : string {\n\t\t\n\t\tlet name = func.name\n\t\tif( name?.length > 1 ) return name\n\t\tif( named.has( func ) ) return name\n\n\t\tfor( let key in this ) {\n\t\t\ttry {\n\t\t\t\tif( (this as any)[ key ] !== func ) continue\n\t\t\t\tname = key\n\t\t\t\tObject.defineProperty( func , 'name' , { value : name } )\n\t\t\t\tbreak\n\t\t\t} catch {}\n\t\t}\n\n\t\tnamed.add( func )\n\t\treturn name\n\t\t\n\t}\n\n\texport function $mol_func_name_from< Target extends Function >( target : Target , source : Function ) {\n\t\tObject.defineProperty( target , 'name' , { value : source.name } )\n\t\treturn target\n\t}\n\n}\n","namespace $ {\n\n\tfunction cause_serialize(cause: unknown) {\n\t\treturn JSON.stringify( cause, null, ' ' )\n\t\t\t.replace(/\\(/,'<')\n\t\t\t.replace(/\\)/,' >')\n\t}\n\n\tfunction frame_normalize(frame: string | Object) {\n\t\treturn ( typeof frame === 'string' ? frame : cause_serialize(frame) )\n\t\t\t.trim()\n\t\t\t.replace( /at /gm, ' at ' )\n\t\t\t.replace( /^(?! +at )(.*)/gm, ' at | $1 (#)' )\n\t}\n\n\texport class $mol_error_mix< Cause extends {} = {} > extends AggregateError {\n\t\t\n\t\tname = $$.$mol_func_name( this.constructor ).replace( /^\\$/, '' ) + '_Error'\n\n\t\tconstructor(\n\t\t\tmessage: string,\n\t\t\treadonly cause = {} as Cause,\n\t\t\t... errors: readonly Error[]\n\t\t) {\n\t\t\t\n\t\t\tsuper( errors, message, { cause } )\n\t\t\t\n\t\t\tconst desc = Object.getOwnPropertyDescriptor( this, 'stack' )\n\t\t\tconst stack_get = ()=> desc?.get?.() ?? super.stack ?? desc?.value ?? this.message\n\t\t\t\n\t\t\tObject.defineProperty( this, 'stack', {\n\t\t\t\tget: ()=> stack_get() + '\\n' + [\n\t\t\t\t\t\tthis.cause ?? 'no cause',\n\t\t\t\t\t\t... this.errors.flatMap( e => [\n\t\t\t\t\t\t\tString( e.stack ),\n\t\t\t\t\t\t\t... e instanceof $mol_error_mix || ! e.cause ? [] : [ e.cause ]\n\t\t\t\t\t\t] )\n\t\t\t\t\t].map(frame_normalize).join('\\n')\n\t\t\t} )\n\n\t\t\t// в nodejs, что б не дублировалось cause в консоли\n\t\t\tObject.defineProperty(this, 'cause', {\n\t\t\t\tget: () => cause\n\t\t\t})\t\n\t\t}\n\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\treturn $$.$mol_func_name( this )\n\t\t}\n\n\t\tstatic make(\n\t\t\t...params: ConstructorParameters<typeof $mol_error_mix>\n\t\t) {\n\t\t\treturn new this(...params)\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\n\texport const $mol_ambient_ref : unique symbol = Symbol( '$mol_ambient_ref' )\n\n\t/** @deprecated use $ instead */\n\texport type $mol_ambient_context = $\n\n\texport function $mol_ambient( this : $ | void , overrides : Partial< $ > ) : $ {\n\t\treturn Object.setPrototypeOf( overrides , this || $ )\n\t}\n\n}\n","namespace $ {\n\n\tconst instances = new WeakSet< any >()\n\n\t/**\n\t * Proxy that delegates all to lazy returned target.\n\t * \n\t * \t$mol_delegate( Array.prototype , ()=> fetch_array() )\n\t */\n export function $mol_delegate< Value extends object >(\n\t\tproto : Value ,\n\t\ttarget : ()=> Value ,\n\t) {\n\n\t\tconst proxy = new Proxy( proto , {\n\n\t\t\tget: ( _ , field )=> {\n\t\t\t\tconst obj = target()\n\t\t\t\tlet val = Reflect.get( obj , field )\n\t\t\t\tif( typeof val === 'function' ) {\n\t\t\t\t\tval = val.bind( obj )\n\t\t\t\t} \n\t\t\t\treturn val\n\t\t\t},\n\t\t\thas: ( _ , field )=> Reflect.has( target(), field ),\n\t\t\tset: ( _ , field , value )=> Reflect.set( target() , field , value ),\n\t\t\t\n\t\t\tgetOwnPropertyDescriptor: ( _ , field )=> Reflect.getOwnPropertyDescriptor( target() , field ),\n\t\t\townKeys: ()=> Reflect.ownKeys( target() ),\n\t\t\t\n\t\t\tgetPrototypeOf: ()=> Reflect.getPrototypeOf( target() ),\n\t\t\tsetPrototypeOf: ( _ , donor )=> Reflect.setPrototypeOf( target() , donor ),\n\t\t\t\n\t\t\tisExtensible: ()=> Reflect.isExtensible( target() ),\n\t\t\tpreventExtensions: ()=> Reflect.preventExtensions( target() ),\n\t\t\t\n\t\t\tapply: ( _ , self , args )=> Reflect.apply( target() as Function , self , args ),\n\t\t\tconstruct: ( _ , args , retarget )=> Reflect.construct( target() as Function , args , retarget ),\n\t\t\t\n\t\t\tdefineProperty: ( _ , field , descr )=> Reflect.defineProperty( target() , field , descr ),\n\t\t\tdeleteProperty: ( _ , field )=> Reflect.deleteProperty( target() , field ),\n\n\t\t} )\n\n\t\tinstances.add( proxy )\n\n\t\treturn proxy\n\n\t}\n\n\tReflect.defineProperty(\n\t\t$mol_delegate ,\n\t\tSymbol.hasInstance ,\n\t\t{\n\t\t\tvalue : ( obj : object )=> instances.has( obj ),\n\t\t},\n\t)\n\n}\n","namespace $ {\n\n\texport const $mol_owning_map = new WeakMap< any , any >()\n\n\texport function $mol_owning_allow< Having >(\n\t\thaving : Having ,\n\t) : having is Having & {\n\t\tdestructor() : void\n\t} {\n\t\ttry {\n\t\t\tif( !having ) return false\n\t\t\tif( typeof having !== 'object' && typeof having !== 'function' ) return false\n\t\t\tif( having instanceof $mol_delegate ) return false\n\t\t\tif( typeof (having as any)['destructor'] !== 'function' ) return false\n\t\t\treturn true\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n\texport function $mol_owning_get< Having , Owner extends object >( having : Having , Owner? : { new() : Owner } ) : Owner | null {\n\t\n\t\tif( !$mol_owning_allow( having ) ) return null\n\n\t\twhile( true ) {\n\n\t\t\tconst owner = $mol_owning_map.get( having )\n\t\t\tif( !owner ) return owner\n\t\t\tif( !Owner ) return owner\n\t\t\t\n\t\t\tif( owner instanceof Owner ) return owner\n\n\t\t\thaving = owner\n\t\t}\n\n\t}\n\t\n\texport function $mol_owning_check< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) : having is Having & { destructor() : void } {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) !== owner ) return false\n\t\treturn true\n\t}\n\t\n\texport function $mol_owning_catch< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) ) return false\n\n\t\t$mol_owning_map.set( having , owner )\n\t\treturn true\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_object2 {\n\t\t\n\t\tstatic $ = $ as any as $\n\t\t\n\t\t[Symbol.toStringTag]!: string\n\n\t\t[ $mol_ambient_ref ] = null as any as $\n\t\tget $() {\n\t\t\tif( this[ $mol_ambient_ref ] ) return this[ $mol_ambient_ref ]\n\t\t\tconst owner = $mol_owning_get( this ) as any\n\t\t\treturn this[ $mol_ambient_ref ] = owner?.$ || (this.constructor as { $?: $ }).$ || $mol_object2.$ as $\n\t\t}\n\t\tset $( next : $ ) {\n\t\t\tif( this[ $mol_ambient_ref ] ) $mol_fail_hidden( new Error( 'Context already defined' ) )\n\t\t\tthis[ $mol_ambient_ref ] = next\n\t\t}\n\n\t\tpublic static create< Instance >(\n\t\t\tthis : new( init? : ( instance : any )=> void )=> Instance ,\n\t\t\tinit? : ( instance : $mol_type_writable<Instance> )=> void\n\t\t) : Instance {\n\t\t\tconst obj = new this\n\t\t\tif( init ) init( obj )\n\t\t\treturn obj\n\t\t}\n\t\t\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\treturn ( this as any )[ Symbol.toStringTag ] || this.$.$mol_func_name( this )\n\t\t}\n\t\t\n\t\tstatic toJSON() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tdestructor() { }\n\t\tstatic destructor() { }\n\t\t\n\t\t//[ Symbol.toPrimitive ]( hint: string ) {\n\t\t//\treturn hint === 'number' ? this.valueOf() : this.toString()\n\t\t//}\n\t\t\n\t\ttoString(): string {\n\t\t\treturn this[ Symbol.toStringTag ] || this.constructor.name + '<>'\n\t\t}\n\t\t\n\t\t// toJSON(): any {\n\t\t// \treturn this.toString()\n\t\t// }\n\n\t}\n}\n","namespace $ {\n\n\texport namespace $$ { let $ }\n\n\texport const $mol_object_field = Symbol( '$mol_object_field' )\n\t\n\texport class $mol_object extends $mol_object2 {\n\t\t\n\t\tpublic static make< This extends typeof $mol_object >(\n\t\t\tthis: This,\n\t\t\tconfig: Partial< InstanceType< This > >,\n\t\t) {\n\t\t\treturn super.create( obj => {\n\t\t\t\tfor( let key in config ) ( obj as any )[ key ] = config[ key ]!\n\t\t\t} ) as InstanceType< This >\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\texport function $mol_env() {\n\t\treturn {} as Record< string, string | undefined >\n\t}\n}\n","namespace $ {\n\t$.$mol_env = function $mol_env() {\n\t\treturn this.process.env\n\t}\n}\n","namespace $ {\n\n\t/** Generates unique identifier. */\n\texport function $mol_guid(\n\t\tlength = 8,\n\t\texists: ( id: string )=> boolean = ()=> false,\n\t) {\n\n\t\tfor(;;) {\n\n\t\t\tlet id = Math.random().toString( 36 ).substring( 2, length + 2 ).toUpperCase()\n\t\t\tif( exists( id ) ) continue\n\t\t\t\n\t\t\treturn id\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Special status statuses. */\n\texport enum $mol_wire_cursor {\n\t\t\n\t\t/** Update required. */\n\t\tstale = -1,\n\t\t\n\t\t/** Some of (transitive) pub update required. */\n\t\tdoubt = -2,\n\t\t\n\t\t/** Actual state but may be dropped. */\n\t\tfresh = -3,\n\t\t\n\t\t/** State will never be changed. */\n\t\tfinal = -4,\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Collects subscribers in compact array. 28B\n\t */\n\texport class $mol_wire_pub extends Object {\n\t\t\n\t\tconstructor( id = `$mol_wire_pub:${ $mol_guid() }` ) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = id\n\t\t}\n\t\t\n\t\t[ Symbol.toStringTag ]!: string\n\t\tdata = [] as unknown[]\n\t\t\n\t\t// Derived objects should be Arrays.\n\t\tstatic get [ Symbol.species ]() {\n\t\t\treturn Array\n\t\t}\n\t\t\n\t\t/**\n\t\t * Index of first subscriber.\n\t\t */\n\t\tprotected sub_from = 0 // 4B\n\t\t\n\t\t/**\n\t\t * All current subscribers.\n\t\t */\n\t\tget sub_list() {\n\t\t\tconst res = [] as $mol_wire_sub[]\n\t\t\tfor( let i = this.sub_from; i < this.data.length; i += 2 ) {\n\t\t\t\tres.push( this.data[i] as $mol_wire_sub )\n\t\t\t}\n\t\t\treturn res as readonly $mol_wire_sub[]\n\t\t}\n\t\t\n\t\t/**\n\t\t * Has any subscribers or not.\n\t\t */\n\t\tget sub_empty() {\n\t\t\treturn this.sub_from === this.data.length\n\t\t}\n\t\t\n\t\t/**\n\t\t * Subscribe subscriber to this publisher events and return position of subscriber that required to unsubscribe.\n\t\t */\n\t\tsub_on( sub: $mol_wire_pub, pub_pos: number ) {\n\t\t\tconst pos = this.data.length\n\t\t\tthis.data.push( sub, pub_pos )\n\t\t\treturn pos\n\t\t}\n\t\t\n\t\t/**\n\t\t * Unsubscribe subscriber from this publisher events by subscriber position provided by `on(pub)`.\n\t\t */\n\t\tsub_off( sub_pos: number ) {\n\t\t\t\n\t\t\tif(!( sub_pos < this.data.length )) {\n\t\t\t\t$mol_fail( new Error( `Wrong pos ${ sub_pos }` ) )\n\t\t\t}\n\t\t\t\n\t\t\tconst end = this.data.length - 2\n\t\t\tif( sub_pos !== end ) {\n\t\t\t\tthis.peer_move( end, sub_pos )\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = end\n\t\t\t\n\t\t\tif( end === this.sub_from ) this.reap()\n\t\t\t\n\t\t}\n\t\t\n\t\t/**\n\t\t * Called when last sub was unsubscribed.\n\t\t **/\n\t\treap() { }\n\t\t\n\t\t/**\n\t\t * Autowire this publisher with current subscriber.\n\t\t **/\n\t\tpromote() {\n\t\t\t$mol_wire_auto()?.track_next( this )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Enforce actualization. Should not throw errors.\n\t\t */\n\t\tfresh() {}\n\t\t\n\t\t/**\n\t\t * Allow to put data to caches in the subtree.\n\t\t */\n\t\tcomplete() {}\n\t\t\n\t\tget incompleted() {\n\t\t\treturn false\n\t\t}\n\t\t\n\t\t/**\n\t\t * Notify subscribers about self changes.\n\t\t */\n\t\temit( quant = $mol_wire_cursor.stale ) {\n\t\t\tfor( let i = this.sub_from; i < this.data.length; i += 2 ) {\n\t\t\t\t;( this.data[i] as $mol_wire_sub ).absorb( quant, this.data[ i + 1 ] as number )\n\t\t\t}\n\t\t}\n\t\t\n\t\t/**\n\t\t * Moves peer from one position to another. Doesn't clear data at old position!\n\t\t */\n\t\tpeer_move( from_pos: number, to_pos: number ) {\n\t\t\t\n\t\t\tconst peer = this.data[ from_pos ] as $mol_wire_pub\n\t\t\tconst self_pos = this.data[ from_pos + 1 ] as number\n\t\t\t\n\t\t\tthis.data[ to_pos ] = peer\n\t\t\tthis.data[ to_pos + 1 ] = self_pos\n\t\t\t\n\t\t\tpeer.peer_repos( self_pos, to_pos )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Updates self position in the peer.\n\t\t */\n\t\tpeer_repos( peer_pos: number, self_pos: number ) {\n\t\t\tthis.data[ peer_pos + 1 ] = self_pos\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport let $mol_wire_auto_sub: $mol_wire_sub | null = null\n\t\n\t/**\n\t * When fulfilled, all publishers are promoted to this subscriber on access to its.\n\t */\n\texport function $mol_wire_auto( next = $mol_wire_auto_sub ) {\n\t\treturn $mol_wire_auto_sub = next\n\t}\n\t\n\t/**\n\t * Affection queue. Used to prevent accidental stack overflow on emit.\n\t */\n\texport const $mol_wire_affected = [] as ( $mol_wire_sub | number )[]\n\t\n}\n","namespace $ {\n\n\t// https://docs.google.com/document/d/1FTascZXT9cxfetuPRT2eXPQKXui4nWFivUnS_335T3U/preview#\n\t($ as any)['devtoolsFormatters'] ||= []\n\n\texport function $mol_dev_format_register( config : {\n\t\theader : ( val : any , config : any )=> any\n\t\thasBody : ( val : any , config : any )=> false\n\t} | {\n\t\theader : ( val : any , config : any )=> any\n\t\thasBody : ( val : any , config : any )=> boolean\n\t\tbody : ( val : any , config : any )=> any\n\t} ) {\n\t\t($ as any)['devtoolsFormatters'].push( config )\n\t}\n\n\texport const $mol_dev_format_head = Symbol( '$mol_dev_format_head' )\n\texport const $mol_dev_format_body = Symbol( '$mol_dev_format_body' )\n\t\n\tfunction $mol_dev_format_button( label: any, click: ()=> any ) {\n\t\treturn $mol_dev_format_auto( {\n\t\t\t[ $mol_dev_format_head ]() {\n\t\t\t\treturn $mol_dev_format_span( { color: 'cornflowerblue' }, label )\n\t\t\t},\n\t\t\t[ $mol_dev_format_body ]() {\n\t\t\t\tPromise.resolve().then( click )\n\t\t\t\treturn $mol_dev_format_span({})\n\t\t\t}\n\t\t} )\n\t}\n\n\t$mol_dev_format_register({\n\n\t\theader : ( val : any , config = false ) => {\n\t\t\t\n\t\t\tif( config ) return null\n\n\t\t\tif( !val ) return null\n\t\t\t\n\t\t\tif( $mol_dev_format_head in val ) {\n\t\t\t\ttry {\n\t\t\t\t\treturn val[ $mol_dev_format_head ]()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\treturn $mol_dev_format_accent( $mol_dev_format_native( val ), '💨', $mol_dev_format_native( error ), '' )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif( typeof val === 'function' ) {\n\t\t\t\treturn $mol_dev_format_native( val )\n\t\t\t}\n\t\t\t\n\t\t\tif( val instanceof Error ) {\n\t\t\t\t\n\t\t\t\treturn $mol_dev_format_span( {},\n\t\t\t\t\t$mol_dev_format_native( val ),\n\t\t\t\t\t' ',\n\t\t\t\t\t$mol_dev_format_button( 'throw', ()=> $mol_fail_hidden( val ) ),\n\t\t\t\t)\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( val instanceof Promise ) {\n\t\t\t\treturn $mol_dev_format_shade(\n\t\t\t\t\t$mol_dev_format_native( val ),\n\t\t\t\t\t' ',\n\t\t\t\t\tval[ Symbol.toStringTag ] ?? '',\n\t\t\t\t)\n\t\t\t}\n\t\t\t\n\t\t\tif( Symbol.toStringTag in val ) {\n\t\t\t\treturn $mol_dev_format_native( val )\n\t\t\t}\n\t\t\t\n\t\t\treturn null\n\t\t\t\n\t\t} ,\n\t\t\n\t\thasBody : ( val: any , config = false )=> {\n\t\t\t\n\t\t\tif( config ) return false\n\t\t\tif( !val ) return false\n\t\t\t\n\t\t\t// if( Error.isError( val ) ) true\n\t\t\tif( val[ $mol_dev_format_body ] ) return true\n\t\t\t\n\t\t\treturn false\n\t\t},\n\n\t\tbody : ( val: any , config = false )=> {\n\t\t\t\n\t\t\tif( config ) return null\n\n\t\t\tif( !val ) return null\n\t\t\t\n\t\t\tif( $mol_dev_format_body in val ) {\n\t\t\t\ttry {\n\t\t\t\t\treturn val[ $mol_dev_format_body ]()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\treturn $mol_dev_format_accent( $mol_dev_format_native( val ), '💨', $mol_dev_format_native( error ), '' )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// if( Error.isError( val ) ) {\n\t\t\t// \treturn $mol_dev_format_native( val )\n\t\t\t// }\n\t\t\t\n\t\t\treturn null\n\t\t},\n\n\t})\n\n\texport function $mol_dev_format_native( obj : any ) {\n\t\t\n\t\tif( typeof obj === 'undefined' ) return $mol_dev_format_shade( 'undefined' )\n\t\t\n\t\t// if( ![ 'object', 'function', 'symbol' ].includes( typeof obj ) ) return obj\n\n\t\treturn [\n\t\t\t'object' ,\n\t\t\t{\n\t\t\t\tobject : obj ,\n\t\t\t\tconfig : true ,\n\t\t\t} ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_auto( obj : any ) {\n\t\t\n\t\tif( obj == null ) return $mol_dev_format_shade( String( obj ) )\n\n\t\treturn [\n\t\t\t'object' ,\n\t\t\t{\n\t\t\t\tobject : obj ,\n\t\t\t\tconfig : false ,\n\t\t\t} ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_element( element : string , style : object , ...content : any[] ) {\n\t\t\t\n\t\tconst styles = [] as string[]\n\t\t\n\t\tfor( let key in style ) styles.push( `${ key } : ${ (style as any)[key] }` )\n\t\t\n\t\treturn [\n\t\t\telement ,\n\t\t\t{\n\t\t\t\tstyle : styles.join( ' ; ' ) ,\n\t\t\t} ,\n\t\t\t... content ,\n\t\t]\n\n\t}\n\n\texport let $mol_dev_format_span = $mol_dev_format_element.bind( null , 'span' )\n\texport let $mol_dev_format_div = $mol_dev_format_element.bind( null , 'div' )\n\texport let $mol_dev_format_ol = $mol_dev_format_element.bind( null , 'ol' )\n\texport let $mol_dev_format_li = $mol_dev_format_element.bind( null , 'li' )\n\texport let $mol_dev_format_table = $mol_dev_format_element.bind( null , 'table' )\n\texport let $mol_dev_format_tr = $mol_dev_format_element.bind( null , 'tr' )\n\texport let $mol_dev_format_td = $mol_dev_format_element.bind( null , 'td' )\n\n\texport let $mol_dev_format_accent = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'magenta' ,\n\t} )\n\n\texport let $mol_dev_format_strong = $mol_dev_format_span.bind( null , {\n\t\t'font-weight' : 'bold' ,\n\t} )\n\n\texport let $mol_dev_format_string = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'green',\n\t} )\n\n\texport let $mol_dev_format_shade = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'gray',\n\t} )\n\n\texport let $mol_dev_format_indent = $mol_dev_format_div.bind( null , {\n\t\t'margin-left': '13px'\n\t} )\n\t\n\tclass Stack extends Array< Call > {\n\t\t\n\t\t// [ Symbol.toPrimitive ]() {\n\t\t// \treturn this.toString()\n\t\t// }\n\t\t\n\t\ttoString() {\n\t\t\treturn this.join( '\\n' )\n\t\t}\n\t\t\n\t}\n\t\n\tclass Call extends Object {\n\t\t\n\t\treadonly type: string\n\t\treadonly function: string\n\t\treadonly method: string\n\t\treadonly eval: string\n\t\treadonly source: string\n\t\treadonly offset: number\n\t\treadonly pos: [ number, number ]\n\t\treadonly object: unknown\n\t\treadonly flags: readonly string[]\n\t\t[ Symbol.toStringTag ]!: string\n\t\t\n\t\tconstructor( call: NodeJS.CallSite ) {\n\t\t\tsuper()\n\t\t\t\n\t\t\tthis.type = call.getTypeName() ?? ''\n\t\t\tthis.function = call.getFunctionName() ?? ''\n\t\t\tthis.method = call.getMethodName() ?? ''\n\t\t\tif( this.method === this.function ) this.method = ''\n\t\t\t// const func = c.getFunction()\n\t\t\tthis.pos = [ call.getEnclosingLineNumber() ?? 0, call.getEnclosingColumnNumber() ?? 0 ]\n\t\t\tthis.eval = call.getEvalOrigin() ?? ''\n\t\t\tthis.source = call.getScriptNameOrSourceURL() ?? ''\n\t\t\tthis.object = call.getThis()\n\t\t\tthis.offset = call.getPosition()\n\t\t\t\n\t\t\tconst flags = []\n\t\t\tif( call.isAsync() ) flags.push( 'async' )\n\t\t\tif( call.isConstructor() ) flags.push( 'constructor' )\n\t\t\tif( call.isEval() ) flags.push( 'eval' )\n\t\t\tif( call.isNative() ) flags.push( 'native' )\n\t\t\tif( call.isPromiseAll() ) flags.push( 'PromiseAll' )\n\t\t\tif( call.isToplevel() ) flags.push( 'top' )\n\t\t\tthis.flags = flags\n\t\t\n\t\t\tconst type = this.type ? this.type + '.' : ''\n\t\t\tconst func = this.function || '<anon>'\n\t\t\tconst method = this.method ? ' [' + this.method + '] ' : ''\n\t\t\t\n\t\t\tthis[ Symbol.toStringTag ] = `${type}${func}${method}`\n\t\t}\n\t\t\n\t\t[ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\tconst object = this.object || ''\n\t\t\tconst label = this[ Symbol.toStringTag ]\n\t\t\tconst source = `${ this.source }:${ this.pos.join( ':' ) } #${ this.offset }`\n\t\t\treturn `\\tat ${object}${label} (${source})`\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_div( {},\n\t\t\t\t$mol_dev_format_native( this ),\n\t\t\t\t$mol_dev_format_shade( ' ' ),\n\t\t\t\t... this.object ? [\n\t\t\t\t\t$mol_dev_format_native( this.object ),\n\t\t\t\t] : [],\n\t\t\t\t... this.method ? [ $mol_dev_format_shade( ' ',\n\t\t\t\t\t' [',\n\t\t\t\t\tthis.method,\n\t\t\t\t\t']',\n\t\t\t\t) ] : [],\n\t\t\t\t$mol_dev_format_shade( ' ', this.flags.join( ', ' ) ),\n\t\t\t)\n\t\t}\n\n\t}\n\t\n\tError.prepareStackTrace ??= ( error: Error, stack: NodeJS.CallSite[] )=> new Stack( ... stack.map( call => new Call( call ) ) )\n\n}\n","namespace $ {\n\t\n\t/**\n\t * Publisher that can auto collect other publishers. 32B\n\t * \n\t * \tP1 P2 P3 P4 S1 S2 S3\n\t * \t^ ^\n\t * \tpubs_from subs_from\n\t */\n\texport class $mol_wire_pub_sub extends $mol_wire_pub implements $mol_wire_sub {\n\t\t\n\t\tprotected pub_from = 0 // 4B\n\t\tprotected cursor = $mol_wire_cursor.stale // 4B\n\t\t\n\t\tget temp() {\n\t\t\treturn false\n\t\t}\n\t\t\n\t\tget pub_list() {\n\t\t\tconst res = [] as $mol_wire_pub[]\n\t\t\tconst max = this.cursor >=0 ? this.cursor : this.sub_from\n\t\t\tfor( let i = this.pub_from; i < max; i += 2 ) {\n\t\t\t\tif( this.data[i] ) res.push( this.data[i] as $mol_wire_pub )\n\t\t\t}\n\t\t\treturn res\n\t\t}\n\t\t\n\t\ttrack_on() {\n\t\t\tthis.cursor = this.pub_from\n\t\t\tconst sub = $mol_wire_auto()\n\t\t\t$mol_wire_auto( this )\n\t\t\treturn sub\n\t\t}\n\t\t\n\t\tpromote() {\n\t\t\t\n\t\t\tif( this.cursor >= this.pub_from ) {\n\t\t\t\t$mol_fail( new Error( 'Circular subscription' ) )\n\t\t\t}\n\t\t\t\n\t\t\tsuper.promote()\n\t\t}\n\t\t\n\t\ttrack_next( pub?: $mol_wire_pub ): $mol_wire_pub | null {\n\t\t\t\n\t\t\tif( this.cursor < 0 ) $mol_fail( new Error( 'Promo to non begun sub' ) )\n\t\t\t\n\t\t\tif( this.cursor < this.sub_from ) {\n\t\t\t\n \t\t\t\tconst next = this.data[ this.cursor ] as $mol_wire_pub | undefined\n\t\t\t\tif( pub === undefined ) return next ?? null\n\t\t\t\t\n\t\t\t\tif( next === pub ) {\n\t\t\t\t\tthis.cursor += 2\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( next ) {\n\t\t\t\t\t\n\t\t\t\t\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\t\tthis.peer_move( this.sub_from, this.data.length )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis.peer_move( this.cursor, this.sub_from )\n\t\t\t\t\tthis.sub_from += 2\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( pub === undefined ) return null\n\t\t\t\t\n\t\t\t\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\tthis.peer_move( this.sub_from, this.data.length )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.sub_from += 2\n\t\t\t\t\n\t\t\t}\t\t\t\n\t\t\t\n\t\t\tthis.data[ this.cursor ] = pub\n\t\t\tthis.data[ this.cursor + 1 ] = pub.sub_on( this, this.cursor )\n\t\t\t\n\t\t\tthis.cursor += 2\n\t\t\t\n\t\t\treturn pub\n\t\t}\n\t\t\n\t\ttrack_off( sub: $mol_wire_sub | null ) {\n\t\t\t\n\t\t\t$mol_wire_auto( sub )\n\t\t\t\n\t\t\tif( this.cursor < 0 ) {\n\t\t\t\t$mol_fail( new Error( 'End of non begun sub' ) )\n\t\t\t}\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < this.cursor;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tpub.fresh()\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\n\t\t}\n\t\t\n\t\tpub_off( sub_pos: number ) {\n\t\t\tthis.data[ sub_pos ] = undefined as any\n\t\t\tthis.data[ sub_pos + 1 ] = undefined as any \n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.data.length - 2;\n\t\t\t\tcursor >= this.sub_from;\n\t\t\t\tcursor -= 2\n\t\t\t) {\n\t\t\t\tconst sub = this.data[ cursor ] as $mol_wire_sub\n\t\t\t\tconst pos = this.data[ cursor + 1 ] as number\n\t\t\t\tsub.pub_off( pos )\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = this.sub_from \n\t\t\tthis.cursor = this.pub_from\n\t\t\tthis.track_cut()\n\t\t\tthis.cursor = $mol_wire_cursor.stale\n\t\t\t\n\t\t}\n\t\t\n\t\ttrack_cut() {\n\t\t\t\n\t\t\tif( this.cursor < this.pub_from ) {\n\t\t\t\t$mol_fail( new Error( 'Cut of non begun sub' ) )\n\t\t\t}\n\t\t\t\n\t\t\tlet end = this.data.length\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.cursor;\n\t\t\t\tcursor < this.sub_from;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\t\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub | undefined\n\t\t\t\tpub?.sub_off( this.data[ cursor + 1 ] as number )\n\t\t\t\t\n\t\t\t\tend -= 2\n\t\t\t\tif( this.sub_from <= end ) this.peer_move( end, cursor )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = end\n\t\t\t\n\t\t\tthis.sub_from = this.cursor\n\t\t\t\n\t\t}\n\t\t\n\t\tcomplete() { }\n\t\t\n\t\tcomplete_pubs() {\n\t\t\t\n\t\t\tconst limit = this.cursor < 0 ? this.sub_from : this.cursor \n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < limit;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tif( pub?.incompleted ) return \n\t\t\t}\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < limit;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tpub?.complete()\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tabsorb( quant = $mol_wire_cursor.stale, pos = -1 ) {\n\t\t\t\n\t\t\tif( this.cursor === $mol_wire_cursor.final ) return\n\t\t\tif( this.cursor >= quant ) return\n\t\t\t\n\t\t\tthis.cursor = quant\n\t\t\tthis.emit( $mol_wire_cursor.doubt )\n\t\t\t\n\t\t\t// if( pos >= 0 && pos < this.sub_from - 2 ) {\n\t\t\t\t\n\t\t\t// \tconst pub = this.data[ pos ] as $mol_wire_pub\n\t\t\t// \tif( pub instanceof $mol_wire_task ) return\n\t\t\t\t\n\t\t\t// \tfor(\n\t\t\t// \t\tlet cursor = this.pub_from;\n\t\t\t// \t\tcursor < this.sub_from;\n\t\t\t// \t\tcursor += 2\n\t\t\t// \t) {\n\t\t\t\t\t\n\t\t\t// \t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\t\t\n\t\t\t// \t\tif( pub instanceof $mol_wire_task ) {\n\t\t\t// \t\t\tpub.destructor()\n\t\t\t// \t\t}\n\t\t\t\t\t\n\t\t\t// \t}\n\t\t\t\t\n\t\t\t// }\n\t\t\t\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_native( this )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Is subscribed to any publisher or not.\n\t\t */\n\t\tget pub_empty() {\n\t\t\treturn this.sub_from === this.pub_from\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_tick extends $mol_object2 {\n\n\t\tstatic promise = null as Promise<void> | null\n\t\tcancelled = false\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\t\n\t\t\tif( !$mol_after_tick.promise ) $mol_after_tick.promise = Promise.resolve().then( ()=> {\n\t\t\t\t$mol_after_tick.promise = null\n\t\t\t} )\n\t\t\t\n\t\t\t$mol_after_tick.promise.then( ()=> {\n\t\t\t\tif( this.cancelled ) return\n\t\t\t\ttask()\n\t\t\t} )\n\t\t\t\n\t\t}\n\n\t\tdestructor() {\n\t\t\tthis.cancelled = true\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\tconst wrappers = new WeakMap< Promise< unknown >, Promise< any > >()\n\t\n\t/**\n\t * Suspendable task with support both sync/async api.\n\t * \n\t * \tA1 A2 A3 A4 P1 P2 P3 P4 S1 S2 S3\n\t * \t^ ^ ^\n\t * \targs_from pubs_from subs_from\n\t **/\n\texport abstract class $mol_wire_fiber<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_pub_sub {\n\t\n\t\tstatic warm = true\n\t\t\n\t\tstatic planning = new Set< $mol_wire_fiber< any, any, any > >()\n\t\tstatic reaping = new Set< $mol_wire_fiber< any, any, any > >()\n\t\t\n\t\tstatic plan_task: $mol_after_tick | null = null\n\t\tstatic plan() {\n\t\t\t\n\t\t\tif( this.plan_task ) return\n\t\t\t\n\t\t\tthis.plan_task = new $mol_after_tick( ()=> {\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tthis.sync()\n\t\t\t\t} finally {\n\t\t\t\t\t$mol_wire_fiber.plan_task = null\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t\n\t\t}\n\t\t\n\t\tstatic sync() {\n\t\t\t\n\t\t\t// Sync whole fiber graph\n\t\t\twhile( this.planning.size ) {\n\t\t\t\tfor( const fiber of this.planning ) {\n\t\t\t\t\tthis.planning.delete( fiber )\n\t\t\t\t\tif( fiber.cursor >= 0 ) continue\n\t\t\t\t\tif( fiber.cursor === $mol_wire_cursor.final ) continue\n\t\t\t\t\tfiber.fresh()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// Collect garbage\n\t\t\twhile( this.reaping.size ) {\n\t\t\t\t\n\t\t\t\tconst fibers = this.reaping\n\t\t\t\tthis.reaping = new Set\n\t\t\t\t\n\t\t\t\tfor( const fiber of fibers ) {\n\t\t\t\t\tif( !fiber.sub_empty ) continue\n\t\t\t\t\tfiber.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tpublic cache: Result | Error | Promise< Result | Error > = undefined as any\n\t\t\n\t\tget args() {\n\t\t\treturn this.data.slice( 0 , this.pub_from ) as any as Args\n\t\t}\n\t\t\n\t\tresult() {\n\t\t\tif( $mol_promise_like( this.cache ) ) return\n\t\t\tif( this.cache instanceof Error ) return\n\t\t\treturn this.cache\n\t\t}\n\t\t\n\t\tget incompleted() {\n\t\t\treturn $mol_promise_like( this.cache )\n\t\t}\n\t\t\n\t\tfield() {\n\t\t\treturn this.task.name + '()'\n\t\t}\n\t\t\n\t\tconstructor(\n\t\t\tid: string,\n\t\t\treadonly task: ( this : Host , ... args : Args )=> Result,\n\t\t\treadonly host?: Host,\n\t\t\targs?: Args\n\t\t) {\n\t\t\t\n\t\t\tsuper( id )\n\t\t\tif( args ) this.data.push( ... args )\n\t\t\tthis.pub_from = this.sub_from = args?.length ?? 0\n\t\t\t\n\t\t}\n\t\t\n\t\tplan() {\n\t\t\t$mol_wire_fiber.planning.add( this )\n\t\t\t$mol_wire_fiber.plan()\n\t\t\treturn this\n\t\t}\n\t\t\n\t\treap() {\n\t\t\t$mol_wire_fiber.reaping.add( this )\n\t\t\t$mol_wire_fiber.plan()\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\t\n\t\t\tconst cursor = {\n\t\t\t\t[ $mol_wire_cursor.stale ]: '🔴',\n\t\t\t\t[ $mol_wire_cursor.doubt ]: '🟡',\n\t\t\t\t[ $mol_wire_cursor.fresh ]: '🟢',\n\t\t\t\t[ $mol_wire_cursor.final ]: '🔵',\n\t\t\t}[ this.cursor ] ?? this.cursor.toString()\n\t\t\t\n\t\t\treturn $mol_dev_format_div( {},\n\t\t\t\t$mol_owning_check( this, this.cache )\n\t\t\t\t\t? $mol_dev_format_shade( cursor )\n\t\t\t\t\t: $mol_dev_format_shade( this[ Symbol.toStringTag ], cursor ),\n\t\t\t\t$mol_dev_format_auto( this.cache ),\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t[ $mol_dev_format_body ]() { return null }\n\t\t\n\t\tget $() {\n\t\t\treturn ( this.host ?? this.task as any )['$']\n\t\t}\n\t\t\n\t\temit( quant = $mol_wire_cursor.stale ) {\n\t\t\tif( this.sub_empty ) this.plan()\n\t\t\telse super.emit( quant )\n\t\t}\n\t\t\n\t\tfresh() {\n\n\t\t\ttype Result = typeof this.cache\n\t\t\t\n\t\t\tif( this.cursor === $mol_wire_cursor.fresh ) return\n\t\t\tif( this.cursor === $mol_wire_cursor.final ) return\n\t\t\t\n\t\t\tcheck: if( this.cursor === $mol_wire_cursor.doubt ) {\n\t\t\t\t\n\t\t\t\tfor( let i = this.pub_from ; i < this.sub_from; i += 2 ) {\n\t\t\t\t\t;( this.data[i] as $mol_wire_pub )?.fresh()\n\t\t\t\t\tif( this.cursor !== $mol_wire_cursor.doubt ) break check\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\treturn\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst bu = this.track_on()\n\t\t\tlet result: typeof this.cache\n\n\t\t\ttry {\n\n\t\t\t\tswitch( this.pub_from ) {\n\t\t\t\t\tcase 0: result = (this.task as any).call( this.host! ); break\n\t\t\t\t\tcase 1: result = (this.task as any).call( this.host!, this.data[0] ); break\n\t\t\t\t\tdefault: result = (this.task as any).call( this.host!, ... this.args ); break\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( result ) ) {\n\n\t\t\t\t\tif( wrappers.has( result ) ) {\n\t\t\t\t\t\tresult = wrappers.get( result )!.then(a=>a)\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst put = ( res: Result )=> {\n\t\t\t\t\t\t\tif( this.cache === result ) this.put( res )\n\t\t\t\t\t\t\treturn res\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twrappers.set( result, result = Object.assign(\n\t\t\t\t\t\t\tresult.then( put, put ),\n\t\t\t\t\t\t\t{ destructor: ( result as any ).destructor || (()=> {}) }\n\t\t\t\t\t\t) )\n\t\t\t\t\t\twrappers.set( result, result )\n\n\t\t\t\t\t\tconst error = new Error( `Promise in ${ this }` )\n\t\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t\n\t\t\t\tif( error instanceof Error || $mol_promise_like( error ) ) {\n\t\t\t\t\tresult = error\n\t\t\t\t} else {\n\t\t\t\t\tresult = new Error( String( error ), { cause: error } )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( result ) ) {\n\t\t\t\t\t\n\t\t\t\t\tif( wrappers.has( result ) ) {\n\t\t\t\t\t\tresult = wrappers.get( result )!\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst put = ( v: any )=> {\n\t\t\t\t\t\t\tif( this.cache === result ) this.absorb()\n\t\t\t\t\t\t\treturn v\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\twrappers.set( result, result = Object.assign(\n\t\t\t\t\t\t\tresult.then( put, put ),\n\t\t\t\t\t\t\t{ destructor: ( result as any ).destructor || (()=> {}) }\n\t\t\t\t\t\t) )\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst error = new Error( `Promise in ${ this }` )\n\t\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( ! $mol_promise_like( result ) ) {\n\t\t\t\tthis.track_cut()\n\t\t\t}\n\t\t\t\n\t\t\tthis.track_off( bu )\n\t\t\tthis.put( result )\n\t\t\t\n\t\t\treturn this\n\t\t}\n\t\t\n\t\trefresh() {\n\t\t\tthis.cursor = $mol_wire_cursor.stale\n\t\t\tthis.fresh()\n\t\t}\n\t\t\n\t\tabstract put( next: Result | Error | Promise< Result | Error > ): Result | Error | Promise< Result | Error >\n\t\t\n\t\t/**\n\t\t * Synchronous execution. Throws Promise when waits async task (SuspenseAPI provider).\n\t\t * Should be called inside SuspenseAPI consumer (ie fiber).\n\t\t */\n\t\tsync() {\n\t\t\t\n\t\t\tif( !$mol_wire_fiber.warm ) {\n\t\t\t\treturn this.result() as Awaited< Result >\n\t\t\t}\n\t\t\t\n\t\t\tthis.promote()\n\t\t\tthis.fresh()\n\t\t\t\n\t\t\tif( this.cache instanceof Error ) {\n\t\t\t\treturn $mol_fail_hidden( this.cache )\n\t\t\t}\n\t\t\t\n\t\t\tif( $mol_promise_like( this.cache ) ) {\n\t\t\t\treturn $mol_fail_hidden( this.cache )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.cache as Awaited< Result >\n\t\t}\n\n\t\t/**\n\t\t * Asynchronous execution.\n\t\t * It's SuspenseAPI consumer. So SuspenseAPI providers can be called inside.\n\t\t */\n\t\tasync async_raw() {\n\t\t\t\n\t\t\twhile( true ) {\n\t\t\t\t\n\t\t\t\tthis.fresh()\n\t\t\t\t\n\t\t\t\tif( this.cache instanceof Error ) {\n\t\t\t\t\t$mol_fail_hidden( this.cache )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( ! $mol_promise_like( this.cache ) ) return this.cache\n\t\t\t\t\t\n\t\t\t\tawait Promise.race([ this.cache, this.step() ])\n\t\t\t\tif( ! $mol_promise_like( this.cache ) ) return this.cache\n\t\t\t\t\t\n\t\t\t\tif( this.cursor === $mol_wire_cursor.final ) {\n\t\t\t\t\t// never ends on destructed fiber\n\t\t\t\t\tawait new Promise( ()=> {} )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tasync() {\n\t\t\tconst promise = this.async_raw() as Promise<Result> & { destructor(): void }\n\n\t\t\tif (! promise.destructor) promise.destructor = () => this.destructor()\n\n\t\t\treturn promise\n\t\t}\n\t\t\n\t\tstep() {\n\t\t\treturn new Promise< null >( done => {\n\t\t\t\tconst sub = new $mol_wire_pub_sub\n\t\t\t\tconst prev = sub.track_on()\n\t\t\t\tsub.track_next( this )\n\t\t\t\tsub.track_off( prev )\n\t\t\t\tsub.absorb = ()=> {\n\t\t\t\t\tdone( null )\n\t\t\t\t\tsetTimeout( ()=> sub.destructor() )\n\t\t\t\t}\n\t\t\t} )\n\t\t}\n\n\t\tdestructor() {\n\t\t\t\n\t\t\tsuper.destructor()\n\t\t\t\n\t\t\t$mol_wire_fiber.planning.delete( this )\n\t\t\t\n\t\t\tif( ! $mol_owning_check( this, this.cache ) ) return\n\n\t\t\ttry {\n\t\t\t\tthis.cache.destructor()\n\t\t\t} catch (result) {\n\t\t\t\tif ($mol_promise_like(result)) {\n\t\t\t\t\tconst error = new Error( `Promise in ${ this }.destructor()` )\n\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\t\t\t\t}\n\n\t\t\t\t$mol_fail_hidden(result)\n\t\t\t}\n\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport let $mol_compare_deep_cache = new WeakMap< any , WeakMap< any , boolean > >()\n\t\n\t/**\n\t * Deeply compares two values. Returns true if equal.\n\t * Define `Symbol.toPrimitive` to customize.\n\t */\n\texport function $mol_compare_deep< Value >( left: Value, right: Value ): boolean {\n\n\t\tif( Object.is( left , right ) ) return true\n\n\t\tif( left === null ) return false\n\t\tif( right === null ) return false\n\n\t\tif( typeof left !== 'object' ) return false\n\t\tif( typeof right !== 'object' ) return false\n\n\t\tconst left_proto = Reflect.getPrototypeOf( left as any )\n\t\tconst right_proto = Reflect.getPrototypeOf( right as any )\n\t\t\n\t\tif( left_proto !== right_proto ) return false\n\n\t\tif( left instanceof Boolean ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof Number ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof String ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof Date ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof RegExp ) return left.source === (right as any).source && left.flags === (right as any).flags\n\t\tif( left instanceof Error ) return left.message === (right as any).message && $mol_compare_deep( left.stack, (right as any).stack )\n\n\t\tlet left_cache = $mol_compare_deep_cache.get( left )\n\t\tif( left_cache ) {\n\n\t\t\tconst right_cache = left_cache.get( right )\n\t\t\tif( typeof right_cache === 'boolean' ) return right_cache\n\n\t\t} else {\n\t\t\t\n\t\t\tleft_cache = new WeakMap< any , boolean >()\n\t\t\t$mol_compare_deep_cache.set( left , left_cache )\n\n\t\t}\n\n\t\tleft_cache.set(right, true);\n\n\t\tlet result!: boolean\n\n\t\ttry {\n\t\t\t\n\t\t\tif( !left_proto ) result = compare_pojo( left, right as any )\n\t\t\telse if( !Reflect.getPrototypeOf( left_proto ) ) result = compare_pojo( left, right as any )\n\t\t\telse if( Symbol.toPrimitive in left ) result = compare_primitive( left, right )\n\t\t\telse if( Array.isArray( left ) ) result = compare_array( left, right as any )\n\t\t\telse if( left instanceof Set ) result = compare_set( left, right as any )\n\t\t\telse if( left instanceof Map ) result = compare_map( left, right as any )\n\t\t\telse if( ArrayBuffer.isView( left ) ) result = compare_buffer( left, right as any )\n\t\t\telse if( Symbol.iterator in left ) result = compare_iterator( ( left as any )[ Symbol.iterator ](), ( right as any )[ Symbol.iterator ]() )\n\t\t\telse result = false\n\n\t\t} finally {\n\t\t\tleft_cache.set( right , result )\n\t\t}\n\t\t\n\t\treturn result\n\t}\n\n\tfunction compare_array< Value extends any[] >( left: Value, right: Value ): boolean {\n\t\t\n\t\tconst len = left.length\n\t\tif( len !== right.length ) return false\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( !$mol_compare_deep( left[i] , right[i] ) ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_buffer( left: ArrayBufferView, right: ArrayBufferView ): boolean {\n\t\t\n\t\tconst len = left.byteLength\n\t\tif( len !== right.byteLength ) return false\n\t\t\n\t\tif( left instanceof DataView ) return compare_buffer(\n\t\t\tnew Uint8Array( left.buffer, left.byteOffset, left.byteLength ),\n\t\t\tnew Uint8Array( right.buffer, right.byteOffset, right.byteLength ),\n\t\t)\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( (left as any)[i] !== (right as any)[i] ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_iterator< Value extends IterableIterator<any> >(\n\t\tleft: Value,\n\t\tright: Value,\n\t): boolean {\n\t\t\n\t\twhile( true ) {\n\n\t\t\tconst left_next = left.next()\n\t\t\tconst right_next = right.next()\n\n\t\t\tif( left_next.done !== right_next.done ) return false\n\t\t\tif( left_next.done ) break\n\n\t\t\tif( !$mol_compare_deep( left_next.value , right_next.value ) ) return false\n\n\t\t}\n\n\t\treturn true\n\n\t}\n\t\n\tfunction compare_set< Value extends Set<any> >( left: Value, right: Value ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_map< Key, Value >( left: Map< Key, Value > , right: Map< Key, Value > ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.keys(), right.keys() )\n\t\t\t&& compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_pojo( left: {}, right: {} ): boolean {\n\t\t\n\t\tconst left_keys = Object.getOwnPropertyNames( left )\n\t\tconst right_keys = Object.getOwnPropertyNames( right )\n\t\t\n\t\tif( !compare_array( left_keys, right_keys ) ) return false\n\n\t\tfor( let key of left_keys ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\tconst left_syms = Object.getOwnPropertySymbols( left )\n\t\tconst right_syms = Object.getOwnPropertySymbols( right )\n\t\t\n\t\tif( !compare_array( left_syms, right_syms ) ) return false\n\n\t\tfor( let key of left_syms ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\treturn true\n\t}\n\t\n\tfunction compare_primitive( left: {}, right: {} ): boolean {\n\t\treturn Object.is(\n\t\t\t(left as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t\t(right as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t)\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Logger event data */\n\texport type $mol_log3_event< Fields > = {\n\t\t[ key in string ] : unknown\n\t} & {\n\t\t\n\t\t/** Time of event creation */\n\t\ttime? : string\n\n\t\t/** Place of event creation */\n\t\tplace : unknown\n\n\t\t/** Short description of event */\n\t\tmessage : string\n\n\t} & Fields\n\n\t/** Logger function */\n\texport type $mol_log3_logger< Fields , Res = void > = (\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event< Fields > ,\n\t)=> Res\n\n\t/** Log begin of some task */\n\texport declare let $mol_log3_come : $mol_log3_logger<{}>\n\t\n\t/** Log end of some task */\n\texport declare let $mol_log3_done : $mol_log3_logger<{}>\n\t\n\t/** Log error */\n\texport declare let $mol_log3_fail : $mol_log3_logger<{}>\n\t\n\t/** Log warning message */\n\texport declare let $mol_log3_warn : $mol_log3_logger<{ hint : string }>\n\t\n\t/** Log some generic event */\n\texport declare let $mol_log3_rise : $mol_log3_logger<{}>\n\n\t/** Log begin of log group, returns func to close group */\n\texport declare let $mol_log3_area : $mol_log3_logger< {} , ()=> void >\n\n\t/** Log begin of collapsed group only when some logged inside, returns func to close group */\n\texport function $mol_log3_area_lazy(\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event<{}> ,\n\t) {\n\n\t\tconst self = this.$\n\t\tconst stack = self.$mol_log3_stack\n\n\t\tconst deep = stack.length\n\t\tlet logged = false\n\n\t\tstack.push( ()=> {\n\t\t\tlogged = true\n\t\t\tself.$mol_log3_area.call( self , event )\n\t\t} )\n\n\t\treturn ()=> {\n\t\t\tif( logged ) self.console.groupEnd()\n\t\t\tif( stack.length > deep ) stack.length = deep\n\t\t}\n\n\t}\n\n\texport let $mol_log3_stack = [] as ( ()=> void )[]\n\n}\n","namespace $ {\n\n\t/** Position in any resource. */\n\texport class $mol_span extends $mol_object2 {\n\n\t\tconstructor(\n\t\t\treadonly uri: string ,\n\t\t\treadonly source: string ,\n\t\t\treadonly row: number ,\n\t\t\treadonly col: number ,\n\t\t\treadonly length: number ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = this.uri + ( '#' + this.row + ':' + this.col + '/' + this.length )\n\t\t}\n\n\t\t/** Span for begin of unknown resource */\n\t\tstatic unknown = $mol_span.begin('?')\n\n\t\t/** Makes new span for begin of resource. */\n\t\tstatic begin( uri: string, source = '' ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for end of resource. */\n\t\tstatic end( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , source.length + 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for entire resource. */\n\t\tstatic entire( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , source.length )\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn {\n\t\t\t\turi: this.uri,\n\t\t\t\trow: this.row,\n\t\t\t\tcol: this.col,\n\t\t\t\tlength: this.length\n\t\t\t}\n\t\t}\n\n\t\t/** Makes new error for this span. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn new Class( `${message} (${this})` )\n\t\t}\n\n\t\t/** Makes new span for same uri. */\n\t\tspan( row : number , col : number , length : number ) {\n\t\t\treturn new $mol_span( this.uri , this.source, row , col , length )\n\t\t}\n\n\t\t/** Makes new span after end of this. */\n\t\tafter( length = 0 ) {\n\t\t\treturn new $mol_span( this.uri , this.source, this.row , this.col + this.length , length )\n\t\t}\n\n\t\t/** Makes new span between begin and end. */\n\t\tslice( begin: number, end = -1 ) {\n\t\t\tlet len = this.length\n\t\t\t\n\t\t\tif( begin < 0 ) begin += len\n\t\t\tif( end < 0 ) end += len\n\n\t\t\tif (begin < 0 || begin > len) this.$.$mol_fail( this.error( `Begin value '${begin}' out of range`, RangeError ) )\n\t\t\tif (end < 0 || end > len) this.$.$mol_fail( this.error( `End value '${end}' out of range`, RangeError ) )\n\t\t\tif (end < begin) this.$.$mol_fail( this.error( `End value '${end}' can't be less than begin value`, RangeError ) )\n\n\t\t\treturn this.span( this.row , this.col + begin , end - begin )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Serializes tree to string in tree format. */\n\texport function $mol_tree2_to_string(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t) : string {\n\n\t\tlet output = [] as string[]\n\t\t\n\t\tfunction dump(\n\t\t\ttree: $mol_tree2,\n\t\t\tprefix = '',\n\t\t) {\n\n\t\t\tif( tree.type.length ) {\n\t\t\t\t\n\t\t\t\tif( !prefix.length ) {\n\t\t\t\t\tprefix = \"\\t\";\n\t\t\t\t}\n\n\t\t\t\toutput.push( tree.type )\n\n\t\t\t\tif( tree.kids.length == 1 ) {\n\t\t\t\t\toutput.push( ' ' )\n\t\t\t\t\tdump( tree.kids[ 0 ], prefix )\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\toutput.push( \"\\n\" )\n\n\t\t\t} else if( tree.value.length || prefix.length ) {\n\n\t\t\t\toutput.push( \"\\\\\" + tree.value + \"\\n\" )\n\n\t\t\t}\n\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\toutput.push( prefix )\n\t\t\t\tdump( kid, prefix + \"\\t\" )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tdump( tree )\n\n\t\treturn output.join('')\n\t}\n\t\t\n}\n","namespace $ {\n\t\n\texport function $mol_maybe< Value >( value : Value | null | undefined ) : Value[] {\n\t\treturn ( value == null ) ? [] : [ value ]\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Path by types in tree. */\n\texport type $mol_tree2_path =\n\t\tArray< string | number | null >\n\t\n\t/** Hask tool for processing node. */\n\texport type $mol_tree2_hack< Context > =\n\t\t(\n\t\t\tinput : $mol_tree2 ,\n\t\t\tbelt : $mol_tree2_belt< Context > ,\n\t\t\tcontext : Context ,\n\t\t)=> readonly $mol_tree2[]\n\n\t/** Collection of hask tools for processing tree. */\n\texport type $mol_tree2_belt< Context > =\n\t\tRecord< string , $mol_tree2_hack< Context > >\n\n\t/**\n\t * Abstract Syntax Tree with human readable serialization.\n\t * Avoid direct instantiation. Use static factories instead.\n\t * @see https://github.com/nin-jin/tree.d\n\t */\n\texport class $mol_tree2 extends Object {\n\t\t\n\t\tconstructor(\n\n\t\t\t/** Type of structural node, `value` should be empty */\n\t\t\treadonly type : string,\n\t\t\t\n\t\t\t/** Content of data node, `type` should be empty */\n\t\t\treadonly value : string,\n\n\t\t\t/** Child nodes */\n\t\t\treadonly kids : readonly $mol_tree2[],\n\t\t\t\n\t\t\t/** Position in most far source resource */\n\t\t\treadonly span : $mol_span,\n\n\t\t) {\n\t\t\tsuper()\n\t\t\t;(this as any)[ Symbol.toStringTag ] = type || '\\\\' + value\n\t\t}\n\n\t\t/** Makes collection node. */\n\t\tstatic list(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\t\t\treturn new $mol_tree2( '' , '' , kids , span )\n\t\t}\n\t\t\n\t\t/** Makes new derived collection node. */\n\t\tlist(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.list( kids , this.span )\n\t\t}\n\n\t\t/** Makes data node for any string. */\n\t\tstatic data(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tconst chunks = value.split( '\\n' )\n\n\t\t\tif( chunks.length > 1 ) {\n\t\t\t\n\t\t\t\tlet kid_span = span.span( span.row , span.col , 0 )\n\n\t\t\t\tconst data = chunks.map( chunk => {\n\t\t\t\t\tkid_span = kid_span.after( chunk.length )\n\t\t\t\t\treturn new $mol_tree2( '' , chunk , [] , kid_span )\n\t\t\t\t} )\n\n\t\t\t\tkids = [ ... data , ... kids ]\n\n\t\t\t\tvalue = ''\n\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( '' , value , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived data node. */\n\t\tdata(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.data( value , kids , this.span )\n\t\t}\n\t\t\n\t\t/** Makes struct node. */\n\t\tstatic struct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tif( /[ \\n\\t\\\\]/.test( type ) ) {\n\t\t\t\t$$.$mol_fail( span.error( `Wrong type ${ JSON.stringify( type ) }` ) )\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( type , '' , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived structural node. */\n\t\tstruct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.struct( type , kids , this.span )\n\t\t}\n\n\t\t/** Makes new derived node with different kids id defined. */\n\t\tclone( kids : readonly $mol_tree2[], span = this.span ) {\n\t\t\treturn new $mol_tree2( this.type , this.value , kids , span )\n\t\t}\n\n\t\t/** Returns multiline text content. */\n\t\ttext() {\n\n\t\t\tvar values : string[] = []\n\t\t\t\n\t\t\tfor( var kid of this.kids ) {\n\t\t\t\tif( kid.type ) continue\n\t\t\t\tvalues.push( kid.value )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.value + values.join( '\\n' )\n\n\t\t}\n\t\t\n\t\t/** Parses tree format. */\n\t\t/** @deprecated Use $mol_tree2_from_string */\n\t\tstatic fromString( str : string , uri = 'unknown' ) {\n\t\t\treturn $$.$mol_tree2_from_string( str, uri )\n\t\t}\n\n\t\t/** Serializes to tree format. */\n\t\ttoString() : string {\n\t\t\treturn $$.$mol_tree2_to_string( this )\n\t\t}\n\t\t\n\t\t/** Makes new tree with node overrided by path. */\n\t\tinsert( value : $mol_tree2 | null , ...path : $mol_tree2_path ) : $mol_tree2 {\n\t\t\treturn this.update( $mol_maybe( value ), ... path )[0]\n\t\t}\n\n\t\t/** Makes new tree with node overrided by path. */\n\t\tupdate( value : readonly $mol_tree2[] , ...path : $mol_tree2_path ) : readonly $mol_tree2[] {\n\n\t\t\tif( path.length === 0 ) return value\n\t\t\t\n\t\t\tconst type = path[0]\n\t\t\tif( typeof type === 'string' ) {\n\n\t\t\t\tlet replaced = false\n\t\t\t\tconst sub = this.kids.flatMap( ( item , index )=> {\n\t\t\t\t\tif( item.type !== type ) return item\n\t\t\t\t\treplaced = true\n\t\t\t\t\treturn item.update( value , ... path.slice( 1 ) )\n\t\t\t\t} ).filter( Boolean )\n\t\t\t\t\n\t\t\t\tif( !replaced && value ) {\n\t\t\t\t\tsub.push( ... this.struct( type , [] ).update( value , ... path.slice( 1 ) ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn [ this.clone( sub ) ]\n\n\t\t\t} else if( typeof type === 'number' ) {\n\t\t\t\t\n\t\t\t\tconst ins = ( this.kids[ type ] || this.list([]) )\n\t\t\t\t\t.update( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn [ this.clone([\n\t\t\t\t\t... this.kids.slice( 0, type ),\n\t\t\t\t\t... ins,\n\t\t\t\t\t... this.kids.slice( type + 1 ),\n\t\t\t\t]) ]\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst kids = ( ( this.kids.length === 0 ) ? [ this.list([]) ] : this.kids )\n\t\t\t\t\t.flatMap( item => item.update( value , ... path.slice( 1 ) ) )\n\n\t\t\t\treturn [ this.clone( kids ) ]\n\n\t\t\t}\n\n\t\t}\n\n\t\t/** Query nodes by path. */\n\t\tselect( ...path : $mol_tree2_path ) {\n\n\t\t\tlet next = [ this as $mol_tree2 ]\n\n\t\t\tfor( const type of path ) {\n\n\t\t\t\tif( !next.length ) break\n\t\t\t\t\n\t\t\t\tconst prev = next\n\t\t\t\tnext = []\n\n\t\t\t\tfor( var item of prev ) {\n\n\t\t\t\t\tswitch( typeof( type ) ) {\n\n\t\t\t\t\t\tcase 'string' :\n\n\t\t\t\t\t\t\tfor( var child of item.kids ) {\n\t\t\t\t\t\t\t\tif( child.type == type ) {\n\t\t\t\t\t\t\t\t\tnext.push( child )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase 'number' :\n\n\t\t\t\t\t\t\tif( type < item.kids.length ) next.push( item.kids[ type ] )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tdefault : next.push( ... item.kids )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.list( next )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Filter kids by path or value. */\n\t\tfilter( path : string[] , value? : string ) {\n\n\t\t\tconst sub = this.kids.filter( item => {\n\t\t\t\t\t\n\t\t\t\tvar found = item.select( ...path )\n\t\t\t\t\n\t\t\t\tif( value === undefined ) {\n\t\t\t\t\treturn Boolean( found.kids.length )\n\t\t\t\t} else {\n\t\t\t\t\treturn found.kids.some( child => child.value == value )\n\t\t\t\t}\n\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn this.clone( sub )\n\n\t\t}\n\n\t\thack_self< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\tlet handle = belt[ this.type ] || belt[ '' ]\n\t\t\t\t\n\t\t\tif( !handle || handle === Object.prototype[ this.type as keyof Object ] ) {\n\t\t\t\thandle = ( input, belt, context )=> [\n\t\t\t\t\tinput.clone( input.hack( belt, context ), context.span )\n\t\t\t\t]\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\treturn handle( this , belt , context! )\n\t\t\t} catch( error: any ) {\n\t\t\t\terror.message += `\\n${ this.clone([]) }${ this.span }`\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t}\n\n\t\t/** Transform tree through context with transformers */\n\t\thack< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\treturn ( [] as readonly $mol_tree2[] ).concat(\n\t\t\t\t... this.kids.map( child => child.hack_self(belt, context) )\n\t\t\t)\n\n\t\t}\n\n\t\t/** Makes Error with node coordinates. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn this.span.error( `${ message }\\n${ this.clone([]) }` , Class )\n\t\t}\n\n\t}\n\n\texport class $mol_tree2_empty extends $mol_tree2 {\n\t\tconstructor() {\n\t\t\tsuper( '' , '' , [] , $mol_span.unknown )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Syntax error with cordinates and source line snippet. */\n\texport class $mol_error_syntax extends SyntaxError {\n\t\tconstructor (\n\t\t\tpublic reason: string,\n\t\t\tpublic line: string,\n\t\t\tpublic span: $mol_span,\n\t\t) {\n\t\t\tsuper(`${ reason }\\n${ span }\\n${ line.substring( 0 , span.col - 1 ).replace( /\\S/g, ' ' ) }${ ''.padEnd( span.length, '!' ) }\\n${ line }`)\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Parses tree format from string. */\n\texport function $mol_tree2_from_string(\n\t\tthis: $,\n\t\tstr: string,\n\t\turi = '?',\n\t) : $mol_tree2 {\n\n\t\tconst span = $mol_span.entire( uri, str )\n\n\t\tvar root = $mol_tree2.list( [], span )\n\t\tvar stack = [ root ]\n\n\t\tvar pos = 0, row = 0, min_indent = 0\n\t\t\n\t\twhile( str.length > pos ) {\n\n\t\t\tvar indent = 0\n\t\t\tvar line_start = pos\n\n\t\t\trow++\n\n\t\t\t// read indent\n\t\t\twhile( str.length > pos && str[ pos ] == '\\t' ) {\n\t\t\t\tindent++\n\t\t\t\tpos++\n\t\t\t}\n\n\t\t\tif( ! root.kids.length ) {\n\t\t\t\tmin_indent = indent\n\t\t\t}\n\n\t\t\tindent -= min_indent\n\n\t\t\t// invalid tab size\n\t\t\tif( indent < 0 || indent >= stack.length ) {\n\n\t\t\t\tconst sp = span.span( row, 1, pos - line_start )\n\n\t\t\t\t// skip error line\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( indent < 0 ) {\n\t\t\t\t\tif( str.length > pos ) {\n\t\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t\t`Too few tabs`,\n\t\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\t\tsp,\n\t\t\t\t\t\t) )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Too many tabs`,\n\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tstack.length = indent + 1\n\t\t\tvar parent = stack[ indent ]\n\n\t\t\t// parse types\n\t\t\twhile( str.length > pos && str[ pos ] != '\\\\' && str[ pos ] != '\\n' ) {\n\n\t\t\t\t// type can not contain space and tab\n\t\t\t\tvar error_start = pos\n\t\t\t\twhile( str.length > pos && ( str[ pos ] == ' ' || str[ pos ] == '\\t' ) ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( pos > error_start ) {\n\t\t\t\t\tlet line_end = str.indexOf( '\\n' , pos )\n\t\t\t\t\tif( line_end === -1 ) line_end = str.length\n\t\t\t\t\tconst sp = span.span( row, error_start - line_start + 1, pos - error_start )\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Wrong nodes separator`,\n\t\t\t\t\t\tstr.substring( line_start, line_end ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t\t// read type\n\t\t\t\tvar type_start = pos\n\t\t\t\twhile( \n\t\t\t\t\tstr.length > pos && \n\t\t\t\t\tstr[ pos ] != '\\\\' && \n\t\t\t\t\tstr[ pos ] != ' ' && \n\t\t\t\t\tstr[ pos ] != '\\t' && \n\t\t\t\t\tstr[ pos ] != '\\n'\n\t\t\t\t) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tif( pos > type_start ) {\n\t\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t\tstr.slice( type_start , pos ),\n\t\t\t\t\t\t'',\n\t\t\t\t\t\t[],\n\t\t\t\t\t\tspan.span( row, type_start - line_start + 1, pos - type_start ),\n\t\t\t\t\t)\n\t\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\t\tparent_kids.push( next )\n\t\t\t\t\tparent = next\n\t\t\t\t}\n\n\t\t\t\t// read one space if exists\n\t\t\t\tif( str.length > pos && str[ pos ] == ' ' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// read data\n\t\t\tif( str.length > pos && str[ pos ] == '\\\\' ) {\n\t\t\t\tvar data_start = pos\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t'',\n\t\t\t\t\tstr.slice( data_start + 1 , pos ),\n\t\t\t\t\t[],\n\t\t\t\t\tspan.span( row, data_start - line_start + 2, pos - data_start - 1 ),\n\t\t\t\t)\n\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\tparent_kids.push( next )\n\t\t\t\tparent = next\n\t\t\t}\n\n\t\t\t// now must be end of text\n\t\t\tif( str.length === pos && stack.length > 0 ) {\n\t\t\t\tconst sp = span.span( row, pos - line_start + 1, 1 )\n\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t`Unexpected EOF, LF required`,\n\t\t\t\t\tstr.substring( line_start, str.length ),\n\t\t\t\t\tsp,\n\t\t\t\t) )\n\t\t\t}\n\n\t\t\tstack.push( parent )\n\t\t\tpos++\n\t\t}\n\n\t\treturn root\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_tree2_from_json( json: any, span = $mol_span.unknown ): $mol_tree2 {\n\n\t\tif( typeof json === 'boolean' || typeof json === 'number' || json === null ) {\n\t\t\treturn new $mol_tree2( String( json ) , '' , [] , span )\n\t\t}\n\t\t\n\t\tif( typeof json === 'string' ) {\n\t\t\treturn $mol_tree2.data( json , [], span )\n\t\t}\n\n\t\tif( typeof json.toJSON === 'function' ) {\n\t\t\treturn $mol_tree2_from_json( json.toJSON() )\n\t\t}\n\n\t\tif( Array.isArray( json ) ) {\n\t\t\tconst sub = json.map( json => $mol_tree2_from_json( json , span ) )\n\t\t\treturn new $mol_tree2( '/' , '', sub, span )\n\t\t}\n\t\t\n\t\tif( ArrayBuffer.isView( json ) ) {\n\t\t\tconst buf = new Uint8Array( json.buffer, json.byteOffset, json.byteLength )\n\t\t\treturn $mol_tree2.data( String.fromCharCode( ... buf ) , [], span )\n\t\t}\n\t\t\t\n\t\tif( json instanceof Date ) {\n\t\t\treturn new $mol_tree2( '', json.toISOString() , [] , span )\n\t\t}\n\n\t\tif( json.toString !== Object.prototype.toString ) {\n\t\t\treturn $mol_tree2.data( json.toString() , [], span )\n\t\t}\n\n\t\tif( json instanceof Error ) {\n\t\t\tconst { name , message , stack } = json\n\t\t\tjson = { ... json, name, message, stack }\n\t\t}\n\n\t\tconst sub = [] as $mol_tree2[]\n\t\t\n\t\tfor( var key in json ) {\n\n\t\t\tconst val = json[ key ]\n\n\t\t\tif( val === undefined ) continue\n\n\t\t\tconst subsub = $mol_tree2_from_json( val, span )\n\t\t\t\n\t\t\tif( /^[^\\n\\t\\\\ ]+$/.test( key ) ) {\n\t\t\t\tsub.push( new $mol_tree2( key, '', [ subsub ], span ) )\n\t\t\t} else {\n\t\t\t\tsub.push( $mol_tree2.data( key, [ subsub ], span ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn new $mol_tree2( '*' , '', sub , span )\n\t\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Module for working with terminal. Text coloring when output in terminal */\n\texport class $mol_term_color {\n\t\t\n\t\tstatic reset = this.ansi( 0, 0 )\n\t\tstatic bold = this.ansi( 1, 22 )\n\t\tstatic italic = this.ansi( 3, 23 )\n\t\tstatic underline = this.ansi( 4, 24 )\n\t\tstatic inverse = this.ansi( 7, 27 )\n\t\tstatic hidden = this.ansi( 8, 28 )\n\t\tstatic strike = this.ansi( 9, 29 )\n\t\t\n\t\tstatic gray = this.ansi( 90, 39 )\n\t\tstatic red = this.ansi( 91, 39 )\n\t\tstatic green = this.ansi( 92, 39 )\n\t\tstatic yellow = this.ansi( 93, 39 )\n\t\tstatic blue = this.ansi( 94, 39 )\n\t\tstatic magenta = this.ansi( 95, 39 )\n\t\tstatic cyan = this.ansi( 96, 39 )\n\t\t\n\t\tstatic Gray = ( str: string )=> this.inverse( this.gray( str ) )\n\t\tstatic Red = ( str: string )=> this.inverse( this.red( str ) )\n\t\tstatic Green = ( str: string )=> this.inverse( this.green( str ) )\n\t\tstatic Yellow = ( str: string )=> this.inverse( this.yellow( str ) )\n\t\tstatic Blue = ( str: string )=> this.inverse( this.blue( str ) )\n\t\tstatic Magenta = ( str: string )=> this.inverse( this.magenta( str ) )\n\t\tstatic Cyan = ( str: string )=> this.inverse( this.cyan( str ) )\n\t\t\n\t\tstatic ansi( open: number, close: number ) {\n\t\n\t\t\tif( typeof process === 'undefined' ) return String\n\t\t\tif( !process.stdout.isTTY ) return String\n\t\t\n\t\t\tconst prefix = `\\x1b[${open}m`\n\t\t\tconst postfix = `\\x1b[${close}m`\n\t\t\t\n\t\t\tconst suffix_regexp = new RegExp( postfix.replace( '[', '\\\\[' ), 'g' )\n\t\t\n\t\t\treturn function colorer( str: string ) {\n\t\t\n\t\t\t\tstr = String( str )\n\t\t\t\tif( str === '' ) return str\n\t\t\n\t\t\t\tconst suffix = str.replace( suffix_regexp, prefix )\n\t\t\t\treturn prefix + suffix + postfix\n\t\t\n\t\t\t}\n\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_log3_node_make(\n\t\tlevel : keyof Console ,\n\t\toutput : 'stdout' | 'stderr',\n\t\ttype : string ,\n\t\tcolor: ( str: string )=> string ,\n\t) {\n\n\t\treturn function $mol_log3_logger(\n\t\t\tthis : $ ,\n\t\t\tevent : $mol_log3_event<{}> ,\n\t\t) {\n\n\t\t\tif( !event.time ) event = { time : new Date().toISOString() , ... event }\n\n\t\t\tlet tree = this.$mol_tree2_from_json( event )\n\t\t\ttree = tree.struct( type, tree.kids )\n\t\t\t\n\t\t\tlet str = color( tree.toString() )\n\t\t\t;( this.console[ level ] as any )( str )\n\t\n\t\t\tconst self = this\n\t\t\treturn ()=> self.console.groupEnd()\n\n\t\t}\n\n\t}\n\n\t$.$mol_log3_come = $mol_log3_node_make( 'info' , 'stdout' , 'come' , $mol_term_color.blue )\n\t$.$mol_log3_done = $mol_log3_node_make( 'info' , 'stdout' , 'done' , $mol_term_color.green )\n\t$.$mol_log3_fail = $mol_log3_node_make( 'error' , 'stderr' , 'fail' , $mol_term_color.red )\n\t$.$mol_log3_warn = $mol_log3_node_make( 'warn' , 'stderr' , 'warn' , $mol_term_color.yellow )\n\t$.$mol_log3_rise = $mol_log3_node_make( 'log' , 'stdout' , 'rise' , $mol_term_color.magenta )\n\t$.$mol_log3_area = $mol_log3_node_make( 'log' , 'stdout' , 'area' , $mol_term_color.cyan )\n\n}\n","namespace $ {\n\t\n\t/** One-shot fiber */\n\texport class $mol_wire_task<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_fiber< Host, Args, Result > {\n\t\t\n\t\tstatic getter<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\ttask: ( this : Host , ... args : Args )=> Result,\n\t\t): ( host: Host, args: Args )=> $mol_wire_task< Host, Args, Result > {\n\t\t\t\n\t\t\treturn function $mol_wire_task_get( host: Host, args: Args ) {\n\t\t\t\t\n\t\t\t\tconst sub = $mol_wire_auto()\n\t\t\t\tconst existen = sub?.track_next() as $mol_wire_task< Host, Args, Result > | undefined\n\t\t\t\tlet cause = ''\n\t\t\t\t\n\t\t\t\treuse: if( existen ) {\n\t\t\t\t\t\n\t\t\t\t\tif( !existen.temp ) break reuse\n\t\t\t\t\t\n\t\t\t\t\tif( existen.task !== task ) { cause = 'task'; break reuse }\n\t\t\t\t\tif( existen.host !== host ) { cause = 'host'; break reuse }\n\t\t\t\t\tif( !$mol_compare_deep( existen.args, args ) ) { cause = 'args'; break reuse }\n\t\t\t\t\t\n\t\t\t\t\treturn existen\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst key = ( (host as any)?.[ Symbol.toStringTag ] ?? host ) + ( '.' + task.name + '<#>' )\n\t\t\t\tconst next = new $mol_wire_task( key, task, host, args )\n\t\t\t\t\n\t\t\t\t// Disabled because non-idempotency is required for try-catch\n\t\t\t\tif( existen?.temp ) {\n\t\t\t\t\t$$.$mol_log3_warn({\n\t\t\t\t\t\tplace: '$mol_wire_task',\n\t\t\t\t\t\tmessage: `Different ${cause} on restart`,\n\t\t\t\t\t\tsub,\n\t\t\t\t\t\tprev: existen,\n\t\t\t\t\t\tnext,\n\t\t\t\t\t\thint: 'Maybe required additional memoization',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn next\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tget temp() {\n\t\t\treturn true\n\t\t}\n\t\t\n\t\tcomplete() {\n\t\t\tif( $mol_promise_like( this.cache ) ) return\n\t\t\tthis.destructor()\n\t\t}\n\t\t\n\t\tput( next: Result | Error | Promise< Result | Error > ) {\n\t\t\t\n\t\t\tconst prev = this.cache\n\t\t\tthis.cache = next\n\t\t\t\n\t\t\tif( $mol_promise_like( next ) ) {\n\t\t\t\t\n\t\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\tif( next !== prev ) this.emit()\n\t\t\t\t\n\t\t\t\tif( $mol_owning_catch( this, next ) ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t(next as any)[ Symbol.toStringTag ] = (this as any)[ Symbol.toStringTag ]\n\t\t\t\t\t} catch { // Promises throw in strict mode\n\t\t\t\t\t\tObject.defineProperty( next, Symbol.toStringTag, { value: (this as any)[ Symbol.toStringTag ] } )\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn next\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_wire_cursor.final\n\t\t\t\n\t\t\tif( this.sub_empty ) this.destructor()\n\t\t\telse if( next !== prev ) this.emit()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\tsuper.destructor()\n\t\t\tthis.cursor = $mol_wire_cursor.final\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\tconst factories = new WeakMap<Function, Function>()\n\n\tfunction factory<Args extends unknown[], Result>(\n\t\tval: new (...args: Args) => Result\n\t) {\n\t\tlet make = factories.get(val) as null | ((...args: Args) => Result)\n\n\t\tif ( make ) return make\n\n\t\tmake = $mol_func_name_from((...args: Args) => new val(...args), val)\n\t\tfactories.set(val, make)\n\n\t\treturn make\n\t}\n\n\tconst getters = new WeakMap<Object, Record<string | symbol, (next?: unknown) => unknown>>()\n\n\tfunction get_prop(\n\t\thost: Object,\n\t\tfield: string | symbol,\n\t) {\n\t\tlet props = getters.get(host)\n\t\tlet get_val = props?.[field]\n\n\t\tif ( get_val ) return get_val\n\n\t\tget_val = (next?: unknown) => {\n\t\t\tif (next !== undefined) host[field as keyof typeof host] = next as any\n\n\t\t\treturn host[field as keyof typeof host]\n\t\t}\n\n\t\tObject.defineProperty( get_val , 'name' , { value : field } )\n\n\t\tif (! props) {\n\t\t\tprops = {}\n\t\t\tgetters.set(host, props)\n\t\t}\n\t\tprops[field] = get_val\n\n\t\treturn get_val\n\t}\n\n\t/**\n\t * Convert asynchronous (promise-based) API to synchronous by wrapping function and method calls in a fiber.\n\t * @see https://mol.hyoo.ru/#!section=docs/=1fcpsq_1wh0h2\n\t */\n\texport function $mol_wire_sync< Host extends object >( obj: Host ) {\n\t\treturn new Proxy( obj, {\n\t\t\t\n\t\t\tget( obj, field ) {\n\t\t\t\t\n\t\t\t\tlet val = (obj as any)[ field ]\n\t\t\t\tconst temp = $mol_wire_task.getter(typeof val === 'function' ? val : get_prop(obj, field))\n\n\t\t\t\tif (typeof val !== 'function') return temp( obj, [] ).sync()\n\n\t\t\t\treturn function $mol_wire_sync( this: Host, ... args: unknown[] ) {\n\t\t\t\t\tconst fiber = temp( obj, args )\n\t\t\t\t\treturn fiber.sync()\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tset( obj, field, next) {\n\t\t\t\tconst temp = $mol_wire_task.getter(get_prop(obj, field))\n\t\t\t\ttemp( obj, [ next ] ).sync()\n\n\t\t\t\treturn true\n\t\t\t},\n\n\t\t\tconstruct(obj, args) {\n\t\t\t\tconst temp = $mol_wire_task.getter(factory(obj as (new ( ... args: unknown[] )=> unknown)))\n\t\t\t\treturn temp( obj, args ).sync() as object\n\t\t\t},\n\n\t\t\tapply( obj, self, args ) {\n\t\t\t\tconst temp = $mol_wire_task.getter(obj as ( ... args: any[] )=> any)\n\t\t\t\treturn temp(self, args).sync()\n\t\t\t},\n\t\t\t\n\t\t} ) as unknown as ObjectOrFunctionResultAwaited<Host>\n\t}\n\n\ttype FunctionResultAwaited<Some> = Some extends (...args: infer Args) => infer Res\n\t\t? (...args: Args) => Awaited<Res>\n\t\t: Some\n\n\ttype ConstructorResultAwaited<Some> = Some extends new (...args: infer Args) => infer Res\n\t\t? new (...args: Args) => Res\n\t\t: {}\n\n\ttype MethodsResultAwaited<Host extends Object> = {\n\t\t[K in keyof Host]: FunctionResultAwaited<Host[K]>\n\t}\n\n\ttype ObjectOrFunctionResultAwaited<Some> = (\n\t\tSome extends (...args: any) => unknown ? FunctionResultAwaited<Some> : {}\n\t) & ( Some extends Object ? MethodsResultAwaited<Some> & ConstructorResultAwaited<Some> : Some )\n\n}\n","namespace $ {\n\n\texport type $mol_run_error_context = {\n\t\tpid?: number\n\t\tstdout: Buffer | string\n\t\tstderr: Buffer | string\n\t}\n\n\texport class $mol_run_error extends $mol_error_mix<{\n\t\ttimeout_kill?: boolean\n\t\tpid?: number\n\t\tsignal?: NodeJS.Signals | null\n\t\tstatus?: number | null\n\t\tcommand: string\n\t\tdir: string\n\t}> {}\n\n\texport const $mol_run_spawn = (\n\t\t...args: Parameters<typeof $node['child_process']['spawn']>\n\t) => $node['child_process'].spawn(...args)\n\n\texport const $mol_run_spawn_sync = (\n\t\t...args: Parameters<typeof $node['child_process']['spawnSync']>\n\t) => $node['child_process'].spawnSync(...args)\n\n\texport type $mol_run_options = {\n\t\tcommand : readonly string[] | string\n\t\tdir : string\n\t\ttimeout?: number\n\t\tenv?: Record<string, string | undefined>\n\t}\n\n\texport class $mol_run extends $mol_object {\n\n\t\tstatic async_enabled() {\n\t\t\treturn Boolean(this.$.$mol_env()['MOL_RUN_ASYNC'])\n\t\t}\n\n\t\tstatic spawn(options: $mol_run_options) {\n\t\t\tconst sync = ! this.async_enabled() || ! Boolean($mol_wire_auto())\n\t\t\tconst env = options.env ?? this.$.$mol_env()\n\n\t\t\treturn $mol_wire_sync(this).spawn_async( { ...options, sync, env } )\n\t\t}\n\n\t\tstatic spawn_async(\n\t\t\t{ dir, sync, timeout, command, env }: $mol_run_options & { sync?: boolean }\n\t\t) {\n\t\t\tconst args_raw = typeof command === 'string' ? command.split( ' ' ) : command\n\t\t\tconst [ app, ...args ] = args_raw\n\t\t\tconst opts = { shell: true, cwd: dir, env }\n\n\t\t\tconst log_object = {\n\t\t\t\tplace: `${this}.spawn()`,\n\t\t\t\tmessage: 'Run',\n\t\t\t\tcommand: args_raw.join(' ') ,\n\t\t\t\tdir: $node.path.relative( '' , dir ) ,\n\t\t\t}\n\n\t\t\tif (sync) {\n\n\t\t\t\tthis.$.$mol_log3_come({\n\t\t\t\t\thint: 'Run inside fiber',\n\t\t\t\t\t...log_object\n\t\t\t\t})\n\n\t\t\t\tlet error: Error | undefined\n\t\t\t\tlet res\n\n\t\t\t\ttry {\n\t\t\t\t\tres = this.$.$mol_run_spawn_sync(app, args, opts)\n\t\t\t\t\terror = res.error\n\t\t\t\t} catch (err) {\n\t\t\t\t\terror = err as Error\n\t\t\t\t}\n\n\t\t\t\tif (! res || error || res.status) {\n\t\t\t\t\tthrow new $mol_run_error(\n\t\t\t\t\t\tthis.error_message(res),\n\t\t\t\t\t\t{ ...log_object, status: res?.status, signal: res?.signal },\n\t\t\t\t\t\t...(error ? [error] : [])\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tlet sub\n\n\t\t\ttry {\n\t\t\t\tsub = this.$.$mol_run_spawn(app, args, {\n\t\t\t\t\t...opts,\n\t\t\t\t\tstdio: [ 'pipe', 'inherit', 'inherit' ],\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tthrow new $mol_run_error(\n\t\t\t\t\tthis.error_message(undefined),\n\t\t\t\t\tlog_object,\n\t\t\t\t\terror as Error\n\t\t\t\t)\n\t\t\t}\n\t\n\t\t\tconst pid = sub.pid ?? 0\n\n\t\t\tthis.$.$mol_log3_come({\n\t\t\t\t...log_object,\n\t\t\t\tpid,\n\t\t\t})\n\t\n\t\t\tlet timeout_kill = false\n\t\t\tlet timer: undefined | ReturnType<typeof setTimeout>\n\t\n\t\t\tconst std_data = [] as Buffer[]\n\t\t\tconst error_data = [] as Buffer[]\n\t\n\t\t\tconst add = (std_chunk?: Buffer, error_chunk?: Buffer) => {\n\t\t\t\tif (std_chunk) std_data.push(std_chunk)\n\t\t\t\tif (error_chunk) error_data.push(error_chunk)\n\t\t\t\tif (! timeout) return\n\t\n\t\t\t\tclearTimeout(timer)\n\t\n\t\t\t\ttimer = setTimeout(() => {\n\t\t\t\t\tconst signal = timeout_kill ? 'SIGKILL' : 'SIGTERM'\n\t\t\t\t\ttimeout_kill = true\n\t\t\t\t\tadd()\n\t\t\t\t\tsub.kill(signal)\n\t\t\t\t}, timeout)\n\t\t\t}\n\t\n\t\t\tadd()\n\t\n\t\t\tsub.stdout?.on('data', data => add(data) )\n\t\t\tsub.stderr?.on('data', data => add(undefined, data) )\n\t\n\t\t\tconst result_promise = new Promise<$mol_run_error_context>((done, fail) => {\n\t\t\t\tconst close = (error: Error | null, status: number | null = null, signal: NodeJS.Signals | null = null) => {\n\t\t\t\t\tif (! timer && timeout) return\n\t\n\t\t\t\t\tclearTimeout(timer)\n\t\t\t\t\ttimer = undefined\n\t\n\t\t\t\t\tconst res = {\n\t\t\t\t\t\tpid,\n\t\t\t\t\t\tsignal,\n\t\t\t\t\t\tget stdout() { return Buffer.concat(std_data) },\n\t\t\t\t\t\tget stderr() { return Buffer.concat(error_data) }\n\t\t\t\t\t}\n\t\t\n\t\t\t\t\tif (error || status || timeout_kill) return fail( new $mol_run_error(\n\t\t\t\t\t\tthis.error_message(res) + (timeout_kill ? ', timeout' : ''),\n\t\t\t\t\t\t{ ...log_object, pid, status, signal, timeout_kill },\n\t\t\t\t\t\t...error ? [ error ] : []\n\t\t\t\t\t) )\n\n\t\t\t\t\tthis.$.$mol_log3_done({\n\t\t\t\t\t\t...log_object,\n\t\t\t\t\t\tpid,\n\t\t\t\t\t})\n\t\t\t\n\t\t\t\t\tdone(res)\n\t\t\t\t}\n\t\n\t\t\t\tsub.on('disconnect', () => close(new Error('Disconnected')) )\n\t\t\t\tsub.on('error', err => close(err) )\n\t\t\t\tsub.on('exit', (status, signal) => close(null, status, signal) )\n\t\t\t})\n\t\n\t\t\treturn Object.assign(result_promise, { destructor: () => {\n\t\t\t\tclearTimeout(timer)\n\t\t\t\tsub.kill('SIGKILL')\n\t\t\t} })\n\t\t}\n\n\t\tstatic error_message(res?: $mol_run_error_context) {\n\t\t\treturn res?.stderr.toString() || res?.stdout.toString() || 'Run error'\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_exec(\n\t\tthis : $ ,\n\t\tdir : string ,\n\t\tcommand : string ,\n\t\t...args : readonly string[]\n\t) {\n\t\treturn this.$mol_run.spawn( { command: [ command, ...args ], dir } )\n\t}\n}\n","namespace $ {\n\t\n\t$.$mol_dom_context = new $node.jsdom.JSDOM( '' , { url : 'https://localhost/' } ).window as any\n\t\n}\n","namespace $ {\n\t\n\texport var $mol_dom = $mol_dom_context\n\t\n}\n","namespace $ {\n\n\texport function $mol_style_attach(\n\t\tid : string ,\n\t\ttext : string ,\n\t) {\n\n\t\tconst doc = $mol_dom_context.document\n\t\tif( !doc ) return null\n\t\t\n\t\tconst elid = `$mol_style_attach:${id}`\n\t\t\n\t\tlet el = doc.getElementById( elid ) as HTMLStyleElement\n\t\tif( !el ) {\n\t\t\tel = doc.createElement('style')\n\t\t\tel.id = elid\n\t\t\tdoc.head.appendChild( el )\n\t\t}\n\t\tif( el.innerHTML != text ) el.innerHTML = text\n\t\t\n\t\treturn el\n\t}\n\n}\n","namespace $ {\n\texport class $mol_promise<Result = void> extends Promise<Result> {\n\t\tdone: (value: Result | PromiseLike<Result>) => void\n\t\tfail: (reason?: any) => void\n\n\t\tconstructor(\n\t\t\texecutor?: (\n\t\t\t\tdone: (value: Result | PromiseLike<Result>) => void,\n\t\t\t\tfail: (reason?: any) => void\n\t\t\t) => void\n\t\t) {\n\t\t\tlet done: (value: Result | PromiseLike<Result>) => void\n\t\t\tlet fail: (reason?: any) => void\n\n\t\t\tsuper((d, f) => {\n\t\t\t\tdone = d\n\t\t\t\tfail = f\n\t\t\t\texecutor?.(d, f)\n\t\t\t})\n\n\t\t\tthis.done = done!\n\t\t\tthis.fail = fail!\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_promise_blocker<Result> extends $mol_promise<Result> {\n\t\tstatic [Symbol.toStringTag] = '$mol_promise_blocker'\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_decor< Value > {\n\t\t\n\t\tconstructor(\n\t\t\treadonly value : Value\n\t\t) {}\n\n\t\tprefix() { return '' }\n\t\tvalueOf() { return this.value }\n\t\tpostfix() { return '' }\n\n\t\ttoString(){\n\t\t\treturn `${ this.prefix() }${ this.valueOf() }${ this.postfix() }`\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport type $mol_style_unit_length =\n\t| '%'\n\t| 'px' | 'cm' | 'mm' | 'Q' | 'in' | 'pc' | 'pt'\n\t| 'cap' | 'ch' | 'em' | 'rem' | 'ex' | 'ic' | 'lh' | 'rlh'\n\t| 'vh' | 'vw' | 'vi' | 'vb' | 'vmin' | 'vmax'\n\t\n\texport type $mol_style_unit_angle = 'deg' | 'rad' | 'grad' | 'turn'\n\t\n\texport type $mol_style_unit_time = 's' | 'ms'\n\n\texport type $mol_style_unit_any = $mol_style_unit_length | $mol_style_unit_angle | $mol_style_unit_time\n\n\texport type $mol_style_unit_str< Quanity extends $mol_style_unit_any = $mol_style_unit_any> = `${number}${Quanity}`\n\n\t/**\n\t * CSS Units\n\t * @see https://mol.hyoo.ru/#!section=docs/=xwq9q5_f966fg\n\t */\n\texport class $mol_style_unit<\n\t\tLiteral extends $mol_style_unit_any\n\t> extends $mol_decor< number > {\n\n\t\tconstructor(\n\t\t\tvalue : number,\n\t\t\treadonly literal : Literal,\n\t\t) {\n\t\t\tsuper( value )\n\t\t}\n\n\t\tpostfix() {\n\t\t\treturn this.literal\n\t\t}\n\n\t\tstatic per( value : number ) { return `${value}%` as const }\n\t\tstatic px( value : number ) { return `${ value }px` as const }\n\t\tstatic mm( value : number ) { return `${value}mm` as const }\n\t\tstatic cm( value : number ) { return `${value}cm` as const }\n\t\tstatic Q( value : number ) { return `${value}Q` as const }\n\t\tstatic in( value : number ) { return `${value}in` as const }\n\t\tstatic pc( value : number ) { return `${value}pc` as const }\n\t\tstatic pt( value : number ) { return `${value}pt` as const }\n\t\tstatic cap( value : number ) { return `${value}cap` as const }\n\t\tstatic ch( value : number ) { return `${value}ch` as const }\n\t\tstatic em( value : number ) { return `${value}em` as const }\n\t\tstatic rem( value : number ) { return `${value}rem` as const }\n\t\tstatic ex( value : number ) { return `${value}ex` as const }\n\t\tstatic ic( value : number ) { return `${value}ic` as const }\n\t\tstatic lh( value : number ) { return `${value}lh` as const }\n\t\tstatic rlh( value : number ) { return `${value}rlh` as const }\n\t\tstatic vh( value : number ) { return `${value}vh` as const }\n\t\tstatic vw( value : number ) { return `${value}vw` as const }\n\t\tstatic vi( value : number ) { return `${value}vi` as const }\n\t\tstatic vb( value : number ) { return `${value}vb` as const }\n\t\tstatic vmin( value : number ) { return `${value}vmin` as const }\n\t\tstatic vmax( value : number ) { return `${value}vmax` as const }\n\t\t\n\t\tstatic deg( value : number ) { return `${value}deg` as const }\n\t\tstatic rad( value : number ) { return `${value}rad` as const }\n\t\tstatic grad( value : number ) { return `${value}grad` as const }\n\t\tstatic turn( value : number ) { return `${value}turn` as const }\n\n\t\tstatic s( value : number ) { return `${value}s` as const }\n\t\tstatic ms( value : number ) { return `${value}ms` as const }\n\t\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_style_func_name =\n\t| 'calc'\n\t| 'hsla'\n\t| 'rgba'\n\t| 'var'\n\t| 'clamp'\n\t| 'scale'\n\t| 'cubic-bezier'\n\t| 'linear'\n\t| 'steps'\n\t| $mol_style_func_image\n\t| $mol_style_func_filter\n\t\n\texport type $mol_style_func_image =\n\t| 'url'\n\t| 'linear-gradient'\n\t| 'radial-gradient'\n\t| 'conic-gradient'\n\t\n\texport type $mol_style_func_filter =\n\t| 'blur'\n\t| 'brightness'\n\t| 'contrast'\n\t| 'drop-shadow'\n\t| 'grayscale'\n\t| 'hue-rotate'\n\t| 'invert'\n\t| 'opacity'\n\t| 'sepia'\n\t| 'saturate'\n\n\tconst { per } = $mol_style_unit\n\t\n\t/**\n\t * CSS Functions\n\t * @see https://mol.hyoo.ru/#!section=docs/=xwq9q5_f966fg\n\t */\n\texport class $mol_style_func<\n\t\tName extends $mol_style_func_name ,\n\t\tValue = unknown,\n\t> extends $mol_decor< Value > {\n\n\t\tconstructor(\n\t\t\treadonly name : Name,\n\t\t\tvalue : Value,\n\t\t) {\n\t\t\tsuper( value )\n\t\t}\n\n\t\tprefix() { return this.name + '(' }\n\t\tpostfix() { return ')' }\n\n\t\tstatic linear_gradient< Value >( value : Value ) {\n\t\t\treturn new $mol_style_func( 'linear-gradient' , value )\n\t\t}\n\n\t\tstatic radial_gradient< Value >( value : Value ) {\n\t\t\treturn new $mol_style_func( 'radial-gradient' , value )\n\t\t}\n\n\t\tstatic calc< Value >( value : Value ) {\n\t\t\treturn new $mol_style_func( 'calc' , value )\n\t\t}\n\n\t\tstatic vary< Name extends string, Value extends string >( name : Name, defaultValue? : Value ) {\n\t\t\treturn new $mol_style_func( 'var' , defaultValue ? [name, defaultValue] : name )\n\t\t}\n\n\t\tstatic url< Href extends string >( href : Href ) {\n\t\t\treturn new $mol_style_func( 'url' , JSON.stringify( href ) )\n\t\t}\n\n\t\tstatic hsla(\n\t\t\thue: number,\n\t\t\tsaturation: number,\n\t\t\tlightness: number,\n\t\t\talpha: number,\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t'hsla',\n\t\t\t\t[ hue , per( saturation ) , per( lightness ) , alpha ],\n\t\t\t)\n\t\t}\n\t\n\t\tstatic clamp(\n\t\t\tmin: $mol_style_unit_str< any >,\n\t\t\tmid: $mol_style_unit_str< any >,\n\t\t\tmax: $mol_style_unit_str< any >,\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t'clamp',\n\t\t\t\t[ min, mid, max ],\n\t\t\t)\n\t\t}\n\t\n\t\tstatic rgba(\n\t\t\tred: number,\n\t\t\tgreen: number,\n\t\t\tblue: number,\n\t\t\talpha: number,\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t'rgba',\n\t\t\t\t[ red , green , blue , alpha ],\n\t\t\t)\n\t\t}\n\t\n\t\tstatic scale(\n\t\t\tzoom: number,\n\t\t) {\n\t\t\treturn new $mol_style_func( 'scale', [ zoom ] )\n\t\t}\n\t\t\n\t\tstatic linear(\n\t\t\t...breakpoints : Array<number | [number, number | $mol_style_unit_str<'%'>]>\n\t\t){\n\t\t\treturn new $mol_style_func(\n\t\t\t\t\"linear\",\n\t\t\t\tbreakpoints.map((e) =>\n\t\t\t\t\tArray.isArray(e)\n\t\t\t\t\t\t? String(e[0]) +\n\t\t\t\t\t\t \" \" +\n\t\t\t\t\t\t (typeof e[1] === \"number\" ? e[1] + \"%\" : e[1].toString())\n\t\t\t\t\t\t: String(e)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\t\n\t\tstatic cubic_bezier(\n\t\t\tx1: number,\n\t\t\ty1: number,\n\t\t\tx2: number,\n\t\t\ty2: number\n\t\t){\n\t\t\treturn new $mol_style_func( 'cubic-bezier', [ x1, y1, x2, y2 ]);\n\t\t}\n\t\t\n\t\tstatic steps(value: number, step_position: 'jump-start' | 'jump-end' | 'jump-none' | 'jump-both' | 'start' | 'end'){\n\t\t\treturn new $mol_style_func( 'steps', [ value, step_position ] )\n\t\t}\n\t\t\n\t\tstatic blur(value?: $mol_style_unit_str<$mol_style_unit_length>){\n\t\t\treturn new $mol_style_func( 'blur', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic brightness(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'brightness', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic contrast(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'contrast', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic drop_shadow(\n\t\t\tcolor: $mol_style_properties_color,\n\t\t\tx_offset: $mol_style_unit_str<$mol_style_unit_length>,\n\t\t\ty_offset: $mol_style_unit_str<$mol_style_unit_length>,\n\t\t\tblur_radius?: $mol_style_unit_str<$mol_style_unit_length>\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t\"drop-shadow\",\n\t\t\t\tblur_radius\n\t\t\t\t\t? [color, x_offset, y_offset, blur_radius]\n\t\t\t\t\t: [color, x_offset, y_offset]\n\t\t\t);\n\t\t}\n\t\t\n\t\tstatic grayscale(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'grayscale', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic hue_rotate(value?: 0 | $mol_style_unit_str<$mol_style_unit_angle>){\n\t\t\treturn new $mol_style_func( 'hue-rotate', value ?? \"\")\n\t\t}\n\t\t\n\t\tstatic invert(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'invert', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic opacity(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'opacity', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic sepia(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'sepia', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic saturate(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'saturate', value ?? \"\" );\n\t\t}\n\t\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Create record of CSS variables. */\n\texport function $mol_style_prop< Keys extends string[] >(\n\t\tprefix: string ,\n\t\tkeys: Keys\n\t) {\n\t\t\n\t\tconst record = keys.reduce( ( rec , key: Keys[number] )=> {\n\t\t\t\n\t\t\trec[ key ] = $mol_style_func.vary( `--${ prefix }_${ key }` )\n\t\t\treturn rec\n\t\t\t\n\t\t}, {} as Record< Keys[number], $mol_style_func< 'var' > > )\n\t\t\n\t\treturn record\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport const $mol_key_store = new WeakMap< object, string >()\n\t\n\tconst TypedArray = Object.getPrototypeOf( Uint8Array )\n\n\t/** Returns string key for any value. */\n\texport function $mol_key< Value >( value : Value ) : string {\n\t\t\n\t\tif( typeof value === 'bigint' ) return value.toString() + 'n'\n\t\tif( typeof value === 'symbol' ) return value.description!\n\t\tif( !value ) return JSON.stringify( value )\n\t\tif( typeof value !== 'object' && typeof value !== 'function' ) return JSON.stringify( value )\n\t\t\n\t\treturn JSON.stringify( value, ( field, value )=> {\n\t\t\t\n\t\t\tif( typeof value === 'bigint' ) return value.toString() + 'n'\n\t\t\tif( typeof value === 'symbol' ) return value.description\n\t\t\tif( !value ) return value\n\t\t\tif( typeof value !== 'object' && typeof value !== 'function' ) return value\n\t\t\tif( Array.isArray( value ) ) return value\n\t\t\t\n\t\t\tconst proto = Reflect.getPrototypeOf( value )\n\t\t\tif( !proto ) return value\n\t\t\tif( Reflect.getPrototypeOf( proto ) === null ) return value\n\t\t\t\n\t\t\tif( 'toJSON' in value ) return value\n\t\t\tif( value instanceof RegExp ) return value.toString()\n\t\t\t// if( value instanceof DataView ) return [ ... new Uint8Array( value.buffer ) ]\n\t\t\tif( value instanceof TypedArray ) return [ ... value as any ]\n\t\t\t\n\t\t\tlet key = $mol_key_store.get( value )\n\t\t\tif( key ) return key\n\t\t\t\n\t\t\tkey = $mol_guid()\n\t\t\t$mol_key_store.set( value, key )\n\t\t\t\n\t\t\treturn key\n\t\t} )\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_timeout extends $mol_object2 {\n\n\t\tid : any\n\n\t\tconstructor(\n\t\t\tpublic delay : number ,\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis.id = setTimeout( task , delay )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tclearTimeout( this.id )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_frame extends $mol_after_timeout {\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper( 16 , task )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Decorates method to fiber to ensure it is executed only once inside other fiber.\n\t */\n\texport function $mol_wire_method<\n\t\tHost extends object,\n\t\tArgs extends readonly any[],\n\t>(\n\t\thost : Host,\n\t\tfield : PropertyKey,\n\t\tdescr? : TypedPropertyDescriptor< ( ... args: Args )=> any >,\n\t) {\n\t\t\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field ) as any\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\t\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst temp = $mol_wire_task.getter( orig )\n\t\tconst value = function( this: Host, ... args: Args ) {\n\t\t\tconst fiber = temp( this ?? null as any, args )\n\t\t\treturn fiber.sync()\n\t\t}\n\t\t\n\t\tObject.defineProperty( value , 'name' , { value : orig.name + ' ' } )\n\t\t\n\t\tObject.assign( value, { orig } )\n\t\tconst descr2 = { ... descr, value }\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Long-living fiber. */\n\texport class $mol_wire_atom<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_fiber< Host, Args, Result > {\n\n\t\tstatic solo<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\thost: Host,\n\t\t\ttask: ( this: Host, ... args: Args )=> Result,\n\t\t): $mol_wire_atom< Host, Args, Result > {\n\t\t\t\n\t\t\tconst field = task.name + '()'\n\t\t\t\n\t\t\tconst existen = Object.getOwnPropertyDescriptor( host ?? task, field )?.value\n\t\t\tif( existen ) return existen\n\t\t\t\n\t\t\tconst prefix = (host as any)?.[ Symbol.toStringTag ] ?? ( host instanceof Function ? $$.$mol_func_name( host ) : host )\n\t\t\tconst key = prefix + ( '.' + task.name + '<>' )\n\t\t\t\n\t\t\tconst fiber = new $mol_wire_atom( key, task, host, [] as any as Args )\n\t\t\t;( host as any ?? task )[ field ] = fiber\n\t\t\t\n\t\t\treturn fiber\n\t\t}\n\t\t\n\t\tstatic plex<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\thost: Host,\n\t\t\ttask: ( this: Host , ... args: Args )=> Result,\n\t\t\tkey: Args[0],\n\t\t): $mol_wire_atom< Host, Args, Result > {\n\t\t\t\n\t\t\tconst field = task.name + '()'\n\t\t\tlet dict = Object.getOwnPropertyDescriptor( host ?? task, field )?.value\n\t\t\tconst prefix = (host as any)?.[ Symbol.toStringTag ] ?? ( host instanceof Function ? $$.$mol_func_name( host ) : host )\n\t\t\tconst key_str = $mol_key( key )\n\t\t\t\n\t\t\tif( dict ) {\n\t\t\t\tconst existen = dict.get( key_str )\n\t\t\t\tif( existen ) return existen\n\t\t\t} else {\n\t\t\t\tdict = ( host as any ?? task )[ field ] = new Map<any,any>()\n\t\t\t}\n\t\t\t\n\t\t\tconst id = prefix + ( '.' + task.name ) + ( '<' + key_str.replace( /^\"|\"$/g, \"'\" ) + '>' )\n\t\t\tconst fiber = new $mol_wire_atom( id, task, host, [ key ] as any as Args )\n\t\t\tdict.set( key_str, fiber )\n\t\t\t\n\t\t\treturn fiber\n\t\t}\n\t\t\n\t\tstatic watching = new Set< $mol_wire_atom< any, any, any > >()\n\t\tstatic watcher = null as $mol_after_frame | null\n\t\t\n\t\tstatic watch() {\n\t\t\n\t\t\t$mol_wire_atom.watcher = new $mol_after_frame( $mol_wire_atom.watch )\n\t\t\t\n\t\t\tfor( const atom of $mol_wire_atom.watching ) {\n\t\t\t\t\n\t\t\t\tif( atom.cursor === $mol_wire_cursor.final ) {\n\t\t\t\t\t$mol_wire_atom.watching.delete( atom )\n\t\t\t\t} else {\n\t\t\t\t\tatom.cursor = $mol_wire_cursor.stale\n\t\t\t\t\tatom.fresh()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\twatch() {\n\t\t\t\n\t\t\tif( !$mol_wire_atom.watcher ) {\n\t\t\t\t$mol_wire_atom.watcher = new $mol_after_frame( $mol_wire_atom.watch )\n\t\t\t}\n\t\t\t\n\t\t\t$mol_wire_atom.watching.add( this )\n\t\t\t\n\t\t}\n\t\t\n\t\t/**\n\t\t * Update atom value through another temp fiber.\n\t\t */\n\t\t@ $mol_wire_method\n\t\tresync( args: Args ) {\n\t\t\t\n\t\t\t// enforce pulling tasks abort\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < this.sub_from;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tif( pub && pub instanceof $mol_wire_task ) {\n\t\t\t\t\tpub.destructor()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn this.put( this.task.call( this.host!, ... args ) )\n\t\t}\n\t\t\n\t\t@ $mol_wire_method\n\t\tonce() {\n\t\t\treturn this.sync()\n\t\t}\n\t\t\n\t\tchannel() {\n\t\t\treturn Object.assign( ( next?: $mol_type_foot< Args > )=> {\n\t\t\t\t\t\n\t\t\t\tif( next !== undefined ) return this.resync( [ ... this.args, next ] as any ) as never\n\t\t\t\tif( !$mol_wire_fiber.warm ) return this.result() as never\n\t\t\t\t\n\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\treturn this.once()\n\t\t\t\t} else {\n\t\t\t\t\treturn this.sync()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}, { atom: this as $mol_wire_atom< Host, Args, Result > } )\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t\n\t\t\tsuper.destructor()\n\t\t\t\n\t\t\tif( this.pub_from === 0 ) {\n\t\t\t\t;( this.host as any ?? this.task )[ this.field() ] = null\n\t\t\t} else {\n\t\t\t\t;( this.host as any ?? this.task )[ this.field() ].delete( $mol_key( this.args[0] ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tput( next: Result | Error | Promise< Result | Error > ) {\n\t\t\t\n\t\t\tconst prev = this.cache\n\t\t\t\n\t\t\tupdate: if( next !== prev ) {\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tif( $mol_compare_deep( prev, next ) ) break update\n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t$mol_fail_log( error )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_owning_check( this, prev ) ) {\n\t\t\t\t\tprev.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_owning_catch( this, next ) ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t(next as any)[ Symbol.toStringTag ] = (this as any)[ Symbol.toStringTag ]\n\t\t\t\t\t} catch { // Promises throw in strict mode\n\t\t\t\t\t\tObject.defineProperty( next, Symbol.toStringTag, { value: (this as any)[ Symbol.toStringTag ] } )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !this.sub_empty ) this.emit()\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.cache = next\n\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\n\t\t\tif( $mol_promise_like( next ) ) return next\n\t\t\t\n\t\t\tthis.complete_pubs()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\t/** Decorates solo object channel to [mol_wire_atom](../atom/atom.ts). */\n\texport function $mol_wire_solo< Args extends any[] >(\n\t\thost: object,\n\t\tfield: string,\n\t\tdescr?: TypedPropertyDescriptor< ( ... args: Args )=> any >\n\t) {\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field )\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst descr2 = {\n\t\t\t... descr,\n\t\t\tvalue: function( this: typeof host, ... args: Args ){\n\t\t\t\n\t\t\t\tlet atom = $mol_wire_atom.solo( this, orig )\n\t\t\t\t\n\t\t\t\tif(( args.length === 0 )||( args[0] === undefined )) {\n\t\t\t\t\t\n\t\t\t\t\tif( !$mol_wire_fiber.warm ) return atom.result()\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\t\treturn atom.once()\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn atom.sync()\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn atom.resync( args )\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tReflect.defineProperty( descr2.value , 'name' , { value : orig.name + ' ' } )\n\t\tReflect.defineProperty( descr2.value , 'length' , { value : orig.length } )\n\t\tObject.assign( descr2.value, { orig } )\n\t\t\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2 as any as TypedPropertyDescriptor< ( ... args: First_optional< Args > )=> any >\n\t}\n\n\ttype First_optional< Args extends any[] > = Args extends []\n\t\t? []\n\t\t: [ Args[0] | undefined, ... $mol_type_tail< Args > ]\n\n}\n","namespace $ {\n\t\n\t/** Reactive memoizing multiplexed property decorator. */\n\texport function $mol_wire_plex< Args extends [ any, ... any[] ] >(\n\t\thost: object,\n\t\tfield: string,\n\t\tdescr?: TypedPropertyDescriptor< ( ... args: Args )=> any >\n\t) {\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field )\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst descr2 = {\n\t\t\t... descr,\n\t\t\tvalue: function( this: typeof host, ... args: Args ) {\n\t\t\t\n\t\t\t\tlet atom = $mol_wire_atom.plex( this, orig, args[0] )\n\t\t\t\t\n\t\t\t\tif(( args.length === 1 )||( args[1] === undefined )) {\n\t\t\t\t\t\n\t\t\t\t\tif( !$mol_wire_fiber.warm ) return atom.result()\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\t\treturn atom.once()\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn atom.sync()\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn atom.resync( args )\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tReflect.defineProperty( descr2.value , 'name' , { value : orig.name + ' ' } )\n\t\tReflect.defineProperty( descr2.value , 'length' , { value : orig.length } )\n\t\tObject.assign( descr2.value, { orig } )\n\t\t\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2\n\t}\n\t\n}\n","namespace $ {\n\n\t/**\n\t * Reactive memoizing solo property decorator from [mol_wire](../wire/README.md)\n\t * @example\n\t * '@' $mol_mem\n\t * name(next?: string) {\n\t * \treturn next ?? 'default'\n\t * }\n\t * @see https://mol.hyoo.ru/#!section=docs/=qxmh6t_sinbmb\n\t */\n\texport let $mol_mem = $mol_wire_solo\n\n\t/**\n\t * Reactive memoizing multiplexed property decorator [mol_wire](../wire/README.md)\n\t * @example\n\t * '@' $mol_mem_key\n\t * name(id: number, next?: string) {\n\t * return next ?? 'default'\n\t * }\n\t * @see https://mol.hyoo.ru/#!section=docs/=qxmh6t_sinbmb\n\t */\n\texport let $mol_mem_key = $mol_wire_plex\n}\n","namespace $ {\n\t/**\n\t * Decorates method to fiber to ensure it is executed only once inside other fiber from [mol_wire](../wire/README.md)\n\t * @see https://mol.hyoo.ru/#!section=docs/=1fcpsq_1wh0h2\n\t */\n\texport let $mol_action = $mol_wire_method\n}\n","namespace $ {\n\n\t/** State of arguments like `foo=bar xxx` */\n\texport class $mol_state_arg extends $mol_object {\n\t\t\n\t\tstatic prolog = ''\n\t\tstatic separator = ' '\n\t\t\n\t\t@ $mol_mem\n\t\tstatic href( next? : string ) {\n\t\t\treturn next || process.argv.slice( 2 ).join( ' ' )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic href_normal() {\n\t\t\treturn this.link({})\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic dict( next? : { [ key : string ] : string | null } ) {\n\t\t\tif( next !== void 0 ) this.href( this.make_link( next ) )\n\t\t\t\n\t\t\tvar href = this.href()\n\t\t\tvar chunks = href.split( ' ' )\n\t\t\t\n\t\t\tvar params : { [ key : string ] : string } = {}\n\t\t\tchunks.forEach(\n\t\t\t\tchunk => {\n\t\t\t\t\tif( !chunk ) return\n\t\t\t\t\tvar vals = chunk.split( '=' ).map( decodeURIComponent )\n\t\t\t\t\tparams[ vals.shift()! ] = vals.join('=')\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\treturn params as Readonly< typeof params >\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic value( key : string , next? : string | null ) {\n\t\t\tif( next === void 0 ) return this.dict()[ key ] ?? null\n\t\t\tthis.href( this.link( { [ key ] : next } ) )\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tstatic link( next : Record<string, string | null> ) {\n\t\t\tconst params : Record<string, string | null> = {}\n\t\t\t\n\t\t\tvar prev = this.dict()\n\t\t\tfor( var key in prev ) {\n\t\t\t\tparams[ key ] = prev[ key ]\n\t\t\t}\n\t\t\t\n\t\t\tfor( var key in next ) {\n\t\t\t\tparams[ key ] = next[ key ]\n\t\t\t}\n\t\t\t\n\t\t\treturn this.make_link( params )\n\t\t}\n\t\t\n\t\tstatic make_link( next : Record<string, string | null>) {\n\t\t\tconst chunks : string[] = []\n\t\t\tfor( const key in next ) {\n\t\t\t\tif( next[ key ] !== null ) {\n\t\t\t\t\tchunks.push([key, next[key]!].map(encodeURIComponent).join('='))\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn chunks.join( ' ' )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tstatic go( next : { [ key : string ] : string | null } ) {\n\t\t\tthis.href( this.link( next ) )\n\t\t}\n\t\t\n\t\tstatic commit() {}\n\t\t\n\t\tconstructor( public prefix = '' ) {\n\t\t\tsuper()\n\t\t}\n\t\t\n\t\tvalue( key : string , next? : string ) {\n\t\t\treturn ( this.constructor as typeof $mol_state_arg ).value( this.prefix + key , next )\n\t\t}\n\t\t\n\t\tsub( postfix : string ) {\n\t\t\treturn new ( this.constructor as typeof $mol_state_arg )( this.prefix + postfix + '.' )\n\t\t}\n\t\t\n\t\tlink( next : Record<string, string | null> ) {\n\t\t\tconst prefix = this.prefix\n\t\t\tconst dict : Record<string, string | null> = {}\n\t\t\tfor( var key in next ) {\n\t\t\t\tdict[ prefix + key ] = next[ key ]\n\t\t\t}\n\t\t\treturn ( this.constructor as typeof $mol_state_arg ).link( dict )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_media extends $mol_object2 {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic match( query: string, next?: boolean ) {\n\t\t\t\n\t\t\tif( next !== undefined ) return next\n\t\t\t\n\t\t\tconst res = this.$.$mol_dom_context.matchMedia?.( query ) ?? {}\n\t\t\tres.onchange = ()=> this.match( query, res.matches )\n\t\t\t\n\t\t\treturn res.matches\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Disable reaping of current subscriber\n\t */\n\texport function $mol_wire_solid() {\n\t\tlet current = $mol_wire_auto() as $mol_wire_fiber< any, any, any >\n\t\tif( current!.temp ) current = current!.host\n\t\tif( current!.reap !== nothing ) {\n\t\t\tcurrent?.sub_on( sub, sub.data.length )\n\t\t}\n\t\tcurrent!.reap = nothing\n\t}\n\t\n\tconst nothing = ()=> {}\n\tconst sub = new $mol_wire_pub_sub\n\t\n}\n","namespace $ {\n\texport let $mol_mem_persist = $mol_wire_solid\n}\n","namespace $ {\n\t\n\t/** Run code without state changes */\n\texport function $mol_wire_probe< Value >(\n\t\ttask : ()=> Value, def?: Value\n\t) : Value | undefined {\n\t\t\n\t\tconst warm = $mol_wire_fiber.warm\n\t\t\n\t\ttry {\n\t\t\t$mol_wire_fiber.warm = false\n\t\t\tconst res = task()\n\t\t\tif( res === undefined ) return def\n\t\t\treturn res\n\t\t} finally {\n\t\t\t$mol_wire_fiber.warm = warm\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\texport let $mol_mem_cached = $mol_wire_probe\n}\n","namespace $ {\n\texport class $mol_storage extends $mol_object2 {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic native() {\n\t\t\treturn this.$.$mol_dom_context.navigator.storage ?? { // exists only in secure context\n\t\t\t\tpersisted: async ()=> false,\n\t\t\t\tpersist: async ()=> false,\n\t\t\t\testimate: async ()=> ({}),\n\t\t\t\tgetDirectory: async ()=> null! as FileSystemHandle,\n\t\t\t} as StorageManager\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic persisted( next?: boolean, cache?: 'cache' ): boolean {\n\t\t\t\n\t\t\t$mol_mem_persist()\n\t\t\t\n\t\t\tif( cache ) return Boolean( next )\n\t\t\t\n\t\t\tconst native = this.native()\n\t\t\tif( next && !$mol_mem_cached( ()=> this.persisted() ) ) {\n\t\t\t\tnative.persist().then( actual => {\n\t\t\t\t\t\n\t\t\t\t\tsetTimeout( ()=> this.persisted( actual, 'cache' ), 5000 )\n\t\t\t\t\t\n\t\t\t\t\tif( actual ) this.$.$mol_log3_done({ place: `$mol_storage`, message: `Persist: Yes` })\n\t\t\t\t\telse this.$.$mol_log3_fail({ place: `$mol_storage`, message: `Persist: No` })\n\t\t\t\t\t\n\t\t\t\t} )\n\t\t\t}\n\t\t\t\n\t\t\treturn next ?? $mol_wire_sync( native ).persisted()\n\t\t}\n\t\t\n\t\tstatic estimate() {\n\t\t\treturn $mol_wire_sync( this.native() ?? {} ).estimate()\n\t\t}\n\t\t\n\t\tstatic dir() {\n\t\t\treturn $mol_wire_sync( this.native() ).getDirectory()\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\texport class $mol_state_local< Value > extends $mol_object {\n\t\t\n\t\tstatic 'native()' : Pick< Storage , 'getItem'|'setItem'|'removeItem' >\n\t\tstatic native() {\n\t\t\tif( this['native()'] ) return this['native()']\n\n\t\t\tcheck : try {\n\t\t\t\tconst native = $mol_dom_context.localStorage\n\t\t\t\tif( !native ) break check\n\t\t\t\t\n\t\t\t\tnative.setItem( '' , '' )\n\t\t\t\tnative.removeItem( '' )\n\t\t\t\treturn this['native()'] = native\n\t\t\t} catch( error: any ) {\n\t\t\t\tconsole.warn( error )\n\t\t\t}\n\n\t\t\treturn this['native()'] = {\n\t\t\t\tgetItem( key : string ) {\n\t\t\t\t\treturn (this as any)[ ':' + key ]\n\t\t\t\t} ,\n\t\t\t\tsetItem( key : string , value : string ) {\n\t\t\t\t\t(this as any)[ ':' + key ] = value\n\t\t\t\t} ,\n\t\t\t\tremoveItem( key : string ) {\n\t\t\t\t\t(this as any)[ ':' + key ] = void 0\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic changes( next?: StorageEvent ) { return next }\n\n\t\t@ $mol_mem_key\n\t\tstatic value< Value >(\n\t\t\tkey : string ,\n\t\t\tnext? : Value | null ,\n\t\t) : Value | null {\n\t\t\t\n\t\t\tthis.changes()\n\t\t\t\n\t\t\tif( next === void 0 ) return JSON.parse( this.native().getItem( key ) || 'null' )\n\t\t\t\n\t\t\tif( next === null ) {\n\t\t\t\tthis.native().removeItem( key )\n\t\t\t} else {\n\t\t\t\tthis.native().setItem( key , JSON.stringify( next ) )\n\t\t\t\tthis.$.$mol_storage.persisted( true )\n\t\t\t}\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tprefix() { return '' }\n\t\t\n\t\tvalue( key : string , next? : Value ) {\n\t\t\treturn $mol_state_local.value( this.prefix() + '.' + key , next )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ { \n\t/**\n\t * Returns closure that returns constant value.\n\t * @example\n\t * const rnd = $mol_const( Math.random() )\n\t */\n\texport function $mol_const< Value >( value : Value ) {\n\t\tconst getter = <{ () : Value , '()' : Value }> ( () => value )\n\t\tgetter['()'] = value\n\t\t;(getter as any)[ Symbol.toStringTag ] = value\n\t\t;(getter as any )[ $mol_dev_format_head ] = ()=> $mol_dev_format_span( {} , '()=> ', $mol_dev_format_auto( value ) )\n\t\treturn getter\n\t}\n}\n","namespace $ {\n\t\n\t/** Convert a pseudo-synchronous (Suspense API) API to an explicit asynchronous one (for integrating with external systems). */\n\texport function $mol_wire_async< Host extends object >( obj: Host ) {\n\t\t\n\t\tlet fiber: $mol_wire_fiber< any, any, any >\n\t\tconst temp = $mol_wire_task.getter( obj as ( ... args: any[] )=> any )\n\t\t\n\t\treturn new Proxy( obj, {\n\t\t\t\n\t\t\tget( obj, field ) {\n\t\t\t\t\n\t\t\t\tconst val = (obj as any)[ field ]\n\t\t\t\tif( typeof val !== 'function' ) return val\n\t\t\t\t\n\t\t\t\tlet fiber: $mol_wire_fiber< any, any, any >\n\t\t\t\tconst temp = $mol_wire_task.getter( val ) \n\t\t\t\t\n\t\t\t\treturn function $mol_wire_async( this: Host, ... args: any[] ) {\n\t\t\t\t\tfiber?.destructor()\n\t\t\t\t\tfiber = temp( obj, args )\n\t\t\t\t\treturn fiber.async()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t},\n\t\t\t\n\t\t\tapply( obj, self, args ) {\n\t\t\t\tfiber?.destructor()\n\t\t\t\tfiber = temp( self, args )\n\t\t\t\treturn fiber.async()\n\t\t\t},\n\t\t\t\n\t\t} ) as unknown as ObjectOrFunctionResultPromisify<Host>\n\t\t\n\t}\n\n\ttype FunctionResultPromisify<Some> = Some extends (...args: infer Args) => infer Res\n\t\t? Res extends PromiseLike<unknown> ? Some : (...args: Args) => Promise<Res>\n\t\t: Some\n\n\ttype MethodsResultPromisify<Host extends Object> = {\n\t\t[K in keyof Host]: FunctionResultPromisify<Host[K]>\n\t}\n\n\ttype ObjectOrFunctionResultPromisify<Some> = (\n\t\tSome extends (...args: any) => unknown ? FunctionResultPromisify<Some> : {}\n\t) & ( Some extends Object ? MethodsResultPromisify<Some> : Some )\n\n}\n","namespace $ {\n\texport class $mol_lock extends $mol_object {\n\t\tprotected promise = null as null | Promise<void>\n\n\t\tasync wait() {\n let next = () => {}\n\t\t\tlet destructed = false\n const task = $mol_wire_auto()\n\t\t\tif (! task) return next\n\n\t\t\tconst destructor = task.destructor.bind(task)\n task.destructor = ()=> {\n\t\t\t\tdestructor()\n\t\t\t\tdestructed = true\n next()\n }\n\n\t\t\tlet promise\n\n\t\t\tdo {\n\t\t\t\tpromise = this.promise\n\t\t\t\tawait promise\n\t\t\t\tif (destructed) return next\n\t\t\t} while (promise !== this.promise)\n\n\t\t\tthis.promise = new Promise(done => { next = done })\n\t\t\treturn next\n\t\t}\n\n\t\tgrab() { return $mol_wire_sync(this).wait() }\n\t}\n}\n","namespace $ {\n export function $mol_compare_array<Value extends ArrayLike<unknown>>(a: Value, b: Value): boolean {\n\t\tif (a === b) return true\n\t\tif (Object.getPrototypeOf(a) !== Object.getPrototypeOf(b)) return false\n\t\tif (a.length !== b.length) return false\n\n\t\tfor (let i = 0; i < a.length; i++)\n\t\t\tif (a[i] !== b[i]) return false\n\n\t\treturn true\n\t}\n}\n","namespace $ {\n\n\tconst decoders = {} as { [ key in $mol_charset_encoding ]?: TextDecoder }\n\n\texport function $mol_charset_decode(\n\t\tbuffer: AllowSharedBufferSource,\n\t\tencoding: $mol_charset_encoding = 'utf8',\n\t) {\n\t\t\n\t\tlet decoder = decoders[ encoding ]\n\t\tif( !decoder ) decoder = decoders[ encoding ] = new TextDecoder( encoding )\n\t\t\n\t\treturn decoder.decode( buffer )\n\t}\n\n}\n","namespace $ {\n\n\tlet buf = new Uint8Array( 2**12 ) // 4KB Mem Page\n\t\n\texport function $mol_charset_encode( str: string ) {\n\t\tconst capacity = str.length * 3\n\t\tif( buf.byteLength < capacity ) buf = new Uint8Array( capacity )\n\t\treturn buf.slice( 0, $mol_charset_encode_to( str, buf ) )\n\t}\n\n\texport function $mol_charset_encode_to( str: string, buf: Uint8Array< ArrayBuffer >, from = 0 ) {\n\n\t\tlet pos = from\n\n\t\tfor( let i = 0; i < str.length; i++ ) {\n\t\t\t\n\t\t\tlet code = str.charCodeAt( i )\n\t\t\t\n\t\t\tif( code < 0x80 ) { // ASCII - 1 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = code\n\t\t\t\t\n\t\t\t} else if( code < 0x800 ) { // 2 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xc0 | ( code >> 6 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( code & 0x3f )\n\t\t\t\t\n\t\t\t} else if( code < 0xd800 || code >= 0xe000 ) { // 3 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xe0 | ( code >> 12 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( code >> 6 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( code & 0x3f )\n\t\t\t\t\n\t\t\t} else { // surrogate pair\n\t\t\t\t\n\t\t\t\tconst point = ( ( code - 0xd800 ) << 10 ) + str.charCodeAt( ++ i ) + 0x2400\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xf0 | ( point >> 18 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( point >> 12 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( point >> 6 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( point & 0x3f )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\treturn pos - from\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_file_transaction_mode = 'create' | 'exists_truncate' | 'exists_fail' | 'read_only'\n\t\t| 'write_only' | 'read_write' | 'append'\n\n\texport type $mol_file_transaction_buffer = ArrayBufferView\n\n\texport class $mol_file_transaction extends $mol_object {\n\t\tpath() { return '' }\n\n\t\tmodes() { return [] as readonly $mol_file_transaction_mode[] }\n\n\t\twrite(options: {\n\t\t\tbuffer: ArrayBufferView | string | readonly ArrayBufferView[],\n\t\t\toffset?: number | null,\n\t\t\tlength?: number | null,\n\t\t\tposition?: number | null,\n\t\t}) {\n\t\t\treturn 0\n\t\t}\n\n\t\tread() {\n\t\t\treturn new Uint8Array()\n\t\t}\n\n\t\ttruncate(size: number) {}\n\n\t\tclose() {}\n\n\t\toverride destructor() {\n\t\t\tthis.close()\n\t\t}\n\n\t}\n}\n","namespace $ {\n\tenum file_modes {\n\t\t/** create if it doesn't already exist */\n\t\tcreate = $node.fs.constants.O_CREAT,\n\t\t/** truncate to zero size if it already exists */\n\t\texists_truncate = $node.fs.constants.O_TRUNC,\n\t\t/** throw exception if it already exists */\n\t\texists_fail = $node.fs.constants.O_EXCL,\n\t\tread_only = $node.fs.constants.O_RDONLY,\n\t\twrite_only = $node.fs.constants.O_WRONLY,\n\t\tread_write = $node.fs.constants.O_RDWR,\n\t\t/** data will be appended to the end */\n\t\tappend = $node.fs.constants.O_APPEND,\n\t}\n\n\tfunction mode_mask(modes: readonly $mol_file_transaction_mode[]) {\n\t\treturn modes.reduce( ( res, mode )=> res | file_modes[ mode ], 0 )\n\t}\n\n\texport class $mol_file_transaction_node extends $mol_file_transaction {\n\t\t@ $mol_mem\n\t\tprotected descr() {\n\t\t\t$mol_wire_solid()\n\t\t\treturn $node.fs.openSync(this.path(), mode_mask(this.modes()) )\n\t\t}\n\n\t\toverride write({ buffer, offset = 0, length, position = null }: {\n\t\t\tbuffer: ArrayBufferView | string | readonly ArrayBufferView[],\n\t\t\toffset?: number | null,\n\t\t\tlength?: number | null,\n\t\t\tposition?: number | null,\n\t\t}) {\n\t\t\tif (Array.isArray(buffer)) {\n\t\t\t\treturn $node.fs.writevSync( this.descr(), buffer, position ?? undefined)\n\t\t\t}\n\n\t\t\tif (typeof buffer === 'string') {\n\t\t\t\treturn $node.fs.writeSync( this.descr(), buffer, position )\n\t\t\t}\n\n\t\t\tlength = length ?? (buffer as ArrayBufferView).byteLength\n\n\t\t\treturn $node.fs.writeSync( this.descr(), buffer as NodeJS.ArrayBufferView, offset, length, position )\n\t\t}\n\n\t\toverride truncate(size: number) {\n\t\t\t$node.fs.ftruncateSync(this.descr())\n\t\t}\n\n\t\toverride read() {\n\t\t\treturn $mol_file_node_buffer_normalize($node.fs.readFileSync(this.descr()) as Buffer< ArrayBuffer >)\n\t\t}\n\n\t\toverride close() {\n\t\t\t$node.fs.closeSync(this.descr())\n\t\t}\n\n\t}\n\n\t$.$mol_file_transaction = $mol_file_transaction_node\n}\n","namespace $ {\n\n\texport class $mol_file_base extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic absolute<This extends typeof $mol_file_base>(this: This, path : string ) {\n\t\t\treturn this.make<typeof $mol_file_base>({\n\t\t\t\tpath : $mol_const( path )\n\t\t\t}) as InstanceType< This >\n\t\t}\n\n\t\tstatic relative<This extends typeof $mol_file_base>(this: This, path : string ) : InstanceType<This> {\n\t\t\tthrow new Error( 'Not implemented yet' )\n\t\t}\n\t\t\n\t\tstatic base = ''\n\t\t\n\t\tpath() {\n\t\t\treturn '.'\n\t\t}\n\t\t\n\t\tparent() {\n\t\t\treturn this.resolve( '..' )\n\t\t}\n\n\t\t@ $mol_action\n\t\texists_cut() { return this.exists() }\n\n\t\tprotected root() {\n\t\t\tconst path = this.path()\n\t\t\tconst base = (this.constructor as typeof $mol_file_base).base\n\n\t\t\t// Если путь выше или равен base или если parent такойже как и this - считаем это корнем\n\t\t\treturn base.startsWith(path) || this == this.parent()\n\t\t}\n\n\t\t@ $mol_mem\n\t\tprotected stat(next? : $mol_file_stat | null, virt?: 'virt') {\n\n\t\t\tconst path = this.path()\n\t\t\tconst parent = this.parent()\n\n\t\t\t// Отслеживать проверку наличия родительской папки не стоит до корня диска\n\t\t\t// Лучше ограничить mam-ом\n\t\t\tif ( ! this.root() ) {\n\t\t\t\t/*\n\t\t\t\tЕсли parent папка удалилась, надо ресетнуть все объекты в ней на любой глубине.\n\t\t\t\tНапример, rm -rf с последующим git pull: parent папка может удалиться, потом создасться,\n\t\t\t\tа текущая папка успеет только удалиться до момента выполнения stat.\n\t\t\t\tПоэтому parent.exists() не запустит перевычисления, нужна именно parent.version()\n\n\t\t\t\tОднако, parent.version() меняется не только при удалении, будет ложное срабатывание\n\t\t\t\tС этим придется мириться, красивого решения пока нет.\n\t\t\t\t*/\n\n\t\t\t\tparent.version()\n\t\t\t}\n\t\t\tparent.watcher()\n\n\t\t\tif( virt ) return next ?? null\n\t\t\t\n\t\t\treturn next ?? this.info(path)\n\t\t}\n\n\t\tprotected static changed = new Set<$mol_file_base>\n\n\t\tprotected static frame = null as null | $mol_after_timeout\n\n\t\tprotected static changed_add(type: 'change' | 'rename', path: string) {\n\t\t\tif (/([\\/\\\\]\\.|___$)/.test( path )) return\n\n\t\t\tconst file = this.relative( path.at(-1) === '/' ? path.slice(0, -1) : path )\n\t\t\t// console.log(type, path)\n\n\t\t\t// add (change): добавился файл - у parent надо обновить список sub, если он был заюзан\n\t\t\t// change, unlink (rename): обновился или удалился файл - ресетим\n\t\t\t// addDir (change), добавилась папка, у parent обновляем список директорий в sub\n\t\t\t// дочерние ресетим\n\n\t\t\t// unlinkDir (rename), удалилась папка, ресетим ее\n\t\t\t// stat у всех дочерних обновится сам, т.к. связан с parent.version()\n\t\t\tthis.changed.add(file)\n\n\t\t\tif (! this.watching) return\n\n\t\t\t// throttle, пока события поступают не сбрасываем.\n\t\t\t// аналог awaitWriteFinish из chokidar\n\t\t\t// интервалы между change-сообщениями модифицируемого файла должны быть меньше watch_debounce\n\t\t\tthis.frame?.destructor()\n\t\t\tthis.frame = new this.$.$mol_after_timeout(this.watch_debounce(), () => {\n\t\t\t\tif (! this.watching) return\n\t\t\t\tthis.watching = false\n\t\t\t\t$mol_wire_async(this).flush()\n\t\t\t} )\n\t\t}\n\n\t\t/**\n\t\t * Должно быть больше, чем время между событиями от вотчера при записи внешним процессом.\n\t\t * Иначе запуск ресетов паралельно с изменением может привести к неконсистентности.\n\t\t */\n\t\tstatic watch_debounce() { return 500 }\n\n\t\t@ $mol_action\n\t\tstatic flush() {\n\t\t\t// Пока flush работает, вотчер сюда не заходит, но может добавлять новые изменения\n\t\t\t// на каждом перезапуске они применятся\n\t\t\t// Пока run выполняется, изменения накапливаются, в конце run вызывается flush\n\t\t\t// Пока применяются изменения, run должен ожидать конца flush\n\n\t\t\tfor (const file of this.changed) {\n\t\t\t\tconst parent = file.parent()\n\n\t\t\t\ttry {\n\t\t\t\t\tif ( $mol_wire_probe(() => parent.sub()) ) parent.sub(null)\n\t\t\t\t\tfile.reset()\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif ($mol_fail_catch(error)) $mol_fail_log(error)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.changed.clear()\n\t\t\tthis.watching = true\n\n\t\t\t// this.watch_wd?.destructor()\n\t\t\t// this.watch_wd = null\n\t}\n\n\t\tprotected static watching = true\n\n\t\tprotected static lock = new $mol_lock\n\n\t\t@ $mol_action\n\t\tprotected static watch_off(path: string) {\n\t\t\tthis.watching = false\n\t\t\t// run должен ожидать конца flush\n\t\t\tthis.flush()\n\t\t\tthis.watching = false\n\n\t\t\t/*\n\t\t\twatch запаздывает и событие может прилететь через 3 сек после окончания сайд эффекта\n\t\t\tпоэтому добавляем папку, которую меняет side_effect\n\t\t\tКогда дойдет до выполнения flush, он ресетнет ее\n\t\t\t\n\t\t\tИначе будут лишние срабатывания\n\t\t\tНапример, удалили hyoo/board, watch ресетит и exists начинает отдавать false, срабатывает git clone\n\t\t\tСразу после него событие addDir еще не успело прийти,\n\t\t\tна следующем перезапуске вызывается git pull, т.к.\n\t\t\tс точки зрения реактивной системы hyoo/board еще не существует.\n\t\t\t*/\n\t\t\tthis.changed.add(this.absolute(path))\n\t\t}\n\t\n\t\t// protected static watch_wd = null as null | $mol_after_timeout\n\n\t\tstatic unwatched<Result>(side_effect: () => Result, affected_dir: string) {\n\t\t\t// ждем, пока выполнится предыдущий unwatched\n\t\t\tconst unlock = this.lock.grab()\n\t\t\tthis.watch_off(affected_dir)\n\n\t\t\ttry {\n\t\t\t\tconst result = side_effect()\n\t\t\t\tthis.flush()\n\t\t\t\tunlock()\n\t\t\t\treturn result\n\t\t\t} catch(e) {\n\t\t\t\tif (! $mol_promise_like(e)) {\n\t\t\t\t\tthis.flush()\n\t\t\t\t\tunlock()\n\t\t\t\t}\n\t\t\t\t$mol_fail_hidden(e)\n\t\t\t}\n\t\t}\n\n\t\treset() {\n\t\t\tthis.stat( null )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tmodified() { return this.stat()?.mtime ?? null }\n\n\t\t@ $mol_mem\n\t\tversion() {\n\t\t\tconst next = this.stat()?.mtime.getTime().toString( 36 ).toUpperCase() ?? ''\n\t\t\t// console.log('version', next, this.path())\n\t\t\treturn next\n\t\t}\n\n\t\tprotected info( path: string ) { return null as null | $mol_file_stat }\n\t\tprotected ensure() {}\n\t\tprotected drop() {}\n\t\tprotected copy(to: string) {}\n\t\tprotected read(): Uint8Array<ArrayBuffer> { return new Uint8Array }\n\t\tprotected write(buffer: Uint8Array<ArrayBuffer>) { }\n\t\tprotected kids() {\n\t\t\treturn [] as readonly this[]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\treadable(opts: { start?: number, end?: number }) {\n\t\t\treturn new ReadableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\twritable(opts: { start?: number }) {\n\t\t\treturn new WritableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t\t// open( ... modes: readonly $mol_file_mode[] ) { return 0 }\n\n\t\t@ $mol_mem\n\t\tbuffer( next? : Uint8Array<ArrayBuffer> ): Uint8Array<ArrayBuffer> {\n\n\t\t\t// Если версия пустая - возвращаем пустой буфер\n\t\t\tlet readed: Uint8Array<ArrayBuffer> = new Uint8Array()\n\n\t\t\tif( next === undefined ) {\n\t\t\t\t// Если меняется версия файла, буфер надо перечитать\n\t\t\t\tif ( this.version() ) readed = this.read()\n\t\t\t}\n\n\t\t\tconst prev = $mol_mem_cached( ()=> this.buffer() )\n\t\t\tconst changed = prev === undefined || ! $mol_compare_array( prev, next ?? readed)\n\n\t\t\tif( prev !== undefined && changed ) {\n\t\t\t\t// Логируем, если повторно читаем/пишем и буфер поменялся\n\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\tplace: `$mol_file_node.buffer()`,\n\t\t\t\t\tmessage: 'Changed' ,\n\t\t\t\t\tpath: this.relate() ,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (next === undefined) return changed ? readed : prev\n\n\t\t\t// Если буфер при записи не поменялся и файл не удаляли перед этим - не записываем новую версию.\n\t\t\t// Если записывать, это приведет к смене mtime и вотчер снова триггернется, даже если содержимое файла не поменялось.\n\n\t\t\t// В этом алгоритме есть изъян.\n\t\t\t// Если файл записали, потом отключили вотчер, кто-то из вне его поменял, потом включили вотчер, снова записали тот же буфер,\n\t\t\t// то буфер не запишется на диск, т.к. кэш не консистентен с диском.\n\t\t\t\n\t\t\tif (! changed && this.exists()) return prev\n\t\t\t\n\t\t\tthis.parent().exists( true )\n\t\t\tthis.stat( this.stat_make(next.length), 'virt' )\n\n\t\t\tthis.write(next)\n\n\t\t\treturn next\n\n\t\t}\n\n\t\t@ $mol_action\n\t\tstat_make(size: number) {\n\t\t\tconst now = new Date()\n\t\t\treturn {\n\t\t\t\ttype: 'file',\n\t\t\t\tsize,\n\t\t\t\tatime: now,\n\t\t\t\tmtime: now,\n\t\t\t\tctime: now,\n\t\t\t} as const\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tclone(to: string) {\n\t\t\tif (! this.exists() ) return null\n\n\t\t\tconst target = (this.constructor as typeof $mol_file_base).absolute(to) as this\n\n\t\t\ttry {\n\t\t\t\tthis.version()\n\t\t\t\ttarget.parent().exists(true)\n\t\t\t\tthis.copy(to)\n\t\t\t\ttarget.reset()\n\t\t\t\treturn target\n\t\t\t} catch (error) {\n\t\t\t\tif ( $mol_fail_catch(error)) {\n\t\t\t\t\tconsole.error(error)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t}\n\n\t\t// static watch_root = ''\n\n\t\t// static watcher_warned = false\n\t\twatcher() {\n\t\t\t// const constructor = this.constructor as typeof $mol_file_base\n\t\t\t// if (! constructor.watcher_warned) {\n\t\t\t// \tconsole.warn(`${constructor}.watcher() not implemented`)\n\t\t\t// \tconstructor.watcher_warned = true\n\t\t\t// }\n\n\t\t\treturn {\n\t\t\t\tdestructor() {}\n\t\t\t}\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\texists( next? : boolean ) {\n\t\t\t\n\t\t\tconst exists = Boolean( this.stat() )\n\n\t\t\t// console.log('exists current', exists, 'next', next, this.path())\n\t\t\tif( next === undefined ) return exists\n\t\t\tif( next === exists ) return exists\n\n\t\t\tif( next ) {\n\t\t\t\tthis.parent().exists( true )\n\t\t\t\tthis.ensure()\n\t\t\t} else {\n\t\t\t\tthis.drop()\n\t\t\t}\n\n\t\t\tthis.reset()\n\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttype() {\n\t\t\treturn this.stat()?.type ?? ''\n\t\t}\n\t\t\n\t\tname() {\n\t\t\treturn this.path().replace( /^.*\\//, '' )\n\t\t}\n\t\t\n\t\text() {\n\t\t\tconst match = /((?:\\.\\w+)+)$/.exec( this.path() )\n\t\t\treturn match ? match[ 1 ].substring( 1 ) : ''\n\t\t}\n\n\t\ttext(next?: string, virt?: 'virt') {\n\t\t\t// Если записываем text, и вотчер ресетнул записанный файл,\n\t\t\t// то надо снова его обновить, вызвать логику, которая делала пуш в text.\n\t\t\t// Например файл удалили, потом снова создали, версия поменялась - перезаписываем\n\t\t\t// Если использовать version, то вновь созданный файл, через вотчер запустит свое пересоздание\n\t\t\tif (next !== undefined) this.exists()\n\t\t\treturn this.text_int(next, virt)\n\t\t}\n\n\t\t@ $mol_mem\n\t\ttext_int(next?: string, virt?: 'virt') {\n\t\t\tif( virt ) {\n\t\t\t\tthis.stat( this.stat_make(0), 'virt' )\n\t\t\t\treturn next!\n\t\t\t}\n\n\t\t\tif( next === undefined ) {\n\t\t\t\treturn $mol_charset_decode( this.buffer( ) )\t\n\t\t\t} else {\n\t\t\t\tconst buffer = $mol_charset_encode( next )\n\t\t\t\tthis.buffer( buffer )\n\t\t\t\treturn next\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_mem\n\t\tsub(reset?: null) {\n\t\t\tif (! this.exists() ) return []\n\t\t\tif ( this.type() !== 'dir') return []\n\n\t\t\tthis.version()\n\n\t\t\t// Если дочерний file удалился, список надо обновить\n\t\t\treturn this.kids().filter(file => file.exists())\n\t\t}\n\n\t\tresolve(path: string): this {\n\t\t\tthrow new Error('implement')\n\t\t}\n\n\t\trelate( base = ( this.constructor as typeof $mol_file_base ).relative( '.' )): string {\n\t\t\tconst base_path = base.path()\n\t\t\tconst path = this.path()\n\t\t\treturn path.startsWith(base_path) ? path.slice(base_path.length) : path\n\t\t}\n\n\t\tfind(\n\t\t\tinclude? : RegExp ,\n\t\t\texclude? : RegExp\n\t\t) {\n\t\t\tconst found = [] as typeof this[]\n\t\t\tconst sub = this.sub()\n\n\t\t\tfor (const child of sub) {\n\t\t\t\tconst child_path = child.path()\n\n\t\t\t\tif( exclude && child_path.match( exclude ) ) continue\n\n\t\t\t\tif( !include || child_path.match( include ) ) found.push( child )\n\n\t\t\t\tif( child.type() === 'dir' ) {\n\t\t\t\t\tconst sub_child = child.find( include , exclude )\n\t\t\t\t\tfor (const child of sub_child) found.push(child)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn found\n\t\t}\n\n\t\t@ $mol_mem\n\t\tsize() {\n\t\t\tswitch( this.type() ) {\n\t\t\t\tcase 'file': return this.stat()?.size ?? 0\n\t\t\t\tdefault: return 0\n\t\t\t}\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this.path()\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\topen( ... modes: readonly $mol_file_transaction_mode[] ) {\n\t\t\treturn this.$.$mol_file_transaction.make({\n\t\t\t\tpath: () => this.path(),\n\t\t\t\tmodes: () => modes\n\t\t\t})\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_file_type = 'file' | 'dir' | 'link'\n\n\texport interface $mol_file_stat {\n\t\ttype: $mol_file_type\n\t\tsize: number\n\t\tatime: Date\n\t\tmtime: Date\n\t\tctime: Date\n\t}\n\n\texport class $mol_file extends $mol_file_base {}\n\n}\n","namespace $ {\n\n\tfunction stat_convert(stat: ReturnType<typeof $node.fs.statSync>): null | $mol_file_stat {\n\t\t\n\t\tif( !stat ) return null\n\t\t\n\t\tlet type: $mol_file_type | undefined\n\t\tif (stat.isDirectory()) type = 'dir'\n\t\tif (stat.isFile()) type = 'file'\n\t\tif (stat.isSymbolicLink()) type = 'link'\n\n\t\tif (! type) return $mol_fail( new Error(`Unsupported file type`) )\n\n\t\treturn {\n\t\t\ttype, \n\t\t\tsize: Number(stat.size),\n\t\t\tatime: stat.atime,\n\t\t\tmtime: stat.mtime,\n\t\t\tctime: stat.ctime\n\t\t}\n\t}\n\n\texport function $mol_file_node_buffer_normalize(buf: Buffer< ArrayBuffer >): Uint8Array< ArrayBuffer > {\n\t\treturn new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength)\n\t}\n\n\texport class $mol_file_node extends $mol_file {\n\n\t\tstatic relative<This extends typeof $mol_file>(this: This, path : string ) {\n\t\t\treturn this.absolute<This>( $node.path.resolve( this.base, path ).replace( /\\\\/g , '/' ) )\n\t\t}\n\n\t\t@ $mol_mem\n\t\toverride watcher(reset?: null) {\n\t\t\tconst path = this.path()\n\t\t\tconst root = this.root()\n\t\t\t// Если папки/файла нет, watch упадет с ошибкой\n\t\t\t// exists обратится к parent.version и parent.watcher\n\t\t\t// Поэтому у root-папки и выше не надо вызывать exists, иначе поднимется выше base до корня диска\n\t\t\t// exists вызывать надо, что б пересоздавать вотчер при появлении папки или файла\n\t\t\tif (! root && ! this.exists() ) return super.watcher()\n\n\t\t\tlet watcher\n\n\t\t\ttry {\n\t\t\t\t// Между exists и watch файл может удалиться, в любом случае надо обрабатывать ENOENT\n\t\t\t\twatcher = $node.fs.watch( path )\n\t\t\t} catch (error: any) {\n\t\t\t\tif ( ! (error instanceof Error) ) error = new Error('Unknown watch error', {cause: error})\n\t\t\t\terror.message += '\\n' + path\n\n\t\t\t\tif ( root || error.code !== 'ENOENT' ) {\n\t\t\t\t\tthis.$.$mol_fail_log(error)\n\t\t\t\t}\n\n\t\t\t\t// Если файла нет - вотчер не создается, создастся потом, когда exists поменяется на true.\n\t\t\t\t// Если создание упало с другой ошибкой - не ломаем работу mol_file, деградируем до не реактивной fs.\n\n\t\t\t\treturn super.watcher()\n\t\t\t}\n\n\t\t\twatcher.on('change', (type: 'change' | 'rename', name) => {\n\t\t\t\tif (! name) return\n\t\t\t\tconst path = $node.path.join( this.path(), name.toString() )\n\t\t\t\t;(this.constructor as typeof $mol_file_base).changed_add(type, path)\n\t\t\t})\n\n\t\t\twatcher.on('error', e => this.$.$mol_fail_log(e) )\n\n\t\t\tlet destructed = false\n\n\t\t\twatcher.on('close', () => {\n\t\t\t\t// Если в процессе работы вотчер сам закрылся, надо его переоткрыть\n\t\t\t\tif (! destructed) setTimeout(() => $mol_wire_async(this).watcher(null), 500)\n\t\t\t})\n\n\t\t\treturn {\n\t\t\t\tdestructor() {\n\t\t\t\t\tdestructed = true\n\t\t\t\t\twatcher.close()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override info( path: string ) {\n\t\t\ttry {\n\t\t\t\treturn stat_convert($node.fs.statSync(path))\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(error)) {\n\t\t\t\t\tif (error.code === 'ENOENT') return null\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t\tthis.$.$mol_fail_hidden(error)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override ensure() {\n\t\t\tconst path = this.path()\n\t\t\ttry {\n\t\t\t\t$node.fs.mkdirSync( path, { recursive: true } )\n\t\t\t\treturn null\n\t\t\t} catch( e: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(e)) {\n\t\t\t\t\tif (e.code === 'EEXIST') return null\n\t\t\t\t\te.message += '\\n' + path\n\t\t\t\t\tthis.$.$mol_fail_hidden(e)\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override copy(to: string) {\n\t\t\t$node.fs.copyFileSync(this.path(), to)\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tprotected override drop() {\n\t\t\t$node.fs.unlinkSync( this.path() )\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override read() {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\t\t\t\treturn $mol_file_node_buffer_normalize($node.fs.readFileSync( path ) as Buffer< ArrayBuffer >)\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (! $mol_promise_like(error)) {\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t}\n\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override write(buffer: Uint8Array< ArrayBuffer >) {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\n\t\t\t\t$node.fs.writeFileSync( path, buffer )\n\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(error)) {\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t}\n\t\t\t\treturn this.$.$mol_fail_hidden( error )\n\t\t\t}\n\n\t\t}\n\n\t\tprotected override kids() {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\t\t\t\tconst kids = $node.fs.readdirSync( path )\n\t\t\t\t\t.filter( name => !/^\\.+$/.test( name ) )\n\t\t\t\t\t.map( name => this.resolve( name ) )\n\n\t\t\t\treturn kids\n\t\t\t} catch( e: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(e)) {\n\t\t\t\t\tif (e.code === 'ENOENT') return []\n\t\t\t\t\te.message += '\\n' + path\n\t\t\t\t}\n\t\t\t\t$mol_fail_hidden(e)\n\t\t\t}\n\t\t}\n\t\t\n\t\toverride resolve( path : string ) {\n\t\t\treturn ( this.constructor as typeof $mol_file )\n\t\t\t\t.relative( $node.path.join( this.path() , path ) ) as this\n\t\t}\n\t\t\n\t\toverride relate( base = ( this.constructor as typeof $mol_file ).relative( '.' )) {\n\t\t\treturn $node.path.relative( base.path() , this.path() ).replace( /\\\\/g , '/' )\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\toverride readable(opts: { start?: number, end?: number }) {\n\t\t\tconst { Readable } = $node['node:stream'] as typeof import('stream')\n\t\t\tconst stream = $node.fs.createReadStream(this.path(), {\n\t\t\t\tflags: 'r',\n\t\t\t\tautoClose: true,\n\t\t\t\tstart: opts?.start,\n\t\t\t\tend: opts?.end,\n\t\t\t\tencoding: 'binary',\n\t\t\t})\n\n\t\t\treturn Readable.toWeb(stream) as ReadableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t\t@ $mol_mem\n\t\toverride writable(opts?: { start?: number }) {\n\t\t\tconst { Writable } = $node['node:stream'] as typeof import('stream')\n\t\t\tconst stream = $node.fs.createWriteStream(this.path(), {\n\t\t\t\tflags: 'w+',\n\t\t\t\tautoClose: true,\n\t\t\t\tstart: opts?.start,\n\t\t\t\tencoding: 'binary',\n\t\t\t})\n\n\t\t\treturn Writable.toWeb(stream) as WritableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t}\n\n\n\t$.$mol_file = $mol_file_node\n}\n","namespace $ {\n\texport class $mol_state_local_node< Value > extends $mol_state_local< Value > {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic dir() {\n\t\t\tconst base = process.env.XDG_DATA_HOME || ( $node.os.homedir() + '/.local/share' )\n\t\t\treturn $mol_file.absolute( base ).resolve( './mol_state_local' )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic value< Value >(\n\t\t\tkey : string ,\n\t\t\tnext? : Value | null ,\n\t\t) : Value | null {\n\t\t\t\n\t\t\tconst file = this.dir().resolve( encodeURIComponent( key ) + '.json' )\n\t\t\t\n\t\t\tif( next === null ) {\n\t\t\t\tfile.exists( false )\n\t\t\t\treturn null\n\t\t\t}\n\t\t\t\n\t\t\tconst arg = next === undefined ? undefined : JSON.stringify( next )\n\t\t\treturn JSON.parse( file.text( arg ) || 'null' )\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t$.$mol_state_local = $mol_state_local_node\n}\n","namespace $ {\n\t\n\tfunction parse( theme: string | null ) {\n\t\tif( theme === 'true' ) return true\n\t\tif( theme === 'false' ) return false\n\t\treturn null\n\t}\n\t\n\t/**\n\t * Switcher between light/dark themes (usually for `mol_theme_auto` plugin).\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_lights_demo\n\t */\n\texport function $mol_lights( this : $ , next? : boolean ) {\n\t\t\n\t\tconst arg = parse( this.$mol_state_arg.value( 'mol_lights' ) )\n\t\t\n\t\tconst base = this.$mol_media.match( '(prefers-color-scheme: light)' )\n\t\t\n\t\tif( next === undefined ) {\n\t\t\treturn arg ?? this.$mol_state_local.value< boolean >( '$mol_lights' ) ?? base\n\t\t} else {\n\t\t\tif( arg === null ) {\n\t\t\t\tthis.$mol_state_local.value( '$mol_lights' , next === base ? null : next )\n\t\t\t} else {\n\t\t\t\tthis.$mol_state_arg.value( 'mol_lights' , String( next ) )\n\t\t\t}\n\t\t\treturn next\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\t/**\n\t * Theme css variables\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_textarea_demo\n\t */\t\n\texport const $mol_theme = $mol_style_prop(\n\t\t'mol_theme',\n\t\t[\n\t\t\t'back',\n\t\t\t'hover',\n\t\t\t'card',\n\t\t\t'current',\n\t\t\t'special',\n\t\t\t'text',\n\t\t\t'control',\n\t\t\t'shade',\n\t\t\t'line',\n\t\t\t'focus',\n\t\t\t'field',\n\t\t\t'image',\n\t\t\t'spirit',\n\t\t] as const\n\t)\n\n}\n","namespace $ { $mol_style_attach( \"mol/theme/theme.css\",\n \":root {\\n\\t--mol_theme_hue: 240deg;\\n\\t--mol_theme_hue_spread: 90deg;\\n\\tcolor-scheme: dark light;\\n}\\n\\n:where([mol_theme]) {\\n\\tcolor: var(--mol_theme_text);\\n\\tfill: var(--mol_theme_text);\\n\\tbackground-color: var(--mol_theme_back);\\n}\\n\\t\\n:root, [mol_theme=\\\"$mol_theme_dark\\\"], :where([mol_theme=\\\"$mol_theme_dark\\\"]) [mol_theme] {\\n\\n\\t--mol_theme_luma: -1;\\n\\t--mol_theme_image: invert(1) hue-rotate( 180deg );\\n\\t--mol_theme_spirit: hsl( 0deg, 0%, 0%, .75 );\\n\\n\\t--mol_theme_back: hsl( var(--mol_theme_hue), 20%, 10% );\\n\\t--mol_theme_card: hsl( var(--mol_theme_hue), 50%, 20%, .25 );\\n\\t--mol_theme_field: hsl( var(--mol_theme_hue), 50%, 8%, .25 );\\n\\t--mol_theme_hover: hsl( var(--mol_theme_hue), 0%, 50%, .1 );\\n\\t\\n\\t--mol_theme_text: hsl( var(--mol_theme_hue), 0%, 80% );\\n\\t--mol_theme_shade: hsl( var(--mol_theme_hue), 0%, 60%, 1 );\\n\\t--mol_theme_line: hsl( var(--mol_theme_hue), 0%, 50%, .25 );\\n\\t--mol_theme_focus: hsl( calc( var(--mol_theme_hue) + 180deg ), 100%, 65% );\\n\\t\\n\\t--mol_theme_control: hsl( var(--mol_theme_hue), 60%, 65% );\\n\\t--mol_theme_current: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 60%, 65% );\\n\\t--mol_theme_special: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 60%, 65% );\\n\\n} @supports( color: oklch( 0% 0 0deg ) ) {\\n:root, [mol_theme=\\\"$mol_theme_dark\\\"], :where([mol_theme=\\\"$mol_theme_dark\\\"]) [mol_theme] {\\n\\t\\n\\t--mol_theme_back: oklch( 20% .03 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 30% .05 var(--mol_theme_hue) / .25 );\\n\\t--mol_theme_field: oklch( 15% 0 var(--mol_theme_hue) / .25 );\\n\\t--mol_theme_hover: oklch( 70% 0 var(--mol_theme_hue) / .1 );\\n\\t\\n\\t--mol_theme_text: oklch( 80% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_shade: oklch( 60% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_line: oklch( 60% 0 var(--mol_theme_hue) / .25 );\\n\\t--mol_theme_focus: oklch( 80% .2 calc( var(--mol_theme_hue) + 180deg ) );\\n\\t\\n\\t--mol_theme_control: oklch( 70% .1 var(--mol_theme_hue) );\\n\\t--mol_theme_current: oklch( 70% .2 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_special: oklch( 70% .2 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) );\\n\\n} }\\n\\n[mol_theme=\\\"$mol_theme_light\\\"], :where([mol_theme=\\\"$mol_theme_light\\\"]) [mol_theme] {\\n\\t\\n\\t--mol_theme_luma: 1;\\n\\t--mol_theme_image: none;\\n\\t--mol_theme_spirit: hsl( 0deg, 0%, 100%, .75 );\\n\\t\\n\\t--mol_theme_back: hsl( var(--mol_theme_hue), 20%, 92% );\\n\\t--mol_theme_card: hsl( var(--mol_theme_hue), 50%, 100%, .5 );\\n\\t--mol_theme_field: hsl( var(--mol_theme_hue), 50%, 100%, .75 );\\n\\t--mol_theme_hover: hsl( var(--mol_theme_hue), 0%, 50%, .1 );\\n\\t\\n\\t--mol_theme_text: hsl( var(--mol_theme_hue), 0%, 0% );\\n\\t--mol_theme_shade: hsl( var(--mol_theme_hue), 0%, 40%, 1 );\\n\\t--mol_theme_line: hsl( var(--mol_theme_hue), 0%, 50%, .25 );\\n\\t--mol_theme_focus: hsl( calc( var(--mol_theme_hue) + 180deg ), 100%, 40% );\\n\\t\\n\\t--mol_theme_control: hsl( var(--mol_theme_hue), 80%, 30% );\\n\\t--mol_theme_current: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 80%, 30% );\\n\\t--mol_theme_special: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 80%, 30% );\\n\\n} @supports( color: oklch( 0% 0 0deg ) ) {\\n[mol_theme=\\\"$mol_theme_light\\\"], :where([mol_theme=\\\"$mol_theme_light\\\"]) [mol_theme] {\\n\\t--mol_theme_back: oklch( 92% .01 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 99% .01 var(--mol_theme_hue) / .5 );\\n\\t--mol_theme_field: oklch( 100% 0 var(--mol_theme_hue) / .5 );\\n\\t--mol_theme_hover: oklch( 50% 0 var(--mol_theme_hue) / .1 );\\n\\t\\n\\t--mol_theme_text: oklch( 20% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_shade: oklch( 60% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_line: oklch( 50% 0 var(--mol_theme_hue) / .25 );\\n\\t--mol_theme_focus: oklch( 60% .2 calc( var(--mol_theme_hue) + 180deg ) );\\n\\t\\n\\t--mol_theme_control: oklch( 40% .15 var(--mol_theme_hue) );\\n\\t--mol_theme_current: oklch( 50% .2 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_special: oklch( 50% .2 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) );\\n\\n} }\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_base\\\"] {\\n\\t--mol_theme_back: oklch( 25% .075 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 35% .1 var(--mol_theme_hue) / .25 );\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_base\\\"] {\\n\\t--mol_theme_back: oklch( 85% .075 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 98% .03 var(--mol_theme_hue) / .25 );\\n}\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_current\\\"] {\\n\\t--mol_theme_back: oklch( 25% .05 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_card: oklch( 35% .1 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) / .25 );\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_current\\\"] {\\n\\t--mol_theme_back: oklch( 85% .05 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_card: oklch( 98% .03 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) / .25 );\\n}\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_special\\\"] {\\n\\t--mol_theme_back: oklch( 25% .05 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_card: oklch( 35% .1 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) / .25 );\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_special\\\"] {\\n\\t--mol_theme_back: oklch( 85% .05 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_card: oklch( 98% .03 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) / .25 );\\n}\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_accent\\\"] {\\n\\t--mol_theme_back: oklch( 35% .1 calc( var(--mol_theme_hue) + 180deg ) );\\n\\t--mol_theme_card: oklch( 45% .15 calc( var(--mol_theme_hue) + 180deg ) / .25 );\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_accent\\\"] {\\n\\t--mol_theme_back: oklch( 83% .1 calc( var(--mol_theme_hue) + 180deg ) );\\n\\t--mol_theme_card: oklch( 98% .03 calc( var(--mol_theme_hue) + 180deg ) / .25 );\\n}\\n\\n\"\n) }","namespace $ {\n\t$mol_style_attach( '$mol_theme_lights', `:root { --mol_theme_back: oklch( ${ $$.$mol_lights() ? 92 : 20 }% .01 var(--mol_theme_hue) ) }` )\n}\n","namespace $ {\n\n\t/**\n\t * Gap in CSS\n\t * @see https://page.hyoo.ru/#!=msdb74_bm7nsq\n\t */\n\texport let $mol_gap = $mol_style_prop(\n\t\t'mol_gap',\n\t\t[\n\t\t\t'block',\n\t\t\t'text',\n\t\t\t'round',\n\t\t\t'space',\n\t\t\t'blur',\n\t\t] as const\n\t)\n\n}\n","namespace $ { $mol_style_attach( \"mol/gap/gap.css\",\n \":root {\\n\\t--mol_gap_block: .75rem;\\n\\t--mol_gap_text: .5rem .75rem;\\n\\t--mol_gap_round: .25rem;\\n\\t--mol_gap_space: .25rem;\\n\\t--mol_gap_blur: .5rem;\\n}\\n\"\n) }","namespace $ {\n\n\texport function $mol_dom_render_children (\n\t\tel : Element | DocumentFragment ,\n\t\tchildNodes : NodeList | Array< Node | string | null >\n\t) {\n\t\tconst node_set = new Set< Node | string | null >( childNodes )\n\t\t\n\t\tlet nextNode : Node | null = el.firstChild\n\t\tfor( let view of childNodes ) {\n\n\t\t\tif( view == null ) continue\n\n\t\t\tif( view instanceof $mol_dom_context.Node ) {\n\t\t\t\t\n\t\t\t\twhile( true ) {\n\t\t\t\t\tif( !nextNode ) {\n\t\t\t\t\t\tel.appendChild( view )\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif( nextNode == view ) {\n\t\t\t\t\t\tnextNode = nextNode.nextSibling\n\t\t\t\t\t\tbreak\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif( node_set.has( nextNode ) ) {\n\t\t\t\t\t\t\tel.insertBefore( view , nextNode )\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst nn = nextNode.nextSibling\n\t\t\t\t\t\t\tel.removeChild( nextNode )\n\t\t\t\t\t\t\tnextNode = nn\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\tif( nextNode && nextNode.nodeName === '#text' ) {\n\t\t\t\t\tconst str = String( view )\n\t\t\t\t\tif( nextNode.nodeValue !== str ) nextNode.nodeValue = str\n\t\t\t\t\tnextNode = nextNode.nextSibling\n\t\t\t\t} else {\n\t\t\t\t\tconst textNode = $mol_dom_context.document.createTextNode( String( view ) )\n\t\t\t\t\tel.insertBefore( textNode , nextNode )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\twhile( nextNode ) {\n\t\t\tconst currNode = nextNode\n\t\t\tnextNode = currNode.nextSibling\n\t\t\tel.removeChild( currNode )\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport let $mol_jsx_prefix = ''\n\texport let $mol_jsx_crumbs = ''\n\n\texport let $mol_jsx_booked = null as null | Set< string >\n\t\n\texport let $mol_jsx_document : $mol_jsx.JSX.ElementClass['ownerDocument'] = {\n\t\tgetElementById : ()=> null ,\n\t\tcreateElementNS : ( space: string, name : string )=> $mol_dom_context.document.createElementNS( space, name ) as any,\n\t\tcreateDocumentFragment : ()=> $mol_dom_context.document.createDocumentFragment(),\n\t}\n\t\n\texport const $mol_jsx_frag = ''\n\n\t/**\n\t * JSX adapter that makes DOM tree.\n\t * Generates global unique ids for every DOM-element by components tree with ids.\n\t * Ensures all local ids are unique.\n\t * Can reuse an existing nodes by GUIDs when used inside [`mol_jsx_attach`](https://github.com/hyoo-ru/mam_mol/tree/master/jsx/attach).\n\t */\n\texport function $mol_jsx<\n\t\tProps extends $mol_jsx.JSX.IntrinsicAttributes,\n\t\tChildren extends Array< Node | string >\n\t>(\n\t\tElem : string\n\t\t\t| ( ( props : Props , ... children : Children ) => Element ) ,\n\t\tprops : Props ,\n\t\t... childNodes : Children\n\t) : Element | DocumentFragment {\n\n\t\tconst id = props && props.id || ''\n\t\tconst guid = id ? $mol_jsx_prefix ? $mol_jsx_prefix + '/'+ id : id : $mol_jsx_prefix\n\t\tconst crumbs_self = id ? $mol_jsx_crumbs.replace( /(\\S+)/g, `$1_${ id.replace( /\\/.*/i, '' ) }` ) : $mol_jsx_crumbs\n\t\t\n\t\tif( Elem && $mol_jsx_booked ) {\n\t\t\tif( $mol_jsx_booked.has( id ) ) {\n\t\t\t\t$mol_fail( new Error( `JSX already has tag with id ${ JSON.stringify( guid ) }` ) )\n\t\t\t} else {\n\t\t\t\t$mol_jsx_booked.add( id )\n\t\t\t}\n\t\t}\n\n\t\tlet node: Element | DocumentFragment | null = guid ? $mol_jsx_document.getElementById( guid ) : null\n\n\t\tif( $mol_jsx_prefix ) {\n\t\t\t\n\t\t\tconst prefix_ext = $mol_jsx_prefix\n\t\t\tconst booked_ext = $mol_jsx_booked\n\t\t\tconst crumbs_ext = $mol_jsx_crumbs\n\t\t\t\n\t\t\tfor( const field in props ) {\n\t\t\t\t\n\t\t\t\tconst func = props[ field ]\n\t\t\t\tif( typeof func !== 'function' ) continue\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tconst wrapper = function( this: any, ... args: any[] ) {\n\t\t\t\t\t\n\t\t\t\t\tconst prefix = $mol_jsx_prefix\n\t\t\t\t\tconst booked = $mol_jsx_booked\n\t\t\t\t\tconst crumbs = $mol_jsx_crumbs\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\n\t\t\t\t\t\t$mol_jsx_prefix = prefix_ext\n\t\t\t\t\t\t$mol_jsx_booked = booked_ext\n\t\t\t\t\t\t$mol_jsx_crumbs = crumbs_ext\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn func.call( this, ... args )\n\t\t\t\t\t\t\n\t\t\t\t\t} finally {\n\t\t\t\t\t\t\n\t\t\t\t\t\t$mol_jsx_prefix = prefix\n\t\t\t\t\t\t$mol_jsx_booked = booked\n\t\t\t\t\t\t$mol_jsx_crumbs = crumbs\n\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$mol_func_name_from( wrapper, func )\n\t\t\t\tprops[ field ] = wrapper as any\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tif( typeof Elem !== 'string' ) {\n\n\t\t\tif( 'prototype' in Elem ) {\n\n\t\t\t\tconst view = node && (node as any)[ String(Elem) ] || new ( Elem as any )\n\t\t\t\t\n\t\t\t\tObject.assign( view , props )\n\t\t\t\tview[ Symbol.toStringTag ] = guid\n\t\t\t\t\n\t\t\t\tview.childNodes = childNodes\n\t\t\t\t\n\t\t\t\tif( !view.ownerDocument ) view.ownerDocument = $mol_jsx_document\n\t\t\t\tview.className = ( crumbs_self ? crumbs_self + ' ' : '' ) + ( Elem['name'] || Elem )\n\t\t\t\t\n\t\t\t\tnode = view.valueOf()\n\t\t\t\t\n\t\t\t\t;(node as any)![ String(Elem) ] = view\n\t\t\t\t\n\t\t\t\treturn node!\n\n\t\t\t} else {\n\n\t\t\t\tconst prefix = $mol_jsx_prefix\n\t\t\t\tconst booked = $mol_jsx_booked\n\t\t\t\tconst crumbs = $mol_jsx_crumbs\n\t\t\t\t\n\t\t\t\ttry {\n\t\n\t\t\t\t\t$mol_jsx_prefix = guid\n\t\t\t\t\t$mol_jsx_booked = new Set\n\t\t\t\t\t$mol_jsx_crumbs = ( crumbs_self ? crumbs_self + ' ' : '' ) + ( Elem['name'] || Elem )\n\t\n\t\t\t\t\treturn ( Elem as any )( props , ... childNodes )\n\t\t\t\t\t\n\t\t\t\t} finally {\n\n\t\t\t\t\t$mol_jsx_prefix = prefix\n\t\t\t\t\t$mol_jsx_booked = booked\n\t\t\t\t\t$mol_jsx_crumbs = crumbs\n\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tif( !node ) {\n\t\t\tnode = Elem\n\t\t\t\t? $mol_jsx_document.createElementNS( props?.xmlns ?? 'http://www.w3.org/1999/xhtml', Elem )\n\t\t\t\t: $mol_jsx_document.createDocumentFragment()\n\t\t}\n\n\t\t$mol_dom_render_children( node , ( [] as ( Node | string )[] ).concat( ... childNodes ) )\n\t\tif( !Elem ) return node\n\n\t\tif( guid ) ( node as Element ).id = guid\n\t\tfor( const key in props ) {\n\t\t\tif( key === 'id' ) continue\n\t\t\t\n\t\t\tif( typeof props[ key ] === 'string' ) {\n\t\t\t\t\n\t\t\t\tif( typeof (node as any)[ key ] === 'string' ) (node as any)[ key ] = props[ key ]\n\t\t\t\t;( node as Element ).setAttribute( key , (props as any)[ key ] )\n\t\t\t\t\n\t\t\t} else if(\n\t\t\t\tprops[ key ] &&\n\t\t\t\ttypeof props[ key ] === 'object' &&\n\t\t\t\tReflect.getPrototypeOf( props[ key ] as any ) === Reflect.getPrototypeOf({})\n\t\t\t) {\n\n\t\t\t\tif( typeof (node as any)[ key ] === 'object' ) {\n\t\t\t\t\tObject.assign( ( node as any )[ key ] , props[ key ] )\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t(node as any)[ key ] = props[ key ]\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tif( $mol_jsx_crumbs ) ( node as Element ).className = ( (props as any)?.['class'] ? (props as any)['class'] + ' ' : '' ) + crumbs_self\n\n\t\treturn node\n\n\t}\n\n\texport declare namespace $mol_jsx.JSX {\n\n\t\texport interface Element extends HTMLElement {\n\t\t\tclass?: string\n\t\t}\n\t\t\n\t\texport interface ElementClass {\n\t\t\tattributes : {}\n\t\t\townerDocument : Pick< Document , 'getElementById' | 'createElementNS' | 'createDocumentFragment' >\n\t\t\tchildNodes : Array< Node | string >\n\t\t\tvalueOf() : Element\n\t\t}\n\t\t\n\t\ttype OrString< Dict > = {\n\t\t\t[ key in keyof Dict ]: Dict[ key ] | string\n\t\t}\n\t\t\n\t\t/** Props for html elements */\n\t\texport type IntrinsicElements = {\n\t\t\t[ key in keyof ElementTagNameMap ]? : $.$mol_type_partial_deep< OrString<\n\t\t\t\t& Element\n\t\t\t\t& IntrinsicAttributes\n\t\t\t\t& ElementTagNameMap[ key ]\n\t\t\t> >\n\t\t}\n\t\t\n\t\t/** Additional undeclared props */\n\t\texport interface IntrinsicAttributes {\n\t\t\tid? : string\n\t\t\txmlns? : string\n\t\t}\n\t\t\n\t\texport interface ElementAttributesProperty {\n\t\t\tattributes : {\n\t\t\t}\n\t\t}\n\t\t\n\t\t// export type IntrinsicClassAttributes< Class > = $.$mol_type_partial_deep< Omit< Class , 'valueOf' > >\n\t\t\n\t\tinterface ElementChildrenAttribute {\n\t\t}\n\t\n\t}\n\n}\n","namespace $ {\n\t\n\texport class $mol_window extends $mol_object {\n\t\t\n\t\tstatic size() {\n\t\t\treturn {\n\t\t\t\twidth: 1024,\n\t\t\t\theight: 768,\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\texport function $mol_guard_defined<T>(value: T): value is NonNullable<T> {\n\t\treturn value !== null && value !== undefined\n\t}\n}\n","namespace $ {\n\t\n\texport class $mol_view_selection extends $mol_object {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic focused( next? : Element[], notify?: 'notify' ) : Element[] {\n\t\t\t\n\t\t\tconst parents : Element[] = []\n\t\t\tlet element = next?.[0] ?? $mol_dom_context.document.activeElement\n\t\t\twhile( element?.shadowRoot ) {\n\t\t\t\telement = element!.shadowRoot.activeElement\n\t\t\t}\n\t\t\t\n\t\t\twhile( element ) {\n\t\t\t\tparents.push( element )\n\t\t\t\tconst parent = element.parentNode\n\t\t\t\tif( parent instanceof ShadowRoot ) element = parent.host\n\t\t\t\telse element = parent as HTMLElement\n\t\t\t}\n\t\t\t\n\t\t\tif( !next || notify ) return parents\n\t\t\t\n\t\t\tnew $mol_after_tick( ()=> {\n\t\t\t\t\n\t\t\t\tconst element = this.focused()![0] as HTMLElement\n\t\t\t\t\n\t\t\t\tif( element ) element.focus()\n\t\t\t\telse $mol_dom_context.blur()\n\t\t\t\t\n\t\t\t} )\n\n\t\t\treturn parents\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_wrapper extends $mol_object2 {\n\n\t\tstatic wrap : ( task : ( ... ags : any[] )=> any )=> ( ... ags : any[] )=> any\n\t\t\n\t\tstatic run< Result >( task : ()=> Result ) : Result {\n\t\t\treturn this.func( task )()\n\t\t}\n\t\n\t\tstatic func< Args extends any[] , Result , Host = void >(\n\t\t\tfunc : ( this : Host , ... args : Args )=> Result\n\t\t) : ( this : Host , ... args : Args )=> Result {\n\t\t\treturn this.wrap( func )\n\t\t}\n\n\t\tstatic get class() {\n\n\t\t\treturn < Class extends new ( ... args : any[] )=> any >(\n\t\t\t\tClass : Class\n\t\t\t) => {\n\n\t\t\t\ttype Args = ConstructorParameters< Class >\n\t\t\t\ttype Result = InstanceType< Class >\n\n\t\t\t\tconst construct = ( target : Class , args : Args )=> new Class( ... args )\n\n\t\t\t\tconst handler: ProxyHandler<Class> = {\n\t\t\t\t\tconstruct : this.func( construct )\n\t\t\t\t} \n\n\t\t\t\t;(handler as any)[ Symbol.toStringTag ] = Class.name + '#'\n\n\t\t\t\treturn new Proxy( Class , handler )\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tstatic get method() {\n\t\t\t\n\t\t\treturn (\n\t\t\t\tobj : object,\n\t\t\t\tname : PropertyKey,\n\t\t\t\tdescr = Reflect.getOwnPropertyDescriptor( obj, name )!,\n\t\t\t) => {\n\t\t\t\tdescr.value = this.func( descr.value! )\n\t\t\t\treturn descr\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tstatic get field() {\n\t\t\t\n\t\t\treturn <\n\t\t\t\tHost extends object ,\n\t\t\t\tField extends keyof Host ,\n\t\t\t\tArgs extends any[] ,\n\t\t\t\tResult ,\n\t\t\t>(\n\t\t\t\tobj : Host ,\n\t\t\t\tname : Field ,\n\t\t\t\tdescr = Reflect.getOwnPropertyDescriptor( obj, name )! as TypedPropertyDescriptor< Result >\n\t\t\t) => {\n\t\t\t\tdescr.get = descr.set = this.func( descr.get! )\n\t\t\t\treturn descr\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_memo extends $mol_wrapper {\n\t\t\n\t\tstatic wrap< This extends object , Value >( task : ( this : This , next? : Value )=> Value ) {\n\n\t\t\tconst store = new WeakMap< This , Value >()\n\n\t\t\tconst fun = function( this : This , next? : Value ) {\n\n\t\t\t\tif( next === undefined && store.has( this ) ) return store.get( this )\n\t\t\t\t\n\t\t\t\tconst val = task.call( this , next ) ?? next\n\t\t\t\t\n\t\t\t\tstore.set( this , val! )\n\t\t\t\t\n\t\t\t\treturn val\n\n\t\t\t}\n\n\t\t\tReflect.defineProperty( fun , 'name' , { value : task.name + ' ' } )\n\n\t\t\treturn fun\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_dom_qname( name : string ) {\n\t\treturn name.replace( /\\W/g , '' ).replace( /^(?=\\d+)/ , '_' )\n\t}\n\n}\n","namespace $ {\n\t\n\t/**\n\t * Real-time refresh current atom.\n\t * Don't use if possible. May reduce performance.\n\t */\n\texport function $mol_wire_watch() {\n\t\tconst atom = $mol_wire_auto()\n\t\tif( atom instanceof $mol_wire_atom ) {\n\t\t\tatom.watch()\n\t\t} else {\n\t\t\t$mol_fail( new Error( 'Atom is required for watching' ) )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_attributes (\n\t\tel : Element ,\n\t\tattrs : { [ key : string ] : string|number|boolean|null }\n\t) {\n\n\t\tfor( let name in attrs ) {\n\n\t\t\tlet val = attrs[ name ] as any\n\n\t\t\tif( val === undefined ) {\n\t\t\t\t\n\t\t\t\tcontinue\n\t\t\t\t\n\t\t\t} else if( val === null || val === false ) {\n\n\t\t\t\tif( !el.hasAttribute( name ) ) continue\n\t\t\t\t\n\t\t\t\tel.removeAttribute( name )\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst str = String( val )\n\t\t\t\tif( el.getAttribute( name ) === str ) continue\n\t\t\t\t\n\t\t\t\tel.setAttribute( name , str )\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_events (\n\t\tel : Element ,\n\t\tevents : { [ key : string ] : ( event : Event )=> any },\n\t\tpassive = false\n\t) {\n\t\tfor( let name in events ) {\n\t\t\tel.addEventListener( name , events[ name ] , { passive } )\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_styles (\n\t\tel : Element ,\n\t\tstyles : { [ key : string ] : string|number }\n\t) {\n\t\tfor( let name in styles ) {\n\t\t\tlet val = styles[ name ]\n\t\t\t\n\t\t\tconst style = ( el as HTMLElement ).style as any\n\t\t\tconst kebab = ( name : string )=> name.replace( /[A-Z]/g , letter => '-' + letter.toLowerCase() )\n\t\t\t\n\t\t\tif( typeof val === 'number' ) {\n\t\t\t\tstyle.setProperty(kebab(name), `${ val }px`);\n\t\t\t} else {\n\t\t\t\tstyle.setProperty(kebab(name), val);\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_fields (\n\t\tel : Element ,\n\t\tfields : { [ key : string ] : any }\n\t) {\n\t\tfor( let key in fields ) {\n\t\t\t\n\t\t\tconst val : any = fields[ key ]\n\t\t\t\n\t\t\tif( val === undefined ) continue\n\t\t\tif( val === (el as any)[ key ] ) continue\n\t\t\t\n\t\t\t(el as any)[ key ] = val\n\t\t}\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/view/view/view.css\",\n \"[mol_view] {\\n\\ttransition-property: height, width, min-height, min-width, max-width, max-height, transform, scale, translate, rotate;\\n\\ttransition-duration: .2s;\\n\\ttransition-timing-function: ease-out;\\n\\t-webkit-appearance: none;\\n\\tbox-sizing: border-box;\\n\\tdisplay: flex;\\n\\tflex-shrink: 0;\\n\\tcontain: style;\\n\\tscrollbar-color: var(--mol_theme_line) transparent;\\n\\tscrollbar-width: thin;\\n}\\t\\n\\n[mol_view]::selection {\\n\\tbackground: var(--mol_theme_line);\\n}\\t\\n\\n[mol_view]::-webkit-scrollbar {\\n\\twidth: .25rem;\\n\\theight: .25rem;\\n}\\n\\n[mol_view]::-webkit-scrollbar-corner {\\n\\tbackground-color: var(--mol_theme_line);\\n}\\n\\n[mol_view]::-webkit-scrollbar-track {\\n\\tbackground-color: transparent;\\n}\\n\\n[mol_view]::-webkit-scrollbar-thumb {\\n\\tbackground-color: var(--mol_theme_line);\\n\\tborder-radius: var(--mol_gap_round);\\n}\\n\\n[mol_view] > * {\\n\\tword-break: inherit;\\n}\\n\\n[mol_view_root] {\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tbox-sizing: border-box;\\n\\tfont-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\\n\\tfont-size: 1rem;\\n\\tline-height: 1.5rem;\\n\\t/* background: var(--mol_theme_back);\\n\\tcolor: var(--mol_theme_text); */\\n\\tcontain: unset; /** Fixes bg ignoring when applied to body on Chrome */\\n\\ttab-size: 4;\\n\\toverscroll-behavior: contain; /** Disable navigation gestures **/\\n}\\n\\n@media print {\\n\\t[mol_view_root] {\\n\\t\\theight: auto;\\n\\t}\\n}\\n[mol_view][mol_view_error]:not([mol_view_error=\\\"Promise\\\"], [mol_view_error=\\\"$mol_promise_blocker\\\"]) {\\n\\tbackground-image: repeating-linear-gradient(\\n\\t\\t-45deg,\\n\\t\\t#f92323,\\n\\t\\t#f92323 .5rem,\\n\\t\\t#ff3d3d .5rem,\\n\\t\\t#ff3d3d 1.5rem\\n\\t);\\n\\tcolor: black;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\\n@keyframes mol_view_wait {\\n\\tfrom {\\n\\t\\topacity: .25;\\n\\t}\\n\\t20% {\\n\\t\\topacity: .75;\\n\\t}\\n\\tto {\\n\\t\\topacity: .25;\\n\\t}\\n}\\n\\n:where([mol_view][mol_view_error=\\\"$mol_promise_blocker\\\"]),\\n:where([mol_view][mol_view_error=\\\"Promise\\\"]) {\\n\\tbackground: var(--mol_theme_hover);\\n}\\n\\n[mol_view][mol_view_error=\\\"Promise\\\"] {\\n\\tanimation: mol_view_wait 1s steps(20,end) infinite;\\n}\\n\"\n) }","/** @jsx $mol_jsx */\nnamespace $ {\n\n\texport type $mol_view_content = $mol_view|Node|string|number|boolean|null\n\t\n\texport function $mol_view_visible_width() {\n\t\treturn $mol_window.size().width\n\t}\n\t\n\texport function $mol_view_visible_height() {\n\t\treturn $mol_window.size().height\n\t}\n\t\n\texport function $mol_view_state_key( suffix : string ) {\n\t\treturn suffix\n\t}\n\t\n\t/**\n\t * The base class for all visual components. It provides the infrastructure for reactive lazy rendering, handling exceptions.\n\t * @see https://mol.hyoo.ru/#!section=docs/=vv2nig_s5zr0f\n\t */\n\t/// Reactive statefull lazy ViewModel\n\texport class $mol_view extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic Root< This extends typeof $mol_view >( this : This , id: number ) {\n\t\t\treturn new this as InstanceType< This >\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic roots() {\n\t\t\t\n\t\t\treturn [ ... $mol_dom.document.querySelectorAll( '[mol_view_root]:not([mol_view_root=\"\"])' ) ].map( ( node, index ) => {\n\n\t\t\t\tconst name = node.getAttribute( 'mol_view_root' )!\n\t\t\t\t\n\t\t\t\tconst View = (this.$ as any)[ name ] as typeof $mol_view\n\t\t\t\tif( !View ) {\n\t\t\t\t\t$mol_fail_log( new Error( `Autobind unknown view class`, { cause: { name } } ) )\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst view = View.Root( index )\n\t\t\t\tview.dom_node( node )\n\t\t\t\treturn view\n\t\t\t\t\n\t\t\t} ).filter( $mol_guard_defined )\n\t\t\t\n\t\t}\n\n\t\t@ $mol_mem\n\t\tstatic auto() {\n\t\t\t\n\t\t\tconst roots = this.roots()\n\t\t\tif( !roots.length ) return\n\t\t\t\n\t\t\tfor( const root of roots ) {\n\t\t\t\ttry {\n\t\t\t\t\troot.dom_tree()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\t$mol_fail_log( error )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\tdocument.title = roots[0].title()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\n\t\t\t\n\t\t\tdescr: try {\n\t\t\t\t\n\t\t\t\tconst descr = roots[0].hint()\n\t\t\t\tif( !descr ) break descr\n\t\t\t\t\n\t\t\t\tconst head = $mol_dom.document.head\n\t\t\t\tlet node = head.querySelector( 'meta[name=\"description\"]' ) as HTMLMetaElement | null\n\t\t\t\tif( node ) node.content = descr\n\t\t\t\telse head.append( <meta name=\"description\" content={ descr } /> )\n\t\t\t\t\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttitle() {\n\t\t\treturn this.toString().match( /.*\\.(\\w+)/ )?.[1] ?? this.toString()\n\t\t}\n\t\t\n\t\thint() {\n\t\t\treturn ''\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tfocused( next?: boolean ) {\n\t\t\tlet node = this.dom_node()\n\t\t\tconst value = $mol_view_selection.focused( next === undefined ? undefined : ( next ? [ node ] : [] ) )\n\t\t\treturn value.indexOf( node ) !== -1\n\t\t}\n\t\t\n\t\tstate_key( suffix = '' ) {\n\t\t\treturn this.$.$mol_view_state_key( suffix )\n\t\t}\n\t\t\n\t\t/// Name of element that created when element not found in DOM\n\t\t@ $mol_memo.method\n\t\tdom_name() {\n\t\t\treturn $mol_dom_qname( this.constructor.toString() ) || 'div'\n\t\t}\n\t\t\n\t\t/// NameSpace of element that created when element not found in DOM\n\t\tdom_name_space() { return 'http://www.w3.org/1999/xhtml' }\n\t\t\n\t\t/// Raw child views\n\t\tsub() {\n\t\t\treturn [] as readonly $mol_view_content[]\n\t\t}\n\t\t\n\t\t/// Visible sub views with defined ambient context\n\t\t/// Render all by default\n\t\tsub_visible() {\n\t\t\treturn this.sub()\n\t\t}\n\t\t\n\t\t/// Minimal width that used for lazy rendering\n\t\t@ $mol_mem\n\t\tminimal_width() {\n\t\t\t\n\t\t\tlet min = 0\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tconst sub = this.sub()\n\t\t\t\tif( !sub ) return 0\n\t\t\t\t\n\t\t\t\tsub.forEach( view => {\n\t\t\t\t\tif( view instanceof $mol_view ) {\n\t\t\t\t\t\tmin = Math.max( min , view.minimal_width() )\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn 24\n\t\t\t}\n\t\t\n\t\t\treturn min\n\t\t}\n\t\t\n\t\tmaximal_width() {\n\t\t\treturn this.minimal_width()\n\t\t}\n\t\t\n\t\t/// Minimal height that used for lazy rendering\n\t\t@ $mol_mem\n\t\tminimal_height() {\n\t\t\t\n\t\t\tlet min = 0\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tfor( const view of this.sub() ?? [] ) {\n\n\t\t\t\t\tif( view instanceof $mol_view ) {\n\t\t\t\t\t\tmin = Math.max( min , view.minimal_height() )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t \n\t\t\t} catch( error: any ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn 24\n\t\t\t}\n\n\t\t\treturn min\n\t\t}\n\n\t\tstatic watchers = new Set< $mol_view >()\n\n\t\t@ $mol_mem\n\t\tview_rect() {\n\t\t\tif( $mol_wire_probe( ()=> this.view_rect() ) === undefined ) {\n\t\t\t\t$mol_wire_watch()\n\t\t\t\treturn null // don't touch DOM to prevent instant reflow\n\t\t\t} else {\n\t\t\t\tconst { width, height, left, right, top, bottom } = this.dom_node().getBoundingClientRect()\n\t\t\t\treturn { width, height, left, right, top, bottom } // pick to optimize compare\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_memo.method\n\t\tdom_id() {\n\t\t\treturn this.toString().replace( /</g, '(' ).replace( />/g, ')' ).replaceAll( /\"/g, \"'\" )\n\t\t}\n\t\n\t\tdom_node_external( next?: Element) {\n\t\t\tconst node = next ?? $mol_dom_context.document.createElementNS( this.dom_name_space() , this.dom_name() )\n\n\t\t\tconst id = this.dom_id()\n\t\t\tnode.setAttribute( 'id' , id )\n\t\t\tnode.toString = $mol_const( '<#' + id + '>' )\n\n\t\t\treturn node\n\t\t}\n\n\t\t@ $mol_mem\n\t\tdom_node( next? : Element ) {\n\t\t\t$mol_wire_solid()\n\t\t\tconst node = this.dom_node_external( next )\n\t\t\t$mol_dom_render_attributes( node , this.attr_static() )\n\t\t\t\n\t\t\tconst events = this.event_async()\n\t\t\t$mol_dom_render_events(node, events)\n\n\t\t\treturn node\n\t\t}\n\n\t\t@ $mol_mem\n\t\tdom_final() {\n\t\t\t\n\t\t\tthis.render()\n\t\t\t\n\t\t\tconst sub = this.sub_visible()\n\t\t\tif( !sub ) return\n\t\t\t\n\t\t\tfor( const el of sub ) {\n\t\t\t\tif( el && typeof el === 'object' && 'dom_final' in el ) {\n\t\t\t\t\tel['dom_final']()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn this.dom_node()\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tdom_tree( next? : Element ) : Element {\n\t\t\tconst node = this.dom_node( next )\n\t\t\t\n\t\t\trender: try {\n\n\t\t\t\t$mol_dom_render_attributes( node , { mol_view_error : null } )\n\n\t\t\t\ttry {\n\t\t\t\t\n\t\t\t\t\tthis.render()\n\t\t\t\t\t\n\t\t\t\t} finally {\n\t\t\t\t\t\n\t\t\t\t\tfor( let plugin of this.plugins() ) {\n\t\t\t\t\t\tif( plugin instanceof $mol_plugin ) {\n\t\t\t\t\t\t\tplugin.dom_tree()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\tconst mol_view_error = $mol_promise_like(error)\n\t\t\t\t\t? (error as any).constructor[Symbol.toStringTag] ?? 'Promise'\n\t\t\t\t\t: error.name || error.constructor.name\n\t\t\t\t$mol_dom_render_attributes( node , { mol_view_error } )\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( error ) ) break render\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tconst message = error.message || error\n\t\t\t\t\t;( node as HTMLElement ).innerText = message.replace( /^|$/mg, '\\xA0\\xA0' )\n\t\t\t\t} catch {}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\tthis.auto()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\n\t\t\t\t\n\t\t\treturn node\n\t\t}\n\n\t\t@ $mol_mem\n\t\tdom_node_actual() {\n\t\t\tconst node = this.dom_node()\n\n\t\t\tconst attr = this.attr()\n\t\t\tconst style = this.style()\n\n\t\t\t$mol_dom_render_attributes( node , attr )\n\t\t\t$mol_dom_render_styles( node , style )\n\n\t\t\treturn node\n\t\t}\n\t\t\n\t\tauto() {\n\t\t\treturn [] as any\n\t\t}\n\n\t\t@ $mol_mem\n\t\trender() {\n\n\t\t\tconst node = this.dom_node_actual()\n\n\t\t\tconst sub = this.sub_visible()\n\t\t\tif( !sub ) return\n\t\t\t\n\t\t\tconst nodes = sub.map( child => {\n\t\t\t\tif( child == null ) return null\n\t\t\t\treturn ( child instanceof $mol_view )\n\t\t\t\t\t? child.dom_node()\n\t\t\t\t\t: child instanceof $mol_dom_context.Node\n\t\t\t\t\t? child\n\t\t\t\t\t: String( child )\n\t\t\t})\n\t\t\t\n\t\t\t$mol_dom_render_children( node , nodes )\n\n\t\t\tfor( const el of sub ) if( el && typeof el === 'object' && 'dom_tree' in el ) el['dom_tree']()\n\n\t\t\t$mol_dom_render_fields( node , this.field() )\n\t\t\t\n\t\t}\n\n\t\t@ $mol_memo.method\n\t\tstatic view_classes() {\n\t\t\tconst proto = this.prototype\n\t\t\t\n\t\t\tlet current = proto\n\t\t\tconst classes = [] as ( typeof $mol_view )[]\n\t\t\t\n\t\t\twhile( current ) {\n\t\t\t\tif( current.constructor.name !== classes.at(-1)?.name ) {\n\t\t\t\t\tclasses.push( current.constructor as typeof $mol_view )\n\t\t\t\t}\n\t\t\t\tif(!( current instanceof $mol_view )) break\n\t\t\t\tcurrent = Object.getPrototypeOf( current )\n\t\t\t}\n\t\t\t\n\t\t\treturn classes\n\t\t}\n\t\t\n\t\tstatic _view_names?: Map< string, string[] >\n\t\tstatic view_names( suffix: string ) {\n\t\t\t\n\t\t\tlet cache = Reflect.getOwnPropertyDescriptor( this, '_view_names' )?.value\n\t\t\tif( !cache ) cache = this._view_names = new Map\n\t\t\t\n\t\t\tconst cached = cache.get( suffix )\n\t\t\tif( cached ) return cached\n\t\t\t\n\t\t\tconst names = [] as string[]\n\t\t\tconst suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1)\n\t\t\t\n\t\t\tfor( const Class of this.view_classes() ) {\n\t\t\t\tif( suffix in Class.prototype ) names.push( this.$.$mol_func_name( Class ) + suffix2 )\n\t\t\t\telse break\n\t\t\t}\n\t\t\t\n\t\t\tcache.set( suffix, names )\n\t\t\treturn names\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\tview_names_owned() {\n\t\t\tconst names = [] as string[]\n\t\t\tlet owner = $mol_owning_get( this ) as $mol_wire_fiber< any, any[], any >\n\n\t\t\tif(!( owner?.host instanceof $mol_view )) return names\n\n\t\t\tconst suffix = owner.task.name.trim()\n\t\t\tconst suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1)\n\t\t\t\n\t\t\tnames.push( ... ( owner.host.constructor as typeof $mol_view ).view_names( suffix ) )\n\t\t\t\n\t\t\tfor( let prefix of owner.host.view_names_owned() ) {\n\t\t\t\tnames.push( prefix + suffix2 )\n\t\t\t}\n\t\t\t\n\t\t\treturn names\n\t\t}\n\n\t\t@ $mol_memo.method\n\t\tview_names() {\n\t\t\tconst names = new Set< string >()\n\t\t\t\n\t\t\tfor( let name of this.view_names_owned() ) names.add( name )\n\n\t\t\tfor( let Class of ( this.constructor as typeof $mol_view ).view_classes() ) {\n\t\t\t\tconst name = this.$.$mol_func_name( Class )\n\t\t\t\tif( name ) names.add( name )\n\t\t\t}\n\n\t\t\treturn names\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttheme( next = null as null | string ) {\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tattr_static() : { [ key : string ] : string|number|boolean|null } {\n\t\t\tlet attrs : any = {}\n\t\t\t\n\t\t\tfor( let name of this.view_names() ) attrs[ name.replace( /\\$/g , '' ).replace( /^(?=\\d)/ , '_' ).toLowerCase() ] = ''\n\t\t\t\n\t\t\treturn attrs\n\t\t}\n\t\t\n\t\tattr() {\n\t\t\treturn {\n\t\t\t\tmol_theme: this.theme() ?? undefined,\n\t\t\t} as {}\n\t\t}\n\t\t\n\t\tstyle() : { [ key : string ] : string|number } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\tfield() : { [ key : string ] : any } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\tevent() : { [ key : string ] : ( event : Event )=> void } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tevent_async() {\n\t\t\treturn { ... $mol_wire_async(this.event()) }\n\t\t}\n\n\t\tplugins() {\n\t\t\treturn [] as readonly $mol_view[]\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_span( {} ,\n\t\t\t\t$mol_dev_format_native( this ) ,\n\t\t\t\t// $mol_dev_format_shade( '/' ) ,\n\t\t\t\t// $mol_dev_format_auto( $mol_wire_cache( this ).sub().cache ) ,\n\t\t\t)\n\t\t}\n\n\t\t/** Deep search view by predicate. */\n\t\t*view_find(\n\t\t\tcheck: ( path : $mol_view, text?: string )=> boolean,\n\t\t\tpath = [] as $mol_view[],\n\t\t): Generator< $mol_view[] > {\n\n\t\t\tif( path.length === 0 && check( this ) ) return yield [ this ]\n\t\t\t\n\t\t\ttry {\n\t\t\t\tconst checked = new Set<$mol_view>()\n\t\t\t\tconst sub = this.sub()\n\n\t\t\t\tfor( const item of sub ) {\n\t\t\t\t\tif( ! ( item instanceof $mol_view ) ) continue\n\n\t\t\t\t\tif ( ! check( item ) ) continue\n\t\t\t\t\tchecked.add(item)\n\t\t\t\t\tyield [ ... path, this, item ]\n\t\t\t\t}\n\n\t\t\t\tfor( const item of sub ) {\n\t\t\t\t\tif ( ! ( item instanceof $mol_view) ) continue\n\t\t\t\t\tif ( checked.has(item) ) continue\n\t\t\t\t\tyield* item.view_find( check, [ ... path, this ] )\n\t\t\t\t}\n\t\t\t} catch( error: unknown ) {\n\t\t\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t/** Renders path of views to DOM. */\n\t\tforce_render(\n\t\t\tpath : Set< $mol_view >,\n\t\t) {\n\n\t\t\tconst kids = this.sub()\n\n\t\t\tconst index = kids.findIndex( item => {\n\t\t\t\tif( item instanceof $mol_view ) {\n\t\t\t\t\treturn path.has( item )\n\t\t\t\t} else {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tif( index >= 0 ) {\n\t\t\t\t( kids[ index ] as $mol_view ).force_render( path )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t/** Renders view to DOM and scroll to it. */\n\t\tensure_visible( view: $mol_view, align: ScrollLogicalPosition = \"start\" ) {\n\t\t\t\n\t\t\tconst path = this.view_find( v => v === view ).next().value\n\t\t\tthis.force_render( new Set( path ) )\n\t\t\t\n\t\t\ttry {\n\t\t\t\tthis.dom_final()\n\t\t\t} finally {\n\t\t\t\tview.dom_node().scrollIntoView({ block: align })\n\t\t\t}\n\n\t\t}\n\t\t\n\t\tbring() {\n\t\t\t\n\t\t\tconst win = this.$.$mol_dom_context\n\t\t\tif( win.parent !== win.self && !win.document.hasFocus() ) return\n\t\t\t\n\t\t\t// new this.$.$mol_after_frame( ()=> {\n\t\t\t// \tthis.dom_node().scrollIntoView({ block: 'start', inline: 'nearest' })\n\t\t\t// } )\n\t\t\t\n\t\t\tnew this.$.$mol_after_timeout( 0, ()=> {\n\t\t\t\tthis.focused( true )\n\t\t\t} )\n\t\t\t\n\t\t}\n\n\t\toverride destructor() {\n\t\t\tconst node = $mol_wire_probe(() => this.dom_node())\n\t\t\tif (! node) return\n\n\t\t\tconst events = $mol_wire_probe(() => this.event_async())\n\t\t\tif (! events) return\n\n\t\t\tfor( let event_name in events ) {\n\t\t\t\tnode.removeEventListener(\n\t\t\t\t\tevent_name ,\n\t\t\t\t\tevents[ event_name ]\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\texport type $mol_view_all = $mol_type_pick< $ , typeof $mol_view >\n\n}\n","namespace $ {\n\t/** Plugin is component without its own DOM element, but instead uses the owner DOM element */\n\texport class $mol_plugin extends $mol_view {\n\n\t\toverride dom_node_external( next? : Element ) {\n\t\t\treturn next ?? $mol_owning_get<typeof this, $mol_wire_fiber<$mol_view, any, any>>( this )!.host!.dom_node()\n\t\t}\n\n\t\toverride render() {\n\t\t\tthis.dom_node_actual()\n\t\t}\n\n\t}\n\n}\n","$mol_svg $mol_view\n\tdom_name \\svg\n\tdom_name_space \\http://www.w3.org/2000/svg\n\tfont_size 16\n\tfont_family \\\n\tstyle_size *\n","namespace $ {\n\t\n\t/** State of time moment */\n\texport class $mol_state_time extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic task( precision: number, reset?: null ): $mol_after_timeout | $mol_after_frame {\n\t\t\t\n\t\t\tif( precision ) {\n\t\t\t\treturn new $mol_after_timeout( precision, ()=> this.task( precision, null ) )\n\t\t\t} else {\n\t\t\t\treturn new $mol_after_frame( ()=> this.task( precision, null ) )\n\t\t\t}\n\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic now( precision: number ) {\n\t\t\tthis.task( precision )\n\t\t\treturn Date.now()\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $.$$ {\n\t/** Base SVG component to display SVG images or icons. */\n\texport class $mol_svg extends $.$mol_svg {\n\t\t@$mol_mem\n\t\tcomputed_style() {\n\t\t\tconst win = this.$.$mol_dom_context\n\t\t\tconst style = win.getComputedStyle(this.dom_node()) as Record<string, any>\n\n\t\t\tif(!style['font-size']) $mol_state_time.now( 0 )\n\n\t\t\treturn style\n\t\t}\n\n\t\t@$mol_mem\n\t\tfont_size(): number {\n\t\t\treturn parseInt(this.computed_style()['font-size']) || 16\n\t\t}\n\n\t\t@$mol_mem\n\t\tfont_family() {\n\t\t\treturn this.computed_style()['font-family']\n\t\t}\n\n\t}\n}\n","$mol_svg_root $mol_svg\n\tdom_name \\svg\n\tattr *\n\t\t^\n\t\tviewBox <= view_box \\0 0 100 100\n\t\tpreserveAspectRatio <= aspect \\xMidYMid\n","namespace $ { $mol_style_attach( \"mol/svg/root/root.view.css\",\n \"[mol_svg_root] {\\n\\toverflow: hidden;\\n}\\n\"\n) }","namespace $ {\n\n\texport class $mol_vector< Value , Length extends number > extends Array< Value > {\n\n\t\tget length() {\n\t\t\treturn super.length as Length\n\t\t}\n\n\t\tconstructor( ... values : Value[] & { length : Length } ) { super( ... values ) }\n\t\t\n\t\tmap< Res >(\n\t\t\tconvert : ( value : Value , index : number , array : this ) => Res ,\n\t\t\tself? : any ,\n\t\t) : $mol_vector< Res , Length > {\n\t\t\treturn super.map( convert as any , self ) as any\n\t\t}\n\n\t\tmerged< Patch >(\n\t\t\tpatches : readonly Patch[] & { length : Length } ,\n\t\t\tcombine : ( value : Value , patch : Patch ) => Value ,\n\t\t) : this {\n\t\t\treturn this.map( ( value , index )=> combine( value , patches[ index ] ) ) as any\n\t\t}\n\n\t\tlimited(\n\t\t\tthis : $mol_vector< number , Length > ,\n\t\t\tlimits : readonly ( readonly [ number , number ] )[] & { length : Length } ,\n\t\t) : this {\n\t\t\treturn this.merged( limits , ( value , [ min , max ] )=> ( value < min ) ? min : ( value > max ) ? max : value ) as any\n\t\t}\n\n\t\tadded0( this : $mol_vector< number , Length > , diff : number ) : this {\n\t\t\treturn this.map( value => value + diff ) as any\n\t\t}\n\n\t\tadded1( this : $mol_vector< number , Length > , diff : readonly number[] & { length : Length } ) : this {\n\t\t\treturn this.merged( diff , ( a , b )=> a + b ) as any\n\t\t}\n\n\t\tsubstracted1( this : $mol_vector< number , Length > , diff : readonly number[] & { length : Length } ) : this {\n\t\t\treturn this.merged( diff , ( a , b )=> a - b ) as any\n\t\t}\n\n\t\tmulted0( this : $mol_vector< number , Length > , mult : number ) : this {\n\t\t\treturn this.map( value => value * mult ) as any\n\t\t}\n\n\t\tmulted1(\n\t\t\tthis : $mol_vector< number , Length > ,\n\t\t\tmults : readonly number[] & { length : Length } ,\n\t\t) : this {\n\t\t\treturn this.merged( mults , ( a , b )=> a * b ) as any\n\t\t}\n\n\t\tdivided1(\n\t\t\tthis : $mol_vector< number , Length > ,\n\t\t\tmults : readonly number[] & { length : Length } ,\n\t\t) : this {\n\t\t\treturn this.merged( mults , ( a , b )=> a / b ) as any\n\t\t}\n\n\t\tpowered0( this : $mol_vector< number , Length > , mult : number ) : this {\n\t\t\treturn this.map( value => value ** mult ) as any\n\t\t}\n\n\t\texpanded1(\n\t\t\tthis : $mol_vector< $mol_vector_range< number > , Length > ,\n\t\t\tpoint : readonly number[] & { length : Length } ,\n\t\t) : this {\n\t\t\treturn this.merged( point , ( range , value )=> range.expanded0( value ) ) as any\n\t\t}\n\n\t\texpanded2(\n\t\t\tthis : $mol_vector< $mol_vector_range< number > , Length > ,\n\t\t\tpoint : readonly ( readonly [ number , number ] )[] & { length : Length } ,\n\t\t) : this {\n\t\t\treturn this.merged( point , ( range1 , range2 )=> {\n\t\t\t\tlet next = range1\n\t\t\t\tconst Range = range1.constructor as typeof $mol_vector_range\n\t\t\t\tif (range1[0] > range2[0]) next = new Range(range2[0], next.max);\n\t\t\t\tif (range1[1] < range2[1]) next = new Range(next.min, range2[1])\n\n\t\t\t\treturn next\n\t\t\t}) as any\n\t\t}\n\n\t\tcenter< Item extends $mol_vector< number, number > >(\n\t\t\tthis : $mol_vector< Item , Length > ,\n\t\t) : Item {\n\t\t\tconst Result = this[0].constructor as typeof $mol_vector\n\t\t\treturn new Result( ... this[0].map( (_,i)=> this.reduce( ( sum, point )=> sum + point[i], 0 ) / this.length ) ) as any\n\t\t}\n\n\t\tdistance(\n\t\t\tthis : $mol_vector< $mol_vector< number, number >, Length > ,\n\t\t): number {\n\t\t\tlet distance = 0\n\t\t\t\n\t\t\tfor( let i = 1; i < this.length; ++i ) {\n\t\t\t\tdistance += this[ i - 1 ].reduce( ( sum, min, j )=> sum + ( min - this[i][j] ) ** 2, 0 ) ** ( 1 / this[i].length )\n\t\t\t}\n\t\t\t\n\t\t\treturn distance\n\t\t}\n\n\t\ttransponed(\n\t\t\tthis : $mol_vector< $mol_vector< number, number >, Length > ,\n\t\t): $mol_vector< $mol_vector< number, Length >, typeof this[0]['length'] > {\n\t\t\treturn this[0].map( ( _, i )=> this.map( row => row[i] ) )\n\t\t}\n\n\t\tget x() { return this[0] }\n\t\tset x( next: Value ) { this[0] = next }\n\t\t\n\t\tget y() { return this[1] }\n\t\tset y( next: Value ) { this[1] = next }\n\t\t\n\t\tget z() { return this[2] }\n\t\tset z( next: Value ) { this[2] = next }\n\t\t\n\t}\n\n\texport class $mol_vector_1d< Value > extends $mol_vector< Value , 1 > { }\n\n\texport class $mol_vector_2d< Value > extends $mol_vector< Value , 2 > {}\n\n\texport class $mol_vector_3d< Value > extends $mol_vector< Value , 3 > {}\n\n\texport class $mol_vector_range< Value > extends $mol_vector< Value , 2 > {\n\t\t\n\t\t0: Value\n\t\t1: Value\n\t\t\n\t\tconstructor( min: Value, max = min ) {\n\t\t\tsuper( min, max )\n\t\t\tthis[0] = min\n\t\t\tthis[1] = max\n\t\t}\n\t\t\n\t\tget min() { return this[0] }\n\t\tset min( next: Value ) { this[0] = next }\n\t\t\n\t\tget max() { return this[1] }\n\t\tset max( next: Value ) { this[1] = next }\n\t\t\n\t\tget inversed() {\n\t\t\treturn new ( this.constructor as typeof $mol_vector_range )( this.max , this.min )\n\t\t}\n\n\t\texpanded0( value : Value ) {\n\t\t\tconst Range = this.constructor as typeof $mol_vector_range\n\t\t\tlet range = this as $mol_vector_range< Value >\n\t\t\t\n\t\t\tif( value > range.max ) range = new Range( range.min , value )\n\t\t\tif( value < range.min ) range = new Range( value , range.max )\n\n\t\t\treturn range\n\t\t}\n\n\t}\n\n\texport let $mol_vector_range_full = new $mol_vector_range( Number.NEGATIVE_INFINITY , Number.POSITIVE_INFINITY )\n\n\texport class $mol_vector_matrix<\n\t\tWidth extends number ,\n\t\tHeight extends number ,\n\t> extends $mol_vector< readonly number[] & { length : Width } , Height > {\n\n\t\tadded2(\n\t\t\tdiff : readonly ( readonly number[] & { length : Width } )[] & { length : Height }\n\t\t) : this {\n\t\t\treturn this.merged( diff , ( a , b )=> a.map( ( a2 , index ) => a2 + b[ index ] ) as any ) as any\n\t\t}\n\n\t\tmulted2(\n\t\t\tdiff : readonly ( readonly number[] & { length : Width } )[] & { length : Height }\n\t\t) : this {\n\t\t\treturn this.merged( diff , ( a , b )=> a.map( ( a2 , index ) => a2 * b[ index ] ) as any ) as any\n\t\t}\n\n\t}\n\n}\n","$mol_touch $mol_plugin\n\tstart_zoom? 0\n\tstart_distance? 0\n\tzoom? 1\n\tallow_draw true\n\tallow_pan true\n\tallow_zoom true\n\taction_type? \\\n\taction_point? $mol_vector_2d<number> /\n\t\tNaN\n\t\tNaN\n\t-\n\tstart_pan? /\n\t\t0\n\t\t0\n\tpan? $mol_vector_2d<number> /\n\t\t0\n\t\t0\n\tpointer_center $mol_vector_2d<number> /\n\t\tNaN\n\t\tNaN\n\t-\n\tstart_pos? null\n\tswipe_precision 16\n\t-\n\tswipe_right? null\n\tswipe_bottom? null\n\tswipe_left? null\n\tswipe_top? null\n\t-\n\tswipe_from_right? null\n\tswipe_from_bottom? null\n\tswipe_from_left? null\n\tswipe_from_top? null\n\t-\n\tswipe_to_right? null\n\tswipe_to_bottom? null\n\tswipe_to_left? null\n\tswipe_to_top? null\n\t-\n\tdraw_start?event null\n\tdraw?event null\n\tdraw_end?event null\n\t-\n\tstyle *\n\t\t^\n\t\ttouch-action \\none\n\t\toverscroll-behavior \\none\n\t-\n\tevent *\n\t\t^\n\t\tpointerdown?event <=> event_start?event null\n\t\tpointermove?event <=> event_move?event null\n\t\tpointerup?event <=> event_end?event null\n\t\tpointerleave?event <=> event_leave?event null\n\t\twheel?event <=> event_wheel?event null\n","namespace $.$$ {\n\n\t/**\n\t * Plugin for touch gestures.\n\t * @see [mol_plugin](../plugin/readme.md)\n\t */\n\texport class $mol_touch extends $.$mol_touch {\n\t\t\n\t\tauto() {\n\t\t\tthis.pointer_events()\n\t\t\tthis.start_pan()\n\t\t\tthis.start_pos()\n\t\t\tthis.start_distance()\n\t\t\tthis.start_zoom()\n\t\t\tthis.action_type()\n\t\t\tthis.view_rect()\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tpointer_events( next = [] as readonly PointerEvent[] ) {\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tpointer_coords() {\n\t\t\t\n\t\t\tconst events = this.pointer_events()\n\t\t\tconst touches = events.filter( e => e.pointerType === 'touch' )\n\t\t\tconst pens = events.filter( e => e.pointerType === 'pen' )\n\t\t\tconst mouses = events.filter( e => !e.pointerType || e.pointerType === 'mouse' )\n\t\t\tconst choosen = touches.length ? touches : pens.length ? pens : mouses\n\t\t\t\n\t\t\treturn new $mol_vector(\n\t\t\t\t... choosen.map( event => this.event_coords( event ) )\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tpointer_center() {\n\t\t\tconst coords = this.pointer_coords()\n\t\t\treturn coords.length ? coords.center() : new $mol_vector_2d( NaN , NaN )\n\t\t}\n\t\t\n\t\tevent_coords( event: PointerEvent | WheelEvent ) {\n\t\t\t\n\t\t\tconst { left, top } = this.view_rect()!\n\t\t\t\n\t\t\treturn new $mol_vector_2d(\n\t\t\t\tMath.round( event.pageX - left ),\n\t\t\t\tMath.round( event.pageY - top ),\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\taction_point() {\n\t\t\t\n\t\t\tconst coord = this.pointer_center()\n\t\t\tif( !coord ) return null!\n\t\t\t\n\t\t\tconst zoom = this.zoom()\n\t\t\tconst pan = this.pan()\n\t\t\t\n\t\t\treturn new $mol_vector_2d(\n\t\t\t\t( coord.x - pan.x ) / zoom,\n\t\t\t\t( coord.y - pan.y ) / zoom,\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t\tevent_eat( event: PointerEvent | WheelEvent ) {\n\t\t\t\n\t\t\tif( event instanceof PointerEvent ) {\n\n\t\t\t\tconst events = this.pointer_events()\n\t\t\t\t\t.filter( e => e instanceof PointerEvent )\n\t\t\t\t\t.filter( e => e.pointerId !== event.pointerId )\n\t\t\t\tif( event.type !== 'pointerup' && event.type !== 'pointerleave' ) events.push( event )\n\t\t\t\tthis.pointer_events( events )\n\t\t\t\t\n\t\t\t\tconst touch_count = events.filter( e => e.pointerType === 'touch' ).length\n\t\t\t\t\n\t\t\t\tif( this.allow_zoom() && touch_count === 2 ) {\n\t\t\t\t\treturn this.action_type( 'zoom' )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( this.action_type() === 'zoom' && touch_count === 1 ) {\n\t\t\t\t\treturn this.action_type( 'zoom' )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tenum button {\n\t\t\t\t\tleft = 1,\n\t\t\t\t\tright = 2,\n\t\t\t\t\tmiddle = 4,\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( events.length > 0 ) {\n\t\t\t\t\tif( event.ctrlKey && this.allow_zoom() ) return this.action_type( 'zoom' )\n\t\t\t\t\tif( event.buttons === button.left && this.allow_draw() ) return this.action_type( 'draw' )\n\t\t\t\t\tif( event.buttons && this.allow_pan() ) return this.action_type( 'pan' )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn this.action_type( '' )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( event instanceof WheelEvent ) {\n\t\t\t\tthis.pointer_events([ event as any ])\n\t\t\t\tif( event.shiftKey ) return this.action_type( 'pan' )\n\t\t\t\treturn this.action_type( 'zoom' )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.action_type( '' )\n\t\t}\n\t\t\n\t\tevent_start( event : PointerEvent ) {\n\t\t\tif( event.defaultPrevented ) return\n\t\t\t\n\t\t\tthis.start_pan( this.pan() )\n\n\t\t\tconst action_type = this.event_eat( event )\n\t\t\tif( !action_type ) return\n\t\t\t\n\t\t\tconst coords = this.pointer_coords()\n\t\t\tthis.start_pos( coords.center() )\n\t\t\t\n\t\t\tif( action_type === 'draw' ) {\n\t\t\t\tthis.draw_start( event )\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.start_distance( coords.distance() )\n\t\t\tthis.start_zoom( this.zoom() )\n\n\t\t}\n\n\t\tevent_move( event : PointerEvent ) {\n\t\t\tif( event.defaultPrevented ) return\n\n\t\t\tconst rect = this.view_rect()\n\t\t\tif( !rect ) return\n\t\n\t\t\tconst start_pan = this.start_pan()\n\n\t\t\tconst action_type = this.event_eat( event )\n\t\t\t\n\t\t\tconst start_pos = this.start_pos()\n\t\t\tlet pos = this.pointer_center()!\n\n\t\t\tif( !action_type ) return\n\t\t\tif( !start_pos ) return\n\t\t\t\n\t\t\tif( action_type === 'draw' ) {\n\t\t\t\t\n\t\t\t\tconst distance = new $mol_vector( start_pos, pos ).distance()\n\t\t\t\tif( distance >= 4 ) {\n\t\t\t\t\tthis.draw( event )\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\t\t\t\t\n\t\t\tif( action_type === 'pan' ) {\n\n\t\t\t\tthis.dom_node().setPointerCapture( event.pointerId )\n\t\t\t\t\n\t\t\t\tthis.pan(\n\t\t\t\t\tnew $mol_vector_2d(\n\t\t\t\t\t\tstart_pan[0] + pos[0] - start_pos[0],\n\t\t\t\t\t\tstart_pan[1] + pos[1] - start_pos[1],\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t\n\t\t\t}\n\n\t\t\tconst precision = this.swipe_precision()\n\t\t\t\n\t\t\tif(\n\t\t\t\t(\n\t\t\t\t\tthis.swipe_right !== $mol_touch.prototype.swipe_right\n\t\t\t\t\t|| this.swipe_from_left !== $mol_touch.prototype.swipe_from_left\n\t\t\t\t\t|| this.swipe_to_right !== $mol_touch.prototype.swipe_to_right\n\t\t\t\t)\n\t\t\t\t&& pos[0] - start_pos[0] > precision * 2\n\t\t\t\t&& Math.abs( pos[1] - start_pos[1] ) < precision\n\t\t\t) {\n\t\t\t\tthis.swipe_right( event )\n\t\t\t}\n\n\t\t\tif(\n\t\t\t\t(\n\t\t\t\t\tthis.swipe_left !== $mol_touch.prototype.swipe_left\n\t\t\t\t\t|| this.swipe_from_right !== $mol_touch.prototype.swipe_from_right\n\t\t\t\t\t|| this.swipe_to_left !== $mol_touch.prototype.swipe_to_left\n\t\t\t\t)\n\t\t\t\t&& start_pos[0] - pos[0] > precision * 2\n\t\t\t\t&& Math.abs( pos[1] - start_pos[1] ) < precision\n\t\t\t) {\n\t\t\t\tthis.swipe_left( event )\n\t\t\t}\n\n\t\t\tif(\n\t\t\t\t(\n\t\t\t\t\tthis.swipe_bottom !== $mol_touch.prototype.swipe_bottom\n\t\t\t\t\t|| this.swipe_from_top !== $mol_touch.prototype.swipe_from_top\n\t\t\t\t\t|| this.swipe_to_bottom !== $mol_touch.prototype.swipe_to_bottom\n\t\t\t\t)\n\t\t\t\t&& pos[1] - start_pos[1] > precision * 2\n\t\t\t\t&& Math.abs( pos[0] - start_pos[0] ) < precision\n\t\t\t) {\n\t\t\t\tthis.swipe_bottom( event )\n\t\t\t}\n\n\t\t\tif(\n\t\t\t\t(\n\t\t\t\t\tthis.swipe_top !== $mol_touch.prototype.swipe_top\n\t\t\t\t\t|| this.swipe_from_bottom !== $mol_touch.prototype.swipe_from_bottom\n\t\t\t\t\t|| this.swipe_to_top !== $mol_touch.prototype.swipe_to_top\n\t\t\t\t)\n\t\t\t\t&& start_pos[1] - pos[1] > precision * 2\n\t\t\t\t&& Math.abs( pos[0] - start_pos[0] ) < precision\n\t\t\t) {\n\t\t\t\tthis.swipe_top( event )\n\t\t\t}\n\n\t\t\tif( action_type === 'zoom' ) {\n\n\t\t\t\tconst coords = this.pointer_coords()\n\t\t\t\tconst distance = coords.distance()\n\t\t\t\tconst start_distance = this.start_distance()\n\t\t\t\tconst center = coords.center()\n\n\t\t\t\tconst start_zoom = this.start_zoom()\n\t\t\t\tlet mult = Math.abs( distance - start_distance ) < 32 ? 1 : distance / start_distance\n\t\t\t\tthis.zoom( start_zoom * mult )\n\n\t\t\t\tconst pan = new $mol_vector_2d(\n\t\t\t\t\t( start_pan[0] - center[0] + pos[0] - start_pos[0] ) * mult + center[0],\n\t\t\t\t\t( start_pan[1] - center[1] + pos[1] - start_pos[1] ) * mult + center[1],\n\t\t\t\t)\n\n\t\t\t\tthis.pan( pan )\n\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tevent_end( event : PointerEvent ) {\n\t\t\t\n\t\t\tconst action = this.action_type()\n\t\t\tif( action ==='draw' ) {\n\t\t\t\tthis.draw_end( event )\n\t\t\t}\n\t\t\t\n\t\t\tthis.event_leave( event )\n\t\t\t\n\t\t}\n\n\t\tevent_leave( event : PointerEvent ) {\n\n\t\t\tthis.event_eat( event )\n\t\t\tthis.dom_node().releasePointerCapture( event.pointerId )\n\t\t\tthis.start_pos( null )\n\t\t\t\n\t\t}\n\n\t\tswipe_left( event : PointerEvent ) {\n\t\t\tif( this.view_rect()!.right - this.start_pos()[0] < this.swipe_precision() * 2 ) this.swipe_from_right( event )\n\t\t\telse this.swipe_to_left( event )\n\t\t\tthis.event_end( event )\n\t\t}\n\t\t\n\t\tswipe_right( event : PointerEvent ) {\n\t\t\tif( this.start_pos()[0] - this.view_rect()!.left < this.swipe_precision() * 2 ) this.swipe_from_left( event )\n\t\t\telse this.swipe_to_right( event )\n\t\t\tthis.event_end( event )\n\t\t}\n\t\t\n\t\tswipe_top( event : PointerEvent ) {\n\t\t\tif( this.view_rect()!.bottom - this.start_pos()[1] < this.swipe_precision() * 2 ) this.swipe_from_bottom( event )\n\t\t\telse this.swipe_to_top( event )\n\t\t\tthis.event_end( event )\n\t\t}\n\t\t\n\t\tswipe_bottom( event : PointerEvent ) {\n\t\t\tif( this.start_pos()[1] - this.view_rect()!.top < this.swipe_precision() * 2 ) this.swipe_from_top( event )\n\t\t\telse this.swipe_to_bottom( event )\n\t\t\tthis.event_end( event )\n\t\t}\n\t\t\n\t\tevent_wheel( event : WheelEvent ) {\n\t\t\t\n\t\t\tif( event.defaultPrevented ) return\n\n\t\t\tif( this.pan === $mol_touch.prototype.pan && this.zoom === $mol_touch.prototype.zoom ) return\n\t\t\t\n\t\t\tif( this.pan !== $mol_touch.prototype.pan ) {\n\t\t\t\tevent.preventDefault()\n\t\t\t}\n\t\t\t\n\t\t\tconst action_type = this.event_eat( event )\n\n\t\t\tif( action_type === 'zoom' ) {\n\t\t\t\t\n\t\t\t\tconst zoom_prev = this.zoom() || 0.001\n\t\t\t\tlet zoom_next = zoom_prev * ( 1 - .001 * Math.min( event.deltaY, 100 ) )\n\t\t\t\tzoom_next = this.zoom( zoom_next )\n\t\t\t\tconst mult = zoom_next / zoom_prev\n\n\t\t\t\tconst pan_prev = this.pan()\n\t\t\t\tconst center = this.pointer_center()!\n\t\t\t\tconst pan_next = pan_prev.multed0( mult ).added1( center.multed0( 1 - mult ) )\n\n\t\t\t\tthis.pan( pan_next )\n\t\t\t}\n\t\t\t\n\t\t\tif( action_type === 'pan' ) {\n\t\t\t\t\n\t\t\t\tconst pan_prev = this.pan()\n\t\t\t\tconst pan_next = new $mol_vector_2d(\n\t\t\t\t\tpan_prev.x - event.deltaX,\n\t\t\t\t\tpan_prev.y - event.deltaY,\n\t\t\t\t)\n\n\t\t\t\tthis.pan( pan_next )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","$mol_plot_pane $mol_svg_root\n\taspect \\none\n\t-\n\thue_base? +NaN\n\thue_shift? 111\n\t-\n\tgap_hor 48\n\tgap_vert 24\n\tgap_left <= gap_hor\n\tgap_right <= gap_hor\n\tgap_top <= gap_vert\n\tgap_bottom <= gap_vert\n\tgap $mol_vector_2d<$mol_vector_range<number>> /\n\t\t<= gap_x $mol_vector_range<number> /\n\t\t\t<= gap_left\n\t\t\t<= gap_right\n\t\t<= gap_y $mol_vector_range<number> /\n\t\t\t<= gap_bottom\n\t\t\t<= gap_top\n\t-\n\tshift_limit $mol_vector_2d<$mol_vector_range<number>> /\n\t\t<= shift_limit_x $mol_vector_range<number> /\n\t\t\t0\n\t\t\t0\n\t\t<= shift_limit_y $mol_vector_range<number> /\n\t\t\t0\n\t\t\t0\n\tshift_default $mol_vector_2d<number> /\n\t\t0\n\t\t0\n\tshift? $mol_vector_2d<number> /\n\t\t0\n\t\t0\n\tscale_limit $mol_vector_2d<$mol_vector_range<number>> /\n\t\t<= scale_limit_x $mol_vector_range<number> /\n\t\t\t0\n\t\t\tInfinity\n\t\t<= scale_limit_y $mol_vector_range<number> /\n\t\t\t0\n\t\t\t-Infinity\n\tscale_default $mol_vector_2d<number> /\n\t\t0\n\t\t0\n\tscale? $mol_vector_2d<number> /\n\t\t1\n\t\t-1\n\tscale_x? 1\n\tscale_y? -1\n\tsize $mol_vector_2d<number> /\n\t\t0\n\t\t0\n\tsize_real $mol_vector_2d<number> /\n\t\t1\n\t\t1\n\tdimensions $mol_vector_2d<$mol_vector_range<number>> /\n\t\t<= dimensions_x $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\t\t<= dimensions_y $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\tdimensions_viewport $mol_vector_2d<$mol_vector_range<number>> /\n\t\t<= dimensions_viewport_x $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\t\t<= dimensions_viewport_y $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\t-\n\tsub <= graphs_sorted /$mol_svg\n\tgraphs_colored <= graphs_visible <= graphs_positioned <= graphs /$mol_plot_graph\n\t-\n\tplugins /\n\t\t^\n\t\t<= Touch $mol_touch\n\t\t\tzoom? <=> zoom? 1\n\t\t\tpan? <=> shift?\n\t\t\tpointer_center => cursor_position\n\t\t\tallow_draw <= allow_draw true\n\t\t\tallow_pan <= allow_pan true\n\t\t\tallow_zoom <= allow_zoom true\n\t\t\taction_type => action_type\n\t\t\taction_point => action_point\n\t\t\tdraw_start?event <=> draw_start?event null\n\t\t\tdraw?event <=> draw?event null\n\t\t\tdraw_end?event <=> draw_end?event null\n\t- event *\n\t\t^\n\t\tdblclick?event <=> reset?event null\n","$mol_svg_group $mol_svg\n\tdom_name \\g\n","$mol_svg_title $mol_svg\n\tdom_name \\title\n\tsub /\n\t\t<= title\n","$mol_plot_graph $mol_svg_group\n\tseries_x /number\n\tseries_y /number\n\t-\n\tattr *\n\t\t^\n\t\tmol_plot_graph_type <= type \\solid\n\t-\n\tstyle *\n\t\t^\n\t\tcolor <= color \\\n\t-\n\tviewport $mol_vector_2d<$mol_vector_range<number>> /\n\t\t<= viewport_x $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\t\t<= viewport_y $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\tshift /number\n\t\t0\n\t\t0\n\tscale /number\n\t\t1\n\t\t1\n\tcursor_position $mol_vector_2d<number> /\n\t\tNaN\n\t\tNaN\n\tdimensions_pane $mol_vector_2d<$mol_vector_range<number>> /\n\t\t<= dimensions_pane_x $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\t\t<= dimensions_pane_y $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\tdimensions $mol_vector_2d<$mol_vector_range<number>> /\n\t\t<= dimensions_x $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\t\t<= dimensions_y $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\tsize_real $mol_vector_2d<number> /\n\t\t0\n\t\t0\n\tgap $mol_vector_2d<$mol_vector_range<number>> /\n\t\t<= gap_x $mol_vector_range<number> /\n\t\t\t0\n\t\t\t0\n\t\t<= gap_y $mol_vector_range<number> /\n\t\t\t0\n\t\t\t0\n\trepos_x* 0\n\trepos_y* 0\n\tindexes /number\n\tpoints /readonly(number)[]\n\tfront /$mol_svg\n\tback /$mol_svg\n\tHint $mol_svg_title\n\t\ttitle <= hint <= title \\\n\thue? +NaN\n\tSample null\n\n$mol_plot_graph_sample $mol_view\n\tattr *\n\t\t^\n\t\tmol_plot_graph_type <= type \\solid\n\tstyle *\n\t\t^\n\t\tcolor <= color \\black\n","namespace $.$$ {\n\texport class $mol_plot_graph extends $.$mol_plot_graph {\n\t\t\n\t\tviewport() {\n\t\t\tconst size = this.size_real()\n\t\t\treturn new this.$.$mol_vector_2d(\n\t\t\t\tnew this.$.$mol_vector_range(0, size.x),\n\t\t\t\tnew this.$.$mol_vector_range(0, size.y),\n\t\t\t)\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tindexes() {\n\t\t\treturn this.series_x().map( (_,i)=> i ) as readonly number[]\n\t\t}\n\t\t\n\t\trepos_x( val: number ) {\n\t\t\treturn val\n\t\t}\n\n\t\trepos_y( val: number ) {\n\t\t\treturn val\n\t\t}\n\n\t\tpoints() {\n\t\t\tconst [shift_x, shift_y] = this.shift()\n\t\t\tconst [scale_x, scale_y] = this.scale()\n\t\t\tconst series_x = this.series_x()\n\t\t\tconst series_y = this.series_y()\n\n\t\t\treturn this.indexes().map(index => {\n\t\t\t\t\n\t\t\t\tlet point_x = Math.round(shift_x + this.repos_x( series_x[index] ) * scale_x)\n\t\t\t\tlet point_y = Math.round(shift_y + this.repos_y( series_y[index] ) * scale_y)\n\n\t\t\t\tpoint_x = Math.max( Number.MIN_SAFE_INTEGER, Math.min( point_x, Number.MAX_SAFE_INTEGER ) )\n\t\t\t\tpoint_y = Math.max( Number.MIN_SAFE_INTEGER, Math.min( point_y, Number.MAX_SAFE_INTEGER ) )\n\n\t\t\t\treturn [point_x, point_y]\n\t\t\t}) as readonly( readonly number[] )[]\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tseries_x() {\n\t\t\treturn this.series_y().map((val, index) => index) as readonly number[]\n\t\t}\n\n\t\t@ $mol_mem\n\t\tdimensions() {\n\t\t\tlet next = new this.$.$mol_vector_2d(\n\t\t\t\t$mol_vector_range_full.inversed,\n\t\t\t\t$mol_vector_range_full.inversed\n\t\t\t)\n\n\t\t\tconst series_x = this.series_x()\n\t\t\tconst series_y = this.series_y()\n\t\t\tfor(let i = 0; i < series_x.length; i++) {\n\t\t\t\tif( series_x[i] > next.x.max ) next.x.max = this.repos_x( series_x[i] )\n\t\t\t\tif( series_x[i] < next.x.min ) next.x.min = this.repos_x( series_x[i] )\n\t\t\t\tif( series_y[i] > next.y.max ) next.y.max = this.repos_y( series_y[i] )\n\t\t\t\tif( series_y[i] < next.y.min ) next.y.min = this.repos_y( series_y[i] )\n\t\t\t}\n\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tcolor() {\n\t\t\tconst hue = this.hue()\n\t\t\treturn hue ? `hsl( ${ hue } , 100% , 35% )` : ''\n\t\t}\n\t\t\n\t\tfront() {\n\t\t\treturn [ this ] as unknown as readonly $.$mol_svg[]\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/plot/graph/graph.view.css\",\n \"[mol_plot_graph] {\\n\\tstroke: currentColor;\\n}\\n\\n[mol_plot_graph_sample] {\\n\\tborder-width: 0;\\n\\tborder-style: solid;\\n}\\n\\n[mol_plot_graph_type=\\\"dashed\\\"] {\\n\\tstroke-dasharray: 4 4;\\n\\tborder-style: dashed;\\n}\\n\"\n) }","namespace $.$$ {\n\n\t/**\n\t * Fastest plot lib for vector graphics.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_plot_demo\n\t */\n\texport class $mol_plot_pane extends $.$mol_plot_pane {\n\t\t\n\t\t@ $mol_mem\n\t\tdimensions() {\n\t\t\tconst graphs = this.graphs()\n\t\t\tlet next = new this.$.$mol_vector_2d(\n\t\t\t\t$mol_vector_range_full.inversed,\n\t\t\t\t$mol_vector_range_full.inversed\n\t\t\t)\n\n\t\t\tfor( let graph of graphs ) {\n\t\t\t\tnext = next.expanded2(graph.dimensions())\n\t\t\t}\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsize() {\n\t\t\tconst dims = this.dimensions()\n\t\t\treturn new this.$.$mol_vector_2d(\n\t\t\t\t( dims.x.max - dims.x.min ) || 1 ,\n\t\t\t\t( dims.y.max - dims.y.min ) || 1 ,\n\t\t\t)\n\t\t}\n\t\t\t\n\t\tgraph_hue( index : number ) {\n\t\t\treturn ( 360 + ( this.hue_base() + this.hue_shift() * index ) % 360 ) % 360\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tgraphs_colored() {\n\t\t\tconst graphs = this.graphs_visible()\n\t\t\tfor (let index = 0; index < graphs.length; index++) {\n\t\t\t\tgraphs[index].hue( this.graph_hue( index ) )\n\t\t\t}\n\t\t\t\n\t\t\treturn graphs\n\t\t}\n\t\t\n\t\tsize_real() {\n\t\t\tconst rect = this.view_rect()\n\t\t\tif( !rect ) return new this.$.$mol_vector_2d( 1, 1 )\n\t\t\treturn new this.$.$mol_vector_2d( rect.width, rect.height )\n\t\t}\n\n\t\tview_box() {\n\t\t\tconst size = this.size_real()\n\t\t\treturn `0 0 ${ size.x } ${ size.y }`\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tscale_limit() {\n\t\t\tconst {\n\t\t\t\tx: {max: right},\n\t\t\t\ty: {max: top}\n\t\t\t} = super.scale_limit()\n\t\t\tconst gap = this.gap()\n\t\t\tconst size = this.size()\n\t\t\tconst real = this.size_real()\n\n\t\t\tconst left = + ( real.x - gap.x.min - gap.x.max ) / size.x\n\t\t\tconst bottom = - ( real.y - gap.y.max - gap.y.min) / size.y\n\n\t\t\treturn new this.$.$mol_vector_2d(\n\t\t\t\tnew this.$.$mol_vector_range(left, right),\n\t\t\t\tnew this.$.$mol_vector_range(top, bottom),\n\t\t\t)\n\t\t}\n\n\t\tscale_default() {\n\t\t\tconst limits = this.scale_limit()\n\t\t\treturn new $mol_vector_2d( limits.x.min, limits.y.max )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tscale(next?: $mol_vector_2d< number >): $mol_vector_2d< number > {\n\t\t\tif (next === undefined) {\n\t\t\t\tif (!this.graph_touched) return this.scale_default()\n\t\t\t\tnext = $mol_mem_cached( ()=> this.scale() ) ?? this.scale_default()\n\t\t\t}\n\t\t\tthis.graph_touched = true\n\n\t\t\treturn next!.limited(this.scale_limit())\n\t\t}\n\n\t\tscale_x(next?: number): number {\n\t\t\treturn this.scale(\n\t\t\t\tnext === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: new $mol_vector_2d( next , this.scale().y )\n\t\t\t).x\n\t\t}\n\n\t\tscale_y(next?: number): number {\n\t\t\treturn this.scale(\n\t\t\t\tnext === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: new $mol_vector_2d( this.scale().x , next )\n\t\t\t).y\n\t\t}\n\n\t\t@ $mol_mem\n\t\tshift_limit() {\n\t\t\tconst dims = this.dimensions()\n\t\t\tconst [scale_x, scale_y] = this.scale()\n\t\t\tconst size = this.size_real()\n\t\t\tconst gap = this.gap()\n\n\t\t\tconst left = gap.x.min - dims.x.min * scale_x\n\t\t\tconst right = size.x - gap.x.max - dims.x.max * scale_x\n\n\t\t\tconst top = gap.y.max - dims.y.max * scale_y\n\t\t\tconst bottom = size.y - gap.y.min - dims.y.min * scale_y\n\n\t\t\treturn new this.$.$mol_vector_2d(\n\t\t\t\tnew this.$.$mol_vector_range(right, left),\n\t\t\t\tnew this.$.$mol_vector_range(bottom, top),\n\t\t\t)\n\t\t}\n\n\t\t@ $mol_mem\n\t\tshift_default() {\n\t\t\tconst limits = this.shift_limit()\n\t\t\treturn new $mol_vector_2d( limits.x.min, limits.y.min )\n\t\t}\n\n\t\tgraph_touched: boolean = false\n\n\t\t@ $mol_mem\n\t\tshift(next?: $mol_vector_2d< number >): $mol_vector_2d< number > {\n\n\t\t\tif (next === undefined) {\n\t\t\t\tif (!this.graph_touched) return this.shift_default()\n\t\t\t\tnext = $mol_mem_cached( ()=> this.shift() ) ?? this.shift_default()\n\t\t\t}\n\n\t\t\tthis.graph_touched = true\n\n\t\t\treturn next!.limited(this.shift_limit())\n\t\t}\n\n\t\treset(event?: Event) {\n\t\t\tthis.graph_touched = false\n\t\t\tthis.scale(this.scale_default())\n\t\t\tthis.shift(this.shift_default())\n\t\t}\n\n\t\t@ $mol_mem\n\t\tgraphs_visible() {\n\t\t\t\n\t\t\tconst viewport = this.dimensions_viewport()\n\t\t\tconst size_real = this.size_real()\n\t\t\t\n\t\t\tconst max_x = ( viewport.x.max - viewport.x.min ) / size_real.x\n\t\t\tconst max_y = ( viewport.y.max - viewport.y.min ) / size_real.y\n\t\t\t\n\t\t\treturn this.graphs_positioned().filter( graph => {\n\t\t\t\t\n\t\t\t\tconst dims = graph.dimensions()\n\t\t\t\t\n\t\t\t\tif( dims.x.min > dims.x.max ) return true\n\t\t\t\tif( dims.y.min > dims.y.max ) return true\n\t\t\t\t\n\t\t\t\tconst size_x = dims.x.max - dims.x.min\n\t\t\t\tconst size_y = dims.y.max - dims.y.min\n\t\t\t\tif( ( size_x || size_y ) && size_x < max_x && size_y < max_y ) return false\n\t\t\t\t\n\t\t\t\tif( dims.x.min > viewport.x.max ) return false\n\t\t\t\tif( dims.x.max < viewport.x.min ) return false\n\t\t\t\t\n\t\t\t\tif( dims.y.min > viewport.y.max ) return false\n\t\t\t\tif( dims.y.max < viewport.y.min ) return false\n\t\t\t\t\n\t\t\t\treturn true\n\t\t\t} )\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tgraphs_positioned() {\n\t\t\tconst graphs = this.graphs()\n\t\t\tfor (let graph of graphs) {\n\t\t\t\tgraph.shift = ()=> this.shift()\n\t\t\t\tgraph.scale = ()=> this.scale()\n\t\t\t\tgraph.dimensions_pane = () => this.dimensions_viewport()\n\t\t\t\tgraph.viewport = () => this.viewport()\n\t\t\t\tgraph.size_real = ()=> this.size_real()\n\t\t\t\tgraph.cursor_position = ()=> this.cursor_position()\n\t\t\t\tgraph.gap = () => this.gap()\n\t\t\t}\n\t\t\t\n\t\t\treturn graphs\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tdimensions_viewport() {\n\t\t\tconst shift = this.shift().multed0(-1)\n\t\t\tconst scale = this.scale().powered0(-1)\n\t\t\treturn this.viewport().map( ( range, i )=> range.added0( shift[i] ).multed0( scale[i] ).sort( (a,b)=>a-b) )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tviewport() {\n\t\t\tconst size = this.size_real()\n\t\t\treturn new this.$.$mol_vector_2d(\n\t\t\t\tnew this.$.$mol_vector_range(0, size.x),\n\t\t\t\tnew this.$.$mol_vector_range(0, size.y),\n\t\t\t)\n\t\t}\n\n\t\t@ $mol_mem\n\t\tgraphs_sorted() {\n\t\t\tconst graphs = this.graphs_colored()\n\t\t\tconst sorted = [] as $.$mol_svg[]\n\t\t\t\n\t\t\tfor( let graph of graphs ) sorted.push(...graph.back())\n\t\t\tfor( let graph of graphs ) sorted.push(...graph.front())\n\t\t\t\n\t\t\treturn sorted\n\t\t}\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/plot/pane/pane.view.css\",\n \"[mol_plot_pane] {\\n\\tcolor: var(--mol_theme_control);\\n\\tflex: 1 1 auto;\\n\\talign-self: stretch;\\n\\tstroke-width: 2px;\\n\\tuser-select: none;\\n}\\n\"\n) }","$mol_plot_line $mol_plot_graph\n\tthreshold 1\n\tspacing 2\n\tcolor_fill \\none\n\tdom_name \\path\n\tattr *\n\t\t^\n\t\td <= curve \\\n\tsub /\n\t\t<= Hint\n\t-\n\tSample $mol_plot_graph_sample\n\t\tcolor <= color\n\t\ttype <= type\n","namespace $.$$ {\n\texport class $mol_plot_line extends $.$mol_plot_line {\n\n\t\tsub() {\n\t\t\treturn this.hint() ? super.sub() : []\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tindexes() {\n\t\t\t\n\t\t\tconst threshold = this.threshold()\n\t\t\tconst {\n\t\t\t\tx: {min: viewport_left, max: viewport_right},\n\t\t\t\ty: {min: viewport_bottom, max: viewport_top},\n\t\t\t} = this.viewport()\n\n\t\t\tconst [shift_x, shift_y] = this.shift()\n\t\t\tconst [scale_x, scale_y] = this.scale()\n\t\t\tconst indexes = [] as number[]\n\n\t\t\tlet last = new $mol_vector_2d( Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY )\n\t\t\tlet last_zone = new $mol_vector_2d( 0, 0 )\n\n\t\t\tconst series_x = this.series_x()\n\t\t\tconst series_y = this.series_y()\n\t\t\t\n\t\t\tconst zone_of = ( point: $mol_vector_2d<number> )=> new $mol_vector_2d(\n\t\t\t\tpoint.x < viewport_left ? -1\n\t\t\t\t\t: point.x > viewport_right ? 1\n\t\t\t\t\t: 0,\n\t\t\t\tpoint.y < viewport_bottom ? -1\n\t\t\t\t\t: point.y > viewport_top ? 1\n\t\t\t\t\t: 0,\n\t\t\t)\n\t\t\t\n\t\t\tfor (let i = 0; i < series_x.length-1; i++) {\n\t\t\t\t\n\t\t\t\tconst scaled = new $mol_vector_2d(\n\t\t\t\t\tMath.round( shift_x + this.repos_x( series_x[i] ) * scale_x ),\n\t\t\t\t\tMath.round( shift_y + this.repos_y( series_y[i] ) * scale_y ),\n\t\t\t\t)\n\n\t\t\t\tif (\n\t\t\t\t\tMath.abs( scaled.x - last.x ) < threshold\n\t\t\t\t\t&& Math.abs( scaled.y - last.y ) < threshold\n\t\t\t\t) continue\n\n\t\t\t\tconst zone = zone_of( scaled )\n\t\t\t\t\n\t\t\t\tlast = scaled\n\t\t\t\t\n\t\t\t\tif( zone.x !== 0 && zone.x === last_zone.x || zone.y !== 0 && zone.y === last_zone.y ) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( last_zone.x !== 0 || last_zone.y !== 0 ) {\n\t\t\t\t\tindexes.push( i - 1 )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tlast_zone = zone\n\t\t\t\t\n\t\t\t\tindexes.push(i)\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tindexes.push( series_x.length - 1 )\n\n\t\t\treturn indexes\n\t\t}\n\n\t\tcurve() {\n\t\t\tconst points = this.points()\n\t\t\tif( points.length === 0 ) return ''\n\n\t\t\tconst main = points.map( (point) => point.join(',')).join(' ')\n\n\t\t\treturn `M ${points[0].join(' ')} L ${main}`\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/plot/line/line.view.css\",\n \"[mol_plot_line] {\\n\\tfill: none;\\n\\tstroke-linejoin: round;\\n}\\n\\n[mol_plot_line_sample] {\\n\\theight: 0;\\n\\tleft: 0;\\n\\tright: 0;\\n\\tbottom: 0;\\n\\tborder-width: 2px 0 0;\\n\\tposition: absolute;\\n\\ttop: .75em;\\n\\ttransform: translateY(-50%);\\n}\\n\"\n) }","$mol_plot_group $mol_plot_graph\n\tsub <= graphs_enriched <= graphs /$mol_plot_graph\n\tSample $mol_plot_graph_sample\n\t\tsub <= graph_samples /$mol_view\n","namespace $.$$ {\n\texport class $mol_plot_group extends $.$mol_plot_group {\n\t\t\n\t\t@ $mol_mem\n\t\tgraphs_enriched() {\n\t\t\tconst graphs = this.graphs()\n\t\t\tfor( let graph of graphs ) {\n\t\t\t\tgraph.shift = ()=> this.shift()\n\t\t\t\tgraph.scale = ()=> this.scale()\n\t\t\t\tgraph.size_real = ()=> this.size_real()\n\t\t\t\tgraph.hue = ()=> this.hue()\n\t\t\t\tgraph.series_x = ()=> this.series_x()\n\t\t\t\tgraph.series_y = ()=> this.series_y()\n\t\t\t\tgraph.dimensions_pane = ()=> this.dimensions_pane()\n\t\t\t\tgraph.viewport = ()=> this.viewport()\n\t\t\t\tgraph.cursor_position = ()=> this.cursor_position()\n\t\t\t\tgraph.gap = ()=> this.gap()\n\t\t\t\tgraph.title = ()=> this.title()\n\t\t\t\tgraph.repos_x = val => this.repos_x( val )\n\t\t\t\tgraph.repos_y = val => this.repos_y( val )\n\t\t\t}\n\t\t\treturn graphs\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tdimensions() {\n\t\t\tconst graphs = this.graphs_enriched()\n\t\t\tlet next = new this.$.$mol_vector_2d(\n\t\t\t\t$mol_vector_range_full.inversed,\n\t\t\t\t$mol_vector_range_full.inversed\n\t\t\t)\n\n\t\t\tfor( let graph of graphs ) {\n\t\t\t\tnext = next.expanded2(graph.dimensions())\n\t\t\t}\n\n\t\t\treturn next\n\t\t}\n\n\t\t@ $mol_mem\n\t\tgraph_samples() {\n\t\t\treturn this.graphs_enriched().map( graph => graph.Sample() )\n\t\t}\n\t\t\n\t\tback() {\n\t\t\tconst graphs = this.graphs_enriched()\n\t\t\tconst next = [] as $mol_plot_graph[]\n\t\t\t\n\t\t\tfor( let graph of graphs ) next.push( ...graph.back() as $mol_plot_graph[])\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tfront() {\n\t\t\tconst graphs = this.graphs_enriched()\n\t\t\tconst next = [] as $mol_plot_graph[]\n\t\t\t\n\t\t\tfor( let graph of graphs ) next.push( ...graph.front() as $mol_plot_graph[])\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t}\n}\n","$mol_svg_path $mol_svg\n\tdom_name \\path\n\tattr *\n\t\t^\n\t\td <= geometry \\\n\n","$mol_plot_dot $mol_plot_graph\n\tpoints_max +Infinity\n\taspect 1\n\tstyle *\n\t\t^\n\t\tstroke-width <= diameter 8\n\tsub /\n\t\t<= Hint\n\t\t<= Curve $mol_svg_path\n\t\t\tgeometry <= curve \\\n\t-\n\tSample $mol_plot_graph_sample\n\t\tcolor <= color\n","namespace $ {\n\t\n\t// 00 HHHHH HHHHH HHHHH LLLLL LLLLL LLLLL\n\t\n\tconst mask = 0b11111_11111_11111\n\t\n\texport function $mol_coord_pack( high: number, low: number ) {\n\t\treturn ( high << 17 >>> 2 ) | ( low & mask )\n\t}\n\n\texport function $mol_coord_high( pack: number ) {\n\t\treturn pack << 2 >> 17\n\t}\n\n\texport function $mol_coord_low( pack: number ) {\n\t\treturn ( pack << 17 ) >> 17\n\t}\n\t\n}\n","namespace $.$$ {\n\texport class $mol_plot_dot extends $.$mol_plot_dot {\n\t\t\n\t\t@$mol_mem\n\t\tfilled(): Set<number> {\n\t\t\treturn new Set()\n\t\t}\n\n\t\t@ $mol_mem\n\t\tindexes() {\n\t\t\tconst radius = this.diameter() / 2\n\t\t\t// calculate by cpu\n\t\t\tconst points_max = this.points_max()\n\n\t\t\tconst viewport = this.viewport()\n\t\t\tconst viewport_left = viewport.x.min - radius\n\t\t\tconst viewport_right = viewport.x.max + radius\n\t\t\tconst viewport_bottom = viewport.y.min - radius\n\t\t\tconst viewport_top = viewport.y.max + radius\n\n\t\t\tconst [shift_x, shift_y] = this.shift()\n\t\t\tconst [scale_x, scale_y] = this.scale()\n\n\t\t\tlet last_x = Number.NEGATIVE_INFINITY\n\t\t\tlet last_y = Number.NEGATIVE_INFINITY\n\n\t\t\tlet spacing = 0\n\t\t\tlet filled: Set<number> = this.filled() \n\t\t\tlet indexes: number[]\n\n\t\t\tconst series_x = this.series_x()\n\t\t\tconst series_y = this.series_y()\n\t\t\tdo {\n\t\t\t\tindexes = []\n\t\t\t\tfor (let i = 0; i < series_x.length; i++) {\n\t\t\t\t\tconst point_x = this.repos_x( series_x[i] )\n\t\t\t\t\tconst point_y = this.repos_y( series_y[i] )\n\t\t\t\t\tconst scaled_x = Math.round(shift_x + point_x * scale_x)\n\t\t\t\t\tconst scaled_y = Math.round(shift_y + point_y * scale_y)\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tMath.abs( scaled_x - last_x ) < radius\n\t\t\t\t\t\t&& Math.abs( scaled_y - last_y ) < radius\n\t\t\t\t\t) continue\n\n\t\t\t\t\tlast_x = scaled_x\n\t\t\t\t\tlast_y = scaled_y\n\n\t\t\t\t\tif (scaled_x < viewport_left) continue\n\t\t\t\t\tif (scaled_y < viewport_bottom) continue\n\t\t\t\t\tif (scaled_x > viewport_right) continue\n\t\t\t\t\tif (scaled_y > viewport_top) continue\n\n\t\t\t\t\tif (spacing !== 0) {\n\t\t\t\t\t\tconst key = $mol_coord_pack(\n\t\t\t\t\t\t\tMath.round(point_x * scale_x / spacing) * spacing,\n\t\t\t\t\t\t\tMath.round(point_y * scale_y / spacing) * spacing\n\t\t\t\t\t\t)\n\t\t\t\t\t\tif (filled.has(key)) continue\n\n\t\t\t\t\t\tfilled.add(key)\n\t\t\t\t\t}\n\n\t\t\t\t\tindexes.push(i)\n\t\t\t\t\tif (indexes.length > points_max) break\n\t\t\t\t}\n\t\t\t\tspacing += Math.ceil(radius)\n\t\t\t\tfilled.clear()\n\t\t\t} while (indexes.length > points_max)\n\n\t\t\treturn indexes\n\t\t}\n\n\t\tcurve() {\n\t\t\t\n\t\t\tconst points = this.points()\n\t\t\tif( points.length === 0 ) return ''\n\t\t\t\n\t\t\tconst diameter = this.diameter()\n\t\t\tconst aspect = this.aspect()\n\t\t\t\n\t\t\tconst shift_y = Math.max( 0, Math.floor( ( aspect - 1 ) * diameter / 2 ) )\n\t\t\tconst shift_x = Math.max( 0, Math.floor( ( 1/aspect - 1 ) * diameter / 2 ) )\n\n\t\t\tconst size_y = Math.max( 0, Math.ceil( ( aspect - 1 ) * diameter ) )\n\t\t\tconst size_x = Math.max( 0, Math.ceil( ( 1/aspect - 1 ) * diameter ) )\n\n\t\t\treturn points.map(\n\t\t\t\tpoint => `M ${ point[0] - shift_x } ${ point[1] - shift_y } l ${ size_x } ${ size_y }`\n\t\t\t).join( ' ' )\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/plot/dot/dot.view.css\",\n \"[mol_plot_dot] {\\n\\tstroke-linecap: round;\\n\\tfill: none;\\n}\\n\\n[mol_plot_dot_sample] {\\n\\twidth: .5rem;\\n\\theight: .5rem;\\n\\tborder-radius: 1rem;\\n\\tbackground: currentColor;\\n\\tposition: absolute;\\n\\ttop: .75em;\\n\\tleft: 50%;\\n\\ttransform: translate(-50%, -50%);\\n}\\n\"\n) }","$mol_plot_map_heat $mol_plot_group\n\tseries_z /number\n\tgraphs <= level_graphs /\n\tLevel* $mol_plot_map_heat_level\n\t\thint <= level_hint* \\\n\t\tpoints <= level_points* /\n\t\topacity <= level_opacity* \\1\n\t\tdiameter <= level_diameter 10\n\t\taspect <= level_aspect 1\n\t-\n\tSample $mol_plot_graph_sample\n\t\tcolor <= color\n\n$mol_plot_map_heat_level $mol_plot_dot\n\tstyle *\n\t\t^\n\t\topacity <= opacity \\1\n","namespace $.$$ {\n\t/**\n\t * Heat map graph.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_plot_map_heat_demo\n\t */\n\texport class $mol_plot_map_heat extends $.$mol_plot_map_heat {\n\t\t\n\t\t@ $mol_mem\n\t\tlevels() {\n\t\t\treturn [ ... new Set<number>( this.series_z() ) ].sort( ( a, b )=> a - b )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tlevel_graphs() {\n\t\t\treturn this.levels().map( (_,i)=> this.Level( i ) )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tlevel_points( level: number ) {\n\t\t\tconst value = this.levels()[ level ]\n\t\t\tconst series_z = this.series_z()\n\t\t\tconst res = [] as (readonly number[])[]\n\t\t\tfor( const [ index, point ] of this.points().entries() ) {\n\t\t\t\tif( series_z[ index ] !== value ) continue\n\t\t\t\tres.push( point )\n\t\t\t}\n\t\t\treturn res\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tlevel_opacity( level: number ) {\n\t\t\treturn String( level / this.levels().length )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tlevel_diameter() {\n\t\t\treturn Math.min( ... this.scale().map( Math.abs ) )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tlevel_aspect() {\n\t\t\tconst scale = this.scale().map( Math.abs )\n\t\t\treturn scale[1] / scale[0]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tlevel_hint( index: number ) {\n\t\t\treturn this.levels()[ index ].toLocaleString()\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/plot/map/heat/heat.view.css\",\n \"[mol_plot_map_heat_level_curve] {\\n\\tstroke-linecap: square;\\n\\tfill: none;\\n}\\n\"\n) }","$mol_plot_bar $mol_plot_graph\n\tstyle *\n\t\t^\n\t\tstroke-width <= stroke_width \\1rem\n\tsub /\n\t\t<= Hint\n\t\t<= Curve $mol_svg_path\n\t\t\tgeometry <= curve \\\n\tSample $mol_plot_graph_sample\n\t\tcolor <= color\n","namespace $.$$ {\n\texport class $mol_plot_bar extends $.$mol_plot_bar {\n\n\t\t@$mol_mem\n\t\tindexes() {\n\t\t\tconst {\n\t\t\t\tx: {min: viewport_left, max: viewport_right},\n\t\t\t\ty: {min: viewport_bottom, max: viewport_top},\n\t\t\t} = this.viewport()\n\n\t\t\tconst [shift_x, shift_y] = this.shift()\n\t\t\tconst [scale_x, scale_y] = this.scale()\n\t\t\tconst indexes = [] as number[]\n\n\t\t\tconst series_x = this.series_x()\n\t\t\tconst series_y = this.series_y()\n\n\t\t\tlet first_x = null as number | null\n\t\t\tlet last_x = null as number | null\n\n\t\t\tfor (let i = 0; i < series_x.length; i++) {\n\t\t\t\tconst scaled = [\n\t\t\t\t\tMath.round( shift_x + series_x[i] * scale_x ),\n\t\t\t\t\tMath.round( shift_y + series_y[i] * scale_y ),\n\t\t\t\t] as const\n\n\t\t\t\tif (scaled[0] < viewport_left) {\n\t\t\t\t\tfirst_x = i\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif (scaled[0] > viewport_right) {\n\t\t\t\t\tif (last_x === null) last_x = i\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tif (scaled[1] < viewport_bottom) continue\n\t\t\t\tif (scaled[1] > viewport_top) continue\n \n\t\t\t\tif (first_x !== null) indexes.push(first_x)\n\n\t\t\t\tindexes.push(i)\n\n\t\t\t\tif (last_x !== null) indexes.push(last_x)\n\n\t\t\t\tfirst_x = last_x = null\n\t\t\t}\n\n\t\t\tif (first_x !== null) indexes.push(first_x)\n\t\t\tif (last_x !== null) indexes.push(last_x)\n\n\t\t\treturn indexes\n\t\t}\n\n\t\tcurve() {\n\t\t\tconst points = this.points()\n\t\t\tif( points.length === 0 ) return ''\n\t\t\tconst [, shift_y] = this.shift()\n\n\t\t\treturn points.map( point =>\n\t\t\t\t( Number.isFinite( point[0] ) && Number.isFinite( point[1] ) )\n\t\t\t\t\t? `M ${point[0]} ${shift_y} V ${point[1]}`\n\t\t\t\t\t: ``\n\t\t\t).join( ' ' )\n\t\t}\n\t\t\n\t\tstroke_width() {\n\t\t\treturn ( 8 / Math.sqrt( this.indexes().length ) ).toPrecision(2) + '%'\n\t\t}\n\t\t\n\t\tcolor() {\n\t\t\treturn `hsl( ${ this.hue() } , 80% , 80% )`\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tdimensions() {\n\t\t\tlet next = new this.$.$mol_vector_2d(\n\t\t\t\t$mol_vector_range_full.inversed,\n\t\t\t\tnew this.$.$mol_vector_range(0 , 0),\n\t\t\t)\n\t\t\t\n\t\t\tconst series_x = this.series_x()\n\t\t\tconst series_y = this.series_y()\n\t\t\tfor (let i = 0; i < series_x.length; i++) {\n\t\t\t\tnext = next.expanded1([series_x[i], series_y[i]] as const)\n\t\t\t}\n\t\t\t\n\t\t\tconst gap = ( next.x.max - next.x.min ) / series_x.length || 0.00000001\n\t\t\tnext[0] = next.x.added1([-gap, gap] as const)\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/plot/bar/bar.view.css\",\n \"[mol_plot_bar] {\\n\\tstroke-linecap: butt;\\n\\tstroke-width: 1rem;\\n}\\n\\n[mol_plot_bar_sample] {\\n\\tbackground: currentColor;\\n\\tposition: absolute;\\n\\ttop:0;\\n\\tbottom: 0;\\n\\tleft: 0;\\n\\tright: 0;\\n}\\n\"\n) }","$mol_plot_fill $mol_plot_line\n\tthreshold 4\n","namespace $.$$ {\n\texport class $mol_plot_fill extends $.$mol_plot_fill {\n\n\t\tcurve() {\n\t\t\tconst points = this.points()\n\t\t\tif( points.length === 0 ) return ''\n\t\t\t\n\t\t\tconst [, shift_y] = this.shift()\n\n\t\t\tconst main = points.map( point => point.join(',')).join(' ')\n\n\t\t\treturn `M ${points[0].join(' ')} L ${main} V ${shift_y} H ${points[0][0]}`\n\t\t}\n\t\t\n\t\tfront() {\n\t\t\treturn []\n\t\t}\n\t\t\n\t\tback() {\n\t\t\treturn [ this ]\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/plot/fill/fill.view.css\",\n \"[mol_plot_fill] {\\n\\tstroke: none;\\n\\tstroke-width: 0;\\n\\topacity: .1;\\n\\tfill: currentColor;\\n\\tpointer-events: none;\\n}\\n\\n[mol_plot_fill_sample] {\\n\\topacity: .1;\\n\\tbackground: currentColor;\\n\\tposition: absolute;\\n\\tbottom: 0;\\n\\ttop: .75em;\\n\\tleft: 0;\\n\\tright: 0;\\n}\\n\"\n) }","$mol_svg_rect $mol_svg\n\tdom_name \\rect\n\tpos /\n\tattr *\n\t\t^\n\t\twidth <= width \\0\n\t\theight <= height \\0\n\t\tx <= pos_x \\\n\t\ty <= pos_y \\\n","namespace $.$$ {\n\n\texport class $mol_svg_rect extends $.$mol_svg_rect {\n\t\t\n\t\tpos_x() {\n\t\t\treturn this.pos()[ 0 ]\n\t\t}\n\t\t\n\t\tpos_y() {\n\t\t\treturn this.pos()[ 1 ]\n\t\t}\n\t\t\n\t}\n\t\n}\n","$mol_svg_text $mol_svg\n\tdom_name \\text\n\tpos /\n\tattr *\n\t\t^\n\t\tx <= pos_x \\\n\t\ty <= pos_y \\\n\t\ttext-anchor <= align_hor <= align \\middle\n\t\talignment-baseline <= align_vert \\baseline\n\tsub /\n\t\t<= text \\\n","namespace $.$$ {\n\t\n\texport class $mol_svg_text extends $.$mol_svg_text {\n\t\t\n\t\tpos_x() {\n\t\t\treturn this.pos()[ 0 ]\n\t\t}\n\t\t\n\t\tpos_y() {\n\t\t\treturn this.pos()[ 1 ]\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ { $mol_style_attach( \"mol/svg/text/text.view.css\",\n \"[mol_svg_text] {\\n\\tfill: currentColor;\\n\\tstroke: none;\\n}\\n\"\n) }","$mol_plot_ruler $mol_plot_graph\n\tstep 0\n\tscale_axis 1\n\tscale_step 1\n\tshift_axis 1\n\tdimensions_axis $mol_vector_range<number> /\n\t\tInfinity\n\t\t-Infinity\n\tviewport_axis $mol_vector_range<number> /\n\t\tInfinity\n\t\t-Infinity\n\taxis_points /number\n\tnormalize? 0\n\tprecision 1\n\tsub /\n\t\t<= Background $mol_svg_rect\n\t\t\tpos_x <= background_x \\0\n\t\t\tpos_y <= background_y \\0\n\t\t\twidth <= background_width \\100%\n\t\t\theight <= background_height \\14\n\t\t<= Curve $mol_svg_path\n\t\t\tgeometry <= curve \\\n\t\t<= labels_formatted /\n\t\t<= Title $mol_svg_text\n\t\t\tpos_x <= title_pos_x \\0\n\t\t\tpos_y <= title_pos_y \\100%\n\t\t\talign <= title_align \\start\n\t\t\ttext <= title\n\tLabel* $mol_svg_text\n\t\tpos <= label_pos* /\n\t\t\t<= label_pos_x* \\\n\t\t\t<= label_pos_y* \\\n\t\ttext <= label_text* \\\n\t\talign <= label_align \\\n","namespace $ {\n\t\n\texport function $mol_math_round_expand( val : number , gap = 1 ) {\n\t\tif( val === 0 ) return 0\n\t\t\n\t\tconst val_abs = Math.abs( val )\n\t\tconst val_sign = val ? Math.round( val / val_abs ) : 0\n\t\t\n\t\tconst digits = Math.floor( Math.log( val_abs ) / Math.log( 10 ) )\n\t\tconst precission = Math.pow( 10 , digits - gap )\n\t\tconst val_expanded = precission * Math.ceil( val_abs / precission )\n\t\t\n\t\treturn val_sign * val_expanded\n\t}\n\t\n}\n","namespace $.$$ {\n\texport class $mol_plot_ruler extends $.$mol_plot_ruler {\n\t\tlabels_formatted() {\n\t\t\treturn this.axis_points().map( ( point , index )=> this.Label( index ) )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tstep() {\n\t\t\tconst scale = Math.abs( this.scale_step() )\n\t\t\tconst dims = this.dimensions_axis()\n\t\t\tconst range = dims.max - dims.min\n\t\t\tconst min_width = ( Math.abs( Math.log10( range ) ) + 2 ) * 15\n\t\t\tconst size = $mol_math_round_expand( range , -1 )\n\t\t\tconst count = Math.max( 1 , Math.pow( 10 , Math.floor( Math.log( size * scale / min_width ) / Math.log( 10 ) ) ) )\n\t\t\tlet step = size / count\n\t\t\tconst step_max = min_width * 2 / scale\n\t\t\tif( step > step_max ) step /= 2\n\t\t\tif( step > step_max ) step /= 2\n\n\t\t\treturn Math.max( step , Math.abs( dims.min ) / 1e10 , Math.abs( dims.max ) / 1e10 )\n\t\t}\n\n\t\tsnap_to_grid(coord: number) {\n\t\t\tconst viewport = this.viewport_axis()\n\t\t\tconst scale = this.scale_axis()\n\t\t\tconst shift = this.shift_axis()\n\t\t\tconst step = this.step()\n\n\t\t\tconst val = Math.round( coord / step ) * step\n\n\t\t\tif (scale == 0) return val\n\n\t\t\tconst step_scaled = step * scale\n\t\t\tconst scaled = val * scale + shift\n\t\t\tlet count = 0\n\t\t\tif (scaled < viewport.min) count = (scaled - viewport.min) / step_scaled\n\t\t\tif (scaled > viewport.max) count = (scaled - viewport.max) / step_scaled\n\n\t\t\treturn val - Math.floor(count) * step\n\t\t}\n\n\t\t@ $mol_mem\n\t\taxis_points() {\n\t\t\tconst dims = this.dimensions_axis()\n\t\t\tconst start = this.snap_to_grid(dims.min)\n\t\t\tconst end = this.snap_to_grid(dims.max)\n\t\t\tconst step = this.step()\n\n\t\t\tconst next = [] as number[]\n\t\t\tfor( let val = start ; val <= end ; val += step ) {\n\t\t\t\tnext.push(val)\n\t\t\t}\n\n\t\t\treturn next\n\t\t}\n\n\t\t@$mol_mem\n\t\tprecision() {\n\t\t\tconst step = this.step()\n\t\t\treturn Math.max( 0 , Math.min( 15 , ( step - Math.floor( step ) ).toString().length - 2 ) )\n\t\t}\n\n\t\tlabel_text( index : number ) {\n\t\t\tconst point = this.axis_points()[index]\n\t\t\treturn point.toFixed( this.precision() )\n\t\t}\n\n\t\tfont_size() {\n\t\t\treturn this.Background().font_size()\n\t\t}\n\n\t\tback() {\n\t\t\treturn [this.Curve()]\n\t\t}\n\n\t\tfront() {\n\t\t\treturn [\n\t\t\t\t// this.Background(),\n\t\t\t\t...this.labels_formatted(),\n\t\t\t\tthis.Title()\n\t\t\t] as readonly $.$mol_svg[]\n\t\t}\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/plot/ruler/ruler.view.css\",\n \"[mol_plot_ruler_curve] {\\n\\tcolor: var(--mol_theme_line);\\n\\tstroke-width: 1px;\\n\\tstroke: currentColor;\\n}\\n\\n[mol_plot_ruler_label] {\\n\\tcolor: var(--mol_theme_text);\\n\\ttext-shadow: 0 -1px var(--mol_theme_back), 0px 1px var(--mol_theme_back);\\n}\\n\\n[mol_plot_ruler_title] {\\n\\tcolor: var(--mol_theme_shade);\\n\\tbackground-color: var(--mol_theme_back);\\n\\ttext-shadow: 0 -1px var(--mol_theme_back), 0px 1px var(--mol_theme_back);\\n}\\n\\n[mol_plot_ruler_background] {\\n\\tstroke: none;\\n\\tfill: var(--mol_theme_back);\\n\\topacity: 0.8;\\n}\\n\"\n) }","$mol_plot_ruler_vert $mol_plot_ruler\n\ttitle_align \\end\n\tlabel_align \\end\n\ttitle_pos_y \\14\n\tlabel_pos_x* <= title_pos_x\n\tbackground_height \\100%\n\tbackground_width <= title_pos_x\n","namespace $.$$ {\n\texport class $mol_plot_ruler_vert extends $.$mol_plot_ruler_vert {\n\t\tdimensions_axis() {\n\t\t\treturn this.dimensions_pane().y\n\t\t}\n\n\t\tviewport_axis() {\n\t\t\treturn new this.$.$mol_vector_range(0, this.size_real().y)\n\t\t}\n\n\t\tscale_axis() {\n\t\t\treturn this.scale()[1]\n\t\t}\n\n\t\tscale_step() {\n\t\t\treturn -this.scale()[1]\n\t\t}\n\n\t\tshift_axis() {\n\t\t\treturn this.shift()[1]\n\t\t}\n\n\t\tcurve() {\n\t\t\tconst [, shift] = this.shift()\n\t\t\tconst [, scale] = this.scale()\n\n\t\t\treturn this.axis_points().map( point => {\n\t\t\t\tlet scaled = Math.round( point * scale + shift )\n\t\t\t\tscaled = Math.max( Number.MIN_SAFE_INTEGER, Math.min( scaled, Number.MAX_SAFE_INTEGER ) )\n\t\t\t\treturn `M 0 ${ scaled } H 2000`\n\t\t\t}).join( ' ' )\n\t\t}\n\n\t\ttitle_pos_x() {\n\t\t\treturn String(this.gap().x.min)\n\t\t}\n\n\t\tlabel_pos_y( index : number ) {\n\t\t\treturn (this.axis_points()[index] * this.scale()[1] + this.shift()[1]).toFixed(3)\n\t\t}\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/plot/ruler/vert/vert.view.css\",\n \"[mol_plot_ruler_vert_label] {\\n\\ttransform: translateY( 4px );\\n}\\n\"\n) }","$mol_plot_ruler_hor $mol_plot_ruler\n\ttitle_align \\start\n\tlabel_align \\middle\n\ttitle_pos_x \\0\n\ttitle_pos_y \\100%\n\tlabel_pos_y* <= title_pos_y\n\tbackground_width \\100%\n","namespace $.$$ {\n\texport class $mol_plot_ruler_hor extends $.$mol_plot_ruler_hor {\n\t\tdimensions_axis() {\n\t\t\treturn this.dimensions_pane().x\n\t\t}\n\n\t\tviewport_axis() {\n\t\t\treturn new this.$.$mol_vector_range(0, this.size_real().x)\n\t\t}\n\n\t\tscale_axis() {\n\t\t\treturn this.scale()[0]\n\t\t}\n\n\t\tscale_step() {\n\t\t\treturn this.scale()[0]\n\t\t}\n\n\t\tshift_axis() {\n\t\t\treturn this.shift()[0]\n\t\t}\n\t\t\n\t\tcurve() {\n\t\t\tconst [shift] = this.shift()\n\t\t\tconst [scale] = this.scale()\n\n\t\t\treturn this.axis_points().map( point => {\n\t\t\t\tlet scaled = Math.round( point * scale + shift )\n\t\t\t\tscaled = Math.max( Number.MIN_SAFE_INTEGER, Math.min( scaled, Number.MAX_SAFE_INTEGER ) )\n\t\t\t\treturn `M ${ scaled } 1000 V 0`\n\t\t\t}).join( ' ' )\n\t\t}\n\n\t\tlabel_pos_x( index : number ) {\n\t\t\treturn (this.axis_points()[index] * this.scale()[0] + this.shift()[0]).toFixed(3)\n\t\t}\n\n\t\tbackground_y() {\n\t\t\treturn String(this.size_real()[1] - this.font_size())\n\t\t}\n\n\t\ttitle_pos_y() {\n\t\t\treturn String(this.size_real()[1])\n\t\t}\n\n\t\tbackground_height() {\n\t\t\treturn String(this.font_size())\n\t\t}\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/plot/ruler/hor/hor.view.css\",\n \"[mol_plot_ruler_hor_label] {\\n\\ttransform: translateY( -4px );\\n}\\n\\n[mol_plot_ruler_hor_title] {\\n\\ttransform: translateY( -4px );\\n}\\n\"\n) }","$mol_svg_text_box $mol_svg_group\n\tfont_size 16\n\twidth 0\n\tsub /\n\t\t<= Back $mol_svg_rect\n\t\t\twidth <= box_width \\0.5rem\n\t\t\theight <= box_height \\1rem\n\t\t\tpos /\n\t\t\t\t<= box_pos_x <= pos_x\n\t\t\t\t<= box_pos_y \\0\n\t\t<= Text $mol_svg_text\n\t\t\tpos /\n\t\t\t\t<= pos_x \\0\n\t\t\t\t<= pos_y \\100%\n\t\t\talign <= align \\start\n\t\t\tsub /\n\t\t\t\t<= text \\\n","namespace $ {\n\n\tlet canvas : CanvasRenderingContext2D\n\n\texport function $mol_font_canvas( next = canvas ) {\n\t\tif( !next ) next = $mol_dom_context.document.createElement( 'canvas' ).getContext( '2d' )!\n\t\treturn canvas = next\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_font_measure( font: string, text: string ) {\n\t\tconst canvas = $mol_font_canvas()\n\t\tcanvas.font = font\n\t\treturn canvas.measureText( text ).width\n\t}\n\n}\n","namespace $.$$ {\n\texport class $mol_svg_text_box extends $.$mol_svg_text_box {\n\n\t\tbox_width() {\n\t\t\treturn `${ this.width() }px`\n\t\t}\n\n\t\t@ $mol_mem\n\t\twidth() {\n\t\t\treturn $mol_font_measure(\n\t\t\t\tthis.font_size() + 'px ' + this.font_family(),\n\t\t\t\tthis.text(),\n\t\t\t)\n\t\t}\n\n\t\tbox_pos_x() {\n\t\t\tconst align = this.align()\n\t\t\tif (align === 'end') return `calc(${this.pos_x()} - ${this.width()})`\n\t\t\tif (align === 'middle') return `calc(${this.pos_x()} - ${Math.round(this.width() / 2)})`\n\n\t\t\treturn this.pos_x()\n\t\t}\n\n\t\tbox_pos_y() {\n\t\t\treturn `calc(${this.pos_y()} - ${this.font_size() - 2})`\n\t\t}\n\t}\n\t\n}\n","namespace $ { $mol_style_attach( \"mol/svg/text/box/box.view.css\",\n \"[mol_svg_text_box_back] {\\n\\tstroke: none;\\n\\tfill: var(--mol_theme_back);\\n\\ttransition: none;\\n}\\n\"\n) }","$mol_plot_mark_cross $mol_plot_graph\n\tlabels /string\n\ttitle_x_gap 4\n\ttitle_y_gap 22\n\tthreshold 16\n\tgraphs /$mol_plot_graph\n\tdimensions $mol_vector_2d<$mol_vector_range<number>> /\n\t\t<= dimensions_x $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\t\t<= dimensions_y $mol_vector_range<number> /\n\t\t\tInfinity\n\t\t\t-Infinity\n\tsub /\n\t\t<= Curve $mol_svg_path\n\t\t\tgeometry <= curve \\\n\t\t<= Label_x $mol_svg_text_box\n\t\t\tpos_x <= title_x_pos_x \\0\n\t\t\tpos_y <= title_x_pos_y \\100%\n\t\t\ttext <= title_x \\\n\t\t<= Label_y $mol_svg_text_box\n\t\t\tpos_x <= title_y_pos_x \\0\n\t\t\tpos_y <= title_y_pos_y \\0\n\t\t\ttext <= title_y \\\n","namespace $.$$ {\n\texport class $mol_plot_mark_cross extends $.$mol_plot_mark_cross {\n\n\t\t@$mol_mem\n\t\tnearest() {\n\t\t\tlet delta = this.threshold() ** 2\n\t\t\tconst [cursor_x, cursor_y] = this.cursor_position()\n\t\t\tif (Number.isNaN(cursor_x) || Number.isNaN(cursor_y)) return null\n\t\t\tconst graphs = this.graphs()\n\t\t\tlet index: number = 0\n\t\t\tlet graph: $.$mol_plot_graph = null as any\n\t\t\tconst [shift_x, shift_y] = this.shift()\n\t\t\tconst [scale_x, scale_y] = this.scale()\n\t\t\tfor (let current of graphs) {\n\t\t\t\tconst indexes = current.indexes()\n\t\t\t\tconst series_x = current.series_x()\n\t\t\t\tconst series_y = current.series_y()\n\t\n\t\t\t\tfor (let i of indexes) {\n\t\t\t\t\tconst point_x = shift_x + series_x[i] * scale_x\n\t\t\t\t\tconst point_y = shift_y + series_y[i] * scale_y\n\t\t\t\t\tconst diff = (point_x - cursor_x) ** 2 + (point_y - cursor_y) ** 2\n\t\t\t\t\tif (diff < delta) {\n\t\t\t\t\t\tdelta = diff\n\t\t\t\t\t\tindex = i\n\t\t\t\t\t\tgraph = current\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!graph) return null\n\n\t\t\tconst value = new $mol_vector_2d(graph.series_x()[index], graph.series_y()[index])\n\t\t\tconst scaled = new $mol_vector_2d(shift_x + value.x * scale_x, shift_y + value.y * scale_y)\n\n\t\t\treturn {value, scaled, index}\n\t\t}\n\n\t\tcurve() {\n\t\t\tconst nearest = this.nearest()\n\t\t\tif (!nearest) return ''\n\t\t\treturn `M ${nearest.scaled.x.toFixed(3)} 1000 V 0 M 0 ${nearest.scaled.y.toFixed(3)} H 2000`\n\t\t}\n\n\t\ttitle_x() {\n\t\t\tconst nearest = this.nearest()\n\t\t\tif (!nearest) return ''\n\n\t\t\tconst labels = this.labels()\n\n\t\t\tif (labels.length > nearest.index) return labels[nearest.index]\n\n\t\t\treturn String(nearest.value.x)\n\t\t}\n\n\t\ttitle_x_pos_x() {\n\t\t\tconst nearest = this.nearest()\n\t\t\tif (!nearest) return '0'\n\t\t\tconst width = this.Label_x().width()\n\n\t\t\treturn (nearest.scaled.x - width / 2).toFixed(3)\n\t\t}\n\n\t\ttitle_x_pos_y() {\n\t\t\tconst nearest = this.nearest()\n\t\t\tif (!nearest) return '0'\n\n\t\t\tconst pos = this.size_real().y - this.title_x_gap()\n\n\t\t\treturn pos.toFixed(3)\n\t\t}\n\n\t\ttitle_y() {\n\t\t\tconst nearest = this.nearest()\n\t\t\tif (!nearest) return ''\n\n\t\t\treturn String(nearest.value.y)\n\t\t}\n\n\t\ttitle_y_pos_y() {\n\t\t\tconst nearest = this.nearest()\n\t\t\tif (!nearest) return '0'\n\n\t\t\treturn nearest.scaled.y.toFixed(3)\n\t\t}\n\n\t\ttitle_y_pos_x() {\n\t\t\tconst nearest = this.nearest()\n\t\t\tif (!nearest) return '0'\n\n\t\t\tconst pos = this.title_y_gap()\n\n\t\t\treturn pos.toFixed(3)\n\t\t}\n\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/plot/mark/cross/cross.view.css\",\n \"[mol_plot_mark_cross_curve] {\\n\\tcolor: var(--mol_theme_focus);\\n\\tstroke-width: 1px;\\n\\tstroke: currentColor;\\n\\tpointer-events: none;\\n}\\n\\n[mol_plot_mark_cross_label_x], [mol_plot_mark_cross_label_y] {\\n\\tcolor: var(--mol_theme_focus);\\n\\tpointer-events: none;\\n}\\n\\n[mol_plot_mark_cross_label_y] {\\n\\ttransform: translateY( 4px );\\n}\\n\"\n) }","$mol_plot_mark_hor $mol_plot_ruler_hor\n\tlabels /string\n","namespace $.$$ {\n\texport class $mol_plot_mark_hor extends $.$mol_plot_mark_hor {\n\t\t@ $mol_mem\n\t\tseries_x(): readonly number[] {\n\t\t\treturn this.labels().map((val, index) => index)\n\t\t}\n\n\t\t@ $mol_mem\n\t\tlabels() {\n\t\t\treturn this.series_x().map(val => String(val)) as readonly string[]\n\t\t}\n\n\t\t@ $mol_mem\n\t\tvisible_indexes() {\n\t\t\tconst series_x = this.series_x()\n\t\t\tconst labels = this.labels()\n\t\t\tconst [shift_x,] = this.shift()\n\t\t\tconst [scale_x,] = this.scale()\n\t\t\tlet step = this.step() * scale_x\n\t\t\tconst [[viewport_left, viewport_right]] = this.viewport()\n\t\t\tconst size_x = viewport_right - viewport_left\n\t\t\tconst font_size = this.font_size()\n\t\t\tlet indexes: number[]\n\t\t\tlet labels_width: number\n\t\t\tdo {\n\t\t\t\tindexes = []\n\t\t\t\tlabels_width = 0\n\t\t\t\tlet last: number = 0\n\t\t\t\tlet current = 0\n\t\t\t\tfor (let i = 0; i < series_x.length; i++) {\n\t\t\t\t\tconst point_x = series_x[i]\n\t\t\t\t\tconst scaled_x = (shift_x + point_x * scale_x)\n\t\t\t\t\tif (scaled_x < viewport_left) continue\n\t\t\t\t\tif (scaled_x > viewport_right) continue\n\t\t\t\t\tif (current === 0) current = scaled_x\n\t\t\t\t\tif (scaled_x < current) {\n\t\t\t\t\t\tlast = i\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tindexes.push(i)\n\t\t\t\t\tcurrent += step\n\t\t\t\t\tlast = 0\n\t\t\t\t\tlabels_width += font_size * (labels[i].length + 1)\n\t\t\t\t\tif (labels_width > size_x) break\n\t\t\t\t}\n\t\t\t\tif (last !== 0) {\n\t\t\t\t\tindexes.push(last)\n\t\t\t\t\tlabels_width += font_size * (labels[last].length + 1)\n\t\t\t\t}\n\n\t\t\t\tstep *= 1.5\n\t\t\t} while (labels_width > size_x && indexes.length > 2)\n\n\t\t\treturn indexes\n\n\t\t}\n\n\t\tcurve() {\n\t\t\tconst [shift] = this.shift()\n\t\t\tconst [scale] = this.scale()\n\t\t\tconst series_x = this.series_x()\n\n\t\t\treturn this.visible_indexes().map( index => {\n\t\t\t\tconst scaled = series_x[index] * scale + shift\n\t\t\t\treturn `M ${ scaled.toFixed(3) } 1000 V 0`\n\t\t\t}).join( ' ' )\n\t\t}\n\n\t\tlabel_text( index : number ) {\n\t\t\treturn this.labels()[index]\n\t\t}\n\n\t\tlabels_formatted() {\n\t\t\treturn this.visible_indexes().map( index => this.Label( index ) )\n\t\t}\n\n\t\tlabel_pos_x( index : number ) {\n\t\t\treturn (this.series_x()[index] * this.scale()[0] + this.shift()[0]).toFixed(3)\n\t\t}\n\n\t\tlabel_pos_y( index : number ) {\n\t\t\treturn this.title_pos_y()\n\t\t}\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/plot/mark/hor/hor.view.css\",\n \"[mol_plot_mark_hor_curve] {\\n\\tcolor: var(--mol_theme_line);\\n\\tstroke-width: .1%;\\n\\tstroke: currentColor;\\n\\tpointer-events: none;\\n}\\n\\n[mol_plot_mark_hor_label] {\\n\\tcolor: var(--mol_theme_text);\\n\\ttransform: translateY( -4px );\\n}\\n\\n[mol_plot_mark_hor_title] {\\n\\tcolor: var(--mol_theme_shade);\\n\\ttransform: translateY( -4px );\\n}\\n\"\n) }"]}