{"version":3,"sources":["webpack:///webpack/bootstrap ca4a3b8b4b761271deb4","webpack:///./packages/rax/lib/vdom/host.js","webpack:///./packages/rax/lib/vdom/instance.js","webpack:///./packages/runtime-shared/lib/symbol.js","webpack:///./packages/rax/lib/vdom/instantiateComponent.js","webpack:///./packages/universal-env/lib/index.js","webpack:///./packages/rax/lib/vdom/shouldUpdateComponent.js","webpack:///./packages/rax/lib/component.js","webpack:///./packages/runtime-shared/lib/url-search-params.js","webpack:///./packages/rax/lib/debug/hook.js","webpack:///./packages/rax/lib/element.js","webpack:///./packages/rax/lib/unmountComponentAtNode.js","webpack:///./packages/rax/lib/vdom/native.js","webpack:///./packages/rax/lib/vdom/ref.js","webpack:///./packages/rax/lib/vdom/getElementKeyName.js","webpack:///./packages/style-unit/lib/index.js","webpack:///./packages/driver-weex/lib/parseProps.js","webpack:///./packages/rax/lib/findDOMNode.js","webpack:///./packages/web-rax-framework/src/index.js","webpack:///./packages/runtime-shared/lib/index.js","webpack:///./packages/runtime-shared/lib/promise.js","webpack:///./packages/runtime-shared/lib/map.js","webpack:///./packages/runtime-shared/lib/set.js","webpack:///./packages/runtime-shared/lib/weakmap.js","webpack:///./packages/runtime-shared/lib/weakset.js","webpack:///./packages/runtime-shared/lib/fontface.js","webpack:///./packages/runtime-shared/lib/url.js","webpack:///./packages/runtime-shared/lib/matchMedia.js","webpack:///./packages/web-rax-framework/src/object.js","webpack:///./packages/web-rax-framework/src/array.js","webpack:///./packages/web-rax-framework/node_modules/.npminstall/whatwg-fetch/2.0.3/whatwg-fetch/fetch.js","webpack:///./packages/web-rax-framework/node_modules/.npminstall/raf/3.3.2/raf/polyfill.js","webpack:///./packages/web-rax-framework/node_modules/.npminstall/raf/3.3.2/raf/index.js","webpack:///./packages/web-rax-framework/node_modules/.npminstall/performance-now/2.1.0/performance-now/lib/performance-now.js","webpack:///./packages/web-rax-framework/src/require.js","webpack:///./packages/web-rax-framework/src/appear.js","webpack:///./packages/web-rax-framework/src/appearRegistry.js","webpack:///./packages/rax/lib/index.js","webpack:///./packages/rax/lib/debug/devtools.js","webpack:///./packages/rax/lib/flattenChildren.js","webpack:///./packages/rax/lib/vdom/root.js","webpack:///./packages/rax/lib/purecomponent.js","webpack:///./packages/rax/lib/proptypes.js","webpack:///./packages/rax/lib/render.js","webpack:///./packages/rax/lib/inject.js","webpack:///./packages/rax/lib/vdom/empty.js","webpack:///./packages/rax/lib/vdom/text.js","webpack:///./packages/rax/lib/vdom/composite.js","webpack:///./packages/rax/lib/vdom/stateless.js","webpack:///./packages/rax/lib/vdom/updater.js","webpack:///./packages/rax/lib/vdom/shallowEqual.js","webpack:///./packages/rax/lib/vdom/fragment.js","webpack:///./packages/driver-weex/lib/index.js","webpack:///./packages/driver-weex/lib/elements/index.js","webpack:///./packages/driver-weex/lib/elements/img.js","webpack:///./packages/driver-weex/lib/elements/video.js","webpack:///./packages/driver-weex/lib/elements/textarea.js","webpack:///./packages/driver-weex/lib/elements/span.js","webpack:///./packages/driver-weex/lib/elements/p.js","webpack:///./packages/driver-weex/lib/elements/button.js","webpack:///./packages/driver-weex/lib/elements/heading.js","webpack:///./packages/driver-weex/lib/elements/block.js","webpack:///./packages/driver-browser/lib/index.js","webpack:///./packages/driver-browser/lib/flexbox.js","webpack:///./packages/rax/lib/findComponentInstance.js","webpack:///./packages/rax/lib/setNativeProps.js","webpack:///./packages/rax/lib/version.js"],"names":["Object","defineProperty","exports","value","default","component","mountID","sandbox","rootComponents","rootInstances","hook","driver","monitor","module","_host","require","_host2","_interopRequireDefault","_element","_unmountComponentAtNode","_unmountComponentAtNode2","_instantiateComponent","_instantiateComponent2","_shouldUpdateComponent","_shouldUpdateComponent2","_root","_root2","_universalEnv","obj","__esModule","_toConsumableArray","arr","Array","isArray","i","arr2","length","from","KEY","set","node","instance","rootID","_internal","get","remove","render","element","container","measurer","beforeRender","createBody","prevRootInstance","hasPrevRootInstance","isRootComponent","prevRenderedComponent","getRenderedComponent","prevElement","_currentElement","prevUnmaskedContext","_context","updateComponent","Reconciler","unmountComponent","isWeb","childNodes","concat","rootChildNode","hasAttribute","removeChild","wrappedElement","createElement","renderedComponent","defaultContext","rootInstance","mountComponent","afterRender","Mount","_renderNewRootComponent","_typeof","Symbol","iterator","constructor","prototype","defineProperties","SymbolPolyfill","HiddenSymbol","globalSymbols","create","isSymbol","x","name","toStringTag","validateSymbol","TypeError","generateName","created","desc","postfix","_Symbol","description","_Symbol2","symbol","undefined","String","__description__","__name__","for","key","keyFor","s","hasInstance","isConcatSpreadable","match","replace","search","species","split","toPrimitive","unscopables","toString","valueOf","instantiateComponent","EmptyComponent","FragmentComponent","type","NativeComponent","CompositeComponent","TextComponent","Error","JSON","stringify","_mountIndex","navigator","appCodeName","product","isNode","process","versions","isWeex","callNative","isReactNative","__fbBatchedBridgeConfig","shouldUpdateComponent","nextElement","prevEmpty","nextEmpty","prevType","nextType","_createClass","target","props","descriptor","enumerable","configurable","writable","Constructor","protoProps","staticProps","_classCallCheck","Component","context","updater","refs","isComponentClass","setState","partialState","callback","forceUpdate","_symbol","_symbol2","find","plus","replacer","secret","encode","str","encodeURIComponent","decode","decodeURIComponent","URLSearchParams","query","charAt","slice","index","pairs","indexOf","append","dict","push","_delete","getAll","has","forEach","thisArg","getOwnPropertyNames","call","keys","items","next","shift","done","values","entries","join","_instance","_instance2","ComponentTree","getClosestInstanceFromNode","getNodeFromInstance","inst","_renderedComponent","_nativeNode","_instancesByReactRootID","receiveComponent","createFactory","cloneElement","isValidElement","_flattenChildren","_flattenChildren2","RESERVED_PROPS","ref","getRenderErrorInfo","getName","Element","owner","filterProps","_owner","flattenStyle","style","result","computedStyle","children","map","val","config","propName","hasOwnProperty","_len","arguments","_key","defaultProps","factory","bind","assign","_len2","_key2","object","unmountComponentAtNode","_ref","_ref2","_getElementKeyName","_getElementKeyName2","STYLE","CHILDREN","TREE","EVENT_PREFIX_REGEXP","parent","parentInstance","childMounter","_parent","_parentInstance","_mountID","appendType","_prevStyleCopy","nativeNode","getNativeNode","appendChild","attach","mountChildren","_this","renderedChildren","_renderedChildren","renderedChildrenImage","renderedChild","mountImage","unmountChildren","notRemoveChild","detach","removeAllEventListeners","prevContext","nextContext","update","prevProps","nextProps","updateProperties","updateChildren","propKey","styleName","styleUpdates","lastStyle","test","removeEventListener","toLowerCase","removeAttribute","nextProp","prevProp","addEventListener","payload","setAttribute","recordOperation","instanceID","setStyles","nextChildrenElements","_this2","prevChildren","nextChildren","oldNodes","prevChild","oldNativeNode","firstPrevChild","delayRemoveFirstPrevChild","_name","_prevChild","shouldRemove","lastIndex","nextIndex","lastPlacedNode","nextNativeNode","_loop","_name2","nextChild","prevChildNativeNode","_i","insertAfter","Math","max","newChild","oldChild","lastNewChild","_i2","child","replaceChild","_i3","prevFirstNativeNode","_i4","_child","insertBefore","_ret2","splice","getPublicInstance","prevRef","nextRef","ownerComponent","elementKey","hasKey","defaultName","keyName","keyUnique","console","warn","isRem","calcRem","getRem","setRem","isUnitNumber","convertUnit","UNITLESS_NUMBER_PROPS","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridColumn","fontWeight","lineClamp","opacity","order","orphans","tabSize","widows","zIndex","zoom","lines","SUFFIX","REM_REG","defaultRemUnit","remUnit","rem","parseFloat","prop","transformPropsAttrsToStyle","renamePropsAttr","attrs","attr","originalAttrName","newAttrName","findDOMNode","ownerDocument","nodeType","getElementById","internal","global","window","shared","Promise","Map","Set","WeakMap","WeakSet","FontFace","matchMedia","URL","document","fonts","add","fontFace","fontFaceRule","family","source","styleElement","innerHTML","head","define","req","noop","asap","setImmediate","fn","setTimeout","onUnhandledRejection","err","log","apply","_state","_handled","_value","_deferreds","doResolve","handle","self","deferred","cb","onFulfilled","onRejected","resolve","reject","promise","ret","e","newValue","then","finale","len","Handler","reason","ex","catch","prom","all","args","remaining","res","race","_setImmediateFn","_setUnhandledRejectionFn","undefMarker","NaNMarker","ACCESSOR_SUPPORT","encodeKey","Number","isNaN","decodeKey","encodedKey","NaN","makeIterator","mapInst","getter","nextIdx","_keys","calcSize","size","hasProtoMethod","method","data","_values","item","idx","delete","clear","callbackFn","encodeVal","decodeVal","encodedData","setInst","counter","Date","now","random","entry","relative","ftp","file","gopher","http","https","ws","wss","relativePathDotMapping","isRelativeScheme","scheme","invalid","_isInvalid","IDNAToASCII","h","percentEscape","c","unicode","charCodeAt","percentEscapeQuery","EOF","ALPHA","ALPHANUMERIC","parse","input","stateOverride","base","message","errors","state","cursor","buffer","seenAt","seenBracket","loop","_scheme","_isRelative","_fragment","_schemeData","_port","_path","_query","_username","_password","nextC","nextNextC","pop","cp","tempC","temp","parseInt","tmp","url","_url","href","authority","protocol","host","pathname","hostname","port","searchParams","hash","origin","RE_MEDIA_QUERY","RE_MQ_EXPRESSION","RE_MQ_FEATURE","_matches","media","_parseQuery","some","inverse","typeMatch","expressionsMatch","expressions","every","expression","feature","modifier","expValue","trim","captures","SyntaxError","parsed","mql","matches","width","screen","height","sources","nextSource","descriptors","property","setPrototypeOf","magic","O","proto","getOwnPropertyDescriptor","__proto__","polyfill","is","y","toStr","isCallable","toInteger","number","isFinite","floor","abs","maxSafeInteger","pow","toLength","min","arrayLike","C","mapFn","T","A","k","kValue","modules","inGuard","def","id","deps","Function","isInitialized","hasError","originId","mod","requireImpl","ErrorUtils","returnValue","reportFatalError","appear","instances","createEvent","injectEventListenerHook","control","nativeAddEventListener","Node","nativeRemoveEventListener","eventName","eventHandler","useCapture","isNotWatch","lowerCaseEventName","check","__handle","appearWatchElements","getOffset","pushElement","offsetTop","appearEvt","disappearEvt","_appearDoms","AppearRegistry","initEvent","elements","current","options","wait","cls","once","onReset","onAppear","onDisappear","initConfig","opts","extend","getElements","bindEvent","el","offset","getBoundingClientRect","top","right","bottom","left","raf","calculate","containerOffset","isOnce","ev","ele","_hasAppear","checkEveryDom","cacheAppearEvt","cacheDisappearEvt","pos","eleOffset","direction","getDirection","_eleOffset","isInView","inViewport","_appear","_hasDisAppear","dispatchEvent","throttle","beforeOffset","nowOffset","horizental","vertical","requestAnimationFrame","webkitRequestAnimationFrame","timeout","previous","later","clearTimeout","param","l","r","b","t","innerWidth","innerHeight","appended","Boolean","getAttribute","version","setNativeProps","findComponentInstance","PropTypes","PureComponent","_component","_component2","_purecomponent","_purecomponent2","_proptypes","_proptypes2","_render2","_render3","_findDOMNode2","_findDOMNode3","_unmountComponentAtNode3","_findComponentInstance2","_findComponentInstance3","_setNativeProps2","_setNativeProps3","_version2","_version3","_hook","_hook2","__REACT_DEVTOOLS_GLOBAL_HOOK__","inject","flattenChildren","traverseChildren","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","rootCounter","Root","_Component","_temp","_ret","getPrototypeOf","isPureComponentClass","createChainableTypeChecker","validate","checkType","isRequired","componentName","location","propFullName","typeChecker","chainedCheckType","createTypeChecker","expectedType","array","bool","func","string","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType","shape","_inject","_inject2","rootComponent","_empty","_empty2","_native","_native2","_text","_text2","_composite","_composite2","_fragment2","_driverWeex","_driverWeex2","_driverBrowser","_driverBrowser2","deviceWidth","viewportWidth","setDeviceWidth","setViewportWidth","createEmpty","_stringText","updateText","createText","_stateless","_stateless2","_updater","_updater2","_shallowEqual","_shallowEqual2","performInSandbox","handleError","error","boundary","componentDidCatch","measureLifeCycle","beforeLifeCycle","afterLifeCycle","displayName","_updateCount","beforeMountComponent","publicProps","isClass","isStatelessClass","publicContext","_processContext","renderedElement","initialState","errorCallback","componentWillMount","_processPendingState","_processChildContext","componentDidMount","afterMountComponent","componentWillUnmount","_pendingStateQueue","_pendingForceUpdate","contextTypes","maskedContext","contextName","currentContext","childContext","getChildContext","queue","nextState","partial","nextUnmaskedContext","beforeUpdateComponent","willReceive","hasReceived","componentWillReceiveProps","_pendingState","shouldUpdate","prevState","shouldComponentUpdate","componentWillUpdate","_updateRenderedComponent","componentDidUpdate","callbacks","_pendingCallbacks","runCallbacks","afterUpdateComponent","prevRenderedElement","nextRenderedElement","StatelessComponent","pureRender","enqueueCallback","callbackQueue","enqueueState","stateQueue","Updater","runUpdate","shallowEqual","objA","objB","keysA","keysB","_NativeComponent","fragment","isFragmentParent","_styleUnit","_elements","_elements2","ID","TEXT","ARIA_PREFIX_REGEXP","nodeMaps","__weex_document__","Driver","getDeviceWidth","getViewportWidth","body","documentElement","createComment","content","text","htmlElement","events","originStyle","parentNode","previousSibling","nextSibling","after","before","addEvent","removeEvent","propValue","setAttr","m","p1","toUpperCase","styles","setStyle","open","listener","createFinish","close","skipSetStyles","_img","_img2","_video","_video2","_textarea","_textarea2","_span","_span2","_p","_p2","_button","_button2","_heading","_heading2","_block","_block2","span","p","img","button","video","textarea","h1","h2","h3","h4","h5","h6","nav","article","section","footer","aside","main","_parseProps","_extends","BASE_FONT_SIZE","defaultParagraphStyle","fontSize","marginTop","marginBottom","TypographyElements","u","textDecoration","fontStyle","del","em","strong","big","small","transformString","transformChild","nestedChildren","transformChildren","disabled","textStyle","textAlign","paddingTop","paddingRight","paddingBottom","paddingLeft","borderWidth","borderStyle","borderColor","backgroudColor","onClick","color","generateHeadingStyle","baseFontSize","fontMultiplier","marginMultiplier","HeadingElements","_flexbox","_flexbox2","DANGEROUSLY_SET_INNER_HTML","CLASS_NAME","CLASS","DEVICE_WIDTH","VIEWPORT_WIDTH","clientWidth","createTextNode","textContentAttr","__html","tranformedStyles","isFlexProp","_prop","transformValue","BOX_ALIGN","stretch","center","BOX_ORIENT","row","column","BOX_PACK","FLEX_PROPS","display","alignItems","alignSelf","flexDirection","justifyContent","flexWrap","Flexbox","webkitBoxFlex","webkitFlex","webkitBoxAlign","webkitAlignItems","webkitAlignSelf","webkitBoxOrient","webkitFlexDirection","webkitBoxPack","webkitJustifyContent","_findDOMNode"],"mappings":"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AAIqK,IAAI,CAAR;AACA;AACA,UAAIC,MAAJ;AACA,aAAOD,IAAIrK,GAAX,EAAgB;AACdsK,iBAASra,MAAMoa,CAAN,CAAT;AACA,YAAIH,KAAJ,EAAW;AACTE,YAAEC,CAAF,IAAO,OAAOF,CAAP,KAAa,WAAb,GAA2BD,MAAMI,MAAN,EAAcD,CAAd,CAA3B,GAA8CH,MAAMna,IAAN,CAAWoa,CAAX,EAAcG,MAAd,EAAsBD,CAAtB,CAArD;AACD,SAFD,MAEO;AACLD,YAAEC,CAAF,IAAOC,MAAP;AACD;AACDD,aAAK,CAAL;AACD;AACD;AACAD,QAAErkB,MAAF,GAAWia,GAAX;AACA;AACA,aAAOoK,CAAP;AACD,KAtDD;AAuDD,GA7Ea,EAAd;AA8ED,C;;;;;;ACjFD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,mBAAmB;AAC3D;AACA;;AAEA;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;;AAEA;AACA;AACA,wCAAwC,4BAA4B;AACpE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD,SAAS;AACT;AACA,SAAS;AACT,8EAA8E;AAC9E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,uBAAuB;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,uCAAuC,0BAA0B;AACjE;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B,0BAA0B,eAAe;AACxE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA,KAAK;AACL;AACA;AACA,CAAC;;;;;;;AC5cD;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,4BAA4B;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA,aAAa;AACb,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;;;;;;;;;;;;ACnCA,CAAC,UAASvN,MAAT,EAAiB;AAChB,MAAIA,OAAOqB,MAAX,EAAmB;AACjB;AACD;;AAED;AACA,MAAIqM,UAAU,EAAd;AACA,MAAIC,UAAU,KAAd;;AAEA,WAASC,GAAT,CAAaC,EAAb,EAAiBC,IAAjB,EAAuB9X,OAAvB,EAAgC;AAC9B,QAAI8X,gBAAgBC,QAApB,EAA8B;AAC5B/X,gBAAU8X,IAAV;AACAA,aAAO,EAAP;AACD;;AAEDJ,YAAQG,EAAR,IAAc;AACZ7X,eAASA,OADG;AAEZ8X,YAAMA,IAFM;AAGZnmB,cAAQ,EAACX,SAAS,EAAV,EAHI;AAIZgnB,qBAAe,KAJH;AAKZC,gBAAU;AALE,KAAd;AAOD;;AAED,WAAS3M,GAAT,CAAauM,EAAb,EAAiB;AACf;AACA,QAAIA,GAAGrb,OAAH,CAAW,cAAX,MAA+B,CAAnC,EAAsC;AACpC,aAAO,EAAP;AACD;;AAED,QAAI0b,WAAWL,EAAf;AACA,QAAIM,MAAMT,QAAQG,EAAR,CAAV;AACA;AACA,QAAI,CAACM,GAAL,EAAU;AACRN,WAAKA,KAAK,QAAV;AACAM,YAAMT,QAAQG,EAAR,CAAN;AACD;;AAED,QAAIM,OAAOA,IAAIH,aAAf,EAA8B;AAC5B,aAAOG,IAAIxmB,MAAJ,CAAWX,OAAlB;AACD;;AAED,WAAOonB,YAAYP,EAAZ,EAAgBK,QAAhB,CAAP;AACD;;AAED,WAASE,WAAT,CAAqBP,EAArB,EAAyBK,QAAzB,EAAmC;AACjC,QAAIlO,OAAOqO,UAAP,IAAqB,CAACV,OAA1B,EAAmC;AACjCA,gBAAU,IAAV;AACA,UAAIW,WAAJ;AACA,UAAI;AACFA,sBAAcF,YAAYrM,KAAZ,CAAkB,IAAlB,EAAwBlM,SAAxB,CAAd;AACD,OAFD,CAEE,OAAOkN,CAAP,EAAU;AACV/C,eAAOqO,UAAP,CAAkBE,gBAAlB,CAAmCxL,CAAnC;AACD;AACD4K,gBAAU,KAAV;AACA,aAAOW,WAAP;AACD;;AAED,QAAIH,MAAMT,QAAQG,EAAR,CAAV;AACA,QAAI,CAACM,GAAL,EAAU;AACR,YAAM,IAAIpf,KAAJ,CACJ,+BAA+Bmf,QAA/B,GAA0C,GADtC,CAAN;AAGD;;AAED,QAAIC,IAAIF,QAAR,EAAkB;AAChB,YAAM,IAAIlf,KAAJ,CACJ,uBAAuBmf,QAAvB,GAAkC,4BAD9B,CAAN;AAGD;;AAED,QAAI;AACF;AACA;AACAC,UAAIH,aAAJ,GAAoB,IAApB;;AAEA;AACA;AACAG,UAAInY,OAAJ,CAAYsL,GAAZ,EAAiB6M,IAAIxmB,MAAJ,CAAWX,OAA5B,EAAqCmnB,IAAIxmB,MAAzC;AACD,KARD,CAQE,OAAOob,CAAP,EAAU;AACVoL,UAAIF,QAAJ,GAAe,IAAf;AACAE,UAAIH,aAAJ,GAAoB,KAApB;AACA,YAAMjL,CAAN;AACD;;AAED,WAAOoL,IAAIxmB,MAAJ,CAAWX,OAAlB;AACD;;AAEDgZ,SAAOqB,MAAP,GAAgBuM,GAAhB;AACA5N,SAAOnY,OAAP,GAAiByZ,GAAjB;AACD,CA1FD,EA0FG,aAAQ,QAAOtB,MAAP,yCAAOA,MAAP,OAAkB,QAAlB,IAA8BA,MAAtC,IAAgD,QAAOC,MAAP,yCAAOA,MAAP,OAAkB,QAAlB,IAA8BA,MA1FjF,E;;;;;;;;;;;;;ACAA;;;;;;AAEA,IAAI1W,WAAW,IAAf;;AAEA,IAAMilB,SAAS,SAATA,MAAS,GAAM;AACnB,MAAIC,YAAY,EAAhB;;AAEA,2BAASC,WAAT;AACAC,0BAAwBF,SAAxB;;AAEAllB,aAAW,6BAAa;AACtBO,eAAWmW;AADW,GAAb,CAAX;AAGAwO,YAAU9b,IAAV,CAAepJ,QAAf;;AAEA,MAAIqlB,UAAU;AACZnZ;AADY,GAAd;;AAIA,SAAOmZ,OAAP;AACD,CAhBD;;AAmBA;AACA,IAAMD,0BAA0B,SAA1BA,uBAA0B,CAACF,SAAD,EAAe;AAC7C,MAAII,yBAAyBC,KAAK7iB,SAAL,CAAesN,gBAA5C;AACA,MAAIwV,4BAA4BD,KAAK7iB,SAAL,CAAeiN,mBAA/C;;AAEA4V,OAAK7iB,SAAL,CAAesN,gBAAf,GAAkC,UAASyV,SAAT,EAAoBC,YAApB,EAAkCC,UAAlC,EAA8CC,UAA9C,EAA0D;AAC1F,QAAIC,qBAAqBJ,UAAU7V,WAAV,EAAzB;AACA,QAAIiW,uBAAuB,QAAvB,IAAmCA,uBAAuB,WAA9D,EAA2E;AACzE,uCAAY,IAAZ;AACD;;AAED,QAAI7lB,QAAJ,EAAc;AACZA,eAAS8lB,KAAT;AACD;;AAED,QAAID,uBAAuB,QAAvB,IAAmC,CAACD,UAAxC,EAAoD;AAClD5lB,iBAAW,6BAAa;AACtBO,mBAAW;AADW,OAAb,CAAX;AAGA2kB,gBAAU9b,IAAV,CAAepJ,QAAf;AACD;AACDslB,2BAAuB3b,IAAvB,CAA4B,IAA5B,EAAkC8b,SAAlC,EAA6CC,YAA7C,EAA2DC,UAA3D;AACD,GAjBD;;AAmBAJ,OAAK7iB,SAAL,CAAeiN,mBAAf,GAAqC,UAAS8V,SAAT,EAAoBC,YAApB,EAAkCC,UAAlC,EAA8CC,UAA9C,EAA0D;AAAA;;AAC7F,QAAIC,qBAAqBJ,UAAU7V,WAAV,EAAzB;;AAEA;AACA,QAAIiW,uBAAuB,QAAvB,IAAmC,CAACD,UAAxC,EAAoD;AAClDV,gBAAU1b,OAAV,CAAkB,UAACxJ,QAAD,EAAW+I,KAAX,EAAqB;AACrC,YAAI/I,SAAS+lB,QAAT,IAAqB/lB,SAASO,SAAT,UAAzB,EAAsD;AACpD,gBAAKoP,mBAAL,CAAyB,QAAzB,EAAmC3P,SAAS+lB,QAA5C,EAAsD,KAAtD,EAA6D,IAA7D;AACA/lB,mBAAS+lB,QAAT,GAAoB,IAApB;AACA/lB,mBAASgmB,mBAAT,GAA+B,EAA/B;AACAhmB,mBAASO,SAAT,GAAqB,IAArB;AACA2kB,oBAAUxS,MAAV,CAAiB3J,KAAjB,EAAwB,CAAxB;AACD;AACF,OARD;AASD;AACDyc,8BAA0B7b,IAA1B,CAA+B,IAA/B,EAAqC8b,SAArC,EAAgDC,YAAhD,EAA8DC,UAA9D;AACD,GAhBD;AAiBD,CAxCD;;kBA0CeV,Q;;;;;;;;;;;;;;;;QC2IC/Y,M,GAAAA,M;QAMA+Z,S,GAAAA,S;QA+BAC,W,GAAAA,W;;;;AAlPhB,IAAIC,YAAY,CAAhB;AACA,IAAIC,kBAAJ;AAAA,IAAeC,qBAAf;AACA,IAAIC,cAAc,EAAlB;;IAEMC,c;;;kCACiB;AACnBH,kBAAYhP,SAAS+N,WAAT,CAAqB,YAArB,CAAZ;AACAkB,qBAAejP,SAAS+N,WAAT,CAAqB,YAArB,CAAf;AACAiB,gBAAUI,SAAV,CAAoB,QAApB,EAA8B,KAA9B,EAAqC,IAArC;AACAH,mBAAaG,SAAb,CAAuB,WAAvB,EAAoC,KAApC,EAA2C,IAA3C;AACD;;;AAED,0BAAYC,QAAZ,EAAsB;AAAA;;AACpB,SAAKC,OAAL,GAAe,EAAf;AACA,SAAKD,QAAL,GAAgBA,QAAhB;;AAEA,SAAKE,OAAL,GAAe;AACbpmB,iBAAWmW,MADE;AAEbkQ,YAAM,GAFO;AAGb3jB,SAAG,CAHU;AAIb+f,SAAG,CAJU;AAKb6D,WAAK,QALQ;AAMbC,YAAM,KANO;AAObC,eAAS,mBAAW,CAAE,CAPT;AAQbC,gBAAU,oBAAW,CAAE,CARV;AASbC,mBAAa,uBAAW,CAAE;AATb,KAAf;AAWA,SAAK1mB,SAAL,GAAiB,IAAjB;AACA,SAAKylB,mBAAL,GAA2B,IAA3B;;AAEA,SAAKkB,UAAL,CAAgB1O,KAAhB,CAAsB,IAAtB,EAA4BlM,SAA5B;AACD;;;;+BAEU6a,I,EAAM;AACf,WAAKC,MAAL,CAAY,KAAKT,OAAjB,EAA0BQ,SAASA,OAAO,EAAhB,CAA1B;AACA,WAAKnB,mBAAL,GAA2B,KAAKA,mBAAL,IAA4B,KAAKqB,WAAL,EAAvD;AACA,WAAKC,SAAL;AACD;;;2BAEMzgB,M,EAAQ0gB,E,EAAI;AACjB,WAAK,IAAItD,CAAT,IAAcsD,EAAd,EAAkB;AAChB,YAAIA,GAAGnb,cAAH,CAAkB6X,CAAlB,CAAJ,EAA0B;AACxBpd,iBAAOod,CAAP,IAAYsD,GAAGtD,CAAH,CAAZ;AACD;AACF;AACD,aAAOpd,MAAP;AACD;;;+BAEUvG,O,EAASknB,M,EAAQpiB,I,EAAM;AAAA,kCACG9E,QAAQmnB,qBAAR,EADH;AAAA,UAC1BC,GAD0B,yBAC1BA,GAD0B;AAAA,UACrBC,KADqB,yBACrBA,KADqB;AAAA,UACdC,MADc,yBACdA,MADc;AAAA,UACNC,IADM,yBACNA,IADM;;AAGhCA,aAAOL,OAAOG,KAAP,GAAeE,IAAf,IAAuBL,OAAOK,IAAP,GAAcF,KAA5C;AACAD,YAAMF,OAAOI,MAAP,GAAgBF,MAAMvB,SAAtB,IAAmCqB,OAAOE,GAAP,GAAaE,MAAtD;AACA,aAAOC,QAAQH,GAAf;AACD;;;gCAEWtiB,I,EAAM;AAChB,UAAI7E,YAAY,KAAKomB,OAAL,CAAapmB,SAA7B;AACA,UAAIylB,4BAAJ;AACA,WAAKzlB,SAAL,GAAiBA,SAAjB;;AAEAylB,4BAAsBM,eAAe,EAArC;AACAN,4BAAsB,GAAGld,KAAH,CAASa,IAAT,CAAcqc,mBAAd,EAAmC,IAAnC,CAAtB;;AAEA,aAAOA,mBAAP;AACD;;AAED;;;;0BACMwB,M,EAAQ;AAAA;;AACZM,UAAI,YAAM;AACR,cAAKC,SAAL;AACD,OAFD;AAGD;;AAED;;;;gCACY;AAAA;;AACV,UAAIxnB,YAAY,KAAKA,SAArB;AAAA,UACEkmB,WAAW,KAAKY,WAAL,EADb;AAAA,UAEEW,kBAAkB/B,UAAUvP,MAAV,EAAkB;AAClCzT,WAAG,KAAK0jB,OAAL,CAAa1jB,CADkB;AAElC+f,WAAG,KAAK2D,OAAL,CAAa3D;AAFkB,OAAlB,CAFpB;AAAA,UAMEiF,SAAS,KAAKtB,OAAL,CAAaG,IANxB;AAAA,UAOEoB,KAAK5b,UAAU,CAAV,KAAgB,EAPvB;;AASA,UAAI,CAAC/L,SAAL,EAAgB;AACd;AACD;;AAED,UAAIkmB,YAAYA,SAAS9mB,MAAT,GAAkB,CAAlC,EAAqC;AACnC,WAAG6J,OAAH,CAAWG,IAAX,CAAgB8c,QAAhB,EAA0B,UAAC0B,GAAD,EAAM1oB,CAAN,EAAY;AACpC,cAAI0oB,GAAJ,EAAS;AACP,gBAAIA,IAAIF,MAAJ,IAAcE,IAAIC,UAAtB,EAAkC;AAChC9B,0BAAY5T,MAAZ,CAAmBjT,CAAnB,EAAsB,CAAtB;AACAgnB,uBAAS/T,MAAT,CAAgBjT,CAAhB,EAAmB,CAAnB;AACA;AACD;AACD,mBAAK4oB,aAAL,CAAmBF,GAAnB,EAAwBH,eAAxB,EAAyCC,MAAzC,EAAiD7B,SAAjD,EAA4DC,YAA5D,EAA0E,QAA1E,EAAoF5mB,CAApF;AACD;AACF,SATD;AAUD;AACF;;;kCAEa0oB,G,EAAKH,e,EAAiBC,M,EAAQK,c,EAAgBC,iB,EAAmBnjB,I,EAAMojB,G,EAAK;AACxF,UAAIC,YAAYxC,UAAUkC,GAAV,CAAhB;AACA,UAAIO,YAAY,KAAKC,YAAL,CAAkBR,IAAIS,UAAtB,EAAkCH,SAAlC,CAAhB;AACA,UAAII,WAAW,KAAKC,UAAL,CAAgBX,GAAhB,EAAqBH,eAArB,EAAsC5iB,IAAtC,CAAf;AACA,UAAI6f,SAASkD,IAAIY,OAAjB;AACA,UAAIX,aAAaD,IAAIC,UAArB;AACA,UAAIY,gBAAgBb,IAAIa,aAAxB;AACAb,UAAIS,UAAJ,GAAiBH,SAAjB;;AAEAH,qBAAeI,SAAf,GAA2BA,SAA3B;AACAH,wBAAkBG,SAAlB,GAA8BA,SAA9B;AACA,UAAIG,YAAY,CAAC5D,MAAjB,EAAyB;AACvB,YAAIgD,UAAU,CAACG,UAAX,IAAyB,CAACH,MAA9B,EAAsC;AACpCE,cAAIc,aAAJ,CAAkBX,cAAlB;AACAH,cAAIC,UAAJ,GAAiB,IAAjB;AACAD,cAAIY,OAAJ,GAAc,IAAd;AACD;AACF,OAND,MAMO,IAAI,CAACF,QAAD,IAAa5D,MAAjB,EAAyB;AAC9B,YAAIgD,UAAU,CAACe,aAAX,IAA4B,CAACf,MAAjC,EAAyC;AACvCE,cAAIc,aAAJ,CAAkBV,iBAAlB;AACAJ,cAAIa,aAAJ,GAAoB,IAApB;AACAb,cAAIY,OAAJ,GAAc,KAAd;AACD;AACF;AACF;;AAED;;;;0BACM5B,I,EAAM;AACV,WAAKD,UAAL,CAAgBC,IAAhB;AACA,WAAKnB,mBAAL,CAAyBxc,OAAzB,CAAiC,UAAC2e,GAAD,EAAS;AACxC,eAAOA,IAAIC,UAAX;AACA,eAAOD,IAAIa,aAAX;AACA,eAAOb,IAAIY,OAAX;AACD,OAJD;AAKA,aAAO,IAAP;AACD;;;gCACW;AAAA;AAAA;;AACV,UAAIjQ,SAASoQ,SAAS,YAAM;AAC1B,eAAKpD,KAAL;AACD,OAFY,EAEV,KAAKa,OAAL,CAAaC,IAFH,CAAb;AAGA,UAAI,KAAKb,QAAT,EAAmB;AACjB,aAAKxlB,SAAL,CAAeoP,mBAAf,CAAmC,QAAnC,EAA6C,KAAKoW,QAAlD,EAA4D,KAA5D,EAAmE,IAAnE;AACA,aAAKA,QAAL,GAAgB,IAAhB;AACD;AACD,WAAKA,QAAL,GAAgBjN,MAAhB;AACA,WAAKvY,SAAL,CAAeyP,gBAAf,CAAgC,QAAhC,EAA0C8I,MAA1C,EAAkD,KAAlD,EAAyD,IAAzD;AACD;;;iCAEYqQ,Y,EAAcC,S,EAAW;AACpC,UAAIV,YAAY,MAAhB;AACA,UAAIW,aAAaF,aAAatB,IAAb,GAAoBuB,UAAUvB,IAA/C;AACA,UAAIyB,WAAWH,aAAazB,GAAb,GAAmB0B,UAAU1B,GAA5C;AACA,UAAI4B,YAAY,CAAhB,EAAmB;AACjB,YAAID,cAAc,CAAlB,EAAqB;AACnBX,sBAAYW,aAAa,CAAb,GAAiB,MAAjB,GAA0B,OAAtC;AACD,SAFD,MAEO;AACLX,sBAAY,MAAZ;AACD;AACF;AACD,UAAIW,cAAc,CAAlB,EAAqB;AACnB,YAAIC,YAAY,CAAhB,EAAmB;AACjBZ,sBAAYY,WAAW,CAAX,GAAe,IAAf,GAAsB,MAAlC;AACD,SAFD,MAEO;AACLZ,sBAAY,MAAZ;AACD;AACF;AACD,aAAOA,SAAP;AACD;;;;;;AAGH,IAAIZ,MAAMpR,OAAO6S,qBAAP,IAAgC7S,OAAO8S,2BAAvC,IAAsE,UAAS7L,CAAT,EAAY;AAC1FvF,aAAWuF,CAAX,EAAc,IAAI,EAAJ,GAAS,GAAvB;AACD,CAFD;;AAIA,SAASuL,QAAT,CAAkB/Q,EAAlB,EAAsByO,IAAtB,EAA4B;AAC1B,MAAIpf,gBAAJ;AAAA,MAAa2S,aAAb;AAAA,MAAmBtO,eAAnB;AACA,MAAI4d,UAAU,IAAd;AACA,MAAIC,WAAW,CAAf;;AAEA,MAAMC,QAAQ,SAARA,KAAQ,GAAM;AAClBD,eAAWnN,KAAKC,GAAL,EAAX;AACAiN,cAAU,IAAV;AACA5d,aAASsM,GAAGK,KAAH,CAAShR,OAAT,EAAkB2S,IAAlB,CAAT;AACD,GAJD;AAKA,SAAO,YAAW;AAChB,QAAMqC,MAAMD,KAAKC,GAAL,EAAZ;AACA,QAAMpC,YAAYwM,QAAQpK,MAAMkN,QAAd,CAAlB;AACAliB,cAAU,IAAV;AACA2S,WAAO7N,SAAP;;AAEA,QAAI8N,aAAa,CAAjB,EAAoB;AAClBwP,mBAAaH,OAAb;AACAA,gBAAU,IAAV;AACAC,iBAAWlN,GAAX;AACA3Q,eAASsM,GAAGK,KAAH,CAAShR,OAAT,EAAkB2S,IAAlB,CAAT;AACD,KALD,MAKO,IAAI,CAACsP,OAAL,EAAc;AACnBA,gBAAUrR,WAAWuR,KAAX,EAAkBvP,SAAlB,CAAV;AACD;AACD,WAAOvO,MAAP;AACD,GAfD;AAgBD;;AAEM,SAASK,MAAT,CAAgBib,IAAhB,EAAsB;AAC3B,MAAIA,KAAKhB,SAAL,IAAkB,OAAOgB,KAAKhB,SAAZ,KAA0B,QAAhD,EAA0D;AACxDA,gBAAYgB,KAAKhB,SAAjB;AACD;AACF;;AAEM,SAASF,SAAT,CAAmBsB,EAAnB,EAAuBsC,KAAvB,EAA8B;AACnC,MAAIC,UAAJ;AAAA,MAAOC,UAAP;AAAA,MAAUC,UAAV;AAAA,MAAaC,UAAb;AACA,MAAI,CAAC1C,EAAL,EAAS;AACP;AACD;AACD,MAAI,CAACsC,KAAL,EAAY;AACVA,YAAQ,EAAC5mB,GAAG,CAAJ,EAAO+f,GAAG,CAAV,EAAR;AACD;;AAED,MAAIuE,MAAM7Q,MAAV,EAAkB;AAChB6Q,SAAKA,GAAGE,qBAAH,EAAL;AACAqC,QAAIvC,GAAGM,IAAP;AACAoC,QAAI1C,GAAGG,GAAP;AACAqC,QAAIxC,GAAGI,KAAP;AACAqC,QAAIzC,GAAGK,MAAP;AACD,GAND,MAMO;AACLkC,QAAI,CAAJ;AACAG,QAAI,CAAJ;AACAF,QAAID,IAAIvC,GAAG2C,UAAX;AACAF,QAAIC,IAAI1C,GAAG4C,WAAX;AACD;;AAED,SAAO;AACL,YAAQL,CADH;AAEL,WAAOG,CAFF;AAGL,aAASF,IAAIF,MAAM5mB,CAHd;AAIL,cAAU+mB,IAAIH,MAAM7G;AAJf,GAAP;AAMD;;AAED;AACO,SAASkD,WAAT,CAAqBnmB,IAArB,EAA2B;AAChC,MAAIumB,YAAYrd,OAAZ,CAAoBlJ,IAApB,MAA8B,CAAC,CAA/B,IAAoC,CAACA,KAAKqqB,QAA9C,EAAwD;AACtD,QAAInC,SAASoC,QAAQtqB,KAAKuqB,YAAL,CAAkB,QAAlB,CAAR,KAAwCD,QAAQtqB,KAAKuqB,YAAL,CAAkB,WAAlB,CAAR,CAArD;AACAvqB,SAAKkoB,MAAL,GAAcA,MAAd;AACAloB,SAAKqqB,QAAL,GAAgB,IAAhB;AACA9D,gBAAYld,IAAZ,CAAiBrJ,IAAjB;AACAA,SAAK6oB,UAAL,GAAkB3C,UAAUlmB,IAAV,CAAlB;AACD;AACF;;kBAEcwmB,c;;;;;;;AC5Pf;;AAEAhpB,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;AAGAD,QAAQ8sB,OAAR,GAAkB9sB,QAAQ+sB,cAAR,GAAyB/sB,QAAQgtB,qBAAR,GAAgChtB,QAAQsP,sBAAR,GAAiCtP,QAAQ2Y,WAAR,GAAsB3Y,QAAQ4C,MAAR,GAAiB5C,QAAQitB,SAAR,GAAoBjtB,QAAQktB,aAAR,GAAwBltB,QAAQ8J,SAAR,GAAoB9J,QAAQqN,aAAR,GAAwBrN,QAAQuN,cAAR,GAAyBvN,QAAQsN,YAAR,GAAuBtN,QAAQqE,aAAR,GAAwBgC,SAAnT;;AAEA,mBAAAxF,CAAQ,EAAR;;AAEA,IAAIG,WAAW,mBAAAH,CAAQ,CAAR,CAAf;;AAEA,IAAIssB,aAAa,mBAAAtsB,CAAQ,CAAR,CAAjB;;AAEA,IAAIusB,cAAcrsB,uBAAuBosB,UAAvB,CAAlB;;AAEA,IAAIE,iBAAiB,mBAAAxsB,CAAQ,EAAR,CAArB;;AAEA,IAAIysB,kBAAkBvsB,uBAAuBssB,cAAvB,CAAtB;;AAEA,IAAIE,aAAa,mBAAA1sB,CAAQ,EAAR,CAAjB;;AAEA,IAAI2sB,cAAczsB,uBAAuBwsB,UAAvB,CAAlB;;AAEA,IAAIE,WAAW,mBAAA5sB,CAAQ,EAAR,CAAf;;AAEA,IAAI6sB,WAAW3sB,uBAAuB0sB,QAAvB,CAAf;;AAEA,IAAIE,gBAAgB,mBAAA9sB,CAAQ,EAAR,CAApB;;AAEA,IAAI+sB,gBAAgB7sB,uBAAuB4sB,aAAvB,CAApB;;AAEA,IAAIzsB,2BAA2B,mBAAAL,CAAQ,EAAR,CAA/B;;AAEA,IAAIgtB,2BAA2B9sB,uBAAuBG,wBAAvB,CAA/B;;AAEA,IAAI4sB,0BAA0B,mBAAAjtB,CAAQ,EAAR,CAA9B;;AAEA,IAAIktB,0BAA0BhtB,uBAAuB+sB,uBAAvB,CAA9B;;AAEA,IAAIE,mBAAmB,mBAAAntB,CAAQ,EAAR,CAAvB;;AAEA,IAAIotB,mBAAmBltB,uBAAuBitB,gBAAvB,CAAvB;;AAEA,IAAIE,YAAY,mBAAArtB,CAAQ,EAAR,CAAhB;;AAEA,IAAIstB,YAAYptB,uBAAuBmtB,SAAvB,CAAhB;;AAEA,SAASntB,sBAAT,CAAgCW,GAAhC,EAAqC;AAAE,SAAOA,OAAOA,IAAIC,UAAX,GAAwBD,GAAxB,GAA8B,EAAExB,SAASwB,GAAX,EAArC;AAAwD;;AAE/F1B,QAAQqE,aAAR,GAAwBrD,SAASqD,aAAjC;AACArE,QAAQsN,YAAR,GAAuBtM,SAASsM,YAAhC;AACAtN,QAAQuN,cAAR,GAAyBvM,SAASuM,cAAlC;AACAvN,QAAQqN,aAAR,GAAwBrM,SAASqM,aAAjC;AACArN,QAAQ8J,SAAR,GAAoBsjB,YAAYltB,OAAhC;AACAF,QAAQktB,aAAR,GAAwBI,gBAAgBptB,OAAxC;AACAF,QAAQitB,SAAR,GAAoBO,YAAYttB,OAAhC;AACAF,QAAQ4C,MAAR,GAAiB8qB,SAASxtB,OAA1B;AACAF,QAAQ2Y,WAAR,GAAsBiV,cAAc1tB,OAApC;AACAF,QAAQsP,sBAAR,GAAiCue,yBAAyB3tB,OAA1D;AACAF,QAAQgtB,qBAAR,GAAgCe,wBAAwB7tB,OAAxD;AACAF,QAAQ+sB,cAAR,GAAyBkB,iBAAiB/tB,OAA1C;AACAF,QAAQ8sB,OAAR,GAAkBqB,UAAUjuB,OAA5B,C;;;;;;;AC7DA;;AAEA,IAAIkuB,QAAQ,mBAAAvtB,CAAQ,CAAR,CAAZ;;AAEA,IAAIwtB,SAASttB,uBAAuBqtB,KAAvB,CAAb;;AAEA,SAASrtB,sBAAT,CAAgCW,GAAhC,EAAqC;AAAE,SAAOA,OAAOA,IAAIC,UAAX,GAAwBD,GAAxB,GAA8B,EAAExB,SAASwB,GAAX,EAArC;AAAwD;;AAE/F;AACA,IAAI,OAAO4sB,8BAAP,KAA0C,WAA1C,IAAyD,OAAOA,+BAA+BC,MAAtC,KAAiD,UAA9G,EAA0H;AACxHD,iCAA+BC,MAA/B,CAAsCF,OAAOnuB,OAA7C;AACD,C;;;;;;;ACXD;;AAEAJ,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;AAGAD,QAAQE,OAAR,GAAkBsuB,eAAlB;AACA,SAASC,gBAAT,CAA0BngB,QAA1B,EAAoCF,MAApC,EAA4C;AAC1C,MAAItM,MAAMC,OAAN,CAAcuM,QAAd,CAAJ,EAA6B;AAC3B,SAAK,IAAItM,IAAI,CAAR,EAAWqqB,IAAI/d,SAASpM,MAA7B,EAAqCF,IAAIqqB,CAAzC,EAA4CrqB,GAA5C,EAAiD;AAC/CysB,uBAAiBngB,SAAStM,CAAT,CAAjB,EAA8BoM,MAA9B;AACD;AACF,GAJD,MAIO;AACLA,WAAOzC,IAAP,CAAY2C,QAAZ;AACD;AACF;;AAED,SAASkgB,eAAT,CAAyBlgB,QAAzB,EAAmC;AACjC,MAAIA,YAAY,IAAhB,EAAsB;AACpB,WAAOA,QAAP;AACD;AACD,MAAIF,SAAS,EAAb;AACAqgB,mBAAiBngB,QAAjB,EAA2BF,MAA3B;;AAEA,MAAIA,OAAOlM,MAAP,KAAkB,CAAtB,EAAyB;AACvBkM,aAASA,OAAO,CAAP,CAAT;AACD;;AAED,SAAOA,MAAP;AACD;AACDzN,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;AC7BA;;;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;;AAIA,IAAIkJ,eAAe,YAAY;AAAE,WAASjE,gBAAT,CAA0BkE,MAA1B,EAAkCC,KAAlC,EAAyC;AAAE,SAAK,IAAIrH,IAAI,CAAb,EAAgBA,IAAIqH,MAAMnH,MAA1B,EAAkCF,GAAlC,EAAuC;AAAE,UAAIsH,aAAaD,MAAMrH,CAAN,CAAjB,CAA2BsH,WAAWC,UAAX,GAAwBD,WAAWC,UAAX,IAAyB,KAAjD,CAAwDD,WAAWE,YAAX,GAA0B,IAA1B,CAAgC,IAAI,WAAWF,UAAf,EAA2BA,WAAWG,QAAX,GAAsB,IAAtB,CAA4B3J,OAAOC,cAAP,CAAsBqJ,MAAtB,EAA8BE,WAAW5C,GAAzC,EAA8C4C,UAA9C;AAA4D;AAAE,GAAC,OAAO,UAAUI,WAAV,EAAuBC,UAAvB,EAAmCC,WAAnC,EAAgD;AAAE,QAAID,UAAJ,EAAgBzE,iBAAiBwE,YAAYzE,SAA7B,EAAwC0E,UAAxC,EAAqD,IAAIC,WAAJ,EAAiB1E,iBAAiBwE,WAAjB,EAA8BE,WAA9B,EAA4C,OAAOF,WAAP;AAAqB,GAAhN;AAAmN,CAA9hB,EAAnB;;AAEA,IAAIyjB,aAAa,mBAAAtsB,CAAQ,CAAR,CAAjB;;AAEA,IAAIusB,cAAcrsB,uBAAuBosB,UAAvB,CAAlB;;AAEA,SAASpsB,sBAAT,CAAgCW,GAAhC,EAAqC;AAAE,SAAOA,OAAOA,IAAIC,UAAX,GAAwBD,GAAxB,GAA8B,EAAExB,SAASwB,GAAX,EAArC;AAAwD;;AAE/F,SAASmI,eAAT,CAAyBtH,QAAzB,EAAmCmH,WAAnC,EAAgD;AAAE,MAAI,EAAEnH,oBAAoBmH,WAAtB,CAAJ,EAAwC;AAAE,UAAM,IAAI9D,SAAJ,CAAc,mCAAd,CAAN;AAA2D;AAAE;;AAEzJ,SAAS8oB,0BAAT,CAAoCpT,IAApC,EAA0CpP,IAA1C,EAAgD;AAAE,MAAI,CAACoP,IAAL,EAAW;AAAE,UAAM,IAAIqT,cAAJ,CAAmB,2DAAnB,CAAN;AAAwF,GAAC,OAAOziB,SAAS,QAAOA,IAAP,yCAAOA,IAAP,OAAgB,QAAhB,IAA4B,OAAOA,IAAP,KAAgB,UAArD,IAAmEA,IAAnE,GAA0EoP,IAAjF;AAAwF;;AAEhP,SAASsT,SAAT,CAAmBC,QAAnB,EAA6BC,UAA7B,EAAyC;AAAE,MAAI,OAAOA,UAAP,KAAsB,UAAtB,IAAoCA,eAAe,IAAvD,EAA6D;AAAE,UAAM,IAAIlpB,SAAJ,CAAc,qEAAoEkpB,UAApE,yCAAoEA,UAApE,EAAd,CAAN;AAAsG,GAACD,SAAS5pB,SAAT,GAAqBnF,OAAOwF,MAAP,CAAcwpB,cAAcA,WAAW7pB,SAAvC,EAAkD,EAAED,aAAa,EAAE/E,OAAO4uB,QAAT,EAAmBtlB,YAAY,KAA/B,EAAsCE,UAAU,IAAhD,EAAsDD,cAAc,IAApE,EAAf,EAAlD,CAArB,CAAqK,IAAIslB,UAAJ,EAAgBhvB,OAAOilB,cAAP,GAAwBjlB,OAAOilB,cAAP,CAAsB8J,QAAtB,EAAgCC,UAAhC,CAAxB,GAAsED,SAASzJ,SAAT,GAAqB0J,UAA3F;AAAwG;;AAE9e,IAAIC,cAAc,CAAlB;;AAEA,IAAIC,OAAO,UAAUC,UAAV,EAAsB;AAC/BL,YAAUI,IAAV,EAAgBC,UAAhB;;AAEA,WAASD,IAAT,GAAgB;AACd,QAAIzf,IAAJ;;AAEA,QAAI2f,KAAJ,EAAWte,KAAX,EAAkBue,IAAlB;;AAEAtlB,oBAAgB,IAAhB,EAAsBmlB,IAAtB;;AAEA,SAAK,IAAIpgB,OAAOC,UAAU3M,MAArB,EAA6Bwa,OAAO5a,MAAM8M,IAAN,CAApC,EAAiDE,OAAO,CAA7D,EAAgEA,OAAOF,IAAvE,EAA6EE,MAA7E,EAAqF;AACnF4N,WAAK5N,IAAL,IAAaD,UAAUC,IAAV,CAAb;AACD;;AAED,WAAOqgB,QAAQD,SAASte,QAAQ8d,2BAA2B,IAA3B,EAAiC,CAACnf,OAAOyf,KAAK5J,SAAL,IAAkBtlB,OAAOsvB,cAAP,CAAsBJ,IAAtB,CAA1B,EAAuD9iB,IAAvD,CAA4D6O,KAA5D,CAAkExL,IAAlE,EAAwE,CAAC,IAAD,EAAOvL,MAAP,CAAc0Y,IAAd,CAAxE,CAAjC,CAAR,EAAwI9L,KAAjJ,GAAyJA,MAAMpO,MAAN,GAAeusB,aAAxK,EAAuLG,KAA/L,GAAuMR,2BAA2B9d,KAA3B,EAAkCue,IAAlC,CAA9M;AACD;;AAEDhmB,eAAa6lB,IAAb,EAAmB,CAAC;AAClBtoB,SAAK,iBADa;AAElBzG,WAAO,SAASmD,eAAT,GAA2B,CAAE;AAFlB,GAAD,EAGhB;AACDsD,SAAK,QADJ;AAEDzG,WAAO,SAAS2C,MAAT,GAAkB;AACvB,aAAO,KAAKyG,KAAL,CAAWiF,QAAlB;AACD;AAJA,GAHgB,EAQhB;AACD5H,SAAK,mBADJ;AAEDzG,WAAO,SAASiV,iBAAT,GAA6B;AAClC,aAAO,KAAK5R,oBAAL,GAA4B4R,iBAA5B,EAAP;AACD;AAJA,GARgB,EAahB;AACDxO,SAAK,sBADJ;AAEDzG,WAAO,SAASqD,oBAAT,GAAgC;AACrC,aAAO,KAAKb,SAAL,CAAewK,kBAAtB;AACD;AAJA,GAbgB,CAAnB;;AAoBA,SAAO+hB,IAAP;AACD,CAtCU,CAsCT5B,YAAYltB,OAtCH,CAAX;;AAwCAF,QAAQE,OAAR,GAAkB8uB,IAAlB;AACAruB,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;AC/DA;;;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;;AAIA,IAAIkJ,eAAe,YAAY;AAAE,WAASjE,gBAAT,CAA0BkE,MAA1B,EAAkCC,KAAlC,EAAyC;AAAE,SAAK,IAAIrH,IAAI,CAAb,EAAgBA,IAAIqH,MAAMnH,MAA1B,EAAkCF,GAAlC,EAAuC;AAAE,UAAIsH,aAAaD,MAAMrH,CAAN,CAAjB,CAA2BsH,WAAWC,UAAX,GAAwBD,WAAWC,UAAX,IAAyB,KAAjD,CAAwDD,WAAWE,YAAX,GAA0B,IAA1B,CAAgC,IAAI,WAAWF,UAAf,EAA2BA,WAAWG,QAAX,GAAsB,IAAtB,CAA4B3J,OAAOC,cAAP,CAAsBqJ,MAAtB,EAA8BE,WAAW5C,GAAzC,EAA8C4C,UAA9C;AAA4D;AAAE,GAAC,OAAO,UAAUI,WAAV,EAAuBC,UAAvB,EAAmCC,WAAnC,EAAgD;AAAE,QAAID,UAAJ,EAAgBzE,iBAAiBwE,YAAYzE,SAA7B,EAAwC0E,UAAxC,EAAqD,IAAIC,WAAJ,EAAiB1E,iBAAiBwE,WAAjB,EAA8BE,WAA9B,EAA4C,OAAOF,WAAP;AAAqB,GAAhN;AAAmN,CAA9hB,EAAnB;;AAEA,IAAIyjB,aAAa,mBAAAtsB,CAAQ,CAAR,CAAjB;;AAEA,IAAIusB,cAAcrsB,uBAAuBosB,UAAvB,CAAlB;;AAEA,SAASpsB,sBAAT,CAAgCW,GAAhC,EAAqC;AAAE,SAAOA,OAAOA,IAAIC,UAAX,GAAwBD,GAAxB,GAA8B,EAAExB,SAASwB,GAAX,EAArC;AAAwD;;AAE/F,SAASmI,eAAT,CAAyBtH,QAAzB,EAAmCmH,WAAnC,EAAgD;AAAE,MAAI,EAAEnH,oBAAoBmH,WAAtB,CAAJ,EAAwC;AAAE,UAAM,IAAI9D,SAAJ,CAAc,mCAAd,CAAN;AAA2D;AAAE;;AAEzJ,SAAS8oB,0BAAT,CAAoCpT,IAApC,EAA0CpP,IAA1C,EAAgD;AAAE,MAAI,CAACoP,IAAL,EAAW;AAAE,UAAM,IAAIqT,cAAJ,CAAmB,2DAAnB,CAAN;AAAwF,GAAC,OAAOziB,SAAS,QAAOA,IAAP,yCAAOA,IAAP,OAAgB,QAAhB,IAA4B,OAAOA,IAAP,KAAgB,UAArD,IAAmEA,IAAnE,GAA0EoP,IAAjF;AAAwF;;AAEhP,SAASsT,SAAT,CAAmBC,QAAnB,EAA6BC,UAA7B,EAAyC;AAAE,MAAI,OAAOA,UAAP,KAAsB,UAAtB,IAAoCA,eAAe,IAAvD,EAA6D;AAAE,UAAM,IAAIlpB,SAAJ,CAAc,qEAAoEkpB,UAApE,yCAAoEA,UAApE,EAAd,CAAN;AAAsG,GAACD,SAAS5pB,SAAT,GAAqBnF,OAAOwF,MAAP,CAAcwpB,cAAcA,WAAW7pB,SAAvC,EAAkD,EAAED,aAAa,EAAE/E,OAAO4uB,QAAT,EAAmBtlB,YAAY,KAA/B,EAAsCE,UAAU,IAAhD,EAAsDD,cAAc,IAApE,EAAf,EAAlD,CAArB,CAAqK,IAAIslB,UAAJ,EAAgBhvB,OAAOilB,cAAP,GAAwBjlB,OAAOilB,cAAP,CAAsB8J,QAAtB,EAAgCC,UAAhC,CAAxB,GAAsED,SAASzJ,SAAT,GAAqB0J,UAA3F;AAAwG;;AAE9e;;;AAGA,IAAI5B,gBAAgB,UAAU+B,UAAV,EAAsB;AACxCL,YAAU1B,aAAV,EAAyB+B,UAAzB;;AAEA,WAAS/B,aAAT,CAAuB7jB,KAAvB,EAA8BU,OAA9B,EAAuC;AACrCF,oBAAgB,IAAhB,EAAsBqjB,aAAtB;;AAEA,WAAOwB,2BAA2B,IAA3B,EAAiC,CAACxB,cAAc9H,SAAd,IAA2BtlB,OAAOsvB,cAAP,CAAsBlC,aAAtB,CAA5B,EAAkEhhB,IAAlE,CAAuE,IAAvE,EAA6E7C,KAA7E,EAAoFU,OAApF,CAAjC,CAAP;AACD;;AAEDZ,eAAa+jB,aAAb,EAA4B,CAAC;AAC3BxmB,SAAK,sBADsB;AAE3BzG,WAAO,SAASovB,oBAAT,GAAgC,CAAE;AAFd,GAAD,CAA5B;;AAKA,SAAOnC,aAAP;AACD,CAfmB,CAelBE,YAAYltB,OAfM,CAApB;;AAiBAF,QAAQE,OAAR,GAAkBgtB,aAAlB;AACAvsB,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;ACzCA;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;AAGA;;;;AAIA,SAASqvB,0BAAT,CAAoCC,QAApC,EAA8C;AAC5C,WAASC,SAAT,CAAmBC,UAAnB,EAA+BpmB,KAA/B,EAAsCqF,QAAtC,EAAgDghB,aAAhD,EAA+DC,QAA/D,EAAyEC,YAAzE,EAAuF;AACrF,WAAOC,WAAP;AACD;;AAED,MAAIC,mBAAmBN,UAAUvgB,IAAV,CAAe,IAAf,EAAqB,KAArB,CAAvB;AACA6gB,mBAAiBL,UAAjB,GAA8BD,UAAUvgB,IAAV,CAAe,IAAf,EAAqB,IAArB,CAA9B;;AAEA,SAAO6gB,gBAAP;AACD;;AAED,SAASC,iBAAT,CAA2BC,YAA3B,EAAyC;AACvC,WAAST,QAAT,CAAkBlmB,KAAlB,EAAyBqF,QAAzB,EAAmCghB,aAAnC,EAAkDC,QAAlD,EAA4DC,YAA5D,EAA0E;AACxE;AACD;AACD,SAAON,2BAA2BC,QAA3B,CAAP;AACD;;AAED,IAAIM,cAAcE,mBAAlB;;AAEA/vB,QAAQE,OAAR,GAAkB;AAChB+vB,SAAOJ,WADS;AAEhBK,QAAML,WAFU;AAGhBM,QAAMN,WAHU;AAIhBlK,UAAQkK,WAJQ;AAKhBxgB,UAAQwgB,WALQ;AAMhBO,UAAQP,WANQ;AAOhBzpB,UAAQypB,WAPQ;AAQhBhtB,WAASgtB,WARO;AAShBvtB,QAAMutB,WATU;AAUhBQ,OAAKR,WAVW;AAWhBS,WAAST,WAXO;AAYhBU,cAAYV,WAZI;AAahBW,YAAUX,WAbM;AAchBY,SAAOZ,WAdS;AAehBa,aAAWb,WAfK;AAgBhBc,SAAOd;AAhBS,CAAlB;AAkBAlvB,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;AC/CA;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;;AAIA,IAAI2wB,UAAU,mBAAA/vB,CAAQ,EAAR,CAAd;;AAEA,IAAIgwB,WAAW9vB,uBAAuB6vB,OAAvB,CAAf;;AAEA,IAAIjkB,YAAY,mBAAA9L,CAAQ,CAAR,CAAhB;;AAEA,IAAI+L,aAAa7L,uBAAuB4L,SAAvB,CAAjB;;AAEA,IAAI/L,QAAQ,mBAAAC,CAAQ,CAAR,CAAZ;;AAEA,IAAIC,SAASC,uBAAuBH,KAAvB,CAAb;;AAEA,SAASG,sBAAT,CAAgCW,GAAhC,EAAqC;AAAE,SAAOA,OAAOA,IAAIC,UAAX,GAAwBD,GAAxB,GAA8B,EAAExB,SAASwB,GAAX,EAArC;AAAwD;;AAE/F,SAASkB,MAAT,CAAgBC,OAAhB,EAAyBC,SAAzB,EAAoComB,OAApC,EAA6C7e,QAA7C,EAAuD;AACrD;AACA,MAAI,OAAO6e,OAAP,KAAmB,UAAvB,EAAmC;AACjC7e,eAAW6e,OAAX;AACAA,cAAU,IAAV;AACD;;AAED;AACA,GAAC,GAAG2H,SAAS3wB,OAAb,EAAsBgpB,WAAW,EAAjC;;AAEA,MAAI4H,gBAAgBlkB,WAAW1M,OAAX,CAAmB0C,MAAnB,CAA0BC,OAA1B,EAAmCC,SAAnC,CAApB;AACA,MAAI3C,YAAY2wB,cAAc5b,iBAAd,EAAhB;;AAEA,MAAI7K,QAAJ,EAAc;AACZA,aAAS6B,IAAT,CAAc/L,SAAd;AACD;;AAED,SAAOA,SAAP;AACD;;AAEDH,QAAQE,OAAR,GAAkB0C,MAAlB;AACAjC,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;ACzCA;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;AAGAD,QAAQE,OAAR,GAAkBquB,MAAlB;;AAEA,IAAI9sB,gBAAgB,mBAAAZ,CAAQ,CAAR,CAApB;;AAEA,IAAID,QAAQ,mBAAAC,CAAQ,CAAR,CAAZ;;AAEA,IAAIC,SAASC,uBAAuBH,KAAvB,CAAb;;AAEA,IAAImwB,SAAS,mBAAAlwB,CAAQ,EAAR,CAAb;;AAEA,IAAImwB,UAAUjwB,uBAAuBgwB,MAAvB,CAAd;;AAEA,IAAIE,UAAU,mBAAApwB,CAAQ,EAAR,CAAd;;AAEA,IAAIqwB,WAAWnwB,uBAAuBkwB,OAAvB,CAAf;;AAEA,IAAIE,QAAQ,mBAAAtwB,CAAQ,EAAR,CAAZ;;AAEA,IAAIuwB,SAASrwB,uBAAuBowB,KAAvB,CAAb;;AAEA,IAAIE,aAAa,mBAAAxwB,CAAQ,EAAR,CAAjB;;AAEA,IAAIywB,cAAcvwB,uBAAuBswB,UAAvB,CAAlB;;AAEA,IAAI9P,YAAY,mBAAA1gB,CAAQ,EAAR,CAAhB;;AAEA,IAAI0wB,aAAaxwB,uBAAuBwgB,SAAvB,CAAjB;;AAEA,IAAIiQ,cAAc,mBAAA3wB,CAAQ,EAAR,CAAlB;;AAEA,IAAI4wB,eAAe1wB,uBAAuBywB,WAAvB,CAAnB;;AAEA,IAAIE,iBAAiB,mBAAA7wB,CAAQ,EAAR,CAArB;;AAEA,IAAI8wB,kBAAkB5wB,uBAAuB2wB,cAAvB,CAAtB;;AAEA,IAAItD,QAAQ,mBAAAvtB,CAAQ,CAAR,CAAZ;;AAEA,IAAIwtB,SAASttB,uBAAuBqtB,KAAvB,CAAb;;AAEA,SAASrtB,sBAAT,CAAgCW,GAAhC,EAAqC;AAAE,SAAOA,OAAOA,IAAIC,UAAX,GAAwBD,GAAxB,GAA8B,EAAExB,SAASwB,GAAX,EAArC;AAAwD;;AAE/F,SAAS6sB,MAAT,CAAgBhf,IAAhB,EAAsB;AACpB,MAAI9O,SAAS8O,KAAK9O,MAAlB;AAAA,MACID,OAAO+O,KAAK/O,IADhB;AAAA,MAEIuC,WAAWwM,KAAKxM,QAFpB;AAAA,MAGI6uB,cAAcriB,KAAKqiB,WAHvB;AAAA,MAIIC,gBAAgBtiB,KAAKsiB,aAJzB;;AAMA;AACA/wB,SAAOZ,OAAP,CAAeuH,cAAf,GAAgCupB,QAAQ9wB,OAAxC;AACAY,SAAOZ,OAAP,CAAe0H,eAAf,GAAiCspB,SAAShxB,OAA1C;AACAY,SAAOZ,OAAP,CAAe4H,aAAf,GAA+BspB,OAAOlxB,OAAtC;AACAY,SAAOZ,OAAP,CAAewH,iBAAf,GAAmC6pB,WAAWrxB,OAA9C;AACAY,SAAOZ,OAAP,CAAe2H,kBAAf,GAAoCypB,YAAYpxB,OAAhD;AACA;AACAY,SAAOZ,OAAP,CAAeM,IAAf,GAAsBA,QAAQ6tB,OAAOnuB,OAArC;;AAEA;AACAY,SAAOZ,OAAP,CAAe6C,QAAf,GAA0BA,QAA1B;;AAEA;AACA,MAAI,CAACjC,OAAOZ,OAAP,CAAeO,MAApB,EAA4B;AAC1B,QAAI,CAACA,MAAL,EAAa;AACX,UAAIgB,cAAcgH,MAAlB,EAA0B;AACxBhI,iBAASgxB,aAAavxB,OAAtB;AACD,OAFD,MAEO,IAAIuB,cAAcqC,KAAlB,EAAyB;AAC9BrD,iBAASkxB,gBAAgBzxB,OAAzB;AACD,OAFM,MAEA;AACL,cAAM6H,MAAM,2BAAN,CAAN;AACD;AACF;AACDjH,WAAOZ,OAAP,CAAeO,MAAf,GAAwBA,MAAxB;AACD;;AAED,MAAImxB,eAAenxB,OAAOqxB,cAA1B,EAA0C;AACxCrxB,WAAOqxB,cAAP,CAAsBF,WAAtB;AACD;;AAED,MAAIC,iBAAiBpxB,OAAOsxB,gBAA5B,EAA8C;AAC5CtxB,WAAOsxB,gBAAP,CAAwBF,aAAxB;AACD;AACF;AACDlxB,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;ACxFA;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;;AAIA,IAAIkJ,eAAe,YAAY;AAAE,WAASjE,gBAAT,CAA0BkE,MAA1B,EAAkCC,KAAlC,EAAyC;AAAE,SAAK,IAAIrH,IAAI,CAAb,EAAgBA,IAAIqH,MAAMnH,MAA1B,EAAkCF,GAAlC,EAAuC;AAAE,UAAIsH,aAAaD,MAAMrH,CAAN,CAAjB,CAA2BsH,WAAWC,UAAX,GAAwBD,WAAWC,UAAX,IAAyB,KAAjD,CAAwDD,WAAWE,YAAX,GAA0B,IAA1B,CAAgC,IAAI,WAAWF,UAAf,EAA2BA,WAAWG,QAAX,GAAsB,IAAtB,CAA4B3J,OAAOC,cAAP,CAAsBqJ,MAAtB,EAA8BE,WAAW5C,GAAzC,EAA8C4C,UAA9C;AAA4D;AAAE,GAAC,OAAO,UAAUI,WAAV,EAAuBC,UAAvB,EAAmCC,WAAnC,EAAgD;AAAE,QAAID,UAAJ,EAAgBzE,iBAAiBwE,YAAYzE,SAA7B,EAAwC0E,UAAxC,EAAqD,IAAIC,WAAJ,EAAiB1E,iBAAiBwE,WAAjB,EAA8BE,WAA9B,EAA4C,OAAOF,WAAP;AAAqB,GAAhN;AAAmN,CAA9hB,EAAnB;;AAEA,IAAI9I,QAAQ,mBAAAC,CAAQ,CAAR,CAAZ;;AAEA,IAAIC,SAASC,uBAAuBH,KAAvB,CAAb;;AAEA,SAASG,sBAAT,CAAgCW,GAAhC,EAAqC;AAAE,SAAOA,OAAOA,IAAIC,UAAX,GAAwBD,GAAxB,GAA8B,EAAExB,SAASwB,GAAX,EAArC;AAAwD;;AAE/F,SAASmI,eAAT,CAAyBtH,QAAzB,EAAmCmH,WAAnC,EAAgD;AAAE,MAAI,EAAEnH,oBAAoBmH,WAAtB,CAAJ,EAAwC;AAAE,UAAM,IAAI9D,SAAJ,CAAc,mCAAd,CAAN;AAA2D;AAAE;;AAEzJ;;;AAGA,IAAI6B,iBAAiB,YAAY;AAC/B,WAASA,cAAT,GAA0B;AACxBoC,oBAAgB,IAAhB,EAAsBpC,cAAtB;;AAEA,SAAKjE,eAAL,GAAuB,IAAvB;AACD;;AAED2F,eAAa1B,cAAb,EAA6B,CAAC;AAC5Bf,SAAK,gBADuB;AAE5BzG,WAAO,SAASwE,cAAT,CAAwBsL,MAAxB,EAAgCC,cAAhC,EAAgDjG,OAAhD,EAAyDkG,YAAzD,EAAuE;AAC5E,WAAKC,OAAL,GAAeH,MAAf;AACA,WAAKI,eAAL,GAAuBH,cAAvB;AACA,WAAKtM,QAAL,GAAgBqG,OAAhB;;AAEA,UAAIxH,WAAW;AACbE,mBAAW;AADE,OAAf;;AAIA,UAAI8N,aAAa,KAAKC,aAAL,EAAjB;AACA,UAAIP,YAAJ,EAAkB;AAChBA,qBAAaM,UAAb,EAAyBR,MAAzB;AACD,OAFD,MAEO;AACLjP,eAAOZ,OAAP,CAAeO,MAAf,CAAsBgQ,WAAtB,CAAkCF,UAAlC,EAA8CR,MAA9C;AACD;;AAED,aAAOxN,QAAP;AACD;AAnB2B,GAAD,EAoB1B;AACDmE,SAAK,kBADJ;AAEDzG,WAAO,SAAS4D,gBAAT,CAA0BsN,cAA1B,EAA0C;AAC/C,UAAI,KAAKjE,WAAL,IAAoB,CAACiE,cAAzB,EAAyC;AACvCrQ,eAAOZ,OAAP,CAAeO,MAAf,CAAsB0D,WAAtB,CAAkC,KAAK+I,WAAvC,EAAoD,KAAKgD,OAAzD;AACD;;AAED,WAAKhD,WAAL,GAAmB,IAAnB;AACA,WAAKgD,OAAL,GAAe,IAAf;AACA,WAAKC,eAAL,GAAuB,IAAvB;AACA,WAAKzM,QAAL,GAAgB,IAAhB;AACD;AAXA,GApB0B,EAgC1B;AACDgD,SAAK,iBADJ;AAEDzG,WAAO,SAAS0D,eAAT,GAA2B;AAChC;AACD;AAJA,GAhC0B,EAqC1B;AACD+C,SAAK,eADJ;AAEDzG,WAAO,SAASuQ,aAAT,GAAyB;AAC9B;AACA,UAAI,KAAKtD,WAAL,IAAoB,IAAxB,EAA8B;AAC5B,aAAKA,WAAL,GAAmBpM,OAAOZ,OAAP,CAAeO,MAAf,CAAsBuxB,WAAtB,EAAnB;AACD;;AAED,aAAO,KAAK9kB,WAAZ;AACD;AATA,GArC0B,CAA7B;;AAiDA,SAAOzF,cAAP;AACD,CAzDoB,EAArB;;AA2DAzH,QAAQE,OAAR,GAAkBuH,cAAlB;AACA9G,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;AC/EA;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;;AAIA,IAAIkJ,eAAe,YAAY;AAAE,WAASjE,gBAAT,CAA0BkE,MAA1B,EAAkCC,KAAlC,EAAyC;AAAE,SAAK,IAAIrH,IAAI,CAAb,EAAgBA,IAAIqH,MAAMnH,MAA1B,EAAkCF,GAAlC,EAAuC;AAAE,UAAIsH,aAAaD,MAAMrH,CAAN,CAAjB,CAA2BsH,WAAWC,UAAX,GAAwBD,WAAWC,UAAX,IAAyB,KAAjD,CAAwDD,WAAWE,YAAX,GAA0B,IAA1B,CAAgC,IAAI,WAAWF,UAAf,EAA2BA,WAAWG,QAAX,GAAsB,IAAtB,CAA4B3J,OAAOC,cAAP,CAAsBqJ,MAAtB,EAA8BE,WAAW5C,GAAzC,EAA8C4C,UAA9C;AAA4D;AAAE,GAAC,OAAO,UAAUI,WAAV,EAAuBC,UAAvB,EAAmCC,WAAnC,EAAgD;AAAE,QAAID,UAAJ,EAAgBzE,iBAAiBwE,YAAYzE,SAA7B,EAAwC0E,UAAxC,EAAqD,IAAIC,WAAJ,EAAiB1E,iBAAiBwE,WAAjB,EAA8BE,WAA9B,EAA4C,OAAOF,WAAP;AAAqB,GAAhN;AAAmN,CAA9hB,EAAnB;;AAEA,IAAI9I,QAAQ,mBAAAC,CAAQ,CAAR,CAAZ;;AAEA,IAAIC,SAASC,uBAAuBH,KAAvB,CAAb;;AAEA,SAASG,sBAAT,CAAgCW,GAAhC,EAAqC;AAAE,SAAOA,OAAOA,IAAIC,UAAX,GAAwBD,GAAxB,GAA8B,EAAExB,SAASwB,GAAX,EAArC;AAAwD;;AAE/F,SAASmI,eAAT,CAAyBtH,QAAzB,EAAmCmH,WAAnC,EAAgD;AAAE,MAAI,EAAEnH,oBAAoBmH,WAAtB,CAAJ,EAAwC;AAAE,UAAM,IAAI9D,SAAJ,CAAc,mCAAd,CAAN;AAA2D;AAAE;;AAEzJ;;;AAGA,IAAIkC,gBAAgB,YAAY;AAC9B,WAASA,aAAT,CAAuBjF,OAAvB,EAAgC;AAC9BgH,oBAAgB,IAAhB,EAAsB/B,aAAtB;;AAEA,SAAKtE,eAAL,GAAuBX,OAAvB;AACA,SAAKovB,WAAL,GAAmB3rB,OAAOzD,OAAP,CAAnB;AACD;;AAEDsG,eAAarB,aAAb,EAA4B,CAAC;AAC3BpB,SAAK,gBADsB;AAE3BzG,WAAO,SAASwE,cAAT,CAAwBsL,MAAxB,EAAgCC,cAAhC,EAAgDjG,OAAhD,EAAyDkG,YAAzD,EAAuE;AAC5E,WAAKC,OAAL,GAAeH,MAAf;AACA,WAAKI,eAAL,GAAuBH,cAAvB;AACA,WAAKtM,QAAL,GAAgBqG,OAAhB;AACA,WAAKqG,QAAL,GAAgBtP,OAAOZ,OAAP,CAAeE,OAAf,EAAhB;;AAEA;AACA,UAAImQ,aAAa,KAAKC,aAAL,EAAjB;;AAEA,UAAIP,YAAJ,EAAkB;AAChBA,qBAAaM,UAAb,EAAyBR,MAAzB;AACD,OAFD,MAEO;AACLjP,eAAOZ,OAAP,CAAeO,MAAf,CAAsBgQ,WAAtB,CAAkCF,UAAlC,EAA8CR,MAA9C;AACD;;AAED,UAAIxN,WAAW;AACbE,mBAAW;AADE,OAAf;;AAIA3B,aAAOZ,OAAP,CAAeM,IAAf,CAAoBoD,UAApB,CAA+Ba,cAA/B,CAA8C,IAA9C;;AAEA,aAAOlC,QAAP;AACD;AAxB0B,GAAD,EAyBzB;AACDmE,SAAK,kBADJ;AAEDzG,WAAO,SAAS4D,gBAAT,CAA0BsN,cAA1B,EAA0C;AAC/C,UAAI,KAAKjE,WAAL,IAAoB,CAACiE,cAAzB,EAAyC;AACvCrQ,eAAOZ,OAAP,CAAeO,MAAf,CAAsB0D,WAAtB,CAAkC,KAAK+I,WAAvC,EAAoD,KAAKgD,OAAzD;AACD;;AAEDpP,aAAOZ,OAAP,CAAeM,IAAf,CAAoBoD,UAApB,CAA+BC,gBAA/B,CAAgD,IAAhD;;AAEA,WAAKL,eAAL,GAAuB,IAAvB;AACA,WAAK0J,WAAL,GAAmB,IAAnB;AACA,WAAKgD,OAAL,GAAe,IAAf;AACA,WAAKC,eAAL,GAAuB,IAAvB;AACA,WAAKzM,QAAL,GAAgB,IAAhB;AACA,WAAKuuB,WAAL,GAAmB,IAAnB;AACD;AAfA,GAzByB,EAyCzB;AACDvrB,SAAK,iBADJ;AAEDzG,WAAO,SAAS0D,eAAT,CAAyBJ,WAAzB,EAAsCuF,WAAtC,EAAmDiB,OAAnD,EAA4D;AACjE;AACA,UAAIxG,gBAAgBuF,WAApB,EAAiC;AAC/B;AACA,aAAKtF,eAAL,GAAuBsF,WAAvB;AACA;AACA,aAAKmpB,WAAL,GAAmB3rB,OAAOwC,WAAP,CAAnB;AACAhI,eAAOZ,OAAP,CAAeO,MAAf,CAAsByxB,UAAtB,CAAiC,KAAK1hB,aAAL,EAAjC,EAAuD,KAAKyhB,WAA5D;AACAnxB,eAAOZ,OAAP,CAAeM,IAAf,CAAoBoD,UAApB,CAA+BwJ,gBAA/B,CAAgD,IAAhD;AACD;AACF;AAZA,GAzCyB,EAsDzB;AACD1G,SAAK,eADJ;AAEDzG,WAAO,SAASuQ,aAAT,GAAyB;AAC9B,UAAI,KAAKtD,WAAL,IAAoB,IAAxB,EAA8B;AAC5B,aAAKA,WAAL,GAAmBpM,OAAOZ,OAAP,CAAeO,MAAf,CAAsB0xB,UAAtB,CAAiC,KAAKF,WAAtC,CAAnB;AACD;AACD,aAAO,KAAK/kB,WAAZ;AACD;AAPA,GAtDyB,CAA5B;;AAgEA,SAAOpF,aAAP;AACD,CAzEmB,EAApB;;AA2EA9H,QAAQE,OAAR,GAAkB4H,aAAlB;AACAnH,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;AC/FA;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;;AAIA,IAAIkJ,eAAe,YAAY;AAAE,WAASjE,gBAAT,CAA0BkE,MAA1B,EAAkCC,KAAlC,EAAyC;AAAE,SAAK,IAAIrH,IAAI,CAAb,EAAgBA,IAAIqH,MAAMnH,MAA1B,EAAkCF,GAAlC,EAAuC;AAAE,UAAIsH,aAAaD,MAAMrH,CAAN,CAAjB,CAA2BsH,WAAWC,UAAX,GAAwBD,WAAWC,UAAX,IAAyB,KAAjD,CAAwDD,WAAWE,YAAX,GAA0B,IAA1B,CAAgC,IAAI,WAAWF,UAAf,EAA2BA,WAAWG,QAAX,GAAsB,IAAtB,CAA4B3J,OAAOC,cAAP,CAAsBqJ,MAAtB,EAA8BE,WAAW5C,GAAzC,EAA8C4C,UAA9C;AAA4D;AAAE,GAAC,OAAO,UAAUI,WAAV,EAAuBC,UAAvB,EAAmCC,WAAnC,EAAgD;AAAE,QAAID,UAAJ,EAAgBzE,iBAAiBwE,YAAYzE,SAA7B,EAAwC0E,UAAxC,EAAqD,IAAIC,WAAJ,EAAiB1E,iBAAiBwE,WAAjB,EAA8BE,WAA9B,EAA4C,OAAOF,WAAP;AAAqB,GAAhN;AAAmN,CAA9hB,EAAnB;;AAEA,IAAI0oB,aAAa,mBAAAvxB,CAAQ,EAAR,CAAjB;;AAEA,IAAIwxB,cAActxB,uBAAuBqxB,UAAvB,CAAlB;;AAEA,IAAIE,WAAW,mBAAAzxB,CAAQ,EAAR,CAAf;;AAEA,IAAI0xB,YAAYxxB,uBAAuBuxB,QAAvB,CAAhB;;AAEA,IAAI1xB,QAAQ,mBAAAC,CAAQ,CAAR,CAAZ;;AAEA,IAAIC,SAASC,uBAAuBH,KAAvB,CAAb;;AAEA,IAAI2O,OAAO,mBAAA1O,CAAQ,EAAR,CAAX;;AAEA,IAAI2O,QAAQzO,uBAAuBwO,IAAvB,CAAZ;;AAEA,IAAIpO,wBAAwB,mBAAAN,CAAQ,CAAR,CAA5B;;AAEA,IAAIO,yBAAyBL,uBAAuBI,qBAAvB,CAA7B;;AAEA,IAAIE,yBAAyB,mBAAAR,CAAQ,CAAR,CAA7B;;AAEA,IAAIS,0BAA0BP,uBAAuBM,sBAAvB,CAA9B;;AAEA,IAAImxB,gBAAgB,mBAAA3xB,CAAQ,EAAR,CAApB;;AAEA,IAAI4xB,iBAAiB1xB,uBAAuByxB,aAAvB,CAArB;;AAEA,SAASzxB,sBAAT,CAAgCW,GAAhC,EAAqC;AAAE,SAAOA,OAAOA,IAAIC,UAAX,GAAwBD,GAAxB,GAA8B,EAAExB,SAASwB,GAAX,EAArC;AAAwD;;AAE/F,SAASmI,eAAT,CAAyBtH,QAAzB,EAAmCmH,WAAnC,EAAgD;AAAE,MAAI,EAAEnH,oBAAoBmH,WAAtB,CAAJ,EAAwC;AAAE,UAAM,IAAI9D,SAAJ,CAAc,mCAAd,CAAN;AAA2D;AAAE;;AAEzJ,SAAS8sB,gBAAT,CAA0BhY,EAA1B,EAA8BnY,QAA9B,EAAwC8H,QAAxC,EAAkD;AAChD,MAAI;AACF,WAAOqQ,IAAP;AACD,GAFD,CAEE,OAAOqB,CAAP,EAAU;AACV,QAAI1R,QAAJ,EAAc;AACZA,eAAS0R,CAAT;AACD,KAFD,MAEO;AACL4W,kBAAYpwB,QAAZ,EAAsBwZ,CAAtB;AACD;AACF;AACF;;AAED,SAAS4W,WAAT,CAAqBpwB,QAArB,EAA+BqwB,KAA/B,EAAsC;AACpC,MAAIC,WAAW,KAAK,CAApB;AACA,MAAIlmB,YAAYpK,QAAhB;;AAEA,SAAOoK,SAAP,EAAkB;AAChB,QAAI,OAAOA,UAAUmmB,iBAAjB,KAAuC,UAA3C,EAAuD;AACrDD,iBAAWlmB,SAAX;AACA;AACD,KAHD,MAGO,IAAIA,UAAUlK,SAAV,IAAuBkK,UAAUlK,SAAV,CAAoB0N,eAA/C,EAAgE;AACrExD,kBAAYA,UAAUlK,SAAV,CAAoB0N,eAAhC;AACD,KAFM,MAEA;AACL;AACD;AACF;;AAED,MAAI0iB,QAAJ,EAAc;AACZA,aAASC,iBAAT,CAA2BF,KAA3B;AACD,GAFD,MAEO;AACL,QAAI9xB,OAAOZ,OAAP,CAAeG,OAAnB,EAA4B;AAC1Bsa,iBAAW,YAAY;AACrB,cAAMiY,KAAN;AACD,OAFD,EAEG,CAFH;AAGD,KAJD,MAIO;AACL,YAAMA,KAAN;AACD;AACF;AACF;;AAED,IAAIG,mBAAmB,KAAK,CAA5B;AACA,IAAI,KAAJ,EAA2C;AACzCA,qBAAmB,SAASA,gBAAT,CAA0B1oB,QAA1B,EAAoCsI,UAApC,EAAgDhL,IAAhD,EAAsD;AACvE7G,WAAOZ,OAAP,CAAe6C,QAAf,IAA2BjC,OAAOZ,OAAP,CAAe6C,QAAf,CAAwBiwB,eAAxB,CAAwCrgB,UAAxC,EAAoDhL,IAApD,CAA3B;AACA0C;AACAvJ,WAAOZ,OAAP,CAAe6C,QAAf,IAA2BjC,OAAOZ,OAAP,CAAe6C,QAAf,CAAwBkwB,cAAxB,CAAuCtgB,UAAvC,EAAmDhL,IAAnD,CAA3B;AACD,GAJD;AAKD;;AAED;;;;AAIA,IAAIE,qBAAqB,YAAY;AACnC,WAASA,kBAAT,CAA4BhF,OAA5B,EAAqC;AACnCgH,oBAAgB,IAAhB,EAAsBhC,kBAAtB;;AAEA,SAAKrE,eAAL,GAAuBX,OAAvB;AACD;;AAEDsG,eAAatB,kBAAb,EAAiC,CAAC;AAChCnB,SAAK,SAD2B;AAEhCzG,WAAO,SAAS4N,OAAT,GAAmB;AACxB,UAAIlG,OAAO,KAAKnE,eAAL,CAAqBmE,IAAhC;AACA,UAAI3C,cAAc,KAAK2H,SAAL,IAAkB,KAAKA,SAAL,CAAe3H,WAAnD;AACA,aAAO2C,KAAKurB,WAAL,IAAoBluB,eAAeA,YAAYkuB,WAA/C,IAA8DvrB,KAAKlC,IAAnE,IAA2ET,eAAeA,YAAYS,IAAtG,IAA8G,IAArH;AACD;AAN+B,GAAD,EAO9B;AACDiB,SAAK,gBADJ;AAEDzG,WAAO,SAASwE,cAAT,CAAwBsL,MAAxB,EAAgCC,cAAhC,EAAgDjG,OAAhD,EAAyDkG,YAAzD,EAAuE;AAC5E,UAAIW,QAAQ,IAAZ;;AAEA,WAAKV,OAAL,GAAeH,MAAf;AACA,WAAKI,eAAL,GAAuBH,cAAvB;AACA,WAAKtM,QAAL,GAAgBqG,OAAhB;AACA,WAAKqG,QAAL,GAAgBtP,OAAOZ,OAAP,CAAeE,OAAf,EAAhB;AACA,WAAK+yB,YAAL,GAAoB,CAApB;;AAEA,UAAI,KAAJ,EAA2C;AACzCryB,eAAOZ,OAAP,CAAe6C,QAAf,IAA2BjC,OAAOZ,OAAP,CAAe6C,QAAf,CAAwBqwB,oBAAxB,CAA6C,KAAKhjB,QAAlD,EAA4D,IAA5D,CAA3B;AACD;;AAED,UAAItG,YAAY,KAAKtG,eAAL,CAAqBmE,IAArC;AACA,UAAI0rB,cAAc,KAAK7vB,eAAL,CAAqB6F,KAAvC;AACA,UAAIiqB,UAAUxpB,UAAU7E,SAAxB;AACA,UAAIiF,mBAAmBopB,WAAWxpB,UAAU7E,SAAV,CAAoBiF,gBAAtD;AACA;AACA,UAAIqpB,mBAAmBD,WAAWxpB,UAAU7E,SAAV,CAAoBrC,MAAtD;;AAEA;AACA,UAAI4wB,gBAAgB,KAAKC,eAAL,CAAqB1pB,OAArB,CAApB;;AAEA;AACA,UAAIxH,WAAW,KAAK,CAApB;AACA,UAAImxB,kBAAkB,KAAK,CAA3B;;AAEA,UAAIxpB,oBAAoBqpB,gBAAxB,EAA0C;AACxC;AACAhxB,mBAAW,IAAIuH,SAAJ,CAAcupB,WAAd,EAA2BG,aAA3B,EAA0CjB,UAAUryB,OAApD,CAAX;AACD,OAHD,MAGO,IAAI,OAAO4J,SAAP,KAAqB,UAAzB,EAAqC;AAC1C;AACAvH,mBAAW,IAAI8vB,YAAYnyB,OAAhB,CAAwB4J,SAAxB,CAAX;AACD,OAHM,MAGA;AACL,cAAM/B,MAAM,4BAA4BC,KAAKC,SAAL,CAAe6B,SAAf,CAAlC,CAAN;AACD;;AAED;AACA;AACAvH,eAAS8G,KAAT,GAAiBgqB,WAAjB;AACA9wB,eAASwH,OAAT,GAAmBypB,aAAnB;AACAjxB,eAAS0H,IAAT,GAAgB,EAAhB;;AAEA;AACA1H,eAASyH,OAAT,GAAmBuoB,UAAUryB,OAA7B;AACAqC,eAASE,SAAT,GAAqB,IAArB;AACA,WAAKkK,SAAL,GAAiBpK,QAAjB;;AAEA;AACA,UAAIoxB,eAAepxB,SAASwe,KAA5B;AACA,UAAI4S,iBAAiBttB,SAArB,EAAgC;AAC9B;AACA9D,iBAASwe,KAAT,GAAiB4S,eAAe,IAAhC;AACD;;AAED,UAAIf,QAAQ,IAAZ;AACA,UAAIgB,gBAAgB,SAASA,aAAT,CAAuB7X,CAAvB,EAA0B;AAC5C6W,gBAAQ7W,CAAR;AACD,OAFD;;AAIA2W,uBAAiB,YAAY;AAC3B,YAAInwB,SAASsxB,kBAAb,EAAiC;AAC/B,cAAI,KAAJ,EAA2C;AACzCd,6BAAiB,YAAY;AAC3BxwB,uBAASsxB,kBAAT;AACD,aAFD,EAEGjjB,MAAMR,QAFT,EAEmB,mBAFnB;AAGD,WAJD,MAIO;AACL7N,qBAASsxB,kBAAT;AACD;AACF;AACF,OAVD,EAUGtxB,QAVH,EAUaqxB,aAVb;;AAYA,UAAIF,mBAAmB,IAAvB,EAA6B;AAC3B5yB,eAAOZ,OAAP,CAAeC,SAAf,GAA2B,IAA3B;AACA;AACAoC,iBAASwe,KAAT,GAAiB,KAAK+S,oBAAL,CAA0BT,WAA1B,EAAuCG,aAAvC,CAAjB;;AAEAd,yBAAiB,YAAY;AAC3B,cAAI,KAAJ,EAA2C;AACzCK,6BAAiB,YAAY;AAC3BW,gCAAkBnxB,SAASK,MAAT,EAAlB;AACD,aAFD,EAEGgO,MAAMR,QAFT,EAEmB,QAFnB;AAGD,WAJD,MAIO;AACLsjB,8BAAkBnxB,SAASK,MAAT,EAAlB;AACD;AACF,SARD,EAQGL,QARH,EAQaqxB,aARb;;AAUA9yB,eAAOZ,OAAP,CAAeC,SAAf,GAA2B,IAA3B;AACD;;AAED,WAAK8M,kBAAL,GAA0B,CAAC,GAAG7L,uBAAuBlB,OAA3B,EAAoCwzB,eAApC,CAA1B;AACA,WAAKzmB,kBAAL,CAAwBxI,cAAxB,CAAuC,KAAKyL,OAA5C,EAAqD3N,QAArD,EAA+D,KAAKwxB,oBAAL,CAA0BhqB,OAA1B,CAA/D,EAAmGkG,YAAnG;;AAEA,UAAI2iB,KAAJ,EAAW;AACTD,oBAAYpwB,QAAZ,EAAsBqwB,KAAtB;AACD;;AAED,UAAI,KAAKpvB,eAAL,IAAwB,KAAKA,eAAL,CAAqBmK,GAAjD,EAAsD;AACpD6B,cAAMtP,OAAN,CAAcwQ,MAAd,CAAqB,KAAKlN,eAAL,CAAqByK,MAA1C,EAAkD,KAAKzK,eAAL,CAAqBmK,GAAvE,EAA4E,IAA5E;AACD;;AAED+kB,uBAAiB,YAAY;AAC3B,YAAInwB,SAASyxB,iBAAb,EAAgC;AAC9B,cAAI,KAAJ,EAA2C;AACzCjB,6BAAiB,YAAY;AAC3BxwB,uBAASyxB,iBAAT;AACD,aAFD,EAEGpjB,MAAMR,QAFT,EAEmB,mBAFnB;AAGD,WAJD,MAIO;AACL7N,qBAASyxB,iBAAT;AACD;AACF;AACF,OAVD,EAUGzxB,QAVH;;AAYAzB,aAAOZ,OAAP,CAAeM,IAAf,CAAoBoD,UAApB,CAA+Ba,cAA/B,CAA8C,IAA9C;;AAEA,UAAI,KAAJ,EAA2C;AACzC3D,eAAOZ,OAAP,CAAe6C,QAAf,IAA2BjC,OAAOZ,OAAP,CAAe6C,QAAf,CAAwBkxB,mBAAxB,CAA4C,KAAK7jB,QAAjD,CAA3B;AACD;;AAED,aAAO7N,QAAP;AACD;AA1HA,GAP8B,EAkI9B;AACDmE,SAAK,kBADJ;AAEDzG,WAAO,SAAS4D,gBAAT,CAA0BsN,cAA1B,EAA0C;AAC/C,UAAI5O,WAAW,KAAKoK,SAApB;;AAEA+lB,uBAAiB,YAAY;AAC3B,YAAInwB,SAAS2xB,oBAAb,EAAmC;AACjC3xB,mBAAS2xB,oBAAT;AACD;AACF,OAJD,EAIG3xB,QAJH;;AAMAzB,aAAOZ,OAAP,CAAeM,IAAf,CAAoBoD,UAApB,CAA+BC,gBAA/B,CAAgD,IAAhD;;AAEAtB,eAASE,SAAT,GAAqB,IAArB;;AAEA,UAAI,KAAKwK,kBAAL,IAA2B,IAA/B,EAAqC;AACnC,YAAIU,MAAM,KAAKnK,eAAL,CAAqBmK,GAA/B;AACA,YAAIA,GAAJ,EAAS;AACP6B,gBAAMtP,OAAN,CAAckR,MAAd,CAAqB,KAAK5N,eAAL,CAAqByK,MAA1C,EAAkDN,GAAlD,EAAuD,IAAvD;AACD;;AAED,aAAKV,kBAAL,CAAwBpJ,gBAAxB,CAAyCsN,cAAzC;AACA,aAAKlE,kBAAL,GAA0B,IAA1B;AACA,aAAKN,SAAL,GAAiB,IAAjB;AACD;;AAED,WAAKnJ,eAAL,GAAuB,IAAvB;AACA,WAAK2M,eAAL,GAAuB,IAAvB;;AAEA;AACA;AACA;AACA,WAAKgkB,kBAAL,GAA0B,IAA1B;AACA,WAAKC,mBAAL,GAA2B,KAA3B;;AAEA;AACA;AACA,WAAK1wB,QAAL,GAAgB,IAAhB;AACD;;AAED;;;;;AAxCC,GAlI8B,EA+K9B;AACDgD,SAAK,iBADJ;AAEDzG,WAAO,SAASwzB,eAAT,CAAyB1pB,OAAzB,EAAkC;AACvC,UAAID,YAAY,KAAKtG,eAAL,CAAqBmE,IAArC;AACA,UAAI0sB,eAAevqB,UAAUuqB,YAA7B;AACA,UAAI,CAACA,YAAL,EAAmB;AACjB,eAAO,EAAP;AACD;AACD,UAAIC,gBAAgB,EAApB;AACA,WAAK,IAAIC,WAAT,IAAwBF,YAAxB,EAAsC;AACpCC,sBAAcC,WAAd,IAA6BxqB,QAAQwqB,WAAR,CAA7B;AACD;AACD,aAAOD,aAAP;AACD;AAbA,GA/K8B,EA6L9B;AACD5tB,SAAK,sBADJ;AAEDzG,WAAO,SAAS8zB,oBAAT,CAA8BS,cAA9B,EAA8C;AACnD,UAAIjyB,WAAW,KAAKoK,SAApB;AACA,UAAI8nB,eAAelyB,SAASmyB,eAAT,IAA4BnyB,SAASmyB,eAAT,EAA/C;AACA,UAAID,YAAJ,EAAkB;AAChB,eAAO30B,OAAOoP,MAAP,CAAc,EAAd,EAAkBslB,cAAlB,EAAkCC,YAAlC,CAAP;AACD;AACD,aAAOD,cAAP;AACD;AATA,GA7L8B,EAuM9B;AACD9tB,SAAK,sBADJ;AAEDzG,WAAO,SAAS6zB,oBAAT,CAA8BzqB,KAA9B,EAAqCU,OAArC,EAA8C;AACnD,UAAIxH,WAAW,KAAKoK,SAApB;AACA,UAAIgoB,QAAQ,KAAKR,kBAAjB;AACA,UAAI,CAACQ,KAAL,EAAY;AACV,eAAOpyB,SAASwe,KAAhB;AACD;AACD;AACA,WAAKoT,kBAAL,GAA0B,IAA1B;AACA,UAAIS,YAAY90B,OAAOoP,MAAP,CAAc,EAAd,EAAkB3M,SAASwe,KAA3B,CAAhB;AACA,WAAK,IAAI/e,IAAI,CAAb,EAAgBA,IAAI2yB,MAAMzyB,MAA1B,EAAkCF,GAAlC,EAAuC;AACrC,YAAI6yB,UAAUF,MAAM3yB,CAAN,CAAd;AACAlC,eAAOoP,MAAP,CAAc0lB,SAAd,EAAyB,OAAOC,OAAP,KAAmB,UAAnB,GAAgCA,QAAQ3oB,IAAR,CAAa3J,QAAb,EAAuBqyB,SAAvB,EAAkCvrB,KAAlC,EAAyCU,OAAzC,CAAhC,GAAoF8qB,OAA7G;AACD;;AAED,aAAOD,SAAP;AACD;AAjBA,GAvM8B,EAyN9B;AACDluB,SAAK,iBADJ;AAEDzG,WAAO,SAAS0D,eAAT,CAAyBJ,WAAzB,EAAsCuF,WAAtC,EAAmDrF,mBAAnD,EAAwEqxB,mBAAxE,EAA6F;AAClG,UAAIvyB,WAAW,KAAKoK,SAApB;;AAEA,UAAI,KAAJ,EAA2C;AACzC7L,eAAOZ,OAAP,CAAe6C,QAAf,IAA2BjC,OAAOZ,OAAP,CAAe6C,QAAf,CAAwBgyB,qBAAxB,CAA8C,KAAK3kB,QAAnD,EAA6D,IAA7D,CAA3B;AACD;;AAED,UAAI,CAAC7N,QAAL,EAAe;AACboT,gBAAQid,KAAR,CAAc,wBAAwB,KAAK/kB,OAAL,EAAxB,GAAyC,0DAAvD;AACD;;AAED,UAAImnB,cAAc,KAAlB;AACA,UAAIzjB,cAAc,KAAK,CAAvB;AACA,UAAIG,YAAY,KAAK,CAArB;;AAEA;AACA,UAAI,KAAKhO,QAAL,KAAkBoxB,mBAAtB,EAA2C;AACzCvjB,sBAAchP,SAASwH,OAAvB;AACD,OAFD,MAEO;AACLwH,sBAAc,KAAKkiB,eAAL,CAAqBqB,mBAArB,CAAd;AACAE,sBAAc,IAAd;AACD;;AAED;AACA,UAAIzxB,gBAAgBuF,WAApB,EAAiC;AAC/B;AACA;AACA4I,oBAAY5I,YAAYO,KAAxB;AACD,OAJD,MAIO;AACLqI,oBAAY5I,YAAYO,KAAxB;AACA2rB,sBAAc,IAAd;AACD;;AAED,UAAIC,cAAcD,eAAezyB,SAAS2yB,yBAA1C;;AAEA,UAAID,WAAJ,EAAiB;AACf;AACA,aAAKE,aAAL,GAAqB,IAArB;AACAzC,yBAAiB,YAAY;AAC3BnwB,mBAAS2yB,yBAAT,CAAmCxjB,SAAnC,EAA8CH,WAA9C;AACD,SAFD,EAEGhP,QAFH;AAGA,aAAK4yB,aAAL,GAAqB,KAArB;AACD;;AAED;AACA3lB,YAAMtP,OAAN,CAAcsR,MAAd,CAAqBjO,WAArB,EAAkCuF,WAAlC,EAA+C,IAA/C;;AAEA;AACA,UAAIssB,eAAe,IAAnB;AACA,UAAI3jB,YAAYlP,SAAS8G,KAAzB;AACA,UAAIgsB,YAAY9yB,SAASwe,KAAzB;AACA;AACA,UAAI6T,YAAY,KAAKd,oBAAL,CAA0BpiB,SAA1B,EAAqCH,WAArC,CAAhB;;AAEA;AACA,UAAI,CAAC,KAAK6iB,mBAAV,EAA+B;AAC7B,YAAI7xB,SAAS+yB,qBAAb,EAAoC;AAClCF,yBAAe1C,iBAAiB,YAAY;AAC1C,mBAAOnwB,SAAS+yB,qBAAT,CAA+B5jB,SAA/B,EAA0CkjB,SAA1C,EAAqDrjB,WAArD,CAAP;AACD,WAFc,EAEZhP,QAFY,CAAf;AAGD,SAJD,MAIO,IAAIA,SAAS8sB,oBAAb,EAAmC;AACxC+F,yBAAe,CAAC,CAAC,GAAG3C,eAAevyB,OAAnB,EAA4BuR,SAA5B,EAAuCC,SAAvC,CAAD,IAAsD,CAAC,CAAC,GAAG+gB,eAAevyB,OAAnB,EAA4Bm1B,SAA5B,EAAuCT,SAAvC,CAAtE;AACD;AACF;;AAED,UAAIQ,YAAJ,EAAkB;AAChB,aAAKhB,mBAAL,GAA2B,KAA3B;AACA;AACA,YAAI9iB,cAAc/O,SAASwH,OAA3B;;AAEA;AACA;AACA2oB,yBAAiB,YAAY;AAC3B,cAAInwB,SAASgzB,mBAAb,EAAkC;AAChChzB,qBAASgzB,mBAAT,CAA6B7jB,SAA7B,EAAwCkjB,SAAxC,EAAmDrjB,WAAnD;AACD;AACF,SAJD,EAIGhP,QAJH;;AAMA;AACA,aAAKiB,eAAL,GAAuBsF,WAAvB;AACA,aAAKpF,QAAL,GAAgBoxB,mBAAhB;AACAvyB,iBAAS8G,KAAT,GAAiBqI,SAAjB;AACAnP,iBAASwe,KAAT,GAAiB6T,SAAjB;AACAryB,iBAASwH,OAAT,GAAmBwH,WAAnB;;AAEA,aAAKikB,wBAAL,CAA8BV,mBAA9B;;AAEApC,yBAAiB,YAAY;AAC3B,cAAInwB,SAASkzB,kBAAb,EAAiC;AAC/BlzB,qBAASkzB,kBAAT,CAA4BhkB,SAA5B,EAAuC4jB,SAAvC,EAAkD/jB,WAAlD;AACD;AACF,SAJD,EAIG/O,QAJH;;AAMA,aAAK4wB,YAAL;AACD,OA7BD,MA6BO;AACL;AACA;AACA,aAAK3vB,eAAL,GAAuBsF,WAAvB;AACA,aAAKpF,QAAL,GAAgBoxB,mBAAhB;AACAvyB,iBAAS8G,KAAT,GAAiBqI,SAAjB;AACAnP,iBAASwe,KAAT,GAAiB6T,SAAjB;AACAryB,iBAASwH,OAAT,GAAmBwH,WAAnB;AACD;;AAED;AACA,UAAI0jB,WAAJ,EAAiB;AACf,YAAIS,YAAY,KAAKC,iBAArB;AACA,aAAKA,iBAAL,GAAyB,IAAzB;AACApD,kBAAUryB,OAAV,CAAkB01B,YAAlB,CAA+BF,SAA/B,EAA0CnzB,QAA1C;AACD;;AAED,UAAI,KAAJ,EAA2C;AACzCzB,eAAOZ,OAAP,CAAe6C,QAAf,IAA2BjC,OAAOZ,OAAP,CAAe6C,QAAf,CAAwB8yB,oBAAxB,CAA6C,KAAKzlB,QAAlD,CAA3B;AACD;;AAEDtP,aAAOZ,OAAP,CAAeM,IAAf,CAAoBoD,UAApB,CAA+BwJ,gBAA/B,CAAgD,IAAhD;AACD;;AAED;;;;AAxHC,GAzN8B,EAqV9B;AACD1G,SAAK,0BADJ;AAEDzG,WAAO,SAASu1B,wBAAT,CAAkCzrB,OAAlC,EAA2C;AAChD,UAAI+I,SAAS,IAAb;;AAEA,UAAIzP,wBAAwB,KAAK4J,kBAAjC;AACA,UAAI6oB,sBAAsBzyB,sBAAsBG,eAAhD;;AAEA,UAAIjB,WAAW,KAAKoK,SAApB;AACA,UAAIopB,sBAAsB,KAAK,CAA/B;;AAEAj1B,aAAOZ,OAAP,CAAeC,SAAf,GAA2B,IAA3B;;AAEAuyB,uBAAiB,YAAY;AAC3B,YAAI,KAAJ,EAA2C;AACzCK,2BAAiB,YAAY;AAC3BgD,kCAAsBxzB,SAASK,MAAT,EAAtB;AACD,WAFD,EAEGkQ,OAAO1C,QAFV,EAEoB,QAFpB;AAGD,SAJD,MAIO;AACL2lB,gCAAsBxzB,SAASK,MAAT,EAAtB;AACD;AACF,OARD,EAQGL,QARH;;AAUAzB,aAAOZ,OAAP,CAAeC,SAAf,GAA2B,IAA3B;;AAEA,UAAI,CAAC,GAAGmB,wBAAwBpB,OAA5B,EAAqC41B,mBAArC,EAA0DC,mBAA1D,CAAJ,EAAoF;AAClF1yB,8BAAsBM,eAAtB,CAAsCmyB,mBAAtC,EAA2DC,mBAA3D,EAAgF1yB,sBAAsBK,QAAtG,EAAgH,KAAKqwB,oBAAL,CAA0BhqB,OAA1B,CAAhH;AACA,YAAI,KAAJ,EAA2C;AACzCjJ,iBAAOZ,OAAP,CAAe6C,QAAf,IAA2BjC,OAAOZ,OAAP,CAAe6C,QAAf,CAAwB2P,eAAxB,CAAwC;AACjEC,wBAAY,KAAKvC,QADgD;AAEjEzI,kBAAM,kBAF2D;AAGjE6K,qBAAS;AAHwD,WAAxC,CAA3B;AAKD;AACF,OATD,MASO;AACL,YAAI8B,WAAWjR,sBAAsBmN,aAAtB,EAAf;AACAnN,8BAAsBQ,gBAAtB,CAAuC,IAAvC;;AAEA,aAAKoJ,kBAAL,GAA0B,CAAC,GAAG7L,uBAAuBlB,OAA3B,EAAoC61B,mBAApC,CAA1B;AACA,aAAK9oB,kBAAL,CAAwBxI,cAAxB,CAAuC,KAAKyL,OAA5C,EAAqD3N,QAArD,EAA+D,KAAKwxB,oBAAL,CAA0BhqB,OAA1B,CAA/D,EAAmG,UAAUsK,QAAV,EAAoBtE,MAApB,EAA4B;AAC7H;AACA,cAAI,CAACjO,MAAMC,OAAN,CAAcsS,QAAd,CAAL,EAA8B;AAC5BA,uBAAW,CAACA,QAAD,CAAX;AACD;;AAED;AACA,cAAI,CAACvS,MAAMC,OAAN,CAAcuS,QAAd,CAAL,EAA8B;AAC5BA,uBAAW,CAACA,QAAD,CAAX;AACD;;AAED;AACA,cAAIC,eAAe,KAAK,CAAxB;AACA,eAAK,IAAIvS,IAAI,CAAb,EAAgBA,IAAIqS,SAASnS,MAA7B,EAAqCF,GAArC,EAA0C;AACxC,gBAAIyS,QAAQJ,SAASrS,CAAT,CAAZ;AACA,gBAAIsS,SAAStS,CAAT,CAAJ,EAAiB;AACflB,qBAAOZ,OAAP,CAAeO,MAAf,CAAsBiU,YAAtB,CAAmCD,KAAnC,EAA0CH,SAAStS,CAAT,CAA1C;AACD,aAFD,MAEO;AACLlB,qBAAOZ,OAAP,CAAeO,MAAf,CAAsByT,WAAtB,CAAkCO,KAAlC,EAAyCF,YAAzC;AACD;AACDA,2BAAeE,KAAf;AACD;;AAED;AACA,cAAIJ,SAASnS,MAAT,GAAkBoS,SAASpS,MAA/B,EAAuC;AACrC,iBAAK,IAAI+R,KAAKI,SAASnS,MAAvB,EAA+B+R,KAAKK,SAASpS,MAA7C,EAAqD+R,IAArD,EAA2D;AACzDnT,qBAAOZ,OAAP,CAAeO,MAAf,CAAsB0D,WAAtB,CAAkCmQ,SAASL,EAAT,CAAlC;AACD;AACF;AACF,SA7BD;AA8BD;AACF;AAtEA,GArV8B,EA4Z9B;AACDvN,SAAK,eADJ;AAEDzG,WAAO,SAASuQ,aAAT,GAAyB;AAC9B,UAAIlM,oBAAoB,KAAK2I,kBAA7B;AACA,UAAI3I,iBAAJ,EAAuB;AACrB,eAAOA,kBAAkBkM,aAAlB,EAAP;AACD;AACF;AAPA,GA5Z8B,EAoa9B;AACD9J,SAAK,mBADJ;AAEDzG,WAAO,SAASiV,iBAAT,GAA6B;AAClC,UAAI3S,WAAW,KAAKoK,SAApB;AACA;AACA,UAAIpK,oBAAoB8vB,YAAYnyB,OAApC,EAA6C;AAC3C,eAAO,IAAP;AACD;AACD,aAAOqC,QAAP;AACD;AATA,GApa8B,CAAjC;;AAgbA,SAAOsF,kBAAP;AACD,CAxbwB,EAAzB;;AA0bA7H,QAAQE,OAAR,GAAkB2H,kBAAlB;AACAlH,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;ACxhBA;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;;AAIA,IAAIkJ,eAAe,YAAY;AAAE,WAASjE,gBAAT,CAA0BkE,MAA1B,EAAkCC,KAAlC,EAAyC;AAAE,SAAK,IAAIrH,IAAI,CAAb,EAAgBA,IAAIqH,MAAMnH,MAA1B,EAAkCF,GAAlC,EAAuC;AAAE,UAAIsH,aAAaD,MAAMrH,CAAN,CAAjB,CAA2BsH,WAAWC,UAAX,GAAwBD,WAAWC,UAAX,IAAyB,KAAjD,CAAwDD,WAAWE,YAAX,GAA0B,IAA1B,CAAgC,IAAI,WAAWF,UAAf,EAA2BA,WAAWG,QAAX,GAAsB,IAAtB,CAA4B3J,OAAOC,cAAP,CAAsBqJ,MAAtB,EAA8BE,WAAW5C,GAAzC,EAA8C4C,UAA9C;AAA4D;AAAE,GAAC,OAAO,UAAUI,WAAV,EAAuBC,UAAvB,EAAmCC,WAAnC,EAAgD;AAAE,QAAID,UAAJ,EAAgBzE,iBAAiBwE,YAAYzE,SAA7B,EAAwC0E,UAAxC,EAAqD,IAAIC,WAAJ,EAAiB1E,iBAAiBwE,WAAjB,EAA8BE,WAA9B,EAA4C,OAAOF,WAAP;AAAqB,GAAhN;AAAmN,CAA9hB,EAAnB;;AAEA,IAAI9I,QAAQ,mBAAAC,CAAQ,CAAR,CAAZ;;AAEA,IAAIC,SAASC,uBAAuBH,KAAvB,CAAb;;AAEA,SAASG,sBAAT,CAAgCW,GAAhC,EAAqC;AAAE,SAAOA,OAAOA,IAAIC,UAAX,GAAwBD,GAAxB,GAA8B,EAAExB,SAASwB,GAAX,EAArC;AAAwD;;AAE/F,SAASmI,eAAT,CAAyBtH,QAAzB,EAAmCmH,WAAnC,EAAgD;AAAE,MAAI,EAAEnH,oBAAoBmH,WAAtB,CAAJ,EAAwC;AAAE,UAAM,IAAI9D,SAAJ,CAAc,mCAAd,CAAN;AAA2D;AAAE;;AAEzJ;;;AAGA,IAAIowB,qBAAqB,YAAY;AACnC,WAASA,kBAAT,CAA4BC,UAA5B,EAAwC;AACtCpsB,oBAAgB,IAAhB,EAAsBmsB,kBAAtB;;AAEA;AACA,SAAKC,UAAL,GAAkBA,UAAlB;AACD;;AAED9sB,eAAa6sB,kBAAb,EAAiC,CAAC;AAChCtvB,SAAK,QAD2B;AAEhCzG,WAAO,SAAS2C,MAAT,GAAkB;AACvB,UAAI,KAAJ,EAA2C;AACzC9B,eAAOZ,OAAP,CAAe6C,QAAf,IAA2BjC,OAAOZ,OAAP,CAAe6C,QAAf,CAAwBC,YAAxB,EAA3B;AACD;;AAED,aAAO,KAAKizB,UAAL,CAAgB,KAAK5sB,KAArB,EAA4B,KAAKU,OAAjC,CAAP;AACD;AAR+B,GAAD,CAAjC;;AAWA,SAAOisB,kBAAP;AACD,CApBwB,EAAzB;;AAsBAh2B,QAAQE,OAAR,GAAkB81B,kBAAlB;AACAr1B,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;AC1CA;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;AAGA,SAASi2B,eAAT,CAAyBnd,QAAzB,EAAmC1O,QAAnC,EAA6C;AAC3C,MAAIA,QAAJ,EAAc;AACZ,QAAI8rB,gBAAgBpd,SAAS4c,iBAAT,KAA+B5c,SAAS4c,iBAAT,GAA6B,EAA5D,CAApB;AACAQ,kBAAcxqB,IAAd,CAAmBtB,QAAnB;AACD;AACF;;AAED,SAAS+rB,YAAT,CAAsBrd,QAAtB,EAAgC3O,YAAhC,EAA8C;AAC5C,MAAIA,YAAJ,EAAkB;AAChB,QAAIisB,aAAatd,SAASob,kBAAT,KAAgCpb,SAASob,kBAAT,GAA8B,EAA9D,CAAjB;AACAkC,eAAW1qB,IAAX,CAAgBvB,YAAhB;AACD;AACF;;AAED,IAAIksB,UAAU;AACZnsB,YAAU,SAASA,QAAT,CAAkBhK,SAAlB,EAA6BiK,YAA7B,EAA2CC,QAA3C,EAAqD;AAC7D,QAAI0O,WAAW5Y,UAAUsC,SAAzB;;AAEA,QAAI,CAACsW,QAAL,EAAe;AACb;AACD;;AAEDqd,iBAAard,QAAb,EAAuB3O,YAAvB;AACA8rB,oBAAgBnd,QAAhB,EAA0B1O,QAA1B;;AAEA,QAAI,CAAC0O,SAASoc,aAAd,EAA6B;AAC3B,WAAKoB,SAAL,CAAep2B,SAAf;AACD;AACF,GAdW;;AAgBZmK,eAAa,SAASA,WAAT,CAAqBnK,SAArB,EAAgCkK,QAAhC,EAA0C;AACrD,QAAI0O,WAAW5Y,UAAUsC,SAAzB;;AAEA,QAAI,CAACsW,QAAL,EAAe;AACb;AACD;;AAEDA,aAASqb,mBAAT,GAA+B,IAA/B;;AAEA8B,oBAAgBnd,QAAhB,EAA0B1O,QAA1B;AACA,SAAKksB,SAAL,CAAep2B,SAAf;AACD,GA3BW;;AA6BZo2B,aAAW,SAASA,SAAT,CAAmBp2B,SAAnB,EAA8B;AACvC,QAAI4Y,WAAW5Y,UAAUsC,SAAzB;;AAEA,QAAI,CAACsW,QAAD,IAAa,CAACA,SAAS9L,kBAA3B,EAA+C;AAC7C;AACD;;AAED;AACA;AACA;AACA,QAAIyoB,YAAY3c,SAAS4c,iBAAzB;AACA5c,aAAS4c,iBAAT,GAA6B,IAA7B;;AAEA,QAAIpyB,cAAcwV,SAASvV,eAA3B;AACA,QAAIC,sBAAsBsV,SAASrV,QAAnC;;AAEA,QAAIqV,SAASob,kBAAT,IAA+Bpb,SAASqb,mBAA5C,EAAiE;AAC/Drb,eAASpV,eAAT,CAAyBJ,WAAzB,EAAsCA,WAAtC,EAAmDE,mBAAnD,EAAwEA,mBAAxE;AACD;;AAED,SAAKmyB,YAAL,CAAkBF,SAAlB,EAA6Bv1B,SAA7B;AACD,GAlDW;;AAoDZy1B,gBAAc,SAASA,YAAT,CAAsBF,SAAtB,EAAiC3rB,OAAjC,EAA0C;AACtD,QAAI2rB,SAAJ,EAAe;AACb,WAAK,IAAI1zB,IAAI,CAAb,EAAgBA,IAAI0zB,UAAUxzB,MAA9B,EAAsCF,GAAtC,EAA2C;AACzC0zB,kBAAU1zB,CAAV,EAAakK,IAAb,CAAkBnC,OAAlB;AACD;AACF;AACF;AA1DW,CAAd;;AA6DA/J,QAAQE,OAAR,GAAkBo2B,OAAlB;AACA31B,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;ACjFA;;;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;;AAIA,IAAI4E,UAAU,OAAOC,MAAP,KAAkB,UAAlB,IAAgC,SAAOA,OAAOC,QAAd,MAA2B,QAA3D,GAAsE,UAAUrD,GAAV,EAAe;AAAE,gBAAcA,GAAd,0CAAcA,GAAd;AAAoB,CAA3G,GAA8G,UAAUA,GAAV,EAAe;AAAE,SAAOA,OAAO,OAAOoD,MAAP,KAAkB,UAAzB,IAAuCpD,IAAIsD,WAAJ,KAAoBF,MAA3D,IAAqEpD,QAAQoD,OAAOG,SAApF,GAAgG,QAAhG,UAAkHvD,GAAlH,0CAAkHA,GAAlH,CAAP;AAA+H,CAA5Q;;AAEA,IAAIiN,iBAAiB7O,OAAOmF,SAAP,CAAiB0J,cAAtC;;AAEA;;;;AAIA,SAAS2W,EAAT,CAAY9f,CAAZ,EAAe+f,CAAf,EAAkB;AAChB;AACA,MAAI/f,MAAM+f,CAAV,EAAa;AACX;AACA;AACA,WAAO/f,MAAM,CAAN,IAAW,IAAIA,CAAJ,KAAU,IAAI+f,CAAhC;AACD,GAJD,MAIO;AACL;AACA,WAAO/f,MAAMA,CAAN,IAAW+f,MAAMA,CAAxB;AACD;AACF;;AAED;;;;;AAKA,SAASiR,YAAT,CAAsBC,IAAtB,EAA4BC,IAA5B,EAAkC;AAChC,MAAIpR,GAAGmR,IAAH,EAASC,IAAT,CAAJ,EAAoB;AAClB,WAAO,IAAP;AACD;;AAED,MAAI,CAAC,OAAOD,IAAP,KAAgB,WAAhB,GAA8B,WAA9B,GAA4C5xB,QAAQ4xB,IAAR,CAA7C,MAAgE,QAAhE,IAA4EA,SAAS,IAArF,IAA6F,CAAC,OAAOC,IAAP,KAAgB,WAAhB,GAA8B,WAA9B,GAA4C7xB,QAAQ6xB,IAAR,CAA7C,MAAgE,QAA7J,IAAyKA,SAAS,IAAtL,EAA4L;AAC1L,WAAO,KAAP;AACD;;AAED,MAAIC,QAAQ72B,OAAOqM,IAAP,CAAYsqB,IAAZ,CAAZ;AACA,MAAIG,QAAQ92B,OAAOqM,IAAP,CAAYuqB,IAAZ,CAAZ;;AAEA,MAAIC,MAAMz0B,MAAN,KAAiB00B,MAAM10B,MAA3B,EAAmC;AACjC,WAAO,KAAP;AACD;;AAED;AACA,OAAK,IAAIF,IAAI,CAAb,EAAgBA,IAAI20B,MAAMz0B,MAA1B,EAAkCF,GAAlC,EAAuC;AACrC,QAAI,CAAC2M,eAAezC,IAAf,CAAoBwqB,IAApB,EAA0BC,MAAM30B,CAAN,CAA1B,CAAD,IAAwC,CAACsjB,GAAGmR,KAAKE,MAAM30B,CAAN,CAAL,CAAH,EAAmB00B,KAAKC,MAAM30B,CAAN,CAAL,CAAnB,CAA7C,EAAiF;AAC/E,aAAO,KAAP;AACD;AACF;;AAED,SAAO,IAAP;AACD;;AAEDhC,QAAQE,OAAR,GAAkBs2B,YAAlB;AACA71B,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;AC1DA;;;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;;AAIA,IAAIkJ,eAAe,YAAY;AAAE,WAASjE,gBAAT,CAA0BkE,MAA1B,EAAkCC,KAAlC,EAAyC;AAAE,SAAK,IAAIrH,IAAI,CAAb,EAAgBA,IAAIqH,MAAMnH,MAA1B,EAAkCF,GAAlC,EAAuC;AAAE,UAAIsH,aAAaD,MAAMrH,CAAN,CAAjB,CAA2BsH,WAAWC,UAAX,GAAwBD,WAAWC,UAAX,IAAyB,KAAjD,CAAwDD,WAAWE,YAAX,GAA0B,IAA1B,CAAgC,IAAI,WAAWF,UAAf,EAA2BA,WAAWG,QAAX,GAAsB,IAAtB,CAA4B3J,OAAOC,cAAP,CAAsBqJ,MAAtB,EAA8BE,WAAW5C,GAAzC,EAA8C4C,UAA9C;AAA4D;AAAE,GAAC,OAAO,UAAUI,WAAV,EAAuBC,UAAvB,EAAmCC,WAAnC,EAAgD;AAAE,QAAID,UAAJ,EAAgBzE,iBAAiBwE,YAAYzE,SAA7B,EAAwC0E,UAAxC,EAAqD,IAAIC,WAAJ,EAAiB1E,iBAAiBwE,WAAjB,EAA8BE,WAA9B,EAA4C,OAAOF,WAAP;AAAqB,GAAhN;AAAmN,CAA9hB,EAAnB;;AAEA,IAAI9I,QAAQ,mBAAAC,CAAQ,CAAR,CAAZ;;AAEA,IAAIC,SAASC,uBAAuBH,KAAvB,CAAb;;AAEA,IAAIqwB,UAAU,mBAAApwB,CAAQ,EAAR,CAAd;;AAEA,IAAIqwB,WAAWnwB,uBAAuBkwB,OAAvB,CAAf;;AAEA,IAAItkB,YAAY,mBAAA9L,CAAQ,CAAR,CAAhB;;AAEA,IAAI+L,aAAa7L,uBAAuB4L,SAAvB,CAAjB;;AAEA,IAAIxL,wBAAwB,mBAAAN,CAAQ,CAAR,CAA5B;;AAEA,IAAIO,yBAAyBL,uBAAuBI,qBAAvB,CAA7B;;AAEA,IAAIsO,qBAAqB,mBAAA5O,CAAQ,EAAR,CAAzB;;AAEA,IAAI6O,sBAAsB3O,uBAAuB0O,kBAAvB,CAA1B;;AAEA,SAAS1O,sBAAT,CAAgCW,GAAhC,EAAqC;AAAE,SAAOA,OAAOA,IAAIC,UAAX,GAAwBD,GAAxB,GAA8B,EAAExB,SAASwB,GAAX,EAArC;AAAwD;;AAE/F,SAASmI,eAAT,CAAyBtH,QAAzB,EAAmCmH,WAAnC,EAAgD;AAAE,MAAI,EAAEnH,oBAAoBmH,WAAtB,CAAJ,EAAwC;AAAE,UAAM,IAAI9D,SAAJ,CAAc,mCAAd,CAAN;AAA2D;AAAE;;AAEzJ,SAAS8oB,0BAAT,CAAoCpT,IAApC,EAA0CpP,IAA1C,EAAgD;AAAE,MAAI,CAACoP,IAAL,EAAW;AAAE,UAAM,IAAIqT,cAAJ,CAAmB,2DAAnB,CAAN;AAAwF,GAAC,OAAOziB,SAAS,QAAOA,IAAP,yCAAOA,IAAP,OAAgB,QAAhB,IAA4B,OAAOA,IAAP,KAAgB,UAArD,IAAmEA,IAAnE,GAA0EoP,IAAjF;AAAwF;;AAEhP,SAASsT,SAAT,CAAmBC,QAAnB,EAA6BC,UAA7B,EAAyC;AAAE,MAAI,OAAOA,UAAP,KAAsB,UAAtB,IAAoCA,eAAe,IAAvD,EAA6D;AAAE,UAAM,IAAIlpB,SAAJ,CAAc,qEAAoEkpB,UAApE,yCAAoEA,UAApE,EAAd,CAAN;AAAsG,GAACD,SAAS5pB,SAAT,GAAqBnF,OAAOwF,MAAP,CAAcwpB,cAAcA,WAAW7pB,SAAvC,EAAkD,EAAED,aAAa,EAAE/E,OAAO4uB,QAAT,EAAmBtlB,YAAY,KAA/B,EAAsCE,UAAU,IAAhD,EAAsDD,cAAc,IAApE,EAAf,EAAlD,CAArB,CAAqK,IAAIslB,UAAJ,EAAgBhvB,OAAOilB,cAAP,GAAwBjlB,OAAOilB,cAAP,CAAsB8J,QAAtB,EAAgCC,UAAhC,CAAxB,GAAsED,SAASzJ,SAAT,GAAqB0J,UAA3F;AAAwG;;AAE9e;;;AAGA,IAAIpnB,oBAAoB,UAAUmvB,gBAAV,EAA4B;AAClDjI,YAAUlnB,iBAAV,EAA6BmvB,gBAA7B;;AAEA,WAASnvB,iBAAT,CAA2B7E,OAA3B,EAAoC;AAClCgH,oBAAgB,IAAhB,EAAsBnC,iBAAtB;;AAEA,WAAOgnB,2BAA2B,IAA3B,EAAiC,CAAChnB,kBAAkB0d,SAAlB,IAA+BtlB,OAAOsvB,cAAP,CAAsB1nB,iBAAtB,CAAhC,EAA0EwE,IAA1E,CAA+E,IAA/E,EAAqFrJ,OAArF,CAAjC,CAAP;AACD;;AAEDsG,eAAazB,iBAAb,EAAgC,CAAC;AAC/BhB,SAAK,gBAD0B;AAE/BzG,WAAO,SAASwE,cAAT,CAAwBsL,MAAxB,EAAgCC,cAAhC,EAAgDjG,OAAhD,EAAyDkG,YAAzD,EAAuE;AAC5E;AACA,WAAKC,OAAL,GAAeH,MAAf;AACA,WAAKI,eAAL,GAAuBH,cAAvB;AACA,WAAKtM,QAAL,GAAgBqG,OAAhB;AACA,WAAKqG,QAAL,GAAgBtP,OAAOZ,OAAP,CAAeE,OAAf,EAAhB;;AAEA,UAAImC,WAAW;AACbE,mBAAW;AADE,OAAf;AAGA,WAAKkK,SAAL,GAAiBpK,QAAjB;;AAEA,UAAIu0B,WAAW,KAAKtmB,aAAL,EAAf;AACA,UAAIlC,WAAW,KAAK9K,eAApB;;AAEA;AACA,WAAKmN,aAAL,CAAmBrC,QAAnB,EAA6BvE,OAA7B;;AAEA,UAAIkG,YAAJ,EAAkB;AAChBA,qBAAa6mB,QAAb,EAAuB/mB,MAAvB;AACD,OAFD,MAEO;AACL,YAAIgnB,mBAAmBj1B,MAAMC,OAAN,CAAcgO,MAAd,CAAvB;AACA,aAAK,IAAI/N,IAAI,CAAb,EAAgBA,IAAI80B,SAAS50B,MAA7B,EAAqCF,GAArC,EAA0C;AACxC,cAAIyS,QAAQqiB,SAAS90B,CAAT,CAAZ;AACA;AACA,cAAI+0B,gBAAJ,EAAsB;AACpBhnB,mBAAOpE,IAAP,CAAY8I,KAAZ;AACD,WAFD,MAEO;AACL3T,mBAAOZ,OAAP,CAAeO,MAAf,CAAsBgQ,WAAtB,CAAkCgE,KAAlC,EAAyC1E,MAAzC;AACD;AACF;AACF;;AAED,aAAOxN,QAAP;AACD;AApC8B,GAAD,EAqC7B;AACDmE,SAAK,eADJ;AAEDzG,WAAO,SAAS0Q,aAAT,CAAuBrC,QAAvB,EAAiCvE,OAAjC,EAA0C;AAC/C,UAAI+I,SAAS,IAAb;;AAEA,UAAIjC,mBAAmB,KAAKC,iBAAL,GAAyB,EAAhD;AACA,UAAIgmB,WAAW,KAAKtmB,aAAL,EAAf;;AAEA,UAAIO,wBAAwBzC,SAASC,GAAT,CAAa,UAAU1L,OAAV,EAAmByI,KAAnB,EAA0B;AACjE,YAAI0F,gBAAgB,CAAC,GAAG5P,uBAAuBlB,OAA3B,EAAoC2C,OAApC,CAApB;AACA,YAAI4C,OAAO,CAAC,GAAGiK,oBAAoBxP,OAAxB,EAAiC2Q,gBAAjC,EAAmDhO,OAAnD,EAA4DyI,KAA5D,CAAX;AACAuF,yBAAiBpL,IAAjB,IAAyBuL,aAAzB;AACAA,sBAAc9I,WAAd,GAA4BoD,KAA5B;AACA;AACA,YAAI2F,aAAaD,cAAcvM,cAAd,CAA6BqO,OAAO5C,OAApC,EAA6C4C,OAAOnG,SAApD,EAA+D5C,OAA/D,EAAwE,UAAUwG,UAAV,EAAsB;AAC7G,cAAIzO,MAAMC,OAAN,CAAcwO,UAAd,CAAJ,EAA+B;AAC7B,iBAAK,IAAIvO,IAAI,CAAb,EAAgBA,IAAIuO,WAAWrO,MAA/B,EAAuCF,GAAvC,EAA4C;AAC1C80B,uBAASnrB,IAAT,CAAc4E,WAAWvO,CAAX,CAAd;AACD;AACF,WAJD,MAIO;AACL80B,qBAASnrB,IAAT,CAAc4E,UAAd;AACD;AACF,SARgB,CAAjB;AASA,eAAOU,UAAP;AACD,OAhB2B,CAA5B;;AAkBA,aAAOF,qBAAP;AACD;AA3BA,GArC6B,EAiE7B;AACDrK,SAAK,kBADJ;AAEDzG,WAAO,SAAS4D,gBAAT,CAA0BsN,cAA1B,EAA0C;AAC/C,UAAI,KAAKjE,WAAT,EAAsB;AACpBN,mBAAW1M,OAAX,CAAmByC,MAAnB,CAA0B,KAAKuK,WAA/B;AACA,YAAI,CAACiE,cAAL,EAAqB;AACnB,eAAK,IAAInP,IAAI,CAAb,EAAgBA,IAAI,KAAKkL,WAAL,CAAiBhL,MAArC,EAA6CF,GAA7C,EAAkD;AAChDlB,mBAAOZ,OAAP,CAAeO,MAAf,CAAsB0D,WAAtB,CAAkC,KAAK+I,WAAL,CAAiBlL,CAAjB,CAAlC;AACD;AACF;AACF;;AAED;AACA,WAAKkP,eAAL,CAAqB,IAArB;;AAEA,WAAK1N,eAAL,GAAuB,IAAvB;AACA,WAAK0J,WAAL,GAAmB,IAAnB;AACA,WAAKgD,OAAL,GAAe,IAAf;AACA,WAAKC,eAAL,GAAuB,IAAvB;AACA,WAAKzM,QAAL,GAAgB,IAAhB;AACA,WAAKiJ,SAAL,GAAiB,IAAjB;AACD;AArBA,GAjE6B,EAuF7B;AACDjG,SAAK,iBADJ;AAEDzG,WAAO,SAAS0D,eAAT,CAAyBJ,WAAzB,EAAsCuF,WAAtC,EAAmDwI,WAAnD,EAAgEC,WAAhE,EAA6E;AAClF;AACA,WAAK/N,eAAL,GAAuBsF,WAAvB;AACA,WAAK8I,cAAL,CAAoB,KAAKpO,eAAzB,EAA0C+N,WAA1C;AACD;AANA,GAvF6B,EA8F7B;AACD7K,SAAK,eADJ;AAEDzG,WAAO,SAASuQ,aAAT,GAAyB;AAC9B,UAAI,KAAKtD,WAAL,IAAoB,IAAxB,EAA8B;AAC5B,aAAKA,WAAL,GAAmB,EAAnB;AACD;;AAED,aAAO,KAAKA,WAAZ;AACD;AARA,GA9F6B,EAuG7B;AACDxG,SAAK,mBADJ;AAEDzG,WAAO,SAASiV,iBAAT,GAA6B;AAClC,aAAO,KAAK1E,aAAL,EAAP;AACD;AAJA,GAvG6B,EA4G7B;AACD9J,SAAK,SADJ;AAEDzG,WAAO,SAAS4N,OAAT,GAAmB;AACxB,aAAO,UAAP;AACD;AAJA,GA5G6B,CAAhC;;AAmHA,SAAOnG,iBAAP;AACD,CA7HuB,CA6HtBwpB,SAAShxB,OA7Ha,CAAxB;;AA+HAF,QAAQE,OAAR,GAAkBwH,iBAAlB;AACA/G,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;ACvKA;;;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;;AAIA,IAAI4E,UAAU,OAAOC,MAAP,KAAkB,UAAlB,IAAgC,SAAOA,OAAOC,QAAd,MAA2B,QAA3D,GAAsE,UAAUrD,GAAV,EAAe;AAAE,gBAAcA,GAAd,0CAAcA,GAAd;AAAoB,CAA3G,GAA8G,UAAUA,GAAV,EAAe;AAAE,SAAOA,OAAO,OAAOoD,MAAP,KAAkB,UAAzB,IAAuCpD,IAAIsD,WAAJ,KAAoBF,MAA3D,IAAqEpD,QAAQoD,OAAOG,SAApF,GAAgG,QAAhG,UAAkHvD,GAAlH,0CAAkHA,GAAlH,CAAP;AAA+H,CAA5Q,C,CAA8Q;;;;AAK9Q,IAAIs1B,aAAa,mBAAAn2B,CAAQ,EAAR,CAAjB;;AAEA,IAAIo2B,YAAY,mBAAAp2B,CAAQ,EAAR,CAAhB;;AAEA,IAAIq2B,aAAan2B,uBAAuBk2B,SAAvB,CAAjB;;AAEA,SAASl2B,sBAAT,CAAgCW,GAAhC,EAAqC;AAAE,SAAOA,OAAOA,IAAIC,UAAX,GAAwBD,GAAxB,GAA8B,EAAExB,SAASwB,GAAX,EAArC;AAAwD;;AAE/F,IAAIiO,QAAQ,OAAZ;AACA,IAAIwnB,KAAK,IAAT;AACA,IAAIC,OAAO,MAAX;AACA,IAAIxnB,WAAW,UAAf;AACA,IAAIE,sBAAsB,UAA1B;AACA,IAAIunB,qBAAqB,QAAzB;;AAEA,IAAIC,WAAW,EAAf;AACA;AACA,IAAI3d,WAAW,CAAC,OAAO4d,iBAAP,KAA6B,WAA7B,GAA2C,WAA3C,GAAyD1yB,QAAQ0yB,iBAAR,CAA1D,MAA0F,QAA1F,GAAqGA,iBAArG,GAAyH,CAAC,OAAO5d,QAAP,KAAoB,WAApB,GAAkC,WAAlC,GAAgD9U,QAAQ8U,QAAR,CAAjD,MAAwE,QAAxE,GAAmFA,QAAnF,GAA8F,IAAtO;;AAEA,IAAI6d,SAAS;AACX5F,eAAa,GADF;AAEXC,iBAAe,GAFJ;;AAIX4F,kBAAgB,SAASA,cAAT,GAA0B;AACxC,WAAO,KAAK7F,WAAZ;AACD,GANU;AAOXE,kBAAgB,SAASA,cAAT,CAAwBtN,KAAxB,EAA+B;AAC7C,SAAKoN,WAAL,GAAmBpN,KAAnB;AACD,GATU;AAUXkT,oBAAkB,SAASA,gBAAT,GAA4B;AAC5C,WAAO,KAAK7F,aAAZ;AACD,GAZU;AAaXE,oBAAkB,SAASA,gBAAT,CAA0BvN,KAA1B,EAAiC;AACjD,SAAKqN,aAAL,GAAqBrN,KAArB;AACD,GAfU;AAgBX1L,kBAAgB,SAASA,cAAT,CAAwB+N,EAAxB,EAA4B;AAC1C,WAAOyQ,SAASzQ,EAAT,CAAP;AACD,GAlBU;AAmBX5jB,cAAY,SAASA,UAAT,GAAsB;AAChC,QAAI0W,SAASge,IAAb,EAAmB;AACjB,aAAOhe,SAASge,IAAhB;AACD;;AAED,QAAIC,kBAAkBje,SAASie,eAA/B;AACA,QAAID,OAAOhe,SAAS1W,UAAT,EAAX;AACA20B,oBAAgBnnB,WAAhB,CAA4BknB,IAA5B;;AAEA,WAAOA,IAAP;AACD,GA7BU;AA8BXE,iBAAe,SAASA,aAAT,CAAuBC,OAAvB,EAAgC;AAC7C,WAAOne,SAASke,aAAT,CAAuBC,OAAvB,CAAP;AACD,GAhCU;AAiCX9F,eAAa,SAASA,WAAT,GAAuB;AAClC,WAAO,KAAK6F,aAAL,CAAmB,SAAnB,CAAP;AACD,GAnCU;AAoCX1F,cAAY,SAASA,UAAT,CAAoB4F,IAApB,EAA0B;AACpC,WAAOP,OAAOnzB,aAAP,CAAqB;AAC1BsD,YAAMyvB,IADoB;AAE1B/tB,aAAO;AACLpJ,eAAO83B;AADF;AAFmB,KAArB,CAAP;AAMD,GA3CU;AA4CX7F,cAAY,SAASA,UAAT,CAAoB5vB,IAApB,EAA0Bw1B,OAA1B,EAAmC;AAC7C,SAAKrlB,YAAL,CAAkBnQ,IAAlB,EAAwB,OAAxB,EAAiCw1B,OAAjC;AACD,GA9CU;AA+CXzzB,iBAAe,SAASA,aAAT,CAAuBlE,SAAvB,EAAkC;AAC/C,QAAI63B,cAAcd,WAAWh3B,OAAX,CAAmBC,UAAUwH,IAA7B,CAAlB;AACA,QAAIqwB,WAAJ,EAAiB;AACf73B,kBAAY63B,YAAYvX,KAAZ,CAAkBtgB,SAAlB,CAAZ;AACD;;AAED,QAAIkJ,QAAQlJ,UAAUkJ,KAAtB;AACA,QAAI4uB,SAAS,EAAb;AACA,QAAI9pB,QAAQ,EAAZ;AACA,QAAI+pB,cAAc7uB,MAAMsG,KAAN,CAAlB;AACA,SAAK,IAAIyI,IAAT,IAAiB8f,WAAjB,EAA8B;AAC5B/pB,YAAMiK,IAAN,IAAc,CAAC,GAAG4e,WAAW9gB,WAAf,EAA4BgiB,YAAY9f,IAAZ,CAA5B,EAA+CA,IAA/C,CAAd;AACD;;AAED,QAAI9V,OAAOqX,SAAStV,aAAT,CAAuBlE,UAAUwH,IAAjC,EAAuC;AAChDwG,aAAOA;AADyC,KAAvC,CAAX;;AAIA,SAAK4e,cAAL,CAAoBzqB,IAApB,EAA0B+G,KAA1B,EAAiC,IAAjC;;AAEA,WAAO/G,IAAP;AACD,GApEU;AAqEXmO,eAAa,SAASA,WAAT,CAAqBnO,IAArB,EAA2ByN,MAA3B,EAAmC;AAC9C,WAAOA,OAAOU,WAAP,CAAmBnO,IAAnB,CAAP;AACD,GAvEU;AAwEX6B,eAAa,SAASA,WAAT,CAAqB7B,IAArB,EAA2ByN,MAA3B,EAAmC;AAC9CA,aAASA,UAAUzN,KAAK61B,UAAxB;AACA,QAAItR,KAAKvkB,KAAKkW,IAAL,IAAalW,KAAKkW,IAAL,CAAU2e,EAAV,CAAtB;AACA,QAAItQ,MAAM,IAAV,EAAgB;AACdyQ,eAASzQ,EAAT,IAAe,IAAf;AACD;AACD,WAAO9W,OAAO5L,WAAP,CAAmB7B,IAAnB,CAAP;AACD,GA/EU;AAgFXoS,gBAAc,SAASA,YAAT,CAAsBL,QAAtB,EAAgCC,QAAhC,EAA0CvE,MAA1C,EAAkD;AAC9DA,aAASA,UAAUuE,SAAS6jB,UAA5B;AACA,QAAIC,kBAAkB9jB,SAAS8jB,eAA/B;AACA,QAAIC,cAAc/jB,SAAS+jB,WAA3B;AACA,SAAKl0B,WAAL,CAAiBmQ,QAAjB,EAA2BvE,MAA3B;;AAEA,QAAIqoB,eAAJ,EAAqB;AACnB,WAAKlkB,WAAL,CAAiBG,QAAjB,EAA2B+jB,eAA3B,EAA4CroB,MAA5C;AACD,KAFD,MAEO,IAAIsoB,WAAJ,EAAiB;AACtB,WAAKtjB,YAAL,CAAkBV,QAAlB,EAA4BgkB,WAA5B,EAAyCtoB,MAAzC;AACD,KAFM,MAEA;AACL,WAAKU,WAAL,CAAiB4D,QAAjB,EAA2BtE,MAA3B;AACD;AACF,GA7FU;AA8FXmE,eAAa,SAASA,WAAT,CAAqB5R,IAArB,EAA2Bg2B,KAA3B,EAAkCvoB,MAAlC,EAA0C;AACrDA,aAASA,UAAUuoB,MAAMH,UAAzB;AACA,WAAOpoB,OAAOmE,WAAP,CAAmB5R,IAAnB,EAAyBg2B,KAAzB,CAAP;AACD,GAjGU;AAkGXvjB,gBAAc,SAASA,YAAT,CAAsBzS,IAAtB,EAA4Bi2B,MAA5B,EAAoCxoB,MAApC,EAA4C;AACxDA,aAASA,UAAUwoB,OAAOJ,UAA1B;AACA,WAAOpoB,OAAOgF,YAAP,CAAoBzS,IAApB,EAA0Bi2B,MAA1B,CAAP;AACD,GArGU;AAsGXhmB,oBAAkB,SAASA,gBAAT,CAA0BjQ,IAA1B,EAAgC0lB,SAAhC,EAA2CC,YAA3C,EAAyD;AACzE,WAAO3lB,KAAKk2B,QAAL,CAAcxQ,SAAd,EAAyBC,YAAzB,CAAP;AACD,GAxGU;AAyGX/V,uBAAqB,SAASA,mBAAT,CAA6B5P,IAA7B,EAAmC0lB,SAAnC,EAA8CC,YAA9C,EAA4D;AAC/E,WAAO3lB,KAAKm2B,WAAL,CAAiBzQ,SAAjB,EAA4BC,YAA5B,CAAP;AACD,GA3GU;AA4GX5W,2BAAyB,SAASA,uBAAT,CAAiC/O,IAAjC,EAAuC;AAC9D;AACD,GA9GU;AA+GX8P,mBAAiB,SAASA,eAAT,CAAyB9P,IAAzB,EAA+BuP,OAA/B,EAAwC6mB,SAAxC,EAAmD;AAClE,QAAI7mB,WAAWslB,EAAf,EAAmB;AACjBG,eAASoB,SAAT,IAAsB,IAAtB;AACD;AACD;AACA,WAAOp2B,KAAKq2B,OAAL,CAAa9mB,OAAb,EAAsBxL,SAAtB,EAAiC,KAAjC,CAAP;AACD,GArHU;AAsHXoM,gBAAc,SAASA,YAAT,CAAsBnQ,IAAtB,EAA4BuP,OAA5B,EAAqC6mB,SAArC,EAAgD;AAC5D,QAAI7mB,WAAWslB,EAAf,EAAmB;AACjBG,eAASoB,SAAT,IAAsBp2B,IAAtB;AACD;;AAED;AACA,QAAI+0B,mBAAmBplB,IAAnB,CAAwBJ,OAAxB,CAAJ,EAAsC;AACpCA,gBAAUA,QAAQ7K,OAAR,CAAgB,QAAhB,EAA0B,UAAU4xB,CAAV,EAAaC,EAAb,EAAiB;AACnD,eAAOA,GAAGC,WAAH,EAAP;AACD,OAFS,CAAV;AAGD;;AAED,WAAOx2B,KAAKq2B,OAAL,CAAa9mB,OAAb,EAAsB6mB,SAAtB,EAAiC,KAAjC,CAAP;AACD,GAnIU;AAoIX9lB,aAAW,SAASA,SAAT,CAAmBtQ,IAAnB,EAAyBy2B,MAAzB,EAAiC;AAC1C;AACA,SAAK,IAAIryB,GAAT,IAAgBqyB,MAAhB,EAAwB;AACtB,UAAIvqB,MAAMuqB,OAAOryB,GAAP,CAAV;AACA8H,YAAM,CAAC,GAAGwoB,WAAW9gB,WAAf,EAA4B1H,GAA5B,EAAiC9H,GAAjC,CAAN;AACApE,WAAK02B,QAAL,CAActyB,GAAd,EAAmB8H,GAAnB;AACD;AACF,GA3IU;AA4IXxL,gBAAc,SAASA,YAAT,GAAwB;AACpC;AACA2W,aAASsf,IAAT;;AAEA;AACA,KAAC,GAAGjC,WAAWhhB,MAAf,EAAuB,KAAKyhB,cAAL,KAAwB,KAAKC,gBAAL,EAA/C;AACD,GAlJU;AAmJXhzB,eAAa,SAASA,WAAT,GAAuB;AAClC,QAAIiV,SAASuf,QAAT,IAAqBvf,SAASuf,QAAT,CAAkBC,YAA3C,EAAyD;AACvDxf,eAASuf,QAAT,CAAkBC,YAAlB;AACD;;AAED;AACAxf,aAASyf,KAAT;AACD,GA1JU;AA2JXrM,kBAAgB,SAASA,cAAT,CAAwBzqB,IAAxB,EAA8B+G,KAA9B,EAAqCgwB,aAArC,EAAoD;AAClE,SAAK,IAAIjhB,IAAT,IAAiB/O,KAAjB,EAAwB;AACtB,UAAIpJ,QAAQoJ,MAAM+O,IAAN,CAAZ;AACA,UAAIA,SAASxI,QAAb,EAAuB;AACrB;AACD;;AAED,UAAI3P,SAAS,IAAb,EAAmB;AACjB,YAAImY,SAASzI,KAAb,EAAoB;AAClB,cAAI0pB,aAAJ,EAAmB;AACjB;AACD;AACD,eAAKzmB,SAAL,CAAetQ,IAAf,EAAqBrC,KAArB;AACD,SALD,MAKO,IAAI6P,oBAAoBmC,IAApB,CAAyBmG,IAAzB,CAAJ,EAAoC;AACzC,cAAI4P,YAAY5P,KAAK/M,KAAL,CAAW,CAAX,EAAc8G,WAAd,EAAhB;AACA,eAAKI,gBAAL,CAAsBjQ,IAAtB,EAA4B0lB,SAA5B,EAAuC/nB,KAAvC;AACD,SAHM,MAGA;AACL,eAAKwS,YAAL,CAAkBnQ,IAAlB,EAAwB8V,IAAxB,EAA8BnY,KAA9B;AACD;AACF;AACF;AACF;AAhLU,CAAb;;AAmLAD,QAAQE,OAAR,GAAkBs3B,MAAlB;AACA72B,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;AClNA;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;;AAIA,IAAIq5B,OAAO,mBAAAz4B,CAAQ,EAAR,CAAX;;AAEA,IAAI04B,QAAQx4B,uBAAuBu4B,IAAvB,CAAZ;;AAEA,IAAIE,SAAS,mBAAA34B,CAAQ,EAAR,CAAb;;AAEA,IAAI44B,UAAU14B,uBAAuBy4B,MAAvB,CAAd;;AAEA,IAAIE,YAAY,mBAAA74B,CAAQ,EAAR,CAAhB;;AAEA,IAAI84B,aAAa54B,uBAAuB24B,SAAvB,CAAjB;;AAEA,IAAIE,QAAQ,mBAAA/4B,CAAQ,EAAR,CAAZ;;AAEA,IAAIg5B,SAAS94B,uBAAuB64B,KAAvB,CAAb;;AAEA,IAAIE,KAAK,mBAAAj5B,CAAQ,EAAR,CAAT;;AAEA,IAAIk5B,MAAMh5B,uBAAuB+4B,EAAvB,CAAV;;AAEA,IAAIE,UAAU,mBAAAn5B,CAAQ,EAAR,CAAd;;AAEA,IAAIo5B,WAAWl5B,uBAAuBi5B,OAAvB,CAAf;;AAEA,IAAIE,WAAW,mBAAAr5B,CAAQ,EAAR,CAAf;;AAEA,IAAIs5B,YAAYp5B,uBAAuBm5B,QAAvB,CAAhB;;AAEA,IAAIE,SAAS,mBAAAv5B,CAAQ,EAAR,CAAb;;AAEA,IAAIw5B,UAAUt5B,uBAAuBq5B,MAAvB,CAAd;;AAEA,SAASr5B,sBAAT,CAAgCW,GAAhC,EAAqC;AAAE,SAAOA,OAAOA,IAAIC,UAAX,GAAwBD,GAAxB,GAA8B,EAAExB,SAASwB,GAAX,EAArC;AAAwD;;AAE/F1B,QAAQE,OAAR,GAAkB;AAChBo6B,QAAMT,OAAO35B,OADG;AAEhBq6B,KAAGR,IAAI75B,OAFS;AAGhBs6B,OAAKjB,MAAMr5B,OAHK;AAIhBu6B,UAAQR,SAAS/5B,OAJD;AAKhBw6B,SAAOjB,QAAQv5B,OALC;AAMhBy6B,YAAUhB,WAAWz5B,OANL;AAOhB06B,MAAIT,UAAUj6B,OAPE;AAQhB26B,MAAIV,UAAUj6B,OARE;AAShB46B,MAAIX,UAAUj6B,OATE;AAUhB66B,MAAIZ,UAAUj6B,OAVE;AAWhB86B,MAAIb,UAAUj6B,OAXE;AAYhB+6B,MAAId,UAAUj6B,OAZE;AAahBg7B,OAAKb,QAAQn6B,OAbG;AAchBi7B,WAASd,QAAQn6B,OAdD;AAehBk7B,WAASf,QAAQn6B,OAfD;AAgBhB;AACA;AACAm7B,UAAQhB,QAAQn6B,OAlBA;AAmBhBo7B,SAAOjB,QAAQn6B,OAnBC;AAoBhBq7B,QAAMlB,QAAQn6B;AApBE,CAAlB;AAsBAS,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;AC9DA;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;;AAIA,IAAIu7B,cAAc,mBAAA36B,CAAQ,EAAR,CAAlB;;AAEAb,QAAQE,OAAR,GAAkB;;AAEhB;;;;;;AAMAugB,SAAO,SAASA,KAAT,CAAetgB,SAAf,EAA0B;AAC/B,QAAIkJ,QAAQlJ,UAAUkJ,KAAtB;;AAEAlJ,cAAUwH,IAAV,GAAiB,OAAjB;;AAEA;AACAxH,cAAUkJ,KAAV,GAAkB,CAAC,GAAGmyB,YAAYnjB,0BAAhB,EAA4ChP,KAA5C,EAAmD,CAAC,OAAD,EAAU,QAAV,CAAnD,CAAlB;;AAEA,WAAOlJ,SAAP;AACD;AAjBe,CAAlB;AAmBAQ,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;AC3BA;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;;AAIA,IAAIu7B,cAAc,mBAAA36B,CAAQ,EAAR,CAAlB;;AAEAb,QAAQE,OAAR,GAAkB;;AAEhB;;;;;;AAMAugB,SAAO,SAASA,KAAT,CAAetgB,SAAf,EAA0B;AAC/B,QAAIkJ,QAAQlJ,UAAUkJ,KAAtB;;AAEA;;AAEAlJ,cAAUkJ,KAAV,GAAkB,CAAC,GAAGmyB,YAAYnjB,0BAAhB,EAA4ChP,KAA5C,EAAmD,CAAC,OAAD,EAAU,QAAV,CAAnD,CAAlB;;AAEA,WAAOlJ,SAAP;AACD;AAhBe,CAAlB;AAkBAQ,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;AC1BA;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;AAGAD,QAAQE,OAAR,GAAkB;;AAEhB;;;;;;AAMAugB,SAAO,SAASA,KAAT,CAAetgB,SAAf,EAA0B;AAC/B,QAAIkJ,QAAQlJ,UAAUkJ,KAAtB;;AAGA,QAAI,OAAOA,MAAMiF,QAAb,KAA0B,QAA1B,IAAsC,CAACjF,MAAMpJ,KAAjD,EAAwD;AACtDoJ,YAAMpJ,KAAN,GAAcoJ,MAAMiF,QAApB;AACAjF,YAAMiF,QAAN,GAAiB,IAAjB;AACD;;AAED,WAAOnO,SAAP;AACD;AAlBe,CAAlB;AAoBAQ,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;ACzBA;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;AAGAD,QAAQE,OAAR,GAAkB;AAChBugB,SAAO,SAASA,KAAT,CAAetgB,SAAf,EAA0B;AAC/B,QAAIkJ,QAAQlJ,UAAUkJ,KAAtB;;AAEAlJ,cAAUwH,IAAV,GAAiB,MAAjB;;AAEA,QAAI,OAAO0B,MAAMiF,QAAb,KAA0B,QAA1B,IAAsC,CAACjF,MAAMpJ,KAAjD,EAAwD;AACtDoJ,YAAMpJ,KAAN,GAAcoJ,MAAMiF,QAApB;AACAjF,YAAMiF,QAAN,GAAiB,IAAjB;AACD;;AAED,WAAOnO,SAAP;AACD;AAZe,CAAlB;AAcAQ,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;ACnBA;;;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;;AAIA,IAAI4E,UAAU,OAAOC,MAAP,KAAkB,UAAlB,IAAgC,SAAOA,OAAOC,QAAd,MAA2B,QAA3D,GAAsE,UAAUrD,GAAV,EAAe;AAAE,gBAAcA,GAAd,0CAAcA,GAAd;AAAoB,CAA3G,GAA8G,UAAUA,GAAV,EAAe;AAAE,SAAOA,OAAO,OAAOoD,MAAP,KAAkB,UAAzB,IAAuCpD,IAAIsD,WAAJ,KAAoBF,MAA3D,IAAqEpD,QAAQoD,OAAOG,SAApF,GAAgG,QAAhG,UAAkHvD,GAAlH,0CAAkHA,GAAlH,CAAP;AAA+H,CAA5Q;;AAEA,IAAI+5B,WAAW37B,OAAOoP,MAAP,IAAiB,UAAU9F,MAAV,EAAkB;AAAE,OAAK,IAAIpH,IAAI,CAAb,EAAgBA,IAAI6M,UAAU3M,MAA9B,EAAsCF,GAAtC,EAA2C;AAAE,QAAIiY,SAASpL,UAAU7M,CAAV,CAAb,CAA2B,KAAK,IAAI0E,GAAT,IAAgBuT,MAAhB,EAAwB;AAAE,UAAIna,OAAOmF,SAAP,CAAiB0J,cAAjB,CAAgCzC,IAAhC,CAAqC+N,MAArC,EAA6CvT,GAA7C,CAAJ,EAAuD;AAAE0C,eAAO1C,GAAP,IAAcuT,OAAOvT,GAAP,CAAd;AAA4B;AAAE;AAAE,GAAC,OAAO0C,MAAP;AAAgB,CAAhQ;;AAEA,IAAIsyB,iBAAiB,EAArB;;AAEA,IAAIC,wBAAwB;AAC1BC,YAAUF,cADgB;AAE1BG,aAAWH,cAFe;AAG1BI,gBAAcJ;AAHY,CAA5B;;AAMA,IAAIK,qBAAqB;AACvBC,KAAG;AACDC,oBAAgB;AADf,GADoB;AAIvBr1B,KAAG;AACDq1B,oBAAgB;AADf,GAJoB;AAOvBj6B,KAAG;AACDk6B,eAAW;AADV,GAPoB;AAUvB3P,KAAG;AACDnV,gBAAY;AADX,GAVoB;AAavB+kB,OAAK;AACHF,oBAAgB;AADb,GAbkB;AAgBvBG,MAAI;AACFF,eAAW;AADT,GAhBmB;AAmBvBG,UAAQ;AACNjlB,gBAAY;AADN,GAnBe;AAsBvBklB,OAAK;AACHV,cAAUF,iBAAiB;AADxB,GAtBkB;AAyBvBa,SAAO;AACLX,cAAUF,iBAAiB;AADtB;AAzBgB,CAAzB;;AA8BA,SAASc,eAAT,CAAyBpM,MAAzB,EAAiC;AAC/B,SAAO;AACLzoB,UAAM,MADD;AAEL6Q,UAAM;AACJvY,aAAOmwB;AADH;AAFD,GAAP;AAMD;;AAED,SAASqM,cAAT,CAAwBhoB,KAAxB,EAA+B;AAC7B,MAAI9M,OAAO8M,MAAM9M,IAAjB;AACA,MAAI0B,QAAQoL,MAAMpL,KAAlB;AACA,MAAI8E,QAAQ9E,MAAM8E,KAAlB;AACA,MAAIuuB,iBAAiBrzB,MAAMiF,QAA3B;AACA;AACA,MAAI3G,SAAS,KAAb,EAAoB;AAClBA,WAAO,OAAP;AACD;;AAED;AACA,MAAIo0B,mBAAmBp0B,IAAnB,CAAJ,EAA8B;AAC5BwG,YAAQstB,SAAS,EAAT,EAAaM,mBAAmBp0B,IAAnB,CAAb,EAAuCwG,KAAvC,CAAR;AACAxG,WAAO,MAAP;AACD;;AAED0B,QAAM8E,KAAN,GAAc,IAAd;AACA9E,QAAMiF,QAAN,GAAiB,IAAjB;;AAEA,MAAIzL,UAAU;AACZ8E,UAAMA,IADM;AAEZwG,WAAOA,KAFK;AAGZqK,UAAMnP,SAAS;AAHH,GAAd;;AAMA,MAAIqzB,cAAJ,EAAoB;AAClB,QAAI/0B,SAAS,MAAT,IAAmB,OAAO+0B,cAAP,KAA0B,QAAjD,EAA2D;AACzD75B,cAAQ2V,IAAR,CAAavY,KAAb,GAAqBy8B,cAArB;AACD,KAFD,MAEO;AACL75B,cAAQyL,QAAR,GAAmBquB,kBAAkBD,cAAlB,CAAnB;AACD;AACF;;AAED,SAAO75B,OAAP;AACD;;AAED,SAAS85B,iBAAT,CAA2BruB,QAA3B,EAAqC;AACnC,MAAI0a,WAAW,EAAf;AACA,MAAI,CAAClnB,MAAMC,OAAN,CAAcuM,QAAd,CAAL,EAA8B;AAC5BA,eAAW,CAACA,QAAD,CAAX;AACD;;AAED,OAAK,IAAItM,IAAI,CAAb,EAAgBA,IAAIsM,SAASpM,MAA7B,EAAqCF,GAArC,EAA0C;AACxC,QAAIyS,QAAQnG,SAAStM,CAAT,CAAZ;AACA,QAAI,OAAOyS,KAAP,KAAiB,QAArB,EAA+B;AAC7BuU,eAASrd,IAAT,CAAc6wB,gBAAgB/nB,KAAhB,CAAd;AACD,KAFD,MAEO,IAAI,CAAC,OAAOA,KAAP,KAAiB,WAAjB,GAA+B,WAA/B,GAA6C5P,QAAQ4P,KAAR,CAA9C,MAAkE,QAAtE,EAAgF;AACrFuU,eAASrd,IAAT,CAAc8wB,eAAehoB,KAAf,CAAd;AACD;AACF;;AAED,SAAOuU,QAAP;AACD;;AAEDhpB,QAAQE,OAAR,GAAkB;AAChBugB,SAAO,SAASA,KAAT,CAAetgB,SAAf,EAA0B;AAC/B,QAAIkJ,QAAQlJ,UAAUkJ,KAAtB;;AAEA,QAAIiF,WAAWjF,MAAMiF,QAArB;;AAEAnO,cAAUwH,IAAV,GAAiB,UAAjB;;AAEA0B,UAAM8E,KAAN,GAAcstB,SAAS,EAAT,EAAaE,qBAAb,EAAoCtyB,MAAM8E,KAA1C,CAAd;;AAEA9E,UAAMpJ,KAAN,GAAc08B,kBAAkBruB,QAAlB,CAAd,CAA0C;AAC1CjF,UAAMiF,QAAN,GAAiB,IAAjB;;AAEA,WAAOnO,SAAP;AACD;AAde,CAAlB;AAgBAQ,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;AC/HA;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;;AAIA,IAAIw7B,WAAW37B,OAAOoP,MAAP,IAAiB,UAAU9F,MAAV,EAAkB;AAAE,OAAK,IAAIpH,IAAI,CAAb,EAAgBA,IAAI6M,UAAU3M,MAA9B,EAAsCF,GAAtC,EAA2C;AAAE,QAAIiY,SAASpL,UAAU7M,CAAV,CAAb,CAA2B,KAAK,IAAI0E,GAAT,IAAgBuT,MAAhB,EAAwB;AAAE,UAAIna,OAAOmF,SAAP,CAAiB0J,cAAjB,CAAgCzC,IAAhC,CAAqC+N,MAArC,EAA6CvT,GAA7C,CAAJ,EAAuD;AAAE0C,eAAO1C,GAAP,IAAcuT,OAAOvT,GAAP,CAAd;AAA4B;AAAE;AAAE,GAAC,OAAO0C,MAAP;AAAgB,CAAhQ;;AAEA;;;;;;AAMApJ,QAAQE,OAAR,GAAkB;AAChBugB,SAAO,SAASA,KAAT,CAAetgB,SAAf,EAA0B;AAC/B,QAAIkJ,QAAQlJ,UAAUkJ,KAAtB;;AAEAlJ,cAAUwH,IAAV,GAAiB,MAAjB;;AAEA,QAAIwG,QAAQ9E,MAAM8E,KAAlB;AAAA,QACIyuB,WAAWvzB,MAAMuzB,QADrB;AAAA,QAEItuB,WAAWjF,MAAMiF,QAFrB;;AAKA,QAAIuuB,YAAYpB,SAAS;AACvBqB,iBAAW,QADY;AAEvBlB,gBAAU,EAFa;AAGvBmB,kBAAY,CAHW;AAIvBC,oBAAc,EAJS;AAKvBC,qBAAe,CALQ;AAMvBC,mBAAa,EANU;AAOvBC,mBAAa,CAPU;AAQvBC,mBAAa,OARU;AASvBC,mBAAa,SATU;AAUvBC,sBAAgB;AAVO,KAAT,EAWbnvB,KAXa,CAAhB;;AAaA,QAAIyuB,QAAJ,EAAc;AACZvzB,YAAMk0B,OAAN,GAAgB,IAAhB;AACAV,kBAAYpB,SAAS,EAAT,EAAaoB,SAAb,EAAwB;AAClCW,eAAO,SAD2B;AAElCH,qBAAa;AAFqB,OAAxB,CAAZ;AAID;;AAED,QAAI,OAAO/uB,QAAP,KAAoB,QAAxB,EAAkC;AAChCjF,YAAMpJ,KAAN,GAAcqO,QAAd;AACAjF,YAAMiF,QAAN,GAAiB,IAAjB;AACD;;AAED,WAAOnO,SAAP;AACD;AAtCe,CAAlB;AAwCAQ,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;ACtDA;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;;AAIA,IAAIw7B,WAAW37B,OAAOoP,MAAP,IAAiB,UAAU9F,MAAV,EAAkB;AAAE,OAAK,IAAIpH,IAAI,CAAb,EAAgBA,IAAI6M,UAAU3M,MAA9B,EAAsCF,GAAtC,EAA2C;AAAE,QAAIiY,SAASpL,UAAU7M,CAAV,CAAb,CAA2B,KAAK,IAAI0E,GAAT,IAAgBuT,MAAhB,EAAwB;AAAE,UAAIna,OAAOmF,SAAP,CAAiB0J,cAAjB,CAAgCzC,IAAhC,CAAqC+N,MAArC,EAA6CvT,GAA7C,CAAJ,EAAuD;AAAE0C,eAAO1C,GAAP,IAAcuT,OAAOvT,GAAP,CAAd;AAA4B;AAAE;AAAE,GAAC,OAAO0C,MAAP;AAAgB,CAAhQ;;AAEA,IAAIsyB,iBAAiB,EAArB;;AAEA,SAAS+B,oBAAT,CAA8BC,YAA9B,EAA4CC,cAA5C,EAA4DC,gBAA5D,EAA8E;AAC5E,SAAO;AACLhC,cAAU8B,eAAeC,cADpB;AAEL9B,eAAW6B,eAAeC,cAAf,GAAgCC,gBAFtC;AAGL9B,kBAAc4B,eAAeC,cAAf,GAAgCC,gBAHzC;AAILxmB,gBAAY;AAJP,GAAP;AAMD;;AAED,IAAIymB,kBAAkB;AACpBjD,MAAI6C,qBAAqB/B,cAArB,EAAqC,CAArC,EAAwC,IAAxC,CADgB;AAEpBb,MAAI4C,qBAAqB/B,cAArB,EAAqC,GAArC,EAA0C,IAA1C,CAFgB;AAGpBZ,MAAI2C,qBAAqB/B,cAArB,EAAqC,IAArC,EAA2C,CAA3C,CAHgB;AAIpBX,MAAI0C,qBAAqB/B,cAArB,EAAqC,CAArC,EAAwC,IAAxC,CAJgB;AAKpBV,MAAIyC,qBAAqB/B,cAArB,EAAqC,IAArC,EAA2C,IAA3C,CALgB;AAMpBT,MAAIwC,qBAAqB/B,cAArB,EAAqC,IAArC,EAA2C,IAA3C;AANgB,CAAtB;;AASA17B,QAAQE,OAAR,GAAkB;AAChBugB,SAAO,SAASA,KAAT,CAAetgB,SAAf,EAA0B;AAC/B,QAAIwH,OAAOxH,UAAUwH,IAArB;AAAA,QACI0B,QAAQlJ,UAAUkJ,KADtB;;AAIAlJ,cAAUwH,IAAV,GAAiB,MAAjB;AACA0B,UAAM8E,KAAN,GAAcstB,SAAS,EAAT,EAAaoC,gBAAgBl2B,IAAhB,KAAyBk2B,gBAAgB5C,EAAtD,EAA0D5xB,MAAM8E,KAAhE,CAAd;;AAEA,QAAI,OAAO9E,MAAMiF,QAAb,KAA0B,QAA1B,IAAsC,CAACjF,MAAMpJ,KAAjD,EAAwD;AACtDoJ,YAAMpJ,KAAN,GAAcoJ,MAAMiF,QAApB;AACAjF,YAAMiF,QAAN,GAAiB,IAAjB;AACD;;AAED,WAAOnO,SAAP;AACD;AAfe,CAAlB;AAiBAQ,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;AC7CA;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;AAGAD,QAAQE,OAAR,GAAkB;;AAEhB;;;;;;AAMAugB,SAAO,SAASA,KAAT,CAAetgB,SAAf,EAA0B;AAC/BA,cAAUwH,IAAV,GAAiB,KAAjB;AACA,WAAOxH,SAAP;AACD;AAXe,CAAlB;AAaAQ,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;AClBA;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;;AAIA,IAAI+2B,aAAa,mBAAAn2B,CAAQ,EAAR,CAAjB;;AAEA,IAAIi9B,WAAW,mBAAAj9B,CAAQ,EAAR,CAAf;;AAEA,IAAIk9B,YAAYh9B,uBAAuB+8B,QAAvB,CAAhB;;AAEA,SAAS/8B,sBAAT,CAAgCW,GAAhC,EAAqC;AAAE,SAAOA,OAAOA,IAAIC,UAAX,GAAwBD,GAAxB,GAA8B,EAAExB,SAASwB,GAAX,EAArC;AAAwD;;AAE/F;;;;AAIA;;AAEA,IAAIs8B,6BAA6B,yBAAjC;AACA,IAAIC,aAAa,WAAjB;AACA,IAAIC,QAAQ,OAAZ;AACA,IAAIvuB,QAAQ,OAAZ;AACA,IAAIC,WAAW,UAAf;AACA,IAAIE,sBAAsB,SAA1B;;AAEA,IAAI0nB,SAAS;;AAEX5F,eAAa,OAAOuM,YAAP,KAAwB,WAAxB,IAAuCA,YAAvC,IAAuD,IAFzD;AAGXtM,iBAAe,OAAOuM,cAAP,KAA0B,WAA1B,IAAyCA,cAAzC,IAA2D,GAH/D;;AAKX3G,kBAAgB,SAASA,cAAT,GAA0B;AACxC,WAAO,KAAK7F,WAAL,IAAoBjY,SAASie,eAAT,CAAyByG,WAApD;AACD,GAPU;AAQXvM,kBAAgB,SAASA,cAAT,CAAwBtN,KAAxB,EAA+B;AAC7C,SAAKoN,WAAL,GAAmBpN,KAAnB;AACD,GAVU;AAWXkT,oBAAkB,SAASA,gBAAT,GAA4B;AAC5C,WAAO,KAAK7F,aAAZ;AACD,GAbU;AAcXE,oBAAkB,SAASA,gBAAT,CAA0BvN,KAA1B,EAAiC;AACjD,SAAKqN,aAAL,GAAqBrN,KAArB;AACD,GAhBU;AAiBX1L,kBAAgB,SAASA,cAAT,CAAwB+N,EAAxB,EAA4B;AAC1C,WAAOlN,SAASb,cAAT,CAAwB+N,EAAxB,CAAP;AACD,GAnBU;AAoBX5jB,cAAY,SAASA,UAAT,GAAsB;AAChC,WAAO0W,SAASge,IAAhB;AACD,GAtBU;AAuBXE,iBAAe,SAASA,aAAT,CAAuBC,OAAvB,EAAgC;AAC7C,WAAOne,SAASke,aAAT,CAAuBC,OAAvB,CAAP;AACD,GAzBU;AA0BX9F,eAAa,SAASA,WAAT,GAAuB;AAClC,WAAO,KAAK6F,aAAL,CAAmB,SAAnB,CAAP;AACD,GA5BU;AA6BX1F,cAAY,SAASA,UAAT,CAAoB4F,IAApB,EAA0B;AACpC,WAAOpe,SAAS2kB,cAAT,CAAwBvG,IAAxB,CAAP;AACD,GA/BU;AAgCX7F,cAAY,SAASA,UAAT,CAAoB5vB,IAApB,EAA0By1B,IAA1B,EAAgC;AAC1C,QAAIwG,kBAAkB,iBAAiB5kB,QAAjB,GAA4B,aAA5B,GAA4C,WAAlE;AACArX,SAAKi8B,eAAL,IAAwBxG,IAAxB;AACD,GAnCU;AAoCX1zB,iBAAe,SAASA,aAAT,CAAuBlE,SAAvB,EAAkC;AAC/C,QAAImC,OAAOqX,SAAStV,aAAT,CAAuBlE,UAAUwH,IAAjC,CAAX;AACA,QAAI0B,QAAQlJ,UAAUkJ,KAAtB;;AAEA,SAAK0jB,cAAL,CAAoBzqB,IAApB,EAA0B+G,KAA1B;;AAEA,WAAO/G,IAAP;AACD,GA3CU;AA4CXmO,eAAa,SAASA,WAAT,CAAqBnO,IAArB,EAA2ByN,MAA3B,EAAmC;AAC9C,WAAOA,OAAOU,WAAP,CAAmBnO,IAAnB,CAAP;AACD,GA9CU;AA+CX6B,eAAa,SAASA,WAAT,CAAqB7B,IAArB,EAA2ByN,MAA3B,EAAmC;AAC9CA,aAASA,UAAUzN,KAAK61B,UAAxB;AACA;AACA,QAAIpoB,MAAJ,EAAY;AACVA,aAAO5L,WAAP,CAAmB7B,IAAnB;AACD;AACF,GArDU;AAsDXoS,gBAAc,SAASA,YAAT,CAAsBL,QAAtB,EAAgCC,QAAhC,EAA0CvE,MAA1C,EAAkD;AAC9DA,aAASA,UAAUuE,SAAS6jB,UAA5B;AACApoB,WAAO2E,YAAP,CAAoBL,QAApB,EAA8BC,QAA9B;AACD,GAzDU;AA0DXJ,eAAa,SAASA,WAAT,CAAqB5R,IAArB,EAA2Bg2B,KAA3B,EAAkCvoB,MAAlC,EAA0C;AACrDA,aAASA,UAAUuoB,MAAMH,UAAzB;AACA,QAAIE,cAAcC,MAAMD,WAAxB;AACA,QAAIA,WAAJ,EAAiB;AACftoB,aAAOgF,YAAP,CAAoBzS,IAApB,EAA0B+1B,WAA1B;AACD,KAFD,MAEO;AACLtoB,aAAOU,WAAP,CAAmBnO,IAAnB;AACD;AACF,GAlEU;AAmEXyS,gBAAc,SAASA,YAAT,CAAsBzS,IAAtB,EAA4Bi2B,MAA5B,EAAoCxoB,MAApC,EAA4C;AACxDA,aAASA,UAAUwoB,OAAOJ,UAA1B;AACApoB,WAAOgF,YAAP,CAAoBzS,IAApB,EAA0Bi2B,MAA1B;AACD,GAtEU;AAuEXhmB,oBAAkB,SAASA,gBAAT,CAA0BjQ,IAA1B,EAAgC0lB,SAAhC,EAA2CC,YAA3C,EAAyD;AACzE,WAAO3lB,KAAKiQ,gBAAL,CAAsByV,SAAtB,EAAiCC,YAAjC,CAAP;AACD,GAzEU;AA0EX/V,uBAAqB,SAASA,mBAAT,CAA6B5P,IAA7B,EAAmC0lB,SAAnC,EAA8CC,YAA9C,EAA4D;AAC/E,WAAO3lB,KAAK4P,mBAAL,CAAyB8V,SAAzB,EAAoCC,YAApC,CAAP;AACD,GA5EU;AA6EX5W,2BAAyB,SAASA,uBAAT,CAAiC/O,IAAjC,EAAuC;AAC9D;AACD,GA/EU;AAgFX8P,mBAAiB,SAASA,eAAT,CAAyB9P,IAAzB,EAA+BuP,OAA/B,EAAwC;AACvD,QAAIA,YAAYmsB,0BAAhB,EAA4C;AAC1C,aAAO17B,KAAK6X,SAAL,GAAiB,IAAxB;AACD;;AAED,QAAItI,YAAYosB,UAAhB,EAA4B;AAC1BpsB,gBAAUqsB,KAAV;AACD;;AAED,QAAIrsB,WAAWvP,IAAf,EAAqB;AACnBA,WAAKuP,OAAL,IAAgB,IAAhB;AACD;;AAEDvP,SAAK8P,eAAL,CAAqBP,OAArB;AACD,GA9FU;AA+FXY,gBAAc,SAASA,YAAT,CAAsBnQ,IAAtB,EAA4BuP,OAA5B,EAAqC6mB,SAArC,EAAgD;AAC5D,QAAI7mB,YAAYmsB,0BAAhB,EAA4C;AAC1C,aAAO17B,KAAK6X,SAAL,GAAiBue,UAAU8F,MAAlC;AACD;;AAED,QAAI3sB,YAAYosB,UAAhB,EAA4B;AAC1BpsB,gBAAUqsB,KAAV;AACD;;AAED,QAAIrsB,WAAWvP,IAAf,EAAqB;AACnBA,WAAKuP,OAAL,IAAgB6mB,SAAhB;AACD,KAFD,MAEO;AACLp2B,WAAKmQ,YAAL,CAAkBZ,OAAlB,EAA2B6mB,SAA3B;AACD;AACF,GA7GU;AA8GX9lB,aAAW,SAASA,SAAT,CAAmBtQ,IAAnB,EAAyBy2B,MAAzB,EAAiC;AAC1C,QAAI0F,mBAAmB,EAAvB;;AAEA,SAAK,IAAIrmB,IAAT,IAAiB2gB,MAAjB,EAAyB;AACvB,UAAIvqB,MAAMuqB,OAAO3gB,IAAP,CAAV;AACA,UAAI2lB,UAAU79B,OAAV,CAAkBw+B,UAAlB,CAA6BtmB,IAA7B,CAAJ,EAAwC;AACtC2lB,kBAAU79B,OAAV,CAAkBkY,IAAlB,EAAwB5J,GAAxB,EAA6BiwB,gBAA7B;AACD,OAFD,MAEO;AACLA,yBAAiBrmB,IAAjB,IAAyB,CAAC,GAAG4e,WAAW9gB,WAAf,EAA4B1H,GAA5B,EAAiC4J,IAAjC,CAAzB;AACD;AACF;;AAED,SAAK,IAAIumB,KAAT,IAAkBF,gBAAlB,EAAoC;AAClC,UAAIG,iBAAiBH,iBAAiBE,KAAjB,CAArB;AACA;AACA,UAAI78B,MAAMC,OAAN,CAAc68B,cAAd,CAAJ,EAAmC;AACjC,aAAK,IAAI58B,IAAI,CAAb,EAAgBA,IAAI48B,eAAe18B,MAAnC,EAA2CF,GAA3C,EAAgD;AAC9CM,eAAK6L,KAAL,CAAWwwB,KAAX,IAAoBC,eAAe58B,CAAf,CAApB;AACD;AACF,OAJD,MAIO;AACLM,aAAK6L,KAAL,CAAWwwB,KAAX,IAAoBC,cAApB;AACD;AACF;AACF,GArIU;AAsIX57B,gBAAc,SAASA,YAAT,GAAwB;AACpC;AACA,KAAC,GAAGg0B,WAAWhhB,MAAf,EAAuB,KAAKyhB,cAAL,KAAwB,KAAKC,gBAAL,EAA/C;AACD,GAzIU;AA0IX3K,kBAAgB,SAASA,cAAT,CAAwBzqB,IAAxB,EAA8B+G,KAA9B,EAAqC;AACnD,SAAK,IAAI+O,IAAT,IAAiB/O,KAAjB,EAAwB;AACtB,UAAIpJ,QAAQoJ,MAAM+O,IAAN,CAAZ;AACA,UAAIA,SAASxI,QAAb,EAAuB;AACrB;AACD;;AAED,UAAI3P,SAAS,IAAb,EAAmB;AACjB,YAAImY,SAASzI,KAAb,EAAoB;AAClB,eAAKiD,SAAL,CAAetQ,IAAf,EAAqBrC,KAArB;AACD,SAFD,MAEO,IAAI6P,oBAAoBmC,IAApB,CAAyBmG,IAAzB,CAAJ,EAAoC;AACzC,cAAI4P,YAAY5P,KAAK/M,KAAL,CAAW,CAAX,EAAc8G,WAAd,EAAhB;AACA,eAAKI,gBAAL,CAAsBjQ,IAAtB,EAA4B0lB,SAA5B,EAAuC/nB,KAAvC;AACD,SAHM,MAGA;AACL,eAAKwS,YAAL,CAAkBnQ,IAAlB,EAAwB8V,IAAxB,EAA8BnY,KAA9B;AACD;AACF;AACF;AACF;AA5JU,CAAb;;AA+JAD,QAAQE,OAAR,GAAkBs3B,MAAlB;AACA72B,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;AC3LA;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;AAGA,IAAI4+B,YAAY;AACdC,WAAS,SADK;AAEd,gBAAc,OAFA;AAGd,cAAY,KAHE;AAIdC,UAAQ;AAJM,CAAhB;;AAOA,IAAIC,aAAa;AACfC,OAAK,YADU;AAEfC,UAAQ;AAFO,CAAjB;;AAKA,IAAIC,WAAW;AACb,gBAAc,OADD;AAEb,cAAY,KAFC;AAGbJ,UAAQ,QAHK;AAIb,mBAAiB,SAJJ;AAKb,kBAAgB,SALH,CAKa;AALb,CAAf;;AAQA,IAAIK,aAAa;AACfC,WAAS,IADM;AAEfzoB,QAAM,IAFS;AAGf0oB,cAAY,IAHG;AAIfC,aAAW,IAJI;AAKfC,iBAAe,IALA;AAMfC,kBAAgB,IAND;AAOfC,YAAU;AAPK,CAAjB;;AAUA,IAAIC,UAAU;AACZjB,cAAY,SAASA,UAAT,CAAoBtmB,IAApB,EAA0B;AACpC,WAAOgnB,WAAWhnB,IAAX,CAAP;AACD,GAHW;AAIZinB,WAAS,SAASA,OAAT,CAAiBp/B,KAAjB,EAAwB;AAC/B,QAAIkO,QAAQU,UAAU3M,MAAV,GAAmB,CAAnB,IAAwB2M,UAAU,CAAV,MAAiBxI,SAAzC,GAAqDwI,UAAU,CAAV,CAArD,GAAoE,EAAhF;;AAEA,QAAI5O,UAAU,MAAd,EAAsB;AACpBkO,YAAMkxB,OAAN,GAAgB,CAAC,aAAD,EAAgB,cAAhB,EAAgC,MAAhC,CAAhB;AACD,KAFD,MAEO;AACLlxB,YAAMkxB,OAAN,GAAgBp/B,KAAhB;AACD;;AAED,WAAOkO,KAAP;AACD,GAdW;AAeZyI,QAAM,SAASA,IAAT,CAAc3W,KAAd,EAAqB;AACzB,QAAIkO,QAAQU,UAAU3M,MAAV,GAAmB,CAAnB,IAAwB2M,UAAU,CAAV,MAAiBxI,SAAzC,GAAqDwI,UAAU,CAAV,CAArD,GAAoE,EAAhF;;AAEAV,UAAMyxB,aAAN,GAAsB3/B,KAAtB;AACAkO,UAAM0xB,UAAN,GAAmB5/B,KAAnB;AACAkO,UAAMyI,IAAN,GAAa3W,KAAb;AACA,WAAOkO,KAAP;AACD,GAtBW;AAuBZuxB,YAAU,SAASA,QAAT,CAAkBz/B,KAAlB,EAAyB;AACjC,QAAIkO,QAAQU,UAAU3M,MAAV,GAAmB,CAAnB,IAAwB2M,UAAU,CAAV,MAAiBxI,SAAzC,GAAqDwI,UAAU,CAAV,CAArD,GAAoE,EAAhF;;AAEAV,UAAMuxB,QAAN,GAAiBz/B,KAAjB;AACA,WAAOkO,KAAP;AACD,GA5BW;AA6BZmxB,cAAY,SAASA,UAAT,CAAoBr/B,KAApB,EAA2B;AACrC,QAAIkO,QAAQU,UAAU3M,MAAV,GAAmB,CAAnB,IAAwB2M,UAAU,CAAV,MAAiBxI,SAAzC,GAAqDwI,UAAU,CAAV,CAArD,GAAoE,EAAhF;;AAEAV,UAAM2xB,cAAN,GAAuBjB,UAAU5+B,KAAV,CAAvB;AACAkO,UAAM4xB,gBAAN,GAAyB9/B,KAAzB;AACAkO,UAAMmxB,UAAN,GAAmBr/B,KAAnB;AACA,WAAOkO,KAAP;AACD,GApCW;AAqCZoxB,aAAW,SAASA,SAAT,CAAmBt/B,KAAnB,EAA0B;AACnC,QAAIkO,QAAQU,UAAU3M,MAAV,GAAmB,CAAnB,IAAwB2M,UAAU,CAAV,MAAiBxI,SAAzC,GAAqDwI,UAAU,CAAV,CAArD,GAAoE,EAAhF;;AAEAV,UAAM6xB,eAAN,GAAwB//B,KAAxB;AACAkO,UAAMoxB,SAAN,GAAkBt/B,KAAlB;AACA,WAAOkO,KAAP;AACD,GA3CW;AA4CZqxB,iBAAe,SAASA,aAAT,CAAuBv/B,KAAvB,EAA8B;AAC3C,QAAIkO,QAAQU,UAAU3M,MAAV,GAAmB,CAAnB,IAAwB2M,UAAU,CAAV,MAAiBxI,SAAzC,GAAqDwI,UAAU,CAAV,CAArD,GAAoE,EAAhF;;AAEAV,UAAM8xB,eAAN,GAAwBjB,WAAW/+B,KAAX,CAAxB;AACAkO,UAAM+xB,mBAAN,GAA4BjgC,KAA5B;AACAkO,UAAMqxB,aAAN,GAAsBv/B,KAAtB;AACA,WAAOkO,KAAP;AACD,GAnDW;AAoDZsxB,kBAAgB,SAASA,cAAT,CAAwBx/B,KAAxB,EAA+B;AAC7C,QAAIkO,QAAQU,UAAU3M,MAAV,GAAmB,CAAnB,IAAwB2M,UAAU,CAAV,MAAiBxI,SAAzC,GAAqDwI,UAAU,CAAV,CAArD,GAAoE,EAAhF;;AAEAV,UAAMgyB,aAAN,GAAsBhB,SAASl/B,KAAT,CAAtB;AACAkO,UAAMiyB,oBAAN,GAA6BngC,KAA7B;AACAkO,UAAMsxB,cAAN,GAAuBx/B,KAAvB;AACA,WAAOkO,KAAP;AACD;AA3DW,CAAd;;AA8DAnO,QAAQE,OAAR,GAAkBy/B,OAAlB;AACAh/B,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;AClGA;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;;AAIA,IAAI0M,YAAY,mBAAA9L,CAAQ,CAAR,CAAhB;;AAEA,IAAI+L,aAAa7L,uBAAuB4L,SAAvB,CAAjB;;AAEA,SAAS5L,sBAAT,CAAgCW,GAAhC,EAAqC;AAAE,SAAOA,OAAOA,IAAIC,UAAX,GAAwBD,GAAxB,GAA8B,EAAExB,SAASwB,GAAX,EAArC;AAAwD;;AAE/F,SAASsrB,qBAAT,CAA+B1qB,IAA/B,EAAqC;AACnC,MAAIA,QAAQ,IAAZ,EAAkB;AAChB,WAAO,IAAP;AACD;AACD,SAAOsK,WAAW1M,OAAX,CAAmBwC,GAAnB,CAAuBJ,IAAvB,CAAP;AACD;;AAEDtC,QAAQE,OAAR,GAAkB8sB,qBAAlB;AACArsB,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;ACpBA;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;AAGAD,QAAQE,OAAR,GAAkB6sB,cAAlB;;AAEA,IAAInsB,QAAQ,mBAAAC,CAAQ,CAAR,CAAZ;;AAEA,IAAIC,SAASC,uBAAuBH,KAAvB,CAAb;;AAEA,IAAIy/B,eAAe,mBAAAx/B,CAAQ,EAAR,CAAnB;;AAEA,IAAI8sB,gBAAgB5sB,uBAAuBs/B,YAAvB,CAApB;;AAEA,SAASt/B,sBAAT,CAAgCW,GAAhC,EAAqC;AAAE,SAAOA,OAAOA,IAAIC,UAAX,GAAwBD,GAAxB,GAA8B,EAAExB,SAASwB,GAAX,EAArC;AAAwD;;AAE/F,SAASqrB,cAAT,CAAwBzqB,IAAxB,EAA8B+G,KAA9B,EAAqC;AACnC/G,SAAO,CAAC,GAAGqrB,cAAcztB,OAAlB,EAA2BoC,IAA3B,CAAP;AACAxB,SAAOZ,OAAP,CAAeO,MAAf,CAAsBssB,cAAtB,CAAqCzqB,IAArC,EAA2C+G,KAA3C;AACD;AACD1I,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C;;;;;;;ACrBA;;AAEAF,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,SAAO;AADoC,CAA7C;AAGAD,QAAQE,OAAR,GAAkB,QAAlB;AACAS,OAAOX,OAAP,GAAiBA,QAAQ,SAAR,CAAjB,C","file":"framework.web.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 17);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap ca4a3b8b4b761271deb4","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n/*\n * Stateful things in runtime\n */\nexports.default = {\n  component: null,\n  mountID: 1,\n  sandbox: true,\n  // Roots\n  rootComponents: {},\n  rootInstances: {},\n  // Inject\n  hook: null,\n  driver: null,\n  monitor: null\n};\nmodule.exports = exports[\"default\"];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/host.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _element = require('../element');\n\nvar _unmountComponentAtNode = require('../unmountComponentAtNode');\n\nvar _unmountComponentAtNode2 = _interopRequireDefault(_unmountComponentAtNode);\n\nvar _instantiateComponent = require('./instantiateComponent');\n\nvar _instantiateComponent2 = _interopRequireDefault(_instantiateComponent);\n\nvar _shouldUpdateComponent = require('./shouldUpdateComponent');\n\nvar _shouldUpdateComponent2 = _interopRequireDefault(_shouldUpdateComponent);\n\nvar _root = require('./root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _universalEnv = require('universal-env');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n/**\n * Instance manager\n */\nvar KEY = '$$instance';\n\nexports.default = {\n  set: function set(node, instance) {\n    if (!node[KEY]) {\n      node[KEY] = instance;\n      // Record root instance to roots map\n      if (instance.rootID) {\n        _host2.default.rootInstances[instance.rootID] = instance;\n        _host2.default.rootComponents[instance.rootID] = instance._internal;\n      }\n    }\n  },\n  get: function get(node) {\n    return node[KEY];\n  },\n  remove: function remove(node) {\n    var instance = this.get(node);\n    if (instance) {\n      node[KEY] = null;\n      if (instance.rootID) {\n        delete _host2.default.rootComponents[instance.rootID];\n        delete _host2.default.rootInstances[instance.rootID];\n      }\n    }\n  },\n  render: function render(element, container) {\n    if (process.env.NODE_ENV !== 'production') {\n      _host2.default.measurer && _host2.default.measurer.beforeRender();\n    }\n\n    // Before render callback\n    _host2.default.driver.beforeRender && _host2.default.driver.beforeRender();\n\n    // Real native root node is body\n    if (container == null) {\n      container = _host2.default.driver.createBody();\n    }\n\n    var prevRootInstance = this.get(container);\n    var hasPrevRootInstance = prevRootInstance && prevRootInstance.isRootComponent;\n\n    if (hasPrevRootInstance) {\n      var prevRenderedComponent = prevRootInstance.getRenderedComponent();\n      var prevElement = prevRenderedComponent._currentElement;\n      if ((0, _shouldUpdateComponent2.default)(prevElement, element)) {\n        var prevUnmaskedContext = prevRenderedComponent._context;\n        prevRenderedComponent.updateComponent(prevElement, element, prevUnmaskedContext, prevUnmaskedContext);\n\n        return prevRootInstance;\n      } else {\n        _host2.default.hook.Reconciler.unmountComponent(prevRootInstance);\n        (0, _unmountComponentAtNode2.default)(container);\n      }\n    }\n\n    // Handle server rendered element\n    if (_universalEnv.isWeb && container.childNodes) {\n      // Clone childNodes, Because removeChild will causing change in childNodes length\n      var childNodes = [].concat(_toConsumableArray(container.childNodes));\n\n      for (var i = 0; i < childNodes.length; i++) {\n        var rootChildNode = childNodes[i];\n        if (rootChildNode.hasAttribute && rootChildNode.hasAttribute('data-rendered')) {\n          _host2.default.driver.removeChild(rootChildNode, container);\n        }\n      }\n    }\n\n    var wrappedElement = (0, _element.createElement)(_root2.default, null, element);\n    var renderedComponent = (0, _instantiateComponent2.default)(wrappedElement);\n    var defaultContext = {};\n    var rootInstance = renderedComponent.mountComponent(container, null, defaultContext);\n    this.set(container, rootInstance);\n\n    // After render callback\n    _host2.default.driver.afterRender && _host2.default.driver.afterRender(rootInstance);\n\n    // Devtool render new root hook\n    _host2.default.hook.Mount._renderNewRootComponent(rootInstance._internal);\n\n    if (process.env.NODE_ENV !== 'production') {\n      _host2.default.measurer && _host2.default.measurer.afterRender();\n    }\n\n    return rootInstance;\n  }\n};\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/instance.js","'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/* eslint no-extend-native: \"off\", new-cap: \"off\" */\n\nvar defineProperties = Object.defineProperties,\n    defineProperty = Object.defineProperty,\n    SymbolPolyfill,\n    HiddenSymbol,\n    globalSymbols = Object.create(null);\n\nfunction isSymbol(x) {\n  if (!x) return false;\n  if ((typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'symbol') return true;\n  if (!x.constructor) return false;\n  if (x.constructor.name !== 'Symbol') return false;\n  return x[x.constructor.toStringTag] === 'Symbol';\n}\n\nfunction validateSymbol(value) {\n  if (!isSymbol(value)) throw new TypeError(value + ' is not a symbol');\n  return value;\n}\n\nvar generateName = function () {\n  var created = Object.create(null);\n  return function (desc) {\n    var postfix = 0,\n        name;\n    while (created[desc + (postfix || '')]) {\n      ++postfix;\n    }desc += postfix || '';\n    created[desc] = true;\n    name = '@@' + desc;\n    return name;\n  };\n}();\n\n// Internal constructor (not one exposed) for creating Symbol instances.\n// This one is used to ensure that `someSymbol instanceof Symbol` always return false\nHiddenSymbol = function _Symbol(description) {\n  if (this instanceof HiddenSymbol) throw new TypeError('Symbol is not a constructor');\n  return SymbolPolyfill(description);\n};\n\n// Exposed `Symbol` constructor\n// (returns instances of HiddenSymbol)\nmodule.exports = SymbolPolyfill = function _Symbol2(description) {\n  var symbol;\n  if (this instanceof _Symbol2) throw new TypeError('Symbol is not a constructor');\n  symbol = Object.create(HiddenSymbol.prototype);\n  description = description === undefined ? '' : String(description);\n  return defineProperties(symbol, {\n    __description__: { value: description },\n    __name__: { value: generateName(description) }\n  });\n};\ndefineProperties(SymbolPolyfill, {\n  for: { value: function value(key) {\n      if (globalSymbols[key]) return globalSymbols[key];\n      return globalSymbols[key] = SymbolPolyfill(String(key));\n    } },\n  keyFor: { value: function value(s) {\n      var key;\n      validateSymbol(s);\n      for (key in globalSymbols) {\n        if (globalSymbols[key] === s) return key;\n      }\n    } },\n\n  // To ensure proper interoperability with other native functions (e.g. Array.from)\n  // fallback to eventual native implementation of given symbol\n  hasInstance: { value: SymbolPolyfill('hasInstance') },\n  isConcatSpreadable: { value: SymbolPolyfill('isConcatSpreadable') },\n  iterator: { value: SymbolPolyfill('iterator') },\n  match: { value: SymbolPolyfill('match') },\n  replace: { value: SymbolPolyfill('replace') },\n  search: { value: SymbolPolyfill('search') },\n  species: { value: SymbolPolyfill('species') },\n  split: { value: SymbolPolyfill('split') },\n  toPrimitive: { value: SymbolPolyfill('toPrimitive') },\n  toStringTag: { value: SymbolPolyfill('toStringTag') },\n  unscopables: { value: SymbolPolyfill('unscopables') }\n});\n\n// Internal tweaks for real symbol producer\ndefineProperties(HiddenSymbol.prototype, {\n  constructor: { value: SymbolPolyfill },\n  toString: { value: function value() {\n      return this.__name__;\n    } }\n});\n\n// Proper implementation of methods exposed on Symbol.prototype\n// They won't be accessible on produced symbol instances as they derive from HiddenSymbol.prototype\ndefineProperties(SymbolPolyfill.prototype, {\n  toString: { value: function value() {\n      return 'Symbol (' + validateSymbol(this).__description__ + ')';\n    } },\n  valueOf: { value: function value() {\n      return validateSymbol(this);\n    } }\n});\n\ndefineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toPrimitive, {\n  value: function value() {\n    var symbol = validateSymbol(this);\n    if ((typeof symbol === 'undefined' ? 'undefined' : _typeof(symbol)) === 'symbol') return symbol;\n    return symbol.toString();\n  }\n});\ndefineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toStringTag, { value: 'Symbol' });\n\n// Proper implementaton of toPrimitive and toStringTag for returned symbol instances\ndefineProperty(HiddenSymbol.prototype, SymbolPolyfill.toStringTag, { value: SymbolPolyfill.prototype[SymbolPolyfill.toStringTag] });\n\n// Note: It's important to define `toPrimitive` as last one, as some implementations\n// implement `toPrimitive` natively without implementing `toStringTag` (or other specified symbols)\n// And that may invoke error in definition flow:\n// See: https://github.com/medikoo/es6-symbol/issues/13#issuecomment-164146149\ndefineProperty(HiddenSymbol.prototype, SymbolPolyfill.toPrimitive, { value: SymbolPolyfill.prototype[SymbolPolyfill.toPrimitive] });\n\n\n// WEBPACK FOOTER //\n// ./packages/runtime-shared/lib/symbol.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction instantiateComponent(element) {\n  var instance = void 0;\n\n  if (element === undefined || element === null || element === false || element === true) {\n    instance = new _host2.default.EmptyComponent();\n  } else if (Array.isArray(element)) {\n    instance = new _host2.default.FragmentComponent(element);\n  } else if ((typeof element === 'undefined' ? 'undefined' : _typeof(element)) === 'object' && element.type) {\n    // Special case string values\n    if (typeof element.type === 'string') {\n      instance = new _host2.default.NativeComponent(element);\n    } else {\n      instance = new _host2.default.CompositeComponent(element);\n    }\n  } else if (typeof element === 'string' || typeof element === 'number') {\n    instance = new _host2.default.TextComponent(element);\n  } else {\n    throw Error('Invalid element type ' + JSON.stringify(element));\n  }\n\n  instance._mountIndex = 0;\n\n  return instance;\n}\n\nexports.default = instantiateComponent;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/instantiateComponent.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n// https://www.w3.org/TR/html5/webappapis.html#dom-navigator-appcodename\nvar isWeb = exports.isWeb = (typeof navigator === 'undefined' ? 'undefined' : _typeof(navigator)) === 'object' && (navigator.appCodeName === 'Mozilla' || navigator.product === 'Gecko');\nvar isNode = exports.isNode = typeof process !== 'undefined' && !!(process.versions && process.versions.node);\nvar isWeex = exports.isWeex = typeof callNative === 'function';\nvar isReactNative = exports.isReactNative = typeof __fbBatchedBridgeConfig !== 'undefined';\n\n\n// WEBPACK FOOTER //\n// ./packages/universal-env/lib/index.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction shouldUpdateComponent(prevElement, nextElement) {\n  // TODO: prevElement and nextElement could be array\n  var prevEmpty = prevElement === null;\n  var nextEmpty = nextElement === null;\n  if (prevEmpty || nextEmpty) {\n    return prevEmpty === nextEmpty;\n  }\n\n  var prevType = typeof prevElement === 'undefined' ? 'undefined' : _typeof(prevElement);\n  var nextType = typeof nextElement === 'undefined' ? 'undefined' : _typeof(nextElement);\n  if (prevType === 'string' || prevType === 'number') {\n    return nextType === 'string' || nextType === 'number';\n  } else {\n    return prevType === 'object' && nextType === 'object' && prevElement.type === nextElement.type && prevElement.key === nextElement.key;\n  }\n}\n\nexports.default = shouldUpdateComponent;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/shouldUpdateComponent.js","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base component class.\n */\nvar Component = function () {\n  function Component(props, context, updater) {\n    _classCallCheck(this, Component);\n\n    this.props = props;\n    this.context = context;\n    this.refs = {};\n    this.updater = updater;\n  }\n\n  _createClass(Component, [{\n    key: \"isComponentClass\",\n    value: function isComponentClass() {}\n  }, {\n    key: \"setState\",\n    value: function setState(partialState, callback) {\n      this.updater.setState(this, partialState, callback);\n    }\n  }, {\n    key: \"forceUpdate\",\n    value: function forceUpdate(callback) {\n      this.updater.forceUpdate(this, callback);\n    }\n  }]);\n\n  return Component;\n}();\n\nexports.default = Component;\nmodule.exports = exports[\"default\"];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/component.js","'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); // https://github.com/WebReflection/url-search-params\n\n\nvar _symbol = require('./symbol');\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar find = /[!'\\(\\)~]|%20|%00/g;\nvar plus = /\\+/g;\nvar replace = {\n  '!': '%21',\n  \"'\": '%27',\n  '(': '%28',\n  ')': '%29',\n  '~': '%7E',\n  '%20': '+',\n  '%00': '\\x00'\n};\nvar replacer = function replacer(match) {\n  return replace[match];\n};\nvar secret = '__URLSearchParams__';\n\nfunction encode(str) {\n  return encodeURIComponent(str).replace(find, replacer);\n}\n\nfunction decode(str) {\n  return decodeURIComponent(str.replace(plus, ' '));\n}\n\nvar URLSearchParams = function () {\n  function URLSearchParams(query) {\n    _classCallCheck(this, URLSearchParams);\n\n    this[secret] = Object.create(null);\n    if (!query) return;\n    if (query.charAt(0) === '?') {\n      query = query.slice(1);\n    }\n    for (var index, value, pairs = (query || '').split('&'), i = 0, length = pairs.length; i < length; i++) {\n      value = pairs[i];\n      index = value.indexOf('=');\n      if (-1 < index) {\n        this.append(decode(value.slice(0, index)), decode(value.slice(index + 1)));\n      } else if (value.length) {\n        this.append(decode(value), '');\n      }\n    }\n  }\n\n  _createClass(URLSearchParams, [{\n    key: 'append',\n    value: function append(name, value) {\n      var dict = this[secret];\n      if (name in dict) {\n        dict[name].push('' + value);\n      } else {\n        dict[name] = ['' + value];\n      }\n    }\n  }, {\n    key: 'delete',\n    value: function _delete(name) {\n      delete this[secret][name];\n    }\n  }, {\n    key: 'get',\n    value: function get(name) {\n      var dict = this[secret];\n      return name in dict ? dict[name][0] : null;\n    }\n  }, {\n    key: 'getAll',\n    value: function getAll(name) {\n      var dict = this[secret];\n      return name in dict ? dict[name].slice(0) : [];\n    }\n  }, {\n    key: 'has',\n    value: function has(name) {\n      return name in this[secret];\n    }\n  }, {\n    key: 'set',\n    value: function set(name, value) {\n      this[secret][name] = ['' + value];\n    }\n  }, {\n    key: 'forEach',\n    value: function forEach(callback, thisArg) {\n      var dict = this[secret];\n      Object.getOwnPropertyNames(dict).forEach(function (name) {\n        dict[name].forEach(function (value) {\n          callback.call(thisArg, value, name, this);\n        }, this);\n      }, this);\n    }\n  }, {\n    key: 'keys',\n    value: function keys() {\n      var items = [];\n      this.forEach(function (value, name) {\n        items.push(name);\n      });\n      var iterator = {\n        next: function next() {\n          var value = items.shift();\n          return { done: value === undefined, value: value };\n        }\n      };\n\n      iterator[_symbol2.default.iterator] = function () {\n        return iterator;\n      };\n\n      return iterator;\n    }\n  }, {\n    key: 'values',\n    value: function values() {\n      var items = [];\n      this.forEach(function (value) {\n        items.push(value);\n      });\n      var iterator = {\n        next: function next() {\n          var value = items.shift();\n          return { done: value === undefined, value: value };\n        }\n      };\n\n      iterator[_symbol2.default.iterator] = function () {\n        return iterator;\n      };\n\n      return iterator;\n    }\n  }, {\n    key: 'entries',\n    value: function entries() {\n      var items = [];\n      this.forEach(function (value, name) {\n        items.push([name, value]);\n      });\n      var iterator = {\n        next: function next() {\n          var value = items.shift();\n          return { done: value === undefined, value: value };\n        }\n      };\n\n      iterator[_symbol2.default.iterator] = function () {\n        return iterator;\n      };\n\n      return iterator;\n    }\n  }, {\n    key: 'toString',\n    value: function toString() {\n      var dict = this[secret],\n          query = [],\n          i,\n          key,\n          name,\n          value;\n      for (key in dict) {\n        name = encode(key);\n        for (i = 0, value = dict[key]; i < value.length; i++) {\n          query.push(name + '=' + encode(value[i]));\n        }\n      }\n      return query.join('&');\n    }\n  }]);\n\n  return URLSearchParams;\n}();\n\nURLSearchParams.prototype[_symbol2.default.iterator] = URLSearchParams.prototype.entries;\n\nmodule.exports = URLSearchParams;\n\n\n// WEBPACK FOOTER //\n// ./packages/runtime-shared/lib/url-search-params.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _instance = require('../vdom/instance');\n\nvar _instance2 = _interopRequireDefault(_instance);\n\nvar _host = require('../vdom/host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  ComponentTree: {\n    getClosestInstanceFromNode: function getClosestInstanceFromNode(node) {\n      return _instance2.default.get(node);\n    },\n    getNodeFromInstance: function getNodeFromInstance(inst) {\n      // inst is an internal instance (but could be a composite)\n      while (inst._renderedComponent) {\n        inst = inst._renderedComponent;\n      }\n\n      if (inst) {\n        return inst._nativeNode;\n      } else {\n        return null;\n      }\n    }\n  },\n  Mount: {\n    _instancesByReactRootID: _host2.default.rootComponents,\n\n    // Stub - React DevTools expects to find this method and replace it\n    // with a wrapper in order to observe new root components being added\n    _renderNewRootComponent: function _renderNewRootComponent() {}\n  },\n  Reconciler: {\n    // Stubs - React DevTools expects to find these methods and replace them\n    // with wrappers in order to observe components being mounted, updated and\n    // unmounted\n    mountComponent: function mountComponent() {},\n    receiveComponent: function receiveComponent() {},\n    unmountComponent: function unmountComponent() {}\n  },\n  // monitor the info of all components\n  monitor: null\n};\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/debug/hook.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.createElement = createElement;\nexports.createFactory = createFactory;\nexports.cloneElement = cloneElement;\nexports.isValidElement = isValidElement;\n\nvar _host = require('./vdom/host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _flattenChildren = require('./flattenChildren');\n\nvar _flattenChildren2 = _interopRequireDefault(_flattenChildren);\n\nvar _universalEnv = require('universal-env');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar RESERVED_PROPS = {\n  key: true,\n  ref: true\n};\n\nfunction getRenderErrorInfo() {\n  if (_host2.default.component) {\n    var name = _host2.default.component.getName();\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\nvar Element = function Element(type, key, ref, props, owner) {\n  props = filterProps(type, props);\n\n  return {\n    // Built-in properties that belong on the element\n    type: type,\n    key: key,\n    ref: ref,\n    props: props,\n    // Record the component responsible for creating this element.\n    _owner: owner\n  };\n};\n\nexports.default = Element;\n\n\nfunction flattenStyle(style) {\n  if (!style) {\n    return undefined;\n  }\n\n  if (!Array.isArray(style)) {\n    return style;\n  } else {\n    var result = {};\n    for (var i = 0; i < style.length; ++i) {\n      var computedStyle = flattenStyle(style[i]);\n      if (computedStyle) {\n        for (var key in computedStyle) {\n          result[key] = computedStyle[key];\n        }\n      }\n    }\n    return result;\n  }\n}\n\n// TODO: move to weex-drvier\nfunction filterProps(type, props) {\n  // Only for weex text\n  if (_universalEnv.isWeex && type === 'text') {\n    var children = props.children;\n    var value = props.value;\n\n    // Value is first\n    if (value == null && children != null) {\n      if (Array.isArray(children)) {\n        children = children.map(function (val) {\n          if (typeof val === 'number' || typeof val === 'string') {\n            return val;\n          } else {\n            return '';\n          }\n        }).join('');\n      } else if (typeof children !== 'number' && typeof children !== 'string') {\n        children = '';\n      }\n\n      props.value = String(children);\n    }\n\n    props.children = null;\n  }\n\n  return props;\n}\n\nfunction createElement(type, config) {\n  if (type == null) {\n    throw Error('createElement: type should not be null or undefined.' + getRenderErrorInfo());\n  }\n  // Reserved names are extracted\n  var props = {};\n  var propName = void 0;\n  var key = null;\n  var ref = null;\n\n  if (config != null) {\n    ref = config.ref === undefined ? null : config.ref;\n    key = config.key === undefined ? null : String(config.key);\n    // Remaining properties are added to a new props object\n    for (propName in config) {\n      if (config.hasOwnProperty(propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        props[propName] = config[propName];\n      }\n    }\n  }\n\n  for (var _len = arguments.length, children = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n    children[_key - 2] = arguments[_key];\n  }\n\n  if (children.length) {\n    props.children = (0, _flattenChildren2.default)(children);\n  }\n\n  // Resolve default props\n  if (type && type.defaultProps) {\n    var defaultProps = type.defaultProps;\n    for (propName in defaultProps) {\n      if (props[propName] === undefined) {\n        props[propName] = defaultProps[propName];\n      }\n    }\n  }\n\n  if (props.style && (Array.isArray(props.style) || _typeof(props.style) === 'object')) {\n    props.style = flattenStyle(props.style);\n  }\n\n  return new Element(type, key, ref, props, _host2.default.component);\n}\n\nfunction createFactory(type) {\n  var factory = createElement.bind(null, type);\n  // Expose the type on the factory and the prototype so that it can be\n  // easily accessed on elements. E.g. `<Foo />.type === Foo`.\n  // This should not be named `constructor` since this may not be the function\n  // that created the element, and it may not even be a constructor.\n  factory.type = type;\n  return factory;\n}\n\nfunction cloneElement(element, config) {\n  if (!isValidElement(element)) {\n    throw Error('cloneElement: not a valid element.' + getRenderErrorInfo());\n  }\n\n  // Original props are copied\n  var props = Object.assign({}, element.props);\n\n  // Reserved names are extracted\n  var key = element.key;\n  var ref = element.ref;\n\n  // Owner will be preserved, unless ref is overridden\n  var owner = element._owner;\n\n  if (config) {\n    // Should reset ref and owner if has a new ref\n    if (config.ref !== undefined) {\n      ref = config.ref;\n      owner = _host2.default.component;\n    }\n\n    if (config.key !== undefined) {\n      key = String(config.key);\n    }\n\n    // Resolve default props\n    var defaultProps = void 0;\n    if (element.type && element.type.defaultProps) {\n      defaultProps = element.type.defaultProps;\n    }\n    // Remaining properties override existing props\n    var propName = void 0;\n    for (propName in config) {\n      if (config.hasOwnProperty(propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        if (config[propName] === undefined && defaultProps !== undefined) {\n          // Resolve default props\n          props[propName] = defaultProps[propName];\n        } else {\n          props[propName] = config[propName];\n        }\n      }\n    }\n  }\n\n  for (var _len2 = arguments.length, children = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n    children[_key2 - 2] = arguments[_key2];\n  }\n\n  if (children.length) {\n    props.children = (0, _flattenChildren2.default)(children);\n  }\n\n  return new Element(element.type, key, ref, props, owner);\n};\n\nfunction isValidElement(object) {\n  return (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && object !== null && object.type && object.props;\n}\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/element.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = unmountComponentAtNode;\n\nvar _instance = require('./vdom/instance');\n\nvar _instance2 = _interopRequireDefault(_instance);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction unmountComponentAtNode(node) {\n  var component = _instance2.default.get(node);\n\n  if (!component) {\n    return false;\n  }\n\n  _instance2.default.remove(node);\n  component._internal.unmountComponent();\n\n  return true;\n};\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/unmountComponentAtNode.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _ref = require('./ref');\n\nvar _ref2 = _interopRequireDefault(_ref);\n\nvar _instantiateComponent = require('./instantiateComponent');\n\nvar _instantiateComponent2 = _interopRequireDefault(_instantiateComponent);\n\nvar _shouldUpdateComponent = require('./shouldUpdateComponent');\n\nvar _shouldUpdateComponent2 = _interopRequireDefault(_shouldUpdateComponent);\n\nvar _getElementKeyName = require('./getElementKeyName');\n\nvar _getElementKeyName2 = _interopRequireDefault(_getElementKeyName);\n\nvar _instance = require('./instance');\n\nvar _instance2 = _interopRequireDefault(_instance);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar STYLE = 'style';\nvar CHILDREN = 'children';\nvar TREE = 'tree';\nvar EVENT_PREFIX_REGEXP = /on[A-Z]/;\n\n/**\n * Native Component\n */\n\nvar NativeComponent = function () {\n  function NativeComponent(element) {\n    _classCallCheck(this, NativeComponent);\n\n    this._currentElement = element;\n  }\n\n  _createClass(NativeComponent, [{\n    key: 'mountComponent',\n    value: function mountComponent(parent, parentInstance, context, childMounter) {\n      // Parent native element\n      this._parent = parent;\n      this._parentInstance = parentInstance;\n      this._context = context;\n      this._mountID = _host2.default.mountID++;\n\n      var props = this._currentElement.props;\n      var type = this._currentElement.type;\n      var instance = {\n        _internal: this,\n        type: type,\n        props: props\n      };\n      var appendType = props.append; // Default is node\n\n      this._instance = instance;\n\n      // Clone a copy for style diff\n      this._prevStyleCopy = Object.assign({}, props.style);\n\n      var nativeNode = this.getNativeNode();\n\n      if (appendType !== TREE) {\n        if (childMounter) {\n          childMounter(nativeNode, parent);\n        } else {\n          _host2.default.driver.appendChild(nativeNode, parent);\n        }\n      }\n\n      if (this._currentElement && this._currentElement.ref) {\n        _ref2.default.attach(this._currentElement._owner, this._currentElement.ref, this);\n      }\n\n      // Process children\n      var children = props.children;\n      if (children != null) {\n        this.mountChildren(children, context);\n      }\n\n      if (appendType === TREE) {\n        if (childMounter) {\n          childMounter(nativeNode, parent);\n        } else {\n          _host2.default.driver.appendChild(nativeNode, parent);\n        }\n      }\n\n      _host2.default.hook.Reconciler.mountComponent(this);\n\n      return instance;\n    }\n  }, {\n    key: 'mountChildren',\n    value: function mountChildren(children, context) {\n      var _this = this;\n\n      if (!Array.isArray(children)) {\n        children = [children];\n      }\n\n      var renderedChildren = this._renderedChildren = {};\n\n      var renderedChildrenImage = children.map(function (element, index) {\n        var renderedChild = (0, _instantiateComponent2.default)(element);\n        var name = (0, _getElementKeyName2.default)(renderedChildren, element, index);\n        renderedChildren[name] = renderedChild;\n        renderedChild._mountIndex = index;\n        // Mount\n        var mountImage = renderedChild.mountComponent(_this.getNativeNode(), _this._instance, context, null);\n        return mountImage;\n      });\n\n      return renderedChildrenImage;\n    }\n  }, {\n    key: 'unmountChildren',\n    value: function unmountChildren(notRemoveChild) {\n      var renderedChildren = this._renderedChildren;\n\n      if (renderedChildren) {\n        for (var name in renderedChildren) {\n          var renderedChild = renderedChildren[name];\n          renderedChild.unmountComponent(notRemoveChild);\n        }\n        this._renderedChildren = null;\n      }\n    }\n  }, {\n    key: 'unmountComponent',\n    value: function unmountComponent(notRemoveChild) {\n      if (this._nativeNode) {\n        var ref = this._currentElement.ref;\n        if (ref) {\n          _ref2.default.detach(this._currentElement._owner, ref, this);\n        }\n\n        _instance2.default.remove(this._nativeNode);\n        if (!notRemoveChild) {\n          _host2.default.driver.removeChild(this._nativeNode, this._parent);\n        }\n        _host2.default.driver.removeAllEventListeners(this._nativeNode);\n      }\n\n      this.unmountChildren(notRemoveChild);\n\n      _host2.default.hook.Reconciler.unmountComponent(this);\n\n      this._currentElement = null;\n      this._nativeNode = null;\n      this._parent = null;\n      this._parentInstance = null;\n      this._context = null;\n      this._instance = null;\n      this._prevStyleCopy = null;\n    }\n  }, {\n    key: 'updateComponent',\n    value: function updateComponent(prevElement, nextElement, prevContext, nextContext) {\n      // Replace current element\n      this._currentElement = nextElement;\n\n      _ref2.default.update(prevElement, nextElement, this);\n\n      var prevProps = prevElement.props;\n      var nextProps = nextElement.props;\n\n      this.updateProperties(prevProps, nextProps);\n      this.updateChildren(nextProps.children, nextContext);\n\n      _host2.default.hook.Reconciler.receiveComponent(this);\n    }\n  }, {\n    key: 'updateProperties',\n    value: function updateProperties(prevProps, nextProps) {\n      var propKey = void 0;\n      var styleName = void 0;\n      var styleUpdates = void 0;\n      for (propKey in prevProps) {\n        if (propKey === CHILDREN || nextProps.hasOwnProperty(propKey) || !prevProps.hasOwnProperty(propKey) || prevProps[propKey] == null) {\n          continue;\n        }\n        if (propKey === STYLE) {\n          var lastStyle = this._prevStyleCopy;\n          for (styleName in lastStyle) {\n            if (lastStyle.hasOwnProperty(styleName)) {\n              styleUpdates = styleUpdates || {};\n              styleUpdates[styleName] = '';\n            }\n          }\n          this._prevStyleCopy = null;\n        } else if (EVENT_PREFIX_REGEXP.test(propKey)) {\n          if (typeof prevProps[propKey] === 'function') {\n            _host2.default.driver.removeEventListener(this.getNativeNode(), propKey.slice(2).toLowerCase(), prevProps[propKey]);\n          }\n        } else {\n          _host2.default.driver.removeAttribute(this.getNativeNode(), propKey, prevProps[propKey]);\n        }\n      }\n\n      for (propKey in nextProps) {\n        var nextProp = nextProps[propKey];\n        var prevProp = propKey === STYLE ? this._prevStyleCopy : prevProps != null ? prevProps[propKey] : undefined;\n        if (propKey === CHILDREN || !nextProps.hasOwnProperty(propKey) || nextProp === prevProp || nextProp == null && prevProp == null) {\n          continue;\n        }\n        // Update style\n        if (propKey === STYLE) {\n          if (nextProp) {\n            // Clone property\n            nextProp = this._prevStyleCopy = Object.assign({}, nextProp);\n          } else {\n            this._prevStyleCopy = null;\n          }\n\n          if (prevProp != null) {\n            // Unset styles on `prevProp` but not on `nextProp`.\n            for (styleName in prevProp) {\n              if (prevProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n                styleUpdates = styleUpdates || {};\n                styleUpdates[styleName] = '';\n              }\n            }\n            // Update styles that changed since `prevProp`.\n            for (styleName in nextProp) {\n              if (nextProp.hasOwnProperty(styleName) && prevProp[styleName] !== nextProp[styleName]) {\n                styleUpdates = styleUpdates || {};\n                styleUpdates[styleName] = nextProp[styleName];\n              }\n            }\n          } else {\n            // Assign next prop when prev style is null\n            styleUpdates = nextProp;\n          }\n\n          // Update event binding\n        } else if (EVENT_PREFIX_REGEXP.test(propKey)) {\n          if (typeof prevProp === 'function') {\n            _host2.default.driver.removeEventListener(this.getNativeNode(), propKey.slice(2).toLowerCase(), prevProp);\n          }\n\n          if (typeof nextProp === 'function') {\n            _host2.default.driver.addEventListener(this.getNativeNode(), propKey.slice(2).toLowerCase(), nextProp);\n          }\n          // Update other property\n        } else {\n          var payload = {};\n          payload[propKey] = nextProp;\n          if (nextProp != null) {\n            _host2.default.driver.setAttribute(this.getNativeNode(), propKey, nextProp);\n          } else {\n            _host2.default.driver.removeAttribute(this.getNativeNode(), propKey, prevProps[propKey]);\n          }\n          if (process.env.NODE_ENV !== 'production') {\n            _host2.default.measurer && _host2.default.measurer.recordOperation({\n              instanceID: this._mountID,\n              type: 'update attribute',\n              payload: payload\n            });\n          }\n        }\n      }\n\n      if (styleUpdates) {\n        if (process.env.NODE_ENV !== 'production') {\n          _host2.default.measurer && _host2.default.measurer.recordOperation({\n            instanceID: this._mountID,\n            type: 'update style',\n            payload: styleUpdates\n          });\n        }\n        _host2.default.driver.setStyles(this.getNativeNode(), styleUpdates);\n      }\n    }\n  }, {\n    key: 'updateChildren',\n    value: function updateChildren(nextChildrenElements, context) {\n      var _this2 = this;\n\n      // prev rendered children\n      var prevChildren = this._renderedChildren;\n\n      if (nextChildrenElements == null && prevChildren == null) {\n        return;\n      }\n\n      var nextChildren = {};\n      var oldNodes = {};\n\n      if (nextChildrenElements != null) {\n        if (!Array.isArray(nextChildrenElements)) {\n          nextChildrenElements = [nextChildrenElements];\n        }\n\n        // Update next children elements\n        for (var index = 0, length = nextChildrenElements.length; index < length; index++) {\n          var nextElement = nextChildrenElements[index];\n          var name = (0, _getElementKeyName2.default)(nextChildren, nextElement, index);\n          var prevChild = prevChildren && prevChildren[name];\n          var prevElement = prevChild && prevChild._currentElement;\n\n          if (prevChild != null && (0, _shouldUpdateComponent2.default)(prevElement, nextElement)) {\n            // Pass the same context when updating chidren\n            prevChild.updateComponent(prevElement, nextElement, context, context);\n            nextChildren[name] = prevChild;\n          } else {\n            // Unmount the prevChild when nextChild is different element type.\n            if (prevChild) {\n              var oldNativeNode = prevChild.getNativeNode();\n              // Delay remove child\n              prevChild.unmountComponent(true);\n              oldNodes[name] = oldNativeNode;\n            }\n            // The child must be instantiated before it's mounted.\n            nextChildren[name] = (0, _instantiateComponent2.default)(nextElement);\n          }\n        }\n      }\n\n      var firstPrevChild = void 0;\n      var delayRemoveFirstPrevChild = void 0;\n      // Unmount children that are no longer present.\n      if (prevChildren != null) {\n        for (var _name in prevChildren) {\n          if (!prevChildren.hasOwnProperty(_name)) {\n            continue;\n          }\n\n          var _prevChild = prevChildren[_name];\n          var shouldRemove = !nextChildren[_name];\n\n          // Store old first child ref for append node ahead and maybe delay remove it\n          if (!firstPrevChild) {\n            firstPrevChild = _prevChild;\n            delayRemoveFirstPrevChild = shouldRemove;\n          } else if (shouldRemove) {\n            _prevChild.unmountComponent();\n          }\n        }\n      }\n\n      if (nextChildren != null) {\n        (function () {\n          // `nextIndex` will increment for each child in `nextChildren`, but\n          // `lastIndex` will be the last index visited in `prevChildren`.\n          var lastIndex = 0;\n          var nextIndex = 0;\n          var lastPlacedNode = null;\n          var nextNativeNode = [];\n\n          var _loop = function _loop(_name2) {\n            if (!nextChildren.hasOwnProperty(_name2)) {\n              return 'continue';\n            }\n\n            var nextChild = nextChildren[_name2];\n            var prevChild = prevChildren && prevChildren[_name2];\n\n            if (prevChild === nextChild) {\n              var prevChildNativeNode = prevChild.getNativeNode();\n              // Convert to array type\n              if (!Array.isArray(prevChildNativeNode)) {\n                prevChildNativeNode = [prevChildNativeNode];\n              }\n\n              // If the index of `child` is less than `lastIndex`, then it needs to\n              // be moved. Otherwise, we do not need to move it because a child will be\n              // inserted or moved before `child`.\n              if (prevChild._mountIndex < lastIndex) {\n                // Get the last child\n                if (Array.isArray(lastPlacedNode)) {\n                  lastPlacedNode = lastPlacedNode[lastPlacedNode.length - 1];\n                }\n\n                for (var _i = prevChildNativeNode.length - 1; _i >= 0; _i--) {\n                  _host2.default.driver.insertAfter(prevChildNativeNode[_i], lastPlacedNode);\n                }\n              }\n\n              nextNativeNode = nextNativeNode.concat(prevChildNativeNode);\n\n              lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n              prevChild._mountIndex = nextIndex;\n            } else {\n              if (prevChild != null) {\n                // Update `lastIndex` before `_mountIndex` gets unset by unmounting.\n                lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n              }\n\n              var parent = _this2.getNativeNode();\n              // Fragment extended native component, so if parent is fragment should get this._parent\n              if (Array.isArray(parent)) {\n                parent = _this2._parent;\n              }\n\n              nextChild.mountComponent(parent, _this2._instance, context, function (newChild, parent) {\n                // TODO: Rework the duplicate code\n                var oldChild = oldNodes[_name2];\n                if (!Array.isArray(newChild)) {\n                  newChild = [newChild];\n                }\n\n                if (oldChild) {\n                  // The oldChild or newChild all maybe fragment\n                  if (!Array.isArray(oldChild)) {\n                    oldChild = [oldChild];\n                  }\n\n                  // If newChild count large then oldChild\n                  var lastNewChild = void 0;\n                  for (var _i2 = 0; _i2 < newChild.length; _i2++) {\n                    var child = newChild[_i2];\n                    if (oldChild[_i2]) {\n                      _host2.default.driver.replaceChild(child, oldChild[_i2]);\n                    } else {\n                      _host2.default.driver.insertAfter(child, lastNewChild);\n                    }\n                    lastNewChild = child;\n                  }\n\n                  // If newChild count less then oldChild\n                  if (newChild.length < oldChild.length) {\n                    for (var _i3 = newChild.length; _i3 < oldChild.length; _i3++) {\n                      _host2.default.driver.removeChild(oldChild[_i3]);\n                    }\n                  }\n                } else {\n                  // Insert child at a specific index\n\n                  // Get the last child\n                  if (Array.isArray(lastPlacedNode)) {\n                    lastPlacedNode = lastPlacedNode[lastPlacedNode.length - 1];\n                  }\n\n                  var prevFirstNativeNode = void 0;\n\n                  if (firstPrevChild && !lastPlacedNode) {\n                    prevFirstNativeNode = firstPrevChild.getNativeNode();\n                    if (Array.isArray(prevFirstNativeNode)) {\n                      prevFirstNativeNode = prevFirstNativeNode[0];\n                    }\n                  }\n\n                  for (var _i4 = newChild.length - 1; _i4 >= 0; _i4--) {\n                    var _child = newChild[_i4];\n                    if (lastPlacedNode) {\n                      _host2.default.driver.insertAfter(_child, lastPlacedNode);\n                    } else if (prevFirstNativeNode) {\n                      _host2.default.driver.insertBefore(_child, prevFirstNativeNode);\n                    } else {\n                      _host2.default.driver.appendChild(_child, parent);\n                    }\n                  }\n                }\n\n                nextNativeNode = nextNativeNode.concat(newChild);\n              });\n              nextChild._mountIndex = nextIndex;\n            }\n\n            nextIndex++;\n            lastPlacedNode = nextChild.getNativeNode();\n          };\n\n          for (var _name2 in nextChildren) {\n            var _ret2 = _loop(_name2);\n\n            if (_ret2 === 'continue') continue;\n          }\n\n          // Sync update native refs\n          if (Array.isArray(_this2._nativeNode)) {\n            // Clear all and push the new array\n            _this2._nativeNode.splice(0, _this2._nativeNode.length);\n            for (var i = 0; i < nextNativeNode.length; i++) {\n              _this2._nativeNode.push(nextNativeNode[i]);\n            }\n          }\n        })();\n      }\n\n      if (delayRemoveFirstPrevChild) {\n        firstPrevChild.unmountComponent();\n      }\n\n      this._renderedChildren = nextChildren;\n    }\n  }, {\n    key: 'getNativeNode',\n    value: function getNativeNode() {\n      if (this._nativeNode == null) {\n        this._nativeNode = _host2.default.driver.createElement(this._instance);\n        _instance2.default.set(this._nativeNode, this._instance);\n      }\n\n      return this._nativeNode;\n    }\n  }, {\n    key: 'getPublicInstance',\n    value: function getPublicInstance() {\n      return this.getNativeNode();\n    }\n  }, {\n    key: 'getName',\n    value: function getName() {\n      return this._currentElement.type;\n    }\n  }]);\n\n  return NativeComponent;\n}();\n\nexports.default = NativeComponent;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/native.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n/*\n * Ref manager\n */\n\nexports.default = {\n  update: function update(prevElement, nextElement, component) {\n    var prevRef = prevElement != null && prevElement.ref;\n    var nextRef = nextElement != null && nextElement.ref;\n\n    // Update refs in owner component\n    if (prevRef !== nextRef) {\n      // Detach prev RenderedElement's ref\n      prevRef != null && this.detach(prevElement._owner, prevRef, component);\n      // Attach next RenderedElement's ref\n      nextRef != null && this.attach(nextElement._owner, nextRef, component);\n    }\n  },\n  attach: function attach(ownerComponent, ref, component) {\n    if (!ownerComponent) {\n      throw new Error('You might be adding a ref to a component that was not created inside a component\\'s ' + '`render` method, or you have multiple copies of Rax loaded.');\n    }\n\n    var instance = component.getPublicInstance();\n    if (typeof ref === 'function') {\n      ref(instance);\n    } else {\n      ownerComponent._instance.refs[ref] = instance;\n    }\n  },\n  detach: function detach(ownerComponent, ref, component) {\n    if (typeof ref === 'function') {\n      // When the referenced component is unmounted and whenever the ref changes, the old ref will be called with null as an argument.\n      ref(null);\n    } else {\n      // Must match component and ref could detach the ref on owner when A's before ref is B's current ref\n      var instance = component.getPublicInstance();\n      if (ownerComponent._instance.refs[ref] === instance) {\n        delete ownerComponent._instance.refs[ref];\n      }\n    }\n  }\n};\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/ref.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (children, element, index) {\n  var elementKey = element && element.key;\n  var hasKey = typeof elementKey === 'string';\n  var defaultName = '.' + index.toString(36);\n\n  if (hasKey) {\n    var keyName = '$' + elementKey;\n    // Child keys must be unique.\n    var keyUnique = children[keyName] === undefined;\n    // Only the first child will be used when encountered two children with the same key\n    if (!keyUnique) console.warn('Encountered two children with the same key \"' + elementKey + '\".');\n\n    return keyUnique ? keyName : defaultName;\n  } else {\n    return defaultName;\n  }\n};\n\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/getElementKeyName.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.isRem = isRem;\nexports.calcRem = calcRem;\nexports.getRem = getRem;\nexports.setRem = setRem;\nexports.isUnitNumber = isUnitNumber;\nexports.convertUnit = convertUnit;\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\nvar UNITLESS_NUMBER_PROPS = {\n  animationIterationCount: true,\n  borderImageOutset: true,\n  borderImageSlice: true,\n  borderImageWidth: true,\n  boxFlex: true,\n  boxFlexGroup: true,\n  boxOrdinalGroup: true,\n  columnCount: true,\n  flex: true,\n  flexGrow: true,\n  flexPositive: true,\n  flexShrink: true,\n  flexNegative: true,\n  flexOrder: true,\n  gridRow: true,\n  gridColumn: true,\n  fontWeight: true,\n  lineClamp: true,\n  // We make lineHeight default is px that is diff with w3c spec\n  // lineHeight: true,\n  opacity: true,\n  order: true,\n  orphans: true,\n  tabSize: true,\n  widows: true,\n  zIndex: true,\n  zoom: true,\n  // Weex only\n  lines: true\n};\nvar SUFFIX = 'rem';\nvar REM_REG = /[-+]?\\d*\\.?\\d+rem/g;\n\n// Default 1 rem to 1 px\nvar defaultRemUnit = 1;\n\n/**\n * Is string contains rem\n * @param {String} str\n * @returns {Boolean}\n */\nfunction isRem(str) {\n  return typeof str === 'string' && str.indexOf(SUFFIX) !== -1;\n}\n\n/**\n * Calculate rem to pixels: '1.2rem' => 1.2 * rem\n * @param {String} str\n * @param {Number} rem\n * @returns {number}\n */\nfunction calcRem(str) {\n  var remUnit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultRemUnit;\n\n  return str.replace(REM_REG, function (rem) {\n    return parseFloat(rem) * remUnit + 'px';\n  });\n}\n\nfunction getRem() {\n  return defaultRemUnit;\n}\n\nfunction setRem(rem) {\n  defaultRemUnit = rem;\n}\n\nfunction isUnitNumber(val, prop) {\n  return typeof val === 'number' && !UNITLESS_NUMBER_PROPS[prop];\n}\n\nfunction convertUnit(val, prop) {\n  var remUnit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultRemUnit;\n\n  if (prop && isUnitNumber(val, prop)) {\n    return val * remUnit + 'px';\n  } else if (isRem(val)) {\n    return calcRem(val, remUnit);\n  }\n\n  return val;\n}\n\n\n// WEBPACK FOOTER //\n// ./packages/style-unit/lib/index.js","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.transformPropsAttrsToStyle = transformPropsAttrsToStyle;\nexports.renamePropsAttr = renamePropsAttr;\n/**\n * transformPropAttrsToStyle\n *\n * @param {Object} props\n * @param {Array} attrs\n */\nfunction transformPropsAttrsToStyle(props, attrs) {\n  props.style = props.style || {};\n\n  attrs.forEach(function (attr) {\n    if (props[attr] && !props.style[attr]) {\n      props.style[attr] = props[attr];\n      delete props[attr];\n    }\n  });\n\n  return props;\n};\n\n/**\n * renamePropsAttr\n *\n * @param {Object} props\n * @param {String} originalAttrName\n * @param {String} newAttrName\n */\nfunction renamePropsAttr(props, originalAttrName, newAttrName) {\n  if (props[originalAttrName] && !props[newAttrName]) {\n    props[newAttrName] = props[originalAttrName];\n    delete props[originalAttrName];\n  }\n\n  return props;\n}\n\n\n// WEBPACK FOOTER //\n// ./packages/driver-weex/lib/parseProps.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _host = require('./vdom/host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction findDOMNode(instance) {\n  if (instance == null) {\n    return null;\n  }\n\n  // If a native node, weex may not export ownerDocument property\n  if (instance.ownerDocument || instance.nodeType) {\n    return instance;\n  }\n\n  // Native component\n  if (instance._nativeNode) {\n    return instance._nativeNode;\n  }\n\n  if (typeof instance == 'string') {\n    return _host2.default.driver.getElementById(instance);\n  }\n\n  if (typeof instance.render !== 'function') {\n    throw new Error('Appears to be neither Component nor DOMNode.');\n  }\n\n  // Composite component\n  var internal = instance._internal;\n\n  if (internal) {\n    while (!internal._nativeNode) {\n      internal = internal._renderedComponent;\n      // If not mounted\n      if (internal == null) {\n        return null;\n      }\n    }\n    return internal._nativeNode;\n  } else {\n    throw new Error('findDOMNode was called on an unmounted component.');\n  }\n}\n\nexports.default = findDOMNode;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/findDOMNode.js","const global = window;\n\nconst shared = require('runtime-shared');\n\n// ES\nrequire('./object');\nrequire('./array');\n\nif (!global.Promise) {\n  global.Promise = shared.Promise;\n}\n\nif (!global.Symbol) {\n  global.Symbol = shared.Symbol;\n}\n\nif (!global.Map) {\n  global.Map = shared.Map;\n}\n\nif (!global.Set) {\n  global.Set = shared.Set;\n}\n\nif (!global.WeakMap) {\n  global.WeakMap = shared.WeakMap;\n}\n\nif (!global.WeakSet) {\n  global.WeakSet = shared.WeakSet;\n}\n\n// W3C\nrequire('whatwg-fetch');\nrequire('raf/polyfill');\n\nif (!global.FontFace) {\n  global.FontFace = shared.FontFace;\n}\n\nif (!global.matchMedia) {\n  global.matchMedia = shared.matchMedia;\n}\n\nif (!global.URL) {\n  global.URL = shared.URL;\n}\n\nif (!global.URLSearchParams) {\n  global.URLSearchParams = shared.URLSearchParams;\n}\n\nif (!document.fonts) {\n  document.fonts = {\n    add: function(fontFace) {\n      let fontFaceRule = `@font-face {\n        font-family: ${fontFace.family};\n        src: ${fontFace.source}\n      }`;\n\n      let styleElement = document.createElement('style');\n      styleElement.innerHTML = fontFaceRule;\n      document.head.appendChild(styleElement);\n    }\n  };\n}\n\n// ModuleJS\nrequire('./require');\n\n// Polyfills for weex\nrequire('./appear');\n\n// Default Builtin modules\nglobal.define('rax', function(req, exports, module) {\n  module.exports = require('rax');\n});\n\n\n\n// WEBPACK FOOTER //\n// ./packages/web-rax-framework/src/index.js","'use strict';\n\nmodule.exports = {\n  get Promise() {\n    return require('./promise');\n  },\n  get Symbol() {\n    return require('./symbol');\n  },\n  get Map() {\n    return require('./map');\n  },\n  get Set() {\n    return require('./set');\n  },\n  get WeakMap() {\n    return require('./weakmap');\n  },\n  get WeakSet() {\n    return require('./weakset');\n  },\n  get FontFace() {\n    return require('./fontface');\n  },\n  get URL() {\n    return require('./url');\n  },\n  get URLSearchParams() {\n    return require('./url-search-params');\n  },\n  get matchMedia() {\n    return require('./matchMedia');\n  }\n};\n\n\n// WEBPACK FOOTER //\n// ./packages/runtime-shared/lib/index.js","'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/* eslint no-extend-native: \"off\" */\n\nfunction noop() {}\n\n// Use polyfill for setImmediate for performance gains\nvar asap = typeof setImmediate === 'function' && setImmediate || function (fn) {\n  if (typeof setTimeout === 'function') {\n    setTimeout(fn, 0);\n  } else {\n    fn();\n  }\n};\n\nvar onUnhandledRejection = function onUnhandledRejection(err) {\n  if (typeof console !== 'undefined' && console) {\n    console.log('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console\n  }\n};\n\n// Polyfill for Function.prototype.bind\nfunction bind(fn, thisArg) {\n  return function () {\n    fn.apply(thisArg, arguments);\n  };\n}\n\nfunction Promise(fn) {\n  if (_typeof(this) !== 'object') throw new TypeError('Promises must be constructed via new');\n  if (typeof fn !== 'function') throw new TypeError('Promise resolver is not a function');\n  this._state = 0;\n  this._handled = false;\n  this._value = undefined;\n  this._deferreds = [];\n\n  doResolve(fn, this);\n}\n\nfunction handle(self, deferred) {\n  while (self._state === 3) {\n    self = self._value;\n  }\n  if (self._state === 0) {\n    self._deferreds.push(deferred);\n    return;\n  }\n  self._handled = true;\n  asap(function () {\n    var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n    if (cb === null) {\n      (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n      return;\n    }\n    var ret;\n    try {\n      ret = cb(self._value);\n    } catch (e) {\n      reject(deferred.promise, e);\n      return;\n    }\n    resolve(deferred.promise, ret);\n  });\n}\n\nfunction resolve(self, newValue) {\n  try {\n    // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n    if (newValue === self) throw new TypeError('A promise cannot be resolved with itself.');\n    if (newValue && ((typeof newValue === 'undefined' ? 'undefined' : _typeof(newValue)) === 'object' || typeof newValue === 'function')) {\n      var then = newValue.then;\n      if (newValue instanceof Promise) {\n        self._state = 3;\n        self._value = newValue;\n        finale(self);\n        return;\n      } else if (typeof then === 'function') {\n        doResolve(bind(then, newValue), self);\n        return;\n      }\n    }\n    self._state = 1;\n    self._value = newValue;\n    finale(self);\n  } catch (e) {\n    reject(self, e);\n  }\n}\n\nfunction reject(self, newValue) {\n  self._state = 2;\n  self._value = newValue;\n  finale(self);\n}\n\nfunction finale(self) {\n  if (self._state === 2 && self._deferreds.length === 0) {\n    asap(function () {\n      if (!self._handled) {\n        onUnhandledRejection(self._value);\n      }\n    });\n  }\n\n  for (var i = 0, len = self._deferreds.length; i < len; i++) {\n    handle(self, self._deferreds[i]);\n  }\n  self._deferreds = null;\n}\n\nfunction Handler(onFulfilled, onRejected, promise) {\n  this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n  this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n  this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, self) {\n  var done = false;\n  try {\n    fn(function (value) {\n      if (done) return;\n      done = true;\n      resolve(self, value);\n    }, function (reason) {\n      if (done) return;\n      done = true;\n      reject(self, reason);\n    });\n  } catch (ex) {\n    if (done) return;\n    done = true;\n    reject(self, ex);\n  }\n}\n\nPromise.prototype.catch = function (onRejected) {\n  return this.then(null, onRejected);\n};\n\nPromise.prototype.then = function (onFulfilled, onRejected) {\n  var prom = new this.constructor(noop);\n\n  handle(this, new Handler(onFulfilled, onRejected, prom));\n  return prom;\n};\n\nPromise.all = function (arr) {\n  var args = Array.prototype.slice.call(arr);\n\n  return new Promise(function (resolve, reject) {\n    if (args.length === 0) return resolve([]);\n    var remaining = args.length;\n\n    function res(i, val) {\n      try {\n        if (val && ((typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object' || typeof val === 'function')) {\n          var then = val.then;\n          if (typeof then === 'function') {\n            then.call(val, function (val) {\n              res(i, val);\n            }, reject);\n            return;\n          }\n        }\n        args[i] = val;\n        if (--remaining === 0) {\n          resolve(args);\n        }\n      } catch (ex) {\n        reject(ex);\n      }\n    }\n\n    for (var i = 0; i < args.length; i++) {\n      res(i, args[i]);\n    }\n  });\n};\n\nPromise.resolve = function (value) {\n  if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.constructor === Promise) {\n    return value;\n  }\n\n  return new Promise(function (resolve) {\n    resolve(value);\n  });\n};\n\nPromise.reject = function (value) {\n  return new Promise(function (resolve, reject) {\n    reject(value);\n  });\n};\n\nPromise.race = function (values) {\n  return new Promise(function (resolve, reject) {\n    for (var i = 0, len = values.length; i < len; i++) {\n      values[i].then(resolve, reject);\n    }\n  });\n};\n\n/**\n * Set the immediate function to execute callbacks\n * @param fn {function} Function to execute\n * @private\n */\nPromise._setImmediateFn = function _setImmediateFn(fn) {\n  asap = fn;\n};\n\nPromise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {\n  onUnhandledRejection = fn;\n};\n\nmodule.exports = Promise;\n\n\n// WEBPACK FOOTER //\n// ./packages/runtime-shared/lib/promise.js","'use strict';\n\nvar _symbol = require('./symbol');\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Deleted map items mess with iterator pointers, so rather than removing them mark them as deleted. Can't use undefined or null since those both valid keys so use a private symbol.\nvar undefMarker = (0, _symbol2.default)('undef');\n// NaN cannot be found in an array using indexOf, so we encode NaNs using a private symbol.\n/* eslint no-extend-native: \"off\" */\nvar NaNMarker = (0, _symbol2.default)('NaN');\nvar ACCESSOR_SUPPORT = true;\n\nfunction encodeKey(key) {\n  return Number.isNaN(key) ? NaNMarker : key;\n}\n\nfunction decodeKey(encodedKey) {\n  return encodedKey === NaNMarker ? NaN : encodedKey;\n}\n\nfunction makeIterator(mapInst, getter) {\n  var nextIdx = 0;\n  var done = false;\n  return {\n    next: function next() {\n      if (nextIdx === mapInst._keys.length) done = true;\n      if (!done) {\n        while (mapInst._keys[nextIdx] === undefMarker) {\n          nextIdx++;\n        }return { value: getter.call(mapInst, nextIdx++), done: false };\n      } else {\n        return { value: void 0, done: true };\n      }\n    }\n  };\n}\n\nfunction calcSize(mapInst) {\n  var size = 0;\n  for (var i = 0, s = mapInst._keys.length; i < s; i++) {\n    if (mapInst._keys[i] !== undefMarker) size++;\n  }\n  return size;\n}\n\nfunction hasProtoMethod(instance, method) {\n  return typeof instance[method] === 'function';\n}\n\nvar Map = function Map(data) {\n  this._keys = [];\n  this._values = [];\n  // If `data` is iterable (indicated by presence of a forEach method), pre-populate the map\n  if (data && hasProtoMethod(data, 'forEach')) {\n    // Fastpath: If `data` is a Map, shortcircuit all following the checks\n    if (data instanceof Map ||\n    // If `data` is not an instance of Map, it could be because you have a Map from an iframe or a worker or something.\n    // Check if  `data` has all the `Map` methods and if so, assume data is another Map\n    hasProtoMethod(data, 'clear') && hasProtoMethod(data, 'delete') && hasProtoMethod(data, 'entries') && hasProtoMethod(data, 'forEach') && hasProtoMethod(data, 'get') && hasProtoMethod(data, 'has') && hasProtoMethod(data, 'keys') && hasProtoMethod(data, 'set') && hasProtoMethod(data, 'values')) {\n      data.forEach(function (value, key) {\n        this.set.apply(this, [key, value]);\n      }, this);\n    } else {\n      data.forEach(function (item) {\n        this.set.apply(this, item);\n      }, this);\n    }\n  }\n\n  if (!ACCESSOR_SUPPORT) this.size = calcSize(this);\n};\nMap.prototype = {};\n\n// Some old engines do not support ES5 getters/setters.  Since Map only requires these for the size property, we can fall back to setting the size property statically each time the size of the map changes.\ntry {\n  Object.defineProperty(Map.prototype, 'size', {\n    get: function get() {\n      return calcSize(this);\n    }\n  });\n} catch (e) {\n  ACCESSOR_SUPPORT = false;\n}\n\nMap.prototype.get = function (key) {\n  var idx = this._keys.indexOf(encodeKey(key));\n  return idx !== -1 ? this._values[idx] : undefined;\n};\nMap.prototype.set = function (key, value) {\n  var idx = this._keys.indexOf(encodeKey(key));\n  if (idx !== -1) {\n    this._values[idx] = value;\n  } else {\n    this._keys.push(encodeKey(key));\n    this._values.push(value);\n    if (!ACCESSOR_SUPPORT) this.size = calcSize(this);\n  }\n  return this;\n};\nMap.prototype.has = function (key) {\n  return this._keys.indexOf(encodeKey(key)) !== -1;\n};\nMap.prototype.delete = function (key) {\n  var idx = this._keys.indexOf(encodeKey(key));\n  if (idx === -1) return false;\n  this._keys[idx] = undefMarker;\n  this._values[idx] = undefMarker;\n  if (!ACCESSOR_SUPPORT) this.size = calcSize(this);\n  return true;\n};\nMap.prototype.clear = function () {\n  this._keys = this._values = [];\n  if (!ACCESSOR_SUPPORT) this.size = 0;\n};\nMap.prototype.values = function () {\n  return makeIterator(this, function (i) {\n    return this._values[i];\n  });\n};\nMap.prototype.keys = function () {\n  return makeIterator(this, function (i) {\n    return decodeKey(this._keys[i]);\n  });\n};\nMap.prototype.entries = Map.prototype[_symbol2.default.iterator] = function () {\n  return makeIterator(this, function (i) {\n    return [decodeKey(this._keys[i]), this._values[i]];\n  });\n};\nMap.prototype.forEach = function (callbackFn, thisArg) {\n  thisArg = thisArg || global;\n  var iterator = this.entries();\n  var result = iterator.next();\n  while (result.done === false) {\n    callbackFn.call(thisArg, result.value[1], result.value[0], this);\n    result = iterator.next();\n  }\n};\n\nMap.prototype[_symbol2.default.species] = Map;\n\nObject.defineProperty(Map, 'constructor', {\n  value: Map\n});\n\ntry {\n  Object.defineProperty(Map, 'length', {\n    value: 0\n  });\n} catch (e) {}\n\nmodule.exports = Map;\n\n\n// WEBPACK FOOTER //\n// ./packages/runtime-shared/lib/map.js","'use strict';\n\nvar _symbol = require('./symbol');\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Deleted map items mess with iterator pointers, so rather than removing them mark them as deleted. Can't use undefined or null since those both valid keys so use a private symbol.\nvar undefMarker = (0, _symbol2.default)('undef');\n\n// NaN cannot be found in an array using indexOf, so we encode NaNs using a private symbol.\n/* eslint no-extend-native: \"off\" */\nvar NaNMarker = (0, _symbol2.default)('NaN');\n\nvar ACCESSOR_SUPPORT = true;\n\nfunction encodeVal(data) {\n  return Number.isNaN(data) ? NaNMarker : data;\n}\n\nfunction decodeVal(encodedData) {\n  return encodedData === NaNMarker ? NaN : encodedData;\n}\n\nfunction makeIterator(setInst, getter) {\n  var nextIdx = 0;\n  return {\n    next: function next() {\n      while (setInst._values[nextIdx] === undefMarker) {\n        nextIdx++;\n      }if (nextIdx === setInst._values.length) {\n        return { value: void 0, done: true };\n      } else {\n        return { value: getter.call(setInst, nextIdx++), done: false };\n      }\n    }\n  };\n}\n\nfunction calcSize(setInst) {\n  var size = 0;\n  for (var i = 0, s = setInst._values.length; i < s; i++) {\n    if (setInst._values[i] !== undefMarker) size++;\n  }\n  return size;\n}\n\nvar Set = function Set(data) {\n  this._values = [];\n\n  // If `data` is iterable (indicated by presence of a forEach method), pre-populate the set\n  data && typeof data.forEach === 'function' && data.forEach(function (item) {\n    this.add.call(this, item);\n  }, this);\n\n  if (!ACCESSOR_SUPPORT) this.size = calcSize(this);\n};\n\n// Some old engines do not support ES5 getters/setters.  Since Set only requires these for the size property, we can fall back to setting the size property statically each time the size of the set changes.\ntry {\n  Object.defineProperty(Set.prototype, 'size', {\n    get: function get() {\n      return calcSize(this);\n    }\n  });\n} catch (e) {\n  ACCESSOR_SUPPORT = false;\n}\n\nSet.prototype.add = function (value) {\n  value = encodeVal(value);\n  if (this._values.indexOf(value) === -1) {\n    this._values.push(value);\n    if (!ACCESSOR_SUPPORT) this.size = calcSize(this);\n  }\n  return this;\n};\nSet.prototype.has = function (value) {\n  return this._values.indexOf(encodeVal(value)) !== -1;\n};\nSet.prototype.delete = function (value) {\n  var idx = this._values.indexOf(encodeVal(value));\n  if (idx === -1) return false;\n  this._values[idx] = undefMarker;\n  if (!ACCESSOR_SUPPORT) this.size = calcSize(this);\n  return true;\n};\nSet.prototype.clear = function () {\n  this._values = [];\n  if (!ACCESSOR_SUPPORT) this.size = 0;\n};\nSet.prototype.values = Set.prototype.keys = function () {\n  return makeIterator(this, function (i) {\n    return decodeVal(this._values[i]);\n  });\n};\nSet.prototype.entries = Set.prototype[_symbol2.default.iterator] = function () {\n  return makeIterator(this, function (i) {\n    return [decodeVal(this._values[i]), decodeVal(this._values[i])];\n  });\n};\nSet.prototype.forEach = function (callbackFn, thisArg) {\n  thisArg = thisArg || global;\n  var iterator = this.entries();\n  var result = iterator.next();\n  while (result.done === false) {\n    callbackFn.call(thisArg, result.value[1], result.value[0], this);\n    result = iterator.next();\n  }\n};\n\nSet.prototype[_symbol2.default.species] = Set;\n\nObject.defineProperty(Set, 'constructor', {\n  value: Set\n});\n\ntry {\n  Object.defineProperty(Set, 'length', {\n    value: 0\n  });\n} catch (e) {}\n\nmodule.exports = Set;\n\n\n// WEBPACK FOOTER //\n// ./packages/runtime-shared/lib/set.js","'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/* eslint no-extend-native: \"off\" */\n\nvar defineProperty = Object.defineProperty;\nvar counter = Date.now() % 1e9;\n\nvar WeakMap = function WeakMap(data) {\n  this.name = '__st' + (Math.random() * 1e9 >>> 0) + (counter++ + '__');\n\n  // If data is iterable (indicated by presence of a forEach method), pre-populate the map\n  data && data.forEach && data.forEach(function (item) {\n    this.set.apply(this, item);\n  }, this);\n};\n\nWeakMap.prototype.set = function (key, value) {\n  if ((typeof key === 'undefined' ? 'undefined' : _typeof(key)) !== 'object' && typeof key !== 'function') throw new TypeError('Invalid value used as weak map key');\n\n  var entry = key[this.name];\n  if (entry && entry[0] === key) entry[1] = value;else defineProperty(key, this.name, { value: [key, value], writable: true });\n  return this;\n};\n\nWeakMap.prototype.get = function (key) {\n  var entry;\n  return (entry = key[this.name]) && entry[0] === key ? entry[1] : undefined;\n};\n\nWeakMap.prototype.delete = function (key) {\n  var entry = key[this.name];\n  if (!entry || entry[0] !== key) return false;\n  entry[0] = entry[1] = undefined;\n  return true;\n};\n\nWeakMap.prototype.has = function (key) {\n  var entry = key[this.name];\n  if (!entry) return false;\n  return entry[0] === key;\n};\n\nmodule.exports = WeakMap;\n\n\n// WEBPACK FOOTER //\n// ./packages/runtime-shared/lib/weakmap.js","'use strict';\n\n/* eslint no-extend-native: \"off\" */\n\nvar counter = Date.now() % 1e9;\n\nvar WeakSet = function WeakSet(data) {\n  this.name = '__st' + (Math.random() * 1e9 >>> 0) + (counter++ + '__');\n  data && data.forEach && data.forEach(this.add, this);\n};\n\nWeakSet.prototype.add = function (obj) {\n  var name = this.name;\n  if (!obj[name]) Object.defineProperty(obj, name, { value: true, writable: true });\n  return this;\n};\n\nWeakSet.prototype.delete = function (obj) {\n  if (!obj[this.name]) return false;\n  obj[this.name] = undefined;\n  return true;\n};\n\nWeakSet.prototype.has = function (obj) {\n  return !!obj[this.name];\n};\n\nmodule.exports = WeakSet;\n\n\n// WEBPACK FOOTER //\n// ./packages/runtime-shared/lib/weakset.js","\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar FontFace = function FontFace(family, source) {\n  _classCallCheck(this, FontFace);\n\n  this.family = family;\n  this.source = source;\n};\n\nmodule.exports = FontFace;\n\n\n// WEBPACK FOOTER //\n// ./packages/runtime-shared/lib/fontface.js","'use strict';\n\n// https://github.com/Polymer/URL\n\nvar URLSearchParams = require('./url-search-params');\n\nvar relative = Object.create(null);\nrelative.ftp = 21;\nrelative.file = 0;\nrelative.gopher = 70;\nrelative.http = 80;\nrelative.https = 443;\nrelative.ws = 80;\nrelative.wss = 443;\n\nvar relativePathDotMapping = Object.create(null);\nrelativePathDotMapping['%2e'] = '.';\nrelativePathDotMapping['.%2e'] = '..';\nrelativePathDotMapping['%2e.'] = '..';\nrelativePathDotMapping['%2e%2e'] = '..';\n\nfunction isRelativeScheme(scheme) {\n  return relative[scheme] !== undefined;\n}\n\nfunction invalid() {\n  clear.call(this);\n  this._isInvalid = true;\n}\n\nfunction IDNAToASCII(h) {\n  if ('' == h) {\n    invalid.call(this);\n  }\n  // XXX\n  return h.toLowerCase();\n}\n\nfunction percentEscape(c) {\n  var unicode = c.charCodeAt(0);\n  if (unicode > 0x20 && unicode < 0x7F &&\n  // \" # < > ? `\n  [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) == -1) {\n    return c;\n  }\n  return encodeURIComponent(c);\n}\n\nfunction percentEscapeQuery(c) {\n  // XXX This actually needs to encode c using encoding and then\n  // convert the bytes one-by-one.\n\n  var unicode = c.charCodeAt(0);\n  if (unicode > 0x20 && unicode < 0x7F &&\n  // \" # < > ` (do not escape '?')\n  [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) == -1) {\n    return c;\n  }\n  return encodeURIComponent(c);\n}\n\nvar EOF = undefined,\n    ALPHA = /[a-zA-Z]/,\n    ALPHANUMERIC = /[a-zA-Z0-9\\+\\-\\.]/;\n\nfunction parse(input, stateOverride, base) {\n  function err(message) {\n    errors.push(message);\n  }\n\n  var state = stateOverride || 'scheme start',\n      cursor = 0,\n      buffer = '',\n      seenAt = false,\n      seenBracket = false,\n      errors = [];\n\n  loop: while ((input[cursor - 1] != EOF || cursor == 0) && !this._isInvalid) {\n    var c = input[cursor];\n    switch (state) {\n      case 'scheme start':\n        if (c && ALPHA.test(c)) {\n          buffer += c.toLowerCase(); // ASCII-safe\n          state = 'scheme';\n        } else if (!stateOverride) {\n          buffer = '';\n          state = 'no scheme';\n          continue;\n        } else {\n          err('Invalid scheme.');\n          break loop;\n        }\n        break;\n\n      case 'scheme':\n        if (c && ALPHANUMERIC.test(c)) {\n          buffer += c.toLowerCase(); // ASCII-safe\n        } else if (':' == c) {\n          this._scheme = buffer;\n          buffer = '';\n          if (stateOverride) {\n            break loop;\n          }\n          if (isRelativeScheme(this._scheme)) {\n            this._isRelative = true;\n          }\n          if ('file' == this._scheme) {\n            state = 'relative';\n          } else if (this._isRelative && base && base._scheme == this._scheme) {\n            state = 'relative or authority';\n          } else if (this._isRelative) {\n            state = 'authority first slash';\n          } else {\n            state = 'scheme data';\n          }\n        } else if (!stateOverride) {\n          buffer = '';\n          cursor = 0;\n          state = 'no scheme';\n          continue;\n        } else if (EOF == c) {\n          break loop;\n        } else {\n          err('Code point not allowed in scheme: ' + c);\n          break loop;\n        }\n        break;\n\n      case 'scheme data':\n        if ('?' == c) {\n          state = 'query';\n        } else if ('#' == c) {\n          this._fragment = '#';\n          state = 'fragment';\n        } else {\n          // XXX error handling\n          if (EOF != c && '\\t' != c && '\\n' != c && '\\r' != c) {\n            this._schemeData += percentEscape(c);\n          }\n        }\n        break;\n\n      case 'no scheme':\n        if (!base || !isRelativeScheme(base._scheme)) {\n          err('Missing scheme.');\n          invalid.call(this);\n        } else {\n          state = 'relative';\n          continue;\n        }\n        break;\n\n      case 'relative or authority':\n        if ('/' == c && '/' == input[cursor + 1]) {\n          state = 'authority ignore slashes';\n        } else {\n          err('Expected /, got: ' + c);\n          state = 'relative';\n          continue;\n        }\n        break;\n\n      case 'relative':\n        this._isRelative = true;\n        if ('file' != this._scheme) this._scheme = base._scheme;\n        if (EOF == c) {\n          this._host = base._host;\n          this._port = base._port;\n          this._path = base._path.slice();\n          this._query = base._query;\n          this._username = base._username;\n          this._password = base._password;\n          break loop;\n        } else if ('/' == c || '\\\\' == c) {\n          if ('\\\\' == c) err('\\\\ is an invalid code point.');\n          state = 'relative slash';\n        } else if ('?' == c) {\n          this._host = base._host;\n          this._port = base._port;\n          this._path = base._path.slice();\n          this._query = '?';\n          this._username = base._username;\n          this._password = base._password;\n          state = 'query';\n        } else if ('#' == c) {\n          this._host = base._host;\n          this._port = base._port;\n          this._path = base._path.slice();\n          this._query = base._query;\n          this._fragment = '#';\n          this._username = base._username;\n          this._password = base._password;\n          state = 'fragment';\n        } else {\n          var nextC = input[cursor + 1];\n          var nextNextC = input[cursor + 2];\n          if ('file' != this._scheme || !ALPHA.test(c) || nextC != ':' && nextC != '|' || EOF != nextNextC && '/' != nextNextC && '\\\\' != nextNextC && '?' != nextNextC && '#' != nextNextC) {\n            this._host = base._host;\n            this._port = base._port;\n            this._username = base._username;\n            this._password = base._password;\n            this._path = base._path.slice();\n            this._path.pop();\n          }\n          state = 'relative path';\n          continue;\n        }\n        break;\n\n      case 'relative slash':\n        if ('/' == c || '\\\\' == c) {\n          if ('\\\\' == c) {\n            err('\\\\ is an invalid code point.');\n          }\n          if ('file' == this._scheme) {\n            state = 'file host';\n          } else {\n            state = 'authority ignore slashes';\n          }\n        } else {\n          if ('file' != this._scheme) {\n            this._host = base._host;\n            this._port = base._port;\n            this._username = base._username;\n            this._password = base._password;\n          }\n          state = 'relative path';\n          continue;\n        }\n        break;\n\n      case 'authority first slash':\n        if ('/' == c) {\n          state = 'authority second slash';\n        } else {\n          err(\"Expected '/', got: \" + c);\n          state = 'authority ignore slashes';\n          continue;\n        }\n        break;\n\n      case 'authority second slash':\n        state = 'authority ignore slashes';\n        if ('/' != c) {\n          err(\"Expected '/', got: \" + c);\n          continue;\n        }\n        break;\n\n      case 'authority ignore slashes':\n        if ('/' != c && '\\\\' != c) {\n          state = 'authority';\n          continue;\n        } else {\n          err('Expected authority, got: ' + c);\n        }\n        break;\n\n      case 'authority':\n        if ('@' == c) {\n          if (seenAt) {\n            err('@ already seen.');\n            buffer += '%40';\n          }\n          seenAt = true;\n          for (var i = 0; i < buffer.length; i++) {\n            var cp = buffer[i];\n            if ('\\t' == cp || '\\n' == cp || '\\r' == cp) {\n              err('Invalid whitespace in authority.');\n              continue;\n            }\n            // XXX check URL code points\n            if (':' == cp && null === this._password) {\n              this._password = '';\n              continue;\n            }\n            var tempC = percentEscape(cp);\n            null !== this._password ? this._password += tempC : this._username += tempC;\n          }\n          buffer = '';\n        } else if (EOF == c || '/' == c || '\\\\' == c || '?' == c || '#' == c) {\n          cursor -= buffer.length;\n          buffer = '';\n          state = 'host';\n          continue;\n        } else {\n          buffer += c;\n        }\n        break;\n\n      case 'file host':\n        if (EOF == c || '/' == c || '\\\\' == c || '?' == c || '#' == c) {\n          if (buffer.length == 2 && ALPHA.test(buffer[0]) && (buffer[1] == ':' || buffer[1] == '|')) {\n            state = 'relative path';\n          } else if (buffer.length == 0) {\n            state = 'relative path start';\n          } else {\n            this._host = IDNAToASCII.call(this, buffer);\n            buffer = '';\n            state = 'relative path start';\n          }\n          continue;\n        } else if ('\\t' == c || '\\n' == c || '\\r' == c) {\n          err('Invalid whitespace in file host.');\n        } else {\n          buffer += c;\n        }\n        break;\n\n      case 'host':\n      case 'hostname':\n        if (':' == c && !seenBracket) {\n          // XXX host parsing\n          this._host = IDNAToASCII.call(this, buffer);\n          buffer = '';\n          state = 'port';\n          if ('hostname' == stateOverride) {\n            break loop;\n          }\n        } else if (EOF == c || '/' == c || '\\\\' == c || '?' == c || '#' == c) {\n          this._host = IDNAToASCII.call(this, buffer);\n          buffer = '';\n          state = 'relative path start';\n          if (stateOverride) {\n            break loop;\n          }\n          continue;\n        } else if ('\\t' != c && '\\n' != c && '\\r' != c) {\n          if ('[' == c) {\n            seenBracket = true;\n          } else if (']' == c) {\n            seenBracket = false;\n          }\n          buffer += c;\n        } else {\n          err('Invalid code point in host/hostname: ' + c);\n        }\n        break;\n\n      case 'port':\n        if (/[0-9]/.test(c)) {\n          buffer += c;\n        } else if (EOF == c || '/' == c || '\\\\' == c || '?' == c || '#' == c || stateOverride) {\n          if ('' != buffer) {\n            var temp = parseInt(buffer, 10);\n            if (temp != relative[this._scheme]) {\n              this._port = temp + '';\n            }\n            buffer = '';\n          }\n          if (stateOverride) {\n            break loop;\n          }\n          state = 'relative path start';\n          continue;\n        } else if ('\\t' == c || '\\n' == c || '\\r' == c) {\n          err('Invalid code point in port: ' + c);\n        } else {\n          invalid.call(this);\n        }\n        break;\n\n      case 'relative path start':\n        if ('\\\\' == c) err(\"'\\\\' not allowed in path.\");\n        state = 'relative path';\n        if ('/' != c && '\\\\' != c) {\n          continue;\n        }\n        break;\n\n      case 'relative path':\n        if (EOF == c || '/' == c || '\\\\' == c || !stateOverride && ('?' == c || '#' == c)) {\n          if ('\\\\' == c) {\n            err('\\\\ not allowed in relative path.');\n          }\n          var tmp;\n          if (tmp = relativePathDotMapping[buffer.toLowerCase()]) {\n            buffer = tmp;\n          }\n          if ('..' == buffer) {\n            this._path.pop();\n            if ('/' != c && '\\\\' != c) {\n              this._path.push('');\n            }\n          } else if ('.' == buffer && '/' != c && '\\\\' != c) {\n            this._path.push('');\n          } else if ('.' != buffer) {\n            if ('file' == this._scheme && this._path.length == 0 && buffer.length == 2 && ALPHA.test(buffer[0]) && buffer[1] == '|') {\n              buffer = buffer[0] + ':';\n            }\n            this._path.push(buffer);\n          }\n          buffer = '';\n          if ('?' == c) {\n            this._query = '?';\n            state = 'query';\n          } else if ('#' == c) {\n            this._fragment = '#';\n            state = 'fragment';\n          }\n        } else if ('\\t' != c && '\\n' != c && '\\r' != c) {\n          buffer += percentEscape(c);\n        }\n        break;\n\n      case 'query':\n        if (!stateOverride && '#' == c) {\n          this._fragment = '#';\n          state = 'fragment';\n        } else if (EOF != c && '\\t' != c && '\\n' != c && '\\r' != c) {\n          this._query += percentEscapeQuery(c);\n        }\n        break;\n\n      case 'fragment':\n        if (EOF != c && '\\t' != c && '\\n' != c && '\\r' != c) {\n          this._fragment += c;\n        }\n        break;\n    }\n\n    cursor++;\n  }\n}\n\nfunction clear() {\n  this._scheme = '';\n  this._schemeData = '';\n  this._username = '';\n  this._password = null;\n  this._host = '';\n  this._port = '';\n  this._path = [];\n  this._query = '';\n  this._fragment = '';\n  this._isInvalid = false;\n  this._isRelative = false;\n}\n\n// Does not process domain names or IP addresses.\n// Does not handle encoding for the query parameter.\nfunction URL(url, base /* , encoding */) {\n  if (base !== undefined && !(base instanceof URL)) base = new URL(String(base));\n\n  this._url = url;\n  clear.call(this);\n\n  var input = url.replace(/^[ \\t\\r\\n\\f]+|[ \\t\\r\\n\\f]+$/g, '');\n  // encoding = encoding || 'utf-8'\n\n  parse.call(this, input, null, base);\n}\n\nURL.prototype = {\n  toString: function toString() {\n    return this.href;\n  },\n  get href() {\n    if (this._isInvalid) return this._url;\n\n    var authority = '';\n    if ('' != this._username || null != this._password) {\n      authority = this._username + (null != this._password ? ':' + this._password : '') + '@';\n    }\n\n    return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment;\n  },\n  set href(href) {\n    clear.call(this);\n    parse.call(this, href);\n  },\n\n  get protocol() {\n    return this._scheme + ':';\n  },\n  set protocol(protocol) {\n    if (this._isInvalid) return;\n    parse.call(this, protocol + ':', 'scheme start');\n  },\n\n  get host() {\n    return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host;\n  },\n  set host(host) {\n    if (this._isInvalid || !this._isRelative) return;\n    parse.call(this, host, 'host');\n  },\n\n  get hostname() {\n    return this._host;\n  },\n  set hostname(hostname) {\n    if (this._isInvalid || !this._isRelative) return;\n    parse.call(this, hostname, 'hostname');\n  },\n\n  get port() {\n    return this._port;\n  },\n  set port(port) {\n    if (this._isInvalid || !this._isRelative) return;\n    parse.call(this, port, 'port');\n  },\n\n  get pathname() {\n    return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData;\n  },\n  set pathname(pathname) {\n    if (this._isInvalid || !this._isRelative) return;\n    this._path = [];\n    parse.call(this, pathname, 'relative path start');\n  },\n\n  get search() {\n    return this._isInvalid || !this._query || '?' == this._query ? '' : this._query;\n  },\n  set search(search) {\n    if (this._isInvalid || !this._isRelative) return;\n    this._query = '?';\n    if ('?' == search[0]) search = search.slice(1);\n    parse.call(this, search, 'query');\n  },\n\n  get searchParams() {\n    return new URLSearchParams(this.search);\n  },\n\n  get hash() {\n    return this._isInvalid || !this._fragment || '#' == this._fragment ? '' : this._fragment;\n  },\n  set hash(hash) {\n    if (this._isInvalid) return;\n    this._fragment = '#';\n    if ('#' == hash[0]) hash = hash.slice(1);\n    parse.call(this, hash, 'fragment');\n  },\n\n  get origin() {\n    var host;\n    if (this._isInvalid || !this._scheme) {\n      return '';\n    }\n    // javascript: Gecko returns String(\"\"), WebKit/Blink String(\"null\")\n    // Gecko throws error for \"data://\"\n    // data: Gecko returns \"\", Blink returns \"data://\", WebKit returns \"null\"\n    // Gecko returns String(\"\") for file: mailto:\n    // WebKit/Blink returns String(\"SCHEME://\") for file: mailto:\n    switch (this._scheme) {\n      case 'data':\n      case 'file':\n      case 'javascript':\n      case 'mailto':\n        return 'null';\n    }\n    host = this.host;\n    if (!host) {\n      return '';\n    }\n    return this._scheme + '://' + host;\n  }\n};\n\nmodule.exports = URL;\n\n\n// WEBPACK FOOTER //\n// ./packages/runtime-shared/lib/url.js","'use strict';\n\n// https://github.com/ericf/css-mediaquery\n\nvar RE_MEDIA_QUERY = /^(?:(only|not)?\\s*([_a-z][_a-z0-9-]*)|(\\([^\\)]+\\)))(?:\\s*and\\s*(.*))?$/i,\n    RE_MQ_EXPRESSION = /^\\(\\s*([_a-z-][_a-z0-9-]*)\\s*(?:\\:\\s*([^\\)]+))?\\s*\\)$/,\n    RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/;\n\nfunction _matches(media, values) {\n  return _parseQuery(media).some(function (query) {\n    var inverse = query.inverse;\n\n    var typeMatch = query.type === 'all' || values.type === query.type;\n\n    if (typeMatch && inverse || !(typeMatch || inverse)) {\n      return false;\n    }\n\n    var expressionsMatch = query.expressions.every(function (expression) {\n      var feature = expression.feature,\n          modifier = expression.modifier,\n          expValue = expression.value,\n          value = values[feature];\n\n      if (!value) {\n        return false;\n      }\n\n      switch (feature) {\n        case 'width':\n        case 'height':\n          expValue = parseFloat(expValue);\n          value = parseFloat(value);\n          break;\n      }\n\n      switch (modifier) {\n        case 'min':\n          return value >= expValue;\n        case 'max':\n          return value <= expValue;\n        default:\n          return value === expValue;\n      }\n    });\n\n    return expressionsMatch && !inverse || !expressionsMatch && inverse;\n  });\n};\n\nfunction _parseQuery(media) {\n  return media.split(',').map(function (query) {\n    query = query.trim();\n\n    var captures = query.match(RE_MEDIA_QUERY);\n\n    if (!captures) {\n      throw new SyntaxError('Invalid CSS media query: \"' + query + '\"');\n    }\n\n    var modifier = captures[1],\n        type = captures[2],\n        expressions = ((captures[3] || '') + (captures[4] || '')).trim(),\n        parsed = {};\n\n    parsed.inverse = !!modifier && modifier.toLowerCase() === 'not';\n    parsed.type = type ? type.toLowerCase() : 'all';\n\n    if (!expressions) {\n      parsed.expressions = [];\n      return parsed;\n    }\n\n    expressions = expressions.match(/\\([^\\)]+\\)/g);\n\n    if (!expressions) {\n      throw new SyntaxError('Invalid CSS media query: \"' + query + '\"');\n    }\n\n    parsed.expressions = expressions.map(function (expression) {\n      var captures = expression.match(RE_MQ_EXPRESSION);\n\n      if (!captures) {\n        throw new SyntaxError('Invalid CSS media query: \"' + query + '\"');\n      }\n\n      var feature = captures[1].toLowerCase().match(RE_MQ_FEATURE);\n\n      return {\n        modifier: feature[1],\n        feature: feature[2],\n        value: captures[2]\n      };\n    });\n\n    return parsed;\n  });\n};\n\nfunction matchMedia(media) {\n  var mql = {\n    matches: false,\n    media: media\n  };\n\n  if (media === '') {\n    mql.matches = true;\n    return mql;\n  }\n\n  mql.matches = _matches(media, {\n    type: 'screen',\n    width: window.screen.width,\n    height: window.screen.height\n  });\n\n  return mql;\n}\n\nmodule.exports = matchMedia;\n\n\n// WEBPACK FOOTER //\n// ./packages/runtime-shared/lib/matchMedia.js","// WARNING: This is an optimized version that fails on hasOwnProperty checks\n// and non objects. It's not spec-compliant. It's a perf optimization.\n/* eslint strict:0 */\nif (!Object.assign) {\n  Object.assign = function(target, sources) {\n    for (let nextIndex = 1; nextIndex < arguments.length; nextIndex++) {\n      let nextSource = arguments[nextIndex];\n      if (nextSource == null) {\n        continue;\n      }\n\n      // We don't currently support accessors nor proxies. Therefore this\n      // copy cannot throw. If we ever supported this then we must handle\n      // exceptions and side-effects.\n      for (let key in nextSource) {\n        target[key] = nextSource[key];\n      }\n    }\n\n    return target;\n  };\n}\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Returns an array of the given object's own enumerable entries.\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries\n *\n */\nif (!Object.entries) {\n  Object.entries = function(object) {\n    // `null` and `undefined` values are not allowed.\n    if (object == null) {\n      throw new TypeError('Object.entries called on non-object');\n    }\n\n    let entries = [];\n    for (let key in object) {\n      if (hasOwnProperty.call(object, key)) {\n        entries.push([key, object[key]]);\n      }\n    }\n    return entries;\n  };\n}\n\n\n/**\n * Returns an array of the given object's own enumerable entries.\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values\n *\n */\nif (!Object.values) {\n  Object.values = function(object) {\n    // `null` and `undefined` values are not allowed.\n    if (object == null) {\n      throw new TypeError('Object.values called on non-object');\n    }\n\n    let values = [];\n    for (let key in object) {\n      if (hasOwnProperty.call(object, key)) {\n        values.push(object[key]);\n      }\n    }\n    return values;\n  };\n}\n\nif (!Object.defineProperties) {\n  Object.defineProperties = function(object, descriptors) {\n    for (var property in descriptors) {\n      Object.defineProperty(object, property, descriptors[property]);\n    }\n    return object;\n  };\n}\n\n// https://gist.github.com/WebReflection/5593554\nif (!Object.setPrototypeOf) {\n  Object.setPrototypeOf = (function(Object, magic) {\n    var set;\n    function setPrototypeOf(O, proto) {\n      set.call(O, proto);\n      return O;\n    }\n    try {\n      // this works already in Firefox and Safari\n      set = Object.getOwnPropertyDescriptor(Object.prototype, magic).set;\n      set.call({}, null);\n    } catch (e) {\n      if (\n        // IE < 11 cannot be shimmed\n        Object.prototype !== {}[magic] ||\n        // neither can any browser that actually\n        // implemented __proto__ correctly\n        // (all but old V8 will return here)\n        {__proto__: null}.__proto__ === void 0\n        // this case means null objects cannot be passed\n        // through setPrototypeOf in a reliable way\n        // which means here a **Sham** is needed instead\n      ) {\n        return;\n      }\n      // nodejs 0.8 and 0.10 are (buggy and..) fine here\n      // probably Chrome or some old Mobile stock browser\n      set = function(proto) {\n        this[magic] = proto;\n      };\n      // please note that this will **not** work\n      // in those browsers that do not inherit\n      // __proto__ by mistake from Object.prototype\n      // in these cases we should probably throw an error\n      // or at least be informed about the issue\n      setPrototypeOf.polyfill = setPrototypeOf(\n        setPrototypeOf({}, null),\n        Object.prototype\n      ) instanceof Object;\n      // setPrototypeOf.polyfill === true means it works as meant\n      // setPrototypeOf.polyfill === false means it's not 100% reliable\n      // setPrototypeOf.polyfill === undefined\n      // or\n      // setPrototypeOf.polyfill ==  null means it's not a polyfill\n      // which means it works as expected\n      // we can even delete Object.prototype.__proto__;\n    }\n    return setPrototypeOf;\n  }(Object, '__proto__'));\n}\n\nif (!Object.is) {\n  Object.is = function(x, y) {\n    if (x === y) {\n      // 0 === -0, but they are not identical\n      return x !== 0 || 1 / x === 1 / y;\n    }\n\n    // NaN !== NaN, but they are identical.\n    // NaNs are the only non-reflexive value, i.e., if x !== x,\n    // then x is a NaN.\n    // isNaN is broken: it converts its argument to number, so\n    // isNaN(\"foo\") => true\n    return x !== x && y !== y;\n  };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/web-rax-framework/src/object.js","// Production steps of ECMA-262, Edition 6, 22.1.2.1\n// Reference: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from\nif (!Array.from) {\n  Array.from = (function() {\n    var toStr = Object.prototype.toString;\n    var isCallable = function(fn) {\n      return typeof fn === 'function' || toStr.call(fn) === '[object Function]';\n    };\n    var toInteger = function(value) {\n      var number = Number(value);\n      if (isNaN(number)) {\n        return 0;\n      }\n      if (number === 0 || !isFinite(number)) {\n        return number;\n      }\n      return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));\n    };\n    var maxSafeInteger = Math.pow(2, 53) - 1;\n    var toLength = function(value) {\n      var len = toInteger(value);\n      return Math.min(Math.max(len, 0), maxSafeInteger);\n    };\n\n    // The length property of the from method is 1.\n    return function from(arrayLike/* , mapFn, thisArg */) {\n      // 1. Let C be the this value.\n      var C = this;\n\n      // 2. Let items be ToObject(arrayLike).\n      var items = Object(arrayLike);\n\n      // 3. ReturnIfAbrupt(items).\n      if (arrayLike == null) {\n        throw new TypeError('Array.from requires an array-like object - not null or undefined');\n      }\n\n      // 4. If mapfn is undefined, then let mapping be false.\n      var mapFn = arguments.length > 1 ? arguments[1] : void undefined;\n      var T;\n      if (typeof mapFn !== 'undefined') {\n        // 5. else\n        // 5. a If IsCallable(mapfn) is false, throw a TypeError exception.\n        if (!isCallable(mapFn)) {\n          throw new TypeError('Array.from: when provided, the second argument must be a function');\n        }\n\n        // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.\n        if (arguments.length > 2) {\n          T = arguments[2];\n        }\n      }\n\n      // 10. Let lenValue be Get(items, \"length\").\n      // 11. Let len be ToLength(lenValue).\n      var len = toLength(items.length);\n\n      // 13. If IsConstructor(C) is true, then\n      // 13. a. Let A be the result of calling the [[Construct]] internal method of C with an argument list containing the single item len.\n      // 14. a. Else, Let A be ArrayCreate(len).\n      var A = isCallable(C) ? Object(new C(len)) : new Array(len);\n\n      // 16. Let k be 0.\n      var k = 0;\n      // 17. Repeat, while k < len… (also steps a - h)\n      var kValue;\n      while (k < len) {\n        kValue = items[k];\n        if (mapFn) {\n          A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);\n        } else {\n          A[k] = kValue;\n        }\n        k += 1;\n      }\n      // 18. Let putStatus be Put(A, \"length\", len, true).\n      A.length = len;\n      // 20. Return A.\n      return A;\n    };\n  }());\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/web-rax-framework/src/array.js","(function(self) {\n  'use strict';\n\n  if (self.fetch) {\n    return\n  }\n\n  var support = {\n    searchParams: 'URLSearchParams' in self,\n    iterable: 'Symbol' in self && 'iterator' in Symbol,\n    blob: 'FileReader' in self && 'Blob' in self && (function() {\n      try {\n        new Blob()\n        return true\n      } catch(e) {\n        return false\n      }\n    })(),\n    formData: 'FormData' in self,\n    arrayBuffer: 'ArrayBuffer' in self\n  }\n\n  if (support.arrayBuffer) {\n    var viewClasses = [\n      '[object Int8Array]',\n      '[object Uint8Array]',\n      '[object Uint8ClampedArray]',\n      '[object Int16Array]',\n      '[object Uint16Array]',\n      '[object Int32Array]',\n      '[object Uint32Array]',\n      '[object Float32Array]',\n      '[object Float64Array]'\n    ]\n\n    var isDataView = function(obj) {\n      return obj && DataView.prototype.isPrototypeOf(obj)\n    }\n\n    var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n      return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n    }\n  }\n\n  function normalizeName(name) {\n    if (typeof name !== 'string') {\n      name = String(name)\n    }\n    if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n      throw new TypeError('Invalid character in header field name')\n    }\n    return name.toLowerCase()\n  }\n\n  function normalizeValue(value) {\n    if (typeof value !== 'string') {\n      value = String(value)\n    }\n    return value\n  }\n\n  // Build a destructive iterator for the value list\n  function iteratorFor(items) {\n    var iterator = {\n      next: function() {\n        var value = items.shift()\n        return {done: value === undefined, value: value}\n      }\n    }\n\n    if (support.iterable) {\n      iterator[Symbol.iterator] = function() {\n        return iterator\n      }\n    }\n\n    return iterator\n  }\n\n  function Headers(headers) {\n    this.map = {}\n\n    if (headers instanceof Headers) {\n      headers.forEach(function(value, name) {\n        this.append(name, value)\n      }, this)\n    } else if (Array.isArray(headers)) {\n      headers.forEach(function(header) {\n        this.append(header[0], header[1])\n      }, this)\n    } else if (headers) {\n      Object.getOwnPropertyNames(headers).forEach(function(name) {\n        this.append(name, headers[name])\n      }, this)\n    }\n  }\n\n  Headers.prototype.append = function(name, value) {\n    name = normalizeName(name)\n    value = normalizeValue(value)\n    var oldValue = this.map[name]\n    this.map[name] = oldValue ? oldValue+','+value : value\n  }\n\n  Headers.prototype['delete'] = function(name) {\n    delete this.map[normalizeName(name)]\n  }\n\n  Headers.prototype.get = function(name) {\n    name = normalizeName(name)\n    return this.has(name) ? this.map[name] : null\n  }\n\n  Headers.prototype.has = function(name) {\n    return this.map.hasOwnProperty(normalizeName(name))\n  }\n\n  Headers.prototype.set = function(name, value) {\n    this.map[normalizeName(name)] = normalizeValue(value)\n  }\n\n  Headers.prototype.forEach = function(callback, thisArg) {\n    for (var name in this.map) {\n      if (this.map.hasOwnProperty(name)) {\n        callback.call(thisArg, this.map[name], name, this)\n      }\n    }\n  }\n\n  Headers.prototype.keys = function() {\n    var items = []\n    this.forEach(function(value, name) { items.push(name) })\n    return iteratorFor(items)\n  }\n\n  Headers.prototype.values = function() {\n    var items = []\n    this.forEach(function(value) { items.push(value) })\n    return iteratorFor(items)\n  }\n\n  Headers.prototype.entries = function() {\n    var items = []\n    this.forEach(function(value, name) { items.push([name, value]) })\n    return iteratorFor(items)\n  }\n\n  if (support.iterable) {\n    Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n  }\n\n  function consumed(body) {\n    if (body.bodyUsed) {\n      return Promise.reject(new TypeError('Already read'))\n    }\n    body.bodyUsed = true\n  }\n\n  function fileReaderReady(reader) {\n    return new Promise(function(resolve, reject) {\n      reader.onload = function() {\n        resolve(reader.result)\n      }\n      reader.onerror = function() {\n        reject(reader.error)\n      }\n    })\n  }\n\n  function readBlobAsArrayBuffer(blob) {\n    var reader = new FileReader()\n    var promise = fileReaderReady(reader)\n    reader.readAsArrayBuffer(blob)\n    return promise\n  }\n\n  function readBlobAsText(blob) {\n    var reader = new FileReader()\n    var promise = fileReaderReady(reader)\n    reader.readAsText(blob)\n    return promise\n  }\n\n  function readArrayBufferAsText(buf) {\n    var view = new Uint8Array(buf)\n    var chars = new Array(view.length)\n\n    for (var i = 0; i < view.length; i++) {\n      chars[i] = String.fromCharCode(view[i])\n    }\n    return chars.join('')\n  }\n\n  function bufferClone(buf) {\n    if (buf.slice) {\n      return buf.slice(0)\n    } else {\n      var view = new Uint8Array(buf.byteLength)\n      view.set(new Uint8Array(buf))\n      return view.buffer\n    }\n  }\n\n  function Body() {\n    this.bodyUsed = false\n\n    this._initBody = function(body) {\n      this._bodyInit = body\n      if (!body) {\n        this._bodyText = ''\n      } else if (typeof body === 'string') {\n        this._bodyText = body\n      } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n        this._bodyBlob = body\n      } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n        this._bodyFormData = body\n      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n        this._bodyText = body.toString()\n      } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n        this._bodyArrayBuffer = bufferClone(body.buffer)\n        // IE 10-11 can't handle a DataView body.\n        this._bodyInit = new Blob([this._bodyArrayBuffer])\n      } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n        this._bodyArrayBuffer = bufferClone(body)\n      } else {\n        throw new Error('unsupported BodyInit type')\n      }\n\n      if (!this.headers.get('content-type')) {\n        if (typeof body === 'string') {\n          this.headers.set('content-type', 'text/plain;charset=UTF-8')\n        } else if (this._bodyBlob && this._bodyBlob.type) {\n          this.headers.set('content-type', this._bodyBlob.type)\n        } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n          this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n        }\n      }\n    }\n\n    if (support.blob) {\n      this.blob = function() {\n        var rejected = consumed(this)\n        if (rejected) {\n          return rejected\n        }\n\n        if (this._bodyBlob) {\n          return Promise.resolve(this._bodyBlob)\n        } else if (this._bodyArrayBuffer) {\n          return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n        } else if (this._bodyFormData) {\n          throw new Error('could not read FormData body as blob')\n        } else {\n          return Promise.resolve(new Blob([this._bodyText]))\n        }\n      }\n\n      this.arrayBuffer = function() {\n        if (this._bodyArrayBuffer) {\n          return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n        } else {\n          return this.blob().then(readBlobAsArrayBuffer)\n        }\n      }\n    }\n\n    this.text = function() {\n      var rejected = consumed(this)\n      if (rejected) {\n        return rejected\n      }\n\n      if (this._bodyBlob) {\n        return readBlobAsText(this._bodyBlob)\n      } else if (this._bodyArrayBuffer) {\n        return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n      } else if (this._bodyFormData) {\n        throw new Error('could not read FormData body as text')\n      } else {\n        return Promise.resolve(this._bodyText)\n      }\n    }\n\n    if (support.formData) {\n      this.formData = function() {\n        return this.text().then(decode)\n      }\n    }\n\n    this.json = function() {\n      return this.text().then(JSON.parse)\n    }\n\n    return this\n  }\n\n  // HTTP methods whose capitalization should be normalized\n  var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n  function normalizeMethod(method) {\n    var upcased = method.toUpperCase()\n    return (methods.indexOf(upcased) > -1) ? upcased : method\n  }\n\n  function Request(input, options) {\n    options = options || {}\n    var body = options.body\n\n    if (input instanceof Request) {\n      if (input.bodyUsed) {\n        throw new TypeError('Already read')\n      }\n      this.url = input.url\n      this.credentials = input.credentials\n      if (!options.headers) {\n        this.headers = new Headers(input.headers)\n      }\n      this.method = input.method\n      this.mode = input.mode\n      if (!body && input._bodyInit != null) {\n        body = input._bodyInit\n        input.bodyUsed = true\n      }\n    } else {\n      this.url = String(input)\n    }\n\n    this.credentials = options.credentials || this.credentials || 'omit'\n    if (options.headers || !this.headers) {\n      this.headers = new Headers(options.headers)\n    }\n    this.method = normalizeMethod(options.method || this.method || 'GET')\n    this.mode = options.mode || this.mode || null\n    this.referrer = null\n\n    if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n      throw new TypeError('Body not allowed for GET or HEAD requests')\n    }\n    this._initBody(body)\n  }\n\n  Request.prototype.clone = function() {\n    return new Request(this, { body: this._bodyInit })\n  }\n\n  function decode(body) {\n    var form = new FormData()\n    body.trim().split('&').forEach(function(bytes) {\n      if (bytes) {\n        var split = bytes.split('=')\n        var name = split.shift().replace(/\\+/g, ' ')\n        var value = split.join('=').replace(/\\+/g, ' ')\n        form.append(decodeURIComponent(name), decodeURIComponent(value))\n      }\n    })\n    return form\n  }\n\n  function parseHeaders(rawHeaders) {\n    var headers = new Headers()\n    rawHeaders.split(/\\r?\\n/).forEach(function(line) {\n      var parts = line.split(':')\n      var key = parts.shift().trim()\n      if (key) {\n        var value = parts.join(':').trim()\n        headers.append(key, value)\n      }\n    })\n    return headers\n  }\n\n  Body.call(Request.prototype)\n\n  function Response(bodyInit, options) {\n    if (!options) {\n      options = {}\n    }\n\n    this.type = 'default'\n    this.status = 'status' in options ? options.status : 200\n    this.ok = this.status >= 200 && this.status < 300\n    this.statusText = 'statusText' in options ? options.statusText : 'OK'\n    this.headers = new Headers(options.headers)\n    this.url = options.url || ''\n    this._initBody(bodyInit)\n  }\n\n  Body.call(Response.prototype)\n\n  Response.prototype.clone = function() {\n    return new Response(this._bodyInit, {\n      status: this.status,\n      statusText: this.statusText,\n      headers: new Headers(this.headers),\n      url: this.url\n    })\n  }\n\n  Response.error = function() {\n    var response = new Response(null, {status: 0, statusText: ''})\n    response.type = 'error'\n    return response\n  }\n\n  var redirectStatuses = [301, 302, 303, 307, 308]\n\n  Response.redirect = function(url, status) {\n    if (redirectStatuses.indexOf(status) === -1) {\n      throw new RangeError('Invalid status code')\n    }\n\n    return new Response(null, {status: status, headers: {location: url}})\n  }\n\n  self.Headers = Headers\n  self.Request = Request\n  self.Response = Response\n\n  self.fetch = function(input, init) {\n    return new Promise(function(resolve, reject) {\n      var request = new Request(input, init)\n      var xhr = new XMLHttpRequest()\n\n      xhr.onload = function() {\n        var options = {\n          status: xhr.status,\n          statusText: xhr.statusText,\n          headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n        }\n        options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n        var body = 'response' in xhr ? xhr.response : xhr.responseText\n        resolve(new Response(body, options))\n      }\n\n      xhr.onerror = function() {\n        reject(new TypeError('Network request failed'))\n      }\n\n      xhr.ontimeout = function() {\n        reject(new TypeError('Network request failed'))\n      }\n\n      xhr.open(request.method, request.url, true)\n\n      if (request.credentials === 'include') {\n        xhr.withCredentials = true\n      }\n\n      if ('responseType' in xhr && support.blob) {\n        xhr.responseType = 'blob'\n      }\n\n      request.headers.forEach(function(value, name) {\n        xhr.setRequestHeader(name, value)\n      })\n\n      xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n    })\n  }\n  self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./packages/web-rax-framework/node_modules/.npminstall/whatwg-fetch/2.0.3/whatwg-fetch/fetch.js\n// module id = 29\n// module chunks = 0 1","require('./').polyfill()\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./packages/web-rax-framework/node_modules/.npminstall/raf/3.3.2/raf/polyfill.js\n// module id = 30\n// module chunks = 0 1","var now = require('performance-now')\n  , root = typeof window === 'undefined' ? global : window\n  , vendors = ['moz', 'webkit']\n  , suffix = 'AnimationFrame'\n  , raf = root['request' + suffix]\n  , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n  raf = root[vendors[i] + 'Request' + suffix]\n  caf = root[vendors[i] + 'Cancel' + suffix]\n      || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n  var last = 0\n    , id = 0\n    , queue = []\n    , frameDuration = 1000 / 60\n\n  raf = function(callback) {\n    if(queue.length === 0) {\n      var _now = now()\n        , next = Math.max(0, frameDuration - (_now - last))\n      last = next + _now\n      setTimeout(function() {\n        var cp = queue.slice(0)\n        // Clear queue here to prevent\n        // callbacks from appending listeners\n        // to the current frame's queue\n        queue.length = 0\n        for(var i = 0; i < cp.length; i++) {\n          if(!cp[i].cancelled) {\n            try{\n              cp[i].callback(last)\n            } catch(e) {\n              setTimeout(function() { throw e }, 0)\n            }\n          }\n        }\n      }, Math.round(next))\n    }\n    queue.push({\n      handle: ++id,\n      callback: callback,\n      cancelled: false\n    })\n    return id\n  }\n\n  caf = function(handle) {\n    for(var i = 0; i < queue.length; i++) {\n      if(queue[i].handle === handle) {\n        queue[i].cancelled = true\n      }\n    }\n  }\n}\n\nmodule.exports = function(fn) {\n  // Wrap in a new function to prevent\n  // `cancel` potentially being assigned\n  // to the native rAF function\n  return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n  caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function() {\n  root.requestAnimationFrame = raf\n  root.cancelAnimationFrame = caf\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./packages/web-rax-framework/node_modules/.npminstall/raf/3.3.2/raf/index.js\n// module id = 31\n// module chunks = 0 1","// Generated by CoffeeScript 1.12.2\n(function() {\n  var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n  if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n    module.exports = function() {\n      return performance.now();\n    };\n  } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n    module.exports = function() {\n      return (getNanoSeconds() - nodeLoadTime) / 1e6;\n    };\n    hrtime = process.hrtime;\n    getNanoSeconds = function() {\n      var hr;\n      hr = hrtime();\n      return hr[0] * 1e9 + hr[1];\n    };\n    moduleLoadTime = getNanoSeconds();\n    upTime = process.uptime() * 1e9;\n    nodeLoadTime = moduleLoadTime - upTime;\n  } else if (Date.now) {\n    module.exports = function() {\n      return Date.now() - loadTime;\n    };\n    loadTime = Date.now();\n  } else {\n    module.exports = function() {\n      return new Date().getTime() - loadTime;\n    };\n    loadTime = new Date().getTime();\n  }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./packages/web-rax-framework/node_modules/.npminstall/performance-now/2.1.0/performance-now/lib/performance-now.js\n// module id = 32\n// module chunks = 0 1","(function(global) {\n  if (global.define) {\n    return;\n  }\n\n  /* eslint strict:0 */\n  var modules = {};\n  var inGuard = false;\n\n  function def(id, deps, factory) {\n    if (deps instanceof Function) {\n      factory = deps;\n      deps = [];\n    }\n\n    modules[id] = {\n      factory: factory,\n      deps: deps,\n      module: {exports: {}},\n      isInitialized: false,\n      hasError: false,\n    };\n  }\n\n  function req(id) {\n    // Weex built-in modules\n    if (id.indexOf('@weex-module') === 0) {\n      return {};\n    }\n\n    var originId = id;\n    var mod = modules[id];\n    // Node like require\n    if (!mod) {\n      id = id + '/index';\n      mod = modules[id];\n    }\n\n    if (mod && mod.isInitialized) {\n      return mod.module.exports;\n    }\n\n    return requireImpl(id, originId);\n  }\n\n  function requireImpl(id, originId) {\n    if (global.ErrorUtils && !inGuard) {\n      inGuard = true;\n      var returnValue;\n      try {\n        returnValue = requireImpl.apply(this, arguments);\n      } catch (e) {\n        global.ErrorUtils.reportFatalError(e);\n      }\n      inGuard = false;\n      return returnValue;\n    }\n\n    var mod = modules[id];\n    if (!mod) {\n      throw new Error(\n        'Requiring unknown module \"' + originId + '\"'\n      );\n    }\n\n    if (mod.hasError) {\n      throw new Error(\n        'Requiring module \"' + originId + '\" which threw an exception'\n      );\n    }\n\n    try {\n      // We must optimistically mark mod as initialized before running the factory to keep any\n      // require cycles inside the factory from causing an infinite require loop.\n      mod.isInitialized = true;\n\n      // keep args in sync with with defineModuleCode in\n      // rax/bundler/src/resolver.js\n      mod.factory(req, mod.module.exports, mod.module);\n    } catch (e) {\n      mod.hasError = true;\n      mod.isInitialized = false;\n      throw e;\n    }\n\n    return mod.module.exports;\n  }\n\n  global.define = def;\n  global.require = req;\n})(this || typeof global === 'object' && global || typeof window === 'object' && window);\n\n\n\n// WEBPACK FOOTER //\n// ./packages/web-rax-framework/src/require.js","import Registry, { config, getOffset, pushElement } from './appearRegistry';\n\nlet instance = null;\n\nconst appear = () => {\n  let instances = [];\n\n  Registry.createEvent();\n  injectEventListenerHook(instances);\n\n  instance = new Registry({\n    container: window\n  });\n  instances.push(instance);\n\n  let control = {\n    config,\n  };\n\n  return control;\n};\n\n\n// hijack addEventListener、removeEventListener\nconst injectEventListenerHook = (instances) => {\n  let nativeAddEventListener = Node.prototype.addEventListener;\n  let nativeRemoveEventListener = Node.prototype.removeEventListener;\n\n  Node.prototype.addEventListener = function(eventName, eventHandler, useCapture, isNotWatch) {\n    let lowerCaseEventName = eventName.toLowerCase();\n    if (lowerCaseEventName === 'appear' || lowerCaseEventName === 'disappear') {\n      pushElement(this);\n    }\n\n    if (instance) {\n      instance.check();\n    }\n\n    if (lowerCaseEventName === 'scroll' && !isNotWatch) {\n      instance = new Registry({\n        container: this\n      });\n      instances.push(instance);\n    }\n    nativeAddEventListener.call(this, eventName, eventHandler, useCapture);\n  };\n\n  Node.prototype.removeEventListener = function(eventName, eventHandler, useCapture, isNotWatch) {\n    let lowerCaseEventName = eventName.toLowerCase();\n\n    // destroy scroller\n    if (lowerCaseEventName === 'scroll' && !isNotWatch) {\n      instances.forEach((instance, index) => {\n        if (instance.__handle && instance.container === this) {\n          this.removeEventListener('scroll', instance.__handle, false, true);\n          instance.__handle = null;\n          instance.appearWatchElements = [];\n          instance.container = null;\n          instances.splice(index, 1);\n        }\n      });\n    }\n    nativeRemoveEventListener.call(this, eventName, eventHandler, useCapture);\n  };\n};\n\nexport default appear();\n\n\n\n// WEBPACK FOOTER //\n// ./packages/web-rax-framework/src/appear.js","let offsetTop = 0;\nlet appearEvt, disappearEvt;\nlet _appearDoms = [];\n\nclass AppearRegistry {\n  static createEvent() {\n    appearEvt = document.createEvent('HTMLEvents');\n    disappearEvt = document.createEvent('HTMLEvents');\n    appearEvt.initEvent('appear', false, true);\n    disappearEvt.initEvent('disappear', false, true);\n  }\n\n  constructor(elements) {\n    this.current = [];\n    this.elements = elements;\n\n    this.options = {\n      container: window,\n      wait: 100,\n      x: 0,\n      y: 0,\n      cls: 'appear',\n      once: false,\n      onReset: function() {},\n      onAppear: function() {},\n      onDisappear: function() {}\n    };\n    this.container = null;\n    this.appearWatchElements = null;\n\n    this.initConfig.apply(this, arguments);\n  }\n\n  initConfig(opts) {\n    this.extend(this.options, opts || (opts = {}));\n    this.appearWatchElements = this.appearWatchElements || this.getElements();\n    this.bindEvent();\n  }\n\n  extend(target, el) {\n    for (let k in el) {\n      if (el.hasOwnProperty(k)) {\n        target[k] = el[k];\n      }\n    }\n    return target;\n  }\n\n  inViewport(element, offset, type) {\n    let { top, right, bottom, left } = element.getBoundingClientRect();\n\n    left = offset.right > left && offset.left < right;\n    top = offset.bottom > top - offsetTop && offset.top < bottom;\n    return left && top;\n  }\n\n  getElements(type) {\n    let container = this.options.container;\n    let appearWatchElements;\n    this.container = container;\n\n    appearWatchElements = _appearDoms || [];\n    appearWatchElements = [].slice.call(appearWatchElements, null);\n\n    return appearWatchElements;\n  }\n\n  // check dom inview\n  check(offset) {\n    raf(() => {\n      this.calculate();\n    });\n  }\n\n  // calculate everyone dom inview\n  calculate() {\n    let container = this.container,\n      elements = this.getElements(),\n      containerOffset = getOffset(window, {\n        x: this.options.x,\n        y: this.options.y\n      }),\n      isOnce = this.options.once,\n      ev = arguments[0] || {};\n\n    if (!container) {\n      return;\n    }\n\n    if (elements && elements.length > 0) {\n      [].forEach.call(elements, (ele, i) => {\n        if (ele) {\n          if (ele.isOnce && ele._hasAppear) {\n            _appearDoms.splice(i, 1);\n            elements.splice(i, 1);\n            return;\n          }\n          this.checkEveryDom(ele, containerOffset, isOnce, appearEvt, disappearEvt, 'normal', i);\n        }\n      });\n    }\n  }\n\n  checkEveryDom(ele, containerOffset, isOnce, cacheAppearEvt, cacheDisappearEvt, type, pos) {\n    let eleOffset = getOffset(ele);\n    let direction = this.getDirection(ele._eleOffset, eleOffset);\n    let isInView = this.inViewport(ele, containerOffset, type);\n    let appear = ele._appear;\n    let _hasAppear = ele._hasAppear;\n    let _hasDisAppear = ele._hasDisAppear;\n    ele._eleOffset = eleOffset;\n\n    cacheAppearEvt.direction = direction;\n    cacheDisappearEvt.direction = direction;\n    if (isInView && !appear) {\n      if (isOnce && !_hasAppear || !isOnce) {\n        ele.dispatchEvent(cacheAppearEvt);\n        ele._hasAppear = true;\n        ele._appear = true;\n      }\n    } else if (!isInView && appear) {\n      if (isOnce && !_hasDisAppear || !isOnce) {\n        ele.dispatchEvent(cacheDisappearEvt);\n        ele._hasDisAppear = true;\n        ele._appear = false;\n      }\n    }\n  }\n\n  // reset\n  reset(opts) {\n    this.initConfig(opts);\n    this.appearWatchElements.forEach((ele) => {\n      delete ele._hasAppear;\n      delete ele._hasDisAppear;\n      delete ele._appear;\n    });\n    return this;\n  }\n  bindEvent() {\n    let handle = throttle(() => {\n      this.check(arguments);\n    }, this.options.wait);\n    if (this.__handle) {\n      this.container.removeEventListener('scroll', this.__handle, false, true);\n      this.__handle = null;\n    }\n    this.__handle = handle;\n    this.container.addEventListener('scroll', handle, false, true);\n  }\n\n  getDirection(beforeOffset, nowOffset) {\n    var direction = 'none';\n    var horizental = beforeOffset.left - nowOffset.left;\n    var vertical = beforeOffset.top - nowOffset.top;\n    if (vertical == 0) {\n      if (horizental != 0) {\n        direction = horizental > 0 ? 'left' : 'right';\n      } else {\n        direction = 'none';\n      }\n    }\n    if (horizental == 0) {\n      if (vertical != 0) {\n        direction = vertical > 0 ? 'up' : 'down';\n      } else {\n        direction = 'none';\n      }\n    }\n    return direction;\n  }\n}\n\nlet raf = window.requestAnimationFrame || window.webkitRequestAnimationFrame || function(c) {\n  setTimeout(c, 1 / 60 * 1e3);\n};\n\nfunction throttle(fn, wait) {\n  let context, args, result;\n  let timeout = null;\n  let previous = 0;\n\n  const later = () => {\n    previous = Date.now();\n    timeout = null;\n    result = fn.apply(context, args);\n  };\n  return function() {\n    const now = Date.now();\n    const remaining = wait - (now - previous);\n    context = this;\n    args = arguments;\n\n    if (remaining <= 0) {\n      clearTimeout(timeout);\n      timeout = null;\n      previous = now;\n      result = fn.apply(context, args);\n    } else if (!timeout) {\n      timeout = setTimeout(later, remaining);\n    }\n    return result;\n  };\n}\n\nexport function config(opts) {\n  if (opts.offsetTop && typeof opts.offsetTop === 'number') {\n    offsetTop = opts.offsetTop;\n  }\n}\n\nexport function getOffset(el, param) {\n  let l, r, b, t;\n  if (!el) {\n    return;\n  }\n  if (!param) {\n    param = {x: 0, y: 0};\n  }\n\n  if (el != window) {\n    el = el.getBoundingClientRect();\n    l = el.left;\n    t = el.top;\n    r = el.right;\n    b = el.bottom;\n  } else {\n    l = 0;\n    t = 0;\n    r = l + el.innerWidth;\n    b = t + el.innerHeight;\n  }\n\n  return {\n    'left': l,\n    'top': t,\n    'right': r + param.x,\n    'bottom': b + param.y\n  };\n}\n\n// add element\nexport function pushElement(node) {\n  if (_appearDoms.indexOf(node) === -1 && !node.appended) {\n    let isOnce = Boolean(node.getAttribute('isonce')) || Boolean(node.getAttribute('data-once'));\n    node.isOnce = isOnce;\n    node.appended = true;\n    _appearDoms.push(node);\n    node._eleOffset = getOffset(node);\n  }\n}\n\nexport default AppearRegistry;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/web-rax-framework/src/appearRegistry.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.version = exports.setNativeProps = exports.findComponentInstance = exports.unmountComponentAtNode = exports.findDOMNode = exports.render = exports.PropTypes = exports.PureComponent = exports.Component = exports.createFactory = exports.isValidElement = exports.cloneElement = exports.createElement = undefined;\n\nrequire('./debug/devtools');\n\nvar _element = require('./element');\n\nvar _component = require('./component');\n\nvar _component2 = _interopRequireDefault(_component);\n\nvar _purecomponent = require('./purecomponent');\n\nvar _purecomponent2 = _interopRequireDefault(_purecomponent);\n\nvar _proptypes = require('./proptypes');\n\nvar _proptypes2 = _interopRequireDefault(_proptypes);\n\nvar _render2 = require('./render');\n\nvar _render3 = _interopRequireDefault(_render2);\n\nvar _findDOMNode2 = require('./findDOMNode');\n\nvar _findDOMNode3 = _interopRequireDefault(_findDOMNode2);\n\nvar _unmountComponentAtNode2 = require('./unmountComponentAtNode');\n\nvar _unmountComponentAtNode3 = _interopRequireDefault(_unmountComponentAtNode2);\n\nvar _findComponentInstance2 = require('./findComponentInstance');\n\nvar _findComponentInstance3 = _interopRequireDefault(_findComponentInstance2);\n\nvar _setNativeProps2 = require('./setNativeProps');\n\nvar _setNativeProps3 = _interopRequireDefault(_setNativeProps2);\n\nvar _version2 = require('./version');\n\nvar _version3 = _interopRequireDefault(_version2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.createElement = _element.createElement;\nexports.cloneElement = _element.cloneElement;\nexports.isValidElement = _element.isValidElement;\nexports.createFactory = _element.createFactory;\nexports.Component = _component2.default;\nexports.PureComponent = _purecomponent2.default;\nexports.PropTypes = _proptypes2.default;\nexports.render = _render3.default;\nexports.findDOMNode = _findDOMNode3.default;\nexports.unmountComponentAtNode = _unmountComponentAtNode3.default;\nexports.findComponentInstance = _findComponentInstance3.default;\nexports.setNativeProps = _setNativeProps3.default;\nexports.version = _version3.default;\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/index.js","'use strict';\n\nvar _hook = require('./hook');\n\nvar _hook2 = _interopRequireDefault(_hook);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') {\n  __REACT_DEVTOOLS_GLOBAL_HOOK__.inject(_hook2.default);\n}\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/debug/devtools.js","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = flattenChildren;\nfunction traverseChildren(children, result) {\n  if (Array.isArray(children)) {\n    for (var i = 0, l = children.length; i < l; i++) {\n      traverseChildren(children[i], result);\n    }\n  } else {\n    result.push(children);\n  }\n}\n\nfunction flattenChildren(children) {\n  if (children == null) {\n    return children;\n  }\n  var result = [];\n  traverseChildren(children, result);\n\n  if (result.length === 1) {\n    result = result[0];\n  }\n\n  return result;\n}\nmodule.exports = exports[\"default\"];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/flattenChildren.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _component = require('../component');\n\nvar _component2 = _interopRequireDefault(_component);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar rootCounter = 1;\n\nvar Root = function (_Component) {\n  _inherits(Root, _Component);\n\n  function Root() {\n    var _ref;\n\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, Root);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Root.__proto__ || Object.getPrototypeOf(Root)).call.apply(_ref, [this].concat(args))), _this), _this.rootID = rootCounter++, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  _createClass(Root, [{\n    key: 'isRootComponent',\n    value: function isRootComponent() {}\n  }, {\n    key: 'render',\n    value: function render() {\n      return this.props.children;\n    }\n  }, {\n    key: 'getPublicInstance',\n    value: function getPublicInstance() {\n      return this.getRenderedComponent().getPublicInstance();\n    }\n  }, {\n    key: 'getRenderedComponent',\n    value: function getRenderedComponent() {\n      return this._internal._renderedComponent;\n    }\n  }]);\n\n  return Root;\n}(_component2.default);\n\nexports.default = Root;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/root.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _component = require('./component');\n\nvar _component2 = _interopRequireDefault(_component);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Pure component class.\n */\nvar PureComponent = function (_Component) {\n  _inherits(PureComponent, _Component);\n\n  function PureComponent(props, context) {\n    _classCallCheck(this, PureComponent);\n\n    return _possibleConstructorReturn(this, (PureComponent.__proto__ || Object.getPrototypeOf(PureComponent)).call(this, props, context));\n  }\n\n  _createClass(PureComponent, [{\n    key: 'isPureComponentClass',\n    value: function isPureComponentClass() {}\n  }]);\n\n  return PureComponent;\n}(_component2.default);\n\nexports.default = PureComponent;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/purecomponent.js","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n/*\n * Current PropTypes only export some api with react, not validate in runtime.\n */\n\nfunction createChainableTypeChecker(validate) {\n  function checkType(isRequired, props, propName, componentName, location, propFullName) {\n    return typeChecker;\n  }\n\n  var chainedCheckType = checkType.bind(null, false);\n  chainedCheckType.isRequired = checkType.bind(null, true);\n\n  return chainedCheckType;\n}\n\nfunction createTypeChecker(expectedType) {\n  function validate(props, propName, componentName, location, propFullName) {\n    // Noop\n  }\n  return createChainableTypeChecker(validate);\n}\n\nvar typeChecker = createTypeChecker();\n\nexports.default = {\n  array: typeChecker,\n  bool: typeChecker,\n  func: typeChecker,\n  number: typeChecker,\n  object: typeChecker,\n  string: typeChecker,\n  symbol: typeChecker,\n  element: typeChecker,\n  node: typeChecker,\n  any: typeChecker,\n  arrayOf: typeChecker,\n  instanceOf: typeChecker,\n  objectOf: typeChecker,\n  oneOf: typeChecker,\n  oneOfType: typeChecker,\n  shape: typeChecker\n};\nmodule.exports = exports[\"default\"];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/proptypes.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _inject = require('./inject');\n\nvar _inject2 = _interopRequireDefault(_inject);\n\nvar _instance = require('./vdom/instance');\n\nvar _instance2 = _interopRequireDefault(_instance);\n\nvar _host = require('./vdom/host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction render(element, container, options, callback) {\n  // Compatible with `render(element, container, callback)`\n  if (typeof options === 'function') {\n    callback = options;\n    options = null;\n  }\n\n  // Init inject\n  (0, _inject2.default)(options || {});\n\n  var rootComponent = _instance2.default.render(element, container);\n  var component = rootComponent.getPublicInstance();\n\n  if (callback) {\n    callback.call(component);\n  }\n\n  return component;\n}\n\nexports.default = render;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/render.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = inject;\n\nvar _universalEnv = require('universal-env');\n\nvar _host = require('./vdom/host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _empty = require('./vdom/empty');\n\nvar _empty2 = _interopRequireDefault(_empty);\n\nvar _native = require('./vdom/native');\n\nvar _native2 = _interopRequireDefault(_native);\n\nvar _text = require('./vdom/text');\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _composite = require('./vdom/composite');\n\nvar _composite2 = _interopRequireDefault(_composite);\n\nvar _fragment = require('./vdom/fragment');\n\nvar _fragment2 = _interopRequireDefault(_fragment);\n\nvar _driverWeex = require('driver-weex');\n\nvar _driverWeex2 = _interopRequireDefault(_driverWeex);\n\nvar _driverBrowser = require('driver-browser');\n\nvar _driverBrowser2 = _interopRequireDefault(_driverBrowser);\n\nvar _hook = require('./debug/hook');\n\nvar _hook2 = _interopRequireDefault(_hook);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction inject(_ref) {\n  var driver = _ref.driver,\n      hook = _ref.hook,\n      measurer = _ref.measurer,\n      deviceWidth = _ref.deviceWidth,\n      viewportWidth = _ref.viewportWidth;\n\n  // Inject component class\n  _host2.default.EmptyComponent = _empty2.default;\n  _host2.default.NativeComponent = _native2.default;\n  _host2.default.TextComponent = _text2.default;\n  _host2.default.FragmentComponent = _fragment2.default;\n  _host2.default.CompositeComponent = _composite2.default;\n  // Inject devtool hook\n  _host2.default.hook = hook || _hook2.default;\n\n  // Inject performance measurer\n  _host2.default.measurer = measurer;\n\n  // Inject render driver\n  if (!_host2.default.driver) {\n    if (!driver) {\n      if (_universalEnv.isWeex) {\n        driver = _driverWeex2.default;\n      } else if (_universalEnv.isWeb) {\n        driver = _driverBrowser2.default;\n      } else {\n        throw Error('No builtin driver matched');\n      }\n    }\n    _host2.default.driver = driver;\n  }\n\n  if (deviceWidth && driver.setDeviceWidth) {\n    driver.setDeviceWidth(deviceWidth);\n  }\n\n  if (viewportWidth && driver.setViewportWidth) {\n    driver.setViewportWidth(viewportWidth);\n  }\n}\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/inject.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Empty Component\n */\nvar EmptyComponent = function () {\n  function EmptyComponent() {\n    _classCallCheck(this, EmptyComponent);\n\n    this._currentElement = null;\n  }\n\n  _createClass(EmptyComponent, [{\n    key: 'mountComponent',\n    value: function mountComponent(parent, parentInstance, context, childMounter) {\n      this._parent = parent;\n      this._parentInstance = parentInstance;\n      this._context = context;\n\n      var instance = {\n        _internal: this\n      };\n\n      var nativeNode = this.getNativeNode();\n      if (childMounter) {\n        childMounter(nativeNode, parent);\n      } else {\n        _host2.default.driver.appendChild(nativeNode, parent);\n      }\n\n      return instance;\n    }\n  }, {\n    key: 'unmountComponent',\n    value: function unmountComponent(notRemoveChild) {\n      if (this._nativeNode && !notRemoveChild) {\n        _host2.default.driver.removeChild(this._nativeNode, this._parent);\n      }\n\n      this._nativeNode = null;\n      this._parent = null;\n      this._parentInstance = null;\n      this._context = null;\n    }\n  }, {\n    key: 'updateComponent',\n    value: function updateComponent() {\n      // Noop\n    }\n  }, {\n    key: 'getNativeNode',\n    value: function getNativeNode() {\n      // Weex native node\n      if (this._nativeNode == null) {\n        this._nativeNode = _host2.default.driver.createEmpty();\n      }\n\n      return this._nativeNode;\n    }\n  }]);\n\n  return EmptyComponent;\n}();\n\nexports.default = EmptyComponent;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/empty.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Text Component\n */\nvar TextComponent = function () {\n  function TextComponent(element) {\n    _classCallCheck(this, TextComponent);\n\n    this._currentElement = element;\n    this._stringText = String(element);\n  }\n\n  _createClass(TextComponent, [{\n    key: 'mountComponent',\n    value: function mountComponent(parent, parentInstance, context, childMounter) {\n      this._parent = parent;\n      this._parentInstance = parentInstance;\n      this._context = context;\n      this._mountID = _host2.default.mountID++;\n\n      // Weex dom operation\n      var nativeNode = this.getNativeNode();\n\n      if (childMounter) {\n        childMounter(nativeNode, parent);\n      } else {\n        _host2.default.driver.appendChild(nativeNode, parent);\n      }\n\n      var instance = {\n        _internal: this\n      };\n\n      _host2.default.hook.Reconciler.mountComponent(this);\n\n      return instance;\n    }\n  }, {\n    key: 'unmountComponent',\n    value: function unmountComponent(notRemoveChild) {\n      if (this._nativeNode && !notRemoveChild) {\n        _host2.default.driver.removeChild(this._nativeNode, this._parent);\n      }\n\n      _host2.default.hook.Reconciler.unmountComponent(this);\n\n      this._currentElement = null;\n      this._nativeNode = null;\n      this._parent = null;\n      this._parentInstance = null;\n      this._context = null;\n      this._stringText = null;\n    }\n  }, {\n    key: 'updateComponent',\n    value: function updateComponent(prevElement, nextElement, context) {\n      // If some text do noting\n      if (prevElement !== nextElement) {\n        // Replace current element\n        this._currentElement = nextElement;\n        // Devtool read the latest stringText value\n        this._stringText = String(nextElement);\n        _host2.default.driver.updateText(this.getNativeNode(), this._stringText);\n        _host2.default.hook.Reconciler.receiveComponent(this);\n      }\n    }\n  }, {\n    key: 'getNativeNode',\n    value: function getNativeNode() {\n      if (this._nativeNode == null) {\n        this._nativeNode = _host2.default.driver.createText(this._stringText);\n      }\n      return this._nativeNode;\n    }\n  }]);\n\n  return TextComponent;\n}();\n\nexports.default = TextComponent;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/text.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _stateless = require('./stateless');\n\nvar _stateless2 = _interopRequireDefault(_stateless);\n\nvar _updater = require('./updater');\n\nvar _updater2 = _interopRequireDefault(_updater);\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _ref = require('./ref');\n\nvar _ref2 = _interopRequireDefault(_ref);\n\nvar _instantiateComponent = require('./instantiateComponent');\n\nvar _instantiateComponent2 = _interopRequireDefault(_instantiateComponent);\n\nvar _shouldUpdateComponent = require('./shouldUpdateComponent');\n\nvar _shouldUpdateComponent2 = _interopRequireDefault(_shouldUpdateComponent);\n\nvar _shallowEqual = require('./shallowEqual');\n\nvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction performInSandbox(fn, instance, callback) {\n  try {\n    return fn();\n  } catch (e) {\n    if (callback) {\n      callback(e);\n    } else {\n      handleError(instance, e);\n    }\n  }\n}\n\nfunction handleError(instance, error) {\n  var boundary = void 0;\n  var _instance = instance;\n\n  while (_instance) {\n    if (typeof _instance.componentDidCatch === 'function') {\n      boundary = _instance;\n      break;\n    } else if (_instance._internal && _instance._internal._parentInstance) {\n      _instance = _instance._internal._parentInstance;\n    } else {\n      break;\n    }\n  }\n\n  if (boundary) {\n    boundary.componentDidCatch(error);\n  } else {\n    if (_host2.default.sandbox) {\n      setTimeout(function () {\n        throw error;\n      }, 0);\n    } else {\n      throw error;\n    }\n  }\n}\n\nvar measureLifeCycle = void 0;\nif (process.env.NODE_ENV !== 'production') {\n  measureLifeCycle = function measureLifeCycle(callback, instanceID, type) {\n    _host2.default.measurer && _host2.default.measurer.beforeLifeCycle(instanceID, type);\n    callback();\n    _host2.default.measurer && _host2.default.measurer.afterLifeCycle(instanceID, type);\n  };\n}\n\n/**\n * Composite Component\n */\n\nvar CompositeComponent = function () {\n  function CompositeComponent(element) {\n    _classCallCheck(this, CompositeComponent);\n\n    this._currentElement = element;\n  }\n\n  _createClass(CompositeComponent, [{\n    key: 'getName',\n    value: function getName() {\n      var type = this._currentElement.type;\n      var constructor = this._instance && this._instance.constructor;\n      return type.displayName || constructor && constructor.displayName || type.name || constructor && constructor.name || null;\n    }\n  }, {\n    key: 'mountComponent',\n    value: function mountComponent(parent, parentInstance, context, childMounter) {\n      var _this = this;\n\n      this._parent = parent;\n      this._parentInstance = parentInstance;\n      this._context = context;\n      this._mountID = _host2.default.mountID++;\n      this._updateCount = 0;\n\n      if (process.env.NODE_ENV !== 'production') {\n        _host2.default.measurer && _host2.default.measurer.beforeMountComponent(this._mountID, this);\n      }\n\n      var Component = this._currentElement.type;\n      var publicProps = this._currentElement.props;\n      var isClass = Component.prototype;\n      var isComponentClass = isClass && Component.prototype.isComponentClass;\n      // Class stateless component without state but have lifecycles\n      var isStatelessClass = isClass && Component.prototype.render;\n\n      // Context process\n      var publicContext = this._processContext(context);\n\n      // Initialize the public class\n      var instance = void 0;\n      var renderedElement = void 0;\n\n      if (isComponentClass || isStatelessClass) {\n        // Component instance\n        instance = new Component(publicProps, publicContext, _updater2.default);\n      } else if (typeof Component === 'function') {\n        // Functional stateless component without state and lifecycles\n        instance = new _stateless2.default(Component);\n      } else {\n        throw Error('Invalid component type ' + JSON.stringify(Component));\n      }\n\n      // These should be set up in the constructor, but as a convenience for\n      // simpler class abstractions, we set them up after the fact.\n      instance.props = publicProps;\n      instance.context = publicContext;\n      instance.refs = {};\n\n      // Inject the updater into instance\n      instance.updater = _updater2.default;\n      instance._internal = this;\n      this._instance = instance;\n\n      // Init state, must be set to an object or null\n      var initialState = instance.state;\n      if (initialState === undefined) {\n        // TODO clone the state?\n        instance.state = initialState = null;\n      }\n\n      var error = null;\n      var errorCallback = function errorCallback(e) {\n        error = e;\n      };\n\n      performInSandbox(function () {\n        if (instance.componentWillMount) {\n          if (process.env.NODE_ENV !== 'production') {\n            measureLifeCycle(function () {\n              instance.componentWillMount();\n            }, _this._mountID, 'componentDidMount');\n          } else {\n            instance.componentWillMount();\n          }\n        }\n      }, instance, errorCallback);\n\n      if (renderedElement == null) {\n        _host2.default.component = this;\n        // Process pending state when call setState in componentWillMount\n        instance.state = this._processPendingState(publicProps, publicContext);\n\n        performInSandbox(function () {\n          if (process.env.NODE_ENV !== 'production') {\n            measureLifeCycle(function () {\n              renderedElement = instance.render();\n            }, _this._mountID, 'render');\n          } else {\n            renderedElement = instance.render();\n          }\n        }, instance, errorCallback);\n\n        _host2.default.component = null;\n      }\n\n      this._renderedComponent = (0, _instantiateComponent2.default)(renderedElement);\n      this._renderedComponent.mountComponent(this._parent, instance, this._processChildContext(context), childMounter);\n\n      if (error) {\n        handleError(instance, error);\n      }\n\n      if (this._currentElement && this._currentElement.ref) {\n        _ref2.default.attach(this._currentElement._owner, this._currentElement.ref, this);\n      }\n\n      performInSandbox(function () {\n        if (instance.componentDidMount) {\n          if (process.env.NODE_ENV !== 'production') {\n            measureLifeCycle(function () {\n              instance.componentDidMount();\n            }, _this._mountID, 'componentDidMount');\n          } else {\n            instance.componentDidMount();\n          }\n        }\n      }, instance);\n\n      _host2.default.hook.Reconciler.mountComponent(this);\n\n      if (process.env.NODE_ENV !== 'production') {\n        _host2.default.measurer && _host2.default.measurer.afterMountComponent(this._mountID);\n      }\n\n      return instance;\n    }\n  }, {\n    key: 'unmountComponent',\n    value: function unmountComponent(notRemoveChild) {\n      var instance = this._instance;\n\n      performInSandbox(function () {\n        if (instance.componentWillUnmount) {\n          instance.componentWillUnmount();\n        }\n      }, instance);\n\n      _host2.default.hook.Reconciler.unmountComponent(this);\n\n      instance._internal = null;\n\n      if (this._renderedComponent != null) {\n        var ref = this._currentElement.ref;\n        if (ref) {\n          _ref2.default.detach(this._currentElement._owner, ref, this);\n        }\n\n        this._renderedComponent.unmountComponent(notRemoveChild);\n        this._renderedComponent = null;\n        this._instance = null;\n      }\n\n      this._currentElement = null;\n      this._parentInstance = null;\n\n      // Reset pending fields\n      // Even if this component is scheduled for another update in ReactUpdates,\n      // it would still be ignored because these fields are reset.\n      this._pendingStateQueue = null;\n      this._pendingForceUpdate = false;\n\n      // These fields do not really need to be reset since this object is no\n      // longer accessible.\n      this._context = null;\n    }\n\n    /**\n     * Filters the context object to only contain keys specified in\n     * `contextTypes`\n     */\n\n  }, {\n    key: '_processContext',\n    value: function _processContext(context) {\n      var Component = this._currentElement.type;\n      var contextTypes = Component.contextTypes;\n      if (!contextTypes) {\n        return {};\n      }\n      var maskedContext = {};\n      for (var contextName in contextTypes) {\n        maskedContext[contextName] = context[contextName];\n      }\n      return maskedContext;\n    }\n  }, {\n    key: '_processChildContext',\n    value: function _processChildContext(currentContext) {\n      var instance = this._instance;\n      var childContext = instance.getChildContext && instance.getChildContext();\n      if (childContext) {\n        return Object.assign({}, currentContext, childContext);\n      }\n      return currentContext;\n    }\n  }, {\n    key: '_processPendingState',\n    value: function _processPendingState(props, context) {\n      var instance = this._instance;\n      var queue = this._pendingStateQueue;\n      if (!queue) {\n        return instance.state;\n      }\n      // Reset pending queue\n      this._pendingStateQueue = null;\n      var nextState = Object.assign({}, instance.state);\n      for (var i = 0; i < queue.length; i++) {\n        var partial = queue[i];\n        Object.assign(nextState, typeof partial === 'function' ? partial.call(instance, nextState, props, context) : partial);\n      }\n\n      return nextState;\n    }\n  }, {\n    key: 'updateComponent',\n    value: function updateComponent(prevElement, nextElement, prevUnmaskedContext, nextUnmaskedContext) {\n      var instance = this._instance;\n\n      if (process.env.NODE_ENV !== 'production') {\n        _host2.default.measurer && _host2.default.measurer.beforeUpdateComponent(this._mountID, this);\n      }\n\n      if (!instance) {\n        console.error('Update component \\'' + this.getName() + '\\' that has already been unmounted (or failed to mount).');\n      }\n\n      var willReceive = false;\n      var nextContext = void 0;\n      var nextProps = void 0;\n\n      // Determine if the context has changed or not\n      if (this._context === nextUnmaskedContext) {\n        nextContext = instance.context;\n      } else {\n        nextContext = this._processContext(nextUnmaskedContext);\n        willReceive = true;\n      }\n\n      // Distinguish between a props update versus a simple state update\n      if (prevElement === nextElement) {\n        // Skip checking prop types again -- we don't read component.props to avoid\n        // warning for DOM component props in this upgrade\n        nextProps = nextElement.props;\n      } else {\n        nextProps = nextElement.props;\n        willReceive = true;\n      }\n\n      var hasReceived = willReceive && instance.componentWillReceiveProps;\n\n      if (hasReceived) {\n        // Calling this.setState() within componentWillReceiveProps will not trigger an additional render.\n        this._pendingState = true;\n        performInSandbox(function () {\n          instance.componentWillReceiveProps(nextProps, nextContext);\n        }, instance);\n        this._pendingState = false;\n      }\n\n      // Update refs\n      _ref2.default.update(prevElement, nextElement, this);\n\n      // Shoud update always default\n      var shouldUpdate = true;\n      var prevProps = instance.props;\n      var prevState = instance.state;\n      // TODO: could delay execution processPendingState\n      var nextState = this._processPendingState(nextProps, nextContext);\n\n      // ShouldComponentUpdate is not called when forceUpdate is used\n      if (!this._pendingForceUpdate) {\n        if (instance.shouldComponentUpdate) {\n          shouldUpdate = performInSandbox(function () {\n            return instance.shouldComponentUpdate(nextProps, nextState, nextContext);\n          }, instance);\n        } else if (instance.isPureComponentClass) {\n          shouldUpdate = !(0, _shallowEqual2.default)(prevProps, nextProps) || !(0, _shallowEqual2.default)(prevState, nextState);\n        }\n      }\n\n      if (shouldUpdate) {\n        this._pendingForceUpdate = false;\n        // Will set `this.props`, `this.state` and `this.context`.\n        var prevContext = instance.context;\n\n        // Cannot use this.setState() in componentWillUpdate.\n        // If need to update state in response to a prop change, use componentWillReceiveProps instead.\n        performInSandbox(function () {\n          if (instance.componentWillUpdate) {\n            instance.componentWillUpdate(nextProps, nextState, nextContext);\n          }\n        }, instance);\n\n        // Replace with next\n        this._currentElement = nextElement;\n        this._context = nextUnmaskedContext;\n        instance.props = nextProps;\n        instance.state = nextState;\n        instance.context = nextContext;\n\n        this._updateRenderedComponent(nextUnmaskedContext);\n\n        performInSandbox(function () {\n          if (instance.componentDidUpdate) {\n            instance.componentDidUpdate(prevProps, prevState, prevContext);\n          }\n        }, instance);\n\n        this._updateCount++;\n      } else {\n        // If it's determined that a component should not update, we still want\n        // to set props and state but we shortcut the rest of the update.\n        this._currentElement = nextElement;\n        this._context = nextUnmaskedContext;\n        instance.props = nextProps;\n        instance.state = nextState;\n        instance.context = nextContext;\n      }\n\n      // Flush setState callbacks set in componentWillReceiveProps\n      if (hasReceived) {\n        var callbacks = this._pendingCallbacks;\n        this._pendingCallbacks = null;\n        _updater2.default.runCallbacks(callbacks, instance);\n      }\n\n      if (process.env.NODE_ENV !== 'production') {\n        _host2.default.measurer && _host2.default.measurer.afterUpdateComponent(this._mountID);\n      }\n\n      _host2.default.hook.Reconciler.receiveComponent(this);\n    }\n\n    /**\n     * Call the component's `render` method and update the DOM accordingly.\n     */\n\n  }, {\n    key: '_updateRenderedComponent',\n    value: function _updateRenderedComponent(context) {\n      var _this2 = this;\n\n      var prevRenderedComponent = this._renderedComponent;\n      var prevRenderedElement = prevRenderedComponent._currentElement;\n\n      var instance = this._instance;\n      var nextRenderedElement = void 0;\n\n      _host2.default.component = this;\n\n      performInSandbox(function () {\n        if (process.env.NODE_ENV !== 'production') {\n          measureLifeCycle(function () {\n            nextRenderedElement = instance.render();\n          }, _this2._mountID, 'render');\n        } else {\n          nextRenderedElement = instance.render();\n        }\n      }, instance);\n\n      _host2.default.component = null;\n\n      if ((0, _shouldUpdateComponent2.default)(prevRenderedElement, nextRenderedElement)) {\n        prevRenderedComponent.updateComponent(prevRenderedElement, nextRenderedElement, prevRenderedComponent._context, this._processChildContext(context));\n        if (process.env.NODE_ENV !== 'production') {\n          _host2.default.measurer && _host2.default.measurer.recordOperation({\n            instanceID: this._mountID,\n            type: 'update component',\n            payload: {}\n          });\n        }\n      } else {\n        var oldChild = prevRenderedComponent.getNativeNode();\n        prevRenderedComponent.unmountComponent(true);\n\n        this._renderedComponent = (0, _instantiateComponent2.default)(nextRenderedElement);\n        this._renderedComponent.mountComponent(this._parent, instance, this._processChildContext(context), function (newChild, parent) {\n          // TODO: Duplicate code in native component file\n          if (!Array.isArray(newChild)) {\n            newChild = [newChild];\n          }\n\n          // oldChild or newChild all maybe fragment\n          if (!Array.isArray(oldChild)) {\n            oldChild = [oldChild];\n          }\n\n          // If newChild count large then oldChild\n          var lastNewChild = void 0;\n          for (var i = 0; i < newChild.length; i++) {\n            var child = newChild[i];\n            if (oldChild[i]) {\n              _host2.default.driver.replaceChild(child, oldChild[i]);\n            } else {\n              _host2.default.driver.insertAfter(child, lastNewChild);\n            }\n            lastNewChild = child;\n          }\n\n          // If newChild count less then oldChild\n          if (newChild.length < oldChild.length) {\n            for (var _i = newChild.length; _i < oldChild.length; _i++) {\n              _host2.default.driver.removeChild(oldChild[_i]);\n            }\n          }\n        });\n      }\n    }\n  }, {\n    key: 'getNativeNode',\n    value: function getNativeNode() {\n      var renderedComponent = this._renderedComponent;\n      if (renderedComponent) {\n        return renderedComponent.getNativeNode();\n      }\n    }\n  }, {\n    key: 'getPublicInstance',\n    value: function getPublicInstance() {\n      var instance = this._instance;\n      // The Stateless components cannot be given refs\n      if (instance instanceof _stateless2.default) {\n        return null;\n      }\n      return instance;\n    }\n  }]);\n\n  return CompositeComponent;\n}();\n\nexports.default = CompositeComponent;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/composite.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Stateless Component Class Wrapper\n */\nvar StatelessComponent = function () {\n  function StatelessComponent(pureRender) {\n    _classCallCheck(this, StatelessComponent);\n\n    // A stateless function\n    this.pureRender = pureRender;\n  }\n\n  _createClass(StatelessComponent, [{\n    key: 'render',\n    value: function render() {\n      if (process.env.NODE_ENV !== 'production') {\n        _host2.default.measurer && _host2.default.measurer.beforeRender();\n      }\n\n      return this.pureRender(this.props, this.context);\n    }\n  }]);\n\n  return StatelessComponent;\n}();\n\nexports.default = StatelessComponent;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/stateless.js","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nfunction enqueueCallback(internal, callback) {\n  if (callback) {\n    var callbackQueue = internal._pendingCallbacks || (internal._pendingCallbacks = []);\n    callbackQueue.push(callback);\n  }\n}\n\nfunction enqueueState(internal, partialState) {\n  if (partialState) {\n    var stateQueue = internal._pendingStateQueue || (internal._pendingStateQueue = []);\n    stateQueue.push(partialState);\n  }\n}\n\nvar Updater = {\n  setState: function setState(component, partialState, callback) {\n    var internal = component._internal;\n\n    if (!internal) {\n      return;\n    }\n\n    enqueueState(internal, partialState);\n    enqueueCallback(internal, callback);\n\n    if (!internal._pendingState) {\n      this.runUpdate(component);\n    }\n  },\n\n  forceUpdate: function forceUpdate(component, callback) {\n    var internal = component._internal;\n\n    if (!internal) {\n      return;\n    }\n\n    internal._pendingForceUpdate = true;\n\n    enqueueCallback(internal, callback);\n    this.runUpdate(component);\n  },\n\n  runUpdate: function runUpdate(component) {\n    var internal = component._internal;\n\n    if (!internal || !internal._renderedComponent) {\n      return;\n    }\n\n    // If updateComponent happens to enqueue any new updates, we\n    // shouldn't execute the callbacks until the next render happens, so\n    // stash the callbacks first\n    var callbacks = internal._pendingCallbacks;\n    internal._pendingCallbacks = null;\n\n    var prevElement = internal._currentElement;\n    var prevUnmaskedContext = internal._context;\n\n    if (internal._pendingStateQueue || internal._pendingForceUpdate) {\n      internal.updateComponent(prevElement, prevElement, prevUnmaskedContext, prevUnmaskedContext);\n    }\n\n    this.runCallbacks(callbacks, component);\n  },\n\n  runCallbacks: function runCallbacks(callbacks, context) {\n    if (callbacks) {\n      for (var i = 0; i < callbacks.length; i++) {\n        callbacks[i].call(context);\n      }\n    }\n  }\n};\n\nexports.default = Updater;\nmodule.exports = exports[\"default\"];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/updater.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n  // SameValue algorithm\n  if (x === y) {\n    // Steps 1-5, 7-10\n    // Steps 6.b-6.e: +0 != -0\n    return x !== 0 || 1 / x === 1 / y;\n  } else {\n    // Step 6.a: NaN == NaN\n    return x !== x && y !== y;\n  }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n  if (is(objA, objB)) {\n    return true;\n  }\n\n  if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _typeof(objB)) !== 'object' || objB === null) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  }\n\n  // Test for A's keys different from B.\n  for (var i = 0; i < keysA.length; i++) {\n    if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nexports.default = shallowEqual;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/shallowEqual.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _native = require('./native');\n\nvar _native2 = _interopRequireDefault(_native);\n\nvar _instance = require('./instance');\n\nvar _instance2 = _interopRequireDefault(_instance);\n\nvar _instantiateComponent = require('./instantiateComponent');\n\nvar _instantiateComponent2 = _interopRequireDefault(_instantiateComponent);\n\nvar _getElementKeyName = require('./getElementKeyName');\n\nvar _getElementKeyName2 = _interopRequireDefault(_getElementKeyName);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Fragment Component\n */\nvar FragmentComponent = function (_NativeComponent) {\n  _inherits(FragmentComponent, _NativeComponent);\n\n  function FragmentComponent(element) {\n    _classCallCheck(this, FragmentComponent);\n\n    return _possibleConstructorReturn(this, (FragmentComponent.__proto__ || Object.getPrototypeOf(FragmentComponent)).call(this, element));\n  }\n\n  _createClass(FragmentComponent, [{\n    key: 'mountComponent',\n    value: function mountComponent(parent, parentInstance, context, childMounter) {\n      // Parent native element\n      this._parent = parent;\n      this._parentInstance = parentInstance;\n      this._context = context;\n      this._mountID = _host2.default.mountID++;\n\n      var instance = {\n        _internal: this\n      };\n      this._instance = instance;\n\n      var fragment = this.getNativeNode();\n      var children = this._currentElement;\n\n      // Process children\n      this.mountChildren(children, context);\n\n      if (childMounter) {\n        childMounter(fragment, parent);\n      } else {\n        var isFragmentParent = Array.isArray(parent);\n        for (var i = 0; i < fragment.length; i++) {\n          var child = fragment[i];\n          // When the parent is also a fragment\n          if (isFragmentParent) {\n            parent.push(child);\n          } else {\n            _host2.default.driver.appendChild(child, parent);\n          }\n        }\n      }\n\n      return instance;\n    }\n  }, {\n    key: 'mountChildren',\n    value: function mountChildren(children, context) {\n      var _this2 = this;\n\n      var renderedChildren = this._renderedChildren = {};\n      var fragment = this.getNativeNode();\n\n      var renderedChildrenImage = children.map(function (element, index) {\n        var renderedChild = (0, _instantiateComponent2.default)(element);\n        var name = (0, _getElementKeyName2.default)(renderedChildren, element, index);\n        renderedChildren[name] = renderedChild;\n        renderedChild._mountIndex = index;\n        // Mount\n        var mountImage = renderedChild.mountComponent(_this2._parent, _this2._instance, context, function (nativeNode) {\n          if (Array.isArray(nativeNode)) {\n            for (var i = 0; i < nativeNode.length; i++) {\n              fragment.push(nativeNode[i]);\n            }\n          } else {\n            fragment.push(nativeNode);\n          }\n        });\n        return mountImage;\n      });\n\n      return renderedChildrenImage;\n    }\n  }, {\n    key: 'unmountComponent',\n    value: function unmountComponent(notRemoveChild) {\n      if (this._nativeNode) {\n        _instance2.default.remove(this._nativeNode);\n        if (!notRemoveChild) {\n          for (var i = 0; i < this._nativeNode.length; i++) {\n            _host2.default.driver.removeChild(this._nativeNode[i]);\n          }\n        }\n      }\n\n      // Do not need remove child when their parent is removed\n      this.unmountChildren(true);\n\n      this._currentElement = null;\n      this._nativeNode = null;\n      this._parent = null;\n      this._parentInstance = null;\n      this._context = null;\n      this._instance = null;\n    }\n  }, {\n    key: 'updateComponent',\n    value: function updateComponent(prevElement, nextElement, prevContext, nextContext) {\n      // Replace current element\n      this._currentElement = nextElement;\n      this.updateChildren(this._currentElement, nextContext);\n    }\n  }, {\n    key: 'getNativeNode',\n    value: function getNativeNode() {\n      if (this._nativeNode == null) {\n        this._nativeNode = [];\n      }\n\n      return this._nativeNode;\n    }\n  }, {\n    key: 'getPublicInstance',\n    value: function getPublicInstance() {\n      return this.getNativeNode();\n    }\n  }, {\n    key: 'getName',\n    value: function getName() {\n      return 'fragment';\n    }\n  }]);\n\n  return FragmentComponent;\n}(_native2.default);\n\nexports.default = FragmentComponent;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/vdom/fragment.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; /**\n                                                                                                                                                                                                                                                                               * Weex driver\n                                                                                                                                                                                                                                                                               */\n\n\nvar _styleUnit = require('style-unit');\n\nvar _elements = require('./elements');\n\nvar _elements2 = _interopRequireDefault(_elements);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar STYLE = 'style';\nvar ID = 'id';\nvar TEXT = 'text';\nvar CHILDREN = 'children';\nvar EVENT_PREFIX_REGEXP = /^on[A-Z]/;\nvar ARIA_PREFIX_REGEXP = /^aria-/;\n\nvar nodeMaps = {};\n/* global __weex_document__ */\nvar document = (typeof __weex_document__ === 'undefined' ? 'undefined' : _typeof(__weex_document__)) === 'object' ? __weex_document__ : (typeof document === 'undefined' ? 'undefined' : _typeof(document)) === 'object' ? document : null;\n\nvar Driver = {\n  deviceWidth: 750,\n  viewportWidth: 750,\n\n  getDeviceWidth: function getDeviceWidth() {\n    return this.deviceWidth;\n  },\n  setDeviceWidth: function setDeviceWidth(width) {\n    this.deviceWidth = width;\n  },\n  getViewportWidth: function getViewportWidth() {\n    return this.viewportWidth;\n  },\n  setViewportWidth: function setViewportWidth(width) {\n    this.viewportWidth = width;\n  },\n  getElementById: function getElementById(id) {\n    return nodeMaps[id];\n  },\n  createBody: function createBody() {\n    if (document.body) {\n      return document.body;\n    }\n\n    var documentElement = document.documentElement;\n    var body = document.createBody();\n    documentElement.appendChild(body);\n\n    return body;\n  },\n  createComment: function createComment(content) {\n    return document.createComment(content);\n  },\n  createEmpty: function createEmpty() {\n    return this.createComment(' empty ');\n  },\n  createText: function createText(text) {\n    return Driver.createElement({\n      type: TEXT,\n      props: {\n        value: text\n      }\n    });\n  },\n  updateText: function updateText(node, content) {\n    this.setAttribute(node, 'value', content);\n  },\n  createElement: function createElement(component) {\n    var htmlElement = _elements2.default[component.type];\n    if (htmlElement) {\n      component = htmlElement.parse(component);\n    }\n\n    var props = component.props;\n    var events = [];\n    var style = {};\n    var originStyle = props[STYLE];\n    for (var prop in originStyle) {\n      style[prop] = (0, _styleUnit.convertUnit)(originStyle[prop], prop);\n    }\n\n    var node = document.createElement(component.type, {\n      style: style\n    });\n\n    this.setNativeProps(node, props, true);\n\n    return node;\n  },\n  appendChild: function appendChild(node, parent) {\n    return parent.appendChild(node);\n  },\n  removeChild: function removeChild(node, parent) {\n    parent = parent || node.parentNode;\n    var id = node.attr && node.attr[ID];\n    if (id != null) {\n      nodeMaps[id] = null;\n    }\n    return parent.removeChild(node);\n  },\n  replaceChild: function replaceChild(newChild, oldChild, parent) {\n    parent = parent || oldChild.parentNode;\n    var previousSibling = oldChild.previousSibling;\n    var nextSibling = oldChild.nextSibling;\n    this.removeChild(oldChild, parent);\n\n    if (previousSibling) {\n      this.insertAfter(newChild, previousSibling, parent);\n    } else if (nextSibling) {\n      this.insertBefore(newChild, nextSibling, parent);\n    } else {\n      this.appendChild(newChild, parent);\n    }\n  },\n  insertAfter: function insertAfter(node, after, parent) {\n    parent = parent || after.parentNode;\n    return parent.insertAfter(node, after);\n  },\n  insertBefore: function insertBefore(node, before, parent) {\n    parent = parent || before.parentNode;\n    return parent.insertBefore(node, before);\n  },\n  addEventListener: function addEventListener(node, eventName, eventHandler) {\n    return node.addEvent(eventName, eventHandler);\n  },\n  removeEventListener: function removeEventListener(node, eventName, eventHandler) {\n    return node.removeEvent(eventName, eventHandler);\n  },\n  removeAllEventListeners: function removeAllEventListeners(node) {\n    // Noop\n  },\n  removeAttribute: function removeAttribute(node, propKey, propValue) {\n    if (propKey == ID) {\n      nodeMaps[propValue] = null;\n    }\n    // Weex native will crash when pass null value\n    return node.setAttr(propKey, undefined, false);\n  },\n  setAttribute: function setAttribute(node, propKey, propValue) {\n    if (propKey == ID) {\n      nodeMaps[propValue] = node;\n    }\n\n    // Weex only support `ariaLabel` format, convert `aria-label` format to camelcase\n    if (ARIA_PREFIX_REGEXP.test(propKey)) {\n      propKey = propKey.replace(/\\-(\\w)/, function (m, p1) {\n        return p1.toUpperCase();\n      });\n    }\n\n    return node.setAttr(propKey, propValue, false);\n  },\n  setStyles: function setStyles(node, styles) {\n    // TODO if more then one style update, call setStyles will be better performance\n    for (var key in styles) {\n      var val = styles[key];\n      val = (0, _styleUnit.convertUnit)(val, key);\n      node.setStyle(key, val);\n    }\n  },\n  beforeRender: function beforeRender() {\n    // Turn off batched updates\n    document.open();\n\n    // Init rem unit\n    (0, _styleUnit.setRem)(this.getDeviceWidth() / this.getViewportWidth());\n  },\n  afterRender: function afterRender() {\n    if (document.listener && document.listener.createFinish) {\n      document.listener.createFinish();\n    }\n\n    // Turn on batched updates\n    document.close();\n  },\n  setNativeProps: function setNativeProps(node, props, skipSetStyles) {\n    for (var prop in props) {\n      var value = props[prop];\n      if (prop === CHILDREN) {\n        continue;\n      }\n\n      if (value != null) {\n        if (prop === STYLE) {\n          if (skipSetStyles) {\n            continue;\n          }\n          this.setStyles(node, value);\n        } else if (EVENT_PREFIX_REGEXP.test(prop)) {\n          var eventName = prop.slice(2).toLowerCase();\n          this.addEventListener(node, eventName, value);\n        } else {\n          this.setAttribute(node, prop, value);\n        }\n      }\n    }\n  }\n};\n\nexports.default = Driver;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/driver-weex/lib/index.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _img = require('./img');\n\nvar _img2 = _interopRequireDefault(_img);\n\nvar _video = require('./video');\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _textarea = require('./textarea');\n\nvar _textarea2 = _interopRequireDefault(_textarea);\n\nvar _span = require('./span');\n\nvar _span2 = _interopRequireDefault(_span);\n\nvar _p = require('./p');\n\nvar _p2 = _interopRequireDefault(_p);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _heading = require('./heading');\n\nvar _heading2 = _interopRequireDefault(_heading);\n\nvar _block = require('./block');\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  span: _span2.default,\n  p: _p2.default,\n  img: _img2.default,\n  button: _button2.default,\n  video: _video2.default,\n  textarea: _textarea2.default,\n  h1: _heading2.default,\n  h2: _heading2.default,\n  h3: _heading2.default,\n  h4: _heading2.default,\n  h5: _heading2.default,\n  h6: _heading2.default,\n  nav: _block2.default,\n  article: _block2.default,\n  section: _block2.default,\n  // Conflict with weex header tag\n  // header: block,\n  footer: _block2.default,\n  aside: _block2.default,\n  main: _block2.default\n};\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/driver-weex/lib/elements/index.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _parseProps = require('../parseProps');\n\nexports.default = {\n\n  /**\n   * parse w3c attrs to weex module attrs\n   *\n   * @param {Object} w3c component data\n   * @return {Object} weex component data\n   */\n  parse: function parse(component) {\n    var props = component.props;\n\n    component.type = 'image';\n\n    // modify props\n    component.props = (0, _parseProps.transformPropsAttrsToStyle)(props, ['width', 'height']);\n\n    return component;\n  }\n};\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/driver-weex/lib/elements/img.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _parseProps = require('../parseProps');\n\nexports.default = {\n\n  /**\n   * parse w3c attrs to weex module attrs\n   *\n   * @param {Object} w3c component data\n   * @return {Object} weex component data\n   */\n  parse: function parse(component) {\n    var props = component.props;\n\n    // modify props\n\n    component.props = (0, _parseProps.transformPropsAttrsToStyle)(props, ['width', 'height']);\n\n    return component;\n  }\n};\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/driver-weex/lib/elements/video.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = {\n\n  /**\n   * parse w3c attrs to weex module attrs\n   *\n   * @param {Object} w3c component data\n   * @return {Object} weex component data\n   */\n  parse: function parse(component) {\n    var props = component.props;\n\n\n    if (typeof props.children === 'string' && !props.value) {\n      props.value = props.children;\n      props.children = null;\n    }\n\n    return component;\n  }\n};\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/driver-weex/lib/elements/textarea.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = {\n  parse: function parse(component) {\n    var props = component.props;\n\n    component.type = 'text';\n\n    if (typeof props.children === 'string' && !props.value) {\n      props.value = props.children;\n      props.children = null;\n    }\n\n    return component;\n  }\n};\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/driver-weex/lib/elements/span.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar BASE_FONT_SIZE = 28;\n\nvar defaultParagraphStyle = {\n  fontSize: BASE_FONT_SIZE,\n  marginTop: BASE_FONT_SIZE,\n  marginBottom: BASE_FONT_SIZE\n};\n\nvar TypographyElements = {\n  u: {\n    textDecoration: 'underline'\n  },\n  s: {\n    textDecoration: 'line-through'\n  },\n  i: {\n    fontStyle: 'italic'\n  },\n  b: {\n    fontWeight: 'bold'\n  },\n  del: {\n    textDecoration: 'line-through'\n  },\n  em: {\n    fontStyle: 'italic'\n  },\n  strong: {\n    fontWeight: 'bold'\n  },\n  big: {\n    fontSize: BASE_FONT_SIZE * 1.2\n  },\n  small: {\n    fontSize: BASE_FONT_SIZE * 0.8\n  }\n};\n\nfunction transformString(string) {\n  return {\n    type: 'span',\n    attr: {\n      value: string\n    }\n  };\n}\n\nfunction transformChild(child) {\n  var type = child.type;\n  var props = child.props;\n  var style = props.style;\n  var nestedChildren = props.children;\n  // Alias img tag\n  if (type === 'img') {\n    type = 'image';\n  }\n\n  // Transfrom to span\n  if (TypographyElements[type]) {\n    style = _extends({}, TypographyElements[type], style);\n    type = 'span';\n  }\n\n  props.style = null;\n  props.children = null;\n\n  var element = {\n    type: type,\n    style: style,\n    attr: props || {}\n  };\n\n  if (nestedChildren) {\n    if (type === 'span' && typeof nestedChildren === 'string') {\n      element.attr.value = nestedChildren;\n    } else {\n      element.children = transformChildren(nestedChildren);\n    }\n  }\n\n  return element;\n}\n\nfunction transformChildren(children) {\n  var elements = [];\n  if (!Array.isArray(children)) {\n    children = [children];\n  }\n\n  for (var i = 0; i < children.length; i++) {\n    var child = children[i];\n    if (typeof child === 'string') {\n      elements.push(transformString(child));\n    } else if ((typeof child === 'undefined' ? 'undefined' : _typeof(child)) === 'object') {\n      elements.push(transformChild(child));\n    }\n  }\n\n  return elements;\n}\n\nexports.default = {\n  parse: function parse(component) {\n    var props = component.props;\n\n    var children = props.children;\n\n    component.type = 'richtext';\n\n    props.style = _extends({}, defaultParagraphStyle, props.style);\n\n    props.value = transformChildren(children);;\n    props.children = null;\n\n    return component;\n  }\n};\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/driver-weex/lib/elements/p.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n/**\n * weex button\n *\n * props: disabled, style\n */\n\nexports.default = {\n  parse: function parse(component) {\n    var props = component.props;\n\n    component.type = 'text';\n\n    var style = props.style,\n        disabled = props.disabled,\n        children = props.children;\n\n\n    var textStyle = _extends({\n      textAlign: 'center',\n      fontSize: 22,\n      paddingTop: 4,\n      paddingRight: 12,\n      paddingBottom: 6,\n      paddingLeft: 12,\n      borderWidth: 4,\n      borderStyle: 'solid',\n      borderColor: '#000000',\n      backgroudColor: '#c0c0c0'\n    }, style);\n\n    if (disabled) {\n      props.onClick = null;\n      textStyle = _extends({}, textStyle, {\n        color: '#7f7f7f',\n        borderColor: '#7f7f7f'\n      });\n    }\n\n    if (typeof children === 'string') {\n      props.value = children;\n      props.children = null;\n    }\n\n    return component;\n  }\n};\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/driver-weex/lib/elements/button.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar BASE_FONT_SIZE = 28;\n\nfunction generateHeadingStyle(baseFontSize, fontMultiplier, marginMultiplier) {\n  return {\n    fontSize: baseFontSize * fontMultiplier,\n    marginTop: baseFontSize * fontMultiplier * marginMultiplier,\n    marginBottom: baseFontSize * fontMultiplier * marginMultiplier,\n    fontWeight: 'bold'\n  };\n}\n\nvar HeadingElements = {\n  h1: generateHeadingStyle(BASE_FONT_SIZE, 2, 0.67),\n  h2: generateHeadingStyle(BASE_FONT_SIZE, 1.5, 0.83),\n  h3: generateHeadingStyle(BASE_FONT_SIZE, 1.17, 1),\n  h4: generateHeadingStyle(BASE_FONT_SIZE, 1, 1.33),\n  h5: generateHeadingStyle(BASE_FONT_SIZE, 0.83, 1.67),\n  h6: generateHeadingStyle(BASE_FONT_SIZE, 0.67, 2.33)\n};\n\nexports.default = {\n  parse: function parse(component) {\n    var type = component.type,\n        props = component.props;\n\n\n    component.type = 'text';\n    props.style = _extends({}, HeadingElements[type] || HeadingElements.h6, props.style);\n\n    if (typeof props.children === 'string' && !props.value) {\n      props.value = props.children;\n      props.children = null;\n    }\n\n    return component;\n  }\n};\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/driver-weex/lib/elements/heading.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = {\n\n  /**\n   * parse w3c attrs to weex module attrs\n   *\n   * @param {Object} w3c component data\n   * @return {Object} weex component data\n   */\n  parse: function parse(component) {\n    component.type = 'div';\n    return component;\n  }\n};\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/driver-weex/lib/elements/block.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _styleUnit = require('style-unit');\n\nvar _flexbox = require('./flexbox');\n\nvar _flexbox2 = _interopRequireDefault(_flexbox);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Web Browser driver\n **/\n\n/* global DEVICE_WIDTH, VIEWPORT_WIDTH */\n\nvar DANGEROUSLY_SET_INNER_HTML = 'dangerouslySetInnerHTML';\nvar CLASS_NAME = 'className';\nvar CLASS = 'class';\nvar STYLE = 'style';\nvar CHILDREN = 'children';\nvar EVENT_PREFIX_REGEXP = /on[A-Z]/;\n\nvar Driver = {\n\n  deviceWidth: typeof DEVICE_WIDTH !== 'undefined' && DEVICE_WIDTH || null,\n  viewportWidth: typeof VIEWPORT_WIDTH !== 'undefined' && VIEWPORT_WIDTH || 750,\n\n  getDeviceWidth: function getDeviceWidth() {\n    return this.deviceWidth || document.documentElement.clientWidth;\n  },\n  setDeviceWidth: function setDeviceWidth(width) {\n    this.deviceWidth = width;\n  },\n  getViewportWidth: function getViewportWidth() {\n    return this.viewportWidth;\n  },\n  setViewportWidth: function setViewportWidth(width) {\n    this.viewportWidth = width;\n  },\n  getElementById: function getElementById(id) {\n    return document.getElementById(id);\n  },\n  createBody: function createBody() {\n    return document.body;\n  },\n  createComment: function createComment(content) {\n    return document.createComment(content);\n  },\n  createEmpty: function createEmpty() {\n    return this.createComment(' empty ');\n  },\n  createText: function createText(text) {\n    return document.createTextNode(text);\n  },\n  updateText: function updateText(node, text) {\n    var textContentAttr = 'textContent' in document ? 'textContent' : 'nodeValue';\n    node[textContentAttr] = text;\n  },\n  createElement: function createElement(component) {\n    var node = document.createElement(component.type);\n    var props = component.props;\n\n    this.setNativeProps(node, props);\n\n    return node;\n  },\n  appendChild: function appendChild(node, parent) {\n    return parent.appendChild(node);\n  },\n  removeChild: function removeChild(node, parent) {\n    parent = parent || node.parentNode;\n    // Maybe has been removed when remove child\n    if (parent) {\n      parent.removeChild(node);\n    }\n  },\n  replaceChild: function replaceChild(newChild, oldChild, parent) {\n    parent = parent || oldChild.parentNode;\n    parent.replaceChild(newChild, oldChild);\n  },\n  insertAfter: function insertAfter(node, after, parent) {\n    parent = parent || after.parentNode;\n    var nextSibling = after.nextSibling;\n    if (nextSibling) {\n      parent.insertBefore(node, nextSibling);\n    } else {\n      parent.appendChild(node);\n    }\n  },\n  insertBefore: function insertBefore(node, before, parent) {\n    parent = parent || before.parentNode;\n    parent.insertBefore(node, before);\n  },\n  addEventListener: function addEventListener(node, eventName, eventHandler) {\n    return node.addEventListener(eventName, eventHandler);\n  },\n  removeEventListener: function removeEventListener(node, eventName, eventHandler) {\n    return node.removeEventListener(eventName, eventHandler);\n  },\n  removeAllEventListeners: function removeAllEventListeners(node) {\n    // noop\n  },\n  removeAttribute: function removeAttribute(node, propKey) {\n    if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n      return node.innerHTML = null;\n    }\n\n    if (propKey === CLASS_NAME) {\n      propKey = CLASS;\n    }\n\n    if (propKey in node) {\n      node[propKey] = null;\n    }\n\n    node.removeAttribute(propKey);\n  },\n  setAttribute: function setAttribute(node, propKey, propValue) {\n    if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n      return node.innerHTML = propValue.__html;\n    }\n\n    if (propKey === CLASS_NAME) {\n      propKey = CLASS;\n    }\n\n    if (propKey in node) {\n      node[propKey] = propValue;\n    } else {\n      node.setAttribute(propKey, propValue);\n    }\n  },\n  setStyles: function setStyles(node, styles) {\n    var tranformedStyles = {};\n\n    for (var prop in styles) {\n      var val = styles[prop];\n      if (_flexbox2.default.isFlexProp(prop)) {\n        _flexbox2.default[prop](val, tranformedStyles);\n      } else {\n        tranformedStyles[prop] = (0, _styleUnit.convertUnit)(val, prop);\n      }\n    }\n\n    for (var _prop in tranformedStyles) {\n      var transformValue = tranformedStyles[_prop];\n      // hack handle compatibility issue\n      if (Array.isArray(transformValue)) {\n        for (var i = 0; i < transformValue.length; i++) {\n          node.style[_prop] = transformValue[i];\n        }\n      } else {\n        node.style[_prop] = transformValue;\n      }\n    }\n  },\n  beforeRender: function beforeRender() {\n    // Init rem unit\n    (0, _styleUnit.setRem)(this.getDeviceWidth() / this.getViewportWidth());\n  },\n  setNativeProps: function setNativeProps(node, props) {\n    for (var prop in props) {\n      var value = props[prop];\n      if (prop === CHILDREN) {\n        continue;\n      }\n\n      if (value != null) {\n        if (prop === STYLE) {\n          this.setStyles(node, value);\n        } else if (EVENT_PREFIX_REGEXP.test(prop)) {\n          var eventName = prop.slice(2).toLowerCase();\n          this.addEventListener(node, eventName, value);\n        } else {\n          this.setAttribute(node, prop, value);\n        }\n      }\n    }\n  }\n};\n\nexports.default = Driver;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/driver-browser/lib/index.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar BOX_ALIGN = {\n  stretch: 'stretch',\n  'flex-start': 'start',\n  'flex-end': 'end',\n  center: 'center'\n};\n\nvar BOX_ORIENT = {\n  row: 'horizontal',\n  column: 'vertical'\n};\n\nvar BOX_PACK = {\n  'flex-start': 'start',\n  'flex-end': 'end',\n  center: 'center',\n  'space-between': 'justify',\n  'space-around': 'justify' // Just same as `space-between`\n};\n\nvar FLEX_PROPS = {\n  display: true,\n  flex: true,\n  alignItems: true,\n  alignSelf: true,\n  flexDirection: true,\n  justifyContent: true,\n  flexWrap: true\n};\n\nvar Flexbox = {\n  isFlexProp: function isFlexProp(prop) {\n    return FLEX_PROPS[prop];\n  },\n  display: function display(value) {\n    var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    if (value === 'flex') {\n      style.display = ['-webkit-box', '-webkit-flex', 'flex'];\n    } else {\n      style.display = value;\n    }\n\n    return style;\n  },\n  flex: function flex(value) {\n    var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    style.webkitBoxFlex = value;\n    style.webkitFlex = value;\n    style.flex = value;\n    return style;\n  },\n  flexWrap: function flexWrap(value) {\n    var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    style.flexWrap = value;\n    return style;\n  },\n  alignItems: function alignItems(value) {\n    var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    style.webkitBoxAlign = BOX_ALIGN[value];\n    style.webkitAlignItems = value;\n    style.alignItems = value;\n    return style;\n  },\n  alignSelf: function alignSelf(value) {\n    var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    style.webkitAlignSelf = value;\n    style.alignSelf = value;\n    return style;\n  },\n  flexDirection: function flexDirection(value) {\n    var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    style.webkitBoxOrient = BOX_ORIENT[value];\n    style.webkitFlexDirection = value;\n    style.flexDirection = value;\n    return style;\n  },\n  justifyContent: function justifyContent(value) {\n    var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    style.webkitBoxPack = BOX_PACK[value];\n    style.webkitJustifyContent = value;\n    style.justifyContent = value;\n    return style;\n  }\n};\n\nexports.default = Flexbox;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/driver-browser/lib/flexbox.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _instance = require('./vdom/instance');\n\nvar _instance2 = _interopRequireDefault(_instance);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction findComponentInstance(node) {\n  if (node == null) {\n    return null;\n  }\n  return _instance2.default.get(node);\n}\n\nexports.default = findComponentInstance;\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/findComponentInstance.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = setNativeProps;\n\nvar _host = require('./vdom/host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _findDOMNode = require('./findDOMNode');\n\nvar _findDOMNode2 = _interopRequireDefault(_findDOMNode);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction setNativeProps(node, props) {\n  node = (0, _findDOMNode2.default)(node);\n  _host2.default.driver.setNativeProps(node, props);\n}\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/setNativeProps.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = '0.4.11';\nmodule.exports = exports['default'];\n\n\n// WEBPACK FOOTER //\n// ./packages/rax/lib/version.js"],"sourceRoot":""}