{"version":3,"sources":["../../plexus/lib/Digraph/index.js","../../plexus/lib/Digraph/HtmlLayersGroup.js","../../plexus/lib/zoom/utils.js","../../plexus/lib/Digraph/MeasurableNodes.js","../../plexus/lib/Digraph/MeasurableNode.js","../../plexus/lib/Digraph/SvgDefEntry.js","../../plexus/lib/Digraph/Nodes.js","../../plexus/lib/Digraph/Node.js","../../plexus/lib/Digraph/props-factories.js","../../plexus/lib/Digraph/SvgEdges.js","../../plexus/lib/Digraph/SvgEdge.js","../../plexus/lib/Digraph/SvgLayersGroup.js","../../plexus/lib/zoom/resetZoomIcon.js","../../plexus/lib/DirectedGraph/index.js","../../plexus/lib/DirectedGraph/DirectedGraph.js","../../plexus/lib/DirectedGraph/builtins/EdgeArrowDef.js","../../plexus/lib/DirectedGraph/builtins/EdgesContainer.js","../../plexus/lib/DirectedGraph/builtins/PureEdges.js","../../plexus/lib/DirectedGraph/builtins/EdgePath.js","../../plexus/lib/DirectedGraph/builtins/PureNodes.js","utils/DraggableManager/index.tsx","../../plexus/lib/DirectedGraph/builtins/Node.js","../../plexus/lib/DirectedGraph/prop-factories/classNameIsSmall.js","../../plexus/lib/DirectedGraph/prop-factories/mergePropSetters.js","../../plexus/lib/DirectedGraph/prop-factories/scaledStrokeWidth.js","../../plexus/lib/LayoutManager/index.js","../../plexus/lib/LayoutManager/LayoutManager.js","../../plexus/lib/LayoutManager/Coordinator.js","../../plexus/lib/LayoutManager/dot/conv-coord.js","../../plexus/lib/LayoutManager/convInputs.js","../../plexus/lib/LayoutManager/layout.worker.bundled.js","utils/DraggableManager/EUpdateTypes.tsx","components/common/ErrorMessage.tsx","utils/prefix-url.tsx","components/App/NotFound.tsx","components/TracePage/url/index.tsx","components/App/TraceIDSearchInput.tsx","components/DependencyGraph/url.tsx","model/ddg/types.tsx","model/ddg/PathElem.tsx","components/DeepDependencies/url.tsx","components/SearchTracePage/url.tsx","components/TraceDiff/url.tsx","components/TraceDiff/getValidState.tsx","constants/index.tsx","constants/default-config.tsx","utils/config/get-config.tsx","utils/config/process-deprecation.tsx","components/App/TopNav.tsx","utils/tracking/conv-raven-to-ga.tsx","utils/tracking/index.tsx","components/App/Page.tsx","components/DependencyGraph/DAG.js","components/DependencyGraph/ForceGraphArrowLink.tsx","components/DependencyGraph/DependencyForceGraph.js","propTypes/dependencies.js","components/common/LoadingIndicator.tsx","api/jaeger.js","actions/jaeger-api.js","selectors/dependencies.js","components/DependencyGraph/index.js","utils/tracking/getTrackFilter.tsx","components/DeepDependencies/index.track.tsx","model/ddg/visibility-codec.tsx","components/DeepDependencies/Header/ChevronDown.tsx","components/DeepDependencies/Header/HopsSelector/Selector.tsx","components/DeepDependencies/Header/HopsSelector/index.tsx","components/common/BreakableText.tsx","components/common/FilteredList/highlightMatches.tsx","components/common/FilteredList/ListItem.tsx","components/common/FilteredList/index.tsx","components/DeepDependencies/Header/NameSelector.tsx","components/DeepDependencies/Header/LayoutSettings/settingsIcon.tsx","components/DeepDependencies/Header/LayoutSettings/index.tsx","utils/update-ui-find.tsx","components/common/UiFindInput.tsx","components/DeepDependencies/Header/index.tsx","components/DeepDependencies/Graph/DdgNodeContent/calc-positioning.tsx","components/DeepDependencies/Graph/DdgNodeContent/constants.tsx","components/DeepDependencies/Graph/DdgNodeContent/node-icons.tsx","components/common/NewWindowIcon.tsx","components/DeepDependencies/Graph/DdgNodeContent/index.tsx","components/DeepDependencies/Graph/getNodeRenderers.tsx","model/ddg/GraphModel/getEdgeId.tsx","model/ddg/GraphModel/getDerivedViewModifiers.tsx","model/ddg/GraphModel/getPathElemHasher.tsx","model/ddg/GraphModel/index.tsx","components/DeepDependencies/Graph/getSetOnEdge.tsx","components/DeepDependencies/Graph/index.tsx","utils/generate-action-types.tsx","actions/ddg.tsx","model/ddg/getStateEntryKey.tsx","components/DeepDependencies/index.tsx","constants/search-form.tsx","components/SearchTracePage/SearchForm.track.tsx","components/common/VirtSelect.tsx","utils/date.tsx","utils/number.tsx","utils/redux-form-field-adapter.tsx","components/SearchTracePage/SearchForm.js","components/SearchTracePage/SearchForm.markers.js","components/SearchTracePage/SearchResults/index.track.tsx","components/SearchTracePage/SearchResults/AltViewOptions.tsx","components/common/TraceName.tsx","components/SearchTracePage/SearchResults/ResultItemTitle.tsx","components/SearchTracePage/SearchResults/DiffSelection.tsx","utils/color-generator.tsx","components/SearchTracePage/SearchResults/ResultItem.tsx","components/SearchTracePage/SearchResults/ResultItem.markers.js","components/SearchTracePage/SearchResults/ScatterPlot.js","model/ddg/transformDdgData.tsx","utils/span-ancestor-ids.tsx","model/ddg/transformTracesToPaths.tsx","components/DeepDependencies/traces.tsx","model/order-by.js","utils/embedded-url.tsx","components/SearchTracePage/SearchResults/index.js","components/SearchTracePage/SearchResults/index.markers.js","actions/file-reader-api.tsx","utils/readJsonFile.tsx","utils/guardReducer.tsx","components/TraceDiff/duck.tsx","model/search.tsx","components/SearchTracePage/FileLoader.tsx","components/SearchTracePage/index.js","components/common/EmphasizedNode.tsx","components/common/CopyIcon.tsx","components/TraceDiff/TraceDiffGraph/renderNode.tsx","model/trace-dag/convPlexus.tsx","model/trace-dag/DagNode.tsx","constants/tag-keys.tsx","model/trace-dag/denseTransforms.tsx","model/trace-dag/DenseTrace.tsx","model/trace-dag/TraceDag.tsx","utils/filter-spans.tsx","components/TraceDiff/TraceDiffGraph/traceDiffGraphUtils.tsx","components/TraceDiff/TraceDiffGraph/TraceDiffGraph.tsx","components/TraceDiff/TraceDiffHeader/TraceTimelineLink.tsx","components/common/RelativeDate.tsx","components/TraceDiff/TraceDiffHeader/CohortTable.tsx","components/TraceDiff/TraceDiffHeader/TraceHeader.tsx","components/TraceDiff/TraceDiffHeader/TraceIdInput.tsx","components/TraceDiff/TraceDiffHeader/TraceDiffHeader.tsx","components/TraceDiff/TraceDiff.tsx","components/TracePage/ArchiveNotifier/index.tsx","utils/ts/pluckTruthy.tsx","components/TracePage/ArchiveNotifier/duck.tsx","components/TracePage/index.track.tsx","components/TracePage/keyboard-shortcuts.tsx","components/TracePage/keyboard-mappings.tsx","components/TracePage/scroll-page.tsx","components/TracePage/Tween.tsx","components/TracePage/ScrollManager.tsx","components/TracePage/TraceGraph/calculateTraceDagEV.tsx","components/TracePage/TraceGraph/OpNode.tsx","components/TracePage/TraceGraph/TraceGraph.tsx","utils/tracking/common.tsx","components/TracePage/TracePageHeader/TracePageHeader.track.tsx","components/TracePage/TracePageHeader/AltViewOptions.tsx","components/TracePage/TracePageHeader/KeyboardShortcutsHelp.track.tsx","components/TracePage/TracePageHeader/KeyboardShortcutsHelp.tsx","components/TracePage/TracePageHeader/SpanGraph/render-into-canvas.tsx","components/TracePage/TracePageHeader/SpanGraph/CanvasSpanGraph.tsx","components/TracePage/TracePageHeader/SpanGraph/TickLabels.tsx","components/TracePage/TracePageHeader/SpanGraph/GraphTicks.tsx","components/TracePage/TracePageHeader/SpanGraph/Scrubber.tsx","components/TracePage/TracePageHeader/SpanGraph/ViewingLayer.tsx","components/TracePage/TracePageHeader/SpanGraph/index.tsx","components/TracePage/TracePageHeader/TracePageSearchBar.markers.tsx","components/TracePage/TracePageHeader/TracePageSearchBar.tsx","components/common/LabeledList.tsx","model/trace-viewer.tsx","model/span.tsx","model/link-patterns.tsx","components/common/ExternalLinks.tsx","components/TracePage/TracePageHeader/TracePageHeader.tsx","components/TracePage/TraceTimelineViewer/SpanDetail/DetailState.tsx","components/TracePage/TraceTimelineViewer/duck.tsx","components/TracePage/TraceTimelineViewer/TimelineHeaderRow/TimelineCollapser.tsx","components/TracePage/TraceTimelineViewer/TimelineHeaderRow/TimelineColumnResizer.tsx","components/TracePage/TraceTimelineViewer/TimelineHeaderRow/TimelineViewingLayer.tsx","components/TracePage/TraceTimelineViewer/utils.tsx","components/TracePage/TraceTimelineViewer/Ticks.tsx","components/TracePage/TraceTimelineViewer/TimelineRow.tsx","components/TracePage/TraceTimelineViewer/TimelineHeaderRow/TimelineHeaderRow.tsx","components/TracePage/TraceTimelineViewer/ListView/Positions.tsx","components/TracePage/TraceTimelineViewer/ListView/index.tsx","components/TracePage/url/ReferenceLink.tsx","components/TracePage/TraceTimelineViewer/ReferencesButton.tsx","components/TracePage/TraceTimelineViewer/SpanTreeOffset.tsx","components/TracePage/TraceTimelineViewer/SpanDetail/AccordianKeyValues.markers.tsx","components/TracePage/TraceTimelineViewer/SpanDetail/KeyValuesTable.tsx","components/TracePage/TraceTimelineViewer/SpanDetail/AccordianKeyValues.tsx","components/TracePage/TraceTimelineViewer/SpanDetail/AccordianLogs.tsx","components/TracePage/TraceTimelineViewer/SpanBar.tsx","components/TracePage/TraceTimelineViewer/SpanBarRow.tsx","components/TracePage/TraceTimelineViewer/SpanDetail/TextList.tsx","components/TracePage/TraceTimelineViewer/SpanDetail/AccordianText.tsx","components/TracePage/TraceTimelineViewer/SpanDetail/AccordianReferences.tsx","components/TracePage/TraceTimelineViewer/SpanDetail/index.tsx","components/TracePage/TraceTimelineViewer/SpanDetailRow.tsx","components/TracePage/TraceTimelineViewer/VirtualizedTraceView.tsx","components/TracePage/TraceTimelineViewer/index.tsx","components/TracePage/index.tsx","reducers/dependencies.js","reducers/ddg.tsx","utils/sort.js","reducers/services.js","selectors/process.js","selectors/span.js","utils/TreeNode.js","selectors/trace.js","model/transform-trace-data.tsx","reducers/trace.js","reducers/index.js","reducers/config.js","reducers/embedded.tsx","components/TracePage/TraceTimelineViewer/duck.track.tsx","middlewares/track.tsx","middlewares/index.js","utils/config/process-scripts.tsx","components/App/index.js","utils/configure-store.js","index.js","../../plexus/lib/Digraph/types.js","../../plexus/lib/zoom/ZoomManager.js","../../plexus/lib/Digraph/SvgLayer.js","../../plexus/lib/Digraph/HtmlLayer.js","../../plexus/lib/Digraph/NodesLayer.js","site-prefix.tsx","../../plexus/lib/cacheAs.js","../../plexus/lib/Digraph/MeasurableNodesLayer.js","../../plexus/lib/Digraph/SvgEdgesLayer.js","../../plexus/lib/zoom/MiniMap.js","../../plexus/lib/LayoutManager/types.js","utils/DraggableManager/DraggableManager.tsx","img/jaeger-logo.svg","../../plexus/lib/index.js","../../plexus/lib/Digraph/utils.js"],"names":["_classCallCheck","__webpack_require__","_createClass","_possibleConstructorReturn","_getPrototypeOf","_inherits","Object","defineProperty","exports","value","default","React","_interopRequireWildcard","_memoizeOne","_interopRequireDefault","_HtmlLayersGroup","_MeasurableNodesLayer","_NodesLayer","_propsFactories","_SvgEdgesLayer","_SvgLayersGroup","_types","_utils","_MiniMap","_ZoomManager","obj","__esModule","newObj","key","prototype","hasOwnProperty","call","desc","getOwnPropertyDescriptor","get","set","_objectSpread","target","i","arguments","length","source","ownKeys","keys","getOwnPropertySymbols","concat","filter","sym","enumerable","forEach","_defineProperty","configurable","writable","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","WRAPPER_STYLE_ZOOM","height","overflow","position","width","WRAPPER_STYLE","idCounter","Digraph","_React$PureComponent","props","_this","this","renderUtils","state","edges","layoutEdges","layoutGraph","layoutPhase","ELayoutPhase","NoData","layoutVertices","sizeVertices","vertices","zoomTransform","zoomIdentity","baseId","makeClassNameFactory","classNamePrefix","name","rootRef","createRef","zoomManager","getGlobalId","getZoomTransform","setSizeVertices","senderKey","_this$props","layoutManager","expectedKey","measurableNodesKey","values","JSON","stringify","Error","setState","getLayout","layout","then","onLayoutDone","CalcPositions","onZoomUpdated","result","isCancelled","graph","Done","setContentSize","_edges","zoomEnabled","zoom","Array","isArray","CalcSizes","current","setElement","_this2","_this$props2","topLayers","layers","getClassName","_this$state","graphState","map","layer","layerType","setOnContainer","ELayerType","Html","createElement","Svg","defs","markerEndId","markerStartId","setOnEdge","standalone","measurable","measureNode","_renderNode","renderNode","setOnNode","undefined","_this$props3","className","minimapEnabled","minimap","minimapClassName","setOnGraph","style","builtinStyle","rootProps","assignMergeCss","getProps","ref","renderLayers","assign","PureComponent","propsFactories","classNameIsSmall","scaleOpacity","scaleProperty","opacity","scaleStrokeOpacity","strokeOpacity","scaleStrokeOpacityStrong","strokeOpacityStrong","scaleStrokeOpacityStrongest","strokeOpacityStrongest","defaultProps","_HtmlLayer","HtmlLayersGroup","apply","_setOnNode","topLayer","classNamePart","getScaleExtent","viewWidth","viewHeight","getFittedScale","SCALE_MAX","fitWithinContainer","scale","x","y","_d3Zoom","translate","constrainZoom","transform","tk","k","tx","ty","fittedScale","Math","max","boundValue","getZoomStyle","DEFAULT_ZOOM_STYLE","toFixed","transformOrigin","getZoomAttr","DEFAULT_SCALE_EXTENT","SCALE_MIN","SCALE_MARGIN","freeze","min","_MeasurableNode","MeasurableNodes","_React$Component","np","p","nodeRefs","isSamePropSetter","vertex","hidden","layoutVertex","Component","SVG_HIDDEN_STYLE","visibility","MeasurableNode","htmlRef","svgRef","offsetHeight","offsetWidth","_current$getBBox","getBBox","_ref","_ref$height","_ref$left","left","_ref$top","top","_ref$width","boxSizing","_ref2","_ref2$left","_ref2$top","htmlWrapper","svgWrapper","measureHtml","measureSvg","renderHtml","renderSvg","getMarkerScale","getValueScaler","factorMax","factorMin","valueMax","valueMin","renderDefaultMarker","entryProps","id","markerHeight","markerUnits","markerWidth","orient","refX","refY","d","SvgDefEntry","localId","_this$props$renderEnt","renderEntry","setOnEntry","_Node","Nodes","lv","getHtmlStyle","Node","nodeContent","Wrapper","SCALE_THRESHOLD_SMALL","_ref$k","MAX","MIN","EXP_ADJUSTER","property","expAdjuster","defaultStyle","fnName","valueScaler","_SvgEdge","SvgEdges","edge","from","to","layoutEdge","makeIriRef","PATH_D_CMDS","makePathD","points","dArr","cmdLen","pt","push","join","SvgEdge","pathPoints","markerEnd","markerStart","customProps","fill","vectorEffect","_SvgLayer","SvgLayersGroup","_default","preserveAspectRatio","viewBox","_EdgeArrowDef","_EdgesContainer","_PureEdges","_PureNodes","_classNameIsSmall","_mergePropSetters","_scaledStrokeWidth","PHASE_NO_DATA","PHASE_CALC_SIZES","PHASE_CALC_EDGES","PHASE_DONE","createHtmlRefs","rv","DirectedGraph","arrowId","arrowIriRef","rootSelection","vertexRefs","_onPositionsDone","_onLayoutDone","root","_onZoomUpdated","idBase","getId","getIriRef","nextProps","prevState","stEdges","stVertices","_setSizeVertices","_layoutManager$getLay","positions","getNodeLabel","String","setOnEdgePath","arrowScaleDampener","setOnEdgesContainer","setOnNodesContainer","setOnRoot","_this$state2","phase","haveEdges","nodesContainerProps","edgesContainerProps","minHeight","minWidth","scaleDampener","zoomScale","_renderEdges","_renderVertices","mergePropSetters","scaledStrokeWidth","EdgeArrowDef","_this$props$zoomScale","children","rest","xmlns","_EdgePath","PureEdges","D_CMDS","EdgePath","stroke","PureNodes","v","labelFactory","_renderLayoutVertices","_EUpdateTypes__WEBPACK_IMPORTED_MODULE_1__","__webpack_exports__","_DraggableManager__WEBPACK_IMPORTED_MODULE_2__","forwardedRef","forwardRef","reduce","a","b","bClassName","bStyle","bRest","_len","objs","_key","_len2","fns","_key2","input","propsList","lastK","lastProps","THRESHOLD_MIN","PROPS_MIN","THRESHOLD_MAX","PROPS_MAX","strokeWidth","STROKE_MIN","STROKE_SPREAD","THRESHOLD_SPREAD","cache","Number","MIN_VALUE","_Coordinator","LayoutManager","options","layoutId","coordinator","pendingResult","_handleUpdate","data","type","ECoordinatorPhase","Positions","isPositionsResolved","resolvePositions","console","warn","resolveLayout","_graph","_vertices","_cancelPending","Promise","resolve","stopAndRelease","pending","convCoord","_convInputs2","_layoutWorker","killWorker","worker","w","noop","onmessage","onmessageerror","onerror","terminate","findAndRemoveWorker","lists","list","wi","splice","ok","Coordinator","callback","currentLayout","nextWorkerId","idleWorkers","busyWorkers","_handleVizWorkerError","event","error","_handleVizWorkerMessageError","msg","errorType","_handleVizWorkerMessage","workerMessage","_makeWorkerIdle","isStale","Boolean","meta","EWorkerErrorType","LayoutError","EWorkerPhase","Edges","DotOnly","_processResult","inEdges","inVertices","_convInputs","unmapEdges","unmapVertices","vertexToDot","cleaned","status","NotStarted","useDotEdges","_postWork","_this$currentLayout","pop","_initWorker","workerId","message","postMessage","stPhase","stWorkerId","adjVertexCoords","vertexToPixels","bind","adjCleanVertices","adjVertices","adjGraph","graphToPixels","pixelEdges","edgeToPixels","mergedEdges","DPI","e","h","round","srcEdges","keyToId","Map","idToVertex","idsToEdge","has","size","isBidirectional","fromId","toId","makeEdgeId","output","sv","le","window","module","A","r","l","m","c","o","Symbol","toStringTag","t","create","n","s","URL","webkitURL","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","append","getBlob","Blob","Worker","createObjectURL","encodeURIComponent","EUpdateTypes","ErrorAttr","react","Message","wrap","wrapperClassName","cssClass","Details","httpStatus","httpStatusText","httpUrl","httpQuery","httpBody","bodyExcerpt","slice","trim","details","ErrorMessage","detailClassName","messageClassName","pathPrefix","orig","sitePref","replace","rx","RegExp","getPathPrefix","location","origin","sitePrefix","prefixUrl","NotFound","react_default","ErrorMessage_ErrorMessage","Link","ROUTE_PATH","getUrl","uiFind","traceUrl","queryString","getLocation","pathname","search","TraceIDSearchInput","goToTrace","preventDefault","elements","idInput","history","form_default","onSubmit","input_default","autosize","placeholder","withRouter","ROUTE_MATCHER","path","strict","exact","EViewModifier","EDdgDensity","ECheckedStatus","EDirection","PathElem","operation","memberIdx","classCallCheck","memberOf","_visibilityIdx","toJSONHelper","service","visibilityIdx","objectSpread","focalIdx","members","member","toJSON","externalSideNeighbor","distance","reverse","sign","focalSideNeighbor","args","baseUrl","_isEmpty","stringifyArgs","Reflect","showOp","firstParam","arg","returnVal","getUrlState","memoizeOne","_queryString$parse","parse","_queryString$parse$de","density","PreventPathEntanglement","end","hash","start","visEncoding","parseInt","sanitizeUrlState","objectWithoutProperties","eqEq","query","searchUrl","traceID","spanLinks","ids","stringifyArg","span","res","trace","toConsumableArray","traceIDs","Set","_s$split","split","_s$split2","slicedToArray","spansStr","add","_getValidState","stA","stB","stCohort","cohort","cohortSet","str","getValidState","_getValidState$a","_getValidState$b","TOP_NAV_HEIGHT","FALLBACK_TRACE_NAME","fetchedState","DONE","ERROR","LOADING","default_config","deepFreeze","archiveEnabled","dependencies","dagMaxNumServices","menuEnabled","linkPatterns","menu","label","items","url","maxLookback","maxLimit","tracking","gaID","trackErrors","deprecations","formerKey","currentKey","haveWarnedFactoryFn","haveWarnedDeprecations","getConfig","getJaegerUiConfig","defaultConfig","embedded","deprecation","config","issueWarning","_has","isTransfered","isIgnored","_get","_set","_unset","warnings","processDeprecation","__mergeFields","getConfigValue","NAV_LINKS","matches","matchPath","text","diffUrl","traceDiff","getItemLink","item","anchorTarget","menu_default","Item","href","rel","CustomNavDropdown","menuItems","dropdown_default","overlay","placement","icon_default","TopNavImpl","router","theme","mode","selectable","selectedKeys","itemOrGroup","components_App_TraceIDSearchInput","deepDependencies","connect","UNKNOWN_SYM","word","NAV_SYMBOLS","FETCH_SYMBOLS","truncate","len","front","collapseWhitespace","getSym","syms","test","convErrorMessage","maxLen","parts","j","convFetch","status_code","statusStr","getLabel","page","duration","git","breadcrumbs","header","crumbs","iLastUi","category","joiner","onNewLine","fetched","nav","selector","ci","compacted","accum","convBreadcrumbs","convRavenToGa","exception","extra","request","tags","_convException","errValue","frames","stacktrace","fr","filename","fn","function","lastFile","_frames$i","stack","convException","action","EVENT_LENGTHS","isTruish","isDebugMode","isGaEnabled","isErrorsEnabled","logTrackingCalls","calls","ReactGA","testModeAPI","_console","log","trackPageView","pagePath","pageview","trackEvent","labelOrValue","versionShort","versionLong","process","objName","changed","hasChanged","pretty","_","gaConfig","testMode","titleCase","initialize","appId","appName","appVersion","cookiesToDimensions","cookie","dimension","match","document","ravenConfig","autoBreadcrumbs","xhr","dom","environment","transport","ravenData","_convRavenToGa","description","fatal","trackError","Raven","install","onunhandledrejection","evt","captureException","reason","context","Header","Content","PageImpl","possibleConstructorReturn","getPrototypeOf","inherits","createClass","nextPathname","nextSearch","contentCls","cx","Page--content","Helmet_default","title","layout_default","Page_Header","TopNav","_state$router$locatio","cydagre","cytoscape","dagre","DAG","serviceCalls","nodeMap","nodes","parent","child","callCount","container","getElementById","boxSelectionEnabled","autounselectify","minZoom","content","text-opacity","text-valign","text-halign","background-color","target-arrow-shape","line-color","target-arrow-color","curve-style","ForceGraphArrowLink","link","targetRadius","spreadable","edgeOffset","srcId","targetId","linkId","color","react_vis_force","chargeStrength","PropTypes","arrayOf","shape","string","isRequired","radius","number","target_node_size","_ref$radius","orphan","DependencyForceGraph","innerWidth","innerHeight","onResize","debouncedResize","debounce","addEventListener","removeEventListener","offsetTop","_this3","links","nodesMap","node","minScale","maxScale","panLimit","simulationOptions","strength","charge","labelOffset","_ref3","nodeAttrs","highlightDependencies","_ref4","labelStyle","labelClass","showLabel","_ref5","ForceGraphArrowLink_ForceGraphArrowLink","LoadingIndicator","centered","small","cls","getJSON","_options$query","init","credentials","queryStr","fetch","response","json","bodyText","bodyTextFmt","errorMessage","errors","err","errData","code","getMessageFromError","statusText","DEFAULT_API_ROOT","ANALYTICS_ROOT","DEFAULT_DEPENDENCY_LOOKBACK","moment","asMilliseconds","JaegerAPI","apiRoot","archiveTrace","method","fetchDeepDependencyGraph","fetchDependencies","endTs","Date","getTime","lookback","fetchServiceOperations","serviceName","fetchServiceServerOps","spanKind","fetchServices","fetchTrace","searchTraces","createAction","fetchMultipleTraces","formatDependenciesAsNodesAndLinks","createSelector","sqrt","findIndex","TabPane","tabs_default","GRAPH_TYPES","FORCE_DIRECTED","DependencyGraphPageImpl","_Component","handleGraphTypeChange","graphType","loading","LoadingIndicator_LoadingIndicator","GRAPH_TYPE_OPTIONS","onChange","activeKey","tabBarStyle","background","padding","opt","tab","DependencyForceGraph_DependencyForceGraph","DAG_DAG","_state$dependencies","formatted","dispatch","bindActionCreators","jaegerApiActions","getTrackFilterSet","_throttle","leading","getTrackFilterClear","getTrackFilter","trackFilterSet","trackFilterClear","CATEGORY_DENSITY_CHANGE","CATEGORY_DENSITY_SELECTION","CATEGORY_DOWNSTREAM_HOPS_CHANGE","CATEGORY_DOWNSTREAM_HOPS_SELECTION","CATEGORY_MATCH_INTERACTIONS","CATEGORY_SEARCH","CATEGORY_TOGGLE_SHOW_OP","CATEGORY_UPSTREAM_HOPS_CHANGE","CATEGORY_UPSTREAM_HOPS_SELECTION","CATEGORY_VERTEX_INTERACTIONS","ACTION_CLEAR_OPERATION","ACTION_DECREASE","ACTION_FOCUS_PATHS","ACTION_HIDE","ACTION_HIDE_CHILDREN","ACTION_HIDE_PARENTS","ACTION_INCREASE","ACTION_SET_FOCUS","ACTION_SET_OPERATION","ACTION_SET_SERVICE","ACTION_SHOW","ACTION_SHOW_CHILDREN","ACTION_SHOW_PARENTS","ACTION_VIEW_TRACES","trackFilter","trackHide","direction","Upstream","trackSetFocus","VISIBILITY_BUCKET_SIZE","decode","memoize","encoded","tupleStr","_tupleStr$split","_tupleStr$split2","partial","_tupleStr$split2$","count","partialAsNumber","encode","decoded","partials","visIdx","absIdx","_convertAbsoluteIdxTo","csvIdx","floor","visibilityValue","condensed","tuple","toString","suffix","encodeDistance","ddgModel","prevVisEncoding","nextVisible","distanceToPathElems","visIdxToPathElem","idx","_nextVisible","elems","chevron_down_default","CLASSNAME","Selector","makeBtn","showChevron","fullness","_ref$suffix","Fragment","chevron_right_default","onClick","handleClick","abs","furthestFullDistance","prevFurthestFullDistance","nextFurthestFullDistance","changeAction","selectionCategory","changeCategory","trackHopChange","furthestDistance","furthestFullness","hops","streamText","Downstream","streamLabel","lowercaseLabel","toLowerCase","decrementBtn","disabled","incrementBtn","delimiterBtn","furthestBtn","popover_default","arrowPointAtCenter","sort_amount_asc_default","Header_ChevronDown","memo","downstreamHops","upstreamHops","minFullDistance","minVisDistance","minVisDistanceFullness","Empty","maxFullDistance","maxVisDistance","maxVisDistanceFullness","visibleIndices","visible","Full","Partial","sort","_ref6","Selector_Selector","WORD_RX","BreakableText","_props$wordRegexp","wordRegexp","spans","exec","toHighlights","isHighlightGroup","texts","highlightEvenGroups","index","highlightFirstGroup","ANY_LAZY","ANY_GREEDY","letterClass","lowerLetter","toUpperCase","MatchHighlighter","matchers","initialCap","letters","startsWith","wordStartsWith","acronymLetters","letter","constains","anyLetters","_this$matchers$i","matcher","highlightMatch","getHighlighter","make","highlightMatches","ListItem","onClicked","setValue","styleOrig","focusedIndex","highlightQuery","selectedValue","is-focused","is-selected","is-striped","role","aria-checked","FilteredList","inputRef","vlistRef","wrapperRef","filterText","visibleStartIndex","visibleStopIndex","focusInput","focus","getFilteredOptions","matchSorter","onKeyDown","stFocused","EKey","Escape","cancel","ArrowUp","ArrowDown","offset","filteredOptions","listInstance","scrollToItem","Enter","onListScrolled","_debounce","scrollInfo","scrollUpdateWasRequested","onListItemsRendered","viewInfo","onFilterChanged","ios_search_default","index_esm","itemCount","itemData","itemSize","overscanCount","onItemsRendered","onScroll","NameSelector","listRef","popoverVisible","clearValue","required","stopPropagation","changeVisible","onBodyClicked","isMouseWithin","onFilterCancelled","onPopoverVisibleChanged","body","_this$props$placehold","_this$props$required","rootCls","is-active","is-invalid","useLabel","overlayClassName","onVisibleChange","FilteredList_FilteredList","trigger","BreakableText_BreakableText","LayoutSettings_settingsIcon","cssCls","namePart","densityOptions","option","MostConcise","note","UpstreamVsDownstream","OnePerLevel","ExternalVsInternal","LayoutSettings","updateDensity","prevDensity","nextDensity","densities","prevIndex","nextIndex","trackDensityChange","setDensity","toggleShowOperations","checked","showOperations","checkbox_default","rowSpan","radio_default","settingsIcon","updateUiFind","trackFindFunction","queryParams","UnconnectedUiFindInput","_getPrototypeOf2","ownInputValue","updateUiFindQueryParam","prevUiFind","clearUiFind","flush","handleInputBlur","handleInputChange","allowClear","inputProps","inputValue","_isString","onBlur","extractUiFindFromState","uiFindFromUrl","_uiFindInput","focusUiFindInput","getUiFindInfo","hiddenUiFindMatches","uiFindCount","hasHidden","hiddenInfo","tipText","visibility_off_default","tooltip_default","handleInfoClick","visibility_default","setOperation","showVertices","clearOperation","operations","services","setDistance","setService","showParameters","NameSelector_NameSelector","LayoutSettings_LayoutSettings","Header_HopsSelector","UiFindInput","svcSpan","opSpan","FONT_SIZE","FONT","LINE_HEIGHT","OP_PADDING_TOP","MAX_LENGTH","MAX_LINKED_TRACES","MIN_LENGTH","getSearchUrl","PARAM_NAME_LENGTH","calcWidth","lengths","lines","longestThusFar","total","sum","curr","minRectWidth","firstOptionLength","firstLineOptions","calcRects","_memoize","innerHTML","getClientRects","rects","fontWeight","sq","pow","diagonal","rect","calcPositioning","svcRects","opRects","minDiagonal","_svcRects$","svcWidth","svcMarginTop","svcRect","opRect","totalHeight","cy","opWidth","smallestRadius","fontFamily","appendChild","setFocusIcon","fillRule","clipRule","NewWindowIcon","isLarge","is-large","android_open_default","DdgNodeContent","hoveredIndices","focusPaths","focusPathsThroughVertex","vertexKey","hideVertex","updateChildren","updateGenerationVisibility","updateParents","_this$props4","viewTraces","_this$props5","getVisiblePathElems","urlIds","currLength","allIDs","shift","open","onMouseUx","_this$props6","getGenerationVisibility","setViewModifier","hovered","Hovered","childrenVisibility","parentVisibility","clear","_this$props7","focalNodeUrl","isFocalNode","isPositioned","_calcPositioning","scaleFactor","onMouseOver","onMouseOut","is-focalNode","is-positioned","marginTop","paddingTop","NewWindowIcon_NewWindowIcon","android_locate_default","indeterminate","extraUrlArgs","getNodeRenderers","findMatches","viewModifiers","vectorBorder","isHovered","isPathHovered","PathHovered","is-findMatch","is-hovered","is-pathHovered","htmlEmphasis","matchClasses","vectorFindColorBand","getEdgeId","getKeyFromVisIdx","pe","pathElemToVertex","FOCAL_KEY","fmtElemShowOp","fmtElemSvcOnly","getPpeHasher","elemToStr","focalPath","getPathElemHasher","_pe$memberOf","focalElem","focalVertex","focalElems","vertexToPathElems","isExternal","getExtVsIntHasher","GraphModel","getDerivedViewModifiers","getVisibleIndices","pushVertexVm","vm","pushEdgeVm","edgeId","hoveredPe","lastKey","pathElemToEdge","getGeneration","getVertexVisiblePathElems","generationMember","generation","visibleGeneration","getVisible","pathElem","visibleFocalElems","visibleFocalOps","potentiallyPartialFocalVertex","getHiddenUiFindMatches","hiddenFocalOperations","elem","getUiFindMatches","getVisibleUiFindMatches","focalOperations","hasher","edgesById","pathElemsForVertex","connectedElem","connectedVertex","getDefaultVisiblePathElems","_ref7","externalPath","_ref8","delete","getVisWithoutElems","_ref9","_ref10","generationElems","currCheckedStatus","update","getVisWithElems","vertexKeys","elemSet","pathElems","visIndices","keySet","uiFindArr","_vertices$i","svc","ops","op","_loop","includes","some","makeGraph","baseCase","matchMiss","getSetOnEdge","edgesViewModifiers","utils","withViewModifiers","withoutViewModifiers","setOnVectorBorderContainerWithViewModifiers","edgesDefs","Graph","getNodeContentRenderer","getNodeRenderer","nodesep","ranksep","rankdir","splines","emptyFindSet","uiFindMatches","verticesViewModifiers","nodeRenderers","plexus_lib","generateActionTypes","commonPrefix","topLevelTypes","fullType","actionTypes","addViewModifier","_identity","clearViewModifiersFromIndices","removeViewModifier","removeViewModifierFromIndices","fullActions","createActions","_createActions","ADD_VIEW_MODIFIER","CLEAR_VIEW_MODIFIERS_FROM_INDICES","REMOVE_VIEW_MODIFIER","REMOVE_VIEW_MODIFIER_FROM_INDICES","jaegerUi","getStateEntryKey","_ref$operation","DeepDependencyGraphPageImpl","updateUrlState","indices","urlState","getVisWithoutVertex","model","serverOpsForService","visibilityIndices","viewModifier","enable","getVisWithVertices","getVisWithUpdatedGeneration","trackShow","newValues","_this$props8","getUrlArg","fetchModelIfStale","_props$graphState","_this$props9","showSvcOpsHeader","_graph$getVisible","_graph$getDerivedView","Graph_Graph","checkLink","minDuration","Header_Header","ownProps","stServices","urlStateShowOp","ddg","_bindActionCreators","_bindActionCreators2","ddgActions","DEFAULT_OPERATION","DEFAULT_LOOKBACK","DEFAULT_LIMIT","ACTION_SET","ACTION_CLEAR","ACTION_DEFAULT","CATEGORY_OPERATION","CATEGORY_LOOKBACK","CATEGORY_TAGS","CATEGORY_MIN_DURATION","CATEGORY_MAX_DURATION","CATEGORY_LIMIT","middlewareHooks","store","form","payload","renderOption","focusedOption","focusOption","labelKey","selectValue","valueArray","events","onMouseEnter","renderArrow","isOpen","TODAY","YESTERDAY","STANDARD_DATE_FORMAT","STANDARD_TIME_FORMAT","STANDARD_DATETIME_FORMAT","ONE_MILLISECOND","ONE_SECOND","DEFAULT_MS_PRECISION","log10","quantizeDuration","floatPrecision","conversionFactor","precision","targetPrecision","trunc","toPrecision","toFloatPrecision","formatDate","format","formatTime","formatDuration","units","_round","formatRelativeDate","fullMonthName","isMoment","monthFormat","dt","getFullYear","year","mMonth","month","mDate","date","getDate","getMonth","setDate","reduxFormFieldAdapter","AntInputComponent","onChangeAdapter","_ref$isValidatedInput","isValidatedInput","_props$input","onFocus","isInvalid","active","AdaptedReduxFormField--isValidatedInput","FormItem","Option","select_default","AdaptedInput","AdaptedSelect","AdaptedVirtualSelect","commonjs_default","arrowRenderer","optionRenderer","ValidatedAdaptedInput","convTagsLogfmt","logfmtParser","lookbackToTimestamp","unit","substr","subtract","valueOf","lookbackOptions","optionsWithinMaxLookback","now","minTimestamp","lookbackToTimestampMap","lookbackTimestamp","lastInRangeIndex","lastInRangeOption","placeholderDurationFields","validateDurationFields","submitForm","fields","resultsLimit","startDate","startDateTime","endDate","endDateTime","maxDuration","times","getUnixTimeStampInMSFromForm","constants","trackFormInput","limit","SearchFormImpl","handleSubmit","invalid","searchMaxLookback","selectedLookback","_this$props$selectedS","selectedService","submitting","selectedServicePayload","find","opsForSvc","noSelectedService","tz","toTimeString","Field","component","clearable","help_default","defaultValue","validate","button_default","htmlType","data-test","searchSideBarFormSelector","formValueSelector","EAltViewActions","lastSearchService","lastSearchOperation","tagParams","tag","logfmtTags","traceIDParams","nowInMicroseconds","today","currentTime","lastSearch","lastOp","lastSvc","operationsForService","_convertQueryParamsTo","queryStartDate","queryStartDateTime","queryEndDate","queryEndDateTime","endUnixNs","startUnixNs","convertQueryParamsToFormDates","convFormerTag","logfmtStringify","destroyOnUnmount","initialValues","reduxForm","CATEGORY_ALT_VIEW","CATEGORY_CONVERSIONS","trackConversions","view","viewAllDep","ctrlKey","metaKey","Ddg","_getUrlState","AltViewOptions","onDdgViewClicked","traceResultsView","toggleBtn","TraceName","traceName","isErred","errorCssClass","titleStr","stopCheckboxPropagation","ResultItemTitle","toggleComparison","isInDiffCohort","disableComparision","durationPercent","linkTo","targetBlank","WrapperComponent","wrapperProps","checkboxProps","TraceName_TraceName","CTA_MESSAGE","DiffSelection","traces","ft","compareHref","compareBtn","fetchedTrace","ResultItemTitle_ResultItemTitle","getTracePageUrl","COLORS_HEX","strToRgb","g","color_generator","ColorGenerator","colorsHex","colorsRgb","currentIdx","_getColorIndex","isErrorTag","trackTraceConversions","Traces","ResultItem","startTime","timeStr","fromNow","numSpans","numErredSpans","sp","row_default","col_default","tag_default","sortBy","numberOfSpans","borderLeftColor","colorGenerator","getColorByKey","divider_default","ScatterPlotImpl","containerWidth","onValueClick","overValue","onValueOver","onValueOut","react_vis_es","margin","tickTotal","tickFormat","sizeRange","onValueMouseOver","onValueMouseOut","ScatterPlot","compose","withState","withProps","setOverValue","dimensions","stringifyEntry","downstreamElems","upstreamElems","focalService","focalOperation","serviceMap","pathCompareValues","hashArg","paths","aCompareValue","bCompareValue","payloadPath","attributes","group","exemplar_trace_id","operationName","downstream","upstream","setIdx","objectHash","getFirstAncestor","_find","references","refType","spanID","spanAncestorIds","ancestorIDs","spanMap","hasChildren","leaf","processID","processes","svcOp","TracesDdgImpl","urlArgs","extraArgs","DeepDependencies_DeepDependencyGraphPageImpl","transformTracesToPaths","transformDdgData","MOST_RECENT","LONGEST_FIRST","SHORTEST_FIRST","MOST_SPANS","LEAST_SPANS","VALUE_ENABLED","VERSION_0","STATE_PARAMS_V0","searchHideGraph","timeline","collapseTitle","hideMinimap","hideSummary","PARAM_KEYS_V0","getStrings","_flatMap","stripEmbeddedState","_state$uiEmbed","uiEmbed","deleteProperty","SelectSort","orderBy","SearchResults_Option","sortFormSelector","UnconnectedSearchResults","remove","cohortAddTrace","cohortRemoveTrace","trackAltView","diffCohort","disableComparisons","hideGraph","maxTraceDuration","queryOfResults","showStandaloneLink","skipMessage","diffSelection","DiffSelection_DiffSelection","cohortIds","datum","SearchResults_ScatterPlot","DeepDependencies_traces","ResultItem_ResultItem","totalDuration","fromSearch","loadJsonTraces","fileList","reject","reader","FileReader","onload","errMessage","onabort","readAsText","file","readJsonFile","guardReducer","guardReducerWithMeta","actions","duck_createActions","COHORT_ADD_TRACE","COHORT_REMOVE_TRACE","DIFF_SET_A","DIFF_SET_B","FORCE_STATE","newState","handleActions","_handleActions","comparators","_comparators","Dragger","FileLoader","accept","customRequest","multiple","SearchTracePageImpl","getTraceLocation","isHomepage","urlQueryParams","needForDiffs","loadingServices","loadingTraces","traceResults","hasTraceResults","showErrors","showLogo","SearchTracePage_TabPane","SearchTracePage_SearchForm","SearchTracePage_SearchResults","alt","src","JaegerLogo","stateTraceXformer","stateTrace","traceMap","results","traceError","tr","stateTraceDiffXformer","stateTraceDiff","sortedTracesXformer","comparator","sortTraces","stateServicesXformer","stateServices","serviceList","opsBySvc","serviceError","_stateTraceXformer","_stateServicesXformer","sortTracesBy","fileReaderActions","_bindActionCreators3","traceDiffActions","EmphasizedNode","CopyIcon","hasCopied","copy","copyText","handleTooltipVisibilityChange","mouseLeaveDelay","tooltipTitle","icon","DiffNode","isSame","is-same","is-changed","is-more","is-added","is-less","is-removed","chgSign","table","CopyIcon_CopyIcon","mouseEnterDelay","_vertex$data","renderNode_DiffNode","getNodeEmphasisRenderer","EmphasizedNode_EmphasizedNode","convPlexus","dagNode","parentID","DagNode","getID","HTTP_METHOD","PEER_SERVICE","SPAN_KIND","denseTransforms","denseSpan","kind","tagKeys","peerSvc","parentOp","fixLeafService","parentKind","parentPeerSvc","skipToChild","skipClient","httpMethod","endpoint","fixHttpOperation","childID","skipAnnotationSpans","skipClientSpans","DenseTrace","rootIDs","denseSpansMap","_convSpans","roots","spanTags","_references$","convSpans","spanIDs","makeDense","TraceDag","denseTrace","_initFromTrace","pushDagNode","_node$members","_getDagNode","_addDenseSpan","nodeID","existing","parentDag","parentNodeID","addMember","filterSpans","textFilter","includeFilters","excludeKeys","isTextInFilters","filters","isTextInKeyValues","kvs","kv","logs","getUiFindVertexKeys","newVertexKeys","_map","getEdgesAndVertices","aData","bData","aTraceDag","newFromTrace","bTraceDag","diff","UnconnectedTraceDiffGraph","cacheAs","makeScope","_this$props$uiFind","_getEdgesAndVertices","dagClassName","is-uiFind-mode","TraceTimelineLink","RelativeDate","includeTime","dateStr","Column","defaultRowSelection","hideDefaultSelections","NEED_MORE_TRACES_MESSAGE","CohortTable","getCheckboxProps","record","selection","selectTrace","rowSelection","selectedRowKeys","table_default","dataSource","rowKey","pagination","dataIndex","render","sortOrder","_ref$traceName","_ref2$label","EmptyAttrs","Attrs","totalSpans","TraceHeader","AttrsComponent","Search","TraceIdInput","addonBefore","enterButton","onSearch","TraceDiffHeader","_toggleTableA","_toggleTableB","_diffSetA","_diffSetB","tableVisible","_toggleTable","assertThisInitialized","_diffSetTrace","which","diffSetA","diffSetB","_ref$data","_ref$id","aId","_ref$state","aState","_ref$error","aError","_ref2$data","_ref2$id","bId","_ref2$state","bState","_ref2$error","bError","cohortTableA","CohortTable_CohortTable","cohortTableB","TraceHeader_TraceHeader","TraceDiffImpl","graphTopOffset","headerWrapperElm","headerWrapperRef","elm","setGraphTopOffset","newA","diffSetUrl","newB","processProps","clientHeight","forceState","tracesData","urlValues","reduxValues","urlA","urlB","reduxA","reduxB","urlCohort","reduxCohort","syncStates","traceDiffState","change","traceA","traceB","cohortData","TraceDiffHeader_TraceDiffHeader_TraceDiffHeader","TraceDiffGraph_TraceDiffGraph","ENotifiedState","_ownProps$match$param","params","_queryString$parse$co","fullCohortSet","pluckTruthy","kvPairs","diffActions","notifiedState","nxNotifiedState","archivedState","isLoading","Progress","isAcknowledged","Outcome","getNextNotifiedState","oldState","nextState","notification_default","close","acknowledge","onClose","isArchived","success","info","updateNotification","ArchiveNotifier","ACKNOWLEDGE","duck_handleActions","traceArchive","next","isError","CATEGORY_RANGE","ACTION_FOCUS","ACTION_NEXT","ACTION_PREV","ACTION_RANGE_REFRAME","ACTION_RANGE_SHIFT","trackRange","_current","curStart","curEnd","_next","nxStart","nxEnd","getRangeAction","instance","keyboardMappings","scrollPageDown","binding","scrollPageUp","scrollToNextVisibleSpan","scrollToPrevVisibleSpan","panLeft","panLeftFast","panRight","panRightFast","zoomIn","zoomInFast","zoomOut","zoomOutFast","collapseAll","expandAll","collapseOne","expandOne","searchSpans","clearSearch","getInstance","local","Combokeys","merge","callbacks","inst","keysHandler","reset","lastTween","Tween","delay","onUpdate","onComplete","callbackComplete","callbackUpdate","requestID","timeoutID","_frameCallback","getCurrent","done","requestAnimationFrame","setTimeout","clearTimeout","cancelAnimationFrame","ease","easeOutQuint","DURATION_MS","_onTweenUpdate","scrollTo","scrollX","scrollBy","yDelta","appendToLast","scrollY","targetFrom","isSpanHidden","childrenAreHidden","spansMap","parentIDs","checkRef","isHidden","parentChildOfMap","ScrollManager","scroller","_trace","_scroller","_accessors","setAccessors","accessors","getViewHeight","_scrollToVisibleSpan","scrollToFirstVisibleSpan","rowIndex","xrs","isUp","getRowPosition","vh","startRow","boundaryRow","_this$_trace","traceStartTime","getTopRowIndexVisible","getBottomRowIndexVisible","spanIndex","mapRowIndexToSpanIndex","fullViewSpanIndex","nextSpanIndex","isFallbackHidden","_xrs$getViewRange","getViewRange","_xrs$getViewRange2","viewStart","viewEnd","checkVisibility","NaN","endTime","getSearchedSpanIDs","_collapsed","getCollapsedChildren","boundary","spanDuration","spanStartTime","_isSpanHidden","_isSpanHidden2","nextRow","mapSpanIndexToRowIndex","_scrollPast","getChildOfDrange","childrenDrange","DRange","pID","getChildOfSpans","calculateTraceDagEV","traceDag","time","percent","selfTime","percentSelfTime","ntime","numErrors","errorTag","stime","intersect","nd","calculateTraceDag","ev","hasChildOf","followsFrom","extendFollowsFrom","MODE_SERVICE","HELP_TABLE","round2","OpNode","backgroundColor","getRgbColorByKey","cellSpacing","popoverContent","OpNode_OpNode","getNodeFindEmphasisRenderer","uiFindVertexKeys","renderNodeVectorBorder","strokeDasharray","HELP_CONTENT","x1","y1","x2","y2","alignmentBaseline","TraceGraph","showHelp","closeSidebar","newMode","headerHeight","toggleNodeMode","card_default","bordered","OPEN","CLOSE","getToggleValue","trackGanttView","trackGraphView","trackJsonView","trackRawJsonView","trackSlimHeaderToggle","onTraceGraphViewClicked","traceGraphView","handleToggleView","SYMBOL_CONV","up","right","down","padLeft","padRight","getRowClass","kbdTable","getHelpModal","handle","keyConfig","_keyboardMappings$han","keyConfigs","part","kbds","showHeader","rowClassName","KeyboardShortcutsHelp_Column","align","KeyboardShortcutsHelp","onCtaClicked","track","onCloserClicked","modal_default","onOk","onCancel","cancelButtonProps","display","bodyStyle","BG_COLOR","ITEM_ALPHA","MIN_ITEM_HEIGHT","MAX_TOTAL_HEIGHT","MIN_ITEM_WIDTH","MIN_TOTAL_HEIGHT","MAX_ITEM_HEIGHT","getColor","hex","CanvasSpanGraph","_canvasElm","_setCanvasRef","_draw","totalValueWidth","valueWidth","canvas","getFillColor","fillCache","cHeight","cWidth","itemHeight","itemYChange","ctx","getContext","alpha","fillStyle","fillRect","_items$i","valueOffset","renderIntoCanvas","TickLabels","numTicks","ticks","portion","GraphTicks","aria-hidden","Scrubber","isDragging","onMouseDown","onMouseLeave","xPercent","dragTypes","SHIFT_END","SHIFT_START","REFRAME","ViewingLayer","_root","_draggerReframe","_draggerStart","_draggerEnd","_setRoot","_getDraggingBounds","_this$_root$getBoundi","getBoundingClientRect","clientXLeft","_this$props$viewRange","viewRange","maxValue","minValue","_handleReframeMouseMove","updateNextViewRangeTime","cursor","_handleReframeMouseLeave","_handleReframeDragUpdate","reframe","anchor","_handleReframeDragEnd","manager","resetBounds","updateViewRangeTime","_handleScrubberEnterLeave","preventCursorLine","MouseEnter","_handleScrubberDragUpdate","DragStart","shiftStart","shiftEnd","_handleScrubberDragEnd","_this$props$viewRange2","_resetTimeZoomClickHandler","DraggableManager","getBounds","onDragEnd","onDragMove","onDragStart","onMouseMove","dispose","isShift","leadingX","getNextViewLayout","isShiftDrag","isReframeDrag","_viewRange$time","haveNextTimeRange","leftInactive","cursorPosition","rightInactive","handleMouseDown","handleMouseLeave","handleMouseMove","GraphTicks_GraphTicks","_getMarkers","Scrubber_Scrubber","handleMouseEnter","getItem","relativeStartTime","SpanGraph","TickLabels_TickLabels","CanvasSpanGraph_CanvasSpanGraph","ViewingLayer_ViewingLayer","IN_TRACE_SEARCH","TracePageSearchBarFn","focusUiFindMatches","navigable","nextResult","prevResult","resultCount","btnClass","is-disabled","uiFindInputInputProps","markers","Group","compact","LabeledList","dividerClassName","divider","getTraceName","allTraceSpans","dict","rootSpan","sp1","sp2","getParent","parentRef","parameterRegExp","getParamNames","names","stringSupplant","encodeFn","processTemplate","template","parameters","createTestFunction","entry","identity","getParameterInArray","array","callTemplate","computeLinks","itemIndex","processTags","pattern","parameterValues","every","parameter","currentSpan","getParameterInAncestor","object","processedLinks","_uniq","getTraceLinks","validKeys","computeTraceLink","createGetLinks","WeakMap","LinkValue","linkValueList","ExternalLinks_LinkValue","ExternalLinks","HEADER_ITEMS","renderer","_values","_maxBy","TracePageHeaderFn","canCollapse","hideMap","linkToStandalone","onArchiveClicked","onSlimViewClicked","showArchiveButton","showShortcutsHelp","showViewOptions","slimView","toSearch","summaryItems","android_arrow_back_default","keyboard_arrow_right_default","TracePageHeader_TracePageSearchBar","KeyboardShortcutsHelp_KeyboardShortcutsHelp","AltViewOptions_AltViewOptions","ios_filing_outline_default","LabeledList_LabeledList","SpanGraph_SpanGraph","DetailState","isTagsOpen","isProcessOpen","isWarningsOpen","isReferencesOpen","openedItems","logItem","shouldDisableCollapse","allSpans","hiddenSpansIds","newInitialState","childrenHiddenIDs","detailStates","hoverIndentGuideIds","shouldScrollToFirstUiFindMatch","spanNameColumnWidth","TraceTimelineViewer_duck_createActions","ADD_HOVER_INDENT_GUIDE_ID","CHILDREN_TOGGLE","CLEAR_SHOULD_SCROLL_TO_FIRST_UI_FIND_MATCH","COLLAPSE_ALL","COLLAPSE_ONE","DETAIL_LOG_ITEM_TOGGLE","DETAIL_LOGS_TOGGLE","EXPAND_ALL","EXPAND_ONE","DETAIL_PROCESS_TOGGLE","DETAIL_WARNINGS_TOGGLE","DETAIL_REFERENCES_TOGGLE","DETAIL_TAGS_TOGGLE","DETAIL_TOGGLE","FOCUS_UI_FIND_MATCHES","allowHide","REMOVE_HOVER_INDENT_GUIDE_ID","SET_SPAN_NAME_COLUMN_WIDTH","SET_TRACE","traceTimelineViewer","calculateFocusedFindRowStates","matchedSpanIds","ancestorID","detailSubsectionToggle","subSection","detailState","old","toggleTags","toggleProcess","toggleWarnings","toggleReferences","toggleLogs","detailTagsToggle","detailProcessToggle","detailLogsToggle","detailWarningsToggle","detailReferencesToggle","TraceTimelineViewer_duck_handleActions","_ref11","newHoverIndentGuideIds","nearestCollapsedAncestor","curSpan","depth","toggleLogItem","prevExpandedDepth","expandNextHiddenSpan","_ref12","getTitle","TimelineCollapser","containerRef","getContainer","onExpandAll","onExpandOne","onCollapseAll","onCollapseOne","getPopupContainer","TimelineColumnResizer","_dragManager","_rootElm","_setRootElm","_this$_rootElm$getBou","_handleDragUpdate","dragPosition","_handleDragEnd","draggerStyle","isDraggingCls","gripStyle","isDraggingLeft","isDraggingRight","mapFromViewSubRange","mapToViewSubRange","getMarkers","isOutOfView","TimelineViewingLayer","viewRangeTime","_this$props$viewRange3","_current2","boundsInvalidator","cusrorPosition","_current3","createViewedBoundsFunc","viewMin","viewWindow","spanHasTag","isClientSpan","isServerSpan","isErrorBool","isErrorStr","isErrorSpan","Ticks","labels","showLabels","viewingDuration","durationAtTick","TimelineRow","_props$className","TimelineRowCell","_props$className2","widthPercent","mergedStyle","flexBasis","maxWidth","Cell","TimelineHeaderRow","nameColumnWidth","onColummWidthChange","_viewRangeTime$curren","TimelineRow_TimelineRow","TimelineCollapser_TimelineCollapser","TimelineViewingLayer_TimelineViewingLayer","Ticks_Ticks","TimelineColumnResizer_TimelineColumnResizer","bufferLen","dataLen","heights","lastI","ys","dataLength","heightGetter","forcedLastI","_max","yValue","calcHeights","_i","chg","calcYs","imin","imax","confirmHeight","known","ListView","_yPositions","_knownHeights","_startIndexDrawn","_endIndexDrawn","_startIndex","_endIndex","_viewHeight","_scrollTop","_isScrolledOrResized","_htmlTopOffset","_windowScrollListenerAdded","_htmlElm","_wrapperElm","_itemHolderElm","getBottomVisibleIndex","bottomY","findFloorIndex","_getHeight","getTopVisibleIndex","_onScroll","_positionList","_calcViewIndexes","maxStart","viewBufferMin","minEnd","forceUpdate","_initWrapper","windowScroller","_initItemHolder","_scanItemHeights","getIndexFromKey","lowDirtyKey","highDirtyKey","isDirty","childNodes","itemKey","getAttribute","observed","firstElementChild","getKeyFromIndex","itemHeightGetter","documentElement","scrollTop","useRoot","yStart","yEnd","_this$props$initialDr","initialDraw","itemRenderer","viewBuffer","profileData","_isViewChanged","_this$_yPositions$get","attrs","data-item-key","overflowY","scrollerStyle","getEstimatedHeight","itemsWrapperClassName","ReferenceLink","reference","focusSpan","otherProps","ReferencesButton","referencesList","tooltipText","tooltipProps","UnconnectedSpanTreeOffset","ancestorIds","ancestorId","relatedTarget","HTMLSpanElement","removeHoverIndentGuideId","addHoverIndentGuideId","childrenVisible","showChildrenIcon","ios_arrow_down_default","data-ancestor-id","traceTimeline","LABEL","jsonObjectOrArrayStartRegex","parseIfComplexJson","KeyValuesTable_LinkValue","KeyValuesTable","linksGetter","row","valueMarkup","markup","__html","jsonMarkup","jsonTable","dangerouslySetInnerHTML","KeyValuesSummary","AccordianKeyValues","highContrast","interactive","onToggle","isEmpty","iconCls","AccordianKeyValues--emptyIcon","arrow","headerProps","ios_arrow_right_default","is-empty","is-high-contrast","KeyValuesTable_KeyValuesTable","AccordianLogs","onItemToggle","timestamp","HeaderComponent","is-open","_sortBy","AccordianKeyValues_AccordianKeyValues","toPercent","shortLabel","setLabel","longLabel","setLongLabel","setShortLabel","onlyUpdateForKeys","getViewedBounds","hintSide","rpc","logGroups","_groupBy","posPercent","aria-label","positionKey","AccordianLogs_AccordianLogs","SpanBarRow","_detailToggle","onDetailToggled","_childrenToggle","onChildrenToggled","columnDivision","isChildrenExpanded","isDetailExpanded","isMatchingFilter","showErrorIcon","isParent","viewBounds","labelDetail","TraceTimelineViewer_SpanTreeOffset","borderColor","tabIndex","alert_default","arrow_right_a_default","ReferencesButton_ReferencesButton","network_default","subsidiarilyReferencedBy","file_upload_default","TraceTimelineViewer_SpanBar","TextList","AccordianText","headerClassName","TextList_TextList","References","data-label","AccordianReferences","AccordianKReferences--emptyIcon","SpanDetail","logItemToggle","logsToggle","processToggle","tagsToggle","warningsToggle","referencesToggle","logsState","overviewItems","deepLinkCopyText","AccordianText_AccordianText","AccordianReferences_AccordianReferences","SpanDetailRow","_linksGetter","borderTopColor","SpanDetail_SpanDetail","DEFAULT_HEIGHTS","bar","detail","detailWithLogs","generateRowStates","collapseDepth","rowStates","isDetail","getCssClasses","currentViewRange","_currentViewRange","zoomStart","zoomEnd","clipping-left","clipping-right","VirtualizedTraceViewImpl","clippingCssClasses","listView","currentViewRangeTime","findMatchesIDs","setListView","isChanged","registerAccessors","getAccessors","_this$rowStates$index","_spanID","_isDetail","_this$rowStates$i","getRowHeight","_this$rowStates$index2","getLinks","renderRow","_this$rowStates$index3","renderSpanDetailRow","renderSpanBarRow","setTrace","_currentViewRangeTime","nextPropKeys","nextViewRangeTime","nextHiddenIDs","nextDetailStates","nextRegisterAccessors","nextTrace","_nextViewRangeTime","clearShouldScrollToFirstUiFindMatch","childrenToggle","detailToggle","isCollapsed","parentSpanIndex","spanContainsErredSpan","rpcSpan","spanChildDepth","findServerChildSpan","rpcViewBounds","SpanBarRow_SpanBarRow","detailLogItemToggle","zIndex","SpanDetailRow_SpanDetailRow","ListView_ListView","TraceTimelineViewerImpl","mergeShortcuts","setSpanNameColumnWidth","TimelineHeaderRow_TimelineHeaderRow","TraceTimelineViewer_VirtualizedTraceView","shortcutConfig","TracePageImpl","_headerElm","_filterSpans","_searchBar","_scrollManager","traceDagEV","setHeaderHeight","blur","focusOnSearchBar","trackSrc","toggleSlimView","toggleTraceGraphView","acknowledgeArchive","resetShortcuts","ensureTraceFetched","adjRange","_this$_scrollManager","shortcutCallbacks","_adjustViewRange","_mapValues","startChange","endChange","prevID","destroy","_this$state$viewRange","_clamp","center","VIEW_MIN_RANGE","archiveTraceState","graphFindMatches","spanFindMatches","findCount","isEmbedded","ArchiveNotifier_ArchiveNotifier","TracePageHeader_TracePageHeader","TraceGraph_TraceGraph_TraceGraph","TracePage_TraceTimelineViewer","archive","locationState","archiveActions","timelineActions","dependencies_handleActions","viewModifierRemoval","stateEntry","newValue","None","reducers_ddg","ddg_handleActions","localeStringComparator","itemA","itemB","localeCompare","services_handleActions","fetchServerOps","serverOpStructs","fetchOps","getProcessServiceName","proc","getSpanId","getSpanName","getSpanDuration","getSpanTimestamp","getSpanProcessId","getSpanReferenceByType","getSpanServiceName","childOfRef","filterSpansForText","leftBound","rightBound","fuzzy","extract","original","getTextFilterdSpansAsMap","matchingSpans","TreeNode","textFilteredSpansMap","muted","iterFunction","searchFunction","searchFn","findPath","currentNode","currentPath","attempt","nodeStack","actualDepth","_nodeStack$pop","nodeDepth","walk","getTraceSpans","getTraceProcesses","getSpanWithProcess","getTraceSpansAsMap","TREE_ROOT_ID","getTraceSpanIdsAsTree","nodesById","spansById","_span$references$","nodeA","nodeB","getTraceTimestamp","prevTimestamp","getTraceDuration","prevDuration","getParentSpan","tree","spanA","spanB","getTraceServices","spanTree","getPath","DURATION_FORMATTERS","ms","targetDuration","asSeconds","getDurationFormatterForTrace","getTraceSpansByHierarchyPosition","formatter","dir","hierarchyPositionMap","createStructuredSelector","_ref13","_ref14","collapsed","collapse","hiddenSpanIds","collapsedSpanId","_ref15","_ref16","_ref16$interval","interval","_ref17","_ref17$width","num","updatedSpan","transformTraceData","traceEndTime","MAX_SAFE_INTEGER","spanIdCounts","idCount","_isEqual","svcCounts","tagsInfo","warningsHash","uniqueTags","deduplicateTags","topPrefixes","orderedTags","tp","aKey","bKey","orderTags","refSpan","reducers","version","getEmbeddedState","trace_handleActions","raw","processed","resultTraces","formReducer","CATEGORY_BASE","CATEGORY_COLUMN","CATEGORY_EXPAND_COLLAPSE","CATEGORY_LOGS","CATEGORY_LOGS_ITEM","CATEGORY_PARENT","CATEGORY_PROCESS","CATEGORY_ROW","getDetail","getState","trackDetailState","trackFn","trackLogs","trackProcess","trackTags","hooks","_hooks","types","st","_objectSpread2","timelineHooks","searchHooks","loadOperationsForServiceMiddleware","field","historyUpdateMiddleware","promise","promiseMiddleware","process_scripts","scripts","script","textElem","createTextNode","scriptElem","createHistory","JaegerUIApp","createStore","combineReducers","jaegerReducers","routerReducer","applyMiddleware","jaegerMiddlewares","routerMiddleware","processScripts","es","react_router_redux_es","App_Page","Switch","Route","searchPath","SearchTracePage","traceDiffPath","TraceDiff","tracePath","TracePage","dependenciesPath","DependencyGraph","deepDependenciesPath","DeepDependencies","Redirect","trackingContext","ReactDOM","App_JaegerUIApp","_d3Selection","_slicedToArray","arr","_arrayWithHoles","_arr","_n","_d","_e","_s","iterator","_iterableToArrayLimit","TypeError","_nonIterableRest","ZoomManager","updateCallback","contentSize","currentTransform","resetZoom","clientWidth","onZoomed","extent","_this$contentSize","_extent","_extent$","vw","scaleExtent","constrain","on","select","setExtent","_this$currentTransfor","contentHeight","contentWidth","_ref2$clientHeight","viewportHeight","_ref2$clientWidth","viewportWidth","viewAll","_SvgDefEntry","STYLE","SvgLayer","extraWrapper","containerProps","defEntry","HtmlLayer","zoomStyle","_Nodes","NodesLayer","_this$props$graphStat","LayerComponent","global","baseNode","querySelector","__webpack_public_path__","makeCacheScope","stored","_MeasurableNodes","createRefs","MeasurableNodesLayer","measureNodes","getWrapper","getRef","getWrapperSize","measure","_this$props2$graphSta","_SvgEdges","INHERIT_STROKE","SvgEdgesLayer","MiniMap","_resetZoomIcon","LENGTH_TARGET_PX","css","base","mapActive","button","getClassNames","mapSize","ch","cw","getMapSize","activeXform","displaySize","_props$k","_props$x","_props$y","dh","dw","sch","scw","bottom","getViewTransform","LEFT_MOUSE_BUTTON","_ref$resetBoundsOnRes","resetBoundsOnResize","_home_travis_gopath_src_github_com_jaegertracing_jaeger_jaeger_ui_packages_jaeger_ui_node_modules_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__","_home_travis_gopath_src_github_com_jaegertracing_jaeger_jaeger_ui_packages_jaeger_ui_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__","_bounds","_isDragging","_onMouseEnter","_onMouseLeave","_onMouseMove","_onDragStart","_onDragMove","_onDragEnd","_resetBoundsOnResize","_handleMinorMouseEvent","clientX","eventType","handler","MouseLeave","MouseMove","_this$_getPosition","_getPosition","_handleDragEvent","userSelect","DragMove","_stopDragging","DragEnd","_this$_getPosition2","_this$_getBounds","_getBounds","_cacheAs","_Digraph","_DirectedGraph","_LayoutManager","_toConsumableArray","propSpec","spec","DEFAULT_PARAMS","_DEFAULT_PARAMS$confi","factor"],"mappings":"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","file":"static/js/main.2763c360.chunk.js","sourcesContent":["\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _possibleConstructorReturn = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _inherits = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/inherits\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _memoizeOne = _interopRequireDefault(require(\"memoize-one\"));\n\nvar _HtmlLayersGroup = _interopRequireDefault(require(\"./HtmlLayersGroup\"));\n\nvar _MeasurableNodesLayer = _interopRequireDefault(require(\"./MeasurableNodesLayer\"));\n\nvar _NodesLayer = _interopRequireDefault(require(\"./NodesLayer\"));\n\nvar _propsFactories = require(\"./props-factories\");\n\nvar _SvgEdgesLayer = _interopRequireDefault(require(\"./SvgEdgesLayer\"));\n\nvar _SvgLayersGroup = _interopRequireDefault(require(\"./SvgLayersGroup\"));\n\nvar _types = require(\"./types\");\n\nvar _utils = require(\"./utils\");\n\nvar _MiniMap = _interopRequireDefault(require(\"../zoom/MiniMap\"));\n\nvar _ZoomManager = _interopRequireWildcard(require(\"../zoom/ZoomManager\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar WRAPPER_STYLE_ZOOM = {\n height: '100%',\n overflow: 'hidden',\n position: 'relative',\n width: '100%'\n};\nvar WRAPPER_STYLE = {\n position: 'relative'\n};\nvar idCounter = 0;\n\nvar Digraph =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Digraph, _React$PureComponent);\n\n function Digraph(props) {\n var _this;\n\n _classCallCheck(this, Digraph);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Digraph).call(this, props));\n _this.renderUtils = void 0;\n _this.state = {\n edges: [],\n layoutEdges: null,\n layoutGraph: null,\n layoutPhase: _types.ELayoutPhase.NoData,\n layoutVertices: null,\n sizeVertices: null,\n vertices: [],\n zoomTransform: _ZoomManager.zoomIdentity\n };\n _this.baseId = \"plexus--Digraph--\".concat(idCounter++);\n _this.makeClassNameFactory = (0, _memoizeOne.default)(function (classNamePrefix) {\n return function (name) {\n return \"\".concat(classNamePrefix, \" \").concat(classNamePrefix, \"-Digraph--\").concat(name);\n };\n });\n _this.rootRef = React.createRef();\n _this.zoomManager = null;\n\n _this.getGlobalId = function (name) {\n return \"\".concat(_this.baseId, \"--\").concat(name);\n };\n\n _this.getZoomTransform = function () {\n return _this.state.zoomTransform;\n };\n\n _this.setSizeVertices = function (senderKey, sizeVertices) {\n var _this$props = _this.props,\n edges = _this$props.edges,\n layoutManager = _this$props.layoutManager,\n expectedKey = _this$props.measurableNodesKey;\n\n if (senderKey !== expectedKey) {\n var values = \"expected \".concat(JSON.stringify(expectedKey), \", recieved \").concat(JSON.stringify(senderKey));\n throw new Error(\"Key mismatch for measuring nodes; \".concat(values));\n }\n\n _this.setState({\n sizeVertices: sizeVertices\n });\n\n var _layoutManager$getLay = layoutManager.getLayout(edges, sizeVertices),\n layout = _layoutManager$getLay.layout;\n\n layout.then(_this.onLayoutDone);\n\n _this.setState({\n sizeVertices: sizeVertices,\n layoutPhase: _types.ELayoutPhase.CalcPositions\n }); // We can add support for drawing nodes in the correct position before we have edges\n // via the following (instead of the above)\n // const { positions, layout } = layoutManager.getLayout(edges, sizeVertices);\n // positions.then(this._onPositionsDone);\n\n };\n\n _this.onZoomUpdated = function (zoomTransform) {\n _this.setState({\n zoomTransform: zoomTransform\n });\n };\n\n _this.onLayoutDone = function (result) {\n if (result.isCancelled) {\n return;\n }\n\n var layoutEdges = result.edges,\n layoutGraph = result.graph,\n layoutVertices = result.vertices;\n\n _this.setState({\n layoutEdges: layoutEdges,\n layoutGraph: layoutGraph,\n layoutVertices: layoutVertices,\n layoutPhase: _types.ELayoutPhase.Done\n });\n\n if (_this.zoomManager) {\n _this.zoomManager.setContentSize(layoutGraph);\n }\n };\n\n var _edges = props.edges,\n vertices = props.vertices,\n zoomEnabled = props.zoom;\n\n if (Array.isArray(_edges) && _edges.length && Array.isArray(vertices) && vertices.length) {\n _this.state.layoutPhase = _types.ELayoutPhase.CalcSizes;\n _this.state.edges = _edges;\n _this.state.vertices = vertices;\n }\n\n if (zoomEnabled) {\n _this.zoomManager = new _ZoomManager.default(_this.onZoomUpdated);\n }\n\n _this.renderUtils = {\n getGlobalId: _this.getGlobalId,\n getZoomTransform: _this.getZoomTransform\n };\n return _this;\n }\n\n _createClass(Digraph, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var current = this.rootRef.current;\n\n if (current && this.zoomManager) {\n this.zoomManager.setElement(current);\n }\n }\n }, {\n key: \"renderLayers\",\n value: function renderLayers() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n classNamePrefix = _this$props2.classNamePrefix,\n topLayers = _this$props2.layers;\n var getClassName = this.makeClassNameFactory(classNamePrefix || ''); // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n var _this$state = this.state,\n _ = _this$state.sizeVertices,\n partialGraphState = _objectWithoutProperties(_this$state, [\"sizeVertices\"]);\n\n var graphState = _objectSpread({}, partialGraphState, {\n renderUtils: this.renderUtils\n });\n\n var layoutPhase = graphState.layoutPhase;\n return topLayers.map(function (layer) {\n var layerType = layer.layerType,\n key = layer.key,\n setOnContainer = layer.setOnContainer;\n\n if (layer.layers) {\n if (layer.layerType === _types.ELayerType.Html) {\n return React.createElement(_HtmlLayersGroup.default, {\n key: key,\n graphState: graphState,\n layers: layer.layers,\n getClassName: getClassName,\n setOnContainer: setOnContainer,\n setSizeVertices: _this2.setSizeVertices\n });\n } // svg group layer, the if is for TypeScript\n\n\n if (layer.layerType === _types.ELayerType.Svg) {\n return React.createElement(_SvgLayersGroup.default, {\n key: key,\n getClassName: getClassName,\n defs: layer.defs,\n graphState: graphState,\n layers: layer.layers,\n setOnContainer: setOnContainer\n });\n }\n }\n\n if (layer.edges) {\n // edges standalone layer\n var defs = layer.defs,\n markerEndId = layer.markerEndId,\n markerStartId = layer.markerStartId,\n setOnEdge = layer.setOnEdge;\n return layoutPhase === _types.ELayoutPhase.Done ? React.createElement(_SvgEdgesLayer.default, {\n key: key,\n standalone: true,\n getClassName: getClassName,\n defs: defs,\n graphState: graphState,\n markerEndId: markerEndId,\n markerStartId: markerStartId,\n setOnContainer: setOnContainer,\n setOnEdge: setOnEdge\n }) : null;\n }\n\n if (layer.measurable) {\n // standalone measurable Nodes Layer\n var measureNode = layer.measureNode,\n _renderNode = layer.renderNode,\n setOnNode = layer.setOnNode;\n return React.createElement(_MeasurableNodesLayer.default, {\n key: key,\n standalone: true,\n getClassName: getClassName,\n graphState: graphState,\n layerType: layerType,\n measureNode: measureNode,\n renderNode: _renderNode,\n senderKey: key,\n setOnContainer: setOnContainer,\n setOnNode: setOnNode,\n setSizeVertices: _this2.setSizeVertices\n });\n }\n\n var renderNode = layer.renderNode;\n\n if (renderNode !== undefined) {\n return React.createElement(_NodesLayer.default, {\n key: key,\n standalone: true,\n getClassName: getClassName,\n graphState: graphState,\n layerType: layer.layerType,\n renderNode: renderNode,\n setOnContainer: setOnContainer,\n setOnNode: layer.setOnNode\n });\n }\n\n throw new Error('Unrecognized layer');\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props3 = this.props,\n className = _this$props3.className,\n classNamePrefix = _this$props3.classNamePrefix,\n minimapEnabled = _this$props3.minimap,\n minimapClassName = _this$props3.minimapClassName,\n setOnGraph = _this$props3.setOnGraph,\n style = _this$props3.style;\n var builtinStyle = this.zoomManager ? WRAPPER_STYLE_ZOOM : WRAPPER_STYLE;\n var rootProps = (0, _utils.assignMergeCss)({\n style: builtinStyle,\n className: \"\".concat(classNamePrefix, \" \").concat(classNamePrefix, \"-Digraph\")\n }, {\n className: className,\n style: style\n }, (0, _utils.getProps)(setOnGraph, _objectSpread({}, this.state, {\n renderUtils: this.renderUtils\n })));\n return React.createElement(\"div\", rootProps, React.createElement(\"div\", {\n style: builtinStyle,\n ref: this.rootRef\n }, this.renderLayers()), minimapEnabled && this.zoomManager && React.createElement(_MiniMap.default, Object.assign({\n className: minimapClassName,\n classNamePrefix: classNamePrefix\n }, this.zoomManager.getProps())));\n }\n }]);\n\n return Digraph;\n}(React.PureComponent);\n\nexports.default = Digraph;\nDigraph.propsFactories = {\n classNameIsSmall: _propsFactories.classNameIsSmall,\n scaleOpacity: _propsFactories.scaleProperty.opacity,\n scaleStrokeOpacity: _propsFactories.scaleProperty.strokeOpacity,\n scaleStrokeOpacityStrong: _propsFactories.scaleProperty.strokeOpacityStrong,\n scaleStrokeOpacityStrongest: _propsFactories.scaleProperty.strokeOpacityStrongest\n};\nDigraph.scaleProperty = _propsFactories.scaleProperty;\nDigraph.defaultProps = {\n className: '',\n classNamePrefix: 'plexus',\n minimap: false,\n minimapClassName: '',\n zoom: false\n};","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _possibleConstructorReturn = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _inherits = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/inherits\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _HtmlLayer = _interopRequireDefault(require(\"./HtmlLayer\"));\n\nvar _MeasurableNodesLayer = _interopRequireDefault(require(\"./MeasurableNodesLayer\"));\n\nvar _NodesLayer = _interopRequireDefault(require(\"./NodesLayer\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n} // Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nvar HtmlLayersGroup =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(HtmlLayersGroup, _React$PureComponent);\n\n function HtmlLayersGroup() {\n _classCallCheck(this, HtmlLayersGroup);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(HtmlLayersGroup).apply(this, arguments));\n }\n\n _createClass(HtmlLayersGroup, [{\n key: \"renderLayers\",\n value: function renderLayers() {\n var _this$props = this.props,\n getClassName = _this$props.getClassName,\n layers = _this$props.layers,\n graphState = _this$props.graphState,\n setSizeVertices = _this$props.setSizeVertices;\n return layers.map(function (layer) {\n var key = layer.key,\n setOnContainer = layer.setOnContainer;\n\n if (layer.measurable) {\n var renderNode = layer.renderNode,\n setOnNode = layer.setOnNode;\n return React.createElement(_MeasurableNodesLayer.default, {\n key: key,\n getClassName: getClassName,\n graphState: graphState,\n layerType: _types.ELayerType.Html,\n renderNode: renderNode,\n senderKey: key,\n setOnContainer: setOnContainer,\n setOnNode: setOnNode,\n setSizeVertices: setSizeVertices\n });\n }\n\n if (layer.renderNode) {\n var _renderNode = layer.renderNode,\n _setOnNode = layer.setOnNode;\n return React.createElement(_NodesLayer.default, {\n key: key,\n getClassName: getClassName,\n graphState: graphState,\n layerType: _types.ELayerType.Html,\n renderNode: _renderNode,\n setOnContainer: setOnContainer,\n setOnNode: _setOnNode\n });\n } // html edges layer\n\n\n throw new Error('Not implemented');\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n return React.createElement(_HtmlLayer.default, Object.assign({\n topLayer: true,\n classNamePart: \"HtmlLayersGroup\"\n }, this.props), this.renderLayers());\n }\n }]);\n\n return HtmlLayersGroup;\n}(React.PureComponent);\n\nexports.default = HtmlLayersGroup;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getScaleExtent = getScaleExtent;\nexports.fitWithinContainer = fitWithinContainer;\nexports.constrainZoom = constrainZoom;\nexports.getZoomStyle = getZoomStyle;\nexports.getZoomAttr = getZoomAttr;\nexports.DEFAULT_SCALE_EXTENT = void 0;\n\nvar _d3Zoom = require(\"d3-zoom\"); // Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nvar SCALE_MAX = 1;\nvar SCALE_MIN = 0.03;\nvar SCALE_MARGIN = 0.05;\nvar DEFAULT_ZOOM_STYLE = Object.freeze({\n transform: \"translate(0px, 0px) scale(1)\",\n transformOrigin: '0 0'\n});\nvar DEFAULT_SCALE_EXTENT = [SCALE_MIN, SCALE_MAX];\nexports.DEFAULT_SCALE_EXTENT = DEFAULT_SCALE_EXTENT;\n\nfunction boundValue(min, max, value) {\n if (value < min) {\n return min;\n }\n\n return value > max ? max : value;\n}\n\nfunction getFittedScale(width, height, viewWidth, viewHeight) {\n return Math.max(SCALE_MIN, Math.min((1 - SCALE_MARGIN) * viewWidth / width, (1 - SCALE_MARGIN) * viewHeight / height, SCALE_MAX));\n}\n\nfunction getScaleExtent(width, height, viewWidth, viewHeight) {\n var scaleMin = getFittedScale(width, height, viewWidth, viewHeight);\n return [scaleMin, SCALE_MAX];\n}\n\nfunction fitWithinContainer(width, height, viewWidth, viewHeight) {\n var scale = getFittedScale(width, height, viewWidth, viewHeight);\n var scaledHeight = scale * height;\n var scaledWidth = scale * width;\n var x = (viewWidth - scaledWidth) / 2;\n var y = (viewHeight - scaledHeight) / 2;\n return _d3Zoom.zoomIdentity.translate(x, y).scale(scale);\n}\n\nfunction constrainZoom(transform, width, height, viewWidth, viewHeight) {\n var tk = transform.k,\n tx = transform.x,\n ty = transform.y;\n var fittedScale = getFittedScale(width, height, viewWidth, viewHeight);\n var k = Math.max(tk, fittedScale);\n var x = boundValue(-width * k + viewWidth * 0.5, viewWidth * 0.5, tx);\n var y = boundValue(-height * k + viewHeight * 0.5, viewHeight * 0.5, ty);\n\n if (k !== tk || x !== tx || y !== ty) {\n return _d3Zoom.zoomIdentity.translate(x, y).scale(k);\n }\n\n return transform;\n}\n\nfunction getZoomStyle(transform) {\n if (transform == null) {\n return DEFAULT_ZOOM_STYLE;\n }\n\n var x = transform.x,\n y = transform.y,\n k = transform.k;\n var rv = {\n transform: \"translate(\".concat(x.toFixed(), \"px, \").concat(y.toFixed(), \"px) scale(\").concat(k, \")\"),\n transformOrigin: '0 0'\n };\n return rv;\n}\n\nfunction getZoomAttr(transform) {\n if (!transform) {\n return undefined;\n }\n\n var x = transform.x,\n y = transform.y,\n k = transform.k;\n return \"translate(\".concat(x.toFixed(), \",\").concat(y.toFixed(), \") scale(\").concat(k, \")\");\n}","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _possibleConstructorReturn = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _inherits = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/inherits\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _MeasurableNode = _interopRequireDefault(require(\"./MeasurableNode\"));\n\nvar _utils = require(\"./utils\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n} // Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nvar MeasurableNodes =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(MeasurableNodes, _React$Component);\n\n function MeasurableNodes() {\n _classCallCheck(this, MeasurableNodes);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(MeasurableNodes).apply(this, arguments));\n }\n\n _createClass(MeasurableNodes, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(np) {\n var p = this.props;\n return p.renderNode !== np.renderNode || p.getClassName !== np.getClassName || p.layerType !== np.layerType || p.layoutVertices !== np.layoutVertices || p.nodeRefs !== np.nodeRefs || p.renderUtils !== np.renderUtils || p.vertices !== np.vertices || !(0, _utils.isSamePropSetter)(p.setOnNode, np.setOnNode);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n getClassName = _this$props.getClassName,\n nodeRefs = _this$props.nodeRefs,\n layoutVertices = _this$props.layoutVertices,\n renderUtils = _this$props.renderUtils,\n vertices = _this$props.vertices,\n layerType = _this$props.layerType,\n renderNode = _this$props.renderNode,\n setOnNode = _this$props.setOnNode;\n return vertices.map(function (vertex, i) {\n return React.createElement(_MeasurableNode.default, {\n key: vertex.key,\n getClassName: getClassName,\n ref: nodeRefs[i],\n hidden: !layoutVertices,\n layerType: layerType,\n renderNode: renderNode,\n renderUtils: renderUtils,\n vertex: vertex,\n layoutVertex: layoutVertices && layoutVertices[i],\n setOnNode: setOnNode\n });\n });\n }\n }]);\n\n return MeasurableNodes;\n}(React.Component);\n\nexports.default = MeasurableNodes;","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _possibleConstructorReturn = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _inherits = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/inherits\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _types = require(\"./types\");\n\nvar _utils = require(\"./utils\");\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n} // Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nvar SVG_HIDDEN_STYLE = {\n visibility: 'hidden'\n};\n\nvar MeasurableNode =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(MeasurableNode, _React$PureComponent);\n\n function MeasurableNode() {\n var _this;\n\n _classCallCheck(this, MeasurableNode);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(MeasurableNode).apply(this, arguments));\n _this.htmlRef = React.createRef();\n _this.svgRef = React.createRef();\n return _this;\n }\n\n _createClass(MeasurableNode, [{\n key: \"measureHtml\",\n value: function measureHtml() {\n var current = this.htmlRef.current;\n\n if (!current) {\n return {\n height: 0,\n width: 0\n };\n }\n\n return {\n height: current.offsetHeight,\n width: current.offsetWidth\n };\n }\n }, {\n key: \"measureSvg\",\n value: function measureSvg() {\n var current = this.svgRef.current;\n\n if (!current) {\n return {\n height: 0,\n width: 0\n };\n }\n\n var _current$getBBox = current.getBBox(),\n height = _current$getBBox.height,\n width = _current$getBBox.width;\n\n return {\n height: height,\n width: width\n };\n }\n }, {\n key: \"renderHtml\",\n value: function renderHtml() {\n var _this$props = this.props,\n getClassName = _this$props.getClassName,\n hidden = _this$props.hidden,\n renderNode = _this$props.renderNode,\n renderUtils = _this$props.renderUtils,\n setOnNode = _this$props.setOnNode,\n vertex = _this$props.vertex,\n layoutVertex = _this$props.layoutVertex;\n\n var _ref = layoutVertex || {},\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? null : _ref$height,\n _ref$left = _ref.left,\n left = _ref$left === void 0 ? null : _ref$left,\n _ref$top = _ref.top,\n top = _ref$top === void 0 ? null : _ref$top,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? null : _ref$width;\n\n var props = (0, _utils.assignMergeCss)({\n className: getClassName('MeasurableHtmlNode'),\n style: {\n height: height,\n width: width,\n boxSizing: 'border-box',\n position: 'absolute',\n transform: left == null || top == null ? undefined : \"translate(\".concat(left.toFixed(), \"px,\").concat(top.toFixed(), \"px)\"),\n visibility: hidden ? 'hidden' : undefined\n }\n }, (0, _utils.getProps)(setOnNode, vertex, renderUtils, layoutVertex));\n return React.createElement(\"div\", Object.assign({\n ref: this.htmlRef\n }, props), renderNode(vertex, renderUtils, layoutVertex));\n }\n }, {\n key: \"renderSvg\",\n value: function renderSvg() {\n var _this$props2 = this.props,\n getClassName = _this$props2.getClassName,\n hidden = _this$props2.hidden,\n renderNode = _this$props2.renderNode,\n renderUtils = _this$props2.renderUtils,\n setOnNode = _this$props2.setOnNode,\n vertex = _this$props2.vertex,\n layoutVertex = _this$props2.layoutVertex;\n\n var _ref2 = layoutVertex || {},\n _ref2$left = _ref2.left,\n left = _ref2$left === void 0 ? null : _ref2$left,\n _ref2$top = _ref2.top,\n top = _ref2$top === void 0 ? null : _ref2$top;\n\n var props = (0, _utils.assignMergeCss)({\n className: getClassName('MeasurableSvgNode'),\n transform: left == null || top == null ? undefined : \"translate(\".concat(left.toFixed(), \", \").concat(top.toFixed(), \")\"),\n style: hidden ? SVG_HIDDEN_STYLE : null\n }, (0, _utils.getProps)(setOnNode, vertex, renderUtils, layoutVertex));\n return React.createElement(\"g\", Object.assign({\n ref: this.svgRef\n }, props), renderNode(vertex, renderUtils, layoutVertex));\n }\n }, {\n key: \"getRef\",\n value: function getRef() {\n if (this.props.layerType === _types.ELayerType.Html) {\n return {\n htmlWrapper: this.htmlRef.current,\n svgWrapper: undefined\n };\n }\n\n return {\n svgWrapper: this.svgRef.current,\n htmlWrapper: undefined\n };\n }\n }, {\n key: \"measure\",\n value: function measure() {\n return this.props.layerType === _types.ELayerType.Html ? this.measureHtml() : this.measureSvg();\n }\n }, {\n key: \"render\",\n value: function render() {\n var layerType = this.props.layerType;\n\n if (layerType === _types.ELayerType.Html) {\n return this.renderHtml();\n }\n\n return this.renderSvg();\n }\n }]);\n\n return MeasurableNode;\n}(React.PureComponent);\n\nexports.default = MeasurableNode;","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _possibleConstructorReturn = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _inherits = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/inherits\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"./utils\");\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n} // Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nvar getMarkerScale = (0, _utils.getValueScaler)({\n factorMax: 1,\n factorMin: 0.1,\n valueMax: 2,\n valueMin: 6\n});\n\nfunction renderDefaultMarker(graphState, entryProps, id) {\n var scale = getMarkerScale(graphState.zoomTransform.k);\n return React.createElement(\"marker\", Object.assign({\n id: id,\n markerHeight: scale * 8,\n markerUnits: \"userSpaceOnUse\",\n markerWidth: scale * 8,\n orient: \"auto\",\n refX: scale * 8,\n refY: scale * 3\n }, entryProps), React.createElement(\"path\", {\n d: \"M0,0 L0,\".concat(scale * 6, \" L\").concat(scale * 9, \",\").concat(scale * 3, \" z\")\n }));\n}\n\nvar SvgDefEntry =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(SvgDefEntry, _React$PureComponent);\n\n function SvgDefEntry() {\n _classCallCheck(this, SvgDefEntry);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(SvgDefEntry).apply(this, arguments));\n }\n\n _createClass(SvgDefEntry, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n getClassName = _this$props.getClassName,\n localId = _this$props.localId,\n graphState = _this$props.graphState,\n _this$props$renderEnt = _this$props.renderEntry,\n renderEntry = _this$props$renderEnt === void 0 ? renderDefaultMarker : _this$props$renderEnt,\n setOnEntry = _this$props.setOnEntry;\n var id = graphState.renderUtils.getGlobalId(localId);\n var entryProps = (0, _utils.assignMergeCss)({\n className: getClassName('DefEntry')\n }, (0, _utils.getProps)(setOnEntry, graphState));\n return renderEntry(graphState, entryProps, id);\n }\n }]);\n\n return SvgDefEntry;\n}(React.PureComponent);\n\nexports.default = SvgDefEntry;","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _possibleConstructorReturn = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _inherits = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/inherits\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _Node = _interopRequireDefault(require(\"./Node\"));\n\nvar _utils = require(\"./utils\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n} // Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nvar Nodes =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(Nodes, _React$Component);\n\n function Nodes() {\n _classCallCheck(this, Nodes);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Nodes).apply(this, arguments));\n }\n\n _createClass(Nodes, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(np) {\n var p = this.props;\n return p.renderNode !== np.renderNode || p.getClassName !== np.getClassName || p.layerType !== np.layerType || p.layoutVertices !== np.layoutVertices || p.renderUtils !== np.renderUtils || !(0, _utils.isSamePropSetter)(p.setOnNode, np.setOnNode);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n getClassName = _this$props.getClassName,\n layoutVertices = _this$props.layoutVertices,\n renderUtils = _this$props.renderUtils,\n layerType = _this$props.layerType,\n renderNode = _this$props.renderNode,\n setOnNode = _this$props.setOnNode;\n return layoutVertices.map(function (lv) {\n return React.createElement(_Node.default, {\n key: lv.vertex.key,\n getClassName: getClassName,\n layerType: layerType,\n layoutVertex: lv,\n renderNode: renderNode,\n renderUtils: renderUtils,\n setOnNode: setOnNode\n });\n });\n }\n }]);\n\n return Nodes;\n}(React.Component);\n\nexports.default = Nodes;","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _possibleConstructorReturn = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _inherits = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/inherits\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _types = require(\"./types\");\n\nvar _utils = require(\"./utils\");\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n} // Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nfunction getHtmlStyle(lv) {\n var height = lv.height,\n left = lv.left,\n top = lv.top,\n width = lv.width;\n return {\n height: height,\n width: width,\n position: 'absolute',\n transform: left == null || top == null ? undefined : \"translate(\".concat(left.toFixed(), \"px,\").concat(top.toFixed(), \"px)\")\n };\n}\n\nvar Node =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Node, _React$PureComponent);\n\n function Node() {\n _classCallCheck(this, Node);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Node).apply(this, arguments));\n }\n\n _createClass(Node, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n getClassName = _this$props.getClassName,\n layerType = _this$props.layerType,\n renderNode = _this$props.renderNode,\n renderUtils = _this$props.renderUtils,\n setOnNode = _this$props.setOnNode,\n layoutVertex = _this$props.layoutVertex;\n var nodeContent = renderNode(layoutVertex, renderUtils);\n\n if (!nodeContent) {\n return null;\n }\n\n var left = layoutVertex.left,\n top = layoutVertex.top;\n var props = (0, _utils.assignMergeCss)({\n className: getClassName('Node'),\n style: layerType === _types.ELayerType.Html ? getHtmlStyle(layoutVertex) : null,\n transform: layerType === _types.ELayerType.Svg ? \"translate(\".concat(left.toFixed(), \",\").concat(top.toFixed(), \")\") : null\n }, (0, _utils.getProps)(setOnNode, layoutVertex, renderUtils));\n var Wrapper = layerType === _types.ELayerType.Html ? 'div' : 'g';\n return React.createElement(Wrapper, props, nodeContent);\n }\n }]);\n\n return Node;\n}(React.PureComponent);\n\nexports.default = Node;","\"use strict\";\n\nvar _defineProperty = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/defineProperty\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.scaleProperty = exports.classNameIsSmall = void 0;\n\nvar _utils = require(\"./utils\"); // Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nvar classNameIsSmall = function () {\n // define via an IIFE to sequester consts\n var SCALE_THRESHOLD_SMALL = 0.29; // eslint-disable-next-line no-shadow\n\n function classNameIsSmall(graphState) {\n var _ref = graphState.zoomTransform || {},\n _ref$k = _ref.k,\n k = _ref$k === void 0 ? 1 : _ref$k;\n\n if (k <= SCALE_THRESHOLD_SMALL) {\n return {\n className: 'is-small'\n };\n }\n\n return null;\n }\n\n return classNameIsSmall;\n}();\n\nexports.classNameIsSmall = classNameIsSmall;\n\nvar scaleProperty = function () {\n // define via an IIFE to sequester consts\n var MAX = 1;\n var MIN = 0.3;\n var EXP_ADJUSTER = 0.5; // eslint-disable-next-line no-shadow\n\n function scaleProperty(property) {\n var valueMin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : MIN;\n var valueMax = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : MAX;\n var expAdjuster = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : EXP_ADJUSTER;\n var defaultStyle = {\n style: _defineProperty({}, property, valueMax)\n };\n var fnName = \"scale_\".concat(property);\n var valueScaler = (0, _utils.getValueScaler)({\n valueMax: valueMax,\n valueMin: valueMin,\n expAdjuster: expAdjuster\n });\n\n var o = _defineProperty({}, fnName, function (graphState) {\n var zoomTransform = graphState.zoomTransform;\n\n if (!zoomTransform) {\n return defaultStyle;\n }\n\n var value = valueScaler(zoomTransform.k);\n return {\n style: _defineProperty({}, property, value)\n };\n });\n\n return o[fnName];\n }\n\n scaleProperty.opacity = scaleProperty('opacity');\n scaleProperty.strokeOpacity = scaleProperty('strokeOpacity');\n scaleProperty.strokeOpacityStrong = scaleProperty('strokeOpacity', MIN, MAX, 0.75);\n scaleProperty.strokeOpacityStrongest = scaleProperty('strokeOpacity', MIN, MAX, 1);\n return scaleProperty;\n}();\n\nexports.scaleProperty = scaleProperty;","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _possibleConstructorReturn = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _inherits = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/inherits\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _SvgEdge = _interopRequireDefault(require(\"./SvgEdge\"));\n\nvar _utils = require(\"./utils\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n} // Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nvar SvgEdges =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(SvgEdges, _React$Component);\n\n function SvgEdges() {\n _classCallCheck(this, SvgEdges);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(SvgEdges).apply(this, arguments));\n }\n\n _createClass(SvgEdges, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(np) {\n var p = this.props;\n return p.getClassName !== np.getClassName || p.layoutEdges !== np.layoutEdges || p.markerEndId !== np.markerEndId || p.markerStartId !== np.markerStartId || p.renderUtils !== np.renderUtils || !(0, _utils.isSamePropSetter)(p.setOnEdge, np.setOnEdge);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n getClassName = _this$props.getClassName,\n layoutEdges = _this$props.layoutEdges,\n markerEndId = _this$props.markerEndId,\n markerStartId = _this$props.markerStartId,\n renderUtils = _this$props.renderUtils,\n setOnEdge = _this$props.setOnEdge;\n return layoutEdges.map(function (edge) {\n return React.createElement(_SvgEdge.default, {\n key: \"\".concat(edge.edge.from, \"\\x0B\").concat(edge.edge.to),\n getClassName: getClassName,\n layoutEdge: edge,\n markerEndId: markerEndId,\n markerStartId: markerStartId,\n renderUtils: renderUtils,\n setOnEdge: setOnEdge\n });\n });\n }\n }]);\n\n return SvgEdges;\n}(React.Component);\n\nexports.default = SvgEdges;","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _possibleConstructorReturn = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _inherits = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/inherits\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _memoizeOne = _interopRequireDefault(require(\"memoize-one\"));\n\nvar _utils = require(\"./utils\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n} // Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nfunction makeIriRef(renderUtils, localId) {\n return localId ? \"url(#\".concat(renderUtils.getGlobalId(localId), \")\") : localId;\n}\n\nvar PATH_D_CMDS = ['M', 'C'];\n\nfunction makePathD(points) {\n var dArr = [];\n var cmdLen = PATH_D_CMDS.length;\n\n for (var i = 0; i < points.length; i++) {\n var pt = points[i];\n\n if (i < cmdLen) {\n dArr.push(PATH_D_CMDS[i]);\n }\n\n dArr.push(pt[0], pt[1]);\n }\n\n return dArr.join(' ');\n}\n\nvar SvgEdge =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(SvgEdge, _React$PureComponent);\n\n function SvgEdge() {\n var _this;\n\n _classCallCheck(this, SvgEdge);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(SvgEdge).apply(this, arguments));\n _this.makePathD = (0, _memoizeOne.default)(makePathD);\n return _this;\n }\n\n _createClass(SvgEdge, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n getClassName = _this$props.getClassName,\n layoutEdge = _this$props.layoutEdge,\n markerEndId = _this$props.markerEndId,\n markerStartId = _this$props.markerStartId,\n renderUtils = _this$props.renderUtils,\n setOnEdge = _this$props.setOnEdge;\n var pathPoints = layoutEdge.pathPoints;\n var d = makePathD(pathPoints);\n var markerEnd = makeIriRef(renderUtils, markerEndId);\n var markerStart = makeIriRef(renderUtils, markerStartId);\n var customProps = (0, _utils.assignMergeCss)({\n className: getClassName('SvgEdge')\n }, (0, _utils.getProps)(setOnEdge, layoutEdge, renderUtils));\n return React.createElement(\"path\", Object.assign({\n d: d,\n fill: \"none\",\n vectorEffect: \"non-scaling-stroke\",\n markerEnd: markerEnd,\n markerStart: markerStart\n }, customProps));\n }\n }]);\n\n return SvgEdge;\n}(React.PureComponent);\n\nexports.default = SvgEdge;","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _possibleConstructorReturn = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _inherits = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/inherits\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _NodesLayer = _interopRequireDefault(require(\"./NodesLayer\"));\n\nvar _SvgEdgesLayer = _interopRequireDefault(require(\"./SvgEdgesLayer\"));\n\nvar _SvgLayer = _interopRequireDefault(require(\"./SvgLayer\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n} // Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nvar SvgLayersGroup =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(SvgLayersGroup, _React$PureComponent);\n\n function SvgLayersGroup() {\n _classCallCheck(this, SvgLayersGroup);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(SvgLayersGroup).apply(this, arguments));\n }\n\n _createClass(SvgLayersGroup, [{\n key: \"renderLayers\",\n value: function renderLayers() {\n var _this$props = this.props,\n getClassName = _this$props.getClassName,\n layers = _this$props.layers,\n graphState = _this$props.graphState;\n return layers.map(function (layer) {\n var key = layer.key,\n setOnContainer = layer.setOnContainer;\n\n if (layer.edges) {\n return React.createElement(_SvgEdgesLayer.default, {\n key: key,\n getClassName: getClassName,\n graphState: graphState,\n markerEndId: layer.markerEndId,\n markerStartId: layer.markerStartId,\n setOnContainer: setOnContainer,\n setOnEdge: layer.setOnEdge\n });\n }\n\n if (layer.measurable) {\n // meassurable nodes layer\n throw new Error('Not implemented');\n }\n\n return React.createElement(_NodesLayer.default, {\n key: key,\n getClassName: getClassName,\n graphState: graphState,\n layerType: _types.ELayerType.Svg,\n renderNode: layer.renderNode,\n setOnContainer: setOnContainer,\n setOnNode: layer.setOnNode\n });\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n return React.createElement(_SvgLayer.default, Object.assign({\n topLayer: true\n }, this.props, {\n classNamePart: \"SvgLayersGroup\"\n }), this.renderLayers());\n }\n }]);\n\n return SvgLayersGroup;\n}(React.PureComponent);\n\nexports.default = SvgLayersGroup;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n} // Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// SVG is from React Icons:\n// https://github.com/react-icons/react-icons/blob/396b4d9241a61b6d22f3907273158b6a91aea2fd/md/zoom-out-map.js\n// LICENSE: MIT\n\n\nvar _default = React.createElement(\"svg\", {\n fill: \"currentColor\",\n preserveAspectRatio: \"xMidYMid meet\",\n height: \"1em\",\n width: \"1em\",\n viewBox: \"0 0 40 40\"\n}, React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m35 25v10h-10l3.8-3.8-4.8-4.8 2.4-2.4 4.8 4.8z m-20 10h-10v-10l3.8 3.8 4.8-4.8 2.4 2.4-4.8 4.8z m-10-20v-10h10l-3.8 3.8 4.8 4.8-2.4 2.4-4.8-4.8z m20-10h10v10l-3.8-3.8-4.8 4.8-2.4-2.4 4.8-4.8z\"\n})));\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _DirectedGraph = _interopRequireDefault(require(\"./DirectedGraph\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nvar _default = _DirectedGraph.default;\nexports.default = _default;","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _possibleConstructorReturn = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _inherits = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/inherits\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _EdgeArrowDef = _interopRequireDefault(require(\"./builtins/EdgeArrowDef\"));\n\nvar _EdgesContainer = _interopRequireDefault(require(\"./builtins/EdgesContainer\"));\n\nvar _PureEdges = _interopRequireDefault(require(\"./builtins/PureEdges\"));\n\nvar _PureNodes = _interopRequireDefault(require(\"./builtins/PureNodes\"));\n\nvar _classNameIsSmall = _interopRequireDefault(require(\"./prop-factories/classNameIsSmall\"));\n\nvar _mergePropSetters = _interopRequireWildcard(require(\"./prop-factories/mergePropSetters\"));\n\nvar _scaledStrokeWidth = _interopRequireDefault(require(\"./prop-factories/scaledStrokeWidth\"));\n\nvar _MiniMap = _interopRequireDefault(require(\"../zoom/MiniMap\"));\n\nvar _ZoomManager = _interopRequireWildcard(require(\"../zoom/ZoomManager\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar PHASE_NO_DATA = 0;\nvar PHASE_CALC_SIZES = 1;\nvar PHASE_CALC_POSITIONS = 2;\nvar PHASE_CALC_EDGES = 3;\nvar PHASE_DONE = 4;\nvar WRAPPER_STYLE_ZOOM = {\n height: '100%',\n overflow: 'hidden',\n position: 'relative',\n width: '100%'\n};\nvar WRAPPER_STYLE = {\n position: 'relative'\n};\nvar idCounter = 0;\n\nfunction createHtmlRefs(length) {\n var rv = [];\n\n for (var i = 0; i < length; i++) {\n rv.push(React.createRef());\n }\n\n return rv;\n}\n\nvar DirectedGraph =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(DirectedGraph, _React$PureComponent);\n\n _createClass(DirectedGraph, null, [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var edges = nextProps.edges,\n vertices = nextProps.vertices,\n zoomEnabled = nextProps.zoom;\n var stEdges = prevState.edges,\n stVertices = prevState.vertices,\n stZoomEnabled = prevState.zoomEnabled;\n\n if (zoomEnabled !== stZoomEnabled) {\n throw new Error('Zoom cannot be toggled');\n }\n\n if (edges === stEdges && vertices === stVertices) {\n return null;\n }\n\n return {\n edges: edges,\n vertices: vertices,\n layoutPhase: PHASE_CALC_SIZES,\n vertexRefs: createHtmlRefs(vertices.length),\n sizeVertices: null,\n layoutEdges: null,\n layoutGraph: null,\n layoutVertices: null\n };\n }\n }]);\n\n function DirectedGraph(props) {\n var _this;\n\n _classCallCheck(this, DirectedGraph);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(DirectedGraph).call(this, props));\n _this.arrowId = void 0;\n _this.arrowIriRef = void 0;\n _this.rootRef = void 0;\n _this.rootSelection = void 0;\n _this.zoomManager = void 0;\n _this.state = {\n edges: [],\n layoutPhase: PHASE_NO_DATA,\n sizeVertices: null,\n layoutEdges: null,\n layoutGraph: null,\n layoutVertices: null,\n vertexRefs: [],\n vertices: [],\n zoomEnabled: false,\n zoomTransform: _ZoomManager.zoomIdentity\n };\n\n _this._onPositionsDone = function (result) {\n if (!result.isCancelled) {\n var layoutGraph = result.graph,\n layoutVertices = result.vertices;\n\n _this.setState({\n layoutGraph: layoutGraph,\n layoutVertices: layoutVertices,\n layoutPhase: PHASE_CALC_EDGES\n });\n }\n };\n\n _this._onLayoutDone = function (result) {\n var root = _this.rootRef.current;\n\n if (result.isCancelled || !root) {\n return;\n }\n\n var layoutEdges = result.edges,\n layoutGraph = result.graph,\n layoutVertices = result.vertices;\n\n _this.setState({\n layoutEdges: layoutEdges,\n layoutGraph: layoutGraph,\n layoutVertices: layoutVertices,\n layoutPhase: PHASE_DONE\n });\n\n if (_this.zoomManager) {\n _this.zoomManager.setContentSize(layoutGraph);\n }\n };\n\n _this._onZoomUpdated = function (zoomTransform) {\n _this.setState({\n zoomTransform: zoomTransform\n });\n };\n\n var edges = props.edges,\n vertices = props.vertices,\n zoomEnabled = props.zoom;\n\n if (Array.isArray(edges) && edges.length && Array.isArray(vertices) && vertices.length) {\n _this.state.layoutPhase = PHASE_CALC_SIZES;\n _this.state.edges = edges;\n _this.state.vertices = vertices;\n _this.state.vertexRefs = createHtmlRefs(vertices.length);\n }\n\n _this.state.zoomEnabled = zoomEnabled;\n var idBase = \"plexus--DirectedGraph--\".concat(idCounter);\n idCounter += 1;\n _this.arrowId = _EdgeArrowDef.default.getId(idBase);\n _this.arrowIriRef = _EdgeArrowDef.default.getIriRef(idBase);\n _this.rootRef = React.createRef();\n\n if (zoomEnabled) {\n _this.zoomManager = new _ZoomManager.default(_this._onZoomUpdated);\n } else {\n _this.zoomManager = null;\n }\n\n return _this;\n }\n\n _createClass(DirectedGraph, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._setSizeVertices();\n\n var current = this.rootRef.current;\n\n if (current && this.zoomManager) {\n this.zoomManager.setElement(current);\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var layoutPhase = this.state.layoutPhase;\n\n if (layoutPhase === PHASE_CALC_SIZES) {\n this._setSizeVertices();\n }\n }\n }, {\n key: \"_setSizeVertices\",\n value: function _setSizeVertices() {\n var _this$props = this.props,\n edges = _this$props.edges,\n layoutManager = _this$props.layoutManager,\n vertices = _this$props.vertices;\n var sizeVertices = [];\n this.state.vertexRefs.forEach(function (ref, i) {\n var current = ref.current; // use a `.forEach` with a guard on `current` because TypeScript doesn't\n // like `.filter(Boolean)`\n\n if (current) {\n sizeVertices.push({\n height: current.offsetHeight,\n vertex: vertices[i],\n width: current.offsetWidth\n });\n }\n });\n\n var _layoutManager$getLay = layoutManager.getLayout(edges, sizeVertices),\n positions = _layoutManager$getLay.positions,\n layout = _layoutManager$getLay.layout;\n\n positions.then(this._onPositionsDone);\n layout.then(this._onLayoutDone);\n this.setState({\n sizeVertices: sizeVertices,\n layoutPhase: PHASE_CALC_POSITIONS\n });\n }\n }, {\n key: \"_renderVertices\",\n value: function _renderVertices() {\n var _this$props2 = this.props,\n classNamePrefix = _this$props2.classNamePrefix,\n getNodeLabel = _this$props2.getNodeLabel,\n setOnNode = _this$props2.setOnNode,\n vertices = _this$props2.vertices;\n var _this$state = this.state,\n layoutVertices = _this$state.layoutVertices,\n vertexRefs = _this$state.vertexRefs;\n return React.createElement(_PureNodes.default, {\n classNamePrefix: classNamePrefix,\n getNodeLabel: getNodeLabel || String,\n layoutVertices: layoutVertices,\n setOnNode: setOnNode,\n vertexRefs: vertexRefs,\n vertices: vertices\n });\n }\n }, {\n key: \"_renderEdges\",\n value: function _renderEdges() {\n var setOnEdgePath = this.props.setOnEdgePath;\n var layoutEdges = this.state.layoutEdges;\n return layoutEdges && React.createElement(_PureEdges.default, {\n setOnEdgePath: setOnEdgePath,\n layoutEdges: layoutEdges,\n arrowIriRef: this.arrowIriRef\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props3 = this.props,\n arrowScaleDampener = _this$props3.arrowScaleDampener,\n className = _this$props3.className,\n classNamePrefix = _this$props3.classNamePrefix,\n minimapEnabled = _this$props3.minimap,\n minimapClassName = _this$props3.minimapClassName,\n setOnEdgesContainer = _this$props3.setOnEdgesContainer,\n setOnNodesContainer = _this$props3.setOnNodesContainer,\n setOnRoot = _this$props3.setOnRoot;\n var _this$state2 = this.state,\n phase = _this$state2.layoutPhase,\n layoutGraph = _this$state2.layoutGraph,\n zoomEnabled = _this$state2.zoomEnabled,\n zoomTransform = _this$state2.zoomTransform;\n\n var _ref = layoutGraph || {},\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? 0 : _ref$height,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? 0 : _ref$width; // const { current: rootElm } = this.rootRef;\n\n\n var haveEdges = phase === PHASE_DONE;\n var nodesContainerProps = (0, _mergePropSetters.assignMergeCss)(setOnNodesContainer && setOnNodesContainer(this.state) || {}, {\n style: _objectSpread({}, zoomEnabled ? _ZoomManager.default.getZoomStyle(zoomTransform) : null, {\n position: 'absolute',\n top: 0,\n left: 0\n }),\n className: \"\".concat(classNamePrefix, \"-DirectedGraph--nodeContainer\")\n });\n var edgesContainerProps = (0, _mergePropSetters.assignMergeCss)(setOnEdgesContainer && setOnEdgesContainer(this.state) || {}, {\n style: {\n minHeight: '100%',\n minWidth: '100%'\n },\n className: \"\".concat(classNamePrefix, \"-DirectedGraph--nodeContainer\")\n });\n var rootProps = (0, _mergePropSetters.assignMergeCss)(setOnRoot && setOnRoot(this.state) || {}, {\n style: zoomEnabled ? WRAPPER_STYLE_ZOOM : WRAPPER_STYLE,\n className: \"\".concat(classNamePrefix, \"-DirectedGraph \").concat(className)\n });\n return React.createElement(\"div\", Object.assign({}, rootProps, {\n ref: this.rootRef\n }), layoutGraph && haveEdges && React.createElement(_EdgesContainer.default, Object.assign({}, edgesContainerProps, {\n height: height,\n width: width\n }), React.createElement(_EdgeArrowDef.default, {\n id: this.arrowId,\n scaleDampener: arrowScaleDampener,\n zoomScale: zoomEnabled && zoomTransform ? zoomTransform.k : null\n }), React.createElement(\"g\", {\n transform: zoomEnabled ? _ZoomManager.default.getZoomAttr(zoomTransform) : undefined\n }, this._renderEdges())), React.createElement(\"div\", nodesContainerProps, this._renderVertices()), zoomEnabled && minimapEnabled && this.zoomManager && React.createElement(_MiniMap.default, Object.assign({\n className: minimapClassName,\n classNamePrefix: classNamePrefix\n }, this.zoomManager.getProps())));\n }\n }]);\n\n return DirectedGraph;\n}(React.PureComponent);\n\nexports.default = DirectedGraph;\nDirectedGraph.propsFactories = {\n classNameIsSmall: _classNameIsSmall.default,\n mergePropSetters: _mergePropSetters.default,\n scaledStrokeWidth: _scaledStrokeWidth.default\n};\nDirectedGraph.defaultProps = {\n arrowScaleDampener: undefined,\n className: '',\n classNamePrefix: 'plexus',\n // getNodeLabel: defaultGetNodeLabel,\n minimap: false,\n minimapClassName: '',\n zoom: false\n};","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _possibleConstructorReturn = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _inherits = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/inherits\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n} // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nvar EdgeArrowDef =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(EdgeArrowDef, _React$PureComponent);\n\n function EdgeArrowDef() {\n _classCallCheck(this, EdgeArrowDef);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(EdgeArrowDef).apply(this, arguments));\n }\n\n _createClass(EdgeArrowDef, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n id = _this$props.id,\n scaleDampener = _this$props.scaleDampener,\n _this$props$zoomScale = _this$props.zoomScale,\n zoomScale = _this$props$zoomScale === void 0 ? null : _this$props$zoomScale;\n var scale = zoomScale != null ? Math.max(scaleDampener / zoomScale, 1) : 1;\n return React.createElement(\"defs\", null, React.createElement(\"marker\", {\n id: id,\n markerHeight: scale * 8,\n markerUnits: \"strokeWidth\",\n markerWidth: scale * 8,\n orient: \"auto\",\n refX: scale * 8,\n refY: scale * 3\n }, React.createElement(\"path\", {\n d: \"M0,0 L0,\".concat(scale * 6, \" L\").concat(scale * 9, \",\").concat(scale * 3, \" z\"),\n fill: \"#000\"\n })));\n }\n }], [{\n key: \"getId\",\n value: function getId(idBase) {\n return \"\".concat(idBase, \"--edgeArrow\");\n }\n }, {\n key: \"getIriRef\",\n value: function getIriRef(idBase) {\n return \"url(#\".concat(EdgeArrowDef.getId(idBase), \")\");\n }\n }]);\n\n return EdgeArrowDef;\n}(React.PureComponent);\n\nexports.default = EdgeArrowDef;\nEdgeArrowDef.defaultProps = {\n zoomScale: null,\n scaleDampener: 0.6\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = EdgesContainer;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction EdgesContainer(props) {\n var children = props.children,\n height = props.height,\n width = props.width,\n rest = _objectWithoutProperties(props, [\"children\", \"height\", \"width\"]);\n\n return React.createElement(\"svg\", Object.assign({\n height: height,\n width: width,\n xmlns: \"http://www.w3.org/2000/svg\"\n }, rest), children);\n}","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _possibleConstructorReturn = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _inherits = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/inherits\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _EdgePath = _interopRequireDefault(require(\"./EdgePath\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n} // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nvar PureEdges =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(PureEdges, _React$PureComponent);\n\n function PureEdges() {\n _classCallCheck(this, PureEdges);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(PureEdges).apply(this, arguments));\n }\n\n _createClass(PureEdges, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n arrowIriRef = _this$props.arrowIriRef,\n layoutEdges = _this$props.layoutEdges,\n setOnEdgePath = _this$props.setOnEdgePath;\n return layoutEdges.map(function (edge) {\n return React.createElement(_EdgePath.default, Object.assign({\n key: \"\".concat(edge.edge.from, \"\\x0B\").concat(edge.edge.to),\n pathPoints: edge.pathPoints,\n markerEnd: arrowIriRef\n }, setOnEdgePath && setOnEdgePath(edge.edge)));\n });\n }\n }]);\n\n return PureEdges;\n}(React.PureComponent);\n\nexports.default = PureEdges;","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _possibleConstructorReturn = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _inherits = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/inherits\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar D_CMDS = ['M', 'C']; // const strokeDefId = 'pathStroke';\n// const strokeReference = `url(#${strokeDefId})`;\n// export function EdgePathStrokeDef(props) {\n// const strokeDef = (\n// \n// \n// \n// \n// \n// \n// );\n// return props.enclose ? {strokeDef} : strokeDef;\n// }\n// NOTE: This function is necessary for gradient stroke\n// function renderPathPoint(pt, i) {\n// let [x, y] = pt;\n// if (i === 0) {\n// // add a small amount of jitter (1% of a pixel) to avert an issue with\n// // bounding-box based linear gradients\n// // https://stackoverflow.com/q/13223636/1888292\n// y += 0.01;\n// }\n// return `${D_CMDS[i] || ''}${x},${y}`;\n// }\n\nvar EdgePath =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(EdgePath, _React$PureComponent);\n\n function EdgePath() {\n _classCallCheck(this, EdgePath);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(EdgePath).apply(this, arguments));\n }\n\n _createClass(EdgePath, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n markerEnd = _this$props.markerEnd,\n pathPoints = _this$props.pathPoints,\n rest = _objectWithoutProperties(_this$props, [\"markerEnd\", \"pathPoints\"]);\n\n var d = pathPoints.map(function (pt, i) {\n return \"\".concat(D_CMDS[i] || '').concat(pt.join(','));\n }).join(' ');\n return React.createElement(\"path\", Object.assign({\n d: d,\n fill: \"none\",\n stroke: \"#000\",\n vectorEffect: \"non-scaling-stroke\",\n markerEnd: markerEnd\n }, rest));\n }\n }]);\n\n return EdgePath;\n}(React.PureComponent);\n\nexports.default = EdgePath;","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _possibleConstructorReturn = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _inherits = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/inherits\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _Node = _interopRequireDefault(require(\"./Node\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n} // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nvar PureNodes =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(PureNodes, _React$PureComponent);\n\n function PureNodes() {\n _classCallCheck(this, PureNodes);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(PureNodes).apply(this, arguments));\n }\n\n _createClass(PureNodes, [{\n key: \"_renderVertices\",\n value: function _renderVertices() {\n var _this$props = this.props,\n classNamePrefix = _this$props.classNamePrefix,\n getNodeLabel = _this$props.getNodeLabel,\n setOnNode = _this$props.setOnNode,\n vertices = _this$props.vertices,\n vertexRefs = _this$props.vertexRefs;\n return vertices.map(function (v, i) {\n return React.createElement(_Node.default, Object.assign({\n key: v.key,\n ref: vertexRefs[i],\n hidden: true,\n classNamePrefix: classNamePrefix,\n labelFactory: getNodeLabel,\n vertex: v\n }, setOnNode && setOnNode(v)));\n });\n }\n }, {\n key: \"_renderLayoutVertices\",\n value: function _renderLayoutVertices() {\n var _this$props2 = this.props,\n classNamePrefix = _this$props2.classNamePrefix,\n getNodeLabel = _this$props2.getNodeLabel,\n setOnNode = _this$props2.setOnNode,\n layoutVertices = _this$props2.layoutVertices,\n vertexRefs = _this$props2.vertexRefs;\n\n if (!layoutVertices) {\n return null;\n }\n\n return layoutVertices.map(function (lv, i) {\n return React.createElement(_Node.default, Object.assign({\n key: lv.vertex.key,\n ref: vertexRefs[i],\n classNamePrefix: classNamePrefix,\n labelFactory: getNodeLabel,\n vertex: lv.vertex,\n left: lv.left,\n top: lv.top\n }, setOnNode && setOnNode(lv.vertex)));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this.props.layoutVertices) {\n return this._renderLayoutVertices();\n }\n\n return this._renderVertices();\n }\n }]);\n\n return PureNodes;\n}(React.PureComponent);\n\nexports.default = PureNodes;","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport * from './types';\nexport { default as EUpdateTypes } from './EUpdateTypes';\nexport { default } from './DraggableManager';\n","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _possibleConstructorReturn = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _inherits = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/inherits\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar Node =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Node, _React$PureComponent);\n\n function Node() {\n _classCallCheck(this, Node);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Node).apply(this, arguments));\n }\n\n _createClass(Node, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n classNamePrefix = _this$props.classNamePrefix,\n hidden = _this$props.hidden,\n labelFactory = _this$props.labelFactory,\n vertex = _this$props.vertex,\n left = _this$props.left,\n top = _this$props.top,\n forwardedRef = _this$props.forwardedRef,\n rest = _objectWithoutProperties(_this$props, [\"classNamePrefix\", \"hidden\", \"labelFactory\", \"vertex\", \"left\", \"top\", \"forwardedRef\"]);\n\n var p = rest;\n p.style = _objectSpread({}, p.style, {\n position: 'absolute',\n transform: left == null || top == null ? undefined : \"translate(\".concat(left, \"px,\").concat(top, \"px)\"),\n visibility: hidden ? 'hidden' : undefined\n });\n p.className = \"\".concat(classNamePrefix, \"-Node \").concat(p.className || '');\n return React.createElement(\"div\", Object.assign({\n ref: forwardedRef\n }, p), labelFactory(vertex));\n }\n }]);\n\n return Node;\n}(React.PureComponent); // ghetto fabulous cast because the 16.3 API is not in flow yet\n// https://github.com/facebook/flow/issues/6103\n// eslint-disable-next-line react/no-multi-comp\n\n\nNode.defaultProps = {\n hidden: false,\n left: null,\n top: null\n};\n\nvar _default = React.forwardRef(function (props, ref) {\n return React.createElement(Node, Object.assign({}, props, {\n forwardedRef: ref\n }));\n});\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = classNameIsSmall; // Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nvar SCALE_THRESHOLD_SMALL = 0.29;\n\nfunction classNameIsSmall(graphState) {\n var _ref = graphState.zoomTransform || {},\n _ref$k = _ref.k,\n k = _ref$k === void 0 ? 1 : _ref$k;\n\n if (k <= SCALE_THRESHOLD_SMALL) {\n return {\n className: 'is-small'\n };\n }\n\n return null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.assignMergeCss = assignMergeCss;\nexports.default = mergePropSetters;\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n} // Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nfunction reduce(a, b) {\n // eslint-disable-next-line prefer-const\n var className = a.className,\n style = a.style,\n rest = _objectWithoutProperties(a, [\"className\", \"style\"]);\n\n var bClassName = b.className,\n bStyle = b.style,\n bRest = _objectWithoutProperties(b, [\"className\", \"style\"]); // merge className props\n\n\n if (bClassName) {\n className = className ? \"\".concat(className, \" \").concat(bClassName) : bClassName;\n } // merge style props\n\n\n if (bStyle && typeof bStyle === 'object') {\n style = style ? _objectSpread({}, style, bStyle) : bStyle;\n }\n\n return _objectSpread({\n className: className,\n style: style\n }, rest, bRest);\n}\n\nfunction assignMergeCss() {\n for (var _len = arguments.length, objs = new Array(_len), _key = 0; _key < _len; _key++) {\n objs[_key] = arguments[_key];\n }\n\n return objs.reduce(reduce);\n}\n\nfunction mergePropSetters() {\n for (var _len2 = arguments.length, fns = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n fns[_key2] = arguments[_key2];\n }\n\n return function (input) {\n var propsList = [];\n\n for (var i = 0; i < fns.length; i++) {\n var props = fns[i](input); // TypeScript doesn't believe in `.filter(Boolean)`, so do this manually\n // http://t.uber.com/joef-ts-strict-filter-boolean\n\n if (props) {\n propsList.push(props);\n }\n }\n\n return propsList.reduce(reduce);\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = scaledStrokeWidth; // Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nvar STROKE_MAX = 4.2;\nvar STROKE_MIN = 2;\nvar STROKE_SPREAD = STROKE_MAX - STROKE_MIN;\nvar PROPS_MAX = {\n style: {\n strokeWidth: STROKE_MAX.toFixed(1)\n }\n};\nvar PROPS_MIN = {\n style: {\n strokeWidth: STROKE_MIN.toFixed(1)\n }\n};\nvar THRESHOLD_MAX = 0.1;\nvar THRESHOLD_MIN = 0.6;\nvar THRESHOLD_SPREAD = THRESHOLD_MIN - THRESHOLD_MAX;\nvar cache = {};\nvar lastK = -Number.MIN_VALUE;\nvar lastProps = PROPS_MIN;\n\nfunction scaledStrokeWidth(graphState) {\n var _ref = graphState.zoomTransform || {},\n _ref$k = _ref.k,\n k = _ref$k === void 0 ? 1 : _ref$k;\n\n if (k === lastK) {\n return lastProps;\n }\n\n var props = lastProps;\n\n if (k > THRESHOLD_MIN) {\n props = PROPS_MIN;\n } else if (k < THRESHOLD_MAX) {\n props = PROPS_MAX;\n } else {\n var strokeWidth = (STROKE_MIN + STROKE_SPREAD * (THRESHOLD_MIN - k) / THRESHOLD_SPREAD).toFixed(1);\n props = cache[strokeWidth] || (cache[strokeWidth] = {\n style: {\n strokeWidth: strokeWidth\n }\n });\n }\n\n lastK = k;\n lastProps = props;\n return props;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _LayoutManager = _interopRequireDefault(require(\"./LayoutManager\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nvar _default = _LayoutManager.default;\nexports.default = _default;","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _types = require(\"./types\");\n\nvar _Coordinator = _interopRequireDefault(require(\"./Coordinator\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nvar LayoutManager =\n/*#__PURE__*/\nfunction () {\n function LayoutManager(options) {\n var _this = this;\n\n _classCallCheck(this, LayoutManager);\n\n this.layoutId = void 0;\n this.coordinator = void 0;\n this.pendingResult = void 0;\n this.options = void 0;\n\n this._handleUpdate = function (data) {\n var pendingResult = _this.pendingResult;\n\n if (!pendingResult || data.layoutId !== pendingResult.id) {\n return;\n }\n\n if (data.type === _types.ECoordinatorPhase.Positions) {\n var isPositionsResolved = pendingResult.isPositionsResolved,\n resolvePositions = pendingResult.resolvePositions;\n\n if (isPositionsResolved) {\n // eslint-disable-next-line no-console\n console.warn('Duplicate positiosn update', data);\n return;\n }\n\n var graph = data.graph,\n vertices = data.vertices;\n\n if (!vertices || !resolvePositions) {\n // make flow happy\n throw new Error('Invalid state');\n }\n\n pendingResult.isPositionsResolved = true;\n resolvePositions({\n graph: graph,\n vertices: vertices,\n isCancelled: false\n });\n } else if (data.type === _types.ECoordinatorPhase.Done) {\n var resolveLayout = pendingResult.resolveLayout;\n var edges = data.edges,\n _graph = data.graph,\n _vertices = data.vertices;\n\n if (!edges || !_vertices || !resolveLayout) {\n // make flow happy\n throw new Error('Invalid state');\n }\n\n _this.pendingResult = null;\n resolveLayout({\n edges: edges,\n graph: _graph,\n vertices: _vertices,\n isCancelled: false\n });\n } else {\n throw new Error('Unrecognized update type');\n }\n };\n\n this.options = options;\n this.layoutId = 0;\n this.coordinator = new _Coordinator.default(this._handleUpdate);\n this.pendingResult = null;\n }\n\n _createClass(LayoutManager, [{\n key: \"getLayout\",\n value: function getLayout(edges, vertices) {\n var _this2 = this;\n\n this._cancelPending();\n\n this.layoutId++;\n var id = this.layoutId;\n this.coordinator.getLayout(id, edges, vertices, this.options);\n this.pendingResult = {\n id: id,\n isPositionsResolved: false\n };\n var positions = new Promise(function (resolve) {\n if (_this2.pendingResult && id === _this2.pendingResult.id) {\n _this2.pendingResult.resolvePositions = resolve;\n }\n });\n var layout = new Promise(function (resolve) {\n if (_this2.pendingResult && id === _this2.pendingResult.id) {\n _this2.pendingResult.resolveLayout = resolve;\n }\n });\n return {\n layout: layout,\n positions: positions\n };\n }\n }, {\n key: \"stopAndRelease\",\n value: function stopAndRelease() {\n this._cancelPending();\n\n this.coordinator.stopAndRelease();\n }\n }, {\n key: \"_cancelPending\",\n value: function _cancelPending() {\n var pending = this.pendingResult;\n\n if (pending) {\n if (!pending.isPositionsResolved && pending.resolvePositions) {\n pending.resolvePositions({\n isCancelled: true\n });\n pending.isPositionsResolved = true;\n }\n\n if (pending.resolveLayout) {\n pending.resolveLayout({\n isCancelled: true\n });\n }\n\n this.pendingResult = null;\n }\n }\n }]);\n\n return LayoutManager;\n}();\n\nexports.default = LayoutManager;","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar convCoord = _interopRequireWildcard(require(\"./dot/conv-coord\"));\n\nvar _convInputs2 = _interopRequireDefault(require(\"./convInputs\"));\n\nvar _layoutWorker = _interopRequireDefault(require(\"./layout.worker.bundled\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n} // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/* eslint-disable no-console */\n// eslint-disable-next-line import/order, import/no-unresolved\n\n\nfunction killWorker(worker) {\n var w = worker; // to make flow happy\n\n var noop = function noop() {};\n\n w.onmessage = noop; // $FlowIgnore - https://github.com/facebook/flow/issues/6191\n\n w.onmessageerror = noop;\n w.onerror = noop;\n w.terminate();\n}\n\nfunction findAndRemoveWorker(lists, worker) {\n for (var i = 0; i < lists.length; i++) {\n var list = lists[i];\n var wi = list.indexOf(worker);\n\n if (wi >= 0) {\n list.splice(wi, 1);\n return {\n ok: true,\n list: list\n };\n }\n }\n\n return {\n ok: false\n };\n}\n\nvar Coordinator =\n/*#__PURE__*/\nfunction () {\n function Coordinator(callback) {\n var _this = this;\n\n _classCallCheck(this, Coordinator);\n\n this.currentLayout = void 0;\n this.nextWorkerId = void 0;\n this.idleWorkers = void 0;\n this.busyWorkers = void 0;\n this.callback = void 0;\n\n this._handleVizWorkerError = function (event) {\n var worker = event.target;\n\n var _findAndRemoveWorker = findAndRemoveWorker([_this.busyWorkers, _this.idleWorkers], worker),\n ok = _findAndRemoveWorker.ok;\n\n if (ok) {\n console.error('Viz worker onerror');\n console.error(event);\n killWorker(worker);\n } else {\n console.error('Viz worker onerror from unknown viz worker');\n console.error(event);\n }\n };\n\n this._handleVizWorkerMessageError = function (event) {\n // TODO(joe): something more useful\n var msg = {\n event: event,\n currentLayout: _this.currentLayout,\n errorType: '_handleVizWorkerMessageError'\n };\n console.error(msg);\n };\n\n this._handleVizWorkerMessage = function (event) {\n var worker = event.target;\n var workerMessage = event.data;\n var type = workerMessage.type;\n\n _this._makeWorkerIdle(worker);\n\n var isStale = !_this.currentLayout || Boolean(workerMessage.meta && workerMessage.meta.layoutId !== _this.currentLayout.id);\n\n if (type === _types.EWorkerErrorType.Error) {\n console.error(\"\".concat(isStale ? '(stale) ' : '', \"Error from viz.worker\"), event);\n return;\n }\n\n if (isStale) {\n return;\n }\n\n if (type === _types.EWorkerErrorType.LayoutError) {\n // TODO(joe): implement retries with more spacing\n console.error('layout-error', event);\n return;\n }\n\n if (workerMessage.type === _types.EWorkerPhase.Positions || workerMessage.type === _types.EWorkerPhase.Edges || workerMessage.type === _types.EWorkerPhase.DotOnly) {\n _this._processResult(type, workerMessage);\n\n return;\n }\n\n console.error(\"Unknown worker message type: \".concat(type), event);\n };\n\n this.callback = callback;\n this.currentLayout = null;\n this.nextWorkerId = 0;\n this.idleWorkers = [];\n this.busyWorkers = [];\n }\n\n _createClass(Coordinator, [{\n key: \"getLayout\",\n value: function getLayout(id, inEdges, inVertices, options) {\n this.busyWorkers.forEach(killWorker);\n this.busyWorkers.length = 0;\n\n var _convInputs = (0, _convInputs2.default)(inEdges, inVertices),\n edges = _convInputs.edges,\n unmapEdges = _convInputs.unmapEdges,\n unmapVertices = _convInputs.unmapVertices,\n _vertices = _convInputs.vertices;\n\n var vertices = _vertices.map(convCoord.vertexToDot);\n\n this.currentLayout = {\n id: id,\n cleaned: {\n edges: edges,\n vertices: vertices\n },\n options: options || null,\n input: {\n edges: inEdges,\n unmapEdges: unmapEdges,\n unmapVertices: unmapVertices,\n vertices: inVertices\n },\n status: {\n phase: _types.ECoordinatorPhase.NotStarted\n }\n };\n var isDotOnly = Boolean(options && options.useDotEdges);\n var phase = isDotOnly ? _types.EWorkerPhase.DotOnly : _types.EWorkerPhase.Positions;\n\n this._postWork(phase, edges, vertices);\n }\n }, {\n key: \"stopAndRelease\",\n value: function stopAndRelease() {\n this.idleWorkers.forEach(killWorker);\n this.idleWorkers.length = 0;\n this.busyWorkers.forEach(killWorker);\n this.busyWorkers.length = 0;\n this.currentLayout = null;\n }\n }, {\n key: \"_initWorker\",\n value: function _initWorker() {\n var worker = new _layoutWorker.default();\n worker.id = this.nextWorkerId;\n this.nextWorkerId++;\n worker.onerror = this._handleVizWorkerError;\n worker.onmessageerror = this._handleVizWorkerMessageError;\n worker.onmessage = this._handleVizWorkerMessage;\n return worker;\n }\n }, {\n key: \"_makeWorkerIdle\",\n value: function _makeWorkerIdle(worker) {\n var _findAndRemoveWorker2 = findAndRemoveWorker([this.busyWorkers, this.idleWorkers], worker),\n ok = _findAndRemoveWorker2.ok;\n\n if (ok) {\n this.idleWorkers.push(worker);\n } else {\n killWorker(worker);\n }\n }\n }, {\n key: \"_postWork\",\n value: function _postWork(phase, edges, vertices) {\n if (!this.currentLayout) {\n throw new Error('_startWork called without a current layout');\n }\n\n var _this$currentLayout = this.currentLayout,\n id = _this$currentLayout.id,\n options = _this$currentLayout.options,\n status = _this$currentLayout.status;\n\n var worker = this.idleWorkers.pop() || this._initWorker();\n\n this.busyWorkers.push(worker);\n status.phase = phase;\n status.workerId = worker.id;\n var message = {\n options: options,\n edges: edges,\n vertices: vertices,\n meta: {\n phase: phase,\n layoutId: id,\n workerId: worker.id\n }\n };\n worker.postMessage(message);\n }\n }, {\n key: \"_processResult\",\n value: function _processResult(phase, workerMessage) {\n var layout = this.currentLayout;\n\n if (!layout) {\n // make flow happy - this is already checked and should not happen\n return;\n }\n\n var edges = workerMessage.edges,\n graph = workerMessage.graph,\n meta = workerMessage.meta,\n vertices = workerMessage.vertices;\n var workerId = meta.workerId;\n var cleaned = layout.cleaned,\n input = layout.input,\n status = layout.status;\n var stPhase = status.phase,\n stWorkerId = status.workerId;\n\n if (phase !== stPhase || workerId !== stWorkerId) {\n console.error(\"Have work results, but in an invalid state\");\n return;\n }\n\n if (!vertices || !graph || phase !== _types.EWorkerPhase.Positions && !edges) {\n console.error('Have work results, but recieved invalid result data');\n return;\n }\n\n var adjVertexCoords = convCoord.vertexToPixels.bind(null, graph);\n var adjCleanVertices = vertices.map(adjVertexCoords);\n var adjVertices = input.unmapVertices(adjCleanVertices);\n var adjGraph = convCoord.graphToPixels(graph);\n\n if (phase === _types.EWorkerPhase.Positions || phase === _types.EWorkerPhase.DotOnly) {\n this.callback({\n type: _types.ECoordinatorPhase.Positions,\n layoutId: layout.id,\n graph: adjGraph,\n vertices: adjVertices\n });\n } // phase is either edges or dot-only\n\n\n if (edges) {\n var pixelEdges = edges.map(function (edge) {\n return convCoord.edgeToPixels(graph, edge);\n });\n var mergedEdges = input.unmapEdges(pixelEdges);\n this.callback({\n type: _types.ECoordinatorPhase.Done,\n layoutId: layout.id,\n graph: adjGraph,\n edges: mergedEdges,\n vertices: adjVertices\n });\n }\n\n if (phase === _types.EWorkerPhase.Positions) {\n this._postWork(_types.EWorkerPhase.Edges, cleaned.edges, vertices);\n }\n }\n }]);\n\n return Coordinator;\n}();\n\nexports.default = Coordinator;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.vertexToDot = vertexToDot;\nexports.edgeToPixels = edgeToPixels;\nexports.graphToPixels = graphToPixels;\nexports.vertexToPixels = vertexToPixels; // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nvar round = Math.round;\nvar DPI = 72;\n\nfunction vertexToDot(v) {\n // expect only width and height for going to dot\n var vertex = v.vertex,\n height = v.height,\n width = v.width;\n return {\n vertex: vertex,\n height: height / DPI,\n width: width / DPI\n };\n}\n\nfunction edgeToPixels(graph, e) {\n var h = graph.height;\n var edge = e.edge,\n pathPoints = e.pathPoints;\n return {\n edge: edge,\n pathPoints: pathPoints && pathPoints.map(function (pt) {\n return [round(pt[0] * DPI), round((h - pt[1]) * DPI)];\n })\n };\n}\n\nfunction graphToPixels(graph) {\n var height = graph.height,\n scale = graph.scale,\n width = graph.width;\n return {\n scale: scale,\n height: height * DPI,\n width: width * DPI\n };\n}\n\nfunction vertexToPixels(graph, v) {\n var h = graph.height;\n var vertex = v.vertex,\n height = v.height,\n left = v.left,\n top = v.top,\n width = v.width;\n return {\n vertex: vertex,\n height: round(height * DPI),\n left: left != null ? round((left - width * 0.5) * DPI) : left,\n top: top != null ? round((h - top - height * 0.5) * DPI) : top,\n width: round(width * DPI)\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = convInputs;\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n} // Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nvar makeEdgeId = function makeEdgeId(edge) {\n return \"\".concat(edge.from, \"\\x0B\").concat(edge.to);\n};\n\nfunction unmapVertices(idToVertex, output) {\n return output.map(function (lv) {\n var sv = idToVertex.get(lv.vertex.key);\n\n if (!sv) {\n throw new Error(\"Unable to find Vertex for \".concat(lv.vertex.key));\n }\n\n return _objectSpread({}, lv, {\n vertex: sv.vertex\n });\n });\n}\n\nfunction unmapEdges(idsToEdge, output) {\n return output.map(function (le) {\n var id = makeEdgeId(le.edge);\n var edge = idsToEdge.get(id);\n\n if (!edge) {\n throw new Error(\"Unable to find edge for \".concat(id));\n }\n\n return _objectSpread({}, le, {\n edge: edge\n });\n });\n}\n\nfunction convInputs(srcEdges, inVertices) {\n var keyToId = new Map();\n var idToVertex = new Map();\n var idsToEdge = new Map();\n var vertices = inVertices.map(function (v) {\n var key = v.vertex.key,\n rest = _objectWithoutProperties(v, [\"vertex\"]);\n\n if (keyToId.has(key)) {\n throw new Error(\"Non-unique vertex key: \".concat(key));\n }\n\n var id = String(keyToId.size);\n keyToId.set(key, id);\n idToVertex.set(id, v);\n return _objectSpread({\n vertex: {\n key: id\n }\n }, rest);\n });\n var edges = srcEdges.map(function (e) {\n var from = e.from,\n to = e.to,\n isBidirectional = e.isBidirectional;\n var fromId = keyToId.get(from);\n var toId = keyToId.get(to);\n\n if (fromId == null) {\n throw new Error(\"Unrecognized key on edge, from: \".concat(from));\n }\n\n if (toId == null) {\n throw new Error(\"Unrecognized key on edge, to: \".concat(to));\n }\n\n var edge = {\n isBidirectional: isBidirectional,\n from: fromId,\n to: toId\n };\n idsToEdge.set(makeEdgeId(edge), e);\n return edge;\n });\n return {\n edges: edges,\n vertices: vertices,\n unmapEdges: unmapEdges.bind(null, idsToEdge),\n unmapVertices: unmapVertices.bind(null, idToVertex)\n };\n}","\"use strict\";\n\n!function (A, e) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = e() : \"function\" == typeof define && define.amd ? define(\"layout.worker.bundled\", [], e) : \"object\" == typeof exports ? exports[\"layout.worker.bundled\"] = e() : A[\"layout.worker.bundled\"] = e();\n}(window, function () {\n return function (A) {\n var e = {};\n\n function a(i) {\n if (e[i]) return e[i].exports;\n var r = e[i] = {\n i: i,\n l: !1,\n exports: {}\n };\n return A[i].call(r.exports, r, r.exports, a), r.l = !0, r.exports;\n }\n\n return a.m = A, a.c = e, a.d = function (A, e, i) {\n a.o(A, e) || Object.defineProperty(A, e, {\n enumerable: !0,\n get: i\n });\n }, a.r = function (A) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(A, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(A, \"__esModule\", {\n value: !0\n });\n }, a.t = function (A, e) {\n if (1 & e && (A = a(A)), 8 & e) return A;\n if (4 & e && \"object\" == typeof A && A && A.__esModule) return A;\n var i = Object.create(null);\n if (a.r(i), Object.defineProperty(i, \"default\", {\n enumerable: !0,\n value: A\n }), 2 & e && \"string\" != typeof A) for (var r in A) {\n a.d(i, r, function (e) {\n return A[e];\n }.bind(null, r));\n }\n return i;\n }, a.n = function (A) {\n var e = A && A.__esModule ? function () {\n return A.default;\n } : function () {\n return A;\n };\n return a.d(e, \"a\", e), e;\n }, a.o = function (A, e) {\n return Object.prototype.hasOwnProperty.call(A, e);\n }, a.p = \"/\", a(a.s = 0);\n }([function (A, e, a) {\n A.exports = function () {\n return a(1)('!function(A){var e={};function i(r){if(e[r])return e[r].exports;var f=e[r]={i:r,l:!1,exports:{}};return A[r].call(f.exports,f,f.exports,i),f.l=!0,f.exports}i.m=A,i.c=e,i.d=function(A,e,r){i.o(A,e)||Object.defineProperty(A,e,{enumerable:!0,get:r})},i.r=function(A){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(A,\"__esModule\",{value:!0})},i.t=function(A,e){if(1&e&&(A=i(A)),8&e)return A;if(4&e&&\"object\"==typeof A&&A&&A.__esModule)return A;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:A}),2&e&&\"string\"!=typeof A)for(var f in A)i.d(r,f,function(e){return A[e]}.bind(null,f));return r},i.n=function(A){var e=A&&A.__esModule?function(){return A.default}:function(){return A};return i.d(e,\"a\",e),e},i.o=function(A,e){return Object.prototype.hasOwnProperty.call(A,e)},i.p=\"/\",i(i.s=10)}([function(A,e){},function(A,e){},function(A,e,i){(function(e,r){!function(f){var a=function(A){A=void 0!==(A=A||{})?A:{};var f,a={};for(f in A)A.hasOwnProperty(f)&&(a[f]=A[f]);A.arguments=[],A.thisProgram=\"./this.program\",A.quit=function(A,e){throw e},A.preRun=[],A.postRun=[];var n,l,t=!1,c=!1,s=!1,b=!1;if(A.ENVIRONMENT)if(\"WEB\"===A.ENVIRONMENT)t=!0;else if(\"WORKER\"===A.ENVIRONMENT)c=!0;else if(\"NODE\"===A.ENVIRONMENT)s=!0;else{if(\"SHELL\"!==A.ENVIRONMENT)throw new Error(\"Module[\\'ENVIRONMENT\\'] value is not valid. must be one of: WEB|WORKER|NODE|SHELL.\");b=!0}else t=\"object\"==typeof window,c=\"function\"==typeof importScripts,s=\"object\"==typeof e&&!t&&!c,b=!t&&!s&&!c;s?(A.read=function(A,e){var r;return(r=Ae(A))||(n||(n=i(0)),l||(l=i(1)),A=l.normalize(A),r=n.readFileSync(A)),e?r:r.toString()},A.readBinary=function(e){var i=A.read(e,!0);return i.buffer||(i=new Uint8Array(i)),B(i.buffer),i},e.argv.length>1&&(A.thisProgram=e.argv[1].replace(/\\\\\\\\/g,\"/\")),A.arguments=e.argv.slice(2),e.on(\"uncaughtException\",function(A){if(!(A instanceof oe))throw A}),e.on(\"unhandledRejection\",function(A,i){e.exit(1)}),A.inspect=function(){return\"[Emscripten Module object]\"}):b?(\"undefined\"!=typeof read&&(A.read=function(A){var e=Ae(A);return e?qA(e):read(A)}),A.readBinary=function(A){var e;return(e=Ae(A))?e:\"function\"==typeof readbuffer?new Uint8Array(readbuffer(A)):(B(\"object\"==typeof(e=read(A,\"binary\"))),e)},\"undefined\"!=typeof scriptArgs?A.arguments=scriptArgs:void 0!==arguments&&(A.arguments=arguments),\"function\"==typeof quit&&(A.quit=function(A,e){quit(A)})):(t||c)&&(A.read=function(A){try{var e=new XMLHttpRequest;return e.open(\"GET\",A,!1),e.send(null),e.responseText}catch(e){var i=Ae(A);if(i)return qA(i);throw e}},c&&(A.readBinary=function(A){try{var e=new XMLHttpRequest;return e.open(\"GET\",A,!1),e.responseType=\"arraybuffer\",e.send(null),new Uint8Array(e.response)}catch(e){var i=Ae(A);if(i)return i;throw e}}),A.readAsync=function(A,e,i){var r=new XMLHttpRequest;r.open(\"GET\",A,!0),r.responseType=\"arraybuffer\",r.onload=function(){if(200==r.status||0==r.status&&r.response)e(r.response);else{var f=Ae(A);f?e(f.buffer):i()}},r.onerror=i,r.send(null)},void 0!==arguments&&(A.arguments=arguments),A.setWindowTitle=function(A){document.title=A});for(f in A.print=\"undefined\"!=typeof console?console.log:\"undefined\"!=typeof print?print:null,A.printErr=\"undefined\"!=typeof printErr?printErr:\"undefined\"!=typeof console&&console.warn||A.print,A.print=A.print,A.printErr=A.printErr,a)a.hasOwnProperty(f)&&(A[f]=a[f]);a=void 0;var u=16;function w(A){B(!R);var e=N;return N=N+A+15&-16,e}function k(A){B(T);var e=V[T>>2],i=e+A+15&-16;if((V[T>>2]=i,i>=K)&&!S())return V[T>>2]=e,0;return e}function o(A,e){return e||(e=u),A=Math.ceil(A/e)*e}function h(A){switch(A){case\"i1\":case\"i8\":return 1;case\"i16\":return 2;case\"i32\":return 4;case\"i64\":return 8;case\"float\":return 4;case\"double\":return 8;default:if(\"*\"===A[A.length-1])return 4;if(\"i\"===A[0]){var e=parseInt(A.substr(1));return B(e%8==0),e/8}return 0}}new Array(0);var d=0;function B(A,e){A||de(\"Assertion failed: \"+e)}var g={stackSave:function(){ce()},stackRestore:function(){te()},arrayToC:function(A){var e,i,r=le(A.length);return e=A,i=r,D.set(e,i),r},stringToC:function(A){var e=0;if(null!=A&&0!==A){var i=1+(A.length<<2);y(A,e=le(i),i)}return e}},v={string:g.stringToC,array:g.arrayToC};function E(A,e,i,r){switch(\"*\"===(i=i||\"i8\").charAt(i.length-1)&&(i=\"i32\"),i){case\"i1\":case\"i8\":D[A>>0]=e;break;case\"i16\":F[A>>1]=e;break;case\"i32\":V[A>>2]=e;break;case\"i64\":tempI64=[e>>>0,(tempDouble=e,+aA(tempDouble)>=1?tempDouble>0?(0|sA(+tA(tempDouble/4294967296),4294967295))>>>0:~~+lA((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],V[A>>2]=tempI64[0],V[A+4>>2]=tempI64[1];break;case\"float\":J[A>>2]=e;break;case\"double\":p[A>>3]=e;break;default:de(\"invalid type for setValue: \"+i)}}var C=2,I=4;function Z(A,e){if(0===e||!A)return\"\";for(var i,r=0,f=0;r|=i=M[A+f>>0],(0!=i||e)&&(f++,!e||f!=e););e||(e=f);var a=\"\";if(r<128){for(var n;e>0;)n=String.fromCharCode.apply(String,M.subarray(A,A+Math.min(e,1024))),a=a?a+n:n,A+=1024,e-=1024;return a}return Q(A)}var G=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf8\"):void 0;function m(A,e){for(var i=e;A[i];)++i;if(i-e>16&&A.subarray&&G)return G.decode(A.subarray(e,i));for(var r,f,a,n,l,t=\"\";;){if(!(r=A[e++]))return t;if(128&r)if(f=63&A[e++],192!=(224&r))if(a=63&A[e++],224==(240&r)?r=(15&r)<<12|f<<6|a:(n=63&A[e++],240==(248&r)?r=(7&r)<<18|f<<12|a<<6|n:(l=63&A[e++],r=248==(252&r)?(3&r)<<24|f<<18|a<<12|n<<6|l:(1&r)<<30|f<<24|a<<18|n<<12|l<<6|63&A[e++])),r<65536)t+=String.fromCharCode(r);else{var c=r-65536;t+=String.fromCharCode(55296|c>>10,56320|1023&c)}else t+=String.fromCharCode((31&r)<<6|f);else t+=String.fromCharCode(r)}}function Q(A){return m(M,A)}function L(A,e,i,r){if(!(r>0))return 0;for(var f=i,a=i+r-1,n=0;n=55296&&l<=57343&&(l=65536+((1023&l)<<10)|1023&A.charCodeAt(++n)),l<=127){if(i>=a)break;e[i++]=l}else if(l<=2047){if(i+1>=a)break;e[i++]=192|l>>6,e[i++]=128|63&l}else if(l<=65535){if(i+2>=a)break;e[i++]=224|l>>12,e[i++]=128|l>>6&63,e[i++]=128|63&l}else if(l<=2097151){if(i+3>=a)break;e[i++]=240|l>>18,e[i++]=128|l>>12&63,e[i++]=128|l>>6&63,e[i++]=128|63&l}else if(l<=67108863){if(i+4>=a)break;e[i++]=248|l>>24,e[i++]=128|l>>18&63,e[i++]=128|l>>12&63,e[i++]=128|l>>6&63,e[i++]=128|63&l}else{if(i+5>=a)break;e[i++]=252|l>>30,e[i++]=128|l>>24&63,e[i++]=128|l>>18&63,e[i++]=128|l>>12&63,e[i++]=128|l>>6&63,e[i++]=128|63&l}}return e[i]=0,i-f}function y(A,e,i){return L(A,M,e,i)}function W(A){for(var e=0,i=0;i=55296&&r<=57343&&(r=65536+((1023&r)<<10)|1023&A.charCodeAt(++i)),r<=127?++e:e+=r<=2047?2:r<=65535?3:r<=2097151?4:r<=67108863?5:6}return e}\"undefined\"!=typeof TextDecoder&&new TextDecoder(\"utf-16le\");function z(){var e=function(){var A=new Error;if(!A.stack){try{throw new Error(0)}catch(e){A=e}if(!A.stack)return\"(no stack trace available)\"}return A.stack.toString()}();return A.extraStackTrace&&(e+=\"\\\\n\"+A.extraStackTrace()),e.replace(/__Z[\\\\w\\\\d_]+/g,function(A){var e=A;return A===e?A:A+\" [\"+e+\"]\"})}var Y,D,M,F,V,J,p,N,R,X,H,U,x,T,j=16384;function P(){de(\"Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value \"+K+\", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 \")}function S(){P()}N=H=T=0,R=!1;var O=A.TOTAL_STACK||5242880,K=A.TOTAL_MEMORY||16777216;if(K0;){var i=e.shift();if(\"function\"!=typeof i){var r=i.func;\"number\"==typeof r?void 0===i.arg?A.dynCall_v(r):A.dynCall_vi(r,i.arg):r(void 0===i.arg?null:i.arg)}else i()}}var q=[],$=[],AA=[],eA=[],iA=[],rA=!1;function fA(A,e,i){for(var r=0;r>0]=A.charCodeAt(r);i||(D[e>>0]=0)}Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(A,e){var i=65535&A,r=65535&e;return i*r+((A>>>16)*r+i*(e>>>16)<<16)|0}),Math.imul=Math.imul,Math.clz32||(Math.clz32=function(A){A>>>=0;for(var e=0;e<32;e++)if(A&1<<31-e)return e;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(A){return A<0?Math.ceil(A):Math.floor(A)}),Math.trunc=Math.trunc;var aA=Math.abs,nA=(Math.cos,Math.sin,Math.tan,Math.acos,Math.asin,Math.atan,Math.atan2,Math.exp,Math.log,Math.sqrt),lA=Math.ceil,tA=Math.floor,cA=Math.pow,sA=(Math.imul,Math.fround,Math.round,Math.min),bA=(Math.max,Math.clz32,Math.trunc,0),uA=null,wA=null;function kA(e){bA++,A.monitorRunDependencies&&A.monitorRunDependencies(bA)}function oA(e){if(bA--,A.monitorRunDependencies&&A.monitorRunDependencies(bA),0==bA&&(null!==uA&&(clearInterval(uA),uA=null),wA)){var i=wA;wA=null,i()}}A.preloadedImages={},A.preloadedAudios={};var hA=null,dA=\"data:application/octet-stream;base64,\";function BA(A){return String.prototype.startsWith?A.startsWith(dA):0===A.indexOf(dA)}var gA=[function(A,e){var i=Z(A),r=Z(e);DA.createPath(\"/\",QA.dirname(i)),DA.writeFile(QA.join(\"/\",i),r)}];N=197240,$.push(),hA=\"data:application/octet-stream;base64,AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/ACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAIMEAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSQAAAAAAAAFJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFJAAAAAAAAAUkAAIMEAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSQAAAAAAAAFJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFJAAAAAAAAAUkACEAAAAAAAAAAAAAAAABBAoC8AAAgAAAABAAAAAAAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICWQAAAAAAAgJZABJDDAAAAAAAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWEAAAAAAAABYQAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYQAAAAAAAAFhAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUkAAAAAAAABSQAAgAwIAAAAAAAAAAAAAEEAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAABCQAAAAAAAAEJAAAAAAAAgg0AAAAAAAMCIQAAAAAAAAFJAAAAAAAAAUkAAAAAAAAAAAAAAAAAAAEJAAAAAAAAAQkAAAAAAACCDQAAAAAAAwIhAAAAAAAAAUkAAAAAAAABSQACwwQAAAAAAAAAAAAAAEEBANgAAkwAAAAEAAAAAAAAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFJAAAAAAAAAUkAAEAACAAAAAAAAAAAAABBAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYQAAAAAAAAFhAALDBAAAAAAAAAAAAAAAAABw6AAAQAAAAAQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWEAAAAAAAABYQEAgPgMAAAAAAAAAAAAAEEAkOwAAegAAAAEAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFJAAAAAAAAAUkAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSQAAAAAAAAFJA////////73/////////vf////////+//////////7/8AAAAAAAD4PzMzMzMzM9M/PAAAAAAAAACamZmZmZmpPwEAAAAAAAAAAQAAAAAAAAAAAAAAAADwPwEAAAAAAAAAAgAAAAAAAAAAAAAAAADwPwIAAAAAAAAAAwAAAAAAAAAAAAAAAADgPwMAAAAAAAAABAAAAAAAAAAAAAAAAADwPwQAAAAAAAAABQAAAAAAAAAzMzMzMzPzPwUAAAAAAAAABgAAAAAAAACamZmZmZnpPwYAAAAAAAAABwAAAAAAAAAAAAAAAADwPwcAAAAAAAAACAAAAAAAAAAAAAAAAADgPwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAMzMzMzMz078AAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAgEZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAmpmZmZmZ2b8AAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMzMzMzPjPwAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAexSuR+F65L8AAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAEAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABr4VQAAAQAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAAAgGZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAgGZAmpmZmZmZ2b8AAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAgGZAexSuR+F65L8AAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAgEZAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAQAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAAAAAAAAAAAEAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAAAAQAAAAAAAAAAAAAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAA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YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8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AQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAACAAAAAwAAAAEAAAABAAAAAgAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAIAAAABAAAABAAAAAUAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAGAAAAAQAAAAEAAAAHAAAACAAAAAkAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAAQAAAAEAAAALAAAAAQAAAAwAAAABAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABMAAAATAAAAEwAAABMAAAAXAAAAGAAAABkAAAATAAAAGgAAABsAAAAcAAAAHQAAABMAAAATAAAAEwAAABMAAAATAAAAAQAAAB4AAAABAAAAAQAAABMAAAABAAAAHwAAACAAAAAhAAAAIgAAACMAAAATAAAAJAAAACUAAAAmAAAAEwAAABMAAAATAAAAEwAAACcAAAAoAAAAKQAAABMAAAAqAAAAKwAAACwAAAAtAAAAEwAAABMAAAATAAAAEwAAABMAAAABAAAAAQAAAAEAAAABAAAAAQAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAALgAAABMAAAATAAAAEwAAAC8AAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAA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Ag4LDxwYGBgYGBgWFhYWFhYWFhYWFhYWFhYWFhYWFhQcBBwWHBgYGBgYGBYWFhYWFhYWFhYWFhYWFhYWFhYWHCQcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwWHBwcHBwcHBwcHBYcGhwcFhwcHBwcFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYcFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhwWFhYWFhYWFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////8AAAAAAAAABP7//4f+//8HAAAAAAAAAAD//3////9///////////N//v3//////3///////////w/g/////zH8////AAAAAAAAAP//////////////AQD4AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQNf///v/////f39U/f8PAP7f///////////+3/////8DAP///////58Z////zz8DAAAAAAAA/v///38C/v///38AAAAAAAAAAAD///8HBwAAAAAA/v//B/4HAAAAAP7//////////3z/fy8AYAAAAOD///////8jAAAA/wMAAADgn/n///3FAwAAALADAAMA4If5///9bQMAAABeAAAcAOCv+////e0jAAAAAAEAAADgn/n///3NIwAAALADAAAA4Mc91hjHvwMAAAAAAAAAAODf/f///e8DAAAAAAMAAADg3/3///3vAwAAAEADAAAA4N/9///9/wMAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAD+/////38NAD8AAAAAAAAAliXw/q5sDSAfAAAAAAAAAAAAAAAAAAAA//7///8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////PwD/////fwDt2gcAAAAAUAFQMYKrYiwAAAAAQADJgPUHAAAAAAgBAv////////////////////////8P//////////////8D//8/P/////8/P/+q////P////////99f3B/PD/8f3B8AAAAAQEwAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAIAAAAD+AwAA/v///////////x8A/v////////////8H4P////8fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////////////////z8AAAAAAAAAAAAAAP//////////////////////////DwAAAAAAAAAAAAAAAAAAAABg/wf+//+H/v//BwAAAAAAAIAA//9/////f/////8AAAAAAAAA//////////////8BAPgDAAMAAAAAAP//////////PwAAAAMAAADA1///+/////9/f1T9/w8A/t////////////7f/////3sA////////nxn////PPwMAAAAAAAD+////fwL+////fwD+//v//7sWAP///wcHAAAAAAD+//8H//8HAP8D////////////fP9/7///Pf8D7v////////P/Px7/z/8AAO6f+f///cXTnzmAsM//AwDkh/n///1t04c5AF7A/x8A7q/7///97fO/OwAAwf8AAO6f+f///c3zjznAsMP/AADsxz3WGMe/w8c9gACA/wAA7t/9///978PfPWAAw/8AAOzf/f///e/D3z1gQMP/AADs3/3///3/w889gADD/wAAAAAAAAAAAAAAAAAAAAAAAP7/////f/8H/3//AwAAAACWJfD+rmz/O18//wMAAAAAAAAAA/8DoML//v///wP+/98Pv/7/P/4CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8fAgAAAKAAAAD+/z4A/v///////////x9m/v////////////93GQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACgAAAApAAAAIAAAACoAAAAMAAAAGQAAACEAAAAGAAAABwAAAAEAAAABAAAAAAAAAAAAAAAAFQoAABUAAAAAAAAAAAAAAAAAAAAAAAAVEAwTHB4DDR8gISIjGxoRGRkZGRkZGRkZGRYSAg4LDxwYGBgYGBgWFhYWFhYWFhYWFhYWFhYWFhYWFhQcBBwWHBgYGBgYGBYWFhYWFhYWFhYWFhYWFhYWFhYWHCQcHBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF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FAAUAAgABAAFABsAAgAXABsAIAAfAB4AHQAJABMAAAAVABIAFQADAAcAFQAVABQAFAAUABQAFAAUABQAFAAIAAQABQAFAAYAGwAaABgAGQAgAAcAFQAUABQAFAAUABQAFAALABQADQAUAAwAFAAUABQADgAUABQAFAAQABQADwAUABEAAAAAAAAArgAuAC8AMwA1ADAANwCqANsA2wDbANsAAAA9AIcANwA3ANsA2wAAACgANQAuADIALwBiAAAAAABHAAAAAADbAFEAAADbANsA2wAAANsAhABVANsAggDbAAAAgQDbAAAAPgBCAEEASABEAFIAWwAAAAAAXgBfANsAAADbANsA2wAAAAAAewBJAFcAUgBaAFoAXQAAAF8AAABfAAAAZQBdAF8AAABdAG4AagAAAGkAAABuAAAA2wCTAJoAoQCoAKsAcACxALgAvwDGAM0A0wAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAMABAAHAAMABAAFAAUABgAGAAgABwAHABEAFgASABEAEgAIAAgADwAPABcADwAYAA8AGQAaABoAHgAWADQAHgAFADIABgAiACIAMwAXABgANQAZABoAGgAqADYAKgA0ADcAMgBFADsAPAAzADsAPABGADUARwBIAEwANgAiAEkASgA3AEUATgBQAGIAUQBSAFQARgBHAFUASABMAFYASQBKAFgAWgBOAEQAUABRAFIAVAA4AC8ALABVACkAVgAbABAAWABaAF0AXQBdAF0AXQBdAF0AXgBeAF4AXgBeAF4AXgBfAF8AXwBfAF8AXwBfAGAACQBgAGAAYABgAGAAYQBhAGMAAgBjAGMAYwBjAGMAZAAAAGQAAABkAGQAZABlAAAAZQBlAGUAZQBlAGYAZgAAAGYAZgBmAGYAZwAAAGcAZwBnAGcAaAAAAGgAaABoAGgAaABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAAAAXAABAF0AXQBeAF4AXwBfAFwAXABcAFwAXABgAFwAXABcAGEAXABcAGIAYgBiAGIAYgBiAGIAYwBkAGUAZgBmAFwAXABnAFwAXABcAGAAXABcAGEAXABhAFwAaABhAFwAYgBiAGIAYgBiAGIAYgBiAGMAZABlAGUAXABmAFwAXABcAGcAaABhAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgAAAFwAXABcAFwAXABcAFwAXABcAFwAXABcAAAACgALAAwADQAOAAoADwAQABEAEgATAAoAFAAVABUAFQAWABcAFQAYABUAFQAZABUAFQAVABoAFQAVAAoAFQAVABUAFgAXABgAFQAVABkAFQAVABUAGgAVABUAFQAVABsADAAMACQAHgAeACAAIQAgACEAJAAlACYALQAyAC8ALgAqACUAJgAoACkAMwAqADQAKwA1ADYANwA8ADIARwA9ACIARQAiAD8AQABGADMANABIADUANgA3AC8ASQAqAEcASgBFAEwAXAA8AEYAXAA9AE0ASABOAE8AUgBJAEEAUABRAEoATABTAFQAMQBVAFYAVwBNAE4AWABPAFIAWQBQAFEAWgBbAFMARABUAFUAVgBXAEsARAAsAFgALABZADgALABaAFsAHQAdAB0AHQAdAB0AHQAfAB8AHwAfAB8AHwAfACMAIwAjACMAIwAjACMAJwBcACcAJwAnACcAJwAwADAAOQAcADkAOQA5ADkAOQA6AFwAOgBcADoAOgA6ADsAXAA7ADsAOwA7ADsAPgA+AFwAPgA+AD4APgBCAFwAQgBCAEIAQgBDAFwAQwBDAEMAQwBDAAkAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwACACu/9EACgCu/67/CwCu/67/rv+u/67/rv+u/67/BQDRAK7/0QDRANEA0QDRANEA0QDRAK7/+/+u/w4A7P+u/67/rv+u/9EA0QDRANEA0QANACUADABCABAAUAATAG0AewAUAJgADwCmAMMArv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/FwCu/3cArv8HAC4Arv8mAK7/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YWdlU2l6ZSBbJWQgJWRdID4+IHNldHBhZ2VkZXZpY2UKACVkICVkICVkIGJlZ2lucGFnZQoAZ3NhdmUKJWQgJWQgJWQgJWQgYm94cHJpbSBjbGlwIG5ld3BhdGgKACVnICVnIHNldF9zY2FsZSAlZCByb3RhdGUgJWcgJWcgdHJhbnNsYXRlCgBjYW52YXMgc2l6ZSAoJWQsJWQpIGV4Y2VlZHMgUERGIGxpbWl0ICglZCkKCShzdWdnZXN0IHNldHRpbmcgYSBib3VuZGluZyBib3ggc2l6ZSwgc2VlIGRvdCgxKSkKAFsgL0Nyb3BCb3ggWyVkICVkICVkICVkXSAvUEFHRVMgcGRmbWFyawoAJWQgJWQgc2V0bGF5ZXIKACUlJSVUaXRsZTogJXMKACUlUGFnZXM6IChhdGVuZCkKACUlUGFnZXM6IDEKACUlQm91bmRpbmdCb3g6IChhdGVuZCkKACUlJSVCb3VuZGluZ0JveDogJWQgJWQgJWQgJWQKACUlRW5kQ29tbWVudHMKc2F2ZQoAc2V0dXBMYXRpbjEKAFsge0NhdGFsb2d9IDw8IC9VUkkgPDwgL0Jhc2UgJXMgPj4gPj4KL1BVVCBwZGZtYXJrCgAlJUJlZ2luUHJvbG9nAC9Eb3REaWN0IDIwMCBkaWN0IGRlZgBEb3REaWN0IGJlZ2luAC9zZXR1cExhdGluMSB7AG1hcmsAL0VuY29kaW5nVmVjdG9yIDI1NiBhcnJheSBkZWYAIEVuY29kaW5nVmVjdG9yIDAASVNPTGF0aW4xRW5jb2RpbmcgMCAyNTUgZ2V0aW50ZXJ2YWwgcHV0aW50ZXJ2YWwARW5jb2RpbmdWZWN0b3IgNDUgL2h5cGhlbiBwdXQAJSBTZXQgdXAgSVNPIExhdGluIDEgY2hhcmFjdGVyIGVuY29kaW5nAC9zdGFybmV0SVNPIHsAICAgICAgICBkdXAgZHVwIGZpbmRmb250IGR1cCBsZW5ndGggZGljdCBiZWdpbgAgICAgICAgIHsgMSBpbmRleCAvRklEIG5lIHsgZGVmIH17IHBvcCBwb3AgfSBpZmVsc2UAICAgICAgICB9IGZvcmFsbAAgICAgICAgIC9FbmNvZGluZyBFbmNvZGluZ1ZlY3RvciBkZWYAICAgICAgICBjdXJyZW50ZGljdCBlbmQgZGVmaW5lZm9udAB9IGRlZgAvVGltZXMtUm9tYW4gc3Rhcm5ldElTTyBkZWYAL1RpbWVzLUl0YWxpYyBzdGFybmV0SVNPIGRlZgAvVGltZXMtQm9sZCBzdGFybmV0SVNPIGRlZgAvVGltZXMtQm9sZEl0YWxpYyBzdGFybmV0SVNPIGRlZgAvSGVsdmV0aWNhIHN0YXJuZXRJU08gZGVmAC9IZWx2ZXRpY2EtT2JsaXF1ZSBzdGFybmV0SVNPIGRlZgAvSGVsdmV0aWNhLUJvbGQgc3Rhcm5ldElTTyBkZWYAL0hlbHZldGljYS1Cb2xkT2JsaXF1ZSBzdGFybmV0SVNPIGRlZgAvQ291cmllciBzdGFybmV0SVNPIGRlZgAvQ291cmllci1PYmxpcXVlIHN0YXJuZXRJU08gZGVmAC9Db3VyaWVyLUJvbGQgc3Rhcm5ldElTTyBkZWYAL0NvdXJpZXItQm9sZE9ibGlxdWUgc3Rhcm5ldElTTyBkZWYAY2xlYXJ0b21hcmsAfSBiaW5kIGRlZgAlJUJlZ2luUmVzb3VyY2U6IHByb2NzZXQgZ3JhcGh2aXogMCAwAC9jb29yZC1mb250LWZhbWlseSAvVGltZXMtUm9tYW4gZGVmAC9kZWZhdWx0LWZvbnQtZmFtaWx5IC9UaW1lcy1Sb21hbiBkZWYAL2Nvb3JkZm9udCBjb29yZC1mb250LWZhbWlseSBmaW5kZm9udCA4IHNjYWxlZm9udCBkZWYAL0ludlNjYWxlRmFjdG9yIDEuMCBkZWYAL3NldF9zY2FsZSB7ACAgICAgICBkdXAgMSBleGNoIGRpdiAvSW52U2NhbGVGYWN0b3IgZXhjaCBkZWYAICAgICAgIHNjYWxlACUgc3R5bGVzAC9zb2xpZCB7IFtdIDAgc2V0ZGFzaCB9IGJpbmQgZGVmAC9kYXNoZWQgeyBbOSBJbnZTY2FsZUZhY3RvciBtdWwgZHVwIF0gMCBzZXRkYXNoIH0gYmluZCBkZWYAL2RvdHRlZCB7IFsxIEludlNjYWxlRmFjdG9yIG11bCA2IEludlNjYWxlRmFjdG9yIG11bF0gMCBzZXRkYXNoIH0gYmluZCBkZWYAL2ludmlzIHsvZmlsbCB7bmV3cGF0aH0gZGVmIC9zdHJva2Uge25ld3BhdGh9IGRlZiAvc2hvdyB7cG9wIG5ld3BhdGh9IGRlZn0gYmluZCBkZWYAL2JvbGQgeyAyIHNldGxpbmV3aWR0aCB9IGJpbmQgZGVmAC9maWxsZWQgeyB9IGJpbmQgZGVmAC91bmZpbGxlZCB7IH0gYmluZCBkZWYAL3JvdW5kZWQgeyB9IGJpbmQgZGVmAC9kaWFnb25hbHMgeyB9IGJpbmQgZGVmAC90YXBlcmVkIHsgfSBiaW5kIGRlZgAlIGhvb2tzIGZvciBzZXR0aW5nIGNvbG9yIAAvbm9kZWNvbG9yIHsgc2V0aHNiY29sb3IgfSBiaW5kIGRlZgAvZWRnZWNvbG9yIHsgc2V0aHNiY29sb3IgfSBiaW5kIGRlZgAvZ3JhcGhjb2xvciB7IHNldGhzYmNvbG9yIH0gYmluZCBkZWYAL25vcGNvbG9yIHtwb3AgcG9wIHBvcH0gYmluZCBkZWYAL2JlZ2lucGFnZSB7CSUgaSBqIG5wYWdlcwAJL25wYWdlcyBleGNoIGRlZgAJL2ogZXhjaCBkZWYACS9pIGV4Y2ggZGVmAAkvc3RyIDEwIHN0cmluZyBkZWYACW5wYWdlcyAxIGd0IHsACQlnc2F2ZQAJCQljb29yZGZvbnQgc2V0Zm9udAAJCQkwIDAgbW92ZXRvAAkJCShcKCkgc2hvdyBpIHN0ciBjdnMgc2hvdyAoLCkgc2hvdyBqIHN0ciBjdnMgc2hvdyAoXCkpIHNob3cACQlncmVzdG9yZQAJfSBpZgAvc2V0X2ZvbnQgewAJZmluZGZvbnQgZXhjaAAJc2NhbGVmb250IHNldGZvbnQAJSBkcmF3IHRleHQgZml0dGVkIHRvIGl0cyBleHBlY3RlZCB3aWR0aAAvYWxpZ25lZHRleHQgewkJCSUgd2lkdGggdGV4dAAJL3RleHQgZXhjaCBkZWYACS93aWR0aCBleGNoIGRlZgAJZ3NhdmUACQl3aWR0aCAwIGd0IHsACQkJW10gMCBzZXRkYXNoAAkJCXRleHQgc3RyaW5nd2lkdGggcG9wIHdpZHRoIGV4Y2ggc3ViIHRleHQgbGVuZ3RoIGRpdiAwIHRleHQgYXNob3cACQl9IGlmAAlncmVzdG9yZQAvYm94cHJpbSB7CQkJCSUgeGNvcm5lciB5Y29ybmVyIHhzaXplIHlzaXplAAkJNCAyIHJvbGwACQltb3ZldG8ACQkyIGNvcHkACQlleGNoIDAgcmxpbmV0bwAJCTAgZXhjaCBybGluZXRvAAkJcG9wIG5lZyAwIHJsaW5ldG8ACQljbG9zZXBhdGgAL2VsbGlwc2VfcGF0aCB7AAkvcnkgZXhjaCBkZWYACS9yeCBleGNoIGRlZgAJL3kgZXhjaCBkZWYACS94IGV4Y2ggZGVmAAltYXRyaXggY3VycmVudG1hdHJpeAAJbmV3cGF0aAAJeCB5IHRyYW5zbGF0ZQAJcnggcnkgc2NhbGUACTAgMCAxIDAgMzYwIGFyYwAJc2V0bWF0cml4AC9lbmRwYWdlIHsgc2hvd3BhZ2UgfSBiaW5kIGRlZgAvc2hvd3BhZ2UgeyB9IGRlZgAvbGF5ZXJjb2xvcnNlcQAJWwklIGxheWVyIGNvbG9yIHNlcXVlbmNlIC0gZGFya2VzdCB0byBsaWdodGVzdAAJCVswIDAgMF0ACQlbLjIgLjggLjhdAAkJWy40IC44IC44XQAJCVsuNiAuOCAuOF0ACQlbLjggLjggLjhdAAldAGRlZgAvbGF5ZXJsZW4gbGF5ZXJjb2xvcnNlcSBsZW5ndGggZGVmAC9zZXRsYXllciB7L21heGxheWVyIGV4Y2ggZGVmIC9jdXJsYXllciBleGNoIGRlZgAJbGF5ZXJjb2xvcnNlcSBjdXJsYXllciAxIHN1YiBsYXllcmxlbiBtb2QgZ2V0AAlhbG9hZCBwb3Agc2V0aHNiY29sb3IACS9ub2RlY29sb3Ige25vcGNvbG9yfSBkZWYACS9lZGdlY29sb3Ige25vcGNvbG9yfSBkZWYACS9ncmFwaGNvbG9yIHtub3Bjb2xvcn0gZGVmAC9vbmxheWVyIHsgY3VybGF5ZXIgbmUge2ludmlzfSBpZiB9IGRlZgAvb25sYXllcnMgewAJL215dXBwZXIgZXhjaCBkZWYACS9teWxvd2VyIGV4Y2ggZGVmAAljdXJsYXllciBteWxvd2VyIGx0AAljdXJsYXllciBteXVwcGVyIGd0AAlvcgAJe2ludmlzfSBpZgAvY3VybGF5ZXIgMCBkZWYAJSVFbmRSZXNvdXJjZQAlJUVuZFByb2xvZwAlJUJlZ2luU2V0dXAAMTQgZGVmYXVsdC1mb250LWZhbWlseSBzZXRfZm9udAAlIC9hcnJvd2xlbmd0aCAxMCBkZWYAJSAvYXJyb3d3aWR0aCA1IGRlZgAlIG1ha2Ugc3VyZSBwZGZtYXJrIGlzIGhhcm1sZXNzIGZvciBQUy1pbnRlcnByZXRlcnMgb3RoZXIgdGhhbiBEaXN0aWxsZXIAL3BkZm1hcmsgd2hlcmUge3BvcH0ge3VzZXJkaWN0IC9wZGZtYXJrIC9jbGVhcnRvbWFyayBsb2FkIHB1dH0gaWZlbHNlACUgbWFrZSAnPDwnIGFuZCAnPj4nIHNhZmUgb24gUFMgTGV2ZWwgMSBkZXZpY2VzAC9sYW5ndWFnZWxldmVsIHdoZXJlIHtwb3AgbGFuZ3VhZ2VsZXZlbH17MX0gaWZlbHNlADIgbHQgewAgICAgdXNlcmRpY3QgKDw8KSBjdm4gKFspIGN2biBsb2FkIHB1dAAgICAgdXNlcmRpY3QgKD4+KSBjdm4gKFspIGN2biBsb2FkIHB1dAB9IGlmACUlRW5kU2V0dXAAJSVUcmFpbGVyCgAlJSUlUGFnZXM6ICVkCgBlbmQKcmVzdG9yZQoAJSVFT0YKACUhUFMtQWRvYmUtMy4wACBFUFNGLTMuMAoAJSUlJUNyZWF0b3I6ICVzIHZlcnNpb24gJXMgKCVzKQoAcHMyOnBzADwhLS0gADxwb2x5bGluZQAgcG9pbnRzPSIAIi8+CgAgZmlsbD0iAHVybCgjbF8lZCkAdXJsKCNyXyVkKQAiIGZpbGwtb3BhY2l0eT0iJWYAIiBzdHJva2U9IgAiIHN0cm9rZS13aWR0aD0iACIgc3Ryb2tlLWRhc2hhcnJheT0iJXMANSwyADEsNQAiIHN0cm9rZS1vcGFjaXR5PSIlZgBndnJlbmRlcl9jb3JlX3N2Zy5jAHN2Z19wcmludF9jb2xvcgA8cGF0aAAgaWQ9IgBfcCIgACBkPSIAJWMAPGRlZnM+CjxyYWRpYWxHcmFkaWVudCBpZD0icl8lZCIgY3g9IjUwJSUiIGN5PSI1MCUlIiByPSI3NSUlIiBmeD0iJWQlJSIgZnk9IiVkJSUiPgoAPHN0b3Agb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjoAO3N0b3Atb3BhY2l0eToAMS4AOyIvPgoAPHN0b3Agb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjoAOyIvPgo8L3JhZGlhbEdyYWRpZW50Pgo8L2RlZnM+CgA8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJsXyVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgAHgxPSIAIiB5MT0iACIgeDI9IgAiIHkyPSIAIiA+CgA8c3RvcCBvZmZzZXQ9IiUuMDNmIiBzdHlsZT0ic3RvcC1jb2xvcjoAOyIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+CgA8cG9seWdvbgA8ZWxsaXBzZQAgY3g9IgAiIGN5PSIAIiByeD0iACIgcnk9IgA8dGV4dAAgdGV4dC1hbmNob3I9InN0YXJ0IgAgdGV4dC1hbmNob3I9ImVuZCIAIHRleHQtYW5jaG9yPSJtaWRkbGUiACB4PSIAIiB5PSIAIGZvbnQtZmFtaWx5PSIlcwAsJXMAIGZvbnQtd2VpZ2h0PSIlcyIAIGZvbnQtc3RyZXRjaD0iJXMiACBmb250LXN0eWxlPSIlcyIAIGZvbnQtZmFtaWx5PSIlcyIAIGZvbnQtd2VpZ2h0PSJib2xkIgAgZm9udC1zdHlsZT0iaXRhbGljIgAgdGV4dC1kZWNvcmF0aW9uPSIAJXNvdmVybGluZQAlc2xpbmUtdGhyb3VnaAAgYmFzZWxpbmUtc2hpZnQ9InN1cGVyIgAgYmFzZWxpbmUtc2hpZnQ9InN1YiIAIGZvbnQtc2l6ZT0iJS4yZiIAIGZpbGw9IiVzIgAgZmlsbD0iIyUwMnglMDJ4JTAyeCIAc3ZnX3RleHRzcGFuAD4APHRleHRQYXRoIHhsaW5rOmhyZWY9IiMlc19wIiBzdGFydE9mZnNldD0iNTAlJSI+ADx0c3BhbiB4PSIwIiBkeT0iACI+ADwvdHNwYW4+PC90ZXh0UGF0aD4APC90ZXh0PgoAPC9nPgoAPGcAIGlkPSJhXwAgeGxpbms6aHJlZj0iACB4bGluazp0aXRsZT0iACB0YXJnZXQ9IgA8dGl0bGU+ADwvdGl0bGU+CgA8ZyBpZD0iAF8lcwAiIGNsYXNzPSIlcwBjbGFzcwAgdHJhbnNmb3JtPSJzY2FsZSgAKSByb3RhdGUoJWQpIHRyYW5zbGF0ZSgAKSI+CgA8L3N2Zz4KADwhLS0AIFBhZ2VzOiAlZCAtLT4KADxzdmcgd2lkdGg9IiVkcHQiIGhlaWdodD0iJWRwdCIKACB2aWV3Qm94PSIlLjJmICUuMmYgJS4yZiAlLjJmIgAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiADw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/PgoAc3R5bGVzaGVldAA8P3htbC1zdHlsZXNoZWV0IGhyZWY9IgAiIHR5cGU9InRleHQvY3NzIj8+CgA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iCgAgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CgA8IS0tIEdlbmVyYXRlZCBieSAAZGFya2JsdWUAZGFya2N5YW4AZGFya2dyYXkAZGFya2dyZXkAZGFya21hZ2VudGEAZGFya3JlZABsaWdodGdyZWVuACMgACBjcmVhdGUgbGluZSAAIC1maWxsIAAgLWRhc2ggNQAgLWRhc2ggMgBndnJlbmRlcl9jb3JlX3RrLmMAdGtnZW5fcHJpbnRfdGFncwBncmFwaCBsYWJlbAAgLXRhZ3MgeyVkJXMlcH0AdGtnZW5fcHJpbnRfY29sb3IAJGMAIC13aWR0aCAAIC1zbW9vdGggYmV6aWVyIAAgY3JlYXRlIHBvbHlnb24gACAtb3V0bGluZSAAIGNyZWF0ZSBvdmFsIAAgY3JlYXRlIHRleHQgACAtdGV4dCB7AH0AIC1mb250IHsAICVkfQAgLWFuY2hvciB3ACAtYW5jaG9yIGUAIwAgVGl0bGU6IAAgUGFnZXM6ICVkCgAjIEdlbmVyYXRlZCBieSAAKQoAdGsAdGs6dGsAICAgICAgPCEtLSAAIC0tPgoARXJyb3IgZHVyaW5nIGNvbnZlcnNpb24gdG8gIlVURi04Ii4gIFF1aXRpbmcuCgAgPHY6c2hhcGUgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyAAIHdpZHRoOiAlZDsgaGVpZ2h0OiAlZCIgZmlsbGVkPSJmYWxzZSI+ADx2OnBhdGggdj0iACBtIAAlLjBmLCUuMGYgACBsIAAgZSAAIi8+ADwvdjpzaGFwZT4KADx2OnN0cm9rZSBjb2xvcj0iACIgd2VpZ2h0PSIlLjBmcHQAIiBkYXNoc3R5bGU9ImRhc2gAIiBkYXNoc3R5bGU9ImRvdAAiIC8+ACMlMDJ4JTAyeCUwMngAZ3ZyZW5kZXJfY29yZV92bWwuYwB2bWxfcHJpbnRfY29sb3IAIHdpZHRoOiAlZDsgaGVpZ2h0OiAlZCIAID4APHY6cGF0aCAgdj0iAC8+PC92OnNoYXBlPgoAbSAAJXMlLjBmLCUuMGYgAGMgACBmaWxsZWQ9InRydWUiIGZpbGxjb2xvcj0iACIgACBmaWxsZWQ9ImZhbHNlIiAAJS4wZiAlLjBmIABsIAB4IGUgIi8+ACAgPHY6b3ZhbCBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7ACBsZWZ0OiAlLjJmOyB0b3A6ICUuMmY7ACB3aWR0aDogJS4yZjsgaGVpZ2h0OiAlLjJmIgA8L3Y6b3ZhbD4KADx2OnJlY3Qgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyAAIHN0cm9rZWQ9ImZhbHNlIiBmaWxsZWQ9ImZhbHNlIj4KADx2OnRleHRib3ggaW5zZXQ9IjAsMCwwLDAiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgdi10ZXh0LXdyYXBwaW5nOidmYWxzZSc7cGFkZGluZzonMCc7AGZvbnQtZmFtaWx5OiAnJXMnOwBmb250LXdlaWdodDogJXM7AGZvbnQtc3RyZXRjaDogJXM7AGZvbnQtc3R5bGU6ICVzOwAgZm9udC1zaXplOiAlLjJmcHQ7AGNvbG9yOiVzOwBjb2xvcjojJTAyeCUwMnglMDJ4OwB2bWxfdGV4dHNwYW4AIj48Y2VudGVyPgA8L2NlbnRlcj48L3Y6dGV4dGJveD4KADwvdjpyZWN0PgoAPC9hPgoAPGEAIGhyZWY9IiVzIgAgdGl0bGU9IiVzIgAgdGFyZ2V0PSIlcyIAPgoAPC92Omdyb3VwPgoAPC9ESVY+CgA8RElWIGlkPSdfVk1MMl8nIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt2aXNpYmlsaXR5OmhpZGRlbiI+CgA8IS0tIGluc2VydCBhbnkgb3RoZXIgaHRtbCBjb250ZW50IGhlcmUgLS0+CgA8RElWIGlkPSdfbm90Vk1MMV8nIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsiPgoAPCEtLSB0aGlzIHNob3VsZCBvbmx5IGRpc3BsYXkgb24gTk9OLUlFIGJyb3dzZXJzIC0tPgoAPEgyPlNvcnJ5LCB0aGlzIGRpYWdyYW0gd2lsbCBvbmx5IGRpc3BsYXkgY29ycmVjdGx5IG9uIEludGVybmV0IEV4cGxvcmVyIDUgKGFuZCB1cCkgYnJvd3NlcnMuPC9IMj4KADxESVYgaWQ9J19ub3RWTUwyXycgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyI+CgA8IS0tIGluc2VydCBhbnkgb3RoZXIgTk9OLUlFIGh0bWwgY29udGVudCBoZXJlIC0tPgoAPC9CT0RZPgo8L0hUTUw+CgA8SEVBRD4APE1FVEEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPgoAPFRJVExFPgA8L1RJVExFPgA8IS0tIFBhZ2VzOiAlZCAtLT4KACAgIDxTQ1JJUFQgTEFOR1VBR0U9J0phdmFzY3JpcHQnPgoAICAgZnVuY3Rpb24gYnJvd3NlcmNoZWNrKCkKACAgIHsKACAgICAgIHZhciB1YSA9IHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50CgAgICAgICB2YXIgbXNpZSA9IHVhLmluZGV4T2YgKCAnTVNJRSAnICkKACAgICAgIHZhciBpZXZlcnM7CgAgICAgICB2YXIgaXRlbTsKACAgICAgIHZhciBWTUx5ZXM9bmV3IEFycmF5KCdfVk1MMV8nLCdfVk1MMl8nKTsKACAgICAgIHZhciBWTUxubz1uZXcgQXJyYXkoJ19ub3RWTUwxXycsJ19ub3RWTUwyXycpOwoAICAgICAgaWYgKCBtc2llID4gMCApeyAgICAgIC8vIElmIEludGVybmV0IEV4cGxvcmVyLCByZXR1cm4gdmVyc2lvbiBudW1iZXIKACAgICAgICAgIGlldmVycz0gcGFyc2VJbnQgKHVhLnN1YnN0cmluZyAobXNpZSs1LCB1YS5pbmRleE9mICgnLicsIG1zaWUgKSkpCgAgICAgICB9CgAgICAgICBpZiAoaWV2ZXJzPj01KXsKACAgICAgICBmb3IgKHggaW4gVk1MeWVzKXsKACAgICAgICAgIGl0ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChWTUx5ZXNbeF0pOwoAICAgICAgICAgaWYgKGl0ZW0pIHsKACAgICAgICAgICAgaXRlbS5zdHlsZS52aXNpYmlsaXR5PSd2aXNpYmxlJzsKACAgICAgICAgIH0KACAgICAgICB9CgAgICAgICAgZm9yICh4IGluIFZNTG5vKXsKACAgICAgICAgIGl0ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChWTUxub1t4XSk7CgAgICAgICAgICAgIGl0ZW0uc3R5bGUudmlzaWJpbGl0eT0naGlkZGVuJzsKACAgICAgfWVsc2V7CgAgICAgIH0KACAgIH0KACAgIDwvU0NSSVBUPgoAPC9IRUFEPgA8Qk9EWSBvbmxvYWQ9J2Jyb3dzZXJjaGVjaygpOyc+CgA8RElWIGlkPSdfVk1MMV8nIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTppbmxpbmU7IHZpc2liaWxpdHk6aGlkZGVuACB3aWR0aDogJWRwdDsgaGVpZ2h0OiAlZHB0Ij4KADxTVFlMRT4KAHZcOiogeyBiZWhhdmlvcjogdXJsKCNkZWZhdWx0I1ZNTCk7ZGlzcGxheTppbmxpbmUtYmxvY2t9CgA8L1NUWUxFPgoAPHhtbDpuYW1lc3BhY2UgbnM9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206dm1sIiBwcmVmaXg9InYiIC8+CgAgPHY6Z3JvdXAgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyAAIHdpZHRoOiAlZHB0OyBoZWlnaHQ6ICVkcHQiACBjb29yZG9yaWdpbj0iMCwwIiBjb29yZHNpemU9IiVkLCVkIiA+ADxIVE1MPgoACjwhLS0gR2VuZXJhdGVkIGJ5IAAgdmVyc2lvbiAAICgAKQotLT4KAGFxdWEAZnVjaHNpYQBsaW1lAG9saXZlAHRlYWwAdm1sAHZtbDp2bWwALy8qKiogY29tbWVudDogJXMKAC8vKioqIHBvbHlsaW5lCgBzY2FsZSAgICA8JTkuM2YsICU5LjNmLCAlOS4zZj4KAHJvdGF0ZSAgIDwlOS4zZiwgJTkuM2YsICU5LjNmPgoAdHJhbnNsYXRlPCU5LjNmLCAlOS4zZiwgJTkuM2Y+CgBzcGhlcmVfc3dlZXAgewogICAgJXMKICAgICVkLAoAbGluZWFyX3NwbGluZQA8JTkuM2YsICU5LjNmLCAlOS4zZj4sICUuM2YKACVzICAgICVzACAgICB0b2xlcmFuY2UgMC4wMQogICAgJXMgICAgJXMgICAgJXMgICAgJXN9CgAlcyVzACVzIHRyYW5zbWl0ICUuM2YAUmVkAEdyZWVuAEJsdWUAcmdiPCU5LjNmLCAlOS4zZiwgJTkuM2Y+IHRyYW5zbWl0ICUuM2YAb29wcywgaW50ZXJuYWwgZXJyb3I6IHVuaGFuZGxlZCBjb2xvciB0eXBlPSVkICVzCgBndnJlbmRlcl9jb3JlX3Bvdi5jAHBvdl9jb2xvcl9hc19zdHIAcGlnbWVudCB7IGNvbG9yICVzIH0KAHBvdiByZW5kZXJlcjplbCAtICVzCgAvLyoqKiBiZXppZXIKAGJfc3BsaW5lACAgICAgICAgdG9sZXJhbmNlIDAuMDEKICAgICVzICAgICVzICAgICVzICAgICVzfQoALy8qKiogcG9seWdvbgoAICAgIHRvbGVyYW5jZSAwLjEKICAgICVzICAgICVzICAgICVzICAgICVzfQoAcG9seWdvbiB7ICVkLAoAPCU5LjNmLCAlOS4zZiwgJTkuM2Y+ACVzCiAgICAlcwAKICAgICVzICAgICVzICAgICVzICAgICVzfQoALy8qKiogZWxsaXBzZQoAdG9ydXMgeyAlLjNmLCAlLjNmCiAgICAlcyAgICAlcyAgICAlcyAgICAlc30KAHNwaGVyZSB7PCU5LjNmLCAlOS4zZiwgJTkuM2Y+LCAxLjAKICAgICVzICAgICVzICAgICVzICAgICVzfQoALy8qKiogdGV4dHNwYW46ICVzLCBmb250c2l6ZSA9ICUuM2YsIGZvbnRuYW1lID0gJXMKAHNjYWxlICUuM2YKAHRleHQgewogICAgdHRmICIlcyIsCiAgICAiJXMiLCAlLjNmLCAlLjNmCiAgICAlcyAgICAlcyAgICAlcyAgICAlcyAgICAlc30KACAgICBub19zaGFkb3cKAC8vKioqIGVuZF9lZGdlCgAvLyoqKiBiZWdpbl9lZGdlCgAvLyoqKiBlbmRfbm9kZQoALy8qKiogYmVnaW5fbm9kZTogJXMKAC8vKioqIGVuZF9jbHVzdGVyCgAvLyoqKiBiZWdpbl9jbHVzdGVyCgAvLyoqKiBlbmRfcGFnZQoALy8qKiogYmVnaW5fcGFnZQoALy8qKiogZW5kX2xheWVyCgAvLyoqKiBiZWdpbl9sYXllcjogJXMsICVkLyVkCgAvLyoqKiBlbmRfZ3JhcGgKAC8vKioqIGJlZ2luX2dyYXBoICVzCgBjYW1lcmEgeyBsb2NhdGlvbiA8JS4zZiAsICUuM2YgLCAlLjNmPgogICAgICAgICBsb29rX2F0ICA8JS4zZiAsICUuM2YgLCAlLjNmPgogICAgICAgICByaWdodCB4ICogaW1hZ2Vfd2lkdGggLyBpbWFnZV9oZWlnaHQKICAgICAgICAgYW5nbGUgJS4zZgp9CgAvL3NreQpwbGFuZSB7IDwwLCAxLCAwPiwgMSBob2xsb3cKICAgIHRleHR1cmUgewogICAgICAgIHBpZ21lbnQgeyBib3pvIHR1cmJ1bGVuY2UgMC45NQogICAgICAgICAgICBjb2xvcl9tYXAgewogICAgICAgICAgICAgICAgWzAuMDAgcmdiIDwwLjA1LCAwLjIwLCAwLjUwPl0KICAgICAgICAgICAgICAgIFswLjUwIHJnYiA8MC4wNSwgMC4yMCwgMC41MD5dCiAgICAgICAgICAgICAgICBbMC43NSByZ2IgPDEuMDAsIDEuMDAsIDEuMDA+XQogICAgICAgICAgICAgICAgWzAuNzUgcmdiIDwwLjI1LCAwLjI1LCAwLjI1Pl0KICAgICAgICAgICAgICAgIFsxLjAwIHJnYiA8MC41MCwgMC41MCwgMC41MD5dCiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2NhbGUgPDEuMDAsIDEuMDAsIDEuNTA+ICogMi41MAogICAgICAgICAgICB0cmFuc2xhdGUgPDAuMDAsIDAuMDAsIDAuMDA+CiAgICAgICAgfQogICAgICAgIGZpbmlzaCB7IGFtYmllbnQgMSBkaWZmdXNlIDAgfQogICAgfQogICAgc2NhbGUgMTAwMDAKfQovL21pc3QKZm9nIHsgZm9nX3R5cGUgMgogICAgZGlzdGFuY2UgNTAKICAgIGNvbG9yIHJnYiA8MS4wMCwgMS4wMCwgMS4wMD4gKiAwLjc1CiAgICBmb2dfb2Zmc2V0IDAuMTAKICAgIGZvZ19hbHQgMS41MAogICAgdHVyYnVsZW5jZSAxLjc1Cn0KLy9nbmQKcGxhbmUgeyA8MC4wMCwgMS4wMCwgMC4wMD4sIDAKICAgIHRleHR1cmUgewogICAgICAgIHBpZ21lbnR7IGNvbG9yIHJnYiA8MC4yNSwgMC40NSwgMC4wMD4gfQogICAgICAgIG5vcm1hbCB7IGJ1bXBzIDAuNzUgc2NhbGUgMC4wMSB9CiAgICAgICAgZmluaXNoIHsgcGhvbmcgMC4xMCB9CiAgICB9Cn0KAGxpZ2h0X3NvdXJjZSB7IDwxNTAwLDMwMDAsLTI1MDA+IGNvbG9yIFdoaXRlIH0KACN2ZXJzaW9uIDMuNjsKAGdsb2JhbF9zZXR0aW5ncyB7IGFzc3VtZWRfZ2FtbWEgMS4wIH0KACNkZWZhdWx0IHsgZmluaXNoIHsgYW1iaWVudCAwLjEgZGlmZnVzZSAwLjkgfSB9CgAjaW5jbHVkZSAiY29sb3JzLmluYyIKI2luY2x1ZGUgInRleHR1cmVzLmluYyIKI2luY2x1ZGUgInNoYXBlcy5pbmMiCgAjZGVjbGFyZSAlcyA9ICVzOwoAQmxhY2sAV2hpdGUAYmFrZXJzY2hvYwBicmFzcwBicmlnaHRnb2xkAGJyb256ZQBicm9uemUyAGNsZWFyAGNvb2xjb3BwZXIAY29wcGVyAGRhcmticm93bgBkYXJrcHVycGxlAGRhcmt0YW4AZGFya3dvb2QAZGtncmVlbmNvcHBlcgBkdXN0eXJvc2UAZmVsZHNwYXIAZmxlc2gAZ3JheTA1AGdyZWVuY29wcGVyAGh1bnRlcnNncmVlbgBsaWdodF9wdXJwbGUAbGlnaHR3b29kAG1hbmRhcmlub3JhbmdlAG1lZGl1bWZvcmVzdGdyZWVuAG1lZGl1bWdvbGRlbnJvZABtZWRpdW13b29kAG1lZF9wdXJwbGUAbWljYQBuZW9uYmx1ZQBuZW9ucGluawBuZXdtaWRuaWdodGJsdWUAbmV3dGFuAG9sZGdvbGQAcXVhcnR6AHJpY2hibHVlAHNjYXJsZXQAc2VtaVN3ZWV0Q2hvYwBzaWx2ZXIAc3BpY3lwaW5rAHN1bW1lcnNreQB2ZXJ5ZGFya2Jyb3duAHZlcnlfbGlnaHRfcHVycGxlAHBvdgBwb3Y6cG92ACVzICVzCgAuXCIgACAlZCAlZAAgJXMKACAlZABmaWxsIABlbGxpcHNlIGF0dHJzJWQgJXN3aWQgJS41ZiBodCAlLjVmIGF0ICglLjVmLCUuNWYpOwoALmZ0ICVzCgAucHMgJWQqXG4oU0Z1LyUuMGZ1CgAiJXMiIGF0ICglLjVmLCUuNWYpOwoAJTAzbwAlcyVzIGlzIG5vdCBhIHRyb2ZmIGZvbnQKAGRvdCBwaWMgcGx1Z2luOiAAUgBdCi5QRQoALlBTICUuNWYgJS41ZgoAJXMgdG8gY2hhbmdlIGRyYXdpbmcgc2l6ZSwgbXVsdGlwbHkgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb24gdGhlIC5QUyBsaW5lIGFib3ZlIGFuZCB0aGUgbnVtYmVyIG9uIHRoZSB0d28gbGluZXMgYmVsb3cgKHJvdW5kZWQgdG8gdGhlIG5lYXJlc3QgaW50ZWdlcikgYnkgYSBzY2FsZSBmYWN0b3IKAC5uciBTRiAlLjBmCnNjYWxldGhpY2tuZXNzID0gJS4wZgoAJXMgZG9uJ3QgY2hhbmdlIGFueXRoaW5nIGJlbG93IHRoaXMgbGluZSBpbiB0aGlzIGRyYXdpbmcKACVzIG5vbi1mYXRhbCBydW4tdGltZSBwaWMgdmVyc2lvbiBkZXRlcm1pbmF0aW9uLCB2ZXJzaW9uIDIKAGJveHJhZD0yLjAgJXMgd2lsbCBiZSByZXNldCB0byAwLjAgYnkgZ3BpYyBvbmx5CgBzY2FsZT0xLjAgJXMgcmVxdWlyZWQgZm9yIGNvbXBhcmlzb25zCgAlcyBib3hyYWQgaXMgbm93IDAuMCBpbiBncGljLCBlbHNlIGl0IHJlbWFpbnMgMi4wCgAlcyBkYXNod2lkIGlzIDAuMSBpbiAxMHRoIEVkaXRpb24sIDAuMDUgaW4gRFdCIDIgYW5kIGluIGdwaWMKACVzIGZpbGx2YWwgaXMgMC4zIGluIDEwdGggRWRpdGlvbiAoZmlsbCAwIG1lYW5zIGJsYWNrKSwgMC41IGluIGdwaWMgKGZpbGwgMCBtZWFucyB3aGl0ZSksIHVuZGVmaW5lZCBpbiBEV0IgMgoAJXMgZmlsbCBoYXMgbm8gbWVhbmluZyBpbiBEV0IgMiwgZ3BpYyBjYW4gdXNlIGZpbGwgb3IgZmlsbGVkLCAxMHRoIEVkaXRpb24gdXNlcyBmaWxsIG9ubHkKACVzIERXQiAyIGRvZXNuJ3QgdXNlIGZpbGwgYW5kIGRvZXNuJ3QgZGVmaW5lIGZpbGx2YWwKACVzIHJlc2V0IHdvcmtzIGluIGdwaWMgYW5kIDEwdGggZWRpdGlvbiwgYnV0IGlzbid0IGRlZmluZWQgaW4gRFdCIDIKACVzIERXQiAyIGNvbXBhdGliaWxpdHkgZGVmaW5pdGlvbnMKAGlmIGJveHJhZCA+IDEuMCAmJiBkYXNod2lkIDwgMC4wNzUgdGhlbiBYCglmaWxsdmFsID0gMTsKCWRlZmluZSBmaWxsIFkgWTsKCWRlZmluZSBzb2xpZCBZIFk7CglkZWZpbmUgcmVzZXQgWSBzY2FsZT0xLjAgWTsKWAoAcmVzZXQgJXMgc2V0IHRvIGtub3duIHN0YXRlCgAlcyBHTlUgcGljIHZzLiAxMHRoIEVkaXRpb24gZFwoZSd0ZW50ZQoAaWYgZmlsbHZhbCA+IDAuNCB0aGVuIFgKCWRlZmluZSBzZXRmaWxsdmFsIFkgZmlsbHZhbCA9IDEgLSBZOwoJZGVmaW5lIGJvbGQgWSB0aGlja25lc3MgMiBZOwoACSVzIGlmIHlvdSB1c2UgZ3BpYyBhbmQgaXQgYmFyZnMgb24gZW5jb3VudGVyaW5nICJzb2xpZCIsCgAJJXMJaW5zdGFsbCBhIG1vcmUgcmVjZW50IHZlcnNpb24gb2YgZ3BpYyBvciBzd2l0Y2ggdG8gRFdCIG9yIDEwdGggRWRpdGlvbiBwaWM7CgAJJXMJc29ycnksIHRoZSBncm9mZiBmb2xrcyBjaGFuZ2VkIGdwaWM7IHNlbmQgYW55IGNvbXBsYWludCB0byB0aGVtOwoAWCBlbHNlIFoKCWRlZmluZSBzZXRmaWxsdmFsIFkgZmlsbHZhbCA9IFk7CglkZWZpbmUgYm9sZCBZIFk7CglkZWZpbmUgZmlsbGVkIFkgZmlsbCBZOwpaCgAlcyBhcnJvd2hlYWQgaGFzIG5vIG1lYW5pbmcgaW4gRFdCIDIsIGFycm93aGVhZCA9IDcgbWFrZXMgZmlsbGVkIGFycm93aGVhZHMgaW4gZ3BpYyBhbmQgaW4gMTB0aCBFZGl0aW9uCgAlcyBhcnJvd2hlYWQgaXMgdW5kZWZpbmVkIGluIERXQiAyLCBpbml0aWFsbHkgMSBpbiBncGljLCAyIGluIDEwdGggRWRpdGlvbgoAYXJyb3doZWFkID0gNyAlcyBub3QgdXNlZCBieSBncmFwaHZpegoAJXMgR05VIHBpYyBzdXBwb3J0cyBhIGJveHJhZCB2YXJpYWJsZSB0byBkcmF3IGJveGVzIHdpdGggcm91bmRlZCBjb3JuZXJzOyBEV0IgYW5kIDEwdGggRWQuIGRvIG5vdAoAYm94cmFkID0gMCAlcyBubyByb3VuZGVkIGNvcm5lcnMgaW4gZ3JhcGh2aXoKACVzIEdOVSBwaWMgc3VwcG9ydHMgYSBsaW5ldGhpY2sgdmFyaWFibGUgdG8gc2V0IGxpbmUgdGhpY2tuZXNzOyBEV0IgYW5kIDEwdGggRWQuIGRvIG5vdAoAbGluZXRoaWNrID0gMDsgb2xkbGluZXRoaWNrID0gbGluZXRoaWNrCgAlcyAuUFMgdy9vIGFyZ3MgY2F1c2VzIEdOVSBwaWMgdG8gc2NhbGUgZHJhd2luZyB0byBmaXQgOC41eDExIHBhcGVyOyBEV0IgZG9lcyBub3QKACVzIG1heHBzaHQgYW5kIG1heHBzd2lkIGhhdmUgbm8gbWVhbmluZyBpbiBEV0IgMi4wLCBzZXQgcGFnZSBib3VuZGFyaWVzIGluIGdwaWMgYW5kIGluIDEwdGggRWRpdGlvbgoAJXMgbWF4cHNodCBhbmQgbWF4cHN3aWQgYXJlIHByZWRlZmluZWQgdG8gMTEuMCBhbmQgOC41IGluIGdwaWMKAG1heHBzaHQgPSAlZgptYXhwc3dpZCA9ICVmCgBEb3Q6IFsKAGRlZmluZSBhdHRyczAgJSUgJSU7IGRlZmluZSB1bmZpbGxlZCAlJSAlJTsgZGVmaW5lIHJvdW5kZWQgJSUgJSU7IGRlZmluZSBkaWFnb25hbHMgJSUgJSUKACVzJXMgdW5zdXBwb3J0ZWQKACVzIHJlc3RvcmUgcG9pbnQgc2l6ZSBhbmQgZm9udAoucHMgXG4oLlMKLmZ0IFxuKERGCgAlcyBDcmVhdG9yOiAlcyB2ZXJzaW9uICVzICglcykKACVzIFRpdGxlOiAlcwoAJXMgc2F2ZSBwb2ludCBzaXplIGFuZCBmb250Ci5uciAuUyBcbigucwoubnIgREYgXG4oLmYKAHBpYwBwaWM6cGljAHBuZzpzdmcAZ2lmOnN2ZwBqcGVnOnN2ZwBqcGU6c3ZnAGpwZzpzdmcAcG5nOmZpZwBnaWY6ZmlnAGpwZWc6ZmlnAGpwZTpmaWcAanBnOmZpZwBwbmc6dnJtbABnaWY6dnJtbABqcGVnOnZybWwAanBlOnZybWwAanBnOnZybWwAZXBzOnBzAHBzOnBzAChsaWIpOnBzAHBuZzptYXAAZ2lmOm1hcABqcGVnOm1hcABqcGU6bWFwAGpwZzptYXAAcHM6bWFwAGVwczptYXAAc3ZnOm1hcABwbmc6ZG90AGdpZjpkb3QAanBlZzpkb3QAanBlOmRvdABqcGc6ZG90AHBzOmRvdABlcHM6ZG90AHN2Zzpkb3QAcG5nOnhkb3QAZ2lmOnhkb3QAanBlZzp4ZG90AGpwZTp4ZG90AGpwZzp4ZG90AHBzOnhkb3QAZXBzOnhkb3QAc3ZnOnhkb3QAc3ZnOnN2ZwBwbmc6dm1sAGdpZjp2bWwAanBlZzp2bWwAanBlOnZtbABqcGc6dm1sAGdpZjp0awBpbWFnZSBjcmVhdGUgcGhvdG8gInBob3RvXyVzIiAtZmlsZSAiJXMiCgAkYyBjcmVhdGUgaW1hZ2UgJS4yZiAlLjJmIC1pbWFnZSAicGhvdG9fJXMiCgA8djppbWFnZSBzcmM9IiVzIiBzdHlsZT0iIHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDolLjJmOyBoZWlnaHQ6JS4yZjsgbGVmdDolLjJmIDsgdG9wOiUuMmYiACAvPgoAZ3Zsb2FkaW1hZ2VfY29yZS5jAGNvcmVfbG9hZGltYWdlX3BzbGliAFsgACVnICVnIABdICAlZCB0cnVlICVzCgBdICAlZCBmYWxzZSAlcwoAY29yZV9sb2FkaW1hZ2VfcHMAZ3NhdmUgJWcgJWcgdHJhbnNsYXRlIG5ld3BhdGgKAHVzZXJfc2hhcGVfJWQKAGdyZXN0b3JlCgBjb3JlX2xvYWRpbWFnZV92cm1sAFNoYXBlIHsKACAgYXBwZWFyYW5jZSBBcHBlYXJhbmNlIHsKACAgICBtYXRlcmlhbCBNYXRlcmlhbCB7CgAgICAgICBhbWJpZW50SW50ZW5zaXR5IDAuMzMKACAgICAgICAgZGlmZnVzZUNvbG9yIDEgMSAxCgAgICAgfQoAICAgIHRleHR1cmUgSW1hZ2VUZXh0dXJlIHsgdXJsICIlcyIgfQoAICB9CgBjb3JlX2xvYWRpbWFnZV9maWcAJWQgJWQgJWQgJWQgJWQgJWQgJWQgJWQgJWQgJS4xZiAlZCAlZCAlZCAlZCAlZCAlZAogJWQgJXMKACAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZAoAY29yZV9sb2FkaW1hZ2Vfc3ZnADxpbWFnZSB4bGluazpocmVmPSIAIiB3aWR0aD0iJWdweCIgaGVpZ2h0PSIlZ3B4IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0IiB4PSIlZyIgeT0iJWciACB0cmFuc2Zvcm09InJvdGF0ZSglZCAlZyAlZykiACIgd2lkdGg9IiVncHgiIGhlaWdodD0iJWdweCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4gbWVldCIgeD0iJWciIHk9IiVnIgAvPgoAZG90X2xheW91dABwaGFzZQBkb3QgZG9lcyBub3Qgc3VwcG9ydCB0aGUgYXNwZWN0IGF0dHJpYnV0ZSBmb3IgZGlzY29ubmVjdGVkIGdyYXBocyBvciBncmFwaHMgd2l0aCBjbHVzdGVycwoAY29tcG91bmQAdiA9PSBuAGRvdGluaXQuYwByZW1vdmVfZnJvbV9yYW5rAG9yZGVyAGVkZ2UgbGFiZWxzIHdpdGggc3BsaW5lcz1jdXJ2ZWQgbm90IHN1cHBvcnRlZCBpbiBkb3QgLSB1c2UgeGxhYmVscwoARURfbGFiZWwoZmUpAGRvdHNwbGluZXMuYwBfZG90X3NwbGluZXMAZmxhdCBlZGdlIGJldHdlZW4gYWRqYWNlbnQgbm9kZXMgb25lIG9mIHdoaWNoIGhhcyBhIHJlY29yZCBzaGFwZSAtIHJlcGxhY2UgcmVjb3JkcyB3aXRoIEhUTUwtbGlrZSBsYWJlbHMKACAgRWRnZSAlcyAlcyAlcwoAeHh4ADEwMDAwAHslc30AYXV4ZwBsYWJlbF9mbG9hdABmaXhlZAAobCA9IEVEX2xhYmVsKGZlKSkAc2V0RWRnZUxhYmVsUG9zAGUgIT0gTlVMTABmYXN0Z3IuYwBkZWxldGVfZmFzdF9lZGdlAG4gIT0gTkRfbmV4dChuKQBmYXN0X25vZGUAdSAhPSB2AGZhc3Rfbm9kZWFwcABORF9uZXh0KHYpID09IE5VTEwAZmluZF9mYXN0X25vZGUoZywgbikAZGVsZXRlX2Zhc3Rfbm9kZQBkZWxldGVfZmxhdF9lZGdlAG1lcmdlX29uZXdheSBnbGl0Y2gKAG1lcmdlX29uZXdheQBzYWZlX2RlbGV0ZV9mYXN0X2VkZ2UAbGcAY29tcABjbnQgPT0gc3oAbWluY3Jvc3MuYwBmaXhMYWJlbE9yZGVyAHJlbWluY3Jvc3MAbWluY3Jvc3MgJXM6ICVkIGNyb3NzaW5ncywgJS4yZiBzZWNzLgoAdgBuZWlnaGJvcgAocnYgPT0gMCkgfHwgKE5EX29yZGVyKHJ2KS1ORF9vcmRlcih2KSkqZGlyID4gMABjb25zdHJhaW5pbmdfZmxhdF9lZGdlKGcsdixlKSA9PSBGQUxTRQBmbGF0X3Jlb3JkZXIATkRfcmFuayh2KSA9PSByAHBvc3RvcmRlcgBmbGF0aW5kZXgoYWdoZWFkKGUpKSA8IE0tPm5yb3dzAGZsYXRfc2VhcmNoAGZsYXRpbmRleChhZ3RhaWwoZSkpIDwgTS0+bmNvbHMAb3V0AG9yZGVyaW5nICclcycgbm90IHJlY29nbml6ZWQuCgBvcmRlcmluZyAnJXMnIG5vdCByZWNvZ25pemVkIGZvciBub2RlICclcycuCgBtZXJnZTI6IGdyYXBoICVzLCByYW5rICVkIGhhcyBvbmx5ICVkIDwgJWQgbm9kZXMKAG1pbmNyb3NzOiBwYXNzICVkIGl0ZXIgJWQgdHJ5aW5nICVkIGN1cl9jcm9zcyAlZCBiZXN0X2Nyb3NzICVkCgBORF9vcmRlcih2KSA8IE5EX29yZGVyKHcpAGJhbGFuY2UAdHJhbnNwb3NlX3N0ZXAAc3VycHJpc2UKAGluc3RhbGxfaW5fcmFuaywgbGluZSAlZDogJXMgJXMgcmFuayAlZCBpID0gJWQgYW4gPSAwCgBHRF9yYW5rKGcpW3JdLm4gPD0gR0RfcmFuayhnKVtyXS5hbgBpbnN0YWxsX2luX3JhbmsAaW5zdGFsbF9pbl9yYW5rLCBsaW5lICVkOiBORF9vcmRlciglcykgWyVkXSA+IEdEX3JhbmsoUm9vdClbJWRdLmFuIFslZF0KAGluc3RhbGxfaW5fcmFuaywgbGluZSAlZDogcmFuayAlZCBub3QgaW4gcmFuayByYW5nZSBbJWQsJWRdCgBpbnN0YWxsX2luX3JhbmssIGxpbmUgJWQ6IEdEX3JhbmsoZylbJWRdLnYgKyBORF9vcmRlciglcykgWyVkXSA+IEdEX3JhbmsoZylbJWRdLmF2ICsgR0RfcmFuayhSb290KVslZF0uYW4gWyVkXQoAX25ld19yYW5rAG1jbGltaXQAcmFuayhnLCAyLCBuc2l0ZXIyKGcpKSA9PSAwAHBvc2l0aW9uLmMAZG90X3Bvc2l0aW9uAEFSPSUwLjRsZgkgQXJlYT0gJTAuNGxmCQBEdW1teT0lZAoAR29pbmcgdG8gYXBwbHkgYW5vdGhlciBleHBhbnNpb24uCgBuZXh0I2l0ZXI9JWQKAGhwAGNvbm5lY3RHcmFwaABFZGdlIGxlbmd0aCAlZiBsYXJnZXIgdGhhbiBtYXhpbXVtICV1IGFsbG93ZWQuCkNoZWNrIGZvciBvdmVyd2lkZSBub2RlKHMpLgoAbnNsaW1pdABjb250YWluX25vZGVzIGNsdXN0ICVzIHJhbmsgJWQgbWlzc2luZyBub2RlCgBuc2xpbWl0MQBuZXdyYW5rAE1heHJhbmsgPSAlZCwgbWlucmFuayA9ICVkCgBsZWFkZXIgIT0gTlVMTAByYW5rLmMAY2x1c3Rlcl9sZWFkZXIAKE5EX1VGX3NpemUobikgPD0gMSkgfHwgKG4gPT0gbGVhZGVyKQBhZ2hlYWQoZSkgPT0gVUZfZmluZChhZ2hlYWQoZSkpAG1pbm1heF9lZGdlcwBhZ3RhaWwoZSkgPT0gVUZfZmluZChhZ3RhaWwoZSkpAHJhbmsAc2FtZQBtaW4Ac291cmNlAG1heABzaW5rAGxldmVsIGFzc2lnbm1lbnQgY29uc3RyYWludHMAbGV2ZWwgZ3JhcGggcmVjAH9yb290AH90b3AAf2JvdABjb21wYWN0AF93ZWFrXyVkAHJhbmtpbmc6IGZhaWx1cmUgdG8gY3JlYXRlIHN0cm9uZyBjb25zdHJhaW50IGVkZ2UgYmV0d2VlbiBub2RlcyAlcyBhbmQgJXMKACVzIGhhcyB1bnJlY29nbml6ZWQgcmFuaz0lcwBsZXZlbCBlZGdlIHJlYwBsZXZlbCBub2RlIHJlYwBzYW1laGVhZABzYW1ldGFpbAB0b28gbWFueSAoPiAlZCkgc2FtZXtoZWFkLHRhaWx9IGdyb3VwcyBmb3Igbm9kZSAlcwoAY29tYmlBUiA9ICVsZgoAJWxmLCVkAHRoZSBhc3BlY3QgYXR0cmlidXRlIGhhcyBiZWVuIGRpc2FibGVkIGR1ZSB0byBpbXBsZW1lbnRhdGlvbiBmbGF3cyAtIGF0dHJpYnV0ZSBpZ25vcmVkLgoARURfdG9fdmlydChlKSA9PSBOVUxMAGNsYXNzMi5jAG1lcmdlX2NoYWluAEVEX3RvX3ZpcnQob3JpZykgPT0gTlVMTABtYWtlX2NoYWluAEVEX3RvX3ZpcnQob3JpZykgIT0gTlVMTABORF9yYW5rKGZyb20pIDwgTkRfcmFuayh0bykAY2x1c3Rlci5jAG1hcF9wYXRoACVzIHdhcyBhbHJlYWR5IGluIGEgcmFua3NldCwgZGVsZXRlZCBmcm9tIGNsdXN0ZXIgJXMKAGxoZWFkAGx0YWlsACVzIC0+ICVzOiBzcGxpbmUgc2l6ZSA+IDEgbm90IHN1cHBvcnRlZAoAJXMgLT4gJXM6IGhlYWQgbm90IGluc2lkZSBoZWFkIGNsdXN0ZXIgJXMKACVzIC0+ICVzOiB0YWlsIGlzIGluc2lkZSBoZWFkIGNsdXN0ZXIgJXMKAGJlei0+c2ZsYWcAY29tcG91bmQuYwBtYWtlQ29tcG91bmRFZGdlAGJlei0+ZWZsYWcAJXMgLT4gJXM6IHRhaWwgbm90IGluc2lkZSB0YWlsIGNsdXN0ZXIgJXMKACVzIC0+ICVzOiBoZWFkIGlzIGluc2lkZSB0YWlsIGNsdXN0ZXIgJXMKAHNlZ21lbnQgWyVzLCVzXSBkb2VzIG5vdCBpbnRlcnNlY3QgYm94IGxsPSVzLHVyPSVzCgBib3hJbnRlcnNlY3RmACglLjVnLCUuNWcpAGNsdXN0ZXIgbmFtZWQgJXMgbm90IGZvdW5kCgBjb25jZW50cmF0ZT10cnVlIG1heSBub3Qgd29yayBjb3JyZWN0bHkuCgByZWJ1aWx0ZF92bGlzdHM6IHJhbmsgbGVhZCAlcyBub3QgaW4gb3JkZXIgJWQgb2YgcmFuayAlZAoAZGVnZW5lcmF0ZSBjb25jZW50cmF0ZWQgcmFuayAlcywlZAoATkRfaW4ocmlnaHQpLnNpemUgKyBORF9vdXQocmlnaHQpLnNpemUgPT0gMABjb25jLmMAbWVyZ2V2aXJ0dWFsAGRvdDogT3V0IG9mIG1lbW9yeQoATkRfb3V0KHYpLnNpemUgPT0gMgBmbGF0LmMAc2V0Ym91bmRzAEdEX21pbnJhbmsoZykgPT0gMABhYm9taW5hdGlvbgBuZWF0b19sYXlvdXQAbmVhdG8AZmRwAHNmZHAAdHdvcGkAY2lyY28AcGF0Y2h3b3JrAG9zYWdlAG5vcABub3AxAG5vcDIAJWxmLCVsZiwlbGYlYwBub2RlICVzLCBwb3NpdGlvbiAlcywgZXhwZWN0ZWQgdHdvIGRvdWJsZXMKAG5vdHJhbnNsYXRlAG5vZGUgJXMgaW4gZ3JhcGggJXMgaGFzIG5vIHBvc2l0aW9uCgBzLCVsZiwlbGYlbgAgZSwlbGYsJWxmJW4AcG9zIGF0dHJpYnV0ZSBmb3IgZWRnZSAoJXMsJXMpIGRvZXNuJ3QgaGF2ZSAzbisxIHBvaW50cwoAJWxmLCVsZiVuAHN5bnRheCBlcnJvciBpbiBwb3MgYXR0cmlidXRlIGZvciBlZGdlICglcywlcykKACVsZiwlbGYsJWxmLCVsZgBzdGFydABzZWxmAHJhbmRvbQBub2RlIHBvc2l0aW9ucyBhcmUgaWdub3JlZCB1bmxlc3Mgc3RhcnQ9cmFuZG9tCgBhcyByZXF1aXJlZCBieSB0aGUgLW4gZmxhZwoAX25lYXRvX2NjAGdyYXBoICVzIGlzIGRpc2Nvbm5lY3RlZC4gSGVuY2UsIHRoZSBjaXJjdWl0IG1vZGVsCgBBbHRlcm5hdGl2ZWx5LCBjb25zaWRlciBydW5uaW5nIG5lYXRvIHVzaW5nIC1HcGFjaz10cnVlIG9yIGRlY29tcG9zaW5nCgB0aGUgZ3JhcGggaW50byBjb25uZWN0ZWQgY29tcG9uZW50cy4KAFNvbHZpbmcgbW9kZWwgJWQgaXRlcmF0aW9ucyAlZCB0b2wgJWYKAE5EX2lkKG5wKSA9PSBpAG5lYXRvaW5pdC5jAG1ha2VHcmFwaERhdGEAZiA8IGdyYXBoW2pdLm5lZGdlcwBkZnNDeWNsZQBtb2RlbCAlZCBzbWFydF9pbml0ICVkIHN0cmVzc3d0ICVkIGl0ZXJhdGlvbnMgJWQgdG9sICVmCgBjb252ZXJ0IGdyYXBoOiAAbWFqb3JpemF0aW9uCgAlZCBub2RlcyAlLjJmIHNlYwoAbGV2ZWxzZ2FwAGxheW91dCBhYm9ydGVkCgBzdHJlc3N3dAAlcyBhdHRyaWJ1dGUgdmFsdWUgbXVzdCBiZSAxIG9yIDIgLSBpZ25vcmluZwoAbW9kZWwAY2lyY3VpdABzdWJzZXQAc2hvcnRwYXRoAG1kcwBlZGdlcyBpbiBncmFwaCAlcyBoYXZlIG5vIGxlbiBhdHRyaWJ1dGUuIEhlbmNlLCB0aGUgbWRzIG1vZGVsCgBpcyBpbmFwcHJvcHJpYXRlLiBSZXZlcnRpbmcgdG8gdGhlIHNob3J0ZXN0IHBhdGggbW9kZWwuCgBVbmtub3duIHZhbHVlICVzIGZvciBhdHRyaWJ1dGUgIm1vZGVsIiBpbiBncmFwaCAlcyAtIGlnbm9yZWQKAG1vZGUAS0sAbWFqb3IAaGllcgBJbGxlZ2FsIHZhbHVlICVzIGZvciBhdHRyaWJ1dGUgIm1vZGUiIGluIGdyYXBoICVzIC0gaWdub3JlZAoAbWFrZVNwbGluZTogZmFpbGVkIHRvIG1ha2Ugc3BsaW5lIGVkZ2UgKCVzLCVzKQoAc3BsaW5lICVzICVzCgBiID09IG4AbmVhdG9zcGxpbmVzLmMAbWFrZV9iYXJyaWVycwB0aGUgYm91bmRpbmcgYm94ZXMgb2Ygc29tZSBub2RlcyB0b3VjaCAtIGZhbGxpbmcgYmFjayB0byBzdHJhaWdodCBsaW5lIGVkZ2VzCgBzb21lIG5vZGVzIHdpdGggbWFyZ2luICglLjAyZiwlLjAyZikgdG91Y2ggLSBmYWxsaW5nIGJhY2sgdG8gc3RyYWlnaHQgbGluZSBlZGdlcwoAcG9seWxpbmVzAGxpbmUgc2VnbWVudHMAb3J0aG9nb25hbCBsaW5lcwBDcmVhdGluZyBlZGdlcyB1c2luZyAlcwoAcG9seWxpbmUgJXMgJXMKAG1kc01vZGVsOiBkZWx0YSA9ICVmCgBTZXR0aW5nIHVwIHN0cmVzcyBmdW5jdGlvbgBTb2x2aW5nIG1vZGVsOiAACmZpbmFsIGUgPSAlZiAlZCBpdGVyYXRpb25zICUuMmYgc2VjCgBEYW1waW5nAGRlZmF1bHRkaXN0ACBpbiAlcyAtIHNldHRpbmcgdG8gJS4wMmYKAGJhZCBlZGdlIGxlbiAiJXMiAFNldHRpbmcgaW5pdGlhbCBwb3NpdGlvbnMKAHN0YXJ0PSVzIG5vdCBzdXBwb3J0ZWQgd2l0aCBtb2RlPXNlbGYgLSBpZ25vcmVkCgBTZXR0aW5nIHVwIHNwcmluZyBtb2RlbDogACUuMmYgc2VjCgAKZmluYWwgZSA9ICVmACEAICVkJXMgaXRlcmF0aW9ucyAlLjJmIHNlYwoATWF4LiBpdGVyYXRpb25zICglZCkgcmVhY2hlZCBvbiBncmFwaCAlcwoAJXMgJS4zZgoAJS4zZiAATkRfaGVhcGluZGV4KHYpIDwgMABzdHVmZi5jAG5lYXRvX2VucXVldWUAQ2FsY3VsYXRpbmcgc2hvcnRlc3QgcGF0aHM6IABzcGVjaWZpZWQgcm9vdCBub2RlICIlcyIgd2FzIG5vdCBmb3VuZC4AVXNpbmcgZGVmYXVsdCBjYWxjdWxhdGlvbiBmb3Igcm9vdCBub2RlCgByZXBvc2l0aW9uICVzCgAlcyA6ICVmICVmCgAlcyA6ICVmICVmICVmICVmCgAgIABHcmFwaCAlcyBoYXMgYXJyYXkgcGFja2luZyB3aXRoIHVzZXIgdmFsdWVzIGJ1dCBubyAic29ydHYiIGF0dHJpYnV0ZXMgYXJlIGRlZmluZWQuAHBpbgBXYXJuaW5nOiBub2RlICVzLCBwb3NpdGlvbiAlcywgZXhwZWN0ZWQgdHdvIGZsb2F0cwoAY29vcmRzAGxheW91dCAlcwoAZW5kICVzCgBpZHggPT0gc3oAbGF5b3V0LmMAZXhwYW5kQ2x1c3RlcgBpID09IGRlZwBnZXRFZGdlTGlzdABfZGdfJWQAZGVyaXZlIGdyYXBoICVzIG9mICVzCgBub2RlICIlcyIgaXMgY29udGFpbmVkIGluIHR3byBub24tY29tcGFyYWJsZSBjbHVzdGVycyAiJXMiIGFuZCAiJXMiCgBfcG9ydF8lc18lc18lc18lbGQAX3BvcnRfJXNfKCVkKV8oJWQpXyVsZAAlbGYsJWxmLCVsZiwlbGYlYwBncmFwaCAlcywgY29vcmQgJXMsIGV4cGVjdGVkIGZvdXIgZG91YmxlcwoAc3BsaW5lcyBhbmQgY2x1c3RlciBlZGdlcyBub3Qgc3VwcG9ydGVkIC0gdXNpbmcgbGluZSBzZWdtZW50cwoAbWF4aXRlcgBUMABmZHAgZG9lcyBub3Qgc3VwcG9ydCBzdGFydD1zZWxmIC0gaWdub3JpbmcKAHhMYXlvdXQgADk6cHJpc20AdHJpZXMgPSAlZCwgbW9kZSA9ICVzCgBkZXJpdmVkAGluZm8Ac2ZkcCBvbmx5IHN1cHBvcnRzIHN0YXJ0PXJhbmRvbQoASwByZXB1bHNpdmVmb3JjZQBsZXZlbHMAc21vb3RoaW5nAHF1YWR0cmVlAGJlYXV0aWZ5AG92ZXJsYXBfc2hyaW5rAHJvdGF0aW9uAGxhYmVsX3NjaGVtZQBsYWJlbF9zY2hlbWUgPSAlZCA+IDQgOiBpZ25vcmluZwoAZmFzdABhdmdfZGlzdABncmFwaF9kaXN0AHBvd2VyX2Rpc3QAc3ByaW5nAGRpbWVuAGRpbQBzcHJpbmdfZWxlY3RyaWNhbF9jb250cm9sOgoAICByZXB1bHNpdmUgYW5kIGF0dHJhY3RpdmUgZXhwb25lbnRzOiAlLjAzZiAlLjAzZgoAICByYW5kb20gc3RhcnQgJWQgc2VlZCAlZAoAICBLIDogJS4wM2YgQyA6ICUuMDNmCgAgIG1heCBsZXZlbHMgJWQgY29hcnNlbl9zY2hlbWUgJWQgY29hcnNlbl9ub2RlICVkCgAgIHF1YWR0cmVlIHNpemUgJWQgbWF4X2xldmVsICVkCgAgIEJhcm5lcy1IdXR0IGNvbnN0YW50ICUuMDNmIHRvbGVyYW5jZSAgJS4wM2YgbWF4aXRlciAlZAoAICBjb29saW5nICUuMDNmIHN0ZXAgc2l6ZSAgJS4wM2YgYWRhcHRpdmUgJWQKACAgYmVhdXRpZnlfbGVhdmVzICVkIG5vZGUgd2VpZ2h0cyAlZCByb3RhdGlvbiAlLjAzZgoAICBzbW9vdGhpbmcgJXMgb3ZlcmxhcCAlZCBpbml0aWFsX3NjYWxpbmcgJS4wM2YgZG9fc2hyaW5raW5nICVkCgAgIG9jdHJlZSBzY2hlbWUgJXMgbWV0aG9kICVzCgAgIGVkZ2VfbGFiZWxpbmdfc2NoZW1lICVkCgBTUFJJTkdfRUxFQ1RSSUNBTABTUFJJTkdfTUFYRU5UAFNUUkVTU19NQVhFTlQAU1RSRVNTX0FQUFJPWABTVFJFU1MAVU5JRk9STV9TVFJFU1MARlVMTF9TVFJFU1MATk9ORQBOT1JNQUwARkFTVABIWUJSSUQAU1RSRVNTX01BSk9SSVpBVElPTl9HUkFQSF9ESVNUAFNUUkVTU19NQUpPUklaQVRJT05fQVZHX0RJU1QAU1RSRVNTX01BSk9SSVpBVElPTl9QT1dFUl9ESVNUAFNQUklORwBUUklBTkdMRQBSTkcADSAgICAgICAgICAgICAgICBpdGVyID0gJWQsIHN0ZXAgPSAlZiBGbm9ybSA9ICVmIG56ID0gJWQgIEsgPSAlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAc3ByaW5nX2VsZWN0cmljYWxfZW1iZWRkaW5nX3Nsb3cAZG1lYW4gPSAlZiwgcmhvID0gJWYKAHNlbmQgcmFuZG9tIGNvb3JkaW5hdGVzCgBzY2FsaW5nIGZhY3RvciA9ICVmCgBRVUFEX1RSRUVfSFlCUklELCBzaXplIGxhcmdlciB0aGFuICVkLCBzd2l0Y2ggdG8gZmFzdCBxdWFkdHJlZQBjdHJsLT5vdmVybGFwPSVkCgAlZCAlZAoAdW5pZm9ybV9zdHJlc3MuYwBVbmlmb3JtU3RyZXNzU21vb3RoZXJfbmV3AFNwYXJzZU1hdHJpeF9pc19zeW1tZXRyaWMoQiwgRkFMU0UpAHVuaWZvcm1fc3RyZXNzAHxlZGdlbGFiZWx8AGxlbgBub3JtYWxpemUAb3ZlcmxhcABPdmVybGFwIHZhbHVlICIlcyIgdW5zdXBwb3J0ZWQgLSBpZ25vcmVkCgBVbnJlY29nbml6ZWQgb3ZlcmxhcCB2YWx1ZSAiJXMiIC0gdXNpbmcgZmFsc2UKAFZvcm9ub2kAb3ZlcmxhcDogJXMgdmFsdWUgJWQgc2NhbGluZyAlLjA0ZgoAb3ZlcmxhcF9zY2FsaW5nAHZvcm9ub2kAc2NhbGluZwB2cHNjAGlwc2VwAG9zY2FsZQBvbGQgc2NhbGluZwBzY2FsZXh5AHggYW5kIHkgc2NhbGluZwBvcnRobwBvcnRob2dvbmFsIGNvbnN0cmFpbnRzAG9ydGhvX3l4AG9ydGhveHkAeHkgb3J0aG9nb25hbCBjb25zdHJhaW50cwBvcnRob3l4AHl4IG9ydGhvZ29uYWwgY29uc3RyYWludHMAcG9ydGhvAHBzZXVkby1vcnRob2dvbmFsIGNvbnN0cmFpbnRzAHBvcnRob195eABwb3J0aG94eQB4eSBwc2V1ZG8tb3J0aG9nb25hbCBjb25zdHJhaW50cwBwb3J0aG95eAB5eCBwc2V1ZG8tb3J0aG9nb25hbCBjb25zdHJhaW50cwBwcmlzbQBBZGp1c3RpbmcgJXMgdXNpbmcgJXMKAFVuaGFuZGxlZCBhZGp1c3Qgb3B0aW9uICVzCgBOdW1iZXIgb2YgaXRlcmF0aW9ucyA9ICVkCgBOdW1iZXIgb2YgaW5jcmVhc2VzID0gJWQKAG92ZXJsYXAgWyVkXSA6ICVkCgB2b3JvX21hcmdpbgBzZXAAZXNlcABOb2RlIHNlcGFyYXRpb246IGFkZD0lZCAoJWYsJWYpCgAlZiwlZgBzY2FsZSA9ICglLjAzZiwlLjAzZikKAEVkZ2Ugc2VwYXJhdGlvbjogYWRkPSVkICglZiwlZikKAENhbGN1bGF0aW5nIGNpcmN1aXQgbW9kZWwAY29uanVnYXRlX2dyYWRpZW50OiB1bmV4cGVjdGVkIGxlbmd0aCAwIHZlY3RvcgoAQ2FsY3VsYXRpbmcgc3Vic2V0IG1vZGVsAGdyYXBoIGlzIGRpc2Nvbm5lY3RlZC4gSGVuY2UsIHRoZSBjaXJjdWl0IG1vZGVsCgBpcyB1bmRlZmluZWQuIFJldmVydGluZyB0byB0aGUgc2hvcnRlc3QgcGF0aCBtb2RlbC4KAENhbGN1bGF0aW5nIE1EUyBtb2RlbABDYWxjdWxhdGluZyBzaG9ydGVzdCBwYXRocwA6ICUuMmYgc2VjCgBTZXR0aW5nIGluaXRpYWwgcG9zaXRpb25zADogJS4yZiBzZWMAY2cAZGVsdGEgPD0gMHhGRkZGAGNvbnN0cmFpbnQuYwBta05Db25zdHJhaW50RwB2ZwBjb21wcmVzcyAlZyAKAHNjYWxlIGJ5ICVnLCVnIAoAYmVzdGNvc3QgPCBIVUdFX1ZBTABjb21wdXRlU2NhbGVYWQBHcmFwaHZpeiBidWlsdCB3aXRob3V0IGFueSB0cmlhbmd1bGF0aW9uIGxpYnJhcnkKAGRlbGF1bmF5X3RyaWFuZ3VsYXRpb246ICVzCgBkZWxhdW5heV90cmk6ICVzCgB0cnlpbmcgdG8gZGVsZXRlIGEgbm9uLWxpbmUKAAppbnRlcnNlY3Rpb24gYXQgJS4zZiAlLjNmCgBzZWcjJWQgOiAoJS4zZiwgJS4zZikgKCUuM2YsICUuM2YpCgByZW1vdmVfb3ZlcmxhcDogR3JhcGh2aXogbm90IGJ1aWx0IHdpdGggdHJpYW5ndWxhdGlvbiBsaWJyYXJ5CgBtYWtlQWRkUG9seTogdW5rbm93biBzaGFwZSB0eXBlICVzCgBtYWtlUG9seTogdW5rbm93biBzaGFwZSB0eXBlICVzCgB4IT1OVUxMAHNtYXJ0X2luaV94LmMASU1EU19naXZlbl9kaW0AaWxsLWNvbmRpdGlvbmVkAHJvb3QgPSAlcyBtYXggc3RlcHMgdG8gcm9vdCA9ICVkCgB0d29waTogdXNlIG9mIHdlaWdodD0wIGNyZWF0ZXMgZGlzY29ubmVjdGVkIGNvbXBvbmVudC4KAFJhbmsgc2VwYXJhdGlvbiA9IAAlLjAzbGYgAGFyZWEAaW5zZXQAJXMgY29vcmQgJS41ZyAlLjVnIGh0ICVmIHdpZHRoICVmCgAlLjAzZgByZWMgJWYgJWYgJWYgJWYKACVmIC0gJWYgJWYgJWYgJWYgPSAlZiAoJWYgJWYgJWYgJWYpCgB0cnlpbmcgdG8gYWRkIHRvIHJlY3QgeyVmICsvLSAlZiwgJWYgKy8tICVmfQoAdG90YWwgYWRkZWQgc28gZmFyID0gJWQKAGFkZGluZyAlZCBpdGVtcywgdG90YWwgYXJlYSA9ICVmLCB3ID0gJWYsIGFyZWEvdz0lZgoAY29tcG91bmRFZGdlczogY291bGQgbm90IGNvbnN0cnVjdCBvYnN0YWNsZXMgLSBmYWxsaW5nIGJhY2sgdG8gc3RyYWlnaHQgbGluZSBlZGdlcwoAY29tcG91bmRFZGdlczogbm9kZXMgdG91Y2ggLSBmYWxsaW5nIGJhY2sgdG8gc3RyYWlnaHQgbGluZSBlZGdlcwoAcGFjayB2YWx1ZSAlZCBpcyBzbWFsbGVyIHRoYW4gZXNlcCAoJS4wM2YsJS4wM2YpCgBzZXAgdmFsdWUgKCUuMDNmLCUuMDNmKSBpcyBzbWFsbGVyIHRoYW4gZXNlcCAoJS4wM2YsJS4wM2YpCgBjYyVzXyVkAGNjJXMrJWQAY19jbnQgPT0gMABjb21wLmMAZmluZENDb21wAGdyaWQoJWQsJWQpOiAlcwoAd2d0ID4gMABRdWFkVHJlZS5jAFF1YWRUcmVlX3JlcHVsc2l2ZV9mb3JjZV9hY2N1bXVsYXRlAHF0Mi0+biA+IDAAcXQxLT5uID4gMCAmJiBxdDItPm4gPiAwAFF1YWRUcmVlX3JlcHVsc2l2ZV9mb3JjZV9pbnRlcmFjdABkaXN0ID4gMAAhKHEtPmwpAFF1YWRUcmVlX2FkZF9pbnRlcm5hbABpaSA8IDE8PGRpbSAmJiBpaSA+PSAwAHEtPnF0c1tpaV0AcS0+biA9PSAxACEocS0+cXRzKQBxLT5sAHdpZHRoID4gMABRdWFkVHJlZV9uZXcAQS0+Zm9ybWF0ID09IEZPUk1BVF9DU1IAU3BhcnNlTWF0cml4LmMAU3BhcnNlTWF0cml4X3RyYW5zcG9zZQBBICYmIEIAU3BhcnNlTWF0cml4X2FkZABBLT5mb3JtYXQgPT0gQi0+Zm9ybWF0ICYmIEEtPmZvcm1hdCA9PSBGT1JNQVRfQ1NSAEEtPnR5cGUgPT0gQi0+dHlwZQBTcGFyc2VNYXRyaXhfaXNfc3ltbWV0cmljAEEtPmZvcm1hdCA9PSBGT1JNQVRfQ09PUkQAU3BhcnNlTWF0cml4X2Zyb21fY29vcmRpbmF0ZV9mb3JtYXQAbSA+IDAgJiYgbiA+IDAgJiYgbnogPj0gMABTcGFyc2VNYXRyaXhfZnJvbV9jb29yZGluYXRlX2FycmF5c19pbnRlcm5hbABBAGphW21hc2tbamFbal1dXSA9PSBqYVtqXQBTcGFyc2VNYXRyaXhfc3VtX3JlcGVhdF9lbnRyaWVzAGlkIDwgbiooeW1heC15bWluKzEpAGphW21hc2tbaWRdXSA9PSBqYVtqXQBTcGFyc2VNYXRyaXhfbXVsdGlwbHlfZGVuc2UyAEEtPnR5cGUgPT0gTUFUUklYX1RZUEVfUkVBTABTcGFyc2VNYXRyaXhfbXVsdGlwbHlfdmVjdG9yAEEtPnR5cGUgPT0gTUFUUklYX1RZUEVfUkVBTCB8fCBBLT50eXBlID09IE1BVFJJWF9UWVBFX0lOVEVHRVIAU3BhcnNlTWF0cml4X211bHRpcGx5X2RlbnNlMQBTcGFyc2VNYXRyaXhfbXVsdGlwbHkAamNbbWFza1tqYltrXV1dID09IGpiW2tdAFNwYXJzZU1hdHJpeF9tdWx0aXBseTMAamRbbWFza1tqY1trXV1dID09IGpjW2tdAFNwYXJzZU1hdHJpeF9jb29yZGluYXRlX2Zvcm1fYWRkX2VudHJpZXMAU3BhcnNlTWF0cml4X2RpdmlkZV9yb3dfYnlfZGVncmVlAG4gPiAxAGdlbmVyYWwuYwBpcmFuZABvbmVibG9jawBtaW5kaXN0AGFydGljdWxhdGlvbl9wb3MAcm9vdABQcmlvcml0eVF1ZXVlLmMAUHJpb3JpdHlRdWV1ZV9wdXNoAGdhaW4gPD0gcS0+bmdhaW4AU3BhcnNlTWF0cml4X2lzX3N5bW1ldHJpYyhBLCBGQUxTRSkAcG9zdF9wcm9jZXNzLmMAaWRlYWxfZGlzdGFuY2VfbWF0cml4AGxlbiA+IDAAU3RyZXNzTWFqb3JpemF0aW9uU21vb3RoZXIyX25ldwBueiA+IDAAaWRlYWxfZGlzdF9zY2hlbWUgdmFsdWUgd3JvbmcAU3BhcnNlTWF0cml4X2lzX3N5bW1ldHJpYyhBLCBGQUxTRSkgJiYgQS0+dHlwZSA9PSBNQVRSSVhfVFlQRV9SRUFMAFNwYXJzZVN0cmVzc01ham9yaXphdGlvblNtb290aGVyX25ldwBpZGlhZyA+PSAwAFN0cmVzc01ham9yaXphdGlvblNtb290aGVyX3Ntb290aAAoIWpjbikgJiYgKCF2YWwpAGdldF9lZGdlX2xhYmVsX21hdHJpeABUcmlhbmdsZVNtb290aGVyX25ldwBqZGlhZyA+PSAwAFNwcmluZ1Ntb290aGVyX25ldwAhZmxhZwBTcHJpbmdTbW9vdGhlcl9zbW9vdGgAbmVpZ2hiPSVkCgByb290ID0gJXMKAF9ibG9ja18lZABzLT5zeiA+IDAAYmxvY2t0cmVlLmMAcG9wAGFjdHVhbABub2RlbGlzdC5jAGluc2VydE5vZGVsaXN0AF9zcGFuXyVkAF9jbG9uZV8lZABpcABkZWdsaXN0LmMAcmVtb3ZlRGVnbGlzdABFcnJvcgBXYXJuaW5nACVzOiAAdXNlcm91dDogY291bGQgbm90IGFsbG9jYXRlIG1lbW9yeQoAX0FHX3N0cmRhdGEAX0FHX2RhdGFkaWN0AGFnZGljdG9mOiB1bmtub3duIGtpbmQgJWQKACVjJWxkAG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUAYWdkZWxldGUgb24gd3JvbmcgZ3JhcGgAX0FHX3BlbmRpbmcAYWdyZWNvcmRfY2FsbGJhY2sgb2YgYSBiYWQgb2JqZWN0AHBlbmQgZGljdG9mIGEgYmFkIG9iamVjdABtb3ZlIHRvIGZyb250IGxvY2sgaW5jb25zaXN0ZW5jeQBcXABmYXRhbCBmbGV4IHNjYW5uZXIgaW50ZXJuYWwgZXJyb3ItLW5vIGFjdGlvbiBmb3VuZAAlcwoAZmF0YWwgZmxleCBzY2FubmVyIGludGVybmFsIGVycm9yLS1lbmQgb2YgYnVmZmVyIG1pc3NlZABmYXRhbCBlcnJvciAtIHNjYW5uZXIgaW5wdXQgYnVmZmVyIG92ZXJmbG93AG91dCBvZiBkeW5hbWljIG1lbW9yeSBpbiBhYWdfZ2V0X25leHRfYnVmZmVyKCkAaW5wdXQAc3ludGF4IGFtYmlndWl0eSAtIGJhZGx5IGRlbGltaXRlZCBudW1iZXIgJwAnIGluIGxpbmUgJWQgb2YgACBzcGxpdHMgaW50byB0d28gdG9rZW5zCgAlcwBsaW5lACVkICUxWyJdJW4Ab3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIGFhZ19jcmVhdGVfYnVmZmVyKCkAb3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIGFhZ2Vuc3VyZV9idWZmZXJfc3RhY2soKQA6IAAgaW4gbGluZSAlZAAgbmVhciAnACBzY2FubmluZyBhIHF1b3RlZCBzdHJpbmcgKG1pc3NpbmcgZW5kcXVvdGU/IGxvbmdlciB0aGFuICVkPykAClN0cmluZyBzdGFydGluZzoiACBzY2FubmluZyBhIEhUTUwgc3RyaW5nIChtaXNzaW5nICc+Jz8gYmFkIG5lc3Rpbmc/IGxvbmdlciB0aGFuICVkPykAClN0cmluZyBzdGFydGluZzo8ACBzY2FubmluZyBhIC8qLi4uKi8gY29tbWVudCAobWlzc2luZyAnKi8/IGxvbmdlciB0aGFuICVkPykAZmxleCBzY2FubmVyIHB1c2gtYmFjayBvdmVyZmxvdwAiIgBzdHJpY3QAbGluZWxlbmd0aAA7CgAgW2tleT0AXQAgWwAsCgA9AF8lbGRfU1VTUEVDVABkaQBzdHJpY3QgAHsKAF07CgAS7u4UCQPu/u7u7gHu7u4B7u4K/u4TGRXuEwHu7u7uCxHu7u7u7u7u7u4B7u4WCQEBHQ8X7u4aFxvu7hzu7u7uARn77u7uAe4Q7u4e7u7u7gACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXEQICAgICAgICAgICAgISEAITAgIWAgICAgICAgICAgICAgICAgICAgICAgICAgIUAhUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4CDwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBAgMEBQYHCAkKCwwNCwMEBQ8HAwwNBgwNDgwNGhUWAAEAAwcOBg8IDA0SEyoQEQkQLzARMhcTDRQSLhIUQRMyEyxAKkIZLEJGIgwNDiMPCRARChARyRARLUVG/AEG9g8H9iQCEBEvMDZNTigmOzwqNjE5PT8vOkDYRDA+JTdDNUsrOElMAAMJAAAAAQ4CCwwIIyQlNjs9AA0QEhsWHBInMiIXMx48Bgc1BQ8RFBgpABMpAAAAAAA3FSgdHgAhJjQfMD4ZLAAbACAaKgArOi4vADE4OS0AAgIBAAMDAQABAAEBAQACAQEAAgIDAQEAAAUAAQMBAwUDAQEBAQIAAQAEAgACAQEDAgEAAwIBAAEBAAEBAQMAGBkZGRobHBwdHR4eHx8gICEhIiIjJCQmJyUlKCgpKSkqKisrKywsLS0uLy8wMTEyMzQ2NTc3Nzg4ODk5Ojru7v/u7u7u7u4fIO4A7+7u7gzu7u4IDe7u7vju7u7u7u717v8DCAQhBQsSEycUFRYpMkEXGBkaLDM0QkdIG0ocHS4eTx8ga2V5AGF0dHJpYnV0ZSBtYWNyb3Mgbm90IGltcGxlbWVudGVkACVzOiVzAENvdWxkIG5vdCBvcGVuICIlcyIgZm9yIHdyaXRpbmcgOiAlcwoATm8gbGlieiBzdXBwb3J0LgoALiVkAG5vbmFtZS5ndgBndndyaXRlX25vX3ogcHJvYmxlbSAlZAoAbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZQoATm8gbGlieiBzdXBwb3J0CgBndnByaW50ZjogJXMKAC05OTk5OTk5OTk5OTk5OTkuOTkAZ3JhcGh2aXoAMi40MC4xADIwMTYxMjI1LjAzMDQAcmVuZGVyAGRldmljZQBsb2FkaW1hZ2UAZHluYW1pYyBsb2FkaW5nIG5vdCBhdmFpbGFibGUKAFVzaW5nICVzOiAlczolcwoAZ3Z1c2Vyc2hhcGUuYwBndnVzZXJzaGFwZV9maW5kAGd2dXNlcnNoYXBlX2ZpbGVfYWNjZXNzAEZpbGVuYW1lICIlcyIgaXMgdW5zYWZlCgAlcyB3aGlsZSBvcGVuaW5nICVzCgB1cy0+ZgBndnVzZXJzaGFwZV9vcGVuACIlcyIgd2FzIG5vdCBmb3VuZCBhcyBhIGZpbGUgb3IgYXMgYSBzaGFwZSBsaWJyYXJ5IG1lbWJlcgoAL01lZGlhQm94AChbYS16XVthLXpBLVpdKik9IihbXiJdKikiAGNhbm5vdCBjb21waWxlIHJlZ3VsYXIgZXhwcmVzc2lvbiAlcwAlbGYlMnMAcHQAdmlld0JveAAlbGYgJWxmICVsZiAlbGYAaW4AcHgAcGMAIgBjbQBtbQAlJUJvdW5kaW5nQm94OgAB0NHS09TV1tfY2QA8c3ZnAFdFQlAAd2VicAAobGliKQCJUE5HDQoaCgBwbmcAJSFQUy1BZG9iZS0AQk0AYm1wAEdJRjgAZ2lmAP/Y/+AAanBlZwAlUERGLQBwZGYAxdDTxgBlcHMAPD94bWwAeG1sAFJJRkYAcmlmZgAAAAEAAGljbwAlZCAlZCAlZCAlZABMYXlvdXQgd2FzIG5vdCBkb25lCgBmYWlsdXJlIG1hbGxvYydpbmcgZm9yIHJlc3VsdCBzdHJpbmcAZ2M6IE91dCBvZiBtZW1vcnkKAF9jY18Ab3JpZwBvcABjY29tcHMuYwBtYXBDbHVzdABjY2dyYXBoaW5mbwBjY2dub2RlaW5mbwAoJTRsZCkgJTdsZCBub2RlcyAlN2xkIGVkZ2VzCgAgICAgICAgJTdkIG5vZGVzICU3ZCBlZGdlcyAlN2xkIGNvbXBvbmVudHMgJXMKAGRnAEVycm9yOiBub2RlICIlcyIgYmVsb25ncyB0byB0d28gbm9uLW5lc3RlZCBjbHVzdGVycyAiJXMiIGFuZCAiJXMiCgBzb3J0dgByb3cgbWFqb3IAY29sdW1uIG1ham9yAGFycmF5IHBhY2tpbmc6ICVzICVkIHJvd3MgJWQgY29sdW1ucwoAYmJbJXNdICUuNWcgJS41ZyAlLjVnICUuNWcKAHN0ZXAgc2l6ZSA9ICVkCgBwb3NbJWRdICVkICVkCgBjYyAoJWQgY2VsbHMpIGF0ICglZCwlZCkgKCVkLCVkKQoAY2MgKCVkIGNlbGxzKSBhdCAoJWQsJWQpCgAlcyBuby4gY2VsbHMgJWQgVyAlZCBIICVkCgAgICVkICVkIGNlbGwKAGxpYnBhY2s6IGRpc2MgPSAlZiAoIDwgMCkKAFBhY2tpbmc6IGNvbXB1dGUgZ3JpZCBzaXplCgBhICVmIGIgJWYgYyAlZiBkICVmIHIgJWYKAHJvb3QgJWQgKCVmKSAlZCAoJWYpCgAgcjEgJWYgcjIgJWYKAHBpbmZvAHBhY2suYwBnZXRQYWNrSW5mbwAgIG1hcmdpbiAlZAoAcGFja21vZGUAcGFyc2VQYWNrTW9kZUluZm8AYXJyYXkAYXNwZWN0ACVmAHBhY2sgaW5mbzoKACAgbW9kZSAgICVzCgAgIGFzcGVjdCAlZgoAICBzaXplICAgJWQKACAgZmxhZ3MgICVkCgB1bmRlZmluZWQAcGFjawBBcnJvdyB0eXBlICIlcyIgdW5rbm93biAtIGlnbm9yaW5nCgBub3JtYWwAY3JvdwB0ZWUAZG90AGludgB2ZWUAcGVuAG1wdHkAY3VydmUAaWN1cnZlAGwAaGFsZgBpbnZlbXB0eQBfYmFja2dyb3VuZABfZHJhd18AQ291bGQgbm90IHBhcnNlICJfYmFja2dyb3VuZCIgYXR0cmlidXRlIGluIGdyYXBoICVzCgAgICIlcyIKAG5vIG1lbW9yeSBmcm9tIHptYWxsb2MoKQoAb2JqAGVtaXQuYwBwb3Bfb2JqX3N0YXRlAGNsdXN0ACVsZABwYWdlJWQsJWRfAFRvdGFsIHNpemUgPiAxIGluICIlcyIgY29sb3Igc3BlYyAASWxsZWdhbCBsZW5ndGggdmFsdWUgaW4gIiVzIiBjb2xvciBhdHRyaWJ1dGUgAGxucmNvbG9yc2NoZW1lAGVtaXRfZWRnZV9sYWJlbAAlcy0lcwBmb3J3YXJkAGJhY2sAIC0+IAAgLS0gAGluIGVkZ2UgJXMlcyVzCgBsYWJlbGFsaWduZWQAZWRnZWhyZWYAZWRnZVVSTABsYWJlbGhyZWYAbGFiZWxVUkwAdGFpbGhyZWYAdGFpbFVSTABoZWFkaHJlZgBoZWFkVVJMAGVkZ2V0YXJnZXQAbGFiZWx0YXJnZXQAdGFpbHRhcmdldABoZWFkdGFyZ2V0AGVkZ2V0b29sdGlwAGxhYmVsdG9vbHRpcAB0YWlsdG9vbHRpcABoZWFkdG9vbHRpcAABbmVzdGluZyBub3QgYWxsb3dlZCBpbiBzdHlsZTogJXMKAHVubWF0Y2hlZCAnKScgaW4gc3R5bGU6ICVzCgB0cnVuY2F0aW5nIHN0eWxlICclcycKAHVubWF0Y2hlZCAnKCcgaW4gc3R5bGU6ICVzCgBhbGwAaW4gY2x1c3RlciAlcwoATW9yZSB0aGFuIDIgY29sb3JzIHNwZWNpZmllZCBmb3IgYSBncmFkaWVudCAtIGlnbm9yaW5nIHJlbWFpbmluZwoAZ3JhZGllbnQgcGVuIGNvbG9ycyBub3QgeWV0IHN1cHBvcnRlZC4KAEltYWdlcyB1bnN1cHBvcnRlZCBpbiAiYmFja2dyb3VuZCIgYXR0cmlidXRlCgBsYXllcnMgbm90IHN1cHBvcnRlZCBpbiAlcyBvdXRwdXQKAExheW91dCB3YXMgbm90IGRvbmUuICBNaXNzaW5nIGxheW91dCBwbHVnaW5zPyAKAGd2UmVuZGVySm9icyAlczogJS4yZiBzZWNzLgoAbGF5b3V0IHdhcyBub3QgZG9uZQoAcmVuZGVyZXIgZm9yICVzIGlzIHVuYXZhaWxhYmxlCgBwYWdlZGlyPSVzIGlnbm9yZWQKAHZpZXdwb3J0ACVsZiwlbGYsJWxmLCclW14nXScAJWxmLCVsZiwlbGYsJVteLF0lcwAlbGYsJWxmLCVsZiwlbGYsJWxmAG91dHB1dG9yZGVyAG9kZXNmaXJzdABkZ2VzZmlyc3QAbGF5ZXJzAGxheWVyc2VsZWN0AFRoZSBsYXllcnNlbGVjdCBhdHRyaWJ1dGUgIiVzIiBkb2VzIG5vdCBtYXRjaCBhbnkgbGF5ZXIgc3BlY2lmZWQgYnkgdGhlIGxheWVycyBhdHRyaWJ1dGUgLSBpZ25vcmVkLgoAbGF5ZXJzZXAAOgkgAGxheWVybGlzdHNlcAAsAFRoZSBjaGFyYWN0ZXIgJyVjJyBhcHBlYXJzIGluIGJvdGggdGhlIGxheWVyc2VwIGFuZCBsYXllcmxpc3RzZXAgYXR0cmlidXRlcyAtIGxheWVybGlzdHNlcCBpZ25vcmVkLgoAcGFkAEJMAHBhZ2VkaXIAc29saWQAAHNldGxpbmV3aWR0aAAxAABzcGwtPnNpemUgPiAwAGluaXRfc3BsaW5lc19iYgBiei5zaXplID4gMABiZXppZXJfYmIAYnouc2l6ZSAlIDMgPT0gMQAlbGYAZm9udHBhdGgARE9URk9OVFBBVEgAR0RGT05UUEFUSABpbWFnZXBhdGgAcXVhbnR1bQByYW5rZGlyAExSAEJUAFJMAG5vZGVzZXAAcmFua3NlcABlcXVhbGx5AHNob3dib3hlcwBmb250bmFtZXMAc2l6ZQBwYWdlAGNlbnRlcgByb3RhdGUAb3JpZW50YXRpb24AbGFuZHNjYXBlAGNsdXN0ZXJyYW5rAGNvbmNlbnRyYXRlAGRwaQByZXNvbHV0aW9uAG9yZGVyaW5nAGZpbGxjb2xvcgBmb250c2l6ZQBmb250bmFtZQBmb250Y29sb3IAeGxhYmVsAHBlbndpZHRoAHBlcmlwaGVyaWVzAHNrZXcAZGlzdG9ydGlvbgBub2p1c3RpZnkAbGF5ZXIAZ3JvdXAAY29tbWVudAB2ZXJ0aWNlcwB6AHdlaWdodABsYWJlbGZsb2F0AGRpcgBhcnJvd2hlYWQAYXJyb3d0YWlsAGhlYWRsYWJlbAB0YWlsbGFiZWwAbGFiZWxmb250c2l6ZQBsYWJlbGZvbnRuYW1lAGxhYmVsZm9udGNvbG9yAGxhYmVsZGlzdGFuY2UAbGFiZWxhbmdsZQBtaW5sZW4AZGVjb3JhdGUAYXJyb3dzaXplAGNvbnN0cmFpbnQAdGFpbGNsaXAAaGVhZGNsaXAAbGFiZWxqdXN0AGxvY2FsAGdsb2JhbAAlbGYsJWxmJWMAJWxmJWMAcmF0aW8AYXV0bwBjb21wcmVzcwBleHBhbmQAZmlsbABnZABwcwBzdmcAY2hhcnNldAB1dGYtOABsYXRpbi0xAGxhdGluMQBsMQBJU08tODg1OS0xAElTT184ODU5LTEASVNPODg1OS0xAElTTy1JUi0xMDAAYmlnLTUAYmlnNQB1dGY4AFVuc3VwcG9ydGVkIGNoYXJzZXQgIiVzIiAtIGFzc3VtaW5nIHV0Zi04CgBVbnN1cHBvcnRlZCBjaGFyc2V0IHZhbHVlICVkCgBVVEYtOABCSUctNQBpbiBsYWJlbCBvZiBncmFwaCAlcwoAaW4gbGFiZWwgb2Ygbm9kZSAlcwoAaW4gbGFiZWwgb2YgZWRnZSAlcyAlcyAlcwoAa2luZCA9PSBMVF9OT05FAGxhYmVscy5jAG1ha2VfbGFiZWwAXEwAXEcAXEUAXEgAXFQAJiMxMzsAJiMxMDsAJnF1b3Q7ACYjMTYwOwAmYW1wOwAmZ3Q7ACYjMzk7ACYjNDU7ACZsdDsAJXMgJWQgbm9kZXMgJWQgZWRnZXMgbWF4aXRlcj0lZCBiYWxhbmNlPSVkCgBuZXR3b3JrIHNpbXBsZXg6IAAlZCAAJXMlZCBub2RlcyAlZCBlZGdlcyAlZCBpdGVyICUuMmYgc2VjCgB1cGRhdGU6IG1pc21hdGNoZWQgbGNhIGluIHRyZWV1cGRhdGVzCgBUcmVlX2VkZ2Uuc2l6ZSA9PSBOX25vZGVzIC0gMQBucy5jAGZlYXNpYmxlX3RyZWUAIVRSRUVfRURHRShlKQBtZXJnZV90cmVlcwAocjAtPmhlYXBfaW5kZXggPiAtMSkgfHwgKHIxLT5oZWFwX2luZGV4ID4gLTEpAFNUc2V0VW5pb24Aci0+aGVhcF9pbmRleCA+PSAwAGFkZF90cmVlX2VkZ2U6IG1pc3NpbmcgdHJlZSBlZGdlCgBhZGRfdHJlZV9lZGdlOiBlbXB0eSBvdXRlZGdlIGxpc3QKAGFkZF90cmVlX2VkZ2U6IGVtcHR5IGluZWRnZSBsaXN0CgB0cm91YmxlIGluIGluaXRfcmFuawoACSVzICVkCgBzZWFyY2hzaXplAGdyYXBoIAAgAG5v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JXMKAGNhbid0IG9wZW4gbGlicmFyeSBmaWxlICVzCgBFT0YAQkVHSU4ARU5EAFRSQUlMRVIAL3VzZXJfc2hhcGVfJWQgewoAJSVCZWdpbkRvY3VtZW50OgoAJSVFbmREb2N1bWVudAoAfSBiaW5kIGRlZgoAVVRGLTggaW5wdXQgdXNlcyBub24tTGF0aW4xIGNoYXJhY3RlcnMgd2hpY2ggY2Fubm90IGJlIGhhbmRsZWQgYnkgdGhpcyBQb3N0U2NyaXB0IGRyaXZlcgoAY2Fubm90IHJlLWFsbG9jYXRlIHBzCgByb3V0ZXNwbGluZXNpbml0OiBjYW5ub3QgYWxsb2NhdGUgcHMKAHJvdXRlc3BsaW5lczogJWQgZWRnZXMsICVkIGJveGVzICUuMmYgc2VjCgBpbiByb3V0ZXNwbGluZXMsIGNhbm5vdCBmaW5kIE5PUk1BTCBlZGdlCgBpbiByb3V0ZXNwbGluZXMsIGlsbGVnYWwgdmFsdWVzIG9mIHByZXYgJWQgYW5kIG5leHQgJWQsIGxpbmUgJWQKAGluIHJvdXRlc3BsaW5lcywgZWRnZSBpcyBhIGxvb3AgYXQgJXMKAGluIHJvdXRlc3BsaW5lcywgUHNob3J0ZXN0cGF0aCBmYWlsZWQKAGluIHJvdXRlc3BsaW5lcywgUHJvdXRlc3BsaW5lIGZhaWxlZAoAVW5hYmxlIHRvIHJlY2xhaW0gYm94IHNwYWNlIGluIHNwbGluZSByb3V0aW5nIGZvciBlZGdlICIlcyIgLT4gIiVzIi4gU29tZXRoaW5nIGlzIHByb2JhYmx5IHNlcmlvdXNseSB3cm9uZy4KAGluIGNoZWNrcGF0aCwgYm94IDAgaGFzIExMIGNvb3JkID4gVVIgY29vcmQKAGluIGNoZWNrcGF0aCwgYm94ICVkIGhhcyBMTCBjb29yZCA+IFVSIGNvb3JkCgBpbiBjaGVja3BhdGgsIGJveGVzICVkIGFuZCAlZCBkb24ndCB0b3VjaAoAaW4gY2hlY2twYXRoLCBzdGFydCBwb3J0IG5vdCBpbiBmaXJzdCBib3gKAGluIGNoZWNrcGF0aCwgZW5kIHBvcnQgbm90IGluIGxhc3QgYm94CgAlZCBib3hlczoKACVkICglLjVnLCAlLjVnKSwgKCUuNWcsICUuNWcpCgBjb25zdHJhaW5lZABub3QgY29uc3RyYWluZWQAc3RhcnQgcG9ydDogKCUuNWcsICUuNWcpLCB0YW5nZW50IGFuZ2xlOiAlLjVnLCAlcwoAZW5kIHBvcnQ6ICglLjVnLCAlLjVnKSwgdGFuZ2VudCBhbmdsZTogJS41ZywgJXMKAHNpZGVzID09IDQAc2hhcGVzLmMAcm91bmRfY29ybmVycwBiYWQgbGFiZWwgZm9ybWF0ICVzCgBcTgBtYXJnaW4AJWxmLCVsZgByZWd1bGFyAGN1c3RvbQBzaGFwZWZpbGUAPG5pbD4ATm8gb3IgaW1wcm9wZXIgc2hhcGVmaWxlPSIlcyIgZm9yIG5vZGUgIiVzIgoATm8gb3IgaW1wcm9wZXIgaW1hZ2U9IiVzIiBmb3Igbm9kZSAiJXMiCgBsYWJlbGxvYwBub2RlICclcycsIGdyYXBoICclcycgc2l6ZSB0b28gc21hbGwgZm9yIGxhYmVsCgBlcHNmAHVzaW5nICVzIGZvciB1bmtub3duIHNoYXBlICVzCgBwb2x5Z29uAG92YWwAY2lyY2xlAHBvaW50AGVnZwB0cmlhbmdsZQBwbGFpbnRleHQAcGxhaW4AZGlhbW9uZAB0cmFwZXppdW0AcGFyYWxsZWxvZ3JhbQBob3VzZQBwZW50YWdvbgBoZXhhZ29uAHNlcHRhZ29uAG9jdGFnb24Abm90ZQB0YWIAZm9sZGVyAGJveDNkAGNvbXBvbmVudABjeWxpbmRlcgByZWN0AHJlY3RhbmdsZQBzcXVhcmUAZG91YmxlY2lyY2xlAGRvdWJsZW9jdGFnb24AdHJpcGxlb2N0YWdvbgBpbnZ0cmlhbmdsZQBpbnZ0cmFwZXppdW0AaW52aG91c2UAdW5kZXJsaW5lAE1kaWFtb25kAE1zcXVhcmUATWNpcmNsZQBwcm9tb3RlcgBjZHMAdGVybWluYXRvcgB1dHIAaW5zdWxhdG9yAHJpYm9zaXRlAHJuYXN0YWIAcHJvdGVhc2VzaXRlAHByb3RlaW5zdGFiAHByaW1lcnNpdGUAcmVzdHJpY3Rpb25zaXRlAGZpdmVwb3ZlcmhhbmcAdGhyZWVwb3ZlcmhhbmcAbm92ZXJoYW5nAGFzc2VtYmx5AHNpZ25hdHVyZQBycHJvbW90ZXIAbGFycm93AHJhcnJvdwBscHJvbW90ZXIAcmVjb3JkAE1yZWNvcmQAc3RhcgAjODA4MDgwACNmY2ZjZmMAIzMwMzAzMAAjZThlOGU4ACNlMGUwZTAAI2YwZjBmMAAjMTAxMDEwACNmOGY4ZjgAaW4gbm9kZSAlcwoAcm91bmRlZABkaWFnb25hbHMAcmFkaWFsAHN0cmlwZWQAd2VkZ2VkAF8Abm9kZSAlcywgcG9ydCAlcywgdW5yZWNvZ25pemVkIGNvbXBhc3MgcG9pbnQgJyVzJyAtIGlnbm9yZWQKAG5vZGUgJXMsIHBvcnQgJXMgdW5yZWNvZ25pemVkCgAlLjVnICUuNWcgdHJhbnNsYXRlIG5ld3BhdGggdXNlcl9zaGFwZV8lZAoAaW52aXMAAGZpbGxlZAAAcwBlAHcAc3BsaW5lcy5jAGJlZ2lucGF0aABQLT5lbmQudGhldGEgPCAyICogTV9QSQBlbmRwYXRoAG1ha2VTZWxmRWRnZQBnZXRzcGxpbmVwb2ludHM6IG5vIHNwbGluZSBwb2ludHMgYXZhaWxhYmxlIGZvciBlZGdlICglcywlcykKAHBvbHlsaW5lTWlkcG9pbnQAc3Bhbi0+Zm9udAB0ZXh0c3Bhbi5jAHRleHRzcGFuX3NpemUAZm9udC0+bmFtZQBmb250bmFtZTogIiVzIiByZXNvbHZlZCB0bzogJXMKAGZvbnRuYW1lOiB1bmFibGUgdG8gcmVzb2x2ZSAiJXMiCgBjb3VyAGFyaWFsAGhlbHZldGljYQBbaW50ZXJuYWwgdGltZXNdAFtpbnRlcm5hbCBjb3VyaWVyXQBbaW50ZXJuYWwgYXJpYWxdAEF2YW50R2FyZGUtQm9vawBVUlcgR290aGljIEwAYm9vawBzYW5zLVNlcmlmAEF2YW50R2FyZGUtQm9va09ibGlxdWUAb2JsaXF1ZQBpdGFsaWMAQXZhbnRHYXJkZS1EZW1pAGRlbWkAQXZhbnRHYXJkZS1EZW1pT2JsaXF1ZQBCb29rbWFuLURlbWkAVVJXIEJvb2ttYW4gTABzZXJpZgBCb29rbWFuLURlbWlJdGFsaWMAQm9va21hbi1MaWdodABsaWdodABCb29rbWFuLUxpZ2h0SXRhbGljAENvdXJpZXIAbW9ub3NwYWNlAENvdXJpZXItQm9sZABDb3VyaWVyLUJvbGRPYmxpcXVlAENvdXJpZXItT2JsaXF1ZQBIZWx2ZXRpY2EASGVsdmV0aWNhLUJvbGQASGVsdmV0aWNhLUJvbGRPYmxpcXVlAEhlbHZldGljYS1OYXJyb3cAY29uZGVuc2VkAEhlbHZldGljYS1OYXJyb3ctQm9sZABIZWx2ZXRpY2EtTmFycm93LUJvbGRPYmxpcXVlAEhlbHZldGljYS1OYXJyb3ctT2JsaXF1ZQBIZWx2ZXRpY2EtT2JsaXF1ZQBOZXdDZW50dXJ5U2NobGJrLUJvbGQAQ2VudHVyeSBTY2hvb2xib29rIEwATmV3Q2VudHVyeVNjaGxiay1Cb2xkSXRhbGljAE5ld0NlbnR1cnlTY2hsYmstSXRhbGljAE5ld0NlbnR1cnlTY2hsYmstUm9tYW4Acm9tYW4AUGFsYXRpbm8tQm9sZABQYWxhdGlubyBMaW5vdHlwZQBQYWxhdGluby1Cb2xkSXRhbGljAFBhbGF0aW5vLUl0YWxpYwBQYWxhdGluby1Sb21hbgBTeW1ib2wAZmFudGFzeQBUaW1lcy1Cb2xkAFRpbWVzAFRpbWVzLUJvbGRJdGFsaWMAVGltZXMtSXRhbGljAFphcGZDaGFuY2VyeS1NZWRpdW1JdGFsaWMAVVJXIENoYW5jZXJ5IEwAbWVkaXVtAFphcGZEaW5nYmF0cwBEaW5nYmF0cwBpbnB1dHNjYWxlAG5vAHRydWUAeWVzAHV0aWxzLmMAdSA9PSBVRl9maW5kKHUpAFVGX3NldG5hbWUAAWZpbGUgbG9hZGluZyBpcyBkaXNhYmxlZCBiZWNhdXNlIHRoZSBlbnZpcm9ubWVudCBjb250YWlucyBTRVJWRVJfTkFNRT0iJXMiCmFuZCB0aGUgR1ZfRklMRV9QQVRIIHZhcmlhYmxlIGlzIHVuc2V0IG9yIGVtcHR5LgoAUGF0aCBwcm92aWRlZCB0byBmaWxlOiAiJXMiIGhhcyBiZWVuIGlnbm9yZWQgYmVjYXVzZSBmaWxlcyBhcmUgb25seSBwZXJtaXR0ZWQgdG8gYmUgbG9hZGVkIGZyb20gdGhlIGRpcmVjdG9yaWVzIGluICIlcyIgd2hlbiBydW5uaW5nIGluIGFuIGh0dHAgc2VydmVyLgoAJXMlcyVzAC8AOgBlbGxpcHNlAFRpbWVzLVJvbWFuAGNsdXN0ZXIAX19jbHVzdGVybm9kZXMAY2x1c3RlciBjeWNsZSAlcyAtLSAlcyBub3Qgc3VwcG9ydGVkCgB0YWlsIGNsdXN0ZXIgJXMgaW5zaWRlIGhlYWQgY2x1c3RlciAlcwoAaGVhZCBjbHVzdGVyICVzIGluc2lkZSB0YWlsIGNsdXN0ZXIgJXMKAHRhaWwgbm9kZSAlcyBpbnNpZGUgaGVhZCBjbHVzdGVyICVzCgBoZWFkIG5vZGUgJXMgaW5zaWRlIHRhaWwgY2x1c3RlciAlcwoAX18AbGFiZWwAc2hhcGUAYm94AFR3byBjbHVzdGVycyBuYW1lZCAlcyAtIHRoZSBzZWNvbmQgd2lsbCBiZSBpZ25vcmVkCgBtYXBOAEFFbGlnAEFhY3V0ZQBBY2lyYwBBZ3JhdmUAQWxwaGEAQXJpbmcAQXRpbGRlAEF1bWwAQmV0YQBDY2VkaWwAQ2hpAERhZ2dlcgBEZWx0YQBFVEgARWFjdXRlAEVjaXJjAEVncmF2ZQBFcHNpbG9uAEV0YQBFdW1sAEdhbW1hAElhY3V0ZQBJY2lyYwBJZ3JhdmUASW90YQBJdW1sAEthcHBhAExhbWJkYQBNdQBOdGlsZGUATnUAT0VsaWcAT2FjdXRlAE9jaXJjAE9ncmF2ZQBPbWVnYQBPbWljcm9uAE9zbGFzaABPdGlsZGUAT3VtbABQaGkAUGkAUHJpbWUAUHNpAFJobwBTY2Fyb24AU2lnbWEAVEhPUk4AVGF1AFRoZXRhAFVhY3V0ZQBVY2lyYwBVZ3JhdmUAVXBzaWxvbgBVdW1sAFhpAFlhY3V0ZQBZdW1sAFpldGEAYWFjdXRlAGFjaXJjAGFjdXRlAGFlbGlnAGFncmF2ZQBhbGVmc3ltAGFscGhhAGFtcABhbmQAYW5nAGFyaW5nAGFzeW1wAGF0aWxkZQBhdW1sAGJkcXVvAGJldGEAYnJ2YmFyAGJ1bGwAY2FwAGNjZWRpbABjZWRpbABjZW50AGNoaQBjaXJjAGNsdWJzAGNvbmcAY29weQBjcmFycgBjdXAAY3VycmVuAGRBcnIAZGFnZ2VyAGRhcnIAZGVnAGRlbHRhAGRpYW1zAGRpdmlkZQBlYWN1dGUAZWNpcmMAZWdyYXZlAGVtcHR5AGVtc3AAZW5zcABlcHNpbG9uAGVxdWl2AGV0YQBldGgAZXVtbABldXJvAGV4aXN0AGZub2YAZm9yYWxsAGZyYWMxMgBmcmFjMTQAZnJhYzM0AGZyYXNsAGdhbW1hAGdlAGd0AGhBcnIAaGFycgBoZWFydHMAaGVsbGlwAGlhY3V0ZQBpY2lyYwBpZXhjbABpZ3JhdmUAaW1hZ2UAaW5maW4AaW50AGlvdGEAaXF1ZXN0AGlzaW4AaXVtbABrYXBwYQBsQXJyAGxhbWJkYQBsYW5nAGxhcXVvAGxhcnIAbGNlaWwAbGRxdW8AbGUAbGZsb29yAGxvd2FzdABsb3oAbHJtAGxzYXF1bwBsc3F1bwBsdABtYWNyAG1kYXNoAG1pY3JvAG1pZGRvdABtdQBuYWJsYQBuYnNwAG5kYXNoAG5lAG5pAG5vdABub3RpbgBuc3ViAG50aWxkZQBudQBvYWN1dGUAb2NpcmMAb2VsaWcAb2dyYXZlAG9saW5lAG9tZWdhAG9taWNyb24Ab3BsdXMAb3IAb3JkZgBvcmRtAG9zbGFzaABvdGlsZGUAb3RpbWVzAG91bWwAcGFyYQBwYXJ0AHBlcm1pbABwZXJwAHBoaQBwaQBwaXYAcGx1c21uAHBvdW5kAHByaW1lAHByb2QAcHJvcABwc2kAcXVvdAByQXJyAHJhZGljAHJhbmcAcmFxdW8AcmFycgByY2VpbAByZHF1bwByZWFsAHJlZwByZmxvb3IAcmhvAHJsbQByc2FxdW8AcnNxdW8Ac2JxdW8Ac2Nhcm9uAHNkb3QAc2VjdABzaHkAc2lnbWEAc2lnbWFmAHNpbQBzcGFkZXMAc3ViAHN1YmUAc3VtAHN1cABzdXAxAHN1cDIAc3VwMwBzdXBlAHN6bGlnAHRhdQB0aGVyZTQAdGhldGEAdGhldGFzeW0AdGhpbnNwAHRob3JuAHRpbGRlAHRpbWVzAHRyYWRlAHVBcnIAdWFjdXRlAHVhcnIAdWNpcmMAdWdyYXZlAHVtbAB1cHNpaAB1cHNpbG9uAHV1bWwAd2VpZXJwAHhpAHlhY3V0ZQB5ZW4AeXVtbAB6ZXRhAHp3agB6d25qAFVURjggY29kZXMgPiA0IGJ5dGVzIGFyZSBub3QgY3VycmVudGx5IHN1cHBvcnRlZCAoZ3JhcGggJXMpIC0gdHJlYXRlZCBhcyBMYXRpbi0xLiBQZXJoYXBzICItR2NoYXJzZXQ9bGF0aW4xIiBpcyBuZWVkZWQ/CgBJbnZhbGlkICVkLWJ5dGUgVVRGOCBmb3VuZCBpbiBpbnB1dCBvZiBncmFwaCAlcyAtIHRyZWF0ZWQgYXMgTGF0aW4tMS4gUGVyaGFwcyAiLUdjaGFyc2V0PWxhdGluMSIgaXMgbmVlZGVkPwoAYnouc2l6ZQBvdmVybGFwX2JlemllcgB1cnZlZABvbXBvdW5kAGFsc2UAaW5lAG9uZQBvAHJ0aG8Ab2x5bGluZQBwbGluZQBydWUAZXMAVW5rbm93biAic3BsaW5lcyIgdmFsdWU6ICIlcyIgLSBpZ25vcmVkCgBzcGxpbmVzAG9kYgBPcnRob2dvbmFsIGVkZ2VzIGRvIG5vdCBjdXJyZW50bHkgaGFuZGxlIGVkZ2UgbGFiZWxzLiBUcnkgdXNpbmcgeGxhYmVscy4KAG9ydGhvICVzICVzCgBjaGFuaQBvcnRoby5jAGNoYW5TZWFyY2gAY3AAJSUhUFMtQWRvYmUtMi4wCiUlJSVCb3VuZGluZ0JveDogKGF0ZW5kKQovcG9pbnQgewogIC9ZIGV4Y2ggZGVmCiAgL1ggZXhjaCBkZWYKICBuZXdwYXRoCiAgWCBZIDMgMCAzNjAgYXJjIGZpbGwKfSBkZWYKL2NlbGwgewogIC9ZIGV4Y2ggZGVmCiAgL1ggZXhjaCBkZWYKICAveSBleGNoIGRlZgogIC94IGV4Y2ggZGVmCiAgbmV3cGF0aAogIHggeSBtb3ZldG8KICB4IFkgbGluZXRvCiAgWCBZIGxpbmV0bwogIFggeSBsaW5ldG8KICBjbG9zZXBhdGggc3Ryb2tlCn0gZGVmCi9ub2RlIHsKIC91IGV4Y2ggZGVmCiAvciBleGNoIGRlZgogL2QgZXhjaCBkZWYKIC9sIGV4Y2ggZGVmCiBuZXdwYXRoIGwgZCBtb3ZldG8KIHIgZCBsaW5ldG8gciB1IGxpbmV0byBsIHUgbGluZXRvCiBjbG9zZXBhdGggZmlsbAp9IGRlZgoKACVkICVkIHRyYW5zbGF0ZQoAMC44IDAuOCAwLjggc2V0cmdiY29sb3IKAHNob3dwYWdlCiUlJSVUcmFpbGVyCiUlJSVCb3VuZGluZ0JveDogJWQgJWQgJWQgJWQKAG5ld3BhdGggJWQgJWQgbW92ZXRvCgAlZCAlZCBsaW5ldG8KACVkICVkIGxpbmV0byBzdHJva2UKAGNoYW5uZWwgJWQgKCVmLCVmKQoAIC0+CgAgICAgIAAoKCVmLCVmKSwoJWYsJWYpKSAlcyAlcwBCX1JJR0hUAEJfRE9XTgBCX0xFRlQAQl9VUABCX05PREUAc2VnAG5leHRfc2VnAGRlY2lkZV9wb2ludABpbmNvbXBhcmFibGUgc2VnbWVudHMgISEgLS0gQWJvcnRpbmcKAHMxLT5jb21tX2Nvb3JkPT1zMi0+Y29tbV9jb29yZABpc19wYXJhbGxlbABncmFwaCBHIHsKACBub2RlW3NoYXBlPXBvaW50XQoAICAlZCBbcG9zPSIlZCwlZCJdCgAgICVkIC0tICVkW2xlbj0iJWYiXQoAfQoAY29sb3IgJXMAJXMgaXMgbm90IGEga25vd24gY29sb3IuCgBlcnJvciBpbiBjb2x4bGF0ZSgpCgBzb2xpZABpbnZpc2libGUAYm9sZABzZXRsaW5ld2lkdGgAZmlsbGVkAHVuZmlsbGVkAHRhcGVyZWQAZ3ZyZW5kZXJfc2V0X3N0eWxlOiB1bnN1cHBvcnRlZCBzdHlsZSAlcyAtIGlnbm9yaW5nCgBndnJlbmRlci5jAGd2cmVuZGVyX3VzZXJzaGFwZQBuYW1lAG5hbWVbMF0AYm90aABsYXlvdXQATGF5b3V0IHR5cGU6ICIlcyIgbm90IHJlY29nbml6ZWQuIFVzZSBvbmUgb2Y6JXMKAGpvYgBndmxvYWRpbWFnZS5jAGd2bG9hZGltYWdlAHVzAHVzLT5uYW1lAHVzLT5uYW1lWzBdAE5vIGxvYWRpbWFnZSBwbHVnaW4gZm9yICIlcyIKAFEATGVmdABLUF9MZWZ0AFJpZ2h0AEtQX1JpZ2h0AFVwAEtQX1VwAERvd24AS1BfRG93bgBwbHVzAEtQX0FkZABtaW51cwBLUF9TdWJ0cmFjdABGAGVkZ2UAdGFpbHBvcnQAaGVhZHBvcnQAa2V5AFVSTABub2RlAGRpZ3JhcGgAZ3JhcGgAc3ViZ3JhcGgAX0xUWF9saWJyYXJ5AHRleHRsYXlvdXQAb2JqcC0+bGJsAHhsYWJlbHMuYwB4bGFkanVzdAB4bGludGVyc2VjdGlvbnMAbHAgIT0gY2xwAGdldGludHJzeGkAb2JqcDEtPnN6LnggPT0gMCAmJiBvYmpwMS0+c3oueSA9PSAwAGxibGVuY2xvc2luZwB2cAB4bGhkeHVubG9hZABzaXplPT1mcmVlZAByZWN0LmJvdW5kYXJ5WzJdIDwgSU5UX01BWABvYmpwbHBta3MAcmVjdC5ib3VuZGFyeVszXSA8IElOVF9NQVgAb3V0IG9mIG1lbW9yeQoAIyUyeCUyeCUyeCUyeAAlbGYlbGYlbGYAL2FjY2VudDMvMQAvYWNjZW50My8yAC9hY2NlbnQzLzMAL2FjY2VudDQvMQAvYWNjZW50NC8yAC9hY2NlbnQ0LzMAL2FjY2VudDQvNAAvYWNjZW50NS8xAC9hY2NlbnQ1LzIAL2FjY2VudDUvMwAvYWNjZW50NS80AC9hY2NlbnQ1LzUAL2FjY2VudDYvMQAvYWNjZW50Ni8yAC9hY2NlbnQ2LzMAL2FjY2VudDYvNAAvYWNjZW50Ni81AC9hY2NlbnQ2LzYAL2FjY2VudDcvMQAvYWNjZW50Ny8yAC9hY2NlbnQ3LzMAL2FjY2VudDcvNAAvYWNjZW50Ny81AC9hY2NlbnQ3LzYAL2FjY2VudDcvNwAvYWNjZW50OC8xAC9hY2NlbnQ4LzIAL2FjY2VudDgvMwAvYWNjZW50OC80AC9hY2NlbnQ4LzUAL2FjY2VudDgvNgAvYWNjZW50OC83AC9hY2NlbnQ4LzgAL2JsdWVzMy8xAC9ibHVlczMvMgAvYmx1ZXMzLzMAL2JsdWVzNC8xAC9ibHVlczQvMgAvYmx1ZXM0LzMAL2JsdWVzNC80AC9ibHVlczUvMQAvYmx1ZXM1LzIAL2JsdWVzNS8zAC9ibHVlczUvNAAvYmx1ZXM1LzUAL2JsdWVzNi8xAC9ibHVlczYvMgAvYmx1ZXM2LzMAL2JsdWVzNi80AC9ibHVlczYvNQAvYmx1ZXM2LzYAL2JsdWVzNy8xAC9ibHVlczcvMgAvYmx1ZXM3LzMAL2JsdWVzNy80AC9ibHVlczcvNQAvYmx1ZXM3LzYAL2JsdWVzNy83AC9ibHVlczgvMQAvYmx1ZXM4LzIAL2JsdWVzOC8zAC9ibHVlczgvNAAvYmx1ZXM4LzUAL2JsdWVzOC82AC9ibHVlczgvNwAvYmx1ZXM4LzgAL2JsdWVzOS8xAC9ibHVlczkvMgAvYmx1ZXM5LzMAL2JsdWVzOS80AC9ibHVlczkvNQAvYmx1ZXM5LzYAL2JsdWVzOS83AC9ibHVlczkvOAAvYmx1ZXM5LzkAL2JyYmcxMC8xAC9icmJnMTAvMTAAL2JyYmcxMC8yAC9icmJnMTAvMwAvYnJiZzEwLzQAL2JyYmcxMC81AC9icmJnMTAvNgAvYnJiZzEwLzcAL2JyYmcxMC84AC9icmJnMTAvOQAvYnJiZzExLzEAL2JyYmcxMS8xMAAvYnJiZzExLzExAC9icmJnMTEvMgAvYnJiZzExLzMAL2JyYmcxMS80AC9icmJnMTEvNQAvYnJiZzExLzYAL2JyYmcxMS83AC9icmJnMTEvOAAvYnJiZzExLzkAL2JyYmczLzEAL2JyYmczLzIAL2JyYmczLzMAL2JyYmc0LzEAL2JyYmc0LzIAL2JyYmc0LzMAL2JyYmc0LzQAL2JyYmc1LzEAL2JyYmc1LzIAL2JyYmc1LzMAL2JyYmc1LzQAL2JyYmc1LzUAL2JyYmc2LzEAL2JyYmc2LzIAL2JyYmc2LzMAL2JyYmc2LzQAL2JyYmc2LzUAL2JyYmc2LzYAL2JyYmc3LzEAL2JyYmc3LzIAL2JyYmc3LzMAL2JyYmc3LzQAL2JyYmc3LzUAL2JyYmc3LzYAL2JyYmc3LzcAL2JyYmc4LzEAL2JyYmc4LzIAL2JyYmc4LzMAL2JyYmc4LzQAL2JyYmc4LzUAL2JyYmc4LzYAL2JyYmc4LzcAL2JyYmc4LzgAL2JyYmc5LzEAL2JyYmc5LzIAL2JyYmc5LzMAL2JyYmc5LzQAL2JyYmc5LzUAL2JyYmc5LzYAL2JyYmc5LzcAL2JyYmc5LzgAL2JyYmc5LzkAL2J1Z24zLzEAL2J1Z24zLzIAL2J1Z24zLzMAL2J1Z240LzEAL2J1Z240LzIAL2J1Z240LzMAL2J1Z240LzQAL2J1Z241LzEAL2J1Z241LzIAL2J1Z241LzMAL2J1Z241LzQAL2J1Z241LzUAL2J1Z242LzEAL2J1Z242LzIAL2J1Z242LzMAL2J1Z242LzQAL2J1Z242LzUAL2J1Z242LzYAL2J1Z243LzEAL2J1Z243LzIAL2J1Z243LzMAL2J1Z243LzQAL2J1Z243LzUAL2J1Z243LzYAL2J1Z243LzcAL2J1Z244LzEAL2J1Z244LzIAL2J1Z244LzMAL2J1Z244LzQAL2J1Z244LzUAL2J1Z244LzYAL2J1Z244LzcAL2J1Z244LzgAL2J1Z245LzEAL2J1Z245LzIAL2J1Z245LzMAL2J1Z245LzQAL2J1Z245LzUAL2J1Z245LzYAL2J1Z245LzcAL2J1Z245LzgAL2J1Z245LzkAL2J1cHUzLzEAL2J1cHUzLzIAL2J1cHUzLzMAL2J1cHU0LzEAL2J1cHU0LzIAL2J1cHU0LzMAL2J1cHU0LzQAL2J1cHU1LzEAL2J1cHU1LzIAL2J1cHU1LzMAL2J1cHU1LzQAL2J1cHU1LzUAL2J1cHU2LzEAL2J1cHU2LzIAL2J1cHU2LzMAL2J1cHU2LzQAL2J1cHU2LzUAL2J1cHU2LzYAL2J1cHU3LzEAL2J1cHU3LzIAL2J1cHU3LzMAL2J1cHU3LzQAL2J1cHU3LzUAL2J1cHU3LzYAL2J1cHU3LzcAL2J1cHU4LzEAL2J1cHU4LzIAL2J1cHU4LzMAL2J1cHU4LzQAL2J1cHU4LzUAL2J1cHU4LzYAL2J1cHU4LzcAL2J1cHU4LzgAL2J1cHU5LzEAL2J1cHU5LzIAL2J1cHU5LzMAL2J1cHU5LzQAL2J1cHU5LzUAL2J1cHU5LzYAL2J1cHU5LzcAL2J1cHU5LzgAL2J1cHU5LzkAL2RhcmsyMy8xAC9kYXJrMjMvMgAvZGFyazIzLzMAL2RhcmsyNC8xAC9kYXJrMjQvMgAvZGFyazI0LzMAL2RhcmsyNC80AC9kYXJrMjUvMQAvZGFyazI1LzIAL2RhcmsyNS8zAC9kYXJrMjUvNAAvZGFyazI1LzUAL2RhcmsyNi8xAC9kYXJrMjYvMgAvZGFyazI2LzMAL2RhcmsyNi80AC9kYXJrMjYvNQAvZGFyazI2LzYAL2RhcmsyNy8xAC9kYXJrMjcvMgAvZGFyazI3LzMAL2RhcmsyNy80AC9kYXJrMjcvNQAvZGFyazI3LzYAL2RhcmsyNy83AC9kYXJrMjgvMQAvZGFyazI4LzIAL2RhcmsyOC8zAC9kYXJrMjgvNAAvZGFyazI4LzUAL2RhcmsyOC82AC9kYXJrMjgvNwAvZGFyazI4LzgAL2duYnUzLzEAL2duYnUzLzIAL2duYnUzLzMAL2duYnU0LzEAL2duYnU0LzIAL2duYnU0LzMAL2duYnU0LzQAL2duYnU1LzEAL2duYnU1LzIAL2duYnU1LzMAL2duYnU1LzQAL2duYnU1LzUAL2duYnU2LzEAL2duYnU2LzIAL2duYnU2LzMAL2duYnU2LzQAL2duYnU2LzUAL2duYnU2LzYAL2duYnU3LzEAL2duYnU3LzIAL2duYnU3LzMAL2duYnU3LzQAL2duYnU3LzUAL2duYnU3LzYAL2duYnU3LzcAL2duYnU4LzEAL2duYnU4LzIAL2duYnU4LzMAL2duYnU4LzQAL2duYnU4LzUAL2duYnU4LzYAL2duYnU4LzcAL2duYnU4LzgAL2duYnU5LzEAL2duYnU5LzIAL2duYnU5LzMAL2duYnU5LzQAL2duYnU5LzUAL2duYnU5LzYAL2duYnU5LzcAL2duYnU5LzgAL2duYnU5LzkAL2dyZWVuczMvMQAvZ3JlZW5zMy8yAC9ncmVlbnMzLzMAL2dyZWVuczQvMQAvZ3JlZW5zNC8yAC9ncmVlbnM0LzMAL2dyZWVuczQvNAAvZ3JlZW5zNS8xAC9ncmVlbnM1LzIAL2dyZWVuczUvMwAvZ3JlZW5zNS80AC9ncmVlbnM1LzUAL2dyZWVuczYvMQAvZ3JlZW5zNi8yAC9ncmVlbnM2LzMAL2dyZWVuczYvNAAvZ3JlZW5zNi81AC9ncmVlbnM2LzYAL2dyZWVuczcvMQAvZ3JlZW5zNy8yAC9ncmVlbnM3LzMAL2dyZWVuczcvNAAvZ3JlZW5zNy81AC9ncmVlbnM3LzYAL2dyZWVuczcvNwAvZ3JlZW5zOC8xAC9ncmVlbnM4LzIAL2dyZWVuczgvMwAvZ3JlZW5zOC80AC9ncmVlbnM4LzUAL2dyZWVuczgvNgAvZ3JlZW5zOC83AC9ncmVlbnM4LzgAL2dyZWVuczkvMQAvZ3JlZW5zOS8yAC9ncmVlbnM5LzMAL2dyZWVuczkvNAAvZ3JlZW5zOS81AC9ncmVlbnM5LzYAL2dyZWVuczkvNwAvZ3JlZW5zOS84AC9ncmVlbnM5LzkAL2dyZXlzMy8xAC9ncmV5czMvMgAvZ3JleXMzLzMAL2dyZXlzNC8xAC9ncmV5czQvMgAvZ3JleXM0LzMAL2dyZXlzNC80AC9ncmV5czUvMQAvZ3JleXM1LzIAL2dyZXlzNS8zAC9ncmV5czUvNAAvZ3JleXM1LzUAL2dyZXlzNi8xAC9ncmV5czYvMgAvZ3JleXM2LzMAL2dyZXlzNi80AC9ncmV5czYvNQAvZ3JleXM2LzYAL2dyZXlzNy8xAC9ncmV5czcvMgAvZ3JleXM3LzMAL2dyZXlzNy80AC9ncmV5czcvNQAvZ3JleXM3LzYAL2dyZXlzNy83AC9ncmV5czgvMQAvZ3JleXM4LzIAL2dyZXlzOC8zAC9ncmV5czgvNAAvZ3JleXM4LzUAL2dyZXlzOC82AC9ncmV5czgvNwAvZ3JleXM4LzgAL2dyZXlzOS8xAC9ncmV5czkvMgAvZ3JleXM5LzMAL2dyZXlzOS80AC9ncmV5czkvNQAvZ3JleXM5LzYAL2dyZXlzOS83AC9ncmV5czkvOAAvZ3JleXM5LzkAL29yYW5nZXMzLzEAL29yYW5nZXMzLzIAL29yYW5nZXMzLzMAL29yYW5nZXM0LzEAL29yYW5nZXM0LzIAL29yYW5nZXM0LzMAL29yYW5nZXM0LzQAL29yYW5nZXM1LzEAL29yYW5nZXM1LzIAL29yYW5nZXM1LzMAL29yYW5nZXM1LzQAL29yYW5nZXM1LzUAL29yYW5nZXM2LzEAL29yYW5nZXM2LzIAL29yYW5nZXM2LzMAL29yYW5nZXM2LzQAL29yYW5nZXM2LzUAL29yYW5nZXM2LzYAL29yYW5nZXM3LzEAL29yYW5nZXM3LzIAL29yYW5nZXM3LzMAL29yYW5nZXM3LzQAL29yYW5nZXM3LzUAL29yYW5nZXM3LzYAL29yYW5nZXM3LzcAL29yYW5nZXM4LzEAL29yYW5nZXM4LzIAL29yYW5nZXM4LzMAL29yYW5nZXM4LzQAL29yYW5nZXM4LzUAL29yYW5nZXM4LzYAL29yYW5nZXM4LzcAL29yYW5nZXM4LzgAL29yYW5nZXM5LzEAL29yYW5nZXM5LzIAL29yYW5nZXM5LzMAL29yYW5nZXM5LzQAL29yYW5nZXM5LzUAL29yYW5nZXM5LzYAL29yYW5nZXM5LzcAL29yYW5nZXM5LzgAL29yYW5nZXM5LzkAL29ycmQzLzEAL29ycmQzLzIAL29ycmQzLzMAL29ycmQ0LzEAL29ycmQ0LzIAL29ycmQ0LzMAL29ycmQ0LzQAL29ycmQ1LzEAL29ycmQ1LzIAL29ycmQ1LzMAL29ycmQ1LzQAL29ycmQ1LzUAL29ycmQ2LzEAL29ycmQ2LzIAL29ycmQ2LzMAL29ycmQ2LzQAL29ycmQ2LzUAL29ycmQ2LzYAL29ycmQ3LzEAL29ycmQ3LzIAL29ycmQ3LzMAL29ycmQ3LzQAL29ycmQ3LzUAL29ycmQ3LzYAL29ycmQ3LzcAL29ycmQ4LzEAL29ycmQ4LzIAL29ycmQ4LzMAL29ycmQ4LzQAL29ycmQ4LzUAL29ycmQ4LzYAL29ycmQ4LzcAL29ycmQ4LzgAL29ycmQ5LzEAL29ycmQ5LzIAL29ycmQ5LzMAL29ycmQ5LzQAL29ycmQ5LzUAL29ycmQ5LzYAL29ycmQ5LzcAL29ycmQ5LzgAL29ycmQ5LzkAL3BhaXJlZDEwLzEAL3BhaXJlZDEwLzEwAC9wYWlyZWQxMC8yAC9wYWlyZWQxMC8zAC9wYWlyZWQxMC80AC9wYWlyZWQxMC81AC9wYWlyZWQxMC82AC9wYWlyZWQxMC83AC9wYWlyZWQxMC84AC9wYWlyZWQxMC85AC9wYWlyZWQxMS8xAC9wYWlyZWQxMS8xMAAvcGFpcmVkMTEvMTEAL3BhaXJlZDExLzIAL3BhaXJlZDExLzMAL3BhaXJlZDExLzQAL3BhaXJlZDExLzUAL3BhaXJlZDExLzYAL3BhaXJlZDExLzcAL3BhaXJlZDExLzgAL3BhaXJlZDExLzkAL3BhaXJlZDEyLzEAL3BhaXJlZDEyLzEwAC9wYWlyZWQxMi8xMQAvcGFpcmVkMTIvMTIAL3BhaXJlZDEyLzIAL3BhaXJlZDEyLzMAL3BhaXJlZDEyLzQAL3BhaXJlZDEyLzUAL3BhaXJlZDEyLzYAL3BhaXJlZDEyLzcAL3BhaXJlZDEyLzgAL3BhaXJlZDEyLzkAL3BhaXJlZDMvMQAvcGFpcmVkMy8yAC9wYWlyZWQzLzMAL3BhaXJlZDQvMQAvcGFpcmVkNC8yAC9wYWlyZWQ0LzMAL3BhaXJlZDQvNAAvcGFpcmVkNS8xAC9wYWlyZWQ1LzIAL3BhaXJlZDUvMwAvcGFpcmVkNS80AC9wYWlyZWQ1LzUAL3BhaXJlZDYvMQAvcGFpcmVkNi8yAC9wYWlyZWQ2LzMAL3BhaXJlZDYvNAAvcGFpcmVkNi81AC9wYWlyZWQ2LzYAL3BhaXJlZDcvMQAvcGFpcmVkNy8yAC9wYWlyZWQ3LzMAL3BhaXJlZDcvNAAvcGFpcmVkNy81AC9wYWlyZWQ3LzYAL3BhaXJlZDcvNwAvcGFpcmVkOC8xAC9wYWlyZWQ4LzIAL3BhaXJlZDgvMwAvcGFpcmVkOC80AC9wYWlyZWQ4LzUAL3BhaXJlZDgvNgAvcGFpcmVkOC83AC9wYWlyZWQ4LzgAL3BhaXJlZDkvMQAvcGFpcmVkOS8yAC9wYWlyZWQ5LzMAL3BhaXJlZDkvNAAvcGFpcmVkOS81AC9wYWlyZWQ5LzYAL3BhaXJlZDkvNwAvcGFpcmVkOS84AC9wYWlyZWQ5LzkAL3Bhc3RlbDEzLzEAL3Bhc3RlbDEzLzIAL3Bhc3RlbDEzLzMAL3Bhc3RlbDE0LzEAL3Bhc3RlbDE0LzIAL3Bhc3RlbDE0LzMAL3Bhc3RlbDE0LzQAL3Bhc3RlbDE1LzEAL3Bhc3RlbDE1LzIAL3Bhc3RlbDE1LzMAL3Bhc3RlbDE1LzQAL3Bhc3RlbDE1LzUAL3Bhc3RlbDE2LzEAL3Bhc3RlbDE2LzIAL3Bhc3RlbDE2LzMAL3Bhc3RlbDE2LzQAL3Bhc3RlbDE2LzUAL3Bhc3RlbDE2LzYAL3Bhc3RlbDE3LzEAL3Bhc3RlbDE3LzIAL3Bhc3RlbDE3LzMAL3Bhc3RlbDE3LzQAL3Bhc3RlbDE3LzUAL3Bhc3RlbDE3LzYAL3Bhc3RlbDE3LzcAL3Bhc3RlbDE4LzEAL3Bhc3RlbDE4LzIAL3Bhc3RlbDE4LzMAL3Bhc3RlbDE4LzQAL3Bhc3RlbDE4LzUAL3Bhc3RlbDE4LzYAL3Bhc3RlbDE4LzcAL3Bhc3RlbDE4LzgAL3Bhc3RlbDE5LzEAL3Bhc3RlbDE5LzIAL3Bhc3RlbDE5LzMAL3Bhc3RlbDE5LzQAL3Bhc3RlbDE5LzUAL3Bhc3RlbDE5LzYAL3Bhc3RlbDE5LzcAL3Bhc3RlbDE5LzgAL3Bhc3RlbDE5LzkAL3Bhc3RlbDIzLzEAL3Bhc3RlbDIzLzIAL3Bhc3RlbDIzLzMAL3Bhc3RlbDI0LzEAL3Bhc3RlbDI0LzIAL3Bhc3RlbDI0LzMAL3Bhc3RlbDI0LzQAL3Bhc3RlbDI1LzEAL3Bhc3RlbDI1LzIAL3Bhc3RlbDI1LzMAL3Bhc3RlbDI1LzQAL3Bhc3RlbDI1LzUAL3Bhc3RlbDI2LzEAL3Bhc3RlbDI2LzIAL3Bhc3RlbDI2LzMAL3Bhc3RlbDI2LzQAL3Bhc3RlbDI2LzUAL3Bhc3RlbDI2LzYAL3Bhc3RlbDI3LzEAL3Bhc3RlbDI3LzIAL3Bhc3RlbDI3LzMAL3Bhc3RlbDI3LzQAL3Bhc3RlbDI3LzUAL3Bhc3RlbDI3LzYAL3Bhc3RlbDI3LzcAL3Bhc3RlbDI4LzEAL3Bhc3RlbDI4LzIAL3Bhc3RlbDI4LzMAL3Bhc3RlbDI4LzQAL3Bhc3RlbDI4LzUAL3Bhc3RlbDI4LzYAL3Bhc3RlbDI4LzcAL3Bhc3RlbDI4LzgAL3BpeWcxMC8xAC9waXlnMTAvMTAAL3BpeWcxMC8yAC9waXlnMTAvMwAvcGl5ZzEwLzQAL3BpeWcxMC81AC9waXlnMTAvNgAvcGl5ZzEwLzcAL3BpeWcxMC84AC9waXlnMTAvOQAvcGl5ZzExLzEAL3BpeWcxMS8xMAAvcGl5ZzExLzExAC9waXlnMTEvMgAvcGl5ZzExLzMAL3BpeWcxMS80AC9waXlnMTEvNQAvcGl5ZzExLzYAL3BpeWcxMS83AC9waXlnMTEvOAAvcGl5ZzExLzkAL3BpeWczLzEAL3BpeWczLzIAL3BpeWczLzMAL3BpeWc0LzEAL3BpeWc0LzIAL3BpeWc0LzMAL3BpeWc0LzQAL3BpeWc1LzEAL3BpeWc1LzIAL3BpeWc1LzMAL3BpeWc1LzQAL3BpeWc1LzUAL3BpeWc2LzEAL3BpeWc2LzIAL3BpeWc2LzMAL3BpeWc2LzQAL3BpeWc2LzUAL3BpeWc2LzYAL3BpeWc3LzEAL3BpeWc3LzIAL3BpeWc3LzMAL3BpeWc3LzQAL3BpeWc3LzUAL3BpeWc3LzYAL3BpeWc3LzcAL3BpeWc4LzEAL3BpeWc4LzIAL3BpeWc4LzMAL3BpeWc4LzQAL3BpeWc4LzUAL3BpeWc4LzYAL3BpeWc4LzcAL3BpeWc4LzgAL3BpeWc5LzEAL3BpeWc5LzIAL3BpeWc5LzMAL3BpeWc5LzQAL3BpeWc5LzUAL3BpeWc5LzYAL3BpeWc5LzcAL3BpeWc5LzgAL3BpeWc5LzkAL3ByZ24xMC8xAC9wcmduMTAvMTAAL3ByZ24xMC8yAC9wcmduMTAvMwAvcHJnbjEwLzQAL3ByZ24xMC81AC9wcmduMTAvNgAvcHJnbjEwLzcAL3ByZ24xMC84AC9wcmduMTAvOQAvcHJnbjExLzEAL3ByZ24xMS8xMAAvcHJnbjExLzExAC9wcmduMTEvMgAvcHJnbjExLzMAL3ByZ24xMS80AC9wcmduMTEvNQAvcHJnbjExLzYAL3ByZ24xMS83AC9wcmduMTEvOAAvcHJnbjExLzkAL3ByZ24zLzEAL3ByZ24zLzIAL3ByZ24zLzMAL3ByZ240LzEAL3ByZ240LzIAL3ByZ240LzMAL3ByZ240LzQAL3ByZ241LzEAL3ByZ241LzIAL3ByZ241LzMAL3ByZ241LzQAL3ByZ241LzUAL3ByZ242LzEAL3ByZ242LzIAL3ByZ242LzMAL3ByZ242LzQAL3ByZ242LzUAL3ByZ242LzYAL3ByZ243LzEAL3ByZ243LzIAL3ByZ243LzMAL3ByZ243LzQAL3ByZ243LzUAL3ByZ243LzYAL3ByZ243LzcAL3ByZ244LzEAL3ByZ244LzIAL3ByZ244LzMAL3ByZ244LzQAL3ByZ244LzUAL3ByZ244LzYAL3ByZ244LzcAL3ByZ244LzgAL3ByZ245LzEAL3ByZ245LzIAL3ByZ245LzMAL3ByZ245LzQAL3ByZ245LzUAL3ByZ245LzYAL3ByZ245LzcAL3ByZ245LzgAL3ByZ245LzkAL3B1YnUzLzEAL3B1YnUzLzIAL3B1YnUzLzMAL3B1YnU0LzEAL3B1YnU0LzIAL3B1YnU0LzMAL3B1YnU0LzQAL3B1YnU1LzEAL3B1YnU1LzIAL3B1YnU1LzMAL3B1YnU1LzQAL3B1YnU1LzUAL3B1YnU2LzEAL3B1YnU2LzIAL3B1YnU2LzMAL3B1YnU2LzQAL3B1YnU2LzUAL3B1YnU2LzYAL3B1YnU3LzEAL3B1YnU3LzIAL3B1YnU3LzMAL3B1YnU3LzQAL3B1YnU3LzUAL3B1YnU3LzYAL3B1YnU3LzcAL3B1YnU4LzEAL3B1YnU4LzIAL3B1YnU4LzMAL3B1YnU4LzQAL3B1YnU4LzUAL3B1YnU4LzYAL3B1YnU4LzcAL3B1YnU4LzgAL3B1YnU5LzEAL3B1YnU5LzIAL3B1YnU5LzMAL3B1YnU5LzQAL3B1YnU5LzUAL3B1YnU5LzYAL3B1YnU5LzcAL3B1YnU5LzgAL3B1YnU5LzkAL3B1YnVnbjMvMQAvcHVidWduMy8yAC9wdWJ1Z24zLzMAL3B1YnVnbjQvMQAvcHVidWduNC8yAC9wdWJ1Z240LzMAL3B1YnVnbjQvNAAvcHVidWduNS8xAC9wdWJ1Z241LzIAL3B1YnVnbjUvMwAvcHVidWduNS80AC9wdWJ1Z241LzUAL3B1YnVnbjYvMQAvcHVidWduNi8yAC9wdWJ1Z242LzMAL3B1YnVnbjYvNAAvcHVidWduNi81AC9wdWJ1Z242LzYAL3B1YnVnbjcvMQAvcHVidWduNy8yAC9wdWJ1Z243LzMAL3B1YnVnbjcvNAAvcHVidWduNy81AC9wdWJ1Z243LzYAL3B1YnVnbjcvNwAvcHVidWduOC8xAC9wdWJ1Z244LzIAL3B1YnVnbjgvMwAvcHVidWduOC80AC9wdWJ1Z244LzUAL3B1YnVnbjgvNgAvcHVidWduOC83AC9wdWJ1Z244LzgAL3B1YnVnbjkvMQAvcHVidWduOS8yAC9wdWJ1Z245LzMAL3B1YnVnbjkvNAAvcHVidWduOS81AC9wdWJ1Z245LzYAL3B1YnVnbjkvNwAvcHVidWduOS84AC9wdWJ1Z245LzkAL3B1b3IxMC8xAC9wdW9yMTAvMTAAL3B1b3IxMC8yAC9wdW9yMTAvMwAvcHVvcjEwLzQAL3B1b3IxMC81AC9wdW9yMTAvNgAvcHVvcjEwLzcAL3B1b3IxMC84AC9wdW9yMTAvOQAvcHVvcjExLzEAL3B1b3IxMS8xMAAvcHVvcjExLzExAC9wdW9yMTEvMgAvcHVvcjExLzMAL3B1b3IxMS80AC9wdW9yMTEvNQAvcHVvcjExLzYAL3B1b3IxMS83AC9wdW9yMTEvOAAvcHVvcjExLzkAL3B1b3IzLzEAL3B1b3IzLzIAL3B1b3IzLzMAL3B1b3I0LzEAL3B1b3I0LzIAL3B1b3I0LzMAL3B1b3I0LzQAL3B1b3I1LzEAL3B1b3I1LzIAL3B1b3I1LzMAL3B1b3I1LzQAL3B1b3I1LzUAL3B1b3I2LzEAL3B1b3I2LzIAL3B1b3I2LzMAL3B1b3I2LzQAL3B1b3I2LzUAL3B1b3I2LzYAL3B1b3I3LzEAL3B1b3I3LzIAL3B1b3I3LzMAL3B1b3I3LzQAL3B1b3I3LzUAL3B1b3I3LzYAL3B1b3I3LzcAL3B1b3I4LzEAL3B1b3I4LzIAL3B1b3I4LzMAL3B1b3I4LzQAL3B1b3I4LzUAL3B1b3I4LzYAL3B1b3I4LzcAL3B1b3I4LzgAL3B1b3I5LzEAL3B1b3I5LzIAL3B1b3I5LzMAL3B1b3I5LzQAL3B1b3I5LzUAL3B1b3I5LzYAL3B1b3I5LzcAL3B1b3I5LzgAL3B1b3I5LzkAL3B1cmQzLzEAL3B1cmQzLzIAL3B1cmQzLzMAL3B1cmQ0LzEAL3B1cmQ0LzIAL3B1cmQ0LzMAL3B1cmQ0LzQAL3B1cmQ1LzEAL3B1cmQ1LzIAL3B1cmQ1LzMAL3B1cmQ1LzQAL3B1cmQ1LzUAL3B1cmQ2LzEAL3B1cmQ2LzIAL3B1cmQ2LzMAL3B1cmQ2LzQAL3B1cmQ2LzUAL3B1cmQ2LzYAL3B1cmQ3LzEAL3B1cmQ3LzIAL3B1cmQ3LzMAL3B1cmQ3LzQAL3B1cmQ3LzUAL3B1cmQ3LzYAL3B1cmQ3LzcAL3B1cmQ4LzEAL3B1cmQ4LzIAL3B1cmQ4LzMAL3B1cmQ4LzQAL3B1cmQ4LzUAL3B1cmQ4LzYAL3B1cmQ4LzcAL3B1cmQ4LzgAL3B1cmQ5LzEAL3B1cmQ5LzIAL3B1cmQ5LzMAL3B1cmQ5LzQAL3B1cmQ5LzUAL3B1cmQ5LzYAL3B1cmQ5LzcAL3B1cmQ5LzgAL3B1cmQ5LzkAL3B1cnBsZXMzLzEAL3B1cnBsZXMzLzIAL3B1cnBsZXMzLzMAL3B1cnBsZXM0LzEAL3B1cnBsZXM0LzIAL3B1cnBsZXM0LzMAL3B1cnBsZXM0LzQAL3B1cnBsZXM1LzEAL3B1cnBsZXM1LzIAL3B1cnBsZXM1LzMAL3B1cnBsZXM1LzQAL3B1cnBsZXM1LzUAL3B1cnBsZXM2LzEAL3B1cnBsZXM2LzIAL3B1cnBsZXM2LzMAL3B1cnBsZXM2LzQAL3B1cnBsZXM2LzUAL3B1cnBsZXM2LzYAL3B1cnBsZXM3LzEAL3B1cnBsZXM3LzIAL3B1cnBsZXM3LzMAL3B1cnBsZXM3LzQAL3B1cnBsZXM3LzUAL3B1cnBsZXM3LzYAL3B1cnBsZXM3LzcAL3B1cnBsZXM4LzEAL3B1cnBsZXM4LzIAL3B1cnBsZXM4LzMAL3B1cnBsZXM4LzQAL3B1cnBsZXM4LzUAL3B1cnBsZXM4LzYAL3B1cnBsZXM4LzcAL3B1cnBsZXM4LzgAL3B1cnBsZXM5LzEAL3B1cnBsZXM5LzIAL3B1cnBsZXM5LzMAL3B1cnBsZXM5LzQAL3B1cnBsZXM5LzUAL3B1cnBsZXM5LzYAL3B1cnBsZXM5LzcAL3B1cnBsZXM5LzgAL3B1cnBsZXM5LzkAL3JkYnUxMC8xAC9yZGJ1MTAvMTAAL3JkYnUxMC8yAC9yZGJ1MTAvMwAvcmRidTEwLzQAL3JkYnUxMC81AC9yZGJ1MTAvNgAvcmRidTEwLzcAL3JkYnUxMC84AC9yZGJ1MTAvOQAvcmRidTExLzEAL3JkYnUxMS8xMAAvcmRidTExLzExAC9yZGJ1MTEvMgAvcmRidTExLzMAL3JkYnUxMS80AC9yZGJ1MTEvNQAvcmRidTExLzYAL3JkYnUxMS83AC9yZGJ1MTEvOAAvcmRidTExLzkAL3JkYnUzLzEAL3JkYnUzLzIAL3JkYnUzLzMAL3JkYnU0LzEAL3JkYnU0LzIAL3JkYnU0LzMAL3JkYnU0LzQAL3JkYnU1LzEAL3JkYnU1LzIAL3JkYnU1LzMAL3JkYnU1LzQAL3JkYnU1LzUAL3JkYnU2LzEAL3JkYnU2LzIAL3JkYnU2LzMAL3JkYnU2LzQAL3JkYnU2LzUAL3JkYnU2LzYAL3JkYnU3LzEAL3JkYnU3LzIAL3JkYnU3LzMAL3JkYnU3LzQAL3JkYnU3LzUAL3JkYnU3LzYAL3JkYnU3LzcAL3JkYnU4LzEAL3JkYnU4LzIAL3JkYnU4LzMAL3JkYnU4LzQAL3JkYnU4LzUAL3JkYnU4LzYAL3JkYnU4LzcAL3JkYnU4LzgAL3JkYnU5LzEAL3JkYnU5LzIAL3JkYnU5LzMAL3JkYnU5LzQAL3JkYnU5LzUAL3JkYnU5LzYAL3JkYnU5LzcAL3JkYnU5LzgAL3JkYnU5LzkAL3JkZ3kxMC8xAC9yZGd5MTAvMTAAL3JkZ3kxMC8yAC9yZGd5MTAvMwAvcmRneTEwLzQAL3JkZ3kxMC81AC9yZGd5MTAvNgAvcmRneTEwLzcAL3JkZ3kxMC84AC9yZGd5MTAvOQAvcmRneTExLzEAL3JkZ3kxMS8xMAAvcmRneTExLzExAC9yZGd5MTEvMgAvcmRneTExLzMAL3JkZ3kxMS80AC9yZGd5MTEvNQAvcmRneTExLzYAL3JkZ3kxMS83AC9yZGd5MTEvOAAvcmRneTExLzkAL3JkZ3kzLzEAL3JkZ3kzLzIAL3JkZ3kzLzMAL3JkZ3k0LzEAL3JkZ3k0LzIAL3JkZ3k0LzMAL3JkZ3k0LzQAL3JkZ3k1LzEAL3JkZ3k1LzIAL3JkZ3k1LzMAL3JkZ3k1LzQAL3JkZ3k1LzUAL3JkZ3k2LzEAL3JkZ3k2LzIAL3JkZ3k2LzMAL3JkZ3k2LzQAL3JkZ3k2LzUAL3JkZ3k2LzYAL3JkZ3k3LzEAL3JkZ3k3LzIAL3JkZ3k3LzMAL3JkZ3k3LzQAL3JkZ3k3LzUAL3JkZ3k3LzYAL3JkZ3k3LzcAL3JkZ3k4LzEAL3JkZ3k4LzIAL3JkZ3k4LzMAL3JkZ3k4LzQAL3JkZ3k4LzUAL3JkZ3k4LzYAL3JkZ3k4LzcAL3JkZ3k4LzgAL3JkZ3k5LzEAL3JkZ3k5LzIAL3JkZ3k5LzMAL3JkZ3k5LzQAL3JkZ3k5LzUAL3JkZ3k5LzYAL3JkZ3k5LzcAL3JkZ3k5LzgAL3JkZ3k5LzkAL3JkcHUzLzEAL3JkcHUzLzIAL3JkcHUzLzMAL3JkcHU0LzEAL3JkcHU0LzIAL3JkcHU0LzMAL3JkcHU0LzQAL3JkcHU1LzEAL3JkcHU1LzIAL3JkcHU1LzMAL3JkcHU1LzQAL3JkcHU1LzUAL3JkcHU2LzEAL3JkcHU2LzIAL3JkcHU2LzMAL3JkcHU2LzQAL3JkcHU2LzUAL3JkcHU2LzYAL3JkcHU3LzEAL3JkcHU3LzIAL3JkcHU3LzMAL3JkcHU3LzQAL3JkcHU3LzUAL3JkcHU3LzYAL3JkcHU3LzcAL3JkcHU4LzEAL3JkcHU4LzIAL3JkcHU4LzMAL3JkcHU4LzQAL3JkcHU4LzUAL3JkcHU4LzYAL3JkcHU4LzcAL3JkcHU4LzgAL3JkcHU5LzEAL3JkcHU5LzIAL3JkcHU5LzMAL3JkcHU5LzQAL3JkcHU5LzUAL3JkcHU5LzYAL3JkcHU5LzcAL3JkcHU5LzgAL3JkcHU5LzkAL3JkeWxidTEwLzEAL3JkeWxidTEwLzEwAC9yZHlsYnUxMC8yAC9yZHlsYnUxMC8zAC9yZHlsYnUxMC80AC9yZHlsYnUxMC81AC9yZHlsYnUxMC82AC9yZHlsYnUxMC83AC9yZHlsYnUxMC84AC9yZHlsYnUxMC85AC9yZHlsYnUxMS8xAC9yZHlsYnUxMS8xMAAvcmR5bGJ1MTEvMTEAL3JkeWxidTExLzIAL3JkeWxidTExLzMAL3JkeWxidTExLzQAL3JkeWxidTExLzUAL3JkeWxidTExLzYAL3JkeWxidTExLzcAL3JkeWxidTExLzgAL3JkeWxidTExLzkAL3JkeWxidTMvMQAvcmR5bGJ1My8yAC9yZHlsYnUzLzMAL3JkeWxidTQvMQAvcmR5bGJ1NC8yAC9yZHlsYnU0LzMAL3JkeWxidTQvNAAvcmR5bGJ1NS8xAC9yZHlsYnU1LzIAL3JkeWxidTUvMwAvcmR5bGJ1NS80AC9yZHlsYnU1LzUAL3JkeWxidTYvMQAvcmR5bGJ1Ni8yAC9yZHlsYnU2LzMAL3JkeWxidTYvNAAvcmR5bGJ1Ni81AC9yZHlsYnU2LzYAL3JkeWxidTcvMQAvcmR5bGJ1Ny8yAC9yZHlsYnU3LzMAL3JkeWxidTcvNAAvcmR5bGJ1Ny81AC9yZHlsYnU3LzYAL3JkeWxidTcvNwAvcmR5bGJ1OC8xAC9yZHlsYnU4LzIAL3JkeWxidTgvMwAvcmR5bGJ1OC80AC9yZHlsYnU4LzUAL3JkeWxidTgvNgAvcmR5bGJ1OC83AC9yZHlsYnU4LzgAL3JkeWxidTkvMQAvcmR5bGJ1OS8yAC9yZHlsYnU5LzMAL3JkeWxidTkvNAAvcmR5bGJ1OS81AC9yZHlsYnU5LzYAL3JkeWxidTkvNwAvcmR5bGJ1OS84AC9yZHlsYnU5LzkAL3JkeWxnbjEwLzEAL3JkeWxnbjEwLzEwAC9yZHlsZ24xMC8yAC9yZHlsZ24xMC8zAC9yZHlsZ24xMC80AC9yZHlsZ24xMC81AC9yZHlsZ24xMC82AC9yZHlsZ24xMC83AC9yZHlsZ24xMC84AC9yZHlsZ24xMC85AC9yZHlsZ24xMS8xAC9yZHlsZ24xMS8xMAAvcmR5bGduMTEvMTEAL3JkeWxnbjExLzIAL3JkeWxnbjExLzMAL3JkeWxnbjExLzQAL3JkeWxnbjExLzUAL3JkeWxnbjExLzYAL3JkeWxnbjExLzcAL3JkeWxnbjExLzgAL3JkeWxnbjExLzkAL3JkeWxnbjMvMQAvcmR5bGduMy8yAC9yZHlsZ24zLzMAL3JkeWxnbjQvMQAvcmR5bGduNC8yAC9yZHlsZ240LzMAL3JkeWxnbjQvNAAvcmR5bGduNS8xAC9yZHlsZ241LzIAL3JkeWxnbjUvMwAvcmR5bGduNS80AC9yZHlsZ241LzUAL3JkeWxnbjYvMQAvcmR5bGduNi8yAC9yZHlsZ242LzMAL3JkeWxnbjYvNAAvcmR5bGduNi81AC9yZHlsZ242LzYAL3JkeWxnbjcvMQAvcmR5bGduNy8yAC9yZHlsZ243LzMAL3JkeWxnbjcvNAAvcmR5bGduNy81AC9yZHlsZ243LzYAL3JkeWxnbjcvNwAvcmR5bGduOC8xAC9yZHlsZ244LzIAL3JkeWxnbjgvMwAvcmR5bGduOC80AC9yZHlsZ244LzUAL3JkeWxnbjgvNgAvcmR5bGduOC83AC9yZHlsZ244LzgAL3JkeWxnbjkvMQAvcmR5bGduOS8yAC9yZHlsZ245LzMAL3JkeWxnbjkvNAAvcmR5bGduOS81AC9yZHlsZ245LzYAL3JkeWxnbjkvNwAvcmR5bGduOS84AC9yZHlsZ245LzkAL3JlZHMzLzEAL3JlZHMzLzIAL3JlZHMzLzMAL3JlZHM0LzEAL3JlZHM0LzIAL3JlZHM0LzMAL3JlZHM0LzQAL3JlZHM1LzEAL3JlZHM1LzIAL3JlZHM1LzMAL3JlZHM1LzQAL3JlZHM1LzUAL3JlZHM2LzEAL3JlZHM2LzIAL3JlZHM2LzMAL3JlZHM2LzQAL3JlZHM2LzUAL3JlZHM2LzYAL3JlZHM3LzEAL3JlZHM3LzIAL3JlZHM3LzMAL3JlZHM3LzQAL3JlZHM3LzUAL3JlZHM3LzYAL3JlZHM3LzcAL3JlZHM4LzEAL3JlZHM4LzIAL3JlZHM4LzMAL3JlZHM4LzQAL3JlZHM4LzUAL3JlZHM4LzYAL3JlZHM4LzcAL3JlZHM4LzgAL3JlZHM5LzEAL3JlZHM5LzIAL3JlZHM5LzMAL3JlZHM5LzQAL3JlZHM5LzUAL3JlZHM5LzYAL3JlZHM5LzcAL3JlZHM5LzgAL3JlZHM5LzkAL3NldDEzLzEAL3NldDEzLzIAL3NldDEzLzMAL3NldDE0LzEAL3NldDE0LzIAL3NldDE0LzMAL3NldDE0LzQAL3NldDE1LzEAL3NldDE1LzIAL3NldDE1LzMAL3NldDE1LzQAL3NldDE1LzUAL3NldDE2LzEAL3NldDE2LzIAL3NldDE2LzMAL3NldDE2LzQAL3NldDE2LzUAL3NldDE2LzYAL3NldDE3LzEAL3NldDE3LzIAL3NldDE3LzMAL3NldDE3LzQAL3NldDE3LzUAL3NldDE3LzYAL3NldDE3LzcAL3NldDE4LzEAL3NldDE4LzIAL3NldDE4LzMAL3NldDE4LzQAL3NldDE4LzUAL3NldDE4LzYAL3NldDE4LzcAL3NldDE4LzgAL3NldDE5LzEAL3NldDE5LzIAL3NldDE5LzMAL3NldDE5LzQAL3NldDE5LzUAL3NldDE5LzYAL3NldDE5LzcAL3NldDE5LzgAL3NldDE5LzkAL3NldDIzLzEAL3NldDIzLzIAL3NldDIzLzMAL3NldDI0LzEAL3NldDI0LzIAL3NldDI0LzMAL3NldDI0LzQAL3NldDI1LzEAL3NldDI1LzIAL3NldDI1LzMAL3NldDI1LzQAL3NldDI1LzUAL3NldDI2LzEAL3NldDI2LzIAL3NldDI2LzMAL3NldDI2LzQAL3NldDI2LzUAL3NldDI2LzYAL3NldDI3LzEAL3NldDI3LzIAL3NldDI3LzMAL3NldDI3LzQAL3NldDI3LzUAL3NldDI3LzYAL3NldDI3LzcAL3NldDI4LzEAL3NldDI4LzIAL3NldDI4LzMAL3NldDI4LzQAL3NldDI4LzUAL3NldDI4LzYAL3NldDI4LzcAL3NldDI4LzgAL3NldDMxMC8xAC9zZXQzMTAvMTAAL3NldDMxMC8yAC9zZXQzMTAvMwAvc2V0MzEwLzQAL3NldDMxMC81AC9zZXQzMTAvNgAvc2V0MzEwLzcAL3NldDMxMC84AC9zZXQzMTAvOQAvc2V0MzExLzEAL3NldDMxMS8xMAAvc2V0MzExLzExAC9zZXQzMTEvMgAvc2V0MzExLzMAL3NldDMxMS80AC9zZXQzMTEvNQAvc2V0MzExLzYAL3NldDMxMS83AC9zZXQzMTEvOAAvc2V0MzExLzkAL3NldDMxMi8xAC9zZXQzMTIvMTAAL3NldDMxMi8xMQAvc2V0MzEyLzEyAC9zZXQzMTIvMgAvc2V0MzEyLzMAL3NldDMxMi80AC9zZXQzMTIvNQAvc2V0MzEyLzYAL3NldDMxMi83AC9zZXQzMTIvOAAvc2V0MzEyLzkAL3NldDMzLzEAL3NldDMzLzIAL3NldDMzLzMAL3NldDM0LzEAL3NldDM0LzIAL3NldDM0LzMAL3NldDM0LzQAL3NldDM1LzEAL3NldDM1LzIAL3NldDM1LzMAL3NldDM1LzQAL3NldDM1LzUAL3NldDM2LzEAL3NldDM2LzIAL3NldDM2LzMAL3NldDM2LzQAL3NldDM2LzUAL3NldDM2LzYAL3NldDM3LzEAL3NldDM3LzIAL3NldDM3LzMAL3NldDM3LzQAL3NldDM3LzUAL3NldDM3LzYAL3NldDM3LzcAL3NldDM4LzEAL3NldDM4LzIAL3NldDM4LzMAL3NldDM4LzQAL3NldDM4LzUAL3NldDM4LzYAL3NldDM4LzcAL3NldDM4LzgAL3NldDM5LzEAL3NldDM5LzIAL3NldDM5LzMAL3NldDM5LzQAL3NldDM5LzUAL3NldDM5LzYAL3NldDM5LzcAL3NldDM5LzgAL3NldDM5LzkAL3NwZWN0cmFsMTAvMQAvc3BlY3RyYWwxMC8xMAAvc3BlY3RyYWwxMC8yAC9zcGVjdHJhbDEwLzMAL3NwZWN0cmFsMTAvNAAvc3BlY3RyYWwxMC81AC9zcGVjdHJhbDEwLzYAL3NwZWN0cmFsMTAvNwAvc3BlY3RyYWwxMC84AC9zcGVjdHJhbDEwLzkAL3NwZWN0cmFsMTEvMQAvc3BlY3RyYWwxMS8xMAAvc3BlY3RyYWwxMS8xMQAvc3BlY3RyYWwxMS8yAC9zcGVjdHJhbDExLzMAL3NwZWN0cmFsMTEvNAAvc3BlY3RyYWwxMS81AC9zcGVjdHJhbDExLzYAL3NwZWN0cmFsMTEvNwAvc3BlY3RyYWwxMS84AC9zcGVjdHJhbDExLzkAL3NwZWN0cmFsMy8xAC9zcGVjdHJhbDMvMgAvc3BlY3RyYWwzLzMAL3NwZWN0cmFsNC8xAC9zcGVjdHJhbDQvMgAvc3BlY3RyYWw0LzMAL3NwZWN0cmFsNC80AC9zcGVjdHJhbDUvMQAvc3BlY3RyYWw1LzIAL3NwZWN0cmFsNS8zAC9zcGVjdHJhbDUvNAAvc3BlY3RyYWw1LzUAL3NwZWN0cmFsNi8xAC9zcGVjdHJhbDYvMgAvc3BlY3RyYWw2LzMAL3NwZWN0cmFsNi80AC9zcGVjdHJhbDYvNQAvc3BlY3RyYWw2LzYAL3NwZWN0cmFsNy8xAC9zcGVjdHJhbDcvMgAvc3BlY3RyYWw3LzMAL3NwZWN0cmFsNy80AC9zcGVjdHJhbDcvNQAvc3BlY3RyYWw3LzYAL3NwZWN0cmFsNy83AC9zcGVjdHJhbDgvMQAvc3BlY3RyYWw4LzIAL3NwZWN0cmFsOC8zAC9zcGVjdHJhbDgvNAAvc3BlY3RyYWw4LzUAL3NwZWN0cmFsOC82AC9zcGVjdHJhbDgvNwAvc3BlY3RyYWw4LzgAL3NwZWN0cmFsOS8xAC9zcGVjdHJhbDkvMgAvc3BlY3RyYWw5LzMAL3NwZWN0cmFsOS80AC9zcGVjdHJhbDkvNQAvc3BlY3RyYWw5LzYAL3NwZWN0cmFsOS83AC9zcGVjdHJhbDkvOAAvc3BlY3RyYWw5LzkAL3N2Zy9hbGljZWJsdWUAL3N2Zy9hbnRpcXVld2hpdGUAL3N2Zy9hcXVhAC9zdmcvYXF1YW1hcmluZQAvc3ZnL2F6dXJlAC9zdmcvYmVpZ2UAL3N2Zy9iaXNxdWUAL3N2Zy9ibGFjawAvc3ZnL2JsYW5jaGVkYWxtb25kAC9zdmcvYmx1ZQAvc3ZnL2JsdWV2aW9sZXQAL3N2Zy9icm93bgAvc3ZnL2J1cmx5d29vZAAvc3ZnL2NhZGV0Ymx1ZQAvc3ZnL2NoYXJ0cmV1c2UAL3N2Zy9jaG9jb2xhdGUAL3N2Zy9jb3JhbAAvc3ZnL2Nvcm5mbG93ZXJibHVlAC9zdmcvY29ybnNpbGsAL3N2Zy9jcmltc29uAC9zdmcvY3lhbgAvc3ZnL2RhcmtibHVlAC9zdmcvZGFya2N5YW4AL3N2Zy9kYXJrZ29sZGVucm9kAC9zdmcvZGFya2dyYXkAL3N2Zy9kYXJrZ3JlZW4AL3N2Zy9kYXJrZ3JleQAvc3ZnL2RhcmtraGFraQAvc3ZnL2RhcmttYWdlbnRhAC9zdmcvZGFya29saXZlZ3JlZW4AL3N2Zy9kYXJrb3JhbmdlAC9zdmcvZGFya29yY2hpZAAvc3ZnL2RhcmtyZWQAL3N2Zy9kYXJrc2FsbW9uAC9zdmcvZGFya3NlYWdyZWVuAC9zdmcvZGFya3NsYXRlYmx1ZQAvc3ZnL2RhcmtzbGF0ZWdyYXkAL3N2Zy9kYXJrc2xhdGVncmV5AC9zdmcvZGFya3R1cnF1b2lzZQAvc3ZnL2Rhcmt2aW9sZXQAL3N2Zy9kZWVwcGluawAvc3ZnL2RlZXBza3libHVlAC9zdmcvZGltZ3JheQAvc3ZnL2RpbWdyZXkAL3N2Zy9kb2RnZXJibHVlAC9zdmcvZmlyZWJyaWNrAC9zdmcvZmxvcmFsd2hpdGUAL3N2Zy9mb3Jlc3RncmVlbgAvc3ZnL2Z1Y2hzaWEAL3N2Zy9nYWluc2Jvcm8AL3N2Zy9naG9zdHdoaXRlAC9zdmcvZ29sZAAvc3ZnL2dvbGRlbnJvZAAvc3ZnL2dyYXkAL3N2Zy9ncmVlbgAvc3ZnL2dyZWVueWVsbG93AC9zdmcvZ3JleQAvc3ZnL2hvbmV5ZGV3AC9zdmcvaG90cGluawAvc3ZnL2luZGlhbnJlZAAvc3ZnL2luZGlnbwAvc3ZnL2l2b3J5AC9zdmcva2hha2kAL3N2Zy9sYXZlbmRlcgAvc3ZnL2xhdmVuZGVyYmx1c2gAL3N2Zy9sYXduZ3JlZW4AL3N2Zy9sZW1vbmNoaWZmb24AL3N2Zy9saWdodGJsdWUAL3N2Zy9saWdodGNvcmFsAC9zdmcvbGlnaHRjeWFuAC9zdmcvbGlnaHRnb2xkZW5yb2R5ZWxsb3cAL3N2Zy9saWdodGdyYXkAL3N2Zy9saWdodGdyZWVuAC9zdmcvbGlnaHRncmV5AC9zdmcvbGlnaHRwaW5rAC9zdmcvbGlnaHRzYWxtb24AL3N2Zy9saWdodHNlYWdyZWVuAC9zdmcvbGlnaHRza3libHVlAC9zdmcvbGlnaHRzbGF0ZWdyYXkAL3N2Zy9saWdodHNsYXRlZ3JleQAvc3ZnL2xpZ2h0c3RlZWxibHVlAC9zdmcvbGlnaHR5ZWxsb3cAL3N2Zy9saW1lAC9zdmcvbGltZWdyZWVuAC9zdmcvbGluZW4AL3N2Zy9tYWdlbnRhAC9zdmcvbWFyb29uAC9zdmcvbWVkaXVtYXF1YW1hcmluZQAvc3ZnL21lZGl1bWJsdWUAL3N2Zy9tZWRpdW1vcmNoaWQAL3N2Zy9tZWRpdW1wdXJwbGUAL3N2Zy9tZWRpdW1zZWFncmVlbgAvc3ZnL21lZGl1bXNsYXRlYmx1ZQAvc3ZnL21lZGl1bXNwcmluZ2dyZWVuAC9zdmcvbWVkaXVtdHVycXVvaXNlAC9zdmcvbWVkaXVtdmlvbGV0cmVkAC9zdmcvbWlkbmlnaHRibHVlAC9zdmcvbWludGNyZWFtAC9zdmcvbWlzdHlyb3NlAC9zdmcvbW9jY2FzaW4AL3N2Zy9uYXZham93aGl0ZQAvc3ZnL25hdnkAL3N2Zy9vbGRsYWNlAC9zdmcvb2xpdmUAL3N2Zy9vbGl2ZWRyYWIAL3N2Zy9vcmFuZ2UAL3N2Zy9vcmFuZ2VyZWQAL3N2Zy9vcmNoaWQAL3N2Zy9wYWxlZ29sZGVucm9kAC9zdmcvcGFsZWdyZWVuAC9zdmcvcGFsZXR1cnF1b2lzZQAvc3ZnL3BhbGV2aW9sZXRyZWQAL3N2Zy9wYXBheWF3aGlwAC9zdmcvcGVhY2hwdWZmAC9zdmcvcGVydQAvc3ZnL3BpbmsAL3N2Zy9wbHVtAC9zdmcvcG93ZGVyYmx1ZQAvc3ZnL3B1cnBsZQAvc3ZnL3JlZAAvc3ZnL3Jvc3licm93bgAvc3ZnL3JveWFsYmx1ZQAvc3ZnL3NhZGRsZWJyb3duAC9zdmcvc2FsbW9uAC9zdmcvc2FuZHlicm93bgAvc3ZnL3NlYWdyZWVuAC9zdmcvc2Vhc2hlbGwAL3N2Zy9zaWVubmEAL3N2Zy9zaWx2ZXIAL3N2Zy9za3libHVlAC9zdmcvc2xhdGVibHVlAC9zdmcvc2xhdGVncmF5AC9zdmcvc2xhdGVncmV5AC9zdmcvc25vdwAvc3ZnL3NwcmluZ2dyZWVuAC9zdmcvc3RlZWxibHVlAC9zdmcvdGFuAC9zdmcvdGVhbAAvc3ZnL3RoaXN0bGUAL3N2Zy90b21hdG8AL3N2Zy90dXJxdW9pc2UAL3N2Zy92aW9sZXQAL3N2Zy93aGVhdAAvc3ZnL3doaXRlAC9zdmcvd2hpdGVzbW9rZQAvc3ZnL3llbGxvdwAvc3ZnL3llbGxvd2dyZWVuAC95bGduMy8xAC95bGduMy8yAC95bGduMy8zAC95bGduNC8xAC95bGduNC8yAC95bGduNC8zAC95bGduNC80AC95bGduNS8xAC95bGduNS8yAC95bGduNS8zAC95bGduNS80AC95bGduNS81AC95bGduNi8xAC95bGduNi8yAC95bGduNi8zAC95bGduNi80AC95bGduNi81AC95bGduNi82AC95bGduNy8xAC95bGduNy8yAC95bGduNy8zAC95bGduNy80AC95bGduNy81AC95bGduNy82AC95bGduNy83AC95bGduOC8xAC95bGduOC8yAC95bGduOC8zAC95bGduOC80AC95bGduOC81AC95bGduOC82AC95bGduOC83AC95bGduOC84AC95bGduOS8xAC95bGduOS8yAC95bGduOS8zAC95bGduOS80AC95bGduOS81AC95bGduOS82AC95bGduOS83AC95bGduOS84AC95bGduOS85AC95bGduYnUzLzEAL3lsZ25idTMvMgAveWxnbmJ1My8zAC95bGduYnU0LzEAL3lsZ25idTQvMgAveWxnbmJ1NC8zAC95bGduYnU0LzQAL3lsZ25idTUvMQAveWxnbmJ1NS8yAC95bGduYnU1LzMAL3lsZ25idTUvNAAveWxnbmJ1NS81AC95bGduYnU2LzEAL3lsZ25idTYvMgAveWxnbmJ1Ni8zAC95bGduYnU2LzQAL3lsZ25idTYvNQAveWxnbmJ1Ni82AC95bGduYnU3LzEAL3lsZ25idTcvMgAveWxnbmJ1Ny8zAC95bGduYnU3LzQAL3lsZ25idTcvNQAveWxnbmJ1Ny82AC95bGduYnU3LzcAL3lsZ25idTgvMQAveWxnbmJ1OC8yAC95bGduYnU4LzMAL3lsZ25idTgvNAAveWxnbmJ1OC81AC95bGduYnU4LzYAL3lsZ25idTgvNwAveWxnbmJ1OC84AC95bGduYnU5LzEAL3lsZ25idTkvMgAveWxnbmJ1OS8zAC95bGduYnU5LzQAL3lsZ25idTkvNQAveWxnbmJ1OS82AC95bGduYnU5LzcAL3lsZ25idTkvOAAveWxnbmJ1OS85AC95bG9yYnIzLzEAL3lsb3JicjMvMgAveWxvcmJyMy8zAC95bG9yYnI0LzEAL3lsb3JicjQvMgAveWxvcmJyNC8zAC95bG9yYnI0LzQAL3lsb3JicjUvMQAveWxvcmJyNS8yAC95bG9yYnI1LzMAL3lsb3JicjUvNAAveWxvcmJyNS81AC95bG9yYnI2LzEAL3lsb3JicjYvMgAveWxvcmJyNi8zAC95bG9yYnI2LzQAL3lsb3JicjYvNQAveWxvcmJyNi82AC95bG9yYnI3LzEAL3lsb3JicjcvMgAveWxvcmJyNy8zAC95bG9yYnI3LzQAL3lsb3JicjcvNQAveWxvcmJyNy82AC95bG9yYnI3LzcAL3lsb3JicjgvMQAveWxvcmJyOC8yAC95bG9yYnI4LzMAL3lsb3JicjgvNAAveWxvcmJyOC81AC95bG9yYnI4LzYAL3lsb3JicjgvNwAveWxvcmJyOC84AC95bG9yYnI5LzEAL3lsb3JicjkvMgAveWxvcmJyOS8zAC95bG9yYnI5LzQAL3lsb3JicjkvNQAveWxvcmJyOS82AC95bG9yYnI5LzcAL3lsb3JicjkvOAAveWxvcmJyOS85AC95bG9ycmQzLzEAL3lsb3JyZDMvMgAveWxvcnJkMy8zAC95bG9ycmQ0LzEAL3lsb3JyZDQvMgAveWxvcnJkNC8zAC95bG9ycmQ0LzQAL3lsb3JyZDUvMQAveWxvcnJkNS8yAC95bG9ycmQ1LzMAL3lsb3JyZDUvNAAveWxvcnJkNS81AC95bG9ycmQ2LzEAL3lsb3JyZDYvMgAveWxvcnJkNi8zAC95bG9ycmQ2LzQAL3lsb3JyZDYvNQAveWxvcnJkNi82AC95bG9ycmQ3LzEAL3lsb3JyZDcvMgAveWxvcnJkNy8zAC95bG9ycmQ3LzQAL3lsb3JyZDcvNQAveWxvcnJkNy82AC95bG9ycmQ3LzcAL3lsb3JyZDgvMQAveWxvcnJkOC8yAC95bG9ycmQ4LzMAL3lsb3JyZDgvNAAveWxvcnJkOC81AC95bG9ycmQ4LzYAL3lsb3JyZDgvNwAveWxvcnJkOC84AC95bG9ycmQ5LzEAL3lsb3JyZDkvMgAveWxvcnJkOS8zAC95bG9ycmQ5LzQAL3lsb3JyZDkvNQAveWxvcnJkOS82AC95bG9ycmQ5LzcAL3lsb3JyZDkvOAAveWxvcnJkOS85AGFsaWNlYmx1ZQBhbnRpcXVld2hpdGUAYW50aXF1ZXdoaXRlMQBhbnRpcXVld2hpdGUyAGFudGlxdWV3aGl0ZTMAYW50aXF1ZXdoaXRlNABhcXVhbWFyaW5lAGFxdWFtYXJpbmUxAGFxdWFtYXJpbmUyAGFxdWFtYXJpbmUzAGFxdWFtYXJpbmU0AGF6dXJlAGF6dXJlMQBhenVyZTIAYXp1cmUzAGF6dXJlNABiZWlnZQBiaXNxdWUAYmlzcXVlMQBiaXNxdWUyAGJpc3F1ZTMAYmlzcXVlNABibGFuY2hlZGFsbW9uZABibHVlAGJsdWUxAGJsdWUyAGJsdWUzAGJsdWU0AGJsdWV2aW9sZXQAYnJvd24AYnJvd24xAGJyb3duMgBicm93bjMAYnJvd240AGJ1cmx5d29vZABidXJseXdvb2QxAGJ1cmx5d29vZDIAYnVybHl3b29kMwBidXJseXdvb2Q0AGNhZGV0Ymx1ZQBjYWRldGJsdWUxAGNhZGV0Ymx1ZTIAY2FkZXRibHVlMwBjYWRldGJsdWU0AGNoYXJ0cmV1c2UAY2hhcnRyZXVzZTEAY2hhcnRyZXVzZTIAY2hhcnRyZXVzZTMAY2hhcnRyZXVzZTQAY2hvY29sYXRlAGNob2NvbGF0ZTEAY2hvY29sYXRlMgBjaG9jb2xhdGUzAGNob2NvbGF0ZTQAY29yYWwAY29yYWwxAGNvcmFsMgBjb3JhbDMAY29yYWw0AGNvcm5mbG93ZXJibHVlAGNvcm5zaWxrAGNvcm5zaWxrMQBjb3Juc2lsazIAY29ybnNpbGszAGNvcm5zaWxrNABjcmltc29uAGN5YW4AY3lhbjEAY3lhbjIAY3lhbjMAY3lhbjQAZGFya2dvbGRlbnJvZABkYXJrZ29sZGVucm9kMQBkYXJrZ29sZGVucm9kMgBkYXJrZ29sZGVucm9kMwBkYXJrZ29sZGVucm9kNABkYXJrZ3JlZW4AZGFya2toYWtpAGRhcmtvbGl2ZWdyZWVuAGRhcmtvbGl2ZWdyZWVuMQBkYXJrb2xpdmVncmVlbjIAZGFya29saXZlZ3JlZW4zAGRhcmtvbGl2ZWdyZWVuNABkYXJrb3JhbmdlAGRhcmtvcmFuZ2UxAGRhcmtvcmFuZ2UyAGRhcmtvcmFuZ2UzAGRhcmtvcmFuZ2U0AGRhcmtvcmNoaWQAZGFya29yY2hpZDEAZGFya29yY2hpZDIAZGFya29yY2hpZDMAZGFya29yY2hpZDQAZGFya3NhbG1vbgBkYXJrc2VhZ3JlZW4AZGFya3NlYWdyZWVuMQBkYXJrc2VhZ3JlZW4yAGRhcmtzZWFncmVlbjMAZGFya3NlYWdyZWVuNABkYXJrc2xhdGVibHVlAGRhcmtzbGF0ZWdyYXkAZGFya3NsYXRlZ3JheTEAZGFya3NsYXRlZ3JheTIAZGFya3NsYXRlZ3JheTMAZGFya3NsYXRlZ3JheTQAZGFya3NsYXRlZ3JleQBkYXJrdHVycXVvaXNlAGRhcmt2aW9sZXQAZGVlcHBpbmsAZGVlcHBpbmsxAGRlZXBwaW5rMgBkZWVwcGluazMAZGVlcHBpbms0AGRlZXBza3libHVlAGRlZXBza3libHVlMQBkZWVwc2t5Ymx1ZTIAZGVlcHNreWJsdWUzAGRlZXBza3libHVlNABkaW1ncmF5AGRpbWdyZXkAZG9kZ2VyYmx1ZQBkb2RnZXJibHVlMQBkb2RnZXJibHVlMgBkb2RnZXJibHVlMwBkb2RnZXJibHVlNABmaXJlYnJpY2sAZmlyZWJyaWNrMQBmaXJlYnJpY2syAGZpcmVicmljazMAZmlyZWJyaWNrNABmbG9yYWx3aGl0ZQBmb3Jlc3RncmVlbgBnYWluc2Jvcm8AZ2hvc3R3aGl0ZQBnb2xkAGdvbGQxAGdvbGQyAGdvbGQzAGdvbGQ0AGdvbGRlbnJvZABnb2xkZW5yb2QxAGdvbGRlbnJvZDIAZ29sZGVucm9kMwBnb2xkZW5yb2Q0AGdyYXkAZ3JheTAAZ3JheTEAZ3JheTEwAGdyYXkxMDAAZ3JheTExAGdyYXkxMgBncmF5MTMAZ3JheTE0AGdyYXkxNQBncmF5MTYAZ3JheTE3AGdyYXkxOABncmF5MTkAZ3JheTIAZ3JheTIwAGdyYXkyMQBncmF5MjIAZ3JheTIzAGdyYXkyNABncmF5MjUAZ3JheTI2AGdyYXkyNwBncmF5MjgAZ3JheTI5AGdyYXkzAGdyYXkzMABncmF5MzEAZ3JheTMyAGdyYXkzMwBncmF5MzQAZ3JheTM1AGdyYXkzNgBncmF5MzcAZ3JheTM4AGdyYXkzOQBncmF5NABncmF5NDAAZ3JheTQxAGdyYXk0MgBncmF5NDMAZ3JheTQ0AGdyYXk0NQBncmF5NDYAZ3JheTQ3AGdyYXk0OABncmF5NDkAZ3JheTUAZ3JheTUwAGdyYXk1MQBncmF5NTIAZ3JheTUzAGdyYXk1NABncmF5NTUAZ3JheTU2AGdyYXk1NwBncmF5NTgAZ3JheTU5AGdyYXk2AGdyYXk2MABncmF5NjEAZ3JheTYyAGdyYXk2MwBncmF5NjQAZ3JheTY1AGdyYXk2NgBncmF5NjcAZ3JheTY4AGdyYXk2OQBncmF5NwBncmF5NzAAZ3JheTcxAGdyYXk3MgBncmF5NzMAZ3JheTc0AGdyYXk3NQBncmF5NzYAZ3JheTc3AGdyYXk3OABncmF5NzkAZ3JheTgAZ3JheTgwAGdyYXk4MQBncmF5ODIAZ3JheTgzAGdyYXk4NABncmF5ODUAZ3JheTg2AGdyYXk4NwBncmF5ODgAZ3JheTg5AGdyYXk5AGdyYXk5MABncmF5OTEAZ3JheTkyAGdyYXk5MwBncmF5OTQAZ3JheTk1AGdyYXk5NgBncmF5OTcAZ3JheTk4AGdyYXk5OQBncmVlbgBncmVlbjEAZ3JlZW4yAGdyZWVuMwBncmVlbjQAZ3JlZW55ZWxsb3cAZ3JleQBncmV5MABncmV5MQBncmV5MTAAZ3JleTEwMABncmV5MTEAZ3JleTEyAGdyZXkxMwBncmV5MTQAZ3JleTE1AGdyZXkxNgBncmV5MTcAZ3JleTE4AGdyZXkxOQBncmV5MgBncmV5MjAAZ3JleTIxAGdyZXkyMgBncmV5MjMAZ3JleTI0AGdyZXkyNQBncmV5MjYAZ3JleTI3AGdyZXkyOABncmV5MjkAZ3JleTMAZ3JleTMwAGdyZXkzMQBncmV5MzIAZ3JleTMzAGdyZXkzNABncmV5MzUAZ3JleTM2AGdyZXkzNwBncmV5MzgAZ3JleTM5AGdyZXk0AGdyZXk0MABncmV5NDEAZ3JleTQyAGdyZXk0MwBncmV5NDQAZ3JleTQ1AGdyZXk0NgBncmV5NDcAZ3JleTQ4AGdyZXk0OQBncmV5NQBncmV5NTAAZ3JleTUxAGdyZXk1MgBncmV5NTMAZ3JleTU0AGdyZXk1NQBncmV5NTYAZ3JleTU3AGdyZXk1OABncmV5NTkAZ3JleTYAZ3JleTYwAGdyZXk2MQBncmV5NjIAZ3JleTYzAGdyZXk2NABncmV5NjUAZ3JleTY2AGdyZXk2NwBncmV5NjgAZ3JleTY5AGdyZXk3AGdyZXk3MABncmV5NzEAZ3JleTcyAGdyZXk3MwBncmV5NzQAZ3JleTc1AGdyZXk3NgBncmV5NzcAZ3JleTc4AGdyZXk3OQBncmV5OABncmV5ODAAZ3JleTgxAGdyZXk4MgBncmV5ODMAZ3JleTg0AGdyZXk4NQBncmV5ODYAZ3JleTg3AGdyZXk4OABncmV5ODkAZ3JleTkAZ3JleTkwAGdyZXk5MQBncmV5OTIAZ3JleTkzAGdyZXk5NABncmV5OTUAZ3JleTk2AGdyZXk5NwBncmV5OTgAZ3JleTk5AGhvbmV5ZGV3AGhvbmV5ZGV3MQBob25leWRldzIAaG9uZXlkZXczAGhvbmV5ZGV3NABob3RwaW5rAGhvdHBpbmsxAGhvdHBpbmsyAGhvdHBpbmszAGhvdHBpbms0AGluZGlhbnJlZABpbmRpYW5yZWQxAGluZGlhbnJlZDIAaW5kaWFucmVkMwBpbmRpYW5yZWQ0AGluZGlnbwBpbnZpcwBpdm9yeQBpdm9yeTEAaXZvcnkyAGl2b3J5MwBpdm9yeTQAa2hha2kAa2hha2kxAGtoYWtpMgBraGFraTMAa2hha2k0AGxhdmVuZGVyAGxhdmVuZGVyYmx1c2gAbGF2ZW5kZXJibHVzaDEAbGF2ZW5kZXJibHVzaDIAbGF2ZW5kZXJibHVzaDMAbGF2ZW5kZXJibHVzaDQAbGF3bmdyZWVuAGxlbW9uY2hpZmZvbgBsZW1vbmNoaWZmb24xAGxlbW9uY2hpZmZvbjIAbGVtb25jaGlmZm9uMwBsZW1vbmNoaWZmb240AGxpZ2h0Ymx1ZQBsaWdodGJsdWUxAGxpZ2h0Ymx1ZTIAbGlnaHRibHVlMwBsaWdodGJsdWU0AGxpZ2h0Y29yYWwAbGlnaHRjeWFuAGxpZ2h0Y3lhbjEAbGlnaHRjeWFuMgBsaWdodGN5YW4zAGxpZ2h0Y3lhbjQAbGlnaHRnb2xkZW5yb2QAbGlnaHRnb2xkZW5yb2QxAGxpZ2h0Z29sZGVucm9kMgBsaWdodGdvbGRlbnJvZDMAbGlnaHRnb2xkZW5yb2Q0AGxpZ2h0Z29sZGVucm9keWVsbG93AGxpZ2h0Z3JheQBsaWdodGdyZXkAbGlnaHRwaW5rAGxpZ2h0cGluazEAbGlnaHRwaW5rMgBsaWdodHBpbmszAGxpZ2h0cGluazQAbGlnaHRzYWxtb24AbGlnaHRzYWxtb24xAGxpZ2h0c2FsbW9uMgBsaWdodHNhbG1vbjMAbGlnaHRzYWxtb240AGxpZ2h0c2VhZ3JlZW4AbGlnaHRza3libHVlAGxpZ2h0c2t5Ymx1ZTEAbGlnaHRza3libHVlMgBsaWdodHNreWJsdWUzAGxpZ2h0c2t5Ymx1ZTQAbGlnaHRzbGF0ZWJsdWUAbGlnaHRzbGF0ZWdyYXkAbGlnaHRzbGF0ZWdyZXkAbGlnaHRzdGVlbGJsdWUAbGlnaHRzdGVlbGJsdWUxAGxpZ2h0c3RlZWxibHVlMgBsaWdodHN0ZWVsYmx1ZTMAbGlnaHRzdGVlbGJsdWU0AGxpZ2h0eWVsbG93AGxpZ2h0eWVsbG93MQBsaWdodHllbGxvdzIAbGlnaHR5ZWxsb3czAGxpZ2h0eWVsbG93NABsaW1lZ3JlZW4AbGluZW4AbWFnZW50YQBtYWdlbnRhMQBtYWdlbnRhMgBtYWdlbnRhMwBtYWdlbnRhNABtYXJvb24AbWFyb29uMQBtYXJvb24yAG1hcm9vbjMAbWFyb29uNABtZWRpdW1hcXVhbWFyaW5lAG1lZGl1bWJsdWUAbWVkaXVtb3JjaGlkAG1lZGl1bW9yY2hpZDEAbWVkaXVtb3JjaGlkMgBtZWRpdW1vcmNoaWQzAG1lZGl1bW9yY2hpZDQAbWVkaXVtcHVycGxlAG1lZGl1bXB1cnBsZTEAbWVkaXVtcHVycGxlMgBtZWRpdW1wdXJwbGUzAG1lZGl1bXB1cnBsZTQAbWVkaXVtc2VhZ3JlZW4AbWVkaXVtc2xhdGVibHVlAG1lZGl1bXNwcmluZ2dyZWVuAG1lZGl1bXR1cnF1b2lzZQBtZWRpdW12aW9sZXRyZWQAbWlkbmlnaHRibHVlAG1pbnRjcmVhbQBtaXN0eXJvc2UAbWlzdHlyb3NlMQBtaXN0eXJvc2UyAG1pc3R5cm9zZTMAbWlzdHlyb3NlNABtb2NjYXNpbgBuYXZham93aGl0ZQBuYXZham93aGl0ZTEAbmF2YWpvd2hpdGUyAG5hdmFqb3doaXRlMwBuYXZham93aGl0ZTQAbmF2eQBuYXZ5Ymx1ZQBub25lAG9sZGxhY2UAb2xpdmVkcmFiAG9saXZlZHJhYjEAb2xpdmVkcmFiMgBvbGl2ZWRyYWIzAG9saXZlZHJhYjQAb3JhbmdlAG9yYW5nZTEAb3JhbmdlMgBvcmFuZ2UzAG9yYW5nZTQAb3JhbmdlcmVkAG9yYW5nZXJlZDEAb3JhbmdlcmVkMgBvcmFuZ2VyZWQzAG9yYW5nZXJlZDQAb3JjaGlkAG9yY2hpZDEAb3JjaGlkMgBvcmNoaWQzAG9yY2hpZDQAcGFsZWdvbGRlbnJvZABwYWxlZ3JlZW4AcGFsZWdyZWVuMQBwYWxlZ3JlZW4yAHBhbGVncmVlbjMAcGFsZWdyZWVuNABwYWxldHVycXVvaXNlAHBhbGV0dXJxdW9pc2UxAHBhbGV0dXJxdW9pc2UyAHBhbGV0dXJxdW9pc2UzAHBhbGV0dXJxdW9pc2U0AHBhbGV2aW9sZXRyZWQAcGFsZXZpb2xldHJlZDEAcGFsZXZpb2xldHJlZDIAcGFsZXZpb2xldHJlZDMAcGFsZXZpb2xldHJlZDQAcGFwYXlhd2hpcABwZWFjaHB1ZmYAcGVhY2hwdWZmMQBwZWFjaHB1ZmYyAHBlYWNocHVmZjMAcGVhY2hwdWZmNABwZXJ1AHBpbmsAcGluazEAcGluazIAcGluazMAcGluazQAcGx1bQBwbHVtMQBwbHVtMgBwbHVtMwBwbHVtNABwb3dkZXJibHVlAHB1cnBsZQBwdXJwbGUxAHB1cnBsZTIAcHVycGxlMwBwdXJwbGU0AHJlZAByZWQxAHJlZDIAcmVkMwByZWQ0AHJvc3licm93bgByb3N5YnJvd24xAHJvc3licm93bjIAcm9zeWJyb3duMwByb3N5YnJvd240AHJveWFsYmx1ZQByb3lhbGJsdWUxAHJveWFsYmx1ZTIAcm95YWxibHVlMwByb3lhbGJsdWU0AHNhZGRsZWJyb3duAHNhbG1vbgBzYWxtb24xAHNhbG1vbjIAc2FsbW9uMwBzYWxtb240AHNhbmR5YnJvd24Ac2VhZ3JlZW4Ac2VhZ3JlZW4xAHNlYWdyZWVuMgBzZWFncmVlbjMAc2VhZ3JlZW40AHNlYXNoZWxsAHNlYXNoZWxsMQBzZWFzaGVsbDIAc2Vhc2hlbGwzAHNlYXNoZWxsNABzaWVubmEAc2llbm5hMQBzaWVubmEyAHNpZW5uYTMAc2llbm5hNABza3libHVlAHNreWJsdWUxAHNreWJsdWUyAHNreWJsdWUzAHNreWJsdWU0AHNsYXRlYmx1ZQBzbGF0ZWJsdWUxAHNsYXRlYmx1ZTIAc2xhdGVibHVlMwBzbGF0ZWJsdWU0AHNsYXRlZ3JheQBzbGF0ZWdyYXkxAHNsYXRlZ3JheTIAc2xhdGVncmF5MwBzbGF0ZWdyYXk0AHNsYXRlZ3JleQBzbm93AHNub3cxAHNub3cyAHNub3czAHNub3c0AHNwcmluZ2dyZWVuAHNwcmluZ2dyZWVuMQBzcHJpbmdncmVlbjIAc3ByaW5nZ3JlZW4zAHNwcmluZ2dyZWVuNABzdGVlbGJsdWUAc3RlZWxibHVlMQBzdGVlbGJsdWUyAHN0ZWVsYmx1ZTMAc3RlZWxibHVlNAB0YW4AdGFuMQB0YW4yAHRhbjMAdGFuNAB0aGlzdGxlAHRoaXN0bGUxAHRoaXN0bGUyAHRoaXN0bGUzAHRoaXN0bGU0AHRvbWF0bwB0b21hdG8xAHRvbWF0bzIAdG9tYXRvMwB0b21hdG80AHR1cnF1b2lzZQB0dXJxdW9pc2UxAHR1cnF1b2lzZTIAdHVycXVvaXNlMwB0dXJxdW9pc2U0AHZpb2xldAB2aW9sZXRyZWQAdmlvbGV0cmVkMQB2aW9sZXRyZWQyAHZpb2xldHJlZDMAdmlvbGV0cmVkNAB3aGVhdAB3aGVhdDEAd2hlYXQyAHdoZWF0MwB3aGVhdDQAd2hpdGUAd2hpdGVzbW9rZQB5ZWxsb3cAeWVsbG93MQB5ZWxsb3cyAHllbGxvdzMAeWVsbG93NAB5ZWxsb3dncmVlbgBsYWNrAGhpdGUAaWdodGdyZXkAWDExLwAvJXMvJXMAaW1hZ2VzY2FsZQBmYWxzZQBibGFjawBkb3R0ZWQAZGFzaGVkAGNwLT5zcmMAaHRtbHRhYmxlLmMAZW1pdF9odG1sX2ltZwBjcC0+c3JjWzBdAHRyYW5zcGFyZW50AF8lZAAlZAAyADMANAA1ADYANwA4ADkAMTAAMTEAMTIAMTMAMTQAMTUAMTYAMTcAMTgAMTkAMjAAQWdub2RlaW5mb190AEFnZWRnZWluZm9fdAByb3dnAGNvbGcAQWdyYXBoaW5mb190AGRlbHggPj0gMABwb3NfaHRtbF90YmwAZGVseSA+PSAwAHRhYmxlIHNpemUgdG9vIHNtYWxsIGZvciBjb250ZW50CgBmaXhlZCB0YWJsZSBzaXplIHdpdGggdW5zcGVjaWZpZWQgd2lkdGggb3IgaGVpZ2h0CgBjZWxsIHNpemUgdG9vIHNtYWxsIGZvciBjb250ZW50CgBmaXhlZCBjZWxsIHNpemUgd2l0aCB1bnNwZWNpZmllZCB3aWR0aCBvciBoZWlnaHQKAE5vIG9yIGltcHJvcGVyIGltYWdlIGZpbGU9IiVzIgoAcGVuY29sb3IALT4AZlBRLmMAUFFjaGVjawBIZWFwIG92ZXJmbG93CgAlIVBTLUFkb2JlLTIuMAovbm9kZSB7CiAgL1kgZXhjaCBkZWYKICAvWCBleGNoIGRlZgogIC95IGV4Y2ggZGVmCiAgL3ggZXhjaCBkZWYKICBuZXdwYXRoCiAgeCB5IG1vdmV0bwogIHggWSBsaW5ldG8KICBYIFkgbGluZXRvCiAgWCB5IGxpbmV0bwogIGNsb3NlcGF0aCBmaWxsCn0gZGVmCi9jZWxsIHsKICAvWSBleGNoIGRlZgogIC9YIGV4Y2ggZGVmCiAgL3kgZXhjaCBkZWYKICAveCBleGNoIGRlZgogIG5ld3BhdGgKICB4IHkgbW92ZXRvCiAgeCBZIGxpbmV0bwogIFggWSBsaW5ldG8KICBYIHkgbGluZXRvCiAgY2xvc2VwYXRoIHN0cm9rZQp9IGRlZgoAc2hvd3BhZ2UKAGZhaWxlZCBhdCBub2RlICVkWzBdCgBucC0+Y2VsbHNbMF0AbWF6ZS5jAGNoa1NncmFwaABmYWlsZWQgYXQgbm9kZSAlZFsxXQoAbnAtPmNlbGxzWzFdAGRpdGVtcwBmaW5kU1ZlcnQAJSUlJVBhZ2U6IDEgMQolJSUlUGFnZUJvdW5kaW5nQm94OiAlZCAlZCAlZCAlZAoAJWYgJWYgdHJhbnNsYXRlCgAwIDAgMSBzZXRyZ2Jjb2xvcgoAJWYgJWYgJWYgJWYgbm9kZQoAMCAwIDAgc2V0cmdiY29sb3IKACVmICVmICVmICVmIGNlbGwKADEgMCAwIHNldHJnYmNvbG9yCgB1bmV4cGVjdGVkIGNhc2UgaW4gbG9jYXRlX2VuZHBvaW50CgAwAHRyYXBlem9pZC5jAGxvY2F0ZV9lbmRwb2ludABhZGRfc2VnbWVudDogZXJyb3IKAG5ld25vZGU6IFF1ZXJ5LXRhYmxlIG92ZXJmbG93CgBuZXdub2RlAG5ld3RyYXA6IFRyYXBlem9pZC10YWJsZSBvdmVyZmxvdyAlZAoAbmV3dHJhcABpbmRleC5jAFJUcmVlU2VhcmNoAG4tPmxldmVsID49IDAAUlRyZWVJbnNlcnQAbGV2ZWwgPj0gMCAmJiBsZXZlbCA8PSAoKm4pLT5sZXZlbAByLT5ib3VuZGFyeVtpXSA8PSByLT5ib3VuZGFyeVtOVU1ESU1TICsgaV0AciAmJiBuICYmIG5ldwBSVHJlZUluc2VydDIAbGV2ZWwgPj0gMCAmJiBsZXZlbCA8PSBuLT5sZXZlbABGQUxTRQBub2RlLmMATm9kZUNvdmVyAHIgJiYgbgBQaWNrQnJhbmNoAEFkZEJyYW5jaABpIDwgTk9ERUNBUkQAbmV3AG4gJiYgaSA+PSAwICYmIGkgPCBOT0RFQ0FSRABEaXNjb25CcmFuY2gAcgByZWN0YW5nbGUuYwBSZWN0QXJlYQByICYmIHJyAENvbWJpbmVSZWN0AHIgJiYgcwBPdmVybGFwAG4Ac3BsaXQucS5jAFNwbGl0Tm9kZQBiAG4tPmNvdW50ICsgKCpubiktPmNvdW50ID09IE5PREVDQVJEICsgMQBMb2FkTm9kZXMAcQBwAHJ0cC0+c3BsaXQuUGFydGl0aW9uc1swXS5wYXJ0aXRpb25baV0gPT0gMCB8fCBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0ucGFydGl0aW9uW2ldID09IDEAcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLmNvdW50WzBdICsgcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLmNvdW50WzFdID09IE5PREVDQVJEICsgMQBNZXRob2RaZXJvAHJ0cC0+c3BsaXQuUGFydGl0aW9uc1swXS5jb3VudFswXSA+PSBydHAtPk1pbkZpbGwgJiYgcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLmNvdW50WzFdID49IHJ0cC0+TWluRmlsbAAhcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLnRha2VuW2ldAENsYXNzaWZ5AEdldEJyYW5jaGVzAG4tPmJyYW5jaFtpXS5jaGlsZAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKAICAgICAhAMWQEAH1AIAwcSExRXFhcIC2kMHwoFDA4pESsPLRAvMCAyBjQ1GxwdHgsMISIjJCUmJygMGBkXBAobHBogKgohIiMkJSYnKAwKDlMKLFgxWFhYWFhYDBscDy5YMyEiIyQlJicoGxz/U///ISIjJCUmJygM//8F////CRT//////wwbHP8QFRYhIiMkJSYnKBsc/////yEiIyQlJicoDP8SExQRFhf///////8MGxz///8SISIjJCUmJygbHP////8hIiMkJSYnKAz///////8T////////DBsc/////yEiIyQlJicoGxz/////ISIjJCUmJygSExQVFhcYGf///////////yMkJSYnGxITFBYXIjZoAR84ViEgAhsbG14bGzc5cDbSwk8EPCJHIj8iRCIiWCJlIiIFBl9gOQQHCAkKCwwNDgRmZ11qbQUGb1g7cQcICQoLDA0OBHI8W3M+YUYbEhMUFhcEBQY/QWJJBwgJCgsMDQ4FBgBcAAAHCAkKCwwNDgQAAE8AAABTQgAAAAAABAUGAERUVQcICQoLDA0OBQYAAAAABwgJCgsMDQ4EACosLkcxMwAAAAAAAAQFBgAAAEoHCAkKCwwNDgUGAAAAAAcICQoLDA0OBAAAAAAAAEwAAAAAAAAEBQYAAAAABwgJCgsMDQ4FBgAAAAAHCAkKCwwNDikrLS8wMjQ1AAAAAAAAAAAAKSstMDIABC8AJCMAEhQWGhweIBgABQcvLy8ALy8AAAkIKAAAASICBgAAAAAACAAAAAAAAAAAAAAAAAAlAyYTCikVCyoXDi0ZERsMKx0NLB8PIRAAMwAwAC9DADEALwA1LidCMkEAOjgAPDRFADYAQAAAPwBENzs5PQACAwMBAQIBAQEDAwMDAwMDAwEBAQEBAQEBAQEBAQEBAQECAQECAAYBAwMDAwMBAAECAwAEAQIDAAQABAAEAAMCAQIBAgFTeW50YXggZXJyb3I6IG5vbi1zcGFjZSBzdHJpbmcgdXNlZCBiZWZvcmUgPFRBQkxFPgBTeW50YXggZXJyb3I6IG5vbi1zcGFjZSBzdHJpbmcgdXNlZCBhZnRlciA8L1RBQkxFPgAAKSoqKissLC0tLS0tLS0tLS0uLzAxMjM0NTY3ODk6Ozw9Pj4/P0FAQkJCQkJCQ0NERERGRUdHR0lISkhLSExITU1OTk9P/wMPEBEjOiQ9JUAVQyZFJ0gYSxlNGigcTh0eUFFSWVpsa25jZFdpbWVtb3J5IGV4aGF1c3RlZAAlcyBpbiBsaW5lICVkIAoALi4uICVzIC4uLgoAVEFCTEUAVFIAVEgAVEQASFRNTABGT05UAEIAVQBPAEkAU1VQAFNVQgBTAEJSAEhSAFZSAElNRwBVbmtub3duIEhUTUwgZWxlbWVudCA8JXM+IG9uIGxpbmUgJWQgCgA8SU1HPgBJbGxlZ2FsIGF0dHJpYnV0ZSAlcyBpbiAlcyAtIGlnbm9yZWQKAHNjYWxlAHNyYwA8QlI+AGFsaWduAElHSFQARUZUAEVOVEVSAElsbGVnYWwgdmFsdWUgJXMgZm9yIEFMSUdOIC0gaWdub3JlZAoAPEZPTlQ+AGNvbG9yAGZhY2UAcG9pbnQtc2l6ZQBQT0lOVC1TSVpFAEltcHJvcGVyICVzIHZhbHVlICVzIC0gaWdub3JlZAAlcyB2YWx1ZSAlcyA+ICVkIC0gdG9vIGxhcmdlIC0gaWdub3JlZAAlcyB2YWx1ZSAlcyA8ICVkIC0gdG9vIHNtYWxsIC0gaWdub3JlZAA8VEQ+AGJhbGlnbgBiZ2NvbG9yAGJvcmRlcgBjZWxscGFkZGluZwBjZWxsc3BhY2luZwBjb2xzcGFuAGZpeGVkc2l6ZQBncmFkaWVudGFuZ2xlAGhlaWdodABocmVmAGlkAHBvcnQAcm93c3BhbgBzaWRlcwBzdHlsZQB0YXJnZXQAdGl0bGUAdG9vbHRpcAB2YWxpZ24Ad2lkdGgAV0lEVEgAT1RUT00AT1AASURETEUASWxsZWdhbCB2YWx1ZSAlcyBmb3IgVkFMSUdOIC0gaWdub3JlZAoAICwAT1VOREVEAEFESUFMAElsbGVnYWwgdmFsdWUgJXMgZm9yIFNUWUxFIC0gaWdub3JlZAoAU09MSUQASU5WSVNJQkxFAElOVklTAERPVFRFRABEQVNIRUQAVW5yZWNvZ25pemVkIGNoYXJhY3RlciAnJWMnICglZCkgaW4gc2lkZXMgYXR0cmlidXRlCgBST1dTUEFOAFJPV1NQQU4gdmFsdWUgY2Fubm90IGJlIDAgLSBpZ25vcmVkCgBIRUlHSFQAR1JBRElFTlRBTkdMRQBSVUUAQUxTRQBJbGxlZ2FsIHZhbHVlICVzIGZvciBGSVhFRFNJWkUgLSBpZ25vcmVkCgBDT0xTUEFOAENPTFNQQU4gdmFsdWUgY2Fubm90IGJlIDAgLSBpZ25vcmVkCgBDRUxMU1BBQ0lORwBDRUxMUEFERElORwBCT1JERVIASWxsZWdhbCB2YWx1ZSAlcyBmb3IgQkFMSUdOIGluIFREIC0gaWdub3JlZAoARVhUAElsbGVnYWwgdmFsdWUgJXMgZm9yIEFMSUdOIGluIFREIC0gaWdub3JlZAoAPFRBQkxFPgBjZWxsYm9yZGVyAGNvbHVtbnMAcm93cwBVbmtub3duIHZhbHVlICVzIGZvciBST1dTIC0gaWdub3JlZAoAVW5rbm93biB2YWx1ZSAlcyBmb3IgQ09MVU1OUyAtIGlnbm9yZWQKAENFTExTQk9SREVSADxIVE1MPgA8L0hUTUw+AC0tAExhYmVsIGNsb3NlZCBiZWZvcmUgZW5kIG9mIEhUTUwgZWxlbWVudAoAVW5jbG9zZWQgY29tbWVudAoAaiA9PSAwAGN2dC5jAFBvYnNwYXRoAHJvdXRlLmMAbGlicGF0aC8lczolZDogJXMKAHNob3J0ZXN0LmMAc291cmNlIHBvaW50IG5vdCBpbiBhbnkgdHJpYW5nbGUAZGVzdGluYXRpb24gcG9pbnQgbm90IGluIGFueSB0cmlhbmdsZQBjYW5ub3QgZmluZCB0cmlhbmdsZSBwYXRoAGNhbm5vdCBtYWxsb2Mgb3BzAGNhbm5vdCByZWFsbG9jIG9wcwB0cmlhbmd1bGF0aW9uIGZhaWxlZABjYW5ub3QgbWFsbG9jIHRyaXMAY2Fubm90IHJlYWxsb2MgdHJpcwBjYW5ub3QgbWFsbG9jIGRxLnBubHMAY2Fubm90IHJlYWxsb2MgZHEucG5scwBjYW5ub3QgbWFsbG9jIHBubHMAY2Fubm90IG1hbGxvYyBwbmxwcwBjYW5ub3QgcmVhbGxvYyBwbmxzAGNhbm5vdCByZWFsbG9jIHBubHBzAENEQVRBAElEAElEUkVGAElEUkVGUwBFTlRJVFkARU5USVRJRVMATk1UT0tFTgBOTVRPS0VOUwBOT1RBVElPTigAKAB8AGh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZQBodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLwB4bWw9aHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlAC9kZXYvdXJhbmRvbQBmYWxsYmFjayg0KQBnZXR0aW1lb2ZkYXlfcmVzID09IDAAeG1scGFyc2UuYwBnYXRoZXJfdGltZV9lbnRyb3B5AEVYUEFUX0VOVFJPUFlfREVCVUcAMQBFbnRyb3B5OiAlcyAtLT4gMHglMCpseCAoJWx1IGJ5dGVzKQoAaW52YWxpZCBhcmd1bWVudABwcmVmaXggbXVzdCBub3QgYmUgYm91bmQgdG8gb25lIG9mIHRoZSByZXNlcnZlZCBuYW1lc3BhY2UgbmFtZXMAcmVzZXJ2ZWQgcHJlZml4ICh4bWxucykgbXVzdCBub3QgYmUgZGVjbGFyZWQgb3IgdW5kZWNsYXJlZAByZXNlcnZlZCBwcmVmaXggKHhtbCkgbXVzdCBub3QgYmUgdW5kZWNsYXJlZCBvciBib3VuZCB0byBhbm90aGVyIG5hbWVzcGFjZSBuYW1lAGNhbm5vdCBzdXNwZW5kIGluIGV4dGVybmFsIHBhcmFtZXRlciBlbnRpdHkAcGFyc2luZyBmaW5pc2hlZABwYXJzaW5nIGFib3J0ZWQAcGFyc2VyIG5vdCBzdXNwZW5kZWQAcGFyc2VyIHN1c3BlbmRlZABpbGxlZ2FsIGNoYXJhY3RlcihzKSBpbiBwdWJsaWMgaWQAdGV4dCBkZWNsYXJhdGlvbiBub3Qgd2VsbC1mb3JtZWQAWE1MIGRlY2xhcmF0aW9uIG5vdCB3ZWxsLWZvcm1lZABpbmNvbXBsZXRlIG1hcmt1cCBpbiBwYXJhbWV0ZXIgZW50aXR5AG11c3Qgbm90IHVuZGVjbGFyZSBwcmVmaXgAdW5ib3VuZCBwcmVmaXgAY2Fubm90IGNoYW5nZSBzZXR0aW5nIG9uY2UgcGFyc2luZyBoYXMgYmVndW4AcmVxdWVzdGVkIGZlYXR1cmUgcmVxdWlyZXMgWE1MX0RURCBzdXBwb3J0IGluIEV4cGF0AGVudGl0eSBkZWNsYXJlZCBpbiBwYXJhbWV0ZXIgZW50aXR5AHVuZXhwZWN0ZWQgcGFyc2VyIHN0YXRlIC0gcGxlYXNlIHNlbmQgYSBidWcgcmVwb3J0AGRvY3VtZW50IGlzIG5vdCBzdGFuZGFsb25lAGVycm9yIGluIHByb2Nlc3NpbmcgZXh0ZXJuYWwgZW50aXR5IHJlZmVyZW5jZQB1bmNsb3NlZCBDREFUQSBzZWN0aW9uAGVuY29kaW5nIHNwZWNpZmllZCBpbiBYTUwgZGVjbGFyYXRpb24gaXMgaW5jb3JyZWN0AHVua25vd24gZW5jb2RpbmcAWE1MIG9yIHRleHQgZGVjbGFyYXRpb24gbm90IGF0IHN0YXJ0IG9mIGVudGl0eQByZWZlcmVuY2UgdG8gZXh0ZXJuYWwgZW50aXR5IGluIGF0dHJpYnV0ZQByZWZlcmVuY2UgdG8gYmluYXJ5IGVudGl0eQByZWZlcmVuY2UgdG8gaW52YWxpZCBjaGFyYWN0ZXIgbnVtYmVyAGFzeW5jaHJvbm91cyBlbnRpdHkAcmVjdXJzaXZlIGVudGl0eSByZWZlcmVuY2UAdW5kZWZpbmVkIGVudGl0eQBpbGxlZ2FsIHBhcmFtZXRlciBlbnRpdHkgcmVmZXJlbmNlAGp1bmsgYWZ0ZXIgZG9jdW1lbnQgZWxlbWVudABkdXBsaWNhdGUgYXR0cmlidXRlAG1pc21hdGNoZWQgdGFnAHBhcnRpYWwgY2hhcmFjdGVyAHVuY2xvc2VkIHRva2VuAG5vdCB3ZWxsLWZvcm1lZCAoaW52YWxpZCB0b2tlbikAbm8gZWxlbWVudCBmb3VuZABzeW50YXggZXJyb3IAb3V0IG9mIG1lbW9yeQACAwQFBgcIAAAJCgsMDQ4PEBEAAAAAAAAAAAAAAAASEwAUAAAAAAAAAAAAAAAAAAAVFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEXAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBARgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQMaGxwdHgAAHyAhIiMkJRARAAAAAAAAAAAAAAAAEhMmFAAAAAAAAAAAAAAAAAAAJxYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBFwAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAENEQVRBW1VTLUFTQ0lJAFVURi0xNgBVVEYtMTZCRQBVVEYtMTZMRQB2ZXJzaW9uAGVuY29kaW5nAHN0YW5kYWxvbmUARE9DVFlQRQBTWVNURU0AUFVCTElDAEVOVElUWQBBVFRMSVNUAEVMRU1FTlQATk9UQVRJT04ASU5DTFVERQBJR05PUkUARU1QVFkAQU5ZAFBDREFUQQBJTVBMSUVEAFJFUVVJUkVEAEZJWEVEAENEQVRBAElEAElEUkVGAElEUkVGUwBFTlRJVElFUwBOTVRPS0VOAE5NVE9LRU5TAE5EQVRBAFQhIhkNAQIDEUscDBAECx0SHidobm9wcWIgBQYPExQVGggWBygkFxgJCg4bHyUjg4J9JiorPD0+P0NHSk1YWVpbXF1eX2BhY2RlZmdpamtscnN0eXp7fABJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAEhATFBUWFxgZGhscHR4fICEQECIjECQlJicoKSorECwtLhEvMBERMRERETIzNDU2Nzg5ERAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA6EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA7EDw9Pj9AQRAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBBCEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBBDEBBEEEVGRxBIEEkQEBAQSktMTRAQThBPUBAQEBBREBAQEBAQEBAQEBAQEFIQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEFMQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBBUVVZXEBBYWRAQEBAQEBAQEBAQEBAQEBAQEBAQEBBaEFtcXV5fYGFiEBAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////////////////////////////////AAAAAP7/APwBAAD4AQAAeAAAAAD/+9/7AACAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8APz/4K//////////////3///////IECwAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAPwDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPwAAAAAAIb+////AEBJAAAAAAAYAN//AMgAAAAAAAAAAQA8AAAAAAAAAAAAAAAAEOABHgBg/78AAAAAAAD/BwAAAAAAAAAAAAAAAAAAAAAAAAD4zwMAAAADACD/fwAAAE4AAAAAAAAAAAAAAAAAAAAAAPwAAAAAAAAAAAAQACAeADAAAQAAAAAAAAAAEAAgAAAAAPwPAAAAAAAAABAAIAAAAAAAAAAAAAAAAAAQACAAAAAAAwAAAAAAAAAAEAAgAAAAAP0AAAAAAAAAAAAAIAAAAAD/BwAAAAAAAAAAACAAAAAAAP8AAAAAAAAAEAAgAAAAAAAAAAAAAAAAAAAAIAAAAAA/AgAAAAAAAAAAAAQAAAAAEAAAAAAAAIAAgMDfAAwAAAAAAAAAAAAAAAAAHwAAAAAAAP7///8A/P//AAAAAAAAAAD8AAAAAAAAwP/f/wcAAAAAAAAAAAAAgAYA/AAAGD4AAIC/AMwAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAGD///8fAAD/AwAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAEAABgAAAAAAAAAAAA4AAAAABAAAABwAAAAAAAAAAAAAAAAAAAAMAAA/n8vAAD/A/9/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4xAAAAAAAAAAAAAAAAAAAAAAAAxP////8AAADAAAAAAAAAAAABAOCfAAAAAH8/AAAAAAAAAAAAAAAAAAAAABAAEAAA/P///x8AAAAAAAwAAAAAAABAAAzwAAAAAAAAwPgAAAAAAAAAwAAAAAAAAAAA/wD///8hEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////fwAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAPgAOAA4ABggPj////8//////9/H/zxf/9/AAD///8DAAD/////AQB7A9DBr0IADB+8//8AAAAAAAL//////////////////////////////////////////////////////////w8A/////38AAAD/BwAA/////////////z8AAAAAAAD8///+/////////////////////////////////////////////////////x//AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOCHA/4AAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAP//////f/8PAAAAAAAAAAD////7/////////////w8A//////////////////////////////////8/AAAA/w8e////AfzB4AAAAAAAAAAAAAAAHgEAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAP//AAAAAP////8PAAAA////f////////////////////////////////////38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////wAAAAAAAAAAAAAAAAAAAAAAAP///////38AAAAAAADAAOAAAAAAAAAAAAAAAIAPcAAAAAAAAAAAAAAAAAAA/wD//38AAwAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAEQIAAAAD/8DAAAAAAAA8AAAAAAAAAAAABDAAAD//wMHAAAAAAD4AAAAAAiAAAAAAAAAAAAAAAgA/z8AwAAAAAAAAAAAAAAAAAAAAPAAAIALAAAAAAAAAIACAADAAABDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAgAAAAAAAAAAAAAAAAAAAAD8/wMAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADD///8DfwD/////9/9/DwAAAAAAAAAAAAAAAAAAAAAAgP7/APwBAAD4AQAA+D8AAAAAAAAAAAAAAAAAAAB/fwAwh///////j/8AAAAAAADg//8H/w8AAAAAAAD//////z8AAAAADwAAAAAAAAAAAAAAAAAAgAAAAAAAAAEAAAAAAAAAAAAAAAAAAACA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAADAjwAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAh/8A/wEAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////fwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMA//P8/AAAAAwAAAAAAAP4DAAAAAAAAAAAAAAAAABgADwAAAAAAAAAAAAAAAAAAAOEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAcAAAAAAAAAAAAAAAAA////////////////////////////////////////PwD/////f/7///////////////////////////8/AAAAAP//////////PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////38A//8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAIAAAACAAAIAAAACAAAIAAAACAAAAAAgAAAAIAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwD//////w////////////////8PAP9//n/+//7/AAAAAP8H////f/////////8P//////8HAAAAAAAAAADA////BwD//////wf/AQMAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AQC///////////8f//8PAP/////fBwAA//8BAP////////9//f////////////////////////////8e/////////z8PAP///wAAAAAAAAAAAAAAAAAAAAAAAPj//////////+H/AAAAAAAA//////////8/AAAAAAAAAP//////////////////DwAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////////////////////////////////wABAgMEBQYHCAn/////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP///////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAQIEBwMGBQASERMUFRYXGBkaGxwdHh8gIREiIyQRJSYnKCkqKywRLS4vEBAwEBAQEBAQEDEyMxA0NRAQERERERERERERERERERERERERERERERERETYRERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE3ERERETgROTo7PD0+ERERERERERERERERERERERERERERERERERERERERERERERERERERERERET8QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBARQEERQkNERUZHSEkQEBBKS0xNThAQEE9QEBAQEFEQEBAQEBAQEBARERFSUxAQEBAQEBAQEBAQEREREVQQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAREVUQEBAQVhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBBXEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBBYWVpbEBAQEBAQEBAQEBAQEBAQEBAQEBAQEFwQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////8AAAAAAAAAAP7//wf+//8HAAAAAAAEIAT//3////9//////////////////////////////////8P/AwAfUAAAAAAAAAAAAAAgAAAAAADfPEDX///7////////////v///////////////////////A/z/////////////////////////AP7///9/Av7/////AAAAAAD/v7YA////BwcAAAD/B//////////+/8P////////////////vH/7h/58AAP///////wDg////////////////AwD//////wcwBP////z/HwAA////AQAAAAAAAAAA/R8AAAAAAADwA/9//////////+//3+H/z//+/u6f+f///cXjn1mAsM//AwDuh/n///1tw4cZAl7A/z8A7r/7///97eO/GwEAz/8AAO6f+f///e3jnxnAsM//AgDsxz3WGMf/w8cdgQDA/wAA7t/9///97+PfHWADz/8AAOzf/f///e/j3x1gQM//BgDs3/3/////599dgADP/wD87P9//P//+y9/gF//AAAMAP7/////f/8HPyD/AwAAAACWJfD+ruz/O18g//MAAAAAAQAAAP8DAAD//v///x/+/wP///7///8fAAAAAAAAAAD///////9/+f8D///nwf//f0D/M/////+/IP//////9////////////z1/Pf//////Pf////89fz3/f/////////89//////////+HAAAAAP//AAD/////////////HwD+//////////////////////////////////////////////////////////+f///+//8H////////////xwEA/98PAP//DwD//w8A/98NAP///////8///wGAEP8DAAAAAP8D//////////////8A//////8H//////////8/AP///x//D/8BwP////8/HwD//////w////8D/wMAAAAA////D/////////9//v8fAP8D/wOAAAAAAAAAAAAAAAD////////v/+8P/wMAAAAA///////z////////v/8DAP///////z8A/+P//////z8AAAAAAAAAAAAAAAAA3m8A////////////////////////////////AAAAAAAAAAD//z8//////z8//6r///8/////////31/cH88P/x/cHwAAAAAAAAAAAAAAAAAAAoAAAP8fAAAAAAAAAAAAAAAAhPwvPlC9//PgQwAA//////8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwP///////wMAAP//////f///////f/////////////////////8feAwA/////78g/////////4AAAP//fwB/f39/f39/f/////8AAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAD+Az4f/v///////////3/g/v/////////////34P////8//v////////////9/AAD///8HAAAAAAAA////////////////////////////////PwAAAAAAAAAAAP////////////////////////////////8fAAAAAAAA//////////////////////8fAAAAAAAAAAD//////z//H////w8AAP//////f/CP////gP////////////8AAAAAgP/8////////////////eQ8A/wcAAAAAAAAAAAD/u/f///8AAAD///////8PAP//////////DwD/AwAA/Aj//////wf/////BwD///8f////////9/8AgP8DAAAAAP///////38A/z//A///fwT/////////fwUAADj//zwAfn5+AH9/AAAAAAAAAAAAAAAAAAAAAAAA//////8H/wP//////////////////////////w8A//9/+P//////D/////////////////8//////////////////wMAAAAAfwD44P/9f1/b/////////////////wMAAAD4////////////////PwAA///////////8////////AAAAAAD/DwAAAAAAAAAAAAAAAAAA3/////////////////////8fAAD/A/7//wf+//8HwP////////////9//Pz8HAAAAAD/7///f///t/8//z8AAAAA////////////////////BwAAAAAAAAAA////////HwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///x////////8BAAAAAAD///9/AAD///8HAAAAAAAA////P/////8P/z4AAAAAAP////////////////////////8//wMAAAAAAAAAAAAAP/3/////v5H//z8AAAAAAAAAAAAAAAAAAAAAAAAAAAD//z8A////AwAAAAAAAAAA/////////8AAAAAAAAAAAG/w7/7//w8AAAAAAP///x8AAAAAAAAAAAAAAAAAAAAA////////PwD//z8A//8HAAAAAAAAAAAAAAAAAAAAAAD///////////8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////PwAAAMD/AAD8////////AQAA////Af8D////////x/8AAAAAAAAAAP//////////HgD/AwAAAAAAAAAAAAAAAAAAAAAAAAAA////////PwD/AwAAAAAAAP////////////////9/AAAAAAAAAAAAAAAAAAAAAAAA////////////////BwAAAAAAAAAAAAAAAAAAAAAAAAD//////38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////8fAP//////fwAA+P8AAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////////f///////////fZN7/6+//////////v+ff3////3tf/P3//////////////////////////////////////////////////////z/////9///3////9///3////9///3////9//////f////3///fP////////7////5b+9wqE6paqlvf3Xv/7/w/u+/8PAAAAAAAAAABMQ19BTEwATENfQ1RZUEUAAAAATENfTlVNRVJJQwAATENfVElNRQAAAAAATENfQ09MTEFURQAATENfTU9ORVRBUlkATENfTUVTU0FHRVMATEFORwBDLlVURi04AFBPU0lYAE1VU0xfTE9DUEFUSAARAAoAERERAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABEADwoREREDCgcAARMJCwsAAAkGCwAACwAGEQAAABEREQAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAARAAoKERERAAoAAAIACQsAAAAJAAsAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA0AAAAEDQAAAAAJDgAAAAAADgAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAPAAAAAA8AAAAACRAAAAAAABAAABAAABIAAAASEhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAABISEgAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAoAAAAACgAAAAAJCwAAAAAACwAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAwAAAAACQwAAAAAAAwAAAwAAC0rICAgMFgweAAobnVsbCkALTBYKzBYIDBYLTB4KzB4IDB4AGluZgBJTkYATkFOADAxMjM0NTY3ODlBQkNERUYuAGFsbnVtAGFscGhhAGJsYW5rAGNudHJsAGRpZ2l0AGdyYXBoAGxvd2VyAHByaW50AHB1bmN0AHNwYWNlAHVwcGVyAHhkaWdpdABDLlVURi04AAAAAAAAAAAAQwAvcHJvYy9zZWxmL2ZkLwByd2EAaW5maW5pdHkAbmFuAAkACgANAAwABwAbAFtbOmFsbnVtOl1fXQBbXls6YWxudW06XV9dAFtbOnNwYWNlOl1dAFteWzpzcGFjZTpdXQBbWzpkaWdpdDpdXQBbXls6ZGlnaXQ6XV0AL3RtcC90bXBmaWxlX1hYWFhYWAB3Kw==\";var vA=N;function EA(){de()}function CA(){return s||\"undefined\"!=typeof dateNow||(t||c)&&self.performance&&self.performance.now}N+=16;var IA={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function ZA(e){return A.___errno_location&&(V[A.___errno_location()>>2]=e),e}function GA(A,e){var i;if(0===A)i=Date.now();else{if(1!==A||!CA())return ZA(IA.EINVAL),-1;i=EA()}return V[e>>2]=i/1e3|0,V[e+4>>2]=i%1e3*1e3*1e3|0,0}var mA={0:\"Success\",1:\"Not super-user\",2:\"No such file or directory\",3:\"No such process\",4:\"Interrupted system call\",5:\"I/O error\",6:\"No such device or address\",7:\"Arg list too long\",8:\"Exec format error\",9:\"Bad file number\",10:\"No children\",11:\"No more processes\",12:\"Not enough core\",13:\"Permission denied\",14:\"Bad address\",15:\"Block device required\",16:\"Mount device busy\",17:\"File exists\",18:\"Cross-device link\",19:\"No such device\",20:\"Not a directory\",21:\"Is a directory\",22:\"Invalid argument\",23:\"Too many open files in system\",24:\"Too many open files\",25:\"Not a typewriter\",26:\"Text file busy\",27:\"File too large\",28:\"No space left on device\",29:\"Illegal seek\",30:\"Read only file system\",31:\"Too many links\",32:\"Broken pipe\",33:\"Math arg out of domain of func\",34:\"Math result not representable\",35:\"File locking deadlock error\",36:\"File or path name too long\",37:\"No record locks available\",38:\"Function not implemented\",39:\"Directory not empty\",40:\"Too many symbolic links\",42:\"No message of desired type\",43:\"Identifier removed\",44:\"Channel number out of range\",45:\"Level 2 not synchronized\",46:\"Level 3 halted\",47:\"Level 3 reset\",48:\"Link number out of range\",49:\"Protocol driver not attached\",50:\"No CSI structure available\",51:\"Level 2 halted\",52:\"Invalid exchange\",53:\"Invalid request descriptor\",54:\"Exchange full\",55:\"No anode\",56:\"Invalid request code\",57:\"Invalid slot\",59:\"Bad font file fmt\",60:\"Device not a stream\",61:\"No data (for no delay io)\",62:\"Timer expired\",63:\"Out of streams resources\",64:\"Machine is not on the network\",65:\"Package not installed\",66:\"The object is remote\",67:\"The link has been severed\",68:\"Advertise error\",69:\"Srmount error\",70:\"Communication error on send\",71:\"Protocol error\",72:\"Multihop attempted\",73:\"Cross mount point (not really error)\",74:\"Trying to read unreadable message\",75:\"Value too large for defined data type\",76:\"Given log. name not unique\",77:\"f.d. invalid for this operation\",78:\"Remote address changed\",79:\"Can access a needed shared lib\",80:\"Accessing a corrupted shared lib\",81:\".lib section in a.out corrupted\",82:\"Attempting to link in too many libs\",83:\"Attempting to exec a shared library\",84:\"Illegal byte sequence\",86:\"Streams pipe error\",87:\"Too many users\",88:\"Socket operation on non-socket\",89:\"Destination address required\",90:\"Message too long\",91:\"Protocol wrong type for socket\",92:\"Protocol not available\",93:\"Unknown protocol\",94:\"Socket type not supported\",95:\"Not supported\",96:\"Protocol family not supported\",97:\"Address family not supported by protocol family\",98:\"Address already in use\",99:\"Address not available\",100:\"Network interface is not configured\",101:\"Network is unreachable\",102:\"Connection reset by network\",103:\"Connection aborted\",104:\"Connection reset by peer\",105:\"No buffer space available\",106:\"Socket is already connected\",107:\"Socket is not connected\",108:\"Can\\'t send after socket shutdown\",109:\"Too many references\",110:\"Connection timed out\",111:\"Connection refused\",112:\"Host is down\",113:\"Host is unreachable\",114:\"Socket already connected\",115:\"Connection already in progress\",116:\"Stale file handle\",122:\"Quota exceeded\",123:\"No medium (in tape drive)\",125:\"Operation canceled\",130:\"Previous owner died\",131:\"State not recoverable\"},QA={splitPath:function(A){return/^(\\\\/?|)([\\\\s\\\\S]*?)((?:\\\\.{1,2}|[^\\\\/]+?|)(\\\\.[^.\\\\/]*|))(?:[\\\\/]*)$/.exec(A).slice(1)},normalizeArray:function(A,e){for(var i=0,r=A.length-1;r>=0;r--){var f=A[r];\".\"===f?A.splice(r,1):\"..\"===f?(A.splice(r,1),i++):i&&(A.splice(r,1),i--)}if(e)for(;i;i--)A.unshift(\"..\");return A},normalize:function(A){var e=\"/\"===A.charAt(0),i=\"/\"===A.substr(-1);return(A=QA.normalizeArray(A.split(\"/\").filter(function(A){return!!A}),!e).join(\"/\"))||e||(A=\".\"),A&&i&&(A+=\"/\"),(e?\"/\":\"\")+A},dirname:function(A){var e=QA.splitPath(A),i=e[0],r=e[1];return i||r?(r&&(r=r.substr(0,r.length-1)),i+r):\".\"},basename:function(A){if(\"/\"===A)return\"/\";var e=A.lastIndexOf(\"/\");return-1===e?A:A.substr(e+1)},extname:function(A){return QA.splitPath(A)[3]},join:function(){var A=Array.prototype.slice.call(arguments,0);return QA.normalize(A.join(\"/\"))},join2:function(A,e){return QA.normalize(A+\"/\"+e)},resolve:function(){for(var A=\"\",e=!1,i=arguments.length-1;i>=-1&&!e;i--){var r=i>=0?arguments[i]:DA.cwd();if(\"string\"!=typeof r)throw new TypeError(\"Arguments to path.resolve must be strings\");if(!r)return\"\";A=r+\"/\"+A,e=\"/\"===r.charAt(0)}return(e?\"/\":\"\")+(A=QA.normalizeArray(A.split(\"/\").filter(function(A){return!!A}),!e).join(\"/\"))||\".\"},relative:function(A,e){function i(A){for(var e=0;e=0&&\"\"===A[i];i--);return e>i?[]:A.slice(e,i-e+1)}A=QA.resolve(A).substr(1),e=QA.resolve(e).substr(1);for(var r=i(A.split(\"/\")),f=i(e.split(\"/\")),a=Math.min(r.length,f.length),n=a,l=0;l0?f.slice(0,a).toString(\"utf-8\"):null}else\"undefined\"!=typeof window&&\"function\"==typeof window.prompt?null!==(i=window.prompt(\"Input: \"))&&(i+=\"\\\\n\"):\"function\"==typeof readline&&null!==(i=readline())&&(i+=\"\\\\n\");if(!i)return null;A.input=_A(i,!0)}return A.input.shift()},put_char:function(e,i){null===i||10===i?(A.print(m(e.output,0)),e.output=[]):0!=i&&e.output.push(i)},flush:function(e){e.output&&e.output.length>0&&(A.print(m(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,i){null===i||10===i?(A.printErr(m(e.output,0)),e.output=[]):0!=i&&e.output.push(i)},flush:function(e){e.output&&e.output.length>0&&(A.printErr(m(e.output,0)),e.output=[])}}},yA={ops_table:null,mount:function(A){return yA.createNode(null,\"/\",16895,0)},createNode:function(A,e,i,r){if(DA.isBlkdev(i)||DA.isFIFO(i))throw new DA.ErrnoError(IA.EPERM);yA.ops_table||(yA.ops_table={dir:{node:{getattr:yA.node_ops.getattr,setattr:yA.node_ops.setattr,lookup:yA.node_ops.lookup,mknod:yA.node_ops.mknod,rename:yA.node_ops.rename,unlink:yA.node_ops.unlink,rmdir:yA.node_ops.rmdir,readdir:yA.node_ops.readdir,symlink:yA.node_ops.symlink},stream:{llseek:yA.stream_ops.llseek}},file:{node:{getattr:yA.node_ops.getattr,setattr:yA.node_ops.setattr},stream:{llseek:yA.stream_ops.llseek,read:yA.stream_ops.read,write:yA.stream_ops.write,allocate:yA.stream_ops.allocate,mmap:yA.stream_ops.mmap,msync:yA.stream_ops.msync}},link:{node:{getattr:yA.node_ops.getattr,setattr:yA.node_ops.setattr,readlink:yA.node_ops.readlink},stream:{}},chrdev:{node:{getattr:yA.node_ops.getattr,setattr:yA.node_ops.setattr},stream:DA.chrdev_stream_ops}});var f=DA.createNode(A,e,i,r);return DA.isDir(f.mode)?(f.node_ops=yA.ops_table.dir.node,f.stream_ops=yA.ops_table.dir.stream,f.contents={}):DA.isFile(f.mode)?(f.node_ops=yA.ops_table.file.node,f.stream_ops=yA.ops_table.file.stream,f.usedBytes=0,f.contents=null):DA.isLink(f.mode)?(f.node_ops=yA.ops_table.link.node,f.stream_ops=yA.ops_table.link.stream):DA.isChrdev(f.mode)&&(f.node_ops=yA.ops_table.chrdev.node,f.stream_ops=yA.ops_table.chrdev.stream),f.timestamp=Date.now(),A&&(A.contents[e]=f),f},getFileDataAsRegularArray:function(A){if(A.contents&&A.contents.subarray){for(var e=[],i=0;iA.contents.length&&(A.contents=yA.getFileDataAsRegularArray(A),A.usedBytes=A.contents.length),!A.contents||A.contents.subarray){var i=A.contents?A.contents.length:0;if(i>=e)return;e=Math.max(e,i*(i<1048576?2:1.125)|0),0!=i&&(e=Math.max(e,256));var r=A.contents;return A.contents=new Uint8Array(e),void(A.usedBytes>0&&A.contents.set(r.subarray(0,A.usedBytes),0))}for(!A.contents&&e>0&&(A.contents=[]);A.contents.lengthe)A.contents.length=e;else for(;A.contents.length=A.node.usedBytes)return 0;var n=Math.min(A.node.usedBytes-f,r);if(B(n>=0),n>8&&a.subarray)e.set(a.subarray(f,f+n),i);else for(var l=0;l0||f+rn.timestamp)&&(f.push(i),r++)});var a=[];if(Object.keys(e.entries).forEach(function(i){e.entries[i];A.entries[i]||(a.push(i),r++)}),!r)return i(null);var n=0,l=(\"remote\"===A.type?A.db:e.db).transaction([WA.DB_STORE_NAME],\"readwrite\"),t=l.objectStore(WA.DB_STORE_NAME);function c(A){return A?c.errored?void 0:(c.errored=!0,i(A)):++n>=r?i(null):void 0}l.onerror=function(A){c(this.error),A.preventDefault()},f.sort().forEach(function(A){\"local\"===e.type?WA.loadRemoteEntry(t,A,function(e,i){if(e)return c(e);WA.storeLocalEntry(A,i,c)}):WA.loadLocalEntry(A,function(e,i){if(e)return c(e);WA.storeRemoteEntry(t,A,i,c)})}),a.sort().reverse().forEach(function(A){\"local\"===e.type?WA.removeLocalEntry(A,c):WA.removeRemoteEntry(t,A,c)})}},zA={isWindows:!1,staticInit:function(){zA.isWindows=!!e.platform.match(/^win/);var A=e.binding(\"constants\");A.fs&&(A=A.fs),zA.flagsForNodeMap={1024:A.O_APPEND,64:A.O_CREAT,128:A.O_EXCL,0:A.O_RDONLY,2:A.O_RDWR,4096:A.O_SYNC,512:A.O_TRUNC,1:A.O_WRONLY}},bufferFrom:function(A){return r.alloc?r.from(A):new r(A)},mount:function(A){return B(s),zA.createNode(null,\"/\",zA.getMode(A.opts.root),0)},createNode:function(A,e,i,r){if(!DA.isDir(i)&&!DA.isFile(i)&&!DA.isLink(i))throw new DA.ErrnoError(IA.EINVAL);var f=DA.createNode(A,e,i);return f.node_ops=zA.node_ops,f.stream_ops=zA.stream_ops,f},getMode:function(A){var e;try{e=SA.lstatSync(A),zA.isWindows&&(e.mode=e.mode|(292&e.mode)>>2)}catch(A){if(!A.code)throw A;throw new DA.ErrnoError(IA[A.code])}return e.mode},realPath:function(A){for(var e=[];A.parent!==A;)e.push(A.name),A=A.parent;return e.push(A.mount.opts.root),e.reverse(),QA.join.apply(null,e)},flagsForNode:function(A){A&=-2097153,A&=-2049,A&=-32769,A&=-524289;var e=0;for(var i in zA.flagsForNodeMap)A&i&&(e|=zA.flagsForNodeMap[i],A^=i);if(A)throw new DA.ErrnoError(IA.EINVAL);return e},node_ops:{getattr:function(A){var e,i=zA.realPath(A);try{e=SA.lstatSync(i)}catch(A){if(!A.code)throw A;throw new DA.ErrnoError(IA[A.code])}return zA.isWindows&&!e.blksize&&(e.blksize=4096),zA.isWindows&&!e.blocks&&(e.blocks=(e.size+e.blksize-1)/e.blksize|0),{dev:e.dev,ino:e.ino,mode:e.mode,nlink:e.nlink,uid:e.uid,gid:e.gid,rdev:e.rdev,size:e.size,atime:e.atime,mtime:e.mtime,ctime:e.ctime,blksize:e.blksize,blocks:e.blocks}},setattr:function(A,e){var i=zA.realPath(A);try{if(void 0!==e.mode&&(SA.chmodSync(i,e.mode),A.mode=e.mode),void 0!==e.timestamp){var r=new Date(e.timestamp);SA.utimesSync(i,r,r)}void 0!==e.size&&SA.truncateSync(i,e.size)}catch(A){if(!A.code)throw A;throw new DA.ErrnoError(IA[A.code])}},lookup:function(A,e){var i=QA.join2(zA.realPath(A),e),r=zA.getMode(i);return zA.createNode(A,e,r)},mknod:function(A,e,i,r){var f=zA.createNode(A,e,i,r),a=zA.realPath(f);try{DA.isDir(f.mode)?SA.mkdirSync(a,f.mode):SA.writeFileSync(a,\"\",{mode:f.mode})}catch(A){if(!A.code)throw A;throw new DA.ErrnoError(IA[A.code])}return f},rename:function(A,e,i){var r=zA.realPath(A),f=QA.join2(zA.realPath(e),i);try{SA.renameSync(r,f)}catch(A){if(!A.code)throw A;throw new DA.ErrnoError(IA[A.code])}},unlink:function(A,e){var i=QA.join2(zA.realPath(A),e);try{SA.unlinkSync(i)}catch(A){if(!A.code)throw A;throw new DA.ErrnoError(IA[A.code])}},rmdir:function(A,e){var i=QA.join2(zA.realPath(A),e);try{SA.rmdirSync(i)}catch(A){if(!A.code)throw A;throw new DA.ErrnoError(IA[A.code])}},readdir:function(A){var e=zA.realPath(A);try{return SA.readdirSync(e)}catch(A){if(!A.code)throw A;throw new DA.ErrnoError(IA[A.code])}},symlink:function(A,e,i){var r=QA.join2(zA.realPath(A),e);try{SA.symlinkSync(i,r)}catch(A){if(!A.code)throw A;throw new DA.ErrnoError(IA[A.code])}},readlink:function(A){var e=zA.realPath(A);try{return e=SA.readlinkSync(e),e=OA.relative(OA.resolve(A.mount.opts.root),e)}catch(A){if(!A.code)throw A;throw new DA.ErrnoError(IA[A.code])}}},stream_ops:{open:function(A){var e=zA.realPath(A.node);try{DA.isFile(A.node.mode)&&(A.nfd=SA.openSync(e,zA.flagsForNode(A.flags)))}catch(A){if(!A.code)throw A;throw new DA.ErrnoError(IA[A.code])}},close:function(A){try{DA.isFile(A.node.mode)&&A.nfd&&SA.closeSync(A.nfd)}catch(A){if(!A.code)throw A;throw new DA.ErrnoError(IA[A.code])}},read:function(A,e,i,r,f){if(0===r)return 0;try{return SA.readSync(A.nfd,zA.bufferFrom(e.buffer),i,r,f)}catch(A){throw new DA.ErrnoError(IA[A.code])}},write:function(A,e,i,r,f){try{return SA.writeSync(A.nfd,zA.bufferFrom(e.buffer),i,r,f)}catch(A){throw new DA.ErrnoError(IA[A.code])}},llseek:function(A,e,i){var r=e;if(1===i)r+=A.position;else if(2===i&&DA.isFile(A.node.mode))try{r+=SA.fstatSync(A.nfd).size}catch(A){throw new DA.ErrnoError(IA[A.code])}if(r<0)throw new DA.ErrnoError(IA.EINVAL);return r}}},YA={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function(A){B(c),YA.reader||(YA.reader=new FileReaderSync);var e=YA.createNode(null,\"/\",YA.DIR_MODE,0),i={};function r(A){for(var r=A.split(\"/\"),f=e,a=0;a=A.node.size)return 0;var a=A.node.contents.slice(f,f+r),n=YA.reader.readAsArrayBuffer(a);return e.set(new Uint8Array(n),i),a.size},write:function(A,e,i,r,f){throw new DA.ErrnoError(IA.EIO)},llseek:function(A,e,i){var r=e;if(1===i?r+=A.position:2===i&&DA.isFile(A.node.mode)&&(r+=A.node.size),r<0)throw new DA.ErrnoError(IA.EINVAL);return r}}};N+=16,N+=16,N+=16;var DA={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(A){if(!(A instanceof DA.ErrnoError))throw A+\" : \"+z();return ZA(A.errno)},lookupPath:function(A,e){if(e=e||{},!(A=QA.resolve(DA.cwd(),A)))return{path:\"\",node:null};var i={follow_mount:!0,recurse_count:0};for(var r in i)void 0===e[r]&&(e[r]=i[r]);if(e.recurse_count>8)throw new DA.ErrnoError(IA.ELOOP);for(var f=QA.normalizeArray(A.split(\"/\").filter(function(A){return!!A}),!1),a=DA.root,n=\"/\",l=0;l40)throw new DA.ErrnoError(IA.ELOOP)}}return{path:n,node:a}},getPath:function(A){for(var e;;){if(DA.isRoot(A)){var i=A.mount.mountpoint;return e?\"/\"!==i[i.length-1]?i+\"/\"+e:i+e:i}e=e?A.name+\"/\"+e:A.name,A=A.parent}},hashName:function(A,e){for(var i=0,r=0;r>>0)%DA.nameTable.length},hashAddNode:function(A){var e=DA.hashName(A.parent.id,A.name);A.name_next=DA.nameTable[e],DA.nameTable[e]=A},hashRemoveNode:function(A){var e=DA.hashName(A.parent.id,A.name);if(DA.nameTable[e]===A)DA.nameTable[e]=A.name_next;else for(var i=DA.nameTable[e];i;){if(i.name_next===A){i.name_next=A.name_next;break}i=i.name_next}},lookupNode:function(A,e){var i=DA.mayLookup(A);if(i)throw new DA.ErrnoError(i,A);for(var r=DA.hashName(A.id,e),f=DA.nameTable[r];f;f=f.name_next){var a=f.name;if(f.parent.id===A.id&&a===e)return f}return DA.lookup(A,e)},createNode:function(A,e,i,r){if(!DA.FSNode){DA.FSNode=function(A,e,i,r){A||(A=this),this.parent=A,this.mount=A.mount,this.mounted=null,this.id=DA.nextInode++,this.name=e,this.mode=i,this.node_ops={},this.stream_ops={},this.rdev=r},DA.FSNode.prototype={};Object.defineProperties(DA.FSNode.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(A){A?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(A){A?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return DA.isDir(this.mode)}},isDevice:{get:function(){return DA.isChrdev(this.mode)}}})}var f=new DA.FSNode(A,e,i,r);return DA.hashAddNode(f),f},destroyNode:function(A){DA.hashRemoveNode(A)},isRoot:function(A){return A===A.parent},isMountpoint:function(A){return!!A.mounted},isFile:function(A){return 32768==(61440&A)},isDir:function(A){return 16384==(61440&A)},isLink:function(A){return 40960==(61440&A)},isChrdev:function(A){return 8192==(61440&A)},isBlkdev:function(A){return 24576==(61440&A)},isFIFO:function(A){return 4096==(61440&A)},isSocket:function(A){return 49152==(49152&A)},flagModes:{r:0,rs:1052672,\"r+\":2,w:577,wx:705,xw:705,\"w+\":578,\"wx+\":706,\"xw+\":706,a:1089,ax:1217,xa:1217,\"a+\":1090,\"ax+\":1218,\"xa+\":1218},modeStringToFlags:function(A){var e=DA.flagModes[A];if(void 0===e)throw new Error(\"Unknown file open mode: \"+A);return e},flagsToPermissionString:function(A){var e=[\"r\",\"w\",\"rw\"][3&A];return 512&A&&(e+=\"w\"),e},nodePermissions:function(A,e){return DA.ignorePermissions?0:(-1===e.indexOf(\"r\")||292&A.mode)&&(-1===e.indexOf(\"w\")||146&A.mode)&&(-1===e.indexOf(\"x\")||73&A.mode)?0:IA.EACCES},mayLookup:function(A){var e=DA.nodePermissions(A,\"x\");return e||(A.node_ops.lookup?0:IA.EACCES)},mayCreate:function(A,e){try{DA.lookupNode(A,e);return IA.EEXIST}catch(A){}return DA.nodePermissions(A,\"wx\")},mayDelete:function(A,e,i){var r;try{r=DA.lookupNode(A,e)}catch(A){return A.errno}var f=DA.nodePermissions(A,\"wx\");if(f)return f;if(i){if(!DA.isDir(r.mode))return IA.ENOTDIR;if(DA.isRoot(r)||DA.getPath(r)===DA.cwd())return IA.EBUSY}else if(DA.isDir(r.mode))return IA.EISDIR;return 0},mayOpen:function(A,e){return A?DA.isLink(A.mode)?IA.ELOOP:DA.isDir(A.mode)&&(\"r\"!==DA.flagsToPermissionString(e)||512&e)?IA.EISDIR:DA.nodePermissions(A,DA.flagsToPermissionString(e)):IA.ENOENT},MAX_OPEN_FDS:4096,nextfd:function(A,e){A=A||0,e=e||DA.MAX_OPEN_FDS;for(var i=A;i<=e;i++)if(!DA.streams[i])return i;throw new DA.ErrnoError(IA.EMFILE)},getStream:function(A){return DA.streams[A]},createStream:function(A,e,i){DA.FSStream||(DA.FSStream=function(){},DA.FSStream.prototype={},Object.defineProperties(DA.FSStream.prototype,{object:{get:function(){return this.node},set:function(A){this.node=A}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}}));var r=new DA.FSStream;for(var f in A)r[f]=A[f];A=r;var a=DA.nextfd(e,i);return A.fd=a,DA.streams[a]=A,A},closeStream:function(A){DA.streams[A]=null},chrdev_stream_ops:{open:function(A){var e=DA.getDevice(A.node.rdev);A.stream_ops=e.stream_ops,A.stream_ops.open&&A.stream_ops.open(A)},llseek:function(){throw new DA.ErrnoError(IA.ESPIPE)}},major:function(A){return A>>8},minor:function(A){return 255&A},makedev:function(A,e){return A<<8|e},registerDevice:function(A,e){DA.devices[A]={stream_ops:e}},getDevice:function(A){return DA.devices[A]},getMounts:function(A){for(var e=[],i=[A];i.length;){var r=i.pop();e.push(r),i.push.apply(i,r.mounts)}return e},syncfs:function(A,e){\"function\"==typeof A&&(e=A,A=!1),DA.syncFSRequests++,DA.syncFSRequests>1&&console.log(\"warning: \"+DA.syncFSRequests+\" FS.syncfs operations in flight at once, probably just doing extra work\");var i=DA.getMounts(DA.root.mount),r=0;function f(A){return B(DA.syncFSRequests>0),DA.syncFSRequests--,e(A)}function a(A){if(A)return a.errored?void 0:(a.errored=!0,f(A));++r>=i.length&&f(null)}i.forEach(function(e){if(!e.type.syncfs)return a(null);e.type.syncfs(e,A,a)})},mount:function(A,e,i){var r,f=\"/\"===i,a=!i;if(f&&DA.root)throw new DA.ErrnoError(IA.EBUSY);if(!f&&!a){var n=DA.lookupPath(i,{follow_mount:!1});if(i=n.path,r=n.node,DA.isMountpoint(r))throw new DA.ErrnoError(IA.EBUSY);if(!DA.isDir(r.mode))throw new DA.ErrnoError(IA.ENOTDIR)}var l={type:A,opts:e,mountpoint:i,mounts:[]},t=A.mount(l);return t.mount=l,l.root=t,f?DA.root=t:r&&(r.mounted=l,r.mount&&r.mount.mounts.push(l)),t},unmount:function(A){var e=DA.lookupPath(A,{follow_mount:!1});if(!DA.isMountpoint(e.node))throw new DA.ErrnoError(IA.EINVAL);var i=e.node,r=i.mounted,f=DA.getMounts(r);Object.keys(DA.nameTable).forEach(function(A){for(var e=DA.nameTable[A];e;){var i=e.name_next;-1!==f.indexOf(e.mount)&&DA.destroyNode(e),e=i}}),i.mounted=null;var a=i.mount.mounts.indexOf(r);B(-1!==a),i.mount.mounts.splice(a,1)},lookup:function(A,e){return A.node_ops.lookup(A,e)},mknod:function(A,e,i){var r=DA.lookupPath(A,{parent:!0}).node,f=QA.basename(A);if(!f||\".\"===f||\"..\"===f)throw new DA.ErrnoError(IA.EINVAL);var a=DA.mayCreate(r,f);if(a)throw new DA.ErrnoError(a);if(!r.node_ops.mknod)throw new DA.ErrnoError(IA.EPERM);return r.node_ops.mknod(r,f,e,i)},create:function(A,e){return e=void 0!==e?e:438,e&=4095,e|=32768,DA.mknod(A,e,0)},mkdir:function(A,e){return e=void 0!==e?e:511,e&=1023,e|=16384,DA.mknod(A,e,0)},mkdirTree:function(A,e){for(var i=A.split(\"/\"),r=\"\",f=0;f\"}))},staticInit:function(){DA.ensureErrnoError(),DA.nameTable=new Array(4096),DA.mount(yA,{},\"/\"),DA.createDefaultDirectories(),DA.createDefaultDevices(),DA.createSpecialDirectories(),DA.filesystems={MEMFS:yA,IDBFS:WA,NODEFS:zA,WORKERFS:YA}},init:function(e,i,r){B(!DA.init.initialized,\"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)\"),DA.init.initialized=!0,DA.ensureErrnoError(),A.stdin=e||A.stdin,A.stdout=i||A.stdout,A.stderr=r||A.stderr,DA.createStandardStreams()},quit:function(){DA.init.initialized=!1;var e=A._fflush;e&&e(0);for(var i=0;ithis.length-1||A<0)){var e=A%this.chunkSize,i=A/this.chunkSize|0;return this.getter(i)[e]}},a.prototype.setDataGetter=function(A){this.getter=A},a.prototype.cacheLength=function(){var A=new XMLHttpRequest;if(A.open(\"HEAD\",i,!1),A.send(null),!(A.status>=200&&A.status<300||304===A.status))throw new Error(\"Couldn\\'t load \"+i+\". Status: \"+A.status);var e,r=Number(A.getResponseHeader(\"Content-length\")),f=(e=A.getResponseHeader(\"Accept-Ranges\"))&&\"bytes\"===e,a=(e=A.getResponseHeader(\"Content-Encoding\"))&&\"gzip\"===e,n=1048576;f||(n=r);var l=this;l.setDataGetter(function(A){var e=A*n,f=(A+1)*n-1;if(f=Math.min(f,r-1),void 0===l.chunks[A]&&(l.chunks[A]=function(A,e){if(A>e)throw new Error(\"invalid range (\"+A+\", \"+e+\") or no bytes requested!\");if(e>r-1)throw new Error(\"only \"+r+\" bytes available! programmer error!\");var f=new XMLHttpRequest;if(f.open(\"GET\",i,!1),r!==n&&f.setRequestHeader(\"Range\",\"bytes=\"+A+\"-\"+e),\"undefined\"!=typeof Uint8Array&&(f.responseType=\"arraybuffer\"),f.overrideMimeType&&f.overrideMimeType(\"text/plain; charset=x-user-defined\"),f.send(null),!(f.status>=200&&f.status<300||304===f.status))throw new Error(\"Couldn\\'t load \"+i+\". Status: \"+f.status);return void 0!==f.response?new Uint8Array(f.response||[]):_A(f.responseText||\"\",!0)}(e,f)),void 0===l.chunks[A])throw new Error(\"doXHR failed!\");return l.chunks[A]}),!a&&r||(n=r=1,r=this.getter(0).length,n=r,console.log(\"LazyFiles on gzip forces download of the whole file when length is accessed\")),this._length=r,this._chunkSize=n,this.lengthKnown=!0},\"undefined\"!=typeof XMLHttpRequest){if(!c)throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";var n=new a;Object.defineProperties(n,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var l={isDevice:!1,contents:n}}else l={isDevice:!1,url:i};var t=DA.createFile(A,e,l,r,f);l.contents?t.contents=l.contents:l.url&&(t.contents=null,t.url=l.url),Object.defineProperties(t,{usedBytes:{get:function(){return this.contents.length}}});var s={};return Object.keys(t.stream_ops).forEach(function(A){var e=t.stream_ops[A];s[A]=function(){if(!DA.forceLoadFile(t))throw new DA.ErrnoError(IA.EIO);return e.apply(null,arguments)}}),s.read=function(A,e,i,r,f){if(!DA.forceLoadFile(t))throw new DA.ErrnoError(IA.EIO);var a=A.node.contents;if(f>=a.length)return 0;var n=Math.min(a.length-f,r);if(B(n>=0),a.slice)for(var l=0;l>2]=r.dev,V[i+4>>2]=0,V[i+8>>2]=r.ino,V[i+12>>2]=r.mode,V[i+16>>2]=r.nlink,V[i+20>>2]=r.uid,V[i+24>>2]=r.gid,V[i+28>>2]=r.rdev,V[i+32>>2]=0,V[i+36>>2]=r.size,V[i+40>>2]=4096,V[i+44>>2]=r.blocks,V[i+48>>2]=r.atime.getTime()/1e3|0,V[i+52>>2]=0,V[i+56>>2]=r.mtime.getTime()/1e3|0,V[i+60>>2]=0,V[i+64>>2]=r.ctime.getTime()/1e3|0,V[i+68>>2]=0,V[i+72>>2]=r.ino,0},doMsync:function(A,e,i,r){var f=new Uint8Array(M.subarray(A,A+i));DA.msync(e,f,0,i,r)},doMkdir:function(A,e){return\"/\"===(A=QA.normalize(A))[A.length-1]&&(A=A.substr(0,A.length-1)),DA.mkdir(A,e,0),0},doMknod:function(A,e,i){switch(61440&e){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-IA.EINVAL}return DA.mknod(A,e,i),0},doReadlink:function(A,e,i){if(i<=0)return-IA.EINVAL;var r=DA.readlink(A),f=Math.min(i,W(r)),a=D[e+f];return y(r,e,i+1),D[e+f]=a,f},doAccess:function(A,e){if(-8&e)return-IA.EINVAL;var i;i=DA.lookupPath(A,{follow:!0}).node;var r=\"\";return 4&e&&(r+=\"r\"),2&e&&(r+=\"w\"),1&e&&(r+=\"x\"),r&&DA.nodePermissions(i,r)?-IA.EACCES:0},doDup:function(A,e,i){var r=DA.getStream(i);return r&&DA.close(r),DA.open(A,e,0,i,i).fd},doReadv:function(A,e,i,r){for(var f=0,a=0;a>2],l=V[e+(8*a+4)>>2],t=DA.read(A,D,n,l,r);if(t<0)return-1;if(f+=t,t>2],l=V[e+(8*a+4)>>2],t=DA.write(A,D,n,l,r);if(t<0)return-1;f+=t}return f},varargs:0,get:function(A){return MA.varargs+=4,V[MA.varargs-4>>2]},getStr:function(){return Z(MA.get())},getStreamFromFD:function(){var A=DA.getStream(MA.get());if(!A)throw new DA.ErrnoError(IA.EBADF);return A},getSocketFromFD:function(){var A=SOCKFS.getSocket(MA.get());if(!A)throw new DA.ErrnoError(IA.EBADF);return A},getSocketAddress:function(A){var e=MA.get(),i=MA.get();if(A&&0===e)return null;var r=__read_sockaddr(e,i);if(r.errno)throw new DA.ErrnoError(r.errno);return r.addr=DNS.lookup_addr(r.addr)||r.addr,r},get64:function(){var A=MA.get(),e=MA.get();return B(A>=0?0===e:-1===e),A},getZero:function(){B(0===MA.get())}};var FA={ppid:1,pid:42,sid:42,pgid:42};var VA=function(A,e,i,r){var f,a;\"number\"==typeof A?(f=!0,a=A):(f=!1,a=A.length);var n,l=\"string\"==typeof e?e:null;if(n=i==I?r:[\"function\"==typeof fe?fe:w,le,w,k][void 0===i?C:i](Math.max(a,l?1:e.length)),f){var t;for(r=n,B(0==(3&n)),t=n+(-4&a);r>2]=0;for(t=n+a;r>0]=0;return n}if(\"i8\"===l)return A.subarray||A.slice?M.set(A,n):M.set(new Uint8Array(A),n),n;for(var c,s,b,u=0;u>2],i=V[r>>2]):(NA.called=!0,RA.USER=RA.LOGNAME=\"web_user\",RA.PATH=\"/\",RA.PWD=\"/\",RA.HOME=\"/home/web_user\",RA.LANG=\"C.UTF-8\",RA._=A.thisProgram,i=w(1024),r=w(256),V[r>>2]=i,V[pA>>2]=r);var f=[],a=0;for(var n in e)if(\"string\"==typeof e[n]){var l=n+\"=\"+e[n];f.push(l),a+=l.length}if(a>1024)throw new Error(\"Environment size exceeded TOTAL_ENV_SIZE!\");for(var t=0;t>2]=i,i+=l.length+1}V[r+4*f.length>>2]=0}N+=16;var RA={};var XA=lA,HA=aA,UA=aA,xA=tA,TA=cA,jA=nA,PA=nA;if(EA=s?function(){var A=e.hrtime();return 1e3*A[0]+A[1]/1e6}:\"undefined\"!=typeof dateNow?dateNow:\"object\"==typeof self&&self.performance&&\"function\"==typeof self.performance.now?function(){return self.performance.now()}:\"object\"==typeof performance&&\"function\"==typeof performance.now?function(){return performance.now()}:Date.now,DA.staticInit(),$.unshift(function(){A.noFSInit||DA.init.initialized||DA.init()}),AA.push(function(){DA.ignorePermissions=!1}),eA.push(function(){DA.quit()}),$.unshift(function(){LA.init()}),eA.push(function(){LA.shutdown()}),s){var SA=i(0),OA=i(1);zA.staticInit()}NA(RA),T=w(4),X=H=o(N),x=o(U=X+O),V[T>>2]=x,R=!0;var KA=!1;function _A(A,e,i){var r=i>0?i:W(A)+1,f=new Array(r),a=L(A,f,0,f.length);return e&&(f.length=a),f}function qA(A){for(var e=[],i=0;i255&&(KA&&B(!1,\"Character code \"+r+\" (\"+String.fromCharCode(r)+\") at offset \"+i+\" not in 0x00-0xFF.\"),r&=255),e.push(String.fromCharCode(r))}return e.join(\"\")}var $A=\"function\"==typeof atob?atob:function(A){var e,i,r,f,a,n,l=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",t=\"\",c=0;A=A.replace(/[^A-Za-z0-9\\\\+\\\\/\\\\=]/g,\"\");do{e=l.indexOf(A.charAt(c++))<<2|(f=l.indexOf(A.charAt(c++)))>>4,i=(15&f)<<4|(a=l.indexOf(A.charAt(c++)))>>2,r=(3&a)<<6|(n=l.indexOf(A.charAt(c++))),t+=String.fromCharCode(e),64!==a&&(t+=String.fromCharCode(i)),64!==n&&(t+=String.fromCharCode(r))}while(c>2]=i.position,i.getdents&&0===n&&0===a&&(i.getdents=null),0}catch(A){return void 0!==DA&&A instanceof DA.ErrnoError||de(A),-A.errno}},___syscall145:function(A,e){MA.varargs=e;try{var i=MA.getStreamFromFD(),r=MA.get(),f=MA.get();return MA.doReadv(i,r,f)}catch(A){return void 0!==DA&&A instanceof DA.ErrnoError||de(A),-A.errno}},___syscall146:function(A,e){MA.varargs=e;try{var i=MA.getStreamFromFD(),r=MA.get(),f=MA.get();return MA.doWritev(i,r,f)}catch(A){return void 0!==DA&&A instanceof DA.ErrnoError||de(A),-A.errno}},___syscall192:function(A,e){MA.varargs=e;try{var i,r=MA.get(),f=MA.get(),a=MA.get(),n=MA.get(),l=MA.get(),t=MA.get();t<<=12;var c=!1;if(-1===l){if(!(i=ae(j,f)))return-IA.ENOMEM;ne(i,0,f),c=!0}else{var s=DA.getStream(l);if(!s)return-IA.EBADF;var b=DA.mmap(s,M,r,f,t,a,n);i=b.ptr,c=b.allocated}return MA.mappings[i]={malloc:i,len:f,allocated:c,fd:l,flags:n},i}catch(A){return void 0!==DA&&A instanceof DA.ErrnoError||de(A),-A.errno}},___syscall195:function(A,e){MA.varargs=e;try{var i=MA.getStr(),r=MA.get();return MA.doStat(DA.stat,i,r)}catch(A){return void 0!==DA&&A instanceof DA.ErrnoError||de(A),-A.errno}},___syscall197:function(A,e){MA.varargs=e;try{var i=MA.getStreamFromFD(),r=MA.get();return MA.doStat(DA.stat,i.path,r)}catch(A){return void 0!==DA&&A instanceof DA.ErrnoError||de(A),-A.errno}},___syscall20:function(A,e){MA.varargs=e;try{return FA.pid}catch(A){return void 0!==DA&&A instanceof DA.ErrnoError||de(A),-A.errno}},___syscall221:function(A,e){MA.varargs=e;try{var i=MA.getStreamFromFD();switch(MA.get()){case 0:return(r=MA.get())<0?-IA.EINVAL:DA.open(i.path,i.flags,0,r).fd;case 1:case 2:return 0;case 3:return i.flags;case 4:var r=MA.get();return i.flags|=r,0;case 12:case 12:return r=MA.get(),F[r+0>>1]=2,0;case 13:case 14:case 13:case 14:return 0;case 16:case 8:return-IA.EINVAL;case 9:return ZA(IA.EINVAL),-1;default:return-IA.EINVAL}}catch(A){return void 0!==DA&&A instanceof DA.ErrnoError||de(A),-A.errno}},___syscall3:function(A,e){MA.varargs=e;try{var i=MA.getStreamFromFD(),r=MA.get(),f=MA.get();return DA.read(i,D,r,f)}catch(A){return void 0!==DA&&A instanceof DA.ErrnoError||de(A),-A.errno}},___syscall33:function(A,e){MA.varargs=e;try{var i=MA.getStr(),r=MA.get();return MA.doAccess(i,r)}catch(A){return void 0!==DA&&A instanceof DA.ErrnoError||de(A),-A.errno}},___syscall5:function(A,e){MA.varargs=e;try{var i=MA.getStr(),r=MA.get(),f=MA.get();return DA.open(i,r,f).fd}catch(A){return void 0!==DA&&A instanceof DA.ErrnoError||de(A),-A.errno}},___syscall54:function(A,e){MA.varargs=e;try{var i=MA.getStreamFromFD(),r=MA.get();switch(r){case 21509:case 21505:return i.tty?0:-IA.ENOTTY;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return i.tty?0:-IA.ENOTTY;case 21519:if(!i.tty)return-IA.ENOTTY;var f=MA.get();return V[f>>2]=0,0;case 21520:return i.tty?-IA.EINVAL:-IA.ENOTTY;case 21531:return f=MA.get(),DA.ioctl(i,r,f);case 21523:return i.tty?0:-IA.ENOTTY;default:de(\"bad ioctl syscall \"+r)}}catch(A){return void 0!==DA&&A instanceof DA.ErrnoError||de(A),-A.errno}},___syscall6:function(A,e){MA.varargs=e;try{var i=MA.getStreamFromFD();return DA.close(i),0}catch(A){return void 0!==DA&&A instanceof DA.ErrnoError||de(A),-A.errno}},___syscall91:function(A,e){MA.varargs=e;try{var i=MA.get(),r=MA.get(),f=MA.mappings[i];if(!f)return 0;if(r===f.len){var a=DA.getStream(f.fd);MA.doMsync(i,a,r,f.flags),DA.munmap(a),MA.mappings[i]=null,f.allocated&&re(f.malloc)}return 0}catch(A){return void 0!==DA&&A instanceof DA.ErrnoError||de(A),-A.errno}},___unlock:function(){},__exit:JA,_clock_gettime:GA,_emscripten_asm_const_iii:function(A,e,i){return gA[A](e,i)},_emscripten_get_now:EA,_emscripten_get_now_is_monotonic:CA,_emscripten_memcpy_big:function(A,e,i){return M.set(M.subarray(e,e+i),A),A},_exit:function(A){JA(A)},_getenv:function A(e){return 0===e?0:(e=Z(e),RA.hasOwnProperty(e)?(A.ret&&re(A.ret),A.ret=(i=RA[e],r=W(i)+1,(f=fe(r))&&L(i,D,f,r),f),A.ret):0);var i,r,f},_gettimeofday:function(A){var e=Date.now();return V[A>>2]=e/1e3|0,V[A+4>>2]=e%1e3*1e3|0,0},_llvm_ceil_f64:XA,_llvm_fabs_f32:HA,_llvm_fabs_f64:UA,_llvm_floor_f64:xA,_llvm_pow_f64:TA,_llvm_sqrt_f32:jA,_llvm_sqrt_f64:PA,_llvm_trap:function(){de(\"trap!\")},_longjmp:function(e,i){throw A.setThrew(e,i||1),\"longjmp\"},_setenv:function(A,e,i){if(0===A)return ZA(IA.EINVAL),-1;var r=Z(A),f=Z(e);return\"\"===r||-1!==r.indexOf(\"=\")?(ZA(IA.EINVAL),-1):RA.hasOwnProperty(r)&&!i?0:(RA[r]=f,NA(RA),0)},_time:function(A){var e=Date.now()/1e3|0;return A&&(V[A>>2]=e),e},_times:function(A){return 0!==A&&ne(A,0,16),0},DYNAMICTOP_PTR:T,tempDoublePtr:vA,ABORT:d,STACKTOP:H,STACK_MAX:U,cttz_i8:VA};var ee,ie=function(A,e,i){\"use asm\";var r=new A.Int8Array(i);var f=new A.Int16Array(i);var a=new A.Int32Array(i);var n=new A.Uint8Array(i);var l=new A.Uint16Array(i);var t=new A.Uint32Array(i);var c=new A.Float32Array(i);var s=new A.Float64Array(i);var b=e.DYNAMICTOP_PTR|0;var u=e.tempDoublePtr|0;var w=e.ABORT|0;var k=e.STACKTOP|0;var o=e.STACK_MAX|0;var h=e.cttz_i8|0;var d=0;var B=0;var g=0;var v=0;var E=A.NaN,C=A.Infinity;var I=0,Z=0,G=0,m=0,Q=0.0;var L=0;var y=A.Math.floor;var W=A.Math.abs;var z=A.Math.sqrt;var Y=A.Math.pow;var D=A.Math.cos;var M=A.Math.sin;var F=A.Math.tan;var V=A.Math.acos;var J=A.Math.asin;var p=A.Math.atan;var N=A.Math.atan2;var R=A.Math.exp;var X=A.Math.log;var H=A.Math.ceil;var U=A.Math.imul;var x=A.Math.min;var T=A.Math.max;var j=A.Math.clz32;var P=e.abort;var S=e.assert;var O=e.enlargeMemory;var K=e.getTotalMemory;var _=e.abortOnCannotGrowMemory;var q=e.invoke_d;var $=e.invoke_dddd;var AA=e.invoke_di;var eA=e.invoke_i;var iA=e.invoke_ii;var rA=e.invoke_iii;var fA=e.invoke_iiidd;var aA=e.invoke_iiii;var nA=e.invoke_iiiii;var lA=e.invoke_iiiiii;var tA=e.invoke_iiiiiii;var cA=e.invoke_iiiiiiiiiii;var sA=e.invoke_v;var bA=e.invoke_vi;var uA=e.invoke_vii;var wA=e.invoke_viii;var kA=e.invoke_viiiddi;var oA=e.invoke_viiii;var hA=e.invoke_viiiii;var dA=e.invoke_viiiiii;var BA=e.invoke_viiiiiiiii;var gA=e.___assert_fail;var vA=e.___buildEnvironment;var EA=e.___clock_gettime;var CA=e.___lock;var IA=e.___map_file;var ZA=e.___setErrNo;var GA=e.___syscall10;var mA=e.___syscall140;var QA=e.___syscall145;var LA=e.___syscall146;var yA=e.___syscall192;var WA=e.___syscall195;var zA=e.___syscall197;var YA=e.___syscall20;var DA=e.___syscall221;var MA=e.___syscall3;var FA=e.___syscall33;var VA=e.___syscall5;var JA=e.___syscall54;var pA=e.___syscall6;var NA=e.___syscall91;var RA=e.___unlock;var XA=e.__exit;var HA=e._clock_gettime;var UA=e._emscripten_asm_const_iii;var xA=e._emscripten_get_now;var TA=e._emscripten_get_now_is_monotonic;var jA=e._emscripten_memcpy_big;var PA=e._exit;var SA=e._getenv;var OA=e._gettimeofday;var KA=e._llvm_ceil_f64;var _A=e._llvm_fabs_f32;var qA=e._llvm_fabs_f64;var $A=e._llvm_floor_f64;var Ae=e._llvm_pow_f64;var ee=e._llvm_sqrt_f32;var ie=e._llvm_sqrt_f64;var re=e._llvm_trap;var fe=e._longjmp;var ae=e._setenv;var ne=e._time;var le=e._times;var te=0.0;function ce(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0;Z=k;k=k+16|0;c=Z+8|0;I=4;C=Q2(40)|0;a[C>>2]=0;h=Z;d=0;i=iA(29,A|0)|0;f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,C|0,I|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;A:do{if((n|0)!=1){d=0;E=iA(23,i<<3|0)|0;f=d;d=0;if((f|0)!=0&(B|0)!=0){i=y6(a[f>>2]|0,C|0,I|0)|0;if(!i)fe(f|0,B|0);L=B}else i=-1;if((i|0)!=1){if(!(r[194954]|0))g=0;else{d=0;i=eA(3)|0;f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,C|0,I|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){u=0;s=0;b=0;c=0;t=0;e=E;l=E;i=L;n=0;v=74;break}g=i}d=0;i=rA(97,A|0,110064)|0;f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,C|0,I|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)!=1){a[47323]=0;e:do{if(i|0?(t=r[i>>0]|0,t<<24>>24):0){l=i;f=t;n=0;while(1){t=l+1|0;if(!(f<<24>>24))break e;switch(f<<24>>24|0){case 99:{i=8;v=16;break}case 105:{i=18;v=16;break}case 109:{i=1;v=16;break}case 114:{i=4;v=16;break}case 115:{i=2;v=16;break}default:i=n}if((v|0)==16){v=0;i=n|i;a[47323]=i}l=t;f=r[t>>0]|0;n=i}}}while(0);if(e|0){d=0;aA(20,0,110068,c|0)|0;i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)==1){u=0;s=g;b=0;c=0;t=0;e=E;l=E;i=L;n=0;v=74;break}}d=0;o=rA(98,A|0,0)|0;i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)!=1){b=a[o+16>>2]|0;if(a[47323]&2|0){d=0;uA(26,a[15712]|0,b|0);i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)==1){u=0;s=g;b=0;c=0;t=o;e=E;l=E;i=L;n=0;v=74;break}}d=0;n=iA(25,A|0)|0;i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)!=1){u=0;while(1){if(!n)break;d=0;i=rA(99,A|0,n|0)|0;f=d;d=0;if((f|0)!=0&(B|0)!=0){l=y6(a[f>>2]|0,C|0,I|0)|0;if(!l)fe(f|0,B|0);L=B}else l=-1;if((l|0)==1){s=g;b=0;c=0;t=o;e=E;l=E;i=L;n=0;v=74;break A}t=u;while(1){if(!i)break;if(!((a[47134]|0)==2?(a[(a[i+16>>2]|0)+8>>2]|0)!=0:0))v=32;e:do{if((v|0)==32){v=0;do{if(r[194954]|0){s=a[i>>2]&3;c=(a[a[((s|0)==3?i:i+48|0)+40>>2]>>2]|0)>>>4;s=(a[a[((s|0)==2?i:i+-48|0)+40>>2]>>2]|0)>>>4;if(c>>>0>s>>>0){d=0;f=aA(34,g|0,s|0,c|0)|0;l=d;d=0;if((l|0)!=0&(B|0)!=0){e=y6(a[l>>2]|0,C|0,I|0)|0;if(!e)fe(l|0,B|0);L=B}else e=-1;if((e|0)==1){s=g;b=0;c=0;t=o;e=E;l=E;i=L;n=0;v=74;break A}if(f|0)break e;d=0;wA(64,g|0,s|0,c|0);f=d;d=0;if((f|0)!=0&(B|0)!=0){l=y6(a[f>>2]|0,C|0,I|0)|0;if(!l)fe(f|0,B|0);L=B}else l=-1;if((l|0)==1){s=g;b=0;c=0;t=o;e=E;l=E;i=L;n=0;v=74;break A}break}else{d=0;f=aA(34,g|0,c|0,s|0)|0;l=d;d=0;if((l|0)!=0&(B|0)!=0){e=y6(a[l>>2]|0,C|0,I|0)|0;if(!e)fe(l|0,B|0);L=B}else e=-1;if((e|0)==1){s=g;b=0;c=0;t=o;e=E;l=E;i=L;n=0;v=74;break A}if(f|0)break e;d=0;wA(64,g|0,c|0,s|0);f=d;d=0;if((f|0)!=0&(B|0)!=0){l=y6(a[f>>2]|0,C|0,I|0)|0;if(!l)fe(f|0,B|0);L=B}else l=-1;if((l|0)==1){s=g;b=0;c=0;t=o;e=E;l=E;i=L;n=0;v=74;break A}break}}}while(0);a[E+(t<<3)+4>>2]=i;d=0;e=iA(30,i|0)|0;f=d;d=0;if((f|0)!=0&(B|0)!=0){l=y6(a[f>>2]|0,C|0,I|0)|0;if(!l)fe(f|0,B|0);L=B}else l=-1;if((l|0)==1){s=g;b=0;c=0;t=o;e=E;l=E;i=L;n=0;v=74;break A}a[E+(t<<3)>>2]=e;t=t+1|0}}while(0);d=0;i=rA(100,A|0,i|0)|0;f=d;d=0;if((f|0)!=0&(B|0)!=0){l=y6(a[f>>2]|0,C|0,I|0)|0;if(!l)fe(f|0,B|0);L=B}else l=-1;if((l|0)==1){s=g;b=0;c=0;t=o;e=E;l=E;i=L;n=0;v=74;break A}}d=0;n=rA(86,A|0,n|0)|0;i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)==1){s=g;b=0;c=0;t=o;e=E;l=E;i=L;n=0;v=74;break A}u=t}d=0;c=iA(31,u<<3|0)|0;i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)!=1){d=0;oA(28,E|0,u|0,8,101);i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)!=1){n=a[b>>2]|0;d=0;bA(110,n+2|0);i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)!=1){t=a[b+16>>2]|0;e=t+(n*40|0)|0;t=t+((n+1|0)*40|0)|0;w=a[15712]|0;l=0;while(1){if((l|0)>=(u|0))break;if((l|0)>0?a[47323]&16|0:0){d=0;uA(26,w|0,b|0);i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)==1){s=g;b=c;t=o;e=E;l=E;i=L;n=w;v=74;break A}}i=a[E+(l<<3)+4>>2]|0;s=a[i>>2]&3;n=a[(a[(a[((s|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0;i=a[(a[(a[((s|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0;if((n|0)==(i|0)){d=0;oA(29,b|0,n|0,t|0,e|0);i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)==1){s=g;b=c;t=o;e=E;l=E;i=L;n=w;v=74;break A}}else{d=0;wA(65,b|0,i|0,t|0);i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)==1){s=g;b=c;t=o;e=E;l=E;i=L;n=w;v=74;break A}d=0;wA(65,b|0,n|0,e|0);i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)==1){s=g;b=c;t=o;e=E;l=E;i=L;n=w;v=74;break A}}d=0;i=aA(35,b|0,t|0,e|0)|0;f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,C|0,I|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){s=g;b=c;t=o;e=E;l=E;i=L;n=w;v=74;break A}if(i|0){s=g;b=c;t=o;e=E;l=E;break A}i=c+(l<<3)|0;d=0;oA(30,h|0,b|0,e|0,t|0);f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,C|0,I|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){s=g;b=c;t=o;e=E;l=E;i=L;n=w;v=74;break A}n=h;s=a[n+4>>2]|0;a[i>>2]=a[n>>2];a[i+4>>2]=s;d=0;bA(111,b|0);i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)==1){s=g;b=c;t=o;e=E;l=E;i=L;n=w;v=74;break A}l=l+1|0}d=0;sA(8);i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)!=1){d=0;i=iA(32,o|0)|0;f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,C|0,I|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)!=1){a[o+20>>2]=i;d=0;i=iA(33,o|0)|0;f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,C|0,I|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)!=1){a[o+24>>2]=i;d=0;wA(66,u|0,c|0,o|0);i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)!=1){C=L6(189296,1,C|0,I|0)|0;I=L;d=0;i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)!=1){s=g;b=c;t=o;e=E;l=E;i=0;n=w;v=74}else{s=g;b=c;t=o;e=E;l=E;i=L;n=w;v=74}}else{s=g;b=c;t=o;e=E;l=E;i=L;n=w;v=74}}else{s=g;b=c;t=o;e=E;l=E;i=L;n=w;v=74}}else{s=g;b=c;t=o;e=E;l=E;i=L;n=w;v=74}}else{s=g;b=c;t=o;e=E;l=E;i=L;n=w;v=74}}else{s=g;b=c;t=o;e=E;l=E;i=L;n=0;v=74}}else{s=g;b=c;t=o;e=E;l=E;i=L;n=0;v=74}}else{s=g;b=0;t=o;e=E;l=E;i=L;n=0;v=74}}else{u=0;s=g;b=0;c=0;t=o;e=E;l=E;i=L;n=0;v=74}}else{u=0;s=g;b=0;c=0;t=o;e=E;l=E;i=L;n=0;v=74}}else{u=0;s=g;b=0;c=0;t=0;e=E;l=E;i=L;n=0;v=74}}else{u=0;s=0;b=0;c=0;t=0;e=0;l=E;i=L;n=0;v=74}}else{u=0;s=0;b=0;c=0;t=0;e=0;l=0;i=L;n=0;v=74}}while(0);A:while(1){if((v|0)==74){v=0;if(i|0){w=n;continue}d=0;bA(112,t|0);i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)==1){G=n;f=l;w=e;o=t;h=c;g=b;E=s;v=u;i=L;n=G;l=f;e=w;t=o;c=h;b=g;s=E;u=v;v=74;continue}if(a[47323]&4|0){d=0;hA(8,n|0,t|0,u|0,b|0,e|0);i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)==1){f=n;w=l;o=e;h=t;g=c;E=b;G=s;v=u;i=L;n=f;l=w;e=o;t=h;c=g;b=E;s=G;u=v;v=74;continue}}d=0;dA(10,A|0,t|0,u|0,b|0,e|0,0);i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)==1){f=n;w=l;o=e;h=t;g=c;E=b;G=s;v=u;i=L;n=f;l=w;e=o;t=h;c=g;b=E;s=G;u=v;v=74;continue}w=n}if(!(r[194954]|0))i=0;else{d=0;bA(113,s|0);i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)==1){i=L;n=w;v=74;continue}i=0}while(1){if((i|0)>=(u|0))break;d=0;bA(105,a[b+(i<<3)+4>>2]|0);f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,C|0,I|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){i=L;n=w;v=74;continue A}i=i+1|0}d=0;bA(105,c|0);i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)==1){i=L;n=w;v=74;continue}d=0;bA(114,t|0);i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)==1){i=L;n=w;v=74;continue}d=0;bA(105,l|0);i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,C|0,I|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)==1){i=L;n=w;v=74}else break}L2(C|0);k=Z;return}function se(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0.0;h=k;k=k+64|0;o=h+32|0;w=h+16|0;t=h;c=h+48|0;Q3(110935,A)|0;Q3(110946,A)|0;b=e+16|0;u=t+8|0;l=c+4|0;n=0;while(1){if((n|0)>=(a[e>>2]|0))break;i=a[b>>2]|0;r=a[i+(n*40|0)+20>>2]|0;f=a[i+(n*40|0)+24>>2]|0;if((r|0)==(f|0)){ri(t,r);i=~~+s[t>>3];r=~~+s[u>>3]}else{ai(c,(a[r>>2]&1|0)==0?r:f,i+(n*40|0)|0);i=a[c>>2]|0;r=a[l>>2]|0}a[w>>2]=n;a[w+4>>2]=i;a[w+8>>2]=r;f3(A,110966,w)|0;n=n+1|0}f=e+4|0;r=e+20|0;i=0;while(1){if((i|0)>=(a[f>>2]|0))break;w=a[r>>2]|0;e=a[w+(i*24|0)+16>>2]|0;d=+s[w+(i*24|0)>>3];a[o>>2]=a[w+(i*24|0)+12>>2];a[o+4>>2]=e;s[o+8>>3]=d;f3(A,110986,o)|0;i=i+1|0}Q3(111008,A)|0;k=h;return}function be(A){A=A|0;var e=0.0,i=0.0,r=0,f=0;f=a[A>>2]&3;r=a[(a[((f|0)==3?A:A+48|0)+40>>2]|0)+16>>2]|0;A=a[(a[((f|0)==2?A:A+-48|0)+40>>2]|0)+16>>2]|0;e=+s[r+16>>3]-+s[A+16>>3];i=+s[r+24>>3]-+s[A+24>>3];return~~(i*i+e*e)|0}function ue(A,e){A=A|0;e=e|0;return(a[A>>2]|0)-(a[e>>2]|0)|0}function we(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0;u=k;k=k+32|0;c=u;ri(u+16|0,e);s=e+32|0;b=e+36|0;n=0;while(1){if((n|0)>=(a[s>>2]|0))break;l=a[(a[b>>2]|0)+(n<<2)>>2]|0;do{if(!(r[l+36>>0]|0)){t=a[l+20>>2]|0;if((t|0)==(e|0)){ei(c,l,a[l+24>>2]|0);Ci(A,f,l,0.0)|0;break}else{ei(c,l,t);Ci(A,i,l,0.0)|0;break}}}while(0);n=n+1|0}a[A>>2]=(a[A>>2]|0)+2;k=u;return}function ke(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,s=0;s=k;k=k+32|0;l=s;ri(s+16|0,e);t=e+32|0;c=e+36|0;f=0;while(1){if((f|0)>=(a[t>>2]|0))break;n=a[(a[c>>2]|0)+(f<<2)>>2]|0;r=a[n+20>>2]|0;if((r|0)==(e|0))r=a[n+24>>2]|0;ei(l,n,r);Ci(A,i,n,0.0)|0;f=f+1|0}a[A>>2]=(a[A>>2]|0)+1;a[i+24>>2]=e;a[i+20>>2]=e;k=s;return}function oe(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0.0,b=0.0,u=0,w=0.0,o=0.0,h=0,d=0,B=0,g=0,v=0,E=0,C=0.0,I=0.0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0;D=k;k=k+128|0;L=D+64|0;u=D+48|0;y=D+32|0;W=D+16|0;z=D;n=0;l=i;while(1){if(!l)break;n=n+1|0;l=a[l+8>>2]|0}Q=qF((n*56|0)+-112|0)|0;a[L+52>>2]=0;a[L+48>>2]=0;m=i+8|0;i=a[m>>2]|0;l=a[i+8>>2]|0;n=a[i+20>>2]|0;if(a[n>>2]&1)n=a[i+24>>2]|0;ei(u,i,n);t=i;h=i;o=0.0;w=+s[u>>3];G=0;b=0.0;I=+s[u+8>>3];while(1){Z=l+8|0;if(!(a[Z>>2]|0))break;E=ii(t,l)|0;Oa(e,E,a[h+12>>2]|0);g=h+36|0;v=l+36|0;if((r[g>>0]|0)==(r[v>>0]|0))if((a[Z>>2]|0)==(f|0)){ei(W,l,E);i=W;Y=12}else{t=h;i=G;c=I}else{ri(y,E);i=y;Y=12}if((Y|0)==12){Y=0;C=+s[i>>3];c=+s[i+8>>3];i=r[g>>0]|0;B=i<<24>>24==0;d=(h|0)==(a[m>>2]|0);if(B){if(!(r[v>>0]|0))i=0;else i=(a[l+20>>2]|0)==(E|0)?4:2;u=E+48|0;h=n+48|0;t=n+40|0;n=d?0:o>w?4:2}else{if(i<<24>>24==(r[v>>0]|0))i=0;else i=(a[l+20>>2]|0)==(E|0)?1:3;u=E+40|0;h=n+40|0;t=n+48|0;n=d?0:b>I?1:3}fi(L,B&1,+s[t>>3],+s[h>>3],+s[u>>3],n,i);h=G+1|0;n=Q+(G*56|0)|0;i=L;t=n+56|0;do{a[n>>2]=a[i>>2];n=n+4|0;i=i+4|0}while((n|0)<(t|0));if((r[g>>0]|0)!=(r[v>>0]|0)?(a[Z>>2]|0)==(f|0):0){ei(z,l,E);u=(r[v>>0]|0)==0;i=E+40|0;n=E+48|0;o=+s[(u?n:i)>>3];fi(L,u&1,+s[(u?i:n)>>3],o,o,u?w>C?4:2:I>c?1:3,0);u=G+2|0;n=Q+(h*56|0)|0;i=L;t=n+56|0;do{a[n>>2]=a[i>>2];n=n+4|0;i=i+4|0}while((n|0)<(t|0));n=E;t=l;o=w;w=C;i=u;b=I}else{n=E;t=l;o=w;w=C;i=h;b=I}}E=l;l=a[Z>>2]|0;h=t;G=i;I=c;t=E}l=W2(Q,G*56|0)|0;i=G+-1|0;n=0;while(1){if((n|0)>=(G|0))break;if((n|0)>0)a[l+(n*56|0)+48>>2]=l+((n+-1|0)*56|0);if((n|0)<(i|0)){Y=n+1|0;a[l+(n*56|0)+52>>2]=l+(Y*56|0);n=Y;continue}else{n=n+1|0;continue}}a[A>>2]=G;a[A+4>>2]=l;k=D;return}function he(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0;t=jk(25692,a[4581]|0)|0;c=A+8|0;l=0;while(1){if((l|0)>=(a[A>>2]|0))break;e=(a[c>>2]|0)+(l*72|0)|0;if(!(a[e>>2]&4)){while(1){i=a[(a[e+36>>2]|0)+8>>2]|0;if(!i)break;i=a[i+20>>2]|0;if(!i)break;if(!(a[i>>2]&1))e=i;else break}n=qF(40)|0;a[n+36>>2]=e;s[n+8>>3]=+s[e+40>>3];f=e;i=a[e>>2]|0;while(1){a[f>>2]=i|4;i=a[a[f+36>>2]>>2]|0;if(!i)break;r=a[i+24>>2]|0;if(!r)break;i=a[r>>2]|0;if(i&1|0)break;else f=r}s[n+16>>3]=+s[f+56>>3];Ke(t,n,+s[e+48>>3])}l=l+1|0}return t|0}function de(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0;t=jk(25692,a[4581]|0)|0;c=A+8|0;l=0;while(1){if((l|0)>=(a[A>>2]|0))break;e=(a[c>>2]|0)+(l*72|0)|0;if(!(a[e>>2]&2)){while(1){i=a[(a[e+36>>2]|0)+12>>2]|0;if(!i)break;i=a[i+20>>2]|0;if(!i)break;if(!(a[i>>2]&1))e=i;else break}n=qF(40)|0;a[n+36>>2]=e;s[n+8>>3]=+s[e+48>>3];f=e;i=a[e>>2]|0;while(1){a[f>>2]=i|2;i=a[(a[f+36>>2]|0)+4>>2]|0;if(!i)break;r=a[i+24>>2]|0;if(!r)break;i=a[r>>2]|0;if(i&1|0)break;else f=r}s[n+16>>3]=+s[f+64>>3];Ke(t,n,+s[e+40>>3])}l=l+1|0}return t|0}function Be(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0;c=i+20|0;t=i+24|0;i=0;while(1){if((i|0)>=(A|0))break;n=a[e+(i<<3)>>2]|0;l=a[e+(i<<3)+4>>2]|0;f=0;while(1){if((f|0)>=(n|0))break;s=l+(f*56|0)|0;Oe(Qe(a[((r[s>>0]|0)==0?c:t)>>2]|0,s)|0,s);f=f+1|0}i=i+1|0}return}function ge(A){A=A|0;var e=0,i=0;i=A+20|0;ye(a[i>>2]|0);e=A+24|0;ye(a[e>>2]|0);We(a[i>>2]|0);We(a[e>>2]|0);ze(a[i>>2]|0,A);ze(a[e>>2]|0,A);Ye(a[i>>2]|0);Ye(a[e>>2]|0);return}function ve(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0.0,Q=0.0,L=0.0,y=0,W=0.0;G=k;k=k+224|0;u=G+176|0;b=G+208|0;I=G+160|0;Z=G+128|0;c=G+96|0;g=G+64|0;v=G;w=G+32|0;E=v+8|0;s[E>>3]=1797693134862315708145274.0e284;s[v>>3]=1797693134862315708145274.0e284;C=v+24|0;s[C>>3]=-1797693134862315708145274.0e284;o=v+16|0;s[o>>3]=-1797693134862315708145274.0e284;Q3(110183,A)|0;a[u>>2]=10;a[u+4>>2]=10;f3(A,110589,u)|0;Q3(138265,A)|0;l=e+4|0;t=e+12|0;h=g+8|0;d=g+16|0;B=g+24|0;n=0;while(1){if((n|0)>=(a[l>>2]|0))break;y=(a[t>>2]|0)+(n*72|0)+40|0;a[g>>2]=a[y>>2];a[g+4>>2]=a[y+4>>2];a[g+8>>2]=a[y+8>>2];a[g+12>>2]=a[y+12>>2];a[g+16>>2]=a[y+16>>2];a[g+20>>2]=a[y+20>>2];a[g+24>>2]=a[y+24>>2];a[g+28>>2]=a[y+28>>2];L=+s[h>>3];Q=+s[d>>3];m=+s[B>>3];s[c>>3]=+s[g>>3];s[c+8>>3]=L;s[c+16>>3]=Q;s[c+24>>3]=m;f3(A,138284,c)|0;n=n+1|0}n=0;while(1){if((n|0)>=(i|0))break;y=a[f+(n<<3)+4>>2]|0;c=r+(n<<3)|0;a[b>>2]=a[c>>2];a[b+4>>2]=a[c+4>>2];a[u>>2]=a[v>>2];a[u+4>>2]=a[v+4>>2];a[u+8>>2]=a[v+8>>2];a[u+12>>2]=a[v+12>>2];a[u+16>>2]=a[v+16>>2];a[u+20>>2]=a[v+20>>2];a[u+24>>2]=a[v+24>>2];a[u+28>>2]=a[v+28>>2];Le(w,A,y,b,e,u);a[v>>2]=a[w>>2];a[v+4>>2]=a[w+4>>2];a[v+8>>2]=a[w+8>>2];a[v+12>>2]=a[w+12>>2];a[v+16>>2]=a[w+16>>2];a[v+20>>2]=a[w+20>>2];a[v+24>>2]=a[w+24>>2];a[v+28>>2]=a[w+28>>2];n=n+1|0}Q3(110606,A)|0;l=e+8|0;n=0;while(1){if((n|0)>=(a[e>>2]|0))break;y=(a[l>>2]|0)+(n*72|0)+40|0;a[g>>2]=a[y>>2];a[g+4>>2]=a[y+4>>2];a[g+8>>2]=a[y+8>>2];a[g+12>>2]=a[y+12>>2];a[g+16>>2]=a[y+16>>2];a[g+20>>2]=a[y+20>>2];a[g+24>>2]=a[y+24>>2];a[g+28>>2]=a[y+28>>2];W=+s[g>>3];m=+s[h>>3];Q=+s[d>>3];L=+s[B>>3];s[Z>>3]=W;s[Z+8>>3]=m;s[Z+16>>3]=Q;s[Z+24>>3]=L;f3(A,138321,Z)|0;s[v>>3]=+s[(+s[v>>3]>3];s[E>>3]=+s[(+s[E>>3]>3];s[o>>3]=+s[(+s[o>>3]>Q?v:g)+16>>3];s[C>>3]=+s[(+s[C>>3]>L?v:g)+24>>3];n=n+1|0}E=~~(+s[E>>3]+10.0);Z=~~(+s[o>>3]+10.0);y=~~(+s[C>>3]+10.0);a[I>>2]=~~(+s[v>>3]+10.0);a[I+4>>2]=E;a[I+8>>2]=Z;a[I+12>>2]=y;f3(A,110631,I)|0;k=G;return}function Ee(A,e,i,f,n,l){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;l=l|0;var t=0.0,c=0.0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0;N=k;k=k+112|0;z=N+88|0;W=N+72|0;p=N+32|0;M=N+16|0;F=N;V=N+56|0;J=N+40|0;Y=a[15712]|0;C=(l|0)==0;I=F+8|0;Z=M+8|0;E=0;b=0;u=0;w=0;o=0;l=0;while(1){if((E|0)>=(i|0))break;G=a[n+(E<<3)+4>>2]|0;m=G+48|0;v=(a[(a[((a[G>>2]&3|0)==3?G:m)+40>>2]|0)+16>>2]|0)+16|0;Q=G+16|0;L=(a[Q>>2]|0)+16|0;a[W>>2]=a[v>>2];a[W+4>>2]=a[v+4>>2];a[W+8>>2]=a[v+8>>2];a[W+12>>2]=a[v+12>>2];a[z>>2]=a[L>>2];a[z+4>>2]=a[L+4>>2];a[z+8>>2]=a[L+8>>2];a[z+12>>2]=a[L+12>>2];Ce(V,W,z);a[M>>2]=a[V>>2];a[M+4>>2]=a[V+4>>2];a[M+8>>2]=a[V+8>>2];a[M+12>>2]=a[V+12>>2];L=G+-48|0;v=(a[(a[((a[G>>2]&3|0)==2?G:L)+40>>2]|0)+16>>2]|0)+16|0;g=(a[Q>>2]|0)+56|0;a[W>>2]=a[v>>2];a[W+4>>2]=a[v+4>>2];a[W+8>>2]=a[v+8>>2];a[W+12>>2]=a[v+12>>2];a[z>>2]=a[g>>2];a[z+4>>2]=a[g+4>>2];a[z+8>>2]=a[g+8>>2];a[z+12>>2]=a[g+12>>2];Ce(J,W,z);a[F>>2]=a[J>>2];a[F+4>>2]=a[J+4>>2];a[F+8>>2]=a[J+8>>2];a[F+12>>2]=a[J+12>>2];g=a[f+(E<<3)>>2]|0;v=a[f+(E<<3)+4>>2]|0;B=g*3|0;y=B+1|0;if((B|0)>=(u|0)){if(b|0)L2(l);o=$F(y<<4)|0;b=o;u=y;w=o;l=o}if(!(r[v>>0]|0)){c=+(Ze(v,e)|0);t=+s[M>>3]}else{t=+Ie(v,e);c=+s[Z>>3]}d=b+16|0;s[b+16>>3]=t;s[b+24>>3]=c;a[o>>2]=a[d>>2];a[o+4>>2]=a[d+4>>2];a[o+8>>2]=a[d+8>>2];a[o+12>>2]=a[d+12>>2];d=1;h=v;B=2;while(1){if((d|0)>=(g|0))break;h=v+(d*56|0)|0;if(!(r[h>>0]|0))c=+(Ze(h,e)|0);else t=+Ie(h,e);R=b+(B+2<<4)|0;H=b+(B+1<<4)|0;X=b+(B<<4)|0;s[X>>3]=t;s[b+(B<<4)+8>>3]=c;a[H>>2]=a[X>>2];a[H+4>>2]=a[X+4>>2];a[H+8>>2]=a[X+8>>2];a[H+12>>2]=a[X+12>>2];a[R>>2]=a[X>>2];a[R+4>>2]=a[X+4>>2];a[R+8>>2]=a[X+8>>2];a[R+12>>2]=a[X+12>>2];d=d+1|0;B=B+3|0}if(!(r[h>>0]|0)){c=+(Ze(h,e)|0);t=+s[F>>3]}else{t=+Ie(h,e);c=+s[I>>3]}H=b+(B<<4)|0;R=B+1|0;X=b+(R<<4)|0;s[X>>3]=t;s[b+(R<<4)+8>>3]=c;a[H>>2]=a[X>>2];a[H+4>>2]=a[X+4>>2];a[H+8>>2]=a[X+8>>2];a[H+12>>2]=a[X+12>>2];if(0>1){X=Vh(a[((a[G>>2]&3|0)==3?G:m)+40>>2]|0)|0;H=Vh(a[((a[G>>2]&3|0)==2?G:L)+40>>2]|0)|0;a[p>>2]=X;a[p+4>>2]=H;f3(Y,110142,p)|0}vN(G,a[((a[G>>2]&3|0)==2?G:L)+40>>2]|0,b,y,25680);if((!C?(D=a[(a[Q>>2]|0)+96>>2]|0,D|0):0)?(r[D+81>>0]|0)==0:0){a[W>>2]=a[M>>2];a[W+4>>2]=a[M+4>>2];a[W+8>>2]=a[M+8>>2];a[W+12>>2]=a[M+12>>2];a[z>>2]=a[F>>2];a[z+4>>2]=a[F+4>>2];a[z+8>>2]=a[F+8>>2];a[z+12>>2]=a[F+12>>2];XN(A,G,W,z)}E=E+1|0}L2(w);k=N;return}function Ce(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;s[e>>3]=+s[e>>3]+ +s[i>>3];r=e+8|0;s[r>>3]=+s[r>>3]+ +s[i+8>>3];a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2];return}function Ie(A,e){A=A|0;e=e|0;var i=0.0,r=0;e=Qe(a[e+24>>2]|0,A)|0;r=a[e+36>>2]|0;i=+s[r+40>>3];return+((+s[r+56>>3]-i)*(+(a[A+44>>2]|0)/+((a[e+24>>2]|0)+1|0))+i)}function Ze(A,e){A=A|0;e=e|0;var i=0.0,r=0;r=Qe(a[e+20>>2]|0,A)|0;e=a[r+36>>2]|0;i=+s[e+48>>3];return~~((1.0-+(a[A+44>>2]|0)/+((a[r+24>>2]|0)+1|0))*(+s[e+64>>3]-i)+i)|0}function Ge(A){A=A|0;return 0}function me(A){A=A|0;return 0}function Qe(A,e){A=A|0;e=e|0;A=y5[a[A>>2]&63](A,e+8|0,512)|0;if(!A)gA(110155,110161,423,110169);A=a[A+16>>2]|0;A=y5[a[A>>2]&63](A,e+16|0,512)|0;if(!A)gA(110180,110161,425,110169);else return A|0;return 0}function Le(A,e,i,f,n,l){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;l=l|0;var t=0,c=0.0,b=0,u=0,w=0,o=0.0,h=0.0,d=0.0,B=0.0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0.0,L=0.0,y=0.0;G=k;k=k+32|0;Z=G+16|0;v=G+8|0;b=G;t=a[(a[(a[((a[i>>2]&3|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0;g=a[f+4>>2]|0;if(!(r[g>>0]|0)){c=+s[t+56>>3];B=+s[t+40>>3];t=Ze(g,n)|0;c=(B+c)*.5}else{c=+s[t+64>>3];B=+s[t+48>>3];t=~~((B+c)*.5);c=+Ie(g,n)}m=~~c;o=+s[l>>3];d=+(m|0);o=o>3]=o;E=l+8|0;h=+s[E>>3];B=+(t|0);h=h>3]=h;C=l+16|0;c=+s[C>>3];d=c>d?c:d;s[C>>3]=d;I=l+24|0;c=+s[I>>3];B=c>B?c:B;s[I>>3]=B;a[b>>2]=m;a[b+4>>2]=t;f3(e,110682,b)|0;w=a[f>>2]|0;b=g;u=1;f=m;while(1){if((u|0)>=(w|0))break;b=g+(u*56|0)|0;if(!(r[b>>0]|0))t=Ze(b,n)|0;else f=~~+Ie(b,n);Q=+(f|0);y=o>3]=y;c=+(t|0);L=h>3]=L;Q=d>Q?d:Q;s[C>>3]=Q;c=B>c?B:c;s[I>>3]=c;a[v>>2]=f;a[v+4>>2]=t;f3(e,110704,v)|0;u=u+1|0;o=y;h=L;d=Q;B=c}t=a[(a[(a[((a[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0;if(!(r[b>>0]|0)){c=+s[t+56>>3];y=+s[t+40>>3];t=Ze(b,n)|0;c=(y+c)*.5}else{c=+s[t+64>>3];y=+s[t+48>>3];t=~~((y+c)*.5);c=+Ie(b,n)}m=~~c;L=+(m|0);s[l>>3]=o>3]=h>3]=d>L?d:L;s[I>>3]=B>y?B:y;a[Z>>2]=m;a[Z+4>>2]=t;f3(e,110718,Z)|0;a[A>>2]=a[l>>2];a[A+4>>2]=a[l+4>>2];a[A+8>>2]=a[l+8>>2];a[A+12>>2]=a[l+12>>2];a[A+16>>2]=a[l+16>>2];a[A+20>>2]=a[l+20>>2];a[A+24>>2]=a[l+24>>2];a[A+28>>2]=a[l+28>>2];k=G;return}function ye(A){A=A|0;var e=0;A=xk(A)|0;while(1){if(!A)break;e=xk(a[A+16>>2]|0)|0;while(1){if(!e)break;a[e+32>>2]=ni(a[e+24>>2]|0)|0;e=a[e>>2]|0}A=a[A>>2]|0}return}function We(A){A=A|0;var e=0;A=xk(A)|0;while(1){if(!A)break;e=xk(a[A+16>>2]|0)|0;while(1){if(!e)break;if(a[e+24>>2]|0)Se(e);e=a[e>>2]|0}A=a[A>>2]|0}return}function ze(A,e){A=A|0;e=e|0;var i=0;i=xk(A)|0;while(1){if(!i)break;A=xk(a[i+16>>2]|0)|0;while(1){if(!A)break;Ve(A,e);A=a[A>>2]|0}i=a[i>>2]|0}return}function Ye(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0;r=xk(A)|0;while(1){if(!r)break;l=r+8|0;f=xk(a[r+16>>2]|0)|0;while(1){if(!f)break;A=f+24|0;A:do{if(a[A>>2]|0){if(a[47323]&8|0)De(f,~~+s[l>>3]);n=f+32|0;bi(a[n>>2]|0);e=a[A>>2]|0;i=f+28|0;A=0;while(1){if((A|0)>=(e|0))break A;a[(a[(a[i>>2]|0)+(A<<2)>>2]|0)+44>>2]=(a[(a[(a[n>>2]|0)+4>>2]|0)+(A*12|0)+4>>2]|0)+1;A=A+1|0}}}while(0);f=a[f>>2]|0}r=a[r>>2]|0}return}function De(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0.0,b=0.0;t=k;k=k+32|0;i=t;n=A+24|0;A:do{if((a[n>>2]|0)>=2){l=a[15712]|0;b=+s[A+8>>3];c=+s[A+16>>3];a[i>>2]=e;s[i+8>>3]=b;s[i+16>>3]=c;f3(l,110739,i)|0;f=A+32|0;A=A+28|0;e=0;while(1){if((e|0)>=(a[n>>2]|0))break A;r=a[(a[(a[f>>2]|0)+4>>2]|0)+(e*12|0)+8>>2]|0;e:do{if(Sk(r)|0){Me(l,a[(a[A>>2]|0)+(e<<2)>>2]|0);Q3(110759,l)|0;i=y5[a[r>>2]&63](r,0,128)|0;while(1){if(!i)break e;Q3(110764,l)|0;Me(l,a[(a[A>>2]|0)+(a[i>>2]<<2)>>2]|0);Q3(153599,l)|0;i=y5[a[r>>2]&63](r,i,8)|0}}}while(0);e=e+1|0}}}while(0);k=t;return}function Me(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0.0,c=0.0,b=0.0;n=k;k=k+80|0;f=n+40|0;i=n;if(!(r[e>>0]|0)){b=+s[e+16>>3];t=+s[e+8>>3];c=+s[e+24>>3];l=Fe(a[e+32>>2]|0)|0;i=Fe(a[e+36>>2]|0)|0;s[f>>3]=b;s[f+8>>3]=t;s[f+16>>3]=c;s[f+24>>3]=t;a[f+32>>2]=l;a[f+36>>2]=i;f3(A,110770,f)|0}else{c=+s[e+8>>3];t=+s[e+16>>3];b=+s[e+24>>3];f=Fe(a[e+32>>2]|0)|0;l=Fe(a[e+36>>2]|0)|0;s[i>>3]=c;s[i+8>>3]=t;s[i+16>>3]=c;s[i+24>>3]=b;a[i+32>>2]=f;a[i+36>>2]=l;f3(A,110770,i)|0}k=n;return}function Fe(A){A=A|0;switch(A|0){case 0:{A=110821;break}case 1:{A=110816;break}case 2:{A=110809;break}case 3:{A=110802;break}case 4:{A=110794;break}default:A=0}return A|0}function Ve(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0;C=k;k=k+16|0;d=C+8|0;g=C;v=a[A+32>>2]|0;E=a[A+28>>2]|0;o=A+24|0;b=d+4|0;u=g+4|0;t=0;A=a[o>>2]|0;A:while(1){h=t+1|0;if((h|0)>=(A|0))break;w=E+(t<<2)|0;c=h;while(1){if((c|0)>=(A|0)){t=h;continue A}e:do{if(((si(v,t,c)|0)==0?(si(v,c,t)|0)==0:0)?(B=E+(c<<2)|0,Je(a[w>>2]|0,a[B>>2]|0)|0):0){f=a[w>>2]|0;A=a[f+48>>2]|0;l=a[B>>2]|0;i=a[l+48>>2]|0;r=(i|0)==0;if(A)if(r)A=1;else A=+s[A+8>>3]!=+s[i+8>>3];else A=r^1;n=A&1;pe(d,f,l,0,n);A=a[d>>2]|0;l=a[b>>2]|0;f=n^1;pe(g,a[w>>2]|0,a[B>>2]|0,1,f);i=a[g>>2]|0;r=a[u>>2]|0;switch(l|0){case-1:{Ne(a[B>>2]|0,a[w>>2]|0,n,0,A,e);Ne(a[B>>2]|0,a[w>>2]|0,f,1,i,e);if((r|0)!=1)break e;Re(a[w>>2]|0,a[B>>2]|0,f,e);break e}case 0:switch(r|0){case-1:{Ne(a[B>>2]|0,a[w>>2]|0,n,0,A,e);Ne(a[B>>2]|0,a[w>>2]|0,f,1,i,e);break e}case 0:{Ne(a[w>>2]|0,a[B>>2]|0,0,n,A,e);Ne(a[w>>2]|0,a[B>>2]|0,1,f,i,e);break e}case 1:{Ne(a[w>>2]|0,a[B>>2]|0,0,n,A,e);Ne(a[w>>2]|0,a[B>>2]|0,1,f,i,e);break e}default:break e}case 1:{Ne(a[w>>2]|0,a[B>>2]|0,0,n,A,e);Ne(a[w>>2]|0,a[B>>2]|0,1,f,i,e);if((r|0)!=-1)break e;Re(a[w>>2]|0,a[B>>2]|0,f,e);break e}default:break e}}}while(0);c=c+1|0;A=a[o>>2]|0}}k=C;return}function Je(A,e){A=A|0;e=e|0;if(!(+s[A+8>>3]==+s[e+8>>3]))gA(110892,110161,843,110923);if((+s[A+16>>3]==+s[e+16>>3]?+s[A+24>>3]==+s[e+24>>3]:0)?(a[A+32>>2]|0)==(a[e+32>>2]|0):0)A=(a[A+36>>2]|0)==(a[e+36>>2]|0)&1;else A=0;return A|0}function pe(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0;n=0;while(1){e=Xe(e,r)|0;if(!e){l=0;break}i=Xe(i,f)|0;if(!i){t=6;break}if(!(Je(e,i)|0)){t=7;break}n=n+1|0}if((t|0)==6)gA(138394,110161,871,110841);else if((t|0)==7)l=Ue(e,He(e,i)|0,n+1|0,1-r|0)|0;a[A>>2]=n;a[A+4>>2]=l;return}function Ne(A,e,i,f,n,l){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;l=l|0;var t=0,c=0,b=0,u=0,w=0,k=0,o=0;k=l+20|0;w=l+24|0;l=Qe(a[((r[A>>0]|0)==0?k:w)>>2]|0,A)|0;ti(a[l+32>>2]|0,a[A+40>>2]|0,a[e+40>>2]|0);c=1;while(1){if((c|0)>(n|0))break;b=Xe(A,i)|0;u=Xe(e,f)|0;do{if(!(r[A>>0]|0)){t=Qe(a[w>>2]|0,b)|0;if(+s[b+8>>3]==+s[A+16>>3]){o=(a[A+32>>2]|0)==1;l=(si(a[l+32>>2]|0,a[A+40>>2]|0,a[e+40>>2]|0)|0)!=0;A=a[t+32>>2]|0;if(o)if(l){ti(A,a[u+40>>2]|0,a[b+40>>2]|0);l=t;break}else{ti(A,a[b+40>>2]|0,a[u+40>>2]|0);l=t;break}else if(l){ti(A,a[b+40>>2]|0,a[u+40>>2]|0);l=t;break}else{ti(A,a[u+40>>2]|0,a[b+40>>2]|0);l=t;break}}else{o=(a[A+36>>2]|0)==1;l=(si(a[l+32>>2]|0,a[A+40>>2]|0,a[e+40>>2]|0)|0)!=0;A=a[t+32>>2]|0;if(o)if(l){ti(A,a[b+40>>2]|0,a[u+40>>2]|0);l=t;break}else{ti(A,a[u+40>>2]|0,a[b+40>>2]|0);l=t;break}else if(l){ti(A,a[u+40>>2]|0,a[b+40>>2]|0);l=t;break}else{ti(A,a[b+40>>2]|0,a[u+40>>2]|0);l=t;break}}}else{t=Qe(a[k>>2]|0,b)|0;if(+s[b+8>>3]==+s[A+16>>3]){o=(a[A+32>>2]|0)==2;l=(si(a[l+32>>2]|0,a[A+40>>2]|0,a[e+40>>2]|0)|0)!=0;A=a[t+32>>2]|0;if(o)if(l){ti(A,a[b+40>>2]|0,a[u+40>>2]|0);l=t;break}else{ti(A,a[u+40>>2]|0,a[b+40>>2]|0);l=t;break}else if(l){ti(A,a[u+40>>2]|0,a[b+40>>2]|0);l=t;break}else{ti(A,a[b+40>>2]|0,a[u+40>>2]|0);l=t;break}}else{o=(a[A+36>>2]|0)==2;l=(si(a[l+32>>2]|0,a[A+40>>2]|0,a[e+40>>2]|0)|0)!=0;A=a[t+32>>2]|0;if(o)if(l){ti(A,a[u+40>>2]|0,a[b+40>>2]|0);l=t;break}else{ti(A,a[b+40>>2]|0,a[u+40>>2]|0);l=t;break}else if(l){ti(A,a[b+40>>2]|0,a[u+40>>2]|0);l=t;break}else{ti(A,a[u+40>>2]|0,a[b+40>>2]|0);l=t;break}}}}while(0);A=b;e=u;c=c+1|0}return}function Re(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0;while(1){if(!(Je(A,e)|0))break;n=Xe(A,1)|0;e=Xe(e,i)|0;A=n}n=a[(Qe(a[((r[A>>0]|0)==0?f+20|0:f+24|0)>>2]|0,A)|0)+32>>2]|0;ci(n,a[A+40>>2]|0,a[e+40>>2]|0);return}function Xe(A,e){A=A|0;e=e|0;if(!A)gA(110828,110161,798,110832);else return a[((e|0)==0?A+48|0:A+52|0)>>2]|0;return 0}function He(A,e){A=A|0;e=e|0;var i=0,f=0,a=0;a=k;k=k+16|0;f=a;i=r[A>>0]|0;if(i<<24>>24==(r[e>>0]|0)?!(+s[A+8>>3]!=+s[e+8>>3]):0){if(!(i<<24>>24))A=xe(A,e,3,1)|0;else A=xe(A,e,4,2)|0;k=a;return A|0}ao(1,110854,f)|0;fe(189296,1);return 0}function Ue(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0;t=1;while(1){if((t|0)>(i|0))break;l=Xe(A,f)|0;n=+s[l+8>>3]==+s[A+16>>3];do{if(!(r[A>>0]|0))if(n){n=(a[A+32>>2]|0)==1;break}else{n=(a[A+36>>2]|0)==3;break}else if(n){n=(a[A+32>>2]|0)==4;break}else{n=(a[A+36>>2]|0)==2;break}}while(0);A=l;t=t+1|0;e=n?0-e|0:e}return e|0}function xe(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0.0,l=0.0,t=0.0,c=0.0,b=0,u=0,w=0,k=0;t=+s[A+24>>3];c=+s[e+16>>3];do{if(!(t>3],l=+s[e+24>>3],!(n>l)):0){if(c>2]|0;return((i|0)==(a[e+32>>2]|0)?0:(i|0)==(r|0)?1:-1)|0}else{i=a[A+32>>2]|0;e=(i|0)==(a[e+36>>2]|0)?0:(i|0)==(r|0)?1:-1;break}if(!(t==l))if(t>2]|0)==(i|0);i=Pe(a[e+32>>2]|0,a[A+32>>2]|0,i,r)|0;return(k?i:0-i|0)|0}else{k=(a[e+36>>2]|0)==(r|0);e=Pe(a[A+32>>2]|0,a[e+32>>2]|0,i,r)|0;e=k?e:0-e|0;break}k=a[A+32>>2]|0;w=a[e+32>>2]|0;if((k|0)==(w|0)){e=a[e+36>>2]|0;if((a[A+36>>2]|0)==(e|0)){e=0;break}}else e=a[e+36>>2]|0;u=(w|0)==(i|0);if((w|0)==(e|0)){if(u){e=1;break}if((w|0)==(r|0)){e=-1;break}if((k|0)!=(i|0)?(a[A+36>>2]|0)!=(i|0):0){e=1;break}if((k|0)!=(r|0)?(a[A+36>>2]|0)!=(r|0):0){e=-1;break}e=0;break}f=(e|0)==(r|0);if(u&f){e=(a[A+36>>2]|0)==(r|0);if((k|0)==(i|0)){if(!e){e=-1;break}}else if(e){e=1;break}e=0;break}b=(e|0)==(i|0);if((w|0)==(r|0)&b){e=(k|0)==(r|0);if((a[A+36>>2]|0)==(i|0)){if(!e){e=-1;break}}else if(e){e=1;break}e=0;break}if(!w){if(b){e=je(k,a[A+36>>2]|0,i)|0;break}if(f){e=0-(je(k,a[A+36>>2]|0,r)|0)|0;break}}f=a[A+36>>2]|0;if(u&(e|0)==0){e=je(f,k,i)|0;break}else{e=0-(je(f,k,r)|0)|0;break}}else e=0}while(0);return e|0}function Te(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0.0,t=0.0;l=+s[A+24>>3];t=+s[e+24>>3];do{if(l>2]|0;if((A|0)==(i|0)?(a[e+32>>2]|0)==(r|0):0){A=-1;break}if((A|0)==(r|0)?(a[e+32>>2]|0)==(i|0):0){A=1;break}A=0}else{f=a[e+32>>2]|0;n=(f|0)==(r|0);if(l==t)if(n){A=Pe(a[A+36>>2]|0,a[e+36>>2]|0,i,r)|0;break}else{A=0-(Pe(a[e+36>>2]|0,a[A+36>>2]|0,i,r)|0)|0;break}if(n?(a[e+36>>2]|0)==(r|0):0){A=-1;break}if((f|0)==(i|0)?(a[e+36>>2]|0)==(i|0):0){A=1;break}A=0}}while(0);return A|0}function je(A,e,i){A=A|0;e=e|0;i=i|0;return((A|0)==(i|0)?((e|0)==(i|0))<<31>>31:1)|0}function Pe(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;if((A|0)==(r|0)){e=(A|0)==0;if(e)return 0;else e=e&1}return((A|0)!=0|(e|0)!=(i|0))<<31>>31|0}function Se(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0;n=a[A+28>>2]|0;l=a[A+24>>2]|0;i=a[A+32>>2]|0;A=0;A:while(1){r=A+1|0;if((r|0)>=(l|0))break;f=n+(A<<2)|0;e=r;while(1){if((e|0)==(l|0)){A=r;continue A}switch(He(a[f>>2]|0,a[n+(e<<2)>>2]|0)|0){case 1:{ti(i,A,e);break}case-1:{ti(i,e,A);break}default:{}}e=e+1|0}}return}function Oe(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;f=A+24|0;r=a[f>>2]|0;i=r+1|0;a[f>>2]=i;a[e+40>>2]=r;r=A+28|0;A=a[r>>2]|0;if(!A)A=$F(i<<2)|0;else A=eV(A,i<<2)|0;a[r>>2]=A;a[A+((a[f>>2]|0)+-1<<2)>>2]=e;return}function Ke(A,e,i){A=A|0;e=e|0;i=+i;var r=0,f=0,n=0;n=k;k=k+16|0;f=n;s[f>>3]=i;r=y5[a[A>>2]&63](A,f,512)|0;if(!r){r=qF(24)|0;s[r+8>>3]=+s[f>>3];a[r+16>>2]=jk(25728,a[4581]|0)|0;y5[a[A>>2]&63](A,r,1)|0}f=a[r+16>>2]|0;y5[a[f>>2]&63](f,e,1)|0;k=n;return}function _e(A,e,i){A=A|0;e=e|0;i=i|0;li(a[e+32>>2]|0);L2(a[e+28>>2]|0);L2(e);return}function qe(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,a=0.0;f=+s[e>>3];a=+s[i>>3];if(!(f>a))if(f>3]>=+s[i+8>>3])<<31>>31;else A=0;else A=!(+s[e+8>>3]<=+s[i+8>>3])&1;return A|0}function $e(A,e,i){A=A|0;e=e|0;i=i|0;Hk(a[e+16>>2]|0)|0;L2(e);return}function Ai(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,a=0.0;a=+s[e>>3];f=+s[i>>3];return(a>f?1:(a>31)|0}function ei(A,e,i){A=A|0;e=e|0;i=i|0;var f=0.0,n=0.0,l=0,t=0;l=(r[e+36>>0]|0)!=0;t=i+40|0;do{if((a[e+24>>2]|0)==(i|0)){f=+s[t>>3];if(l){n=(+s[i+64>>3]+ +s[i+48>>3])*.5;break}else{n=+s[i+48>>3];f=(+s[i+56>>3]+f)*.5;break}}else if(l){n=(+s[i+64>>3]+ +s[i+48>>3])*.5;f=+s[i+56>>3];break}else{n=+s[i+64>>3];f=(+s[i+56>>3]+ +s[t>>3])*.5;break}}while(0);s[A>>3]=f;s[A+8>>3]=n;return}function ii(A,e){A=A|0;e=e|0;var i=0;i=a[A+20>>2]|0;if((i|0)!=(a[e+20>>2]|0)?(i|0)!=(a[e+24>>2]|0):0)i=a[A+24>>2]|0;return i|0}function ri(A,e){A=A|0;e=e|0;var i=0.0;i=(+s[e+64>>3]+ +s[e+48>>3])*.5;s[A>>3]=(+s[e+56>>3]+ +s[e+40>>3])*.5;s[A+8>>3]=i;return}function fi(A,e,i,f,n,l,t){A=A|0;e=e|0;i=+i;f=+f;n=+n;l=l|0;t=t|0;var c=0,b=0;r[A>>0]=e;s[A+8>>3]=i;if(f>3]=f;s[A+16>>3]=i;a[A+36>>2]=e;a[A+32>>2]=b;r[A+1>>0]=c;return}function ai(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=a[e+36>>2]|0;do{if((a[r+4>>2]|0)!=(i|0)){if((a[r+12>>2]|0)==(i|0)){r=~~((+s[e+56>>3]+ +s[e+40>>3])*.5);i=~~+s[e+48>>3];break}if((a[r+8>>2]|0)==(i|0)){r=~~+s[e+40>>3];i=~~((+s[e+64>>3]+ +s[e+48>>3])*.5);break}if((a[r>>2]|0)==(i|0)){r=~~+s[e+56>>3];i=~~((+s[e+64>>3]+ +s[e+48>>3])*.5)}else{r=0;i=0}}else{r=~~((+s[e+56>>3]+ +s[e+40>>3])*.5);i=~~+s[e+64>>3]}}while(0);a[A>>2]=r;a[A+4>>2]=i;return}function ni(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;i=qF(8)|0;a[i>>2]=A;r=i+4|0;a[r>>2]=qF(A*12|0)|0;e=0;while(1){if((e|0)>=(A|0))break;n=Ma()|0;f=a[r>>2]|0;a[f+(e*12|0)+8>>2]=n;a[f+(e*12|0)>>2]=0;e=e+1|0}return i|0}function li(A){A=A|0;var e=0,i=0,r=0;i=A+4|0;e=0;while(1){r=a[i>>2]|0;if((e|0)>=(a[A>>2]|0))break;Hk(a[r+(e*12|0)+8>>2]|0)|0;e=e+1|0}L2(r);L2(A);return}function ti(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;r=k;k=k+16|0;f=r;a[f>>2]=i;i=a[(a[A+4>>2]|0)+(e*12|0)+8>>2]|0;y5[a[i>>2]&63](i,f,1)|0;k=r;return}function ci(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;r=k;k=k+16|0;f=r;a[f>>2]=i;A=A+4|0;n=a[(a[A>>2]|0)+(e*12|0)+8>>2]|0;y5[a[n>>2]&63](n,f,2)|0;a[f>>2]=e;i=a[(a[A>>2]|0)+(i*12|0)+8>>2]|0;y5[a[i>>2]&63](i,f,2)|0;k=r;return}function si(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;r=k;k=k+16|0;f=r;a[f>>2]=i;i=a[(a[A+4>>2]|0)+(e*12|0)+8>>2]|0;i=(y5[a[i>>2]&63](i,f,512)|0)!=0&1;k=r;return i|0}function bi(A){A=A|0;var e=0,i=0,r=0,f=0;e=a[A>>2]|0;switch(e|0){case 0:break;case 1:{a[(a[A+4>>2]|0)+4>>2]=0;break}default:{r=ui(e)|0;f=A+4|0;i=0;e=0;while(1){if((i|0)>=(a[A>>2]|0)){e=0;break}if(!(a[(a[f>>2]|0)+(i*12|0)>>2]|0))e=wi(A,i,e,r)|0;i=i+1|0}while(1){i=ki(r)|0;if((i|0)<=-1)break;a[(a[f>>2]|0)+(i*12|0)+4>>2]=e;e=e+1|0}oi(r)}}return}function ui(A){A=A|0;var e=0;e=qF(8)|0;a[e+4>>2]=qF(A<<2)|0;a[e>>2]=-1;return e|0}function wi(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0;t=A+4|0;n=a[t>>2]|0;c=n+(e*12|0)|0;a[c>>2]=1;n=a[n+(e*12|0)+8>>2]|0;l=n+4|0;i=i+1|0;n=xk(n)|0;while(1){if(!n)break;f=a[(a[l>>2]|0)+8>>2]|0;if((f|0)<0)f=a[n+8>>2]|0;else f=n+(0-f)|0;f=a[f>>2]|0;if(!(a[(a[t>>2]|0)+(f*12|0)>>2]|0))i=wi(A,f,i,r)|0;n=a[n>>2]|0}a[c>>2]=2;hi(r,e);return i+1|0}function ki(A){A=A|0;var e=0,i=0;e=a[A>>2]|0;if((e|0)==-1)A=-1;else{i=a[(a[A+4>>2]|0)+(e<<2)>>2]|0;a[A>>2]=e+-1;A=i}return A|0}function oi(A){A=A|0;L2(a[A+4>>2]|0);L2(A);return}function hi(A,e){A=A|0;e=e|0;var i=0;i=(a[A>>2]|0)+1|0;a[A>>2]=i;a[(a[A+4>>2]|0)+(i<<2)>>2]=e;return}function di(A){A=A|0;var e=0,i=0,r=0;i=a[A>>2]|0;a[A+8>>2]=i;a[A+12>>2]=a[A+4>>2];e=A+16|0;A=0;while(1){if((A|0)>=(i|0))break;r=a[e>>2]|0;f[r+(A*40|0)+18>>1]=f[r+(A*40|0)+16>>1]|0;A=A+1|0}return}function Bi(A){A=A|0;var e=0,i=0,r=0;e=a[A+8>>2]|0;a[A>>2]=e;a[A+4>>2]=a[A+12>>2];i=A+16|0;A=0;while(1){if((A|0)>=(e|0))break;r=a[i>>2]|0;f[r+(A*40|0)+16>>1]=f[r+(A*40|0)+18>>1]|0;A=A+1|0}e=e+2|0;while(1){if((A|0)>=(e|0))break;f[(a[i>>2]|0)+(A*40|0)+16>>1]=0;A=A+1|0}return}function gi(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;i=qF(((a[A>>2]|0)*6|0)+(e<<1)<<2)|0;a[A+20>>2]=qF((((a[A>>2]|0)*3|0)+e|0)*24|0)|0;r=a[A>>2]|0;f=A+16|0;A=0;while(1){if((A|0)>=(r|0))break;a[(a[f>>2]|0)+(A*40|0)+28>>2]=i;i=i+24|0;A=A+1|0}r=r+2|0;while(1){if((A|0)>=(r|0))break;a[(a[f>>2]|0)+(A*40|0)+28>>2]=i;i=i+(e<<2)|0;A=A+1|0}return}function vi(A){A=A|0;var e=0;e=qF(24)|0;a[e>>2]=0;a[e+16>>2]=qF(A*40|0)|0;return e|0}function Ei(A){A=A|0;var e=0,i=0;i=a[A+16>>2]|0;e=a[A>>2]|0;a[i+(e*40|0)+32>>2]=e;a[A>>2]=e+1;return i+(e*40|0)|0}function Ci(A,e,i,r){A=A|0;e=e|0;i=i|0;r=+r;var f=0,n=0;n=A+4|0;f=a[n>>2]|0;a[n>>2]=f+1;n=a[A+20>>2]|0;A=n+(f*24|0)|0;a[n+(f*24|0)+12>>2]=a[e+32>>2];a[n+(f*24|0)+16>>2]=a[i+32>>2];s[A>>3]=r;a[n+(f*24|0)+8>>2]=0;Ii(e,f);Ii(i,f);return A|0}function Ii(A,e){A=A|0;e=e|0;var i=0,r=0;i=A+16|0;r=f[i>>1]|0;a[(a[A+28>>2]|0)+(r<<16>>16<<2)>>2]=e;f[i>>1]=r+1<<16>>16;return}function Zi(A){A=A|0;var e=0;e=A+16|0;L2(a[(a[e>>2]|0)+28>>2]|0);L2(a[e>>2]|0);L2(a[A+20>>2]|0);L2(A);return}function Gi(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0;n=a[A>>2]|0;l=A+16|0;r=0;while(1){if((r|0)>=(n|0))break;a[(a[l>>2]|0)+(r*40|0)>>2]=-2147483648;r=r+1|0}Ha();A:do{if(!(Ta(e)|0)){a[e+8>>2]=0;a[e>>2]=0;e=A+20|0;e:while(1){n=Pa()|0;if(!n){r=0;break A}a[n>>2]=0-(a[n>>2]|0);if((n|0)==(i|0)){r=0;break A}l=n+16|0;t=n+28|0;r=0;while(1){if((r|0)>=(f[l>>1]|0))continue e;c=(a[e>>2]|0)+((a[(a[t>>2]|0)+(r<<2)>>2]|0)*24|0)|0;b=mi(A,c,n)|0;u=a[b>>2]|0;do{if((u|0)<0){w=~~-(+s[c>>3]+ +(a[n>>2]|0));if((u|0)==-2147483648){a[b>>2]=w;if(Ta(b)|0){r=1;break A}a[b+8>>2]=n;a[b+12>>2]=c;break}else{if((u|0)>=(w|0))break;Sa(b,w);a[b+8>>2]=n;a[b+12>>2]=c;break}}}while(0);r=r+1|0}}}else r=1}while(0);return r|0}function mi(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=a[e+12>>2]|0;if((r|0)==(a[i+32>>2]|0))r=a[e+16>>2]|0;return(a[A+16>>2]|0)+(r*40|0)|0}function Qi(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;n=a[A>>2]|0;Jv(n,3,e)|0;e=a[n+92>>2]|0;do{if(e){i=a[e+16>>2]|0;l=a[i+12>>2]|0;a[A+76>>2]=l;r=a[i+16>>2]|0;a[A+84>>2]=r;f=A+80|0;a[f>>2]=a[i>>2];a[A+88>>2]=a[e+4>>2];i=A+152|0;r=a[i>>2]|a[r>>2];a[i>>2]=r;e=a[n+80>>2]|0;if(!e){a[A+60>>2]=0;e=999;break}else{n=a[e+16>>2]|0;a[A+60>>2]=a[n+12>>2];t=a[n+16>>2]|0;a[A+68>>2]=t;a[A+72>>2]=a[e+4>>2];a[i>>2]=r|a[t>>2];a[A+64>>2]=a[((l|0)==0?f:n)>>2];e=300;break}}else e=999}while(0);return e|0}function Li(A){A=A|0;var e=0,i=0;e=a[A+60>>2]|0;if(!(sv(A)|0))if((e|0)!=0?(i=a[e>>2]|0,(i|0)!=0):0){F5[i&127](A);A=0}else A=0;else A=1;return A|0}function yi(A){A=A|0;var e=0,i=0;e=a[A+60>>2]|0;if(e|0?(i=a[e+4>>2]|0,i|0):0)F5[i&127](A);a[(a[A>>2]|0)+24>>2]=0;Bv(A);return}function Wi(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0,n=0.0,l=0.0;r=+s[e+504>>3];f=+s[e+512>>3];l=+s[e+352>>3];if(!(a[e+360>>2]|0)){n=+s[i>>3]+r;i=i+8|0;r=f}else n=-(f+ +s[i+8>>3]);f=+s[e+528>>3]*l*(+s[i>>3]+r);s[A>>3]=+s[e+520>>3]*l*n;s[A+8>>3]=f;return}function zi(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,n=0.0,l=0.0,t=0.0,c=0.0;f=+s[A+504>>3];n=+s[A+512>>3];l=+s[A+352>>3];t=+s[A+520>>3]*l;l=+s[A+528>>3]*l;A:do{if(!(a[A+360>>2]|0)){A=0;while(1){if((A|0)>=(r|0))break A;s[i+(A<<4)>>3]=(+s[e+(A<<4)>>3]+f)*t;s[i+(A<<4)+8>>3]=(+s[e+(A<<4)+8>>3]+n)*l;A=A+1|0}}else{A=0;while(1){if((A|0)>=(r|0))break A;c=-(t*(+s[e+(A<<4)+8>>3]+n));s[i+(A<<4)+8>>3]=(+s[e+(A<<4)>>3]+f)*l;s[i+(A<<4)>>3]=c;A=A+1|0}}}while(0);return i|0}function Yi(A,e){A=A|0;e=e|0;var i=0;e=a[A+60>>2]|0;if(e|0?(i=a[e+8>>2]|0,i|0):0)F5[i&127](A);return}function Di(A){A=A|0;var e=0,i=0;e=a[A+60>>2]|0;if(e|0?(i=a[e+12>>2]|0,i|0):0)F5[i&127](A);dv(A);return}function Mi(A){A=A|0;var e=0,i=0;e=a[A+60>>2]|0;if(e|0?(i=a[e+24>>2]|0,i|0):0)F5[i&127](A);return}function Fi(A){A=A|0;var e=0,i=0;e=a[A+60>>2]|0;if(e|0?(i=a[e+28>>2]|0,i|0):0)F5[i&127](A);return}function Vi(A){A=A|0;var e=0,i=0;e=a[A+60>>2]|0;if(e|0?(i=a[e+16>>2]|0,i|0):0){e=a[A+160>>2]|0;N5[i&31](A,a[(a[(a[A>>2]|0)+308>>2]|0)+(e<<2)>>2]|0,e,a[A+156>>2]|0)}return}function Ji(A){A=A|0;var e=0,i=0;e=a[A+60>>2]|0;if(e|0?(i=a[e+20>>2]|0,i|0):0)F5[i&127](A);return}function pi(A,e){A=A|0;e=e|0;var i=0;e=a[A+60>>2]|0;if(e|0?(i=a[e+32>>2]|0,i|0):0)F5[i&127](A);return}function Ni(A,e){A=A|0;e=e|0;var i=0;e=a[A+60>>2]|0;if(e|0?(i=a[e+36>>2]|0,i|0):0)F5[i&127](A);return}function Ri(A){A=A|0;var e=0,i=0;e=a[A+60>>2]|0;if(e|0?(i=a[e+40>>2]|0,i|0):0)F5[i&127](A);return}function Xi(A){A=A|0;var e=0,i=0;e=a[A+60>>2]|0;if(e|0?(i=a[e+44>>2]|0,i|0):0)F5[i&127](A);return}function Hi(A){A=A|0;var e=0,i=0;e=a[A+60>>2]|0;if(e|0?(i=a[e+48>>2]|0,i|0):0)F5[i&127](A);return}function Ui(A){A=A|0;var e=0,i=0;e=a[A+60>>2]|0;if(e|0?(i=a[e+52>>2]|0,i|0):0)F5[i&127](A);return}function xi(A,e){A=A|0;e=e|0;var i=0;e=a[A+60>>2]|0;if(e|0?(i=a[e+56>>2]|0,i|0):0)F5[i&127](A);return}function Ti(A){A=A|0;var e=0,i=0;e=a[A+60>>2]|0;if(e|0?(i=a[e+60>>2]|0,i|0):0)F5[i&127](A);return}function ji(A,e){A=A|0;e=e|0;var i=0;e=a[A+60>>2]|0;if(e|0?(i=a[e+64>>2]|0,i|0):0)F5[i&127](A);return}function Pi(A){A=A|0;var e=0,i=0;e=a[A+60>>2]|0;if(e|0?(i=a[e+68>>2]|0,i|0):0)F5[i&127](A);return}function Si(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0;n=a[A+60>>2]|0;if(n|0?(l=a[n+72>>2]|0,l|0):0)R5[l&15](A,e,i,r,f);return}function Oi(A){A=A|0;var e=0,i=0;e=a[A+60>>2]|0;if(e|0?(i=a[e+76>>2]|0,i|0):0)F5[i&127](A);return}function Ki(A,e){A=A|0;e=e|0;var i=0,r=0;i=a[A+60>>2]|0;if(i|0?(r=a[i+80>>2]|0,r|0):0)V5[r&63](A,e);return}function _i(A){A=A|0;var e=0,i=0;e=a[A+60>>2]|0;if(e|0?(i=a[e+84>>2]|0,i|0):0)F5[i&127](A);return}function qi(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0;s=k;k=k+48|0;f=s+32|0;l=s;t=s+16|0;c=a[A+60>>2]|0;b=a[i>>2]|0;do{if(b|0?r[b>>0]|0:0){b=a[A+16>>2]|0;if(b|0?(a[b+144>>2]|0)==0:0)break;if(!(a[A+152>>2]&8192)){a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];Wi(t,A,f);a[l>>2]=a[t>>2];a[l+4>>2]=a[t+4>>2];a[l+8>>2]=a[t+8>>2];a[l+12>>2]=a[t+12>>2]}else{a[l>>2]=a[e>>2];a[l+4>>2]=a[e+4>>2];a[l+8>>2]=a[e+8>>2];a[l+12>>2]=a[e+12>>2]}if(c|0?(n=a[c+88>>2]|0,n|0):0){a[f>>2]=a[l>>2];a[f+4>>2]=a[l+4>>2];a[f+8>>2]=a[l+8>>2];a[f+12>>2]=a[l+12>>2];J5[n&127](A,f,i)}}}while(0);k=s;return}function $i(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0;f=a[A+60>>2]|0;n=(a[A+16>>2]|0)+16|0;t=G1(e,58)|0;l=(t|0)!=0;if(l)r[t>>0]=0;if(f|0?(Ar(a[A+68>>2]|0,e,n),i=a[f+92>>2]|0,i|0):0)V5[i&63](A,n);if(l)r[t>>0]=58;return}function Ar(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,s=0;s=k;k=k+32|0;n=s+16|0;c=s+8|0;t=s;a[i>>2]=e;a[i+32>>2]=5;r=Bf(e)|0;f=a[A+16>>2]|0;if(!((f|0)!=0?(i8(r,f,a[A+20>>2]|0,4,102)|0)!=0:0))l=3;A:do{if((l|0)==3){switch(gf(e,i,a[A+24>>2]|0)|0){case 0:break A;case 1:break;default:{ao(1,111046,n)|0;break A}}A=$F((P2(e)|0)+16|0)|0;a[t>>2]=e;S4(A,111011,t)|0;if(fF(A)|0){a[c>>2]=e;ao(0,111020,c)|0}L2(A)}}while(0);k=s;return}function er(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0;f=a[A+60>>2]|0;n=(a[A+16>>2]|0)+56|0;t=G1(e,58)|0;l=(t|0)!=0;if(l)r[t>>0]=0;if(f|0?(Ar(a[A+68>>2]|0,e,n),i=a[f+92>>2]|0,i|0):0)V5[i&63](A,n);if(l)r[t>>0]=58;return}function ir(A,e,i,r){A=A|0;e=e|0;i=i|0;r=+r;var f=0,n=0,l=0,t=0;n=a[A+60>>2]|0;l=A+16|0;t=(a[l>>2]|0)+96|0;if(n|0?(Ar(a[A+68>>2]|0,e,t),f=a[n+92>>2]|0,f|0):0)V5[f&63](A,t);t=a[l>>2]|0;a[t+136>>2]=i;c[t+140>>2]=r;return}function rr(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,b=0;b=k;k=k+16|0;c=b;t=a[A+60>>2]|0;A=a[A+16>>2]|0;a[A+160>>2]=e;A:do{if((e|0)!=0&(t|0)!=0){t=A+144|0;l=A+152|0;n=A+148|0;A=e;e:while(1){f=A+4|0;A=a[A>>2]|0;if(!A)break A;i:do{switch(r[A>>0]|0){case 115:{if(!(A1(A,111067)|0)){a[t>>2]=3;A=f;continue e}if(!(A1(A,111088)|0)){i=115;while(1){e=A+1|0;if(!(i<<24>>24))break;A=e;i=r[e>>0]|0}s[l>>3]=+$3(e);A=f;continue e}break}case 100:{if(!(A1(A,137327)|0)){a[t>>2]=1;A=f;continue e}if(!(A1(A,137320)|0)){a[t>>2]=2;A=f;continue e}break}case 105:{if(A1(A,134335)|0?A1(A,111073)|0:0)break i;a[t>>2]=0;A=f;continue e}case 98:{if(!(A1(A,111083)|0)){s[l>>3]=2.0;A=f;continue e}break}case 102:{if(!(A1(A,111101)|0)){a[n>>2]=1;A=f;continue e}break}case 117:{if(!(A1(A,111108)|0)){a[n>>2]=0;A=f;continue e}break}case 116:{if(!(A1(A,111117)|0)){A=f;continue e}break}default:{}}}while(0);a[c>>2]=A;ao(0,111125,c)|0;A=f}}}while(0);k=b;return}function fr(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0;t=k;k=k+32|0;n=t;i=a[A+60>>2]|0;if((i|0?(l=i+96|0,f=a[l>>2]|0,f|0):0)?a[(a[A+16>>2]|0)+144>>2]|0:0){i=e+16|0;s[n>>3]=(+s[i>>3]+ +s[e>>3])*.5;s[n+8>>3]=(+s[e+24>>3]+ +s[e+8>>3])*.5;e=n+16|0;a[e>>2]=a[i>>2];a[e+4>>2]=a[i+4>>2];a[e+8>>2]=a[i+8>>2];a[e+12>>2]=a[i+12>>2];if(!(a[A+152>>2]&8192)){zi(A,n,n,2)|0;f=a[l>>2]|0}J5[f&127](A,n,r)}k=t;return}function ar(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;w=k;k=k+48|0;b=w;f=a[A+60>>2]|0;if((f|0?(u=f+100|0,a[u>>2]|0):0)?(s=A+16|0,c=a[s>>2]|0,a[c+144>>2]|0):0){if(!(r&4)){f=r;n=0}else{f=r&-5;r=c+16|0;n=b;l=r;t=n+40|0;do{a[n>>2]=a[l>>2];n=n+4|0;l=l+4|0}while((n|0)<(t|0));n=r;l=c+56|0;t=n+40|0;do{a[n>>2]=a[l>>2];n=n+4|0;l=l+4|0}while((n|0)<(t|0));n=1}if(!(a[A+152>>2]&8192)){r=i+10|0;if((a[47363]|0)<(i|0)){a[47363]=r;r=eV(a[47364]|0,r<<4)|0;a[47364]=r}else r=a[47364]|0;zi(A,e,r,i)|0;N5[a[u>>2]&31](A,r,i,f)}else N5[a[u>>2]&31](A,e,i,f);if(n|0){n=(a[s>>2]|0)+16|0;l=b;t=n+40|0;do{a[n>>2]=a[l>>2];n=n+4|0;l=l+4|0}while((n|0)<(t|0))}}k=w;return}function nr(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;r=k;k=k+64|0;f=r;a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];n=f+32|0;e=e+16|0;a[n>>2]=a[e>>2];a[n+4>>2]=a[e+4>>2];a[n+8>>2]=a[e+8>>2];a[n+12>>2]=a[e+12>>2];s[f+16>>3]=+s[f>>3];s[f+24>>3]=+s[f+40>>3];s[f+48>>3]=+s[n>>3];s[f+56>>3]=+s[f+8>>3];ar(A,f,4,i);k=r;return}function lr(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0;t=a[A+60>>2]|0;do{if((t|0?(c=t+104|0,l=a[c>>2]|0,l|0):0)?a[(a[A+16>>2]|0)+144>>2]|0:0){if(a[A+152>>2]&8192|0){X5[l&15](A,e,i,r,f,n&255);break}l=i+10|0;if((a[47363]|0)<(i|0)){a[47363]=l;l=eV(a[47364]|0,l<<4)|0;a[47364]=l}else l=a[47364]|0;zi(A,e,l,i)|0;X5[a[c>>2]&15](A,l,i,r,f,n&255)}}while(0);return}function tr(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;r=a[A+60>>2]|0;do{if((r|0?(n=r+108|0,f=a[n>>2]|0,f|0):0)?a[(a[A+16>>2]|0)+144>>2]|0:0){if(a[A+152>>2]&8192|0){J5[f&127](A,e,i);break}r=i+10|0;if((a[47363]|0)<(i|0)){a[47363]=r;r=eV(a[47364]|0,r<<4)|0;a[47364]=r}else r=a[47364]|0;zi(A,e,r,i)|0;J5[a[n>>2]&127](A,r,i)}}while(0);return}function cr(A,e){A=A|0;e=e|0;var i=0,f=0;i=a[A+60>>2]|0;if((e|0?!((i|0)==0|(r[e>>0]|0)==0):0)?(f=a[i+112>>2]|0,f|0):0)V5[f&63](A,e);return}function sr(A,e,i,f,n,l){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;l=l|0;var t=0.0,c=0.0,b=0,u=0,w=0.0,o=0.0,h=0.0,d=0.0,B=0,g=0.0,v=0.0,E=0.0,C=0.0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0;z=k;k=k+112|0;Q=z+64|0;W=z;u=z+96|0;I=z+48|0;Z=z+32|0;L=a[A+60>>2]|0;if(!A)gA(111282,111178,691,111189);if(!e)gA(111208,111178,692,111189);if(!(r[e>>0]|0))gA(111213,111178,693,111189);y=Nv(e)|0;if(!y){if((L|0)!=0&(Gp(e)|0)!=0?(b=a[L+116>>2]|0,b|0):0)R5[b&15](A,e,i,f,n&255)}else{B=A+432|0;a[Q>>2]=a[B>>2];a[Q+4>>2]=a[B+4>>2];a[Q+8>>2]=a[B+8>>2];a[Q+12>>2]=a[B+12>>2];Hv(u,y,Q);B=a[u>>2]|0;b=a[u+4>>2]|0;if(!((B|0)<1&(b|0)<1)){u=W+16|0;a[u>>2]=a[i>>2];a[u+4>>2]=a[i+4>>2];a[u+8>>2]=a[i+8>>2];a[u+12>>2]=a[i+12>>2];a[W>>2]=a[i>>2];a[W+4>>2]=a[i+4>>2];a[W+8>>2]=a[i+8>>2];a[W+12>>2]=a[i+12>>2];G=W+8|0;m=W+24|0;e=1;while(1){if((e|0)>=(f|0))break;Y=i+(e<<4)|0;E=+s[Y>>3];s[W>>3]=+s[(+s[W>>3]>3];C=+s[i+(e<<4)+8>>3];s[G>>3]=+s[(+s[G>>3]>3];s[u>>3]=+s[(+s[u>>3]>E?u:Y)>>3];s[m>>3]=+s[(+s[m>>3]>C?u:Y)+8>>3];e=e+1|0}c=+s[u>>3];t=+s[W>>3];g=c-t;v=+s[m>>3];E=+s[G>>3];C=v-E;w=+(b|0);o=+(B|0);h=g/o;d=C/w;A:do{switch(br(l)|0){case 1:if(h>3]=t;c=c-g;s[u>>3]=c}if(w>3]=E+C;s[m>>3]=v-C}if(!(a[A+152>>2]&8192)){a[Q>>2]=a[W>>2];a[Q+4>>2]=a[W+4>>2];a[Q+8>>2]=a[W+8>>2];a[Q+12>>2]=a[W+12>>2];Wi(I,A,Q);a[W>>2]=a[I>>2];a[W+4>>2]=a[I+4>>2];a[W+8>>2]=a[I+8>>2];a[W+12>>2]=a[I+12>>2];a[Q>>2]=a[u>>2];a[Q+4>>2]=a[u+4>>2];a[Q+8>>2]=a[u+8>>2];a[Q+12>>2]=a[u+12>>2];Wi(Z,A,Q);a[u>>2]=a[Z>>2];a[u+4>>2]=a[Z+4>>2];a[u+8>>2]=a[Z+8>>2];a[u+12>>2]=a[Z+12>>2];c=+s[u>>3];t=+s[W>>3]}if(t>c){s[W>>3]=c;s[u>>3]=t}t=+s[G>>3];c=+s[m>>3];if(t>c){s[G>>3]=c;s[m>>3]=t}if(L|0){Y=a[A+72>>2]|0;a[Q>>2]=a[W>>2];a[Q+4>>2]=a[W+4>>2];a[Q+8>>2]=a[W+8>>2];a[Q+12>>2]=a[W+12>>2];a[Q+16>>2]=a[W+16>>2];a[Q+20>>2]=a[W+20>>2];a[Q+24>>2]=a[W+24>>2];a[Q+28>>2]=a[W+28>>2];or(A,y,Q,n,Y)}}}k=z;return}function br(A){A=A|0;if(r[A>>0]|0)if(p1(A,141116)|0)if(p1(A,141048)|0)if(!(p1(A,111221)|0))A=4;else A=(vR(A)|0)<<24>>24!=0&1;else A=3;else A=2;else A=0;return A|0}function ur(A,e){A=A|0;e=+e;if(a[A+60>>2]|0)s[(a[A+16>>2]|0)+152>>3]=e;return}function wr(A,e){A=A|0;e=e|0;e=Jv(A,1,e)|0;if(!e)e=999;else{e=a[e+16>>2]|0;a[A+184>>2]=a[e+4>>2];a[A+172>>2]=a[e+12>>2];a[A+176>>2]=a[e>>2];a[A+180>>2]=a[e+16>>2];e=300}return e|0}function kr(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;t=k;k=k+16|0;f=t;Td(e,137483,280,1)|0;n=e+16|0;a[(a[n>>2]|0)+144>>2]=A;if((Zd(e)|0)!=(e|0))a[(a[(Zd(e)|0)+16>>2]|0)+144>>2]=A;r=Ho(e,111226)|0;i=A+172|0;if((r|0)!=0?(a[i>>2]=0,(wr(A,r)|0)==999):0){i=pv(A,1,r)|0;a[f>>2]=r;a[f+4>>2]=i;ao(1,111233,f)|0;i=-1}else{r=a[i>>2]|0;if(!r)i=-1;else{nF(1);DF(e,a[a[A+180>>2]>>2]&1);i=a[(a[n>>2]|0)+8>>2]|0;a[(a[(Zd(e)|0)+16>>2]|0)+8>>2]=i;oN();i=a[r>>2]|0;if(i|0?(F5[i&127](e),l=a[r+4>>2]|0,l|0):0)a[(a[n>>2]|0)+148>>2]=l;nF(0);i=0}}k=t;return i|0}function or(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0,t=0,c=0,s=0,b=0,u=0;u=k;k=k+176|0;s=u+8|0;c=u;l=u+40|0;if(!A)gA(111282,111286,52,111300);if(!e)gA(111312,111286,53,111300);t=a[e+8>>2]|0;if(!t)gA(111315,111286,54,111300);if(!(r[t>>0]|0))gA(111324,111286,55,111300);$1(l,a[e+28>>2]|0)|0;t=l+(P2(l)|0)|0;r[t>>0]=58;r[t+1>>0]=0;w3(l,n)|0;if((hr(A,l)|0)==999){a[c>>2]=l;ao(0,111336,c)|0}n=a[A+92>>2]|0;if(n|0?(b=a[n>>2]|0,b|0):0){a[s>>2]=a[i>>2];a[s+4>>2]=a[i+4>>2];a[s+8>>2]=a[i+8>>2];a[s+12>>2]=a[i+12>>2];a[s+16>>2]=a[i+16>>2];a[s+20>>2]=a[i+20>>2];a[s+24>>2]=a[i+24>>2];a[s+28>>2]=a[i+28>>2];N5[b&31](A,e,s,f)}k=u;return}function hr(A,e){A=A|0;e=e|0;e=Jv(a[A>>2]|0,4,e)|0;if(!e)e=999;else{e=a[e+16>>2]|0;a[A+92>>2]=a[e+12>>2];a[A+96>>2]=a[e>>2];e=300}return e|0}function dr(A){A=A|0;return 1}function Br(A){A=A|0;var e=0;r[A+536>>0]=0;e=A+336|0;s[e>>3]=+s[e>>3]+10.0/+s[A+352>>3];r[A+537>>0]=1;return 0}function gr(A){A=A|0;var e=0;r[A+536>>0]=0;e=A+336|0;s[e>>3]=+s[e>>3]-10.0/+s[A+352>>3];r[A+537>>0]=1;return 0}function vr(A){A=A|0;var e=0;r[A+536>>0]=0;e=A+344|0;s[e>>3]=+s[e>>3]-10.0/+s[A+352>>3];r[A+537>>0]=1;return 0}function Er(A){A=A|0;var e=0;r[A+536>>0]=0;e=A+344|0;s[e>>3]=+s[e>>3]+10.0/+s[A+352>>3];r[A+537>>0]=1;return 0}function Cr(A){A=A|0;var e=0;r[A+536>>0]=0;e=A+352|0;s[e>>3]=+s[e>>3]*1.1;r[A+537>>0]=1;return 0}function Ir(A){A=A|0;var e=0;r[A+536>>0]=0;e=A+352|0;s[e>>3]=+s[e>>3]*.9090909090909091;r[A+537>>0]=1;return 0}function Zr(A){A=A|0;var e=0,i=0,f=0,n=0.0,l=0.0;i=A+536|0;e=(r[i>>0]|0)==0;r[i>>0]=e&1;if(e){e=a[A+448>>2]|0;i=a[A+452>>2]|0;l=+(e>>>0);n=+(i>>>0);f=l/+(e|0)>3]=(f?l:n)/+((f?e:i)|0);i=A+336|0;a[i>>2]=0;a[i+4>>2]=0;a[i+8>>2]=0;a[i+12>>2]=0;r[A+537>>0]=1}return 0}function Gr(A){A=A|0;var e=0,i=0;e=a[(a[A>>2]|0)+168>>2]|0;i=A+580|0;if(!(a[i>>2]|0)){a[i>>2]=e;i=(a[e+16>>2]|0)+112|0;r[i>>0]=r[i>>0]|2;Xr(A,e)}BI(A,e);r[A+540>>0]=1;return}function mr(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0.0,l=0.0,t=0,c=0;c=k;k=k+16|0;f=c;switch(e|0){case 1:{a[f>>2]=a[i>>2];a[f+4>>2]=a[i+4>>2];a[f+8>>2]=a[i+8>>2];a[f+12>>2]=a[i+12>>2];Mr(A,f);Rr(A);r[A+538>>0]=1;r[A+541>>0]=1;t=13;break}case 2:{r[A+538>>0]=1;r[A+541>>0]=2;t=13;break}case 3:{a[f>>2]=a[i>>2];a[f+4>>2]=a[i+4>>2];a[f+8>>2]=a[i+8>>2];a[f+12>>2]=a[i+12>>2];Mr(A,f);r[A+538>>0]=1;r[A+541>>0]=3;t=13;break}case 4:{r[A+536>>0]=0;if(!(a[A+360>>2]|0)){f=A+352|0;l=+s[f>>3];e=A+336|0;s[e>>3]=(+s[i>>3]-+((a[A+448>>2]|0)>>>0)*.5)*.10000000000000009/(+s[A+520>>3]*l)+ +s[e>>3];n=+s[i+8>>3]-+((a[A+452>>2]|0)>>>0)*.5;e=A+528|0}else{f=A+352|0;l=+s[f>>3];e=A+336|0;s[e>>3]=+s[e>>3]-(+s[i+8>>3]-+((a[A+452>>2]|0)>>>0)*.5)*.10000000000000009/(+s[A+528>>3]*l);n=+s[i>>3]-+((a[A+448>>2]|0)>>>0)*.5;e=A+520|0}t=A+344|0;s[t>>3]=n*.10000000000000009/(+s[e>>3]*l)+ +s[t>>3];s[f>>3]=l*1.1;t=13;break}case 5:{r[A+536>>0]=0;t=A+352|0;l=+s[t>>3]*.9090909090909091;s[t>>3]=l;if(!(a[A+360>>2]|0)){f=A+336|0;s[f>>3]=+s[f>>3]-(+s[i>>3]-+((a[A+448>>2]|0)>>>0)*.5)*.10000000000000009/(+s[A+520>>3]*l);n=+s[i+8>>3]-+((a[A+452>>2]|0)>>>0)*.5;f=A+528|0}else{f=A+336|0;s[f>>3]=(+s[i+8>>3]-+((a[A+452>>2]|0)>>>0)*.5)*.10000000000000009/(+s[A+528>>3]*l)+ +s[f>>3];n=+s[i>>3]-+((a[A+448>>2]|0)>>>0)*.5;f=A+520|0}t=A+344|0;s[t>>3]=+s[t>>3]-n*.10000000000000009/(+s[f>>3]*l);t=13;break}default:{}}if((t|0)==13)r[A+537>>0]=1;A=A+560|0;a[A>>2]=a[i>>2];a[A+4>>2]=a[i+4>>2];a[A+8>>2]=a[i+8>>2];a[A+12>>2]=a[i+12>>2];k=c;return}function Qr(A,e,i){A=A|0;e=e|0;i=i|0;r[A+538>>0]=0;r[A+541>>0]=0;return}function Lr(A,e){A=A|0;e=e|0;var i=0,f=0.0,n=0.0,l=0,t=0.0,c=0;c=k;k=k+16|0;i=c;l=A+560|0;t=(+s[e>>3]-+s[l>>3])/+s[A+520>>3];n=(+s[e+8>>3]-+s[A+568>>3])/+s[A+528>>3];if(!(+W(+t)<.0001&+W(+n)<.0001)){switch(r[A+541>>0]|0){case 0:{a[i>>2]=a[e>>2];a[i+4>>2]=a[e+4>>2];a[i+8>>2]=a[e+8>>2];a[i+12>>2]=a[e+12>>2];Mr(A,i);break}case 2:{f=+s[A+352>>3];if(!(a[A+360>>2]|0)){i=A+336|0;s[i>>3]=+s[i>>3]-t/f;i=A+344|0;s[i>>3]=+s[i>>3]-n/f}else{i=A+336|0;s[i>>3]=+s[i>>3]-n/f;i=A+344|0;s[i>>3]=+s[i>>3]+t/f}r[A+537>>0]=1;break}default:{}}a[l>>2]=a[e>>2];a[l+4>>2]=a[e+4>>2];a[l+8>>2]=a[e+8>>2];a[l+12>>2]=a[e+12>>2]}k=c;return}function yr(A,e,i){A=A|0;e=e|0;i=i|0;return}function Wr(A){A=A|0;return}function zr(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0;c=a[A>>2]|0;if(e){e=F3(e,138821)|0;if(e|0){t=cv(e,0)|0;h3(e)|0;f=5}}else{t=cv(a[15647]|0,0)|0;f=5}if((f|0)==5?t|0:0){n=c+168|0;e=a[n>>2]|0;if(e|0){f=a[c+172>>2]|0;if((f|0)!=0?(l=a[f+4>>2]|0,(l|0)!=0):0){F5[l&127](e);e=a[n>>2]|0}pF(e);Bh(a[n>>2]|0)|0}Kd(t,0,137483,280,1);Kd(t,1,137447,304,1);Kd(t,2,137460,176,1);a[n>>2]=t;a[(a[t+16>>2]|0)+144>>2]=c;if((wE(c,t,i)|0)!=-1){a[A+580>>2]=0;a[A+576>>2]=0;r[A+537>>0]=1}}return}function Yr(A,e){A=A|0;e=e|0;A=a[A>>2]|0;wE(A,a[A+168>>2]|0,e)|0;return}function Dr(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0;n=a[A>>2]|0;f=n+160|0;r=a[f>>2]|0;if((r|0)!=0?(a[n+164>>2]|0)==0:0){t=n+192|0;l=a[t>>2]|0;a[f>>2]=0;a[t>>2]=0;f=l}else{f=0;r=0}oE(n,a[n+168>>2]|0,e,i)|0;if(r|0){t=a[A>>2]|0;a[t+160>>2]=r;a[t+192>>2]=f}return}function Mr(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0.0,t=0.0,c=0.0,b=0;f=k;k=k+80|0;i=f+48|0;n=f;b=f+32|0;a[i>>2]=a[e>>2];a[i+4>>2]=a[e+4>>2];a[i+8>>2]=a[e+8>>2];a[i+12>>2]=a[e+12>>2];Fr(b,A,i);c=+s[b>>3];t=+s[b+8>>3];l=1.0/+s[A+352>>3];s[n+16>>3]=l+c;s[n+24>>3]=l+t;s[n>>3]=c-l;s[n+8>>3]=t-l;e=a[(a[A>>2]|0)+168>>2]|0;a[i>>2]=a[n>>2];a[i+4>>2]=a[n+4>>2];a[i+8>>2]=a[n+8>>2];a[i+12>>2]=a[n+12>>2];a[i+16>>2]=a[n+16>>2];a[i+20>>2]=a[n+20>>2];a[i+24>>2]=a[n+24>>2];a[i+28>>2]=a[n+28>>2];e=Vr(e,i)|0;i=A+576|0;if((e|0)!=(a[i>>2]|0)){Jr(A);a[i>>2]=e;pr(A);r[A+537>>0]=1}k=f;return}function Fr(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0,n=0.0,l=0;if(!(a[e+360>>2]|0)){r=+s[e+352>>3];f=+s[i+8>>3];n=r;l=e+528|0;r=+s[i>>3]/(+s[e+520>>3]*r)-+s[e+504>>3]}else{r=+s[e+352>>3];f=-+s[i>>3];n=r;l=e+520|0;r=+s[i+8>>3]/(+s[e+528>>3]*r)-+s[e+504>>3]}n=f/(+s[l>>3]*n)-+s[e+512>>3];s[A>>3]=r;s[A+8>>3]=n;return}function Vr(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;n=k;k=k+32|0;f=n;r=cd(A)|0;A:while(1){if(!r){r=9;break}i=Oo(A,r)|0;while(1){if(!i)break;a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];a[f+16>>2]=a[e+16>>2];a[f+20>>2]=a[e+20>>2];a[f+24>>2]=a[e+24>>2];a[f+28>>2]=a[e+28>>2];if((mX(i,f)|0)<<24>>24){r=6;break A}i=_o(A,i)|0}r=sd(A,r)|0}do{if((r|0)!=6)if((r|0)==9){i=bd(A)|0;while(1){if(!i)break;a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];a[f+16>>2]=a[e+16>>2];a[f+20>>2]=a[e+20>>2];a[f+24>>2]=a[e+24>>2];a[f+28>>2]=a[e+28>>2];if((IX(i,f)|0)<<24>>24){r=12;break}i=ud(A,i)|0}if((r|0)==12)break;a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];a[f+16>>2]=a[e+16>>2];a[f+20>>2]=a[e+20>>2];a[f+24>>2]=a[e+24>>2];a[f+28>>2]=a[e+28>>2];i=Nr(A,f)|0;if(!i){i=A;break}else break}}while(0);k=n;return i|0}function Jr(A){A=A|0;var e=0;e=a[A+576>>2]|0;A:do{if(e|0)switch(Md(e)|0){case 0:{e=(a[e+16>>2]|0)+112|0;r[e>>0]=r[e>>0]&-2;break A}case 1:{e=(a[e+16>>2]|0)+117|0;r[e>>0]=r[e>>0]&-2;break A}case 2:{e=(a[e+16>>2]|0)+115|0;r[e>>0]=r[e>>0]&-2;break A}default:break A}}while(0);a[A+584>>2]=0;return}function pr(A){A=A|0;var e=0,i=0;i=A+584|0;e=a[i>>2]|0;if(e|0){L2(e);a[i>>2]=0}e=a[A+576>>2]|0;A:do{if(e|0)switch(Md(e)|0){case 0:{A=(a[e+16>>2]|0)+112|0;r[A>>0]=r[A>>0]|1;A=Yo(e,0,141101,0)|0;if(!A)break A;a[i>>2]=PF(Uo(e,A)|0,e)|0;break A}case 1:{A=(a[e+16>>2]|0)+117|0;r[A>>0]=r[A>>0]|1;A=Yo(Id(e)|0,1,141101,0)|0;if(!A)break A;a[i>>2]=PF(Uo(e,A)|0,e)|0;break A}case 2:{A=(a[e+16>>2]|0)+115|0;r[A>>0]=r[A>>0]|1;A=Yo(Id(a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)|0,2,141101,0)|0;if(!A)break A;a[i>>2]=PF(Uo(e,A)|0,e)|0;break A}default:break A}}while(0);return}function Nr(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0.0,w=0.0;b=k;k=k+32|0;r=b;n=a[A+16>>2]|0;l=a[n+180>>2]|0;t=n+184|0;i=1;while(1){if((i|0)>(l|0)){c=4;break}f=a[(a[t>>2]|0)+(i<<2)>>2]|0;a[r>>2]=a[e>>2];a[r+4>>2]=a[e+4>>2];a[r+8>>2]=a[e+8>>2];a[r+12>>2]=a[e+12>>2];a[r+16>>2]=a[e+16>>2];a[r+20>>2]=a[e+20>>2];a[r+24>>2]=a[e+24>>2];a[r+28>>2]=a[e+28>>2];f=Nr(f,r)|0;if(!f)i=i+1|0;else{A=f;break}}do{if((c|0)==4){w=+s[n+24>>3];u=+s[n+40>>3];if(((+s[e+16>>3]>=+s[n+16>>3]?+s[n+32>>3]>=+s[e>>3]:0)?+s[e+24>>3]>=w:0)?u>=+s[e+8>>3]:0)break;A=0}}while(0);k=b;return A|0}function Rr(A){A=A|0;var e=0,i=0,f=0;f=A+580|0;e=a[f>>2]|0;A:do{if(e|0)switch(Md(e)|0){case 0:{i=(a[e+16>>2]|0)+112|0;r[i>>0]=r[i>>0]&-7|4;break A}case 1:{i=(a[e+16>>2]|0)+117|0;r[i>>0]=r[i>>0]&-7|4;break A}case 2:{i=(a[e+16>>2]|0)+115|0;r[i>>0]=r[i>>0]&-7|4;break A}default:break A}}while(0);e=A+588|0;i=a[e>>2]|0;if(i|0){L2(i);a[e>>2]=0}e=a[A+576>>2]|0;a[f>>2]=e;A:do{if(e|0)switch(Md(e)|0){case 0:{f=(a[e+16>>2]|0)+112|0;r[f>>0]=r[f>>0]|2;Xr(A,e);break A}case 1:{f=(a[e+16>>2]|0)+117|0;r[f>>0]=r[f>>0]|2;Hr(A,e);break A}case 2:{f=(a[e+16>>2]|0)+115|0;r[f>>0]=r[f>>0]|2;Ur(A,e);break A}default:break A}}while(0);return}function Xr(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;i=A+592|0;do{if((Zd(e)|0)==(e|0))if(!(Ih(e)|0)){Yv(i,0,111494);break}else{Yv(i,0,111486);break}else Yv(i,0,111500)}while(0);Yv(i,1,Vh(e)|0);a[A+596>>2]=2;f=A+604|0;i=0;r=2;while(1){i=Jo(e,0,i)|0;if(!i)break;Yv(f,r,a[i+8>>2]|0);Yv(f,r+1|0,Uo(e,i)|0);Yv(f,r+2|0,0);r=r+3|0}a[A+608>>2]=r;i=Yo(e,0,141055,0)|0;if(!i){i=Yo(e,0,111477,0)|0;if(i|0)n=11}else n=11;if((n|0)==11)a[A+588>>2]=PF(Uo(e,i)|0,e)|0;return}function Hr(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;f=A+592|0;Yv(f,0,111481);Yv(f,1,Vh(e)|0);a[A+596>>2]=2;f=A+604|0;n=Zd(Id(e)|0)|0;r=2;i=0;while(1){i=Jo(n,1,i)|0;if(!i)break;Yv(f,r,a[i+8>>2]|0);Yv(f,r|1,Uo(e,i)|0);r=r+2|0}a[A+608>>2]=r;i=Yo(Id(e)|0,1,141055,0)|0;if(!i){i=Yo(Id(e)|0,1,111477,0)|0;if(i|0)l=6}else l=6;if((l|0)==6)a[A+588>>2]=PF(Uo(e,i)|0,e)|0;return}function Ur(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0;l=A+592|0;Yv(l,0,111450);s=e+48|0;Yv(l,1,Vh(a[((a[e>>2]&3|0)==3?e:s)+40>>2]|0)|0);s=(Ih(Id(a[((a[e>>2]&3|0)==3?e:s)+40>>2]|0)|0)|0)!=0;Yv(l,3,s?137738:141747);s=e+-48|0;Yv(l,4,Vh(a[((a[e>>2]&3|0)==2?e:s)+40>>2]|0)|0);a[A+596>>2]=7;t=A+604|0;c=Zd(Id(a[((a[e>>2]&3|0)==2?e:s)+40>>2]|0)|0)|0;n=7;i=0;A:while(1){while(1){i=Jo(c,2,i)|0;if(!i)break A;r=i+8|0;f=a[r>>2]|0;if(!(A1(f,111455)|0)){b=5;break}if(!(A1(f,111464)|0)){b=7;break}if(A1(f,111473)|0)break;Yv(l,6,Uo(e,i)|0)}if((b|0)==5){b=0;Yv(l,2,Uo(e,i)|0)}else if((b|0)==7){b=0;Yv(l,5,Uo(e,i)|0)}Yv(t,n,a[r>>2]|0);Yv(t,n+1|0,Uo(e,i)|0);n=n+2|0}a[A+608>>2]=n;i=Yo(Id(a[((a[e>>2]&3|0)==2?e:s)+40>>2]|0)|0,2,141055,0)|0;if(!i){i=Yo(Id(a[((a[e>>2]&3|0)==2?e:s)+40>>2]|0)|0,2,111477,0)|0;if(i|0)b=13}else b=13;if((b|0)==13)a[A+588>>2]=PF(Uo(e,i)|0,e)|0;return}function xr(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;n=Tr(A,e,a[i>>2]|0)|0;i=a[i+4>>2]|0;while(1){f=a[i+4>>2]|0;if(!f)break;e=0;while(1){r=a[f+(e*20|0)+4>>2]|0;if(!r)break;Fv(A,a[i>>2]|0,r,a[f+(e*20|0)+8>>2]|0,n,f+(e*20|0)|0)|0;e=e+1|0}i=i+8|0}return}function Tr(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=$F(12)|0;if(!e)e=0;else e=b3(e)|0;a[r+4>>2]=e;a[r+8>>2]=b3(i)|0;i=A+100|0;a[r>>2]=a[i>>2];a[i>>2]=r;return r|0}function jr(A,e){A=A|0;e=e|0;Pr(A);r[A+44>>0]=0;Sr(A)|0;fR(A)|0;return}function Pr(A){A=A|0;var e=0,i=0;e=a[A+32>>2]|0;A:do{if(e|0)while(1){i=a[e>>2]|0;if(!i)break A;if((r[i>>0]|0)==103?N4(i,111509)|0:0)xr(A,0,a[e+4>>2]|0);e=e+8|0}}while(0);return}function Sr(A){A=A|0;var e=0;e=Jv(A,2,111522)|0;if(!e)A=999;else{a[A+148>>2]=a[(a[e+16>>2]|0)+12>>2];A=300}return A|0}function Or(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;A=a[A+148>>2]|0;if((A|0)!=0?(r=a[A>>2]|0,(r|0)!=0):0)A=Q5[r&127](e,i)|0;else A=0;return A|0}function Kr(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;return(a[e>>2]|0)-(a[i>>2]|0)|0}function _r(A){A=A|0;var e=0.0,i=0.0;A=a[A+16>>2]|0;i=+s[A+16>>3];e=+s[A+24>>3];return(qr(~~(i>e?i:e)>>>0)|0)+1|0}function qr(A){A=A|0;var e=0,i=0;if(!A)A=-1;else{i=A>>>0>65535;A=i?A>>>16:A;i=i?16:0;e=A>>>0>255;A=e?A>>>8:A;i=e?i|8:i;e=A>>>0>15;A=e?A>>>4:A;i=e?i|4:i;e=A>>>0>3;A=(e?i|2:i)+((e?A>>>2:A)>>>0>1&1)|0}return A|0}function $r(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0.0,t=0.0,c=0,b=0,u=0,w=0,o=0,h=0,d=0;d=k;k=k+32|0;h=d;o=Af(A,e,i,f,n)|0;i=ef(o)|0;if((i|0)>=0){u=h+16|0;w=h+24|0;b=h+8|0;c=n+32|0;i=0;n=0;while(1){if((n|0)>=(e|0))break;f=A+(n*40|0)+32|0;do{if(a[f>>2]|0){rf(h,o,A+(n*40|0)|0);l=+s[u>>3];t=+s[w>>3];if(!(a[h>>2]|0)){r[(a[f>>2]|0)+36>>0]=1;break}if(+s[b>>3]==0.0){f=a[f>>2]|0;s[f+16>>3]=l;s[f+24>>3]=t;r[f+36>>0]=1;break}if((r[c>>0]|0)==1){f=a[f>>2]|0;s[f+16>>3]=l;s[f+24>>3]=t;r[f+36>>0]=1}else i=1}}while(0);n=n+1|0}ff(o)}k=d;return i|0}function Af(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0;n=qF(28)|0;c=jk(25912,a[4584]|0)|0;l=n+20|0;a[l>>2]=c;do{if(c){c=Nn()|0;a[n+24>>2]=c;if(!c){L3(111740,14,1,a[15712]|0)|0;t=6;break}else{a[n>>2]=A;a[n+4>>2]=e;a[n+8>>2]=i;a[n+12>>2]=r;a[n+16>>2]=f;break}}else{L3(111740,14,1,a[15712]|0)|0;t=6}}while(0);if((t|0)==6){A=a[l>>2]|0;if(A|0)Hk(A)|0;A=a[n+24>>2]|0;if(A|0)Xn(A)|0;L2(n);n=0}return n|0}function ef(A){A=A|0;var e=0;e=wf(A)|0;if((e|0)>=0){kf(A);of(A);e=Hk(a[A+20>>2]|0)|0}return e|0}function rf(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0,n=0,l=0.0,t=0,c=0.0,b=0,u=0,w=0,o=0,h=0.0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0.0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0.0,J=0,p=0;p=k;k=k+464|0;F=p+416|0;J=p+400|0;Y=p+384|0;b=p+352|0;u=p+320|0;w=p+288|0;o=p+256|0;d=p+224|0;B=p+192|0;g=p+160|0;v=p+128|0;E=p+96|0;I=p+64|0;Z=p+32|0;D=p;G=a[i+32>>2]|0;r=+s[G>>3];L=i+16|0;m=(r*2.0+ +s[L>>3])*.125;y=G+8|0;M=i+24|0;l=+s[M>>3];V=(+s[y>>3]*2.0+l)*.5;if(!G)gA(111533,111543,445,111553);f=F;n=f+36|0;do{a[f>>2]=0;f=f+4|0}while((f|0)<(n|0));Q=G+16|0;s[Q>>3]=+s[i>>3]-r;W=i+8|0;z=G+24|0;s[z>>3]=l+ +s[W>>3];af(b,e,i,F);t=a[b>>2]|0;f=a[b+4>>2]|0;r=+s[b+8>>3];b=b+16|0;a[J>>2]=a[b>>2];a[J+4>>2]=a[b+4>>2];a[J+8>>2]=a[b+8>>2];a[J+12>>2]=a[b+12>>2];A:do{if(!t){a[A>>2]=0;a[A+4>>2]=f;s[A+8>>3]=r;A=A+16|0;a[A>>2]=a[J>>2];a[A+4>>2]=a[J+4>>2];a[A+8>>2]=a[J+8>>2];a[A+12>>2]=a[J+12>>2]}else{s[z>>3]=+s[W>>3];af(u,e,i,F);n=a[u>>2]|0;b=a[u+4>>2]|0;l=+s[u+8>>3];u=u+16|0;a[Y>>2]=a[u>>2];a[Y+4>>2]=a[u+4>>2];a[Y+8>>2]=a[u+8>>2];a[Y+12>>2]=a[u+12>>2];if(!n){a[A>>2]=0;a[A+4>>2]=b;s[A+8>>3]=l;A=A+16|0;a[A>>2]=a[Y>>2];a[A+4>>2]=a[Y+4>>2];a[A+8>>2]=a[Y+8>>2];a[A+12>>2]=a[Y+12>>2];break}if(l>2]=a[Y>>2];a[J+4>>2]=a[Y+4>>2];a[J+8>>2]=a[Y+8>>2];a[J+12>>2]=a[Y+12>>2];f=b;r=l}else n=t;s[z>>3]=+s[W>>3]-+s[y>>3];af(w,e,i,F);b=a[w>>2]|0;t=a[w+4>>2]|0;l=+s[w+8>>3];w=w+16|0;a[Y>>2]=a[w>>2];a[Y+4>>2]=a[w+4>>2];a[Y+8>>2]=a[w+8>>2];a[Y+12>>2]=a[w+12>>2];if(!b){a[A>>2]=0;a[A+4>>2]=t;s[A+8>>3]=l;A=A+16|0;a[A>>2]=a[Y>>2];a[A+4>>2]=a[Y+4>>2];a[A+8>>2]=a[Y+8>>2];a[A+12>>2]=a[Y+12>>2];break}if(l>2]=a[Y>>2];a[J+4>>2]=a[Y+4>>2];a[J+8>>2]=a[Y+8>>2];a[J+12>>2]=a[Y+12>>2];f=t;r=l}else b=n;s[Q>>3]=+s[i>>3];s[z>>3]=+s[M>>3]+ +s[W>>3];af(o,e,i,F);n=a[o>>2]|0;t=a[o+4>>2]|0;l=+s[o+8>>3];o=o+16|0;a[Y>>2]=a[o>>2];a[Y+4>>2]=a[o+4>>2];a[Y+8>>2]=a[o+8>>2];a[Y+12>>2]=a[o+12>>2];if(!n){a[A>>2]=0;a[A+4>>2]=t;s[A+8>>3]=l;A=A+16|0;a[A>>2]=a[Y>>2];a[A+4>>2]=a[Y+4>>2];a[A+8>>2]=a[Y+8>>2];a[A+12>>2]=a[Y+12>>2];break}if(l>2]=a[Y>>2];a[J+4>>2]=a[Y+4>>2];a[J+8>>2]=a[Y+8>>2];a[J+12>>2]=a[Y+12>>2];b=n;f=t;r=l}s[z>>3]=+s[W>>3]-+s[y>>3];af(d,e,i,F);n=a[d>>2]|0;t=a[d+4>>2]|0;l=+s[d+8>>3];d=d+16|0;a[Y>>2]=a[d>>2];a[Y+4>>2]=a[d+4>>2];a[Y+8>>2]=a[d+8>>2];a[Y+12>>2]=a[d+12>>2];if(!n){a[A>>2]=0;a[A+4>>2]=t;s[A+8>>3]=l;A=A+16|0;a[A>>2]=a[Y>>2];a[A+4>>2]=a[Y+4>>2];a[A+8>>2]=a[Y+8>>2];a[A+12>>2]=a[Y+12>>2];break}if(l>2]=a[Y>>2];a[J+4>>2]=a[Y+4>>2];a[J+8>>2]=a[Y+8>>2];a[J+12>>2]=a[Y+12>>2];b=n;f=t;r=l}s[Q>>3]=+s[L>>3]+ +s[i>>3];s[z>>3]=+s[M>>3]+ +s[W>>3];af(B,e,i,F);n=a[B>>2]|0;t=a[B+4>>2]|0;l=+s[B+8>>3];B=B+16|0;a[Y>>2]=a[B>>2];a[Y+4>>2]=a[B+4>>2];a[Y+8>>2]=a[B+8>>2];a[Y+12>>2]=a[B+12>>2];if(!n){a[A>>2]=0;a[A+4>>2]=t;s[A+8>>3]=l;A=A+16|0;a[A>>2]=a[Y>>2];a[A+4>>2]=a[Y+4>>2];a[A+8>>2]=a[Y+8>>2];a[A+12>>2]=a[Y+12>>2];break}if(l>2]=a[Y>>2];a[J+4>>2]=a[Y+4>>2];a[J+8>>2]=a[Y+8>>2];a[J+12>>2]=a[Y+12>>2];b=n;f=t;r=l}s[z>>3]=+s[W>>3];af(g,e,i,F);n=a[g>>2]|0;t=a[g+4>>2]|0;l=+s[g+8>>3];g=g+16|0;a[Y>>2]=a[g>>2];a[Y+4>>2]=a[g+4>>2];a[Y+8>>2]=a[g+8>>2];a[Y+12>>2]=a[g+12>>2];if(!n){a[A>>2]=0;a[A+4>>2]=t;s[A+8>>3]=l;A=A+16|0;a[A>>2]=a[Y>>2];a[A+4>>2]=a[Y+4>>2];a[A+8>>2]=a[Y+8>>2];a[A+12>>2]=a[Y+12>>2];break}if(l>2]=a[Y>>2];a[J+4>>2]=a[Y+4>>2];a[J+8>>2]=a[Y+8>>2];a[J+12>>2]=a[Y+12>>2];b=n;f=t;r=l}s[z>>3]=+s[W>>3]-+s[y>>3];af(v,e,i,F);n=a[v>>2]|0;t=a[v+4>>2]|0;l=+s[v+8>>3];v=v+16|0;a[Y>>2]=a[v>>2];a[Y+4>>2]=a[v+4>>2];a[Y+8>>2]=a[v+8>>2];a[Y+12>>2]=a[v+12>>2];if(!n){a[A>>2]=0;a[A+4>>2]=t;s[A+8>>3]=l;A=A+16|0;a[A>>2]=a[Y>>2];a[A+4>>2]=a[Y+4>>2];a[A+8>>2]=a[Y+8>>2];a[A+12>>2]=a[Y+12>>2];break}if(l>2]=a[Y>>2];a[J+4>>2]=a[Y+4>>2];a[J+8>>2]=a[Y+8>>2];a[J+12>>2]=a[Y+12>>2];f=t;r=l}else n=b;t=(a[F+28>>2]|0)==0;do{if(!(a[F+24>>2]|0))if(t){if(a[F+32>>2]|0){C=38;break}if(!((a[F+12>>2]|0)==0&(a[F>>2]|0)==0))C=38}else C=46;else if(t)C=38;else C=46}while(0);e:do{if((C|0)==38)if(!(a[F+32>>2]|0)){s[Q>>3]=+s[i>>3]-+s[G>>3];o=E+4|0;d=E+8|0;B=E+16|0;b=z;t=W;l=+s[M>>3];i:while(1){while(1){s[b>>3]=+s[t>>3]+l;if(!(+s[Q>>3]<=+s[L>>3]+ +s[i>>3])){C=46;break e}af(E,e,i,F);u=a[E>>2]|0;w=a[o>>2]|0;c=+s[d>>3];a[Y>>2]=a[B>>2];a[Y+4>>2]=a[B+4>>2];a[Y+8>>2]=a[B+8>>2];a[Y+12>>2]=a[B+12>>2];if(!u)break i;if(c>2]=a[Y>>2];a[J+4>>2]=a[Y+4>>2];a[J+8>>2]=a[Y+8>>2];a[J+12>>2]=a[Y+12>>2];b=Q;t=Q;l=m;n=u;f=w;r=c}a[A>>2]=0;a[A+4>>2]=w;s[A+8>>3]=c;A=A+16|0;a[A>>2]=a[Y>>2];a[A+4>>2]=a[Y+4>>2];a[A+8>>2]=a[Y+8>>2];a[A+12>>2]=a[Y+12>>2];break A}else C=46}while(0);e:do{if((C|0)==46)if((a[F+12>>2]|0)==0&(a[F>>2]|0)==0){s[Q>>3]=+s[i>>3]-+s[G>>3];c=+s[W>>3];u=I+4|0;w=I+8|0;o=I+16|0;l=c;c=+s[M>>3]+c;while(1){s[z>>3]=c;if(!(c>=l-+s[y>>3]))break e;af(I,e,i,F);t=a[I>>2]|0;b=a[u>>2]|0;l=+s[w>>3];a[Y>>2]=a[o>>2];a[Y+4>>2]=a[o+4>>2];a[Y+8>>2]=a[o+8>>2];a[Y+12>>2]=a[o+12>>2];if(!t)break;if(l>2]=a[Y>>2];a[J+4>>2]=a[Y+4>>2];a[J+8>>2]=a[Y+8>>2];a[J+12>>2]=a[Y+12>>2];n=t;f=b;r=l}l=+s[W>>3];c=+s[z>>3]-V}a[A>>2]=0;a[A+4>>2]=b;s[A+8>>3]=l;A=A+16|0;a[A>>2]=a[Y>>2];a[A+4>>2]=a[Y+4>>2];a[A+8>>2]=a[Y+8>>2];a[A+12>>2]=a[Y+12>>2];break A}}while(0);l=+s[i>>3];c=+s[L>>3]+l;s[Q>>3]=c;h=+s[y>>3];s[z>>3]=+s[W>>3]-h;t=a[F+4>>2]|0;do{if(!(a[F+8>>2]|0)){b=a[F>>2]|0;if(!((t|0)==0&(b|0)==0)){C=59;break}if(a[F+20>>2]|0){t=0;b=0;C=59;break}if(a[F+32>>2]|0){t=0;b=0;C=59}}else{b=a[F>>2]|0;C=59}}while(0);e:do{if((C|0)==59){i:do{if((t|0)==0&(b|0)==0){s[Q>>3]=c;o=Z+4|0;d=Z+8|0;B=Z+16|0;b=z;t=W;l=h;r:while(1){while(1){s[b>>3]=+s[t>>3]-l;l=+s[i>>3];if(!(+s[Q>>3]>=l-+s[G>>3]))break i;af(Z,e,i,F);u=a[Z>>2]|0;w=a[o>>2]|0;c=+s[d>>3];a[Y>>2]=a[B>>2];a[Y+4>>2]=a[B+4>>2];a[Y+8>>2]=a[B+8>>2];a[Y+12>>2]=a[B+12>>2];if(!u)break r;if(c>2]=a[Y>>2];a[J+4>>2]=a[Y+4>>2];a[J+8>>2]=a[Y+8>>2];a[J+12>>2]=a[Y+12>>2];b=Q;t=Q;l=m;n=u;f=w;r=c}a[A>>2]=0;a[A+4>>2]=w;s[A+8>>3]=c;A=A+16|0;a[A>>2]=a[Y>>2];a[A+4>>2]=a[Y+4>>2];a[A+8>>2]=a[Y+8>>2];a[A+12>>2]=a[Y+12>>2];break A}}while(0);if(a[F+20>>2]|0)break;if(a[F+32>>2]|0)break;s[Q>>3]=+s[L>>3]+l;l=+s[W>>3];u=D+4|0;w=D+8|0;o=D+16|0;c=l;l=l-+s[y>>3];while(1){s[z>>3]=l;if(!(l<=+s[M>>3]+c))break e;af(D,e,i,F);t=a[D>>2]|0;b=a[u>>2]|0;l=+s[w>>3];a[Y>>2]=a[o>>2];a[Y+4>>2]=a[o+4>>2];a[Y+8>>2]=a[o+8>>2];a[Y+12>>2]=a[o+12>>2];if(!t)break;if(l>2]=a[Y>>2];a[J+4>>2]=a[Y+4>>2];a[J+8>>2]=a[Y+8>>2];a[J+12>>2]=a[Y+12>>2];n=t;f=b;r=l}c=+s[W>>3];l=+s[z>>3]+V}a[A>>2]=0;a[A+4>>2]=b;s[A+8>>3]=l;A=A+16|0;a[A>>2]=a[Y>>2];a[A+4>>2]=a[Y+4>>2];a[A+8>>2]=a[Y+8>>2];a[A+12>>2]=a[Y+12>>2];break A}}while(0);a[A>>2]=n;a[A+4>>2]=f;s[A+8>>3]=r;A=A+16|0;a[A>>2]=a[J>>2];a[A+4>>2]=a[J+4>>2];a[A+8>>2]=a[J+8>>2];a[A+12>>2]=a[J+12>>2]}}while(0);k=p;return}function ff(A){A=A|0;Xn(a[A+24>>2]|0)|0;L2(A);return}function af(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0.0,t=0,c=0,b=0,u=0.0,w=0,o=0,h=0,d=0.0,B=0,g=0;g=k;k=k+48|0;h=g+32|0;B=g+16|0;o=g;n=a[i+32>>2]|0;if(!n)gA(111533,111543,382,111562);w=n+16|0;a[o>>2]=a[w>>2];a[o+4>>2]=a[w+4>>2];a[o+8>>2]=a[w+8>>2];a[o+12>>2]=a[w+12>>2];w=e+4|0;b=0;n=0;while(1){if((b|0)>=(a[w>>2]|0))break;t=a[e>>2]|0;c=t+(b*40|0)|0;do{if((c|0)!=(i|0)){if(+s[t+(b*40|0)+16>>3]>0.0?+s[t+(b*40|0)+24>>3]>0.0:0)break;n=n+((nf(i,c)|0)!=0&1)|0}}while(0);b=b+1|0}lf(i,h);b=a[e+24>>2]|0;b=Un(b,a[b>>2]|0,h)|0;if(!b){a[A>>2]=n;s[A+8>>3]=0.0;B=A+16|0;a[B>>2]=a[o>>2];a[B+4>>2]=a[o+4>>2];a[B+8>>2]=a[o+8>>2];a[B+12>>2]=a[o+12>>2]}else{c=b;l=0.0;while(1){if(!c)break;t=a[(a[c+4>>2]|0)+16>>2]|0;if((t|0)!=(i|0)){tf(t,B);u=+cf(h,B);if(u>0.0){n=n+1|0;l=+sf(i,t,h,u,f)+l}e=a[t+32>>2]|0;if(((e|0)!=0?(r[e+36>>0]|0)!=0:0)?(lf(t,B),d=+cf(h,B),d>0.0):0){n=n+1|0;l=+bf(i,t,h,d,f)+l}}c=a[c>>2]|0}pn(b);a[A>>2]=n;s[A+8>>3]=l;B=A+16|0;a[B>>2]=a[o>>2];a[B+4>>2]=a[o+4>>2];a[B+8>>2]=a[o+8>>2];a[B+12>>2]=a[o+12>>2]}k=g;return}function nf(A,e){A=A|0;e=e|0;var i=0.0,r=0.0,f=0.0,n=0.0;A=a[A+32>>2]|0;if(+s[e+16>>3]==0.0?+s[e+24>>3]==0.0:0){if((((A|0)!=0?(i=+s[e>>3],r=+s[A+16>>3],i>r):0)?i<+s[A>>3]+r:0)?(f=+s[e+8>>3],n=+s[A+24>>3],f>n):0)A=f<+s[A+8>>3]+n&1;else A=0;return A|0}gA(111599,111543,219,111636);return 0}function lf(A,e){A=A|0;e=e|0;var i=0.0,r=0.0;A=a[A+32>>2]|0;r=+s[A+16>>3];a[e>>2]=~~r;i=+s[A+24>>3];a[e+4>>2]=~~i;a[e+8>>2]=~~(+s[A>>3]+r);a[e+12>>2]=~~(+s[A+8>>3]+i);return}function tf(A,e){A=A|0;e=e|0;var i=0.0,r=0.0;r=+s[A>>3];a[e>>2]=~~r;i=+s[A+8>>3];a[e+4>>2]=~~i;a[e+8>>2]=~~(+s[A+16>>3]+r);a[e+12>>2]=~~(+s[A+24>>3]+i);return}function cf(A,e){A=A|0;e=e|0;var i=0.0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0;t=a[A+8>>2]|0;c=a[e>>2]|0;if((((t|0)>=(c|0)?(s=a[A>>2]|0,b=a[e+8>>2]|0,(s|0)<=(b|0)):0)?(r=a[A+12>>2]|0,f=a[e+4>>2]|0,(r|0)>=(f|0)):0)?(n=a[A+4>>2]|0,l=a[e+12>>2]|0,(n|0)<=(l|0)):0)i=(+(a[((r|0)<(l|0)?A:e)+12>>2]|0)-+(a[((n|0)>(f|0)?A:e)+4>>2]|0))*(+(a[((t|0)<(b|0)?A:e)+8>>2]|0)-+(a[((s|0)>(c|0)?A:e)>>2]|0));else i=0.0;return+i}function sf(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=+r;f=f|0;var n=0.0,l=0.0,t=0,c=0;c=k;k=k+16|0;t=c;A=uf(A,e)|0;f=f+(((A|0)<0?5:A)<<2)|0;A=a[f>>2]|0;if(!A){a[f>>2]=e;n=r}else{tf(A,t);n=+cf(i,t);n=n>r?n:0.0;A=a[f>>2]|0;if((a[A+32>>2]|0)!=0?(lf(A,t),l=+cf(i,t),l>r):0)n=l>n?l:n;if(!(n>0.0)){a[f>>2]=e;n=r}}k=c;return+n}function bf(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=+r;f=f|0;var n=0.0,l=0.0,t=0,c=0;c=k;k=k+16|0;t=c;A=uf(A,e)|0;f=f+(((A|0)<0?5:A)<<2)|0;A=a[f>>2]|0;if(!A){a[f>>2]=e;n=r}else{tf(A,t);n=+cf(i,t);n=n>r?n:0.0;A=a[f>>2]|0;if((a[A+32>>2]|0)!=0?(lf(A,t),l=+cf(i,t),l>r):0)n=l>n?l:n;if(!(n>0.0)){a[f>>2]=e;n=r}}k=c;return+n}function uf(A,e){A=A|0;e=e|0;var i=0,f=0,n=0.0,l=0.0,t=0.0,c=0.0;i=a[A+32>>2]|0;f=a[e+32>>2]|0;if((i|0)==(f|0))gA(111578,111543,276,111588);do{if((r[i+36>>0]|0)!=0?(r[f+36>>0]|0)!=0:0){t=+s[A>>3];if(t==0.0?+s[A+8>>3]==0.0:0){i=-1;break}c=+s[e>>3];l=+s[e+8>>3];if(!(c==0.0&l==0.0)){n=+s[A+8>>3];if(lt?2:1;break}i=cn){if(i){i=6;break}i=c>t?8:7;break}if(!i)if(c>t)i=5;else i=-1;else i=3}else i=-1}else i=-1}while(0);return i|0}function wf(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;s=k;k=k+32|0;i=s+24|0;r=s+16|0;f=s;n=_r(A)|0;l=A+4|0;t=r+4|0;c=A+20|0;e=0;while(1){if((e|0)>=(a[l>>2]|0)){e=0;break}b=qF(32)|0;w=(a[A>>2]|0)+(e*40|0)|0;u=b+12|0;a[b+28>>2]=w;hf(f,w);a[u>>2]=a[f>>2];a[u+4>>2]=a[f+4>>2];a[u+8>>2]=a[f+8>>2];a[u+12>>2]=a[f+12>>2];u=a[u>>2]|0;a[r>>2]=(((a[b+20>>2]|0)-u|0)/2|0)+u;u=a[b+16>>2]|0;a[t>>2]=(((a[b+24>>2]|0)-u|0)/2|0)+u;a[i>>2]=a[r>>2];a[i+4>>2]=a[r+4>>2];a[b+8>>2]=df(i,n)|0;u=a[c>>2]|0;if(!(y5[a[u>>2]&63](u,b,1)|0)){e=-1;break}else e=e+1|0}k=s;return e|0}function kf(A){A=A|0;var e=0,i=0,r=0;i=A+20|0;r=a[i>>2]|0;e=A+24|0;A=y5[a[r>>2]&63](r,0,128)|0;while(1){if(!A)break;r=a[e>>2]|0;xn(r,A+12|0,a[A+28>>2]|0,r,0)|0;r=a[i>>2]|0;A=y5[a[r>>2]&63](r,A,8)|0}return}function of(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0;r=A+20|0;f=Sk(a[r>>2]|0)|0;i=0;while(1){if(!(Sk(a[r>>2]|0)|0))break;n=a[r>>2]|0;A=a[(a[n+8>>2]|0)+4>>2]|0;if(!A){l=8;break}e=a[(a[n+4>>2]|0)+8>>2]|0;if((e|0)<0)A=a[A+8>>2]|0;else A=A+(0-e)|0;if(!A){l=8;break}y5[a[n>>2]&63](n,A,4096)|0;L2(A);i=i+1|0}if((l|0)==8)gA(111649,111543,616,111652);if((f|0)==(i|0))return;else gA(111664,111543,623,111652)}function hf(A,e){A=A|0;e=e|0;var i=0,r=0.0,f=0.0,n=0.0,l=0,t=0,c=0,b=0.0;i=a[e+32>>2]|0;if(!i){r=0.0;f=0.0}else{r=+s[i>>3];f=+s[i+8>>3]}b=+s[e>>3];c=~~+y(+(b-r));n=+s[e+8>>3];t=~~+y(+(n-f));l=~~+H(+(b+r+ +s[e+16>>3]));if((l|0)==2147483647)gA(111676,111543,264,111703);i=~~+H(+(n+f+ +s[e+24>>3]));if((i|0)==2147483647)gA(111713,111543,266,111703);else{a[A>>2]=c;a[A+4>>2]=t;a[A+8>>2]=l;a[A+12>>2]=i;return}}function df(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;f=0;r=a[A>>2]|0;i=a[A+4>>2]|0;while(1){A=e+-1|0;if((e|0)<=0)break;t=r>>>A&1;e=i>>>A&1;n=e+-1|0;l=n&(r^i);n=n&0-t;f=t<<1|f<<2|t^e;e=A;r=l^r^n;i=l^i^n}return f|0}function Bf(A){A=A|0;var e=0,i=0,f=0,n=0;e=P2(A)|0;if(e>>>0>=(a[47365]|0)>>>0){e=e+11|0;a[47365]=e;e=eV(a[47366]|0,e)|0;a[47366]=e;if(!e)e=0;else i=4}else{e=a[47366]|0;i=4}if((i|0)==4){n=e;while(1){i=r[A>>0]|0;if(!(i<<24>>24))break;f=i&255;if(R1(f)|0)i=(N1(f)|0)&255;r[n>>0]=i;n=n+1|0;A=A+1|0}r[n>>0]=0}return e|0}function gf(A,e,i){A=A|0;e=e|0;i=i|0;var f=0.0,l=0,t=0.0,c=0.0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0.0;z=k;k=k+144|0;B=z+96|0;o=z+80|0;E=z+124|0;g=z+72|0;C=z+64|0;I=z+56|0;L=z+48|0;y=z+40|0;W=z+32|0;Z=z+24|0;G=z+16|0;m=z+8|0;Q=z;l=z+120|0;b=z+116|0;u=z+112|0;w=z+108|0;a[e+32>>2]=i;d=A;while(1)if((r[d>>0]|0)==32)d=d+1|0;else break;a[w>>2]=255;A=r[d>>0]|0;A:do{if(A<<24>>24==35){a[o>>2]=l;a[o+4>>2]=b;a[o+8>>2]=u;a[o+12>>2]=w;if((J3(d,111755,o)|0)<=2){A=r[d>>0]|0;h=12;break}switch(i|0){case 0:{Y=+((a[l>>2]|0)>>>0)*.00392156862745098;s[L>>3]=Y;f=+((a[b>>2]|0)>>>0)*.00392156862745098;s[y>>3]=f;t=+((a[u>>2]|0)>>>0)*.00392156862745098;s[W>>3]=t;c=+((a[w>>2]|0)>>>0)*.00392156862745098;vf(Y,f,t,g,C,I);s[e>>3]=+s[g>>3];s[e+8>>3]=+s[C>>3];s[e+16>>3]=+s[I>>3];s[e+24>>3]=c;A=0;break A}case 1:{r[e>>0]=a[l>>2];r[e+1>>0]=a[b>>2];r[e+2>>0]=a[u>>2];r[e+3>>0]=a[w>>2];A=0;break A}case 3:{t=+((a[l>>2]|0)>>>0)*.00392156862745098;s[L>>3]=t;c=+((a[b>>2]|0)>>>0)*.00392156862745098;s[y>>3]=c;Y=+((a[u>>2]|0)>>>0)*.00392156862745098;s[W>>3]=Y;Ef(t,c,Y,Z,G,m,Q);r[e>>0]=~~+s[Z>>3]*255;r[e+1>>0]=~~+s[G>>3]*255;r[e+2>>0]=~~+s[m>>3]*255;r[e+3>>0]=~~+s[Q>>3]*255;A=0;break A}case 2:{a[e>>2]=(((a[l>>2]|0)*65535|0)>>>0)/255|0;a[e+4>>2]=(((a[b>>2]|0)*65535|0)>>>0)/255|0;a[e+8>>2]=(((a[u>>2]|0)*65535|0)>>>0)/255|0;a[e+12>>2]=(((a[w>>2]|0)*65535|0)>>>0)/255|0;A=0;break A}case 4:{s[e>>3]=+((a[l>>2]|0)>>>0)*.00392156862745098;s[e+8>>3]=+((a[b>>2]|0)>>>0)*.00392156862745098;s[e+16>>3]=+((a[u>>2]|0)>>>0)*.00392156862745098;s[e+24>>3]=+((a[w>>2]|0)>>>0)*.00392156862745098;A=0;break A}default:{A=0;break A}}}else h=12}while(0);A:do{if((h|0)==12){if(!(A<<24>>24!=46?((A&255)+-48|0)>>>0>=10:0)){A=P2(d)|0;if(A>>>0>=(a[47367]|0)>>>0){A=A+11|0;a[47367]=A;A=eV(a[47368]|0,A)|0;a[47368]=A;if(!A){A=-1;break}}else A=a[47368]|0;b=A;l=d;e:while(1){u=l+1|0;l=r[l>>0]|0;switch(l<<24>>24){case 0:break e;case 44:{l=32;break}default:{}}r[b>>0]=l;b=b+1|0;l=u}r[b>>0]=0;a[B>>2]=g;a[B+4>>2]=C;a[B+8>>2]=I;if((J3(A,111769,B)|0)==3){c=+s[g>>3];c=c<1.0?c:1.0;c=c>0.0?c:0.0;s[g>>3]=c;t=+s[C>>3];t=t<1.0?t:1.0;t=t>0.0?t:0.0;s[C>>3]=t;f=+s[I>>3];f=f<1.0?f:1.0;f=f>0.0?f:0.0;s[I>>3]=f;switch(i|0){case 0:{s[e>>3]=c;s[e+8>>3]=t;s[e+16>>3]=f;s[e+24>>3]=1.0;A=0;break A}case 1:{Cf(c,t,f,L,y,W);r[e>>0]=~~(+s[L>>3]*255.0);r[e+1>>0]=~~(+s[y>>3]*255.0);r[e+2>>0]=~~(+s[W>>3]*255.0);r[e+3>>0]=-1;A=0;break A}case 3:{Cf(c,t,f,L,y,W);Ef(+s[L>>3],+s[y>>3],+s[W>>3],Z,G,m,Q);r[e>>0]=~~+s[Z>>3]*255;r[e+1>>0]=~~+s[G>>3]*255;r[e+2>>0]=~~+s[m>>3]*255;r[e+3>>0]=~~+s[Q>>3]*255;A=0;break A}case 2:{Cf(c,t,f,L,y,W);a[e>>2]=~~(+s[L>>3]*65535.0);a[e+4>>2]=~~(+s[y>>3]*65535.0);a[e+8>>2]=~~(+s[W>>3]*65535.0);a[e+12>>2]=65535;A=0;break A}case 4:{Cf(c,t,f,L,y,W);s[e>>3]=+s[L>>3];s[e+8>>3]=+s[y>>3];s[e+16>>3]=+s[W>>3];s[e+24>>3]=1.0;A=0;break A}default:{A=0;break A}}}}l=If(d)|0;a[E>>2]=l;if(!l)A=-1;else{A=a[47369]|0;if(!(((A|0)!=0?(v=a[A>>2]|0,(r[v>>0]|0)==(r[l>>0]|0)):0)?(A1(v,l)|0)==0:0)){A=i8(E,25948,2491,12,103)|0;a[47369]=A;if(!A)switch(i|0){case 0:{a[e>>2]=0;a[e+4>>2]=0;a[e+8>>2]=0;a[e+12>>2]=0;a[e+16>>2]=0;a[e+20>>2]=0;s[e+24>>3]=1.0;A=1;break A}case 1:{r[e+2>>0]=0;r[e+1>>0]=0;r[e>>0]=0;r[e+3>>0]=-1;A=1;break A}case 3:{a[e>>2]=0;A=1;break A}case 2:{a[e+8>>2]=0;a[e+4>>2]=0;a[e>>2]=0;a[e+12>>2]=65535;A=1;break A}case 4:{a[e>>2]=0;a[e+4>>2]=0;a[e+8>>2]=0;a[e+12>>2]=0;a[e+16>>2]=0;a[e+20>>2]=0;s[e+24>>3]=1.0;A=1;break A}default:{A=1;break A}}}switch(i|0){case 0:{s[e>>3]=+(n[A+4>>0]|0)*.00392156862745098;s[e+8>>3]=+(n[A+5>>0]|0)*.00392156862745098;s[e+16>>3]=+(n[A+6>>0]|0)*.00392156862745098;s[e+24>>3]=+(n[A+10>>0]|0)*.00392156862745098;A=0;break A}case 1:{r[e>>0]=r[A+7>>0]|0;r[e+1>>0]=r[A+8>>0]|0;r[e+2>>0]=r[A+9>>0]|0;r[e+3>>0]=r[A+10>>0]|0;A=0;break A}case 3:{t=+(n[A+7>>0]|0)*.00392156862745098;s[L>>3]=t;c=+(n[A+8>>0]|0)*.00392156862745098;s[y>>3]=c;Y=+(n[A+9>>0]|0)*.00392156862745098;s[W>>3]=Y;Ef(t,c,Y,Z,G,m,Q);r[e>>0]=~~+s[Z>>3]*255;r[e+1>>0]=~~+s[G>>3]*255;r[e+2>>0]=~~+s[m>>3]*255;r[e+3>>0]=~~+s[Q>>3]*255;A=0;break A}case 2:{a[e>>2]=(n[A+7>>0]|0)*257;a[e+4>>2]=(n[A+8>>0]|0)*257;a[e+8>>2]=(n[A+9>>0]|0)*257;a[e+12>>2]=(n[A+10>>0]|0)*257;A=0;break A}case 4:{s[e>>3]=+(n[A+7>>0]|0)*.00392156862745098;s[e+8>>3]=+(n[A+8>>0]|0)*.00392156862745098;s[e+16>>3]=+(n[A+9>>0]|0)*.00392156862745098;s[e+24>>3]=+(n[A+10>>0]|0)*.00392156862745098;A=0;break A}default:{A=0;break A}}}}}while(0);k=z;return A|0}function vf(A,e,i,r,f,a){A=+A;e=+e;i=+i;r=r|0;f=f|0;a=a|0;var n=0.0,l=0.0,t=0.0,c=0.0,b=0.0,u=0.0;l=ei?e:i;u=uA?A:l);n=l/u;if(u>0.0)if(n>0.0){t=(u-A)/l;c=(u-e)/l;b=(u-i)/l;do{if(!(u==A)){if(u==e){A=t+2.0-b;break}if(u==i)A=c+4.0-t;else A=0.0}else A=(e-i)/l}while(0);A=A*60.0;if(A<0.0)A=A+360.0}else A=0.0;else{n=0.0;A=0.0}s[r>>3]=A*.002777777777777778;s[a>>3]=u;s[f>>3]=n;return}function Ef(A,e,i,r,f,a,n){A=+A;e=+e;i=+i;r=r|0;f=f|0;a=a|0;n=n|0;s[r>>3]=1.0-A;s[f>>3]=1.0-e;s[a>>3]=1.0-i;e=+s[r>>3];i=+s[f>>3];i=e>3]=i;e=+s[a>>3];i=e>3]=i;s[r>>3]=+s[r>>3]-i;s[f>>3]=+s[f>>3]-+s[n>>3];s[a>>3]=+s[a>>3]-+s[n>>3];return}function Cf(A,e,i,r,f,a){A=+A;e=+e;i=+i;r=r|0;f=f|0;a=a|0;var n=0.0,l=0.0,t=0.0,c=0,b=0;A:do{if(!(e<=0.0)){l=!(A>=1.0)?A*6.0:0.0;b=~~l;l=l-+(b|0);A=(1.0-e)*i;t=(1.0-l*e)*i;e=(1.0-(1.0-l)*e)*i;switch(b|0){case 0:{n=A;l=e;A=i;c=8;break A}case 1:{n=A;l=i;A=t;c=8;break A}case 2:{n=e;l=i;c=8;break A}case 3:{n=i;l=t;c=8;break A}case 4:{n=i;l=A;A=e;c=8;break A}case 5:{n=t;l=A;A=i;c=8;break A}default:break A}}else{n=i;l=i;A=i;c=8}}while(0);if((c|0)==8){s[r>>3]=A;s[f>>3]=l;s[a>>3]=n}return}function If(A){A=A|0;var e=0,i=0;e=r[A>>0]|0;if(((e<<24>>24!=98?(i=A+1|0,!(e<<24>>24==119|(Z1(i,137266,4)|0)==0)):0)?!(e<<24>>24==108|(Z1(i,137271,4)|0)==0):0)?(Z1(i,137276,8)|0)!=0:0){do{if(e<<24>>24==47){e=G1(i,47)|0;if(!e)A=i;else{if((r[i>>0]|0)!=47){i=(T1(137285,i,4)|0)==0;A=i?e+1|0:A;break}e=a[47370]|0;if((e|0?r[e>>0]|0:0)?T1(137285,e,3)|0:0){A=Gf(e,A+2|0)|0;break}A=A+2|0}}else{e=a[47370]|0;if(((e|0)!=0?(r[e>>0]|0)!=0:0)?(T1(137285,e,3)|0)!=0:0)A=Gf(e,A)|0}}while(0);A=Bf(A)|0}return A|0}function Zf(A,e){A=A|0;e=e|0;return p1(a[A>>2]|0,a[e>>2]|0)|0}function Gf(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;f=k;k=k+16|0;r=f;n=P2(A)|0;n=(P2(e)|0)+n|0;i=n+13|0;if((n+3|0)>>>0<(a[47371]|0)>>>0)i=a[47372]|0;else{a[47371]=i;i=eV(a[47372]|0,i)|0;a[47372]=i}a[r>>2]=A;a[r+4>>2]=e;S4(i,137290,r)|0;k=f;return a[47372]|0}function mf(A){A=A|0;a[47370]=A;return}function Qf(A,e,i,r,f){A=A|0;e=+e;i=+i;r=+r;f=+f;var a=0,n=0;a=k;k=k+208|0;n=a;Lf(n,+s[A>>3],+s[A+8>>3],e,i,r,f);A=yf(n)|0;k=a;return A|0}function Lf(A,e,i,r,f,a,n){A=A|0;e=+e;i=+i;r=+r;f=+f;a=+a;n=+n;var l=0,t=0;s[A>>3]=e;s[A+8>>3]=i;t=A+16|0;s[t>>3]=r;l=A+24|0;s[l>>3]=f;s[A+32>>3]=0.0;i=+N(+(+M(+a)/f),+(+D(+a)/r));s[A+56>>3]=i;f=+N(+(+M(+n)/f),+(+D(+n)/r));s[A+40>>3]=1.0;s[A+48>>3]=0.0;f=f-+y(+((f-i)*.15915494309189535))*6.283185307179586;s[A+64>>3]=n-a>3.141592653589793&f-i<3.141592653589793?f+6.283185307179586:f;Ff(A);Vf(A);Jf(A);n=+s[t>>3];n=(n-+s[l>>3])/n;s[A+168>>3]=n;s[A+176>>3]=(2.0-n)*n;n=1.0-n;s[A+184>>3]=n;s[A+192>>3]=n*n;return}function yf(A){A=A|0;var e=0,i=0.0,r=0,f=0.0,a=0.0,n=0.0,l=0.0,t=0,c=0,b=0,u=0,w=0.0,k=0.0,o=0,h=0,d=0.0,B=0.0,g=0.0,v=0.0,E=0.0,C=0.0,I=0.0,Z=0.0,G=0.0;h=qF(8)|0;a=+s[A+56>>3];f=+s[A+64>>3]-a;o=1;e=0;while(1){k=f/+(o|0);if(!(e<<24>>24==0&(o|0)<1024))break;A:do{if(!(k<=1.5707963267948966))e=0;else{i=a;r=0;e=1;while(1){if(!(e<<24>>24!=0&(r|0)<(o|0)))break A;w=i+k;e=+Wf(A,i,w)<=1.0e-05&1;i=w;r=r+1|0}}}while(0);o=o<<1}l=+D(+a);v=+M(+a);r=A+16|0;B=+s[r>>3];E=B*l;t=A+24|0;i=+s[t>>3];n=i*v;l=i*l;i=+s[A>>3];c=A+40|0;g=+s[c>>3];b=A+48|0;d=+s[b>>3];f=g*E+i-d*n;u=A+8|0;w=+s[u>>3];n=d*E+g*n+w;B=-(v*B);zf(h,i,w);Yf(h,f,n);w=+F(+(k*.5));w=+M(+k)*.3333333333333333*(+z(+(w*w*3.0+4.0))+-1.0);i=a;a=n;n=d*B+g*l;l=g*B-d*l;e=0;while(1){if((e|0)>=(o|0))break;d=i+k;v=+D(+d);E=+M(+d);I=+s[r>>3];G=I*v;C=+s[t>>3];g=C*E;v=C*v;C=+s[c>>3];Z=+s[b>>3];B=C*G+ +s[A>>3]-Z*g;g=Z*G+C*g+ +s[u>>3];I=-(E*I);E=C*I-Z*v;v=Z*I+C*v;Df(h,f+l*w,a+n*w,B-E*w,g-v*w,B,g);i=d;f=B;a=g;n=v;l=E;e=e+1|0}Mf(h);return h|0}function Wf(A,e,i){A=A|0;e=+e;i=+i;var r=0.0,f=0.0,a=0.0,n=0.0,l=0.0;r=i+e;l=+s[A+16>>3];f=+s[A+24>>3]/l;n=+D(+r);a=+D(+(r*2.0));r=+D(+(r*3.0));A=f<.25?10392:10648;return+(((f*.001+4.98)*f+.207)/(f+.0067)*l*+R(+(((+s[A+32>>3]*f+ +s[A+40>>3])*f+ +s[A+48>>3])/(+s[A+56>>3]+f)*n+((+s[A>>3]*f+ +s[A+8>>3])*f+ +s[A+16>>3])/(+s[A+24>>3]+f)+((+s[A+64>>3]*f+ +s[A+72>>3])*f+ +s[A+80>>3])/(+s[A+88>>3]+f)*a+((+s[A+96>>3]*f+ +s[A+104>>3])*f+ +s[A+112>>3])/(+s[A+120>>3]+f)*r+(((+s[A+160>>3]*f+ +s[A+168>>3])*f+ +s[A+176>>3])/(+s[A+184>>3]+f)*n+((+s[A+128>>3]*f+ +s[A+136>>3])*f+ +s[A+144>>3])/(+s[A+152>>3]+f)+((+s[A+192>>3]*f+ +s[A+200>>3])*f+ +s[A+208>>3])/(+s[A+216>>3]+f)*a+((+s[A+224>>3]*f+ +s[A+232>>3])*f+ +s[A+240>>3])/(+s[A+248>>3]+f)*r)*(i-e))))}function zf(A,e,i){A=A|0;e=+e;i=+i;var r=0;a[47373]=100;r=qF(1600)|0;a[A>>2]=r;s[r>>3]=e;s[r+8>>3]=i;a[A+4>>2]=1;return}function Yf(A,e,i){A=A|0;e=+e;i=+i;var r=0,f=0;f=a[A>>2]|0;r=(a[A+4>>2]|0)+-1|0;Df(A,+s[f+(r<<4)>>3],+s[f+(r<<4)+8>>3],e,i,e,i);return}function Df(A,e,i,r,f,n,l){A=A|0;e=+e;i=+i;r=+r;f=+f;n=+n;l=+l;var t=0,c=0,b=0,u=0;b=A+4|0;t=a[b>>2]|0;c=a[47373]|0;if((t+3|0)<(c|0))A=a[A>>2]|0;else{a[47373]=c<<1;t=W2(a[A>>2]|0,c<<5)|0;a[A>>2]=t;A=t;t=a[b>>2]|0}s[A+(t<<4)>>3]=e;u=t+1|0;s[A+(t<<4)+8>>3]=i;s[A+(u<<4)>>3]=r;c=t+2|0;s[A+(u<<4)+8>>3]=f;s[A+(c<<4)>>3]=n;a[b>>2]=t+3;s[A+(c<<4)+8>>3]=l;return}function Mf(A){A=A|0;var e=0;e=a[A>>2]|0;Yf(A,+s[e>>3],+s[e+8>>3]);a[A>>2]=W2(a[A>>2]|0,a[A+4>>2]<<4)|0;a[47373]=0;return}function Ff(A){A=A|0;var e=0.0,i=0.0,r=0.0,f=0.0;r=+s[A+16>>3];e=+s[A+24>>3];e=+z(+(r*r-e*e));r=e*+s[A+40>>3];e=e*+s[A+48>>3];f=+s[A>>3];s[A+104>>3]=f-r;i=+s[A+8>>3];s[A+112>>3]=i-e;s[A+120>>3]=f+r;s[A+128>>3]=i+e;return}function Vf(A){A=A|0;var e=0.0,i=0.0,r=0.0,f=0.0,a=0.0,n=0.0,l=0.0,t=0.0;r=+s[A+16>>3];l=+s[A+56>>3];t=+D(+l)*r;e=+s[A+24>>3];l=+M(+l)*e;n=+s[A+64>>3];r=+D(+n)*r;e=+M(+n)*e;n=+s[A>>3];i=+s[A+40>>3];f=+s[A+48>>3];s[A+72>>3]=i*t+n-f*l;a=+s[A+8>>3];s[A+80>>3]=f*t+a+i*l;s[A+88>>3]=n+i*r-f*e;s[A+96>>3]=a+f*r+i*e;return}function Jf(A){A=A|0;var e=0.0,i=0.0,r=0.0,f=0.0,a=0.0,n=0.0,l=0.0,t=0.0,c=0.0,b=0.0,u=0.0,w=0;c=+s[A+24>>3];b=+s[A+16>>3];f=c/b;u=+s[A+48>>3];w=+W(+u)<.1;t=+s[A+40>>3];do{if(w){e=u/t;i=+p(+(e*f));r=-i;if(t<0.0){e=+p(+(e/f));f=r;r=3.141592653589793-i;i=4.71238898038469-e;e=1.5707963267948966-e;break}else{e=+p(+(e/f));f=-3.141592653589793-i;i=1.5707963267948966-e;e=-1.5707963267948966-e;break}}else{e=t/u;i=+p(+(e/f));r=i+1.5707963267948966;if(u<0.0){e=+p(+(e*f));f=i+-1.5707963267948966;i=e+3.141592653589793;break}else{e=+p(+(e*f));f=r;r=i+4.71238898038469;i=e;e=e+-3.141592653589793;break}}}while(0);n=+s[A+56>>3];f=f-+y(+((f-n)*.15915494309189535))*6.283185307179586;e=e-+y(+((e-n)*.15915494309189535))*6.283185307179586;a=r-+y(+((r-n)*.15915494309189535))*6.283185307179586;n=i-+y(+((i-n)*.15915494309189535))*6.283185307179586;l=+s[A+64>>3];if(!(f<=l)){f=+s[A+72>>3];i=+s[A+88>>3];i=f>3]-c*+M(+f)*u;s[A+136>>3]=i;if(!(e<=l)){f=+s[A+80>>3];r=+s[A+96>>3];r=f>3]+ +M(+e)*c*t;s[A+144>>3]=r;if(!(a<=l)){a=+s[A+72>>3];e=+s[A+88>>3];e=a>e?a:e}else e=+D(+a)*b*t+ +s[A>>3]-c*+M(+a)*u;s[A+152>>3]=e-i;if(!(n<=l)){u=+s[A+80>>3];e=+s[A+96>>3];e=u>e?u:e}else e=+D(+n)*b*u+ +s[A+8>>3]+ +M(+n)*c*t;s[A+160>>3]=e-r;return}function pf(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0.0,l=0,t=0,c=0.0,b=0,u=0;u=k;k=k+80|0;b=u;Nf(A);c=+s[i+56>>3];n=+s[i+64>>3];switch(r[i+80>>0]|0){case 116:{n=(+s[i+48>>3]-+Rf(e))*.5+n;f=4;break}case 98:{n=n-(+s[i+48>>3]-+Rf(e))*.5;f=4;break}default:{}}if((f|0)==4)n=n+-1.0;s[b>>3]=c;s[b+8>>3]=n;a[b+20>>2]=a[i+8>>2];a[b+16>>2]=a[i+4>>2];s[b+32>>3]=+s[i+16>>3];t=A+16|0;f=Ho(a[(a[t>>2]|0)+8>>2]|0,137297)|0;i=b+56|0;a[i>>2]=f;l=b+60|0;a[l>>2]=a[(a[t>>2]|0)+212>>2];t=b+64|0;r[t>>0]=0;if(!((f|0)!=0?(r[f>>0]|0)!=0:0))a[i>>2]=137308;if((r[e+4>>0]|0)==1){i=a[e>>2]|0;rr(A,a[(a[A>>2]|0)+336>>2]|0);f=a[i+24>>2]|0;if(!f)$i(A,137314);else $i(A,f);Hf(A,i,b);if(r[t>>0]|0)L2(a[l>>2]|0)}else Xf(A,a[e>>2]|0,b);Uf(A);k=u;return}function Nf(A){A=A|0;var e=0,i=0,r=0;e=AI(A)|0;i=a[e>>2]|0;A=a[i+4>>2]|0;a[e+4>>2]=A;a[e+12>>2]=a[i+12>>2];switch(A|0){case 2:{A=i+8|0;r=6;break}case 0:{A=i+8|0;r=6;break}case 1:{A=i+8|0;r=6;break}case 3:{A=i+8|0;r=6;break}default:{}}if((r|0)==6)a[e+8>>2]=a[A>>2];a[e+208>>2]=a[i+208>>2];a[e+228>>2]=a[i+228>>2];a[e+244>>2]=a[i+244>>2];r=e+260|0;f[r>>1]=f[r>>1]&-2|f[i+260>>1]&1;return}function Rf(A){A=A|0;var e=0.0,i=0,f=0;switch(r[A+4>>0]|0){case 1:{i=a[A>>2]|0;A=i+72|0;i=i+56|0;f=5;break}case 3:{i=a[A>>2]|0;A=i+24|0;i=i+8|0;f=5;break}case 2:{i=a[A>>2]|0;A=i+32|0;i=i+16|0;f=5;break}default:e=0.0}if((f|0)==5)e=+s[A>>3]-+s[i>>3];return+e}function Xf(A,e,i){A=A|0;e=e|0;i=i|0;var n=0,l=0,t=0,c=0,b=0,u=0,w=0.0,o=0.0,h=0,d=0,B=0;u=k;k=k+96|0;t=u+64|0;l=u+32|0;n=u+16|0;c=u;b=f[e+4>>1]|0;if(b<<16>>16>=1){d=e+8|0;o=+s[e+24>>3];w=+s[d>>3];s[c>>3]=(w+o)*.5+ +s[i>>3];s[c+8>>3]=(+s[e+16>>3]+ +s[e+32>>3])*.5+ +s[i+8>>3];h=a[e>>2]|0;B=i+16|0;i=r[e+6>>0]|0;a[n>>2]=a[c>>2];a[n+4>>2]=a[c+4>>2];a[n+8>>2]=a[c+8>>2];a[n+12>>2]=a[c+12>>2];a[l>>2]=a[B>>2];a[l+4>>2]=a[B+4>>2];a[l+8>>2]=a[B+8>>2];a[l+12>>2]=a[B+12>>2];a[l+16>>2]=a[B+16>>2];a[l+20>>2]=a[B+20>>2];a[l+24>>2]=a[B+24>>2];a[l+28>>2]=a[B+28>>2];a[t>>2]=a[d>>2];a[t+4>>2]=a[d+4>>2];a[t+8>>2]=a[d+8>>2];a[t+12>>2]=a[d+12>>2];a[t+16>>2]=a[d+16>>2];a[t+20>>2]=a[d+20>>2];a[t+24>>2]=a[d+24>>2];a[t+28>>2]=a[d+28>>2];ea(A,b<<16>>16,h,n,(o-w)*.5,l,t,i)}k=u;return}function Hf(A,e,i){A=A|0;e=e|0;i=i|0;var l=0,t=0,c=0,b=0.0,u=0.0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0;Z=k;k=k+176|0;g=Z+96|0;E=Z+64|0;C=Z+136|0;o=Z;h=Z+128|0;d=e+48|0;a[E>>2]=a[d>>2];a[E+4>>2]=a[d+4>>2];a[E+8>>2]=a[d+8>>2];a[E+12>>2]=a[d+12>>2];a[E+16>>2]=a[d+16>>2];a[E+20>>2]=a[d+20>>2];a[E+24>>2]=a[d+24>>2];a[E+28>>2]=a[d+28>>2];b=+s[i>>3];u=+s[i+8>>3];d=e+84|0;l=a[d>>2]|0;if(!(a[e>>2]|0))I=(a[e+8>>2]|0)!=0;else I=1;v=e+108|0;t=a[v>>2]|0;if(t|0)xf(i,t,186544);s[E>>3]=+s[E>>3]+b;B=E+16|0;s[B>>3]=+s[B>>3]+b;B=E+8|0;s[B>>3]=+s[B>>3]+u;B=E+24|0;s[B>>3]=+s[B>>3]+u;if(I?(a[A+152>>2]&4|0)==0:0){a[g>>2]=a[E>>2];a[g+4>>2]=a[E+4>>2];a[g+8>>2]=a[E+8>>2];a[g+12>>2]=a[E+12>>2];a[g+16>>2]=a[E+16>>2];a[g+20>>2]=a[E+20>>2];a[g+24>>2]=a[E+24>>2];a[g+28>>2]=a[E+28>>2];B=Tf(A,i,e,g,C)|0}else B=0;w=e+42|0;t=f[w>>1]|0;if(!(t&32)){c=a[e+20>>2]|0;if(c){t=jf(A,c,a[e+28>>2]|0,t&65535,h)|0;if(!(f[w>>1]&4)){a[g>>2]=a[E>>2];a[g+4>>2]=a[E+4>>2];a[g+8>>2]=a[E+8>>2];a[g+12>>2]=a[E+12>>2];a[g+16>>2]=a[E+16>>2];a[g+20>>2]=a[E+20>>2];a[g+24>>2]=a[E+24>>2];a[g+28>>2]=a[E+28>>2];nr(A,g,t)}else{w=n[e+33>>0]|0;a[g>>2]=a[E>>2];a[g+4>>2]=a[E+4>>2];a[g+8>>2]=a[E+8>>2];a[g+12>>2]=a[E+12>>2];a[g+16>>2]=a[E+16>>2];a[g+20>>2]=a[E+20>>2];a[g+24>>2]=a[E+24>>2];a[g+28>>2]=a[E+28>>2];tp(A,Pf(o,g,w)|0,4,4,t)}L2(a[h>>2]|0)}while(1){t=a[l>>2]|0;if(!t)break;Sf(A,t,i);l=l+4|0}l=a[d>>2]|0;ur(A,1.0);t=e+24|0;while(1){c=l+4|0;l=a[l>>2]|0;if(!l)break;if(!(r[l+100>>0]|0)){l=c;continue}Of(A,l,i,a[t>>2]|0,a[c>>2]|0);l=c}if(r[e+33>>0]|0){a[g>>2]=a[E>>2];a[g+4>>2]=a[E+4>>2];a[g+8>>2]=a[E+8>>2];a[g+12>>2]=a[E+12>>2];a[g+16>>2]=a[E+16>>2];a[g+20>>2]=a[E+20>>2];a[g+24>>2]=a[E+24>>2];a[g+28>>2]=a[E+28>>2];Kf(A,e,g)}}if(B|0)_f(A,C);if((I?a[A+152>>2]&4|0:0)?(a[g>>2]=a[E>>2],a[g+4>>2]=a[E+4>>2],a[g+8>>2]=a[E+8>>2],a[g+12>>2]=a[E+12>>2],a[g+16>>2]=a[E+16>>2],a[g+20>>2]=a[E+20>>2],a[g+24>>2]=a[E+24>>2],a[g+28>>2]=a[E+28>>2],Tf(A,i,e,g,C)|0):0)_f(A,C);if(a[v>>2]|0)qf(i,186544);k=Z;return}function Uf(A){A=A|0;var e=0;e=a[A+16>>2]|0;a[e+208>>2]=0;a[e+228>>2]=0;a[e+244>>2]=0;a[e+212>>2]=0;eI(A);return}function xf(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0,n=0,l=0;l=A+16|0;f=a[l>>2]|0;if(f|0){if(!(a[e>>2]|0)){f=0;n=i}else{a[i>>2]=f;f=a[e>>2]|0;n=l}a[n>>2]=f}f=a[A+20>>2]|0;if(f|0){n=e+4|0;if(!(a[n>>2]|0)){f=0;n=i}else{a[i+4>>2]=f;f=a[n>>2]|0;n=l}a[n+4>>2]=f}r=+s[A+32>>3];if(r>=0.0){f=e+16|0;if(!(+s[f>>3]>=0.0))r=-1.0;else{s[i+16>>3]=r;r=+s[f>>3];i=l}s[i+16>>3]=r}return}function Tf(A,e,i,n,l){A=A|0;e=e|0;i=i|0;n=n|0;l=l|0;var t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0;v=k;k=k+224|0;u=v+8|0;s=v;g=v+40|0;c=v+184|0;t=v+56|0;b=a[A+16>>2]|0;w=b+208|0;a[l>>2]=a[w>>2];o=b+228|0;a[l+4>>2]=a[o>>2];h=b+244|0;a[l+8>>2]=a[h>>2];d=b+212|0;a[l+12>>2]=a[d>>2];B=b+260|0;r[l+16>>0]=(f[B>>1]<<15&65535)<<16>>16>>15;l=a[i+16>>2]|0;if((l|0)!=0?(r[l>>0]|0)!=0:0)t=0;else{co(g,128,t);t=e+60|0;l=a[t>>2]|0;if(!l){l=b3(rI(A,a[b+8>>2]|0,g)|0)|0;a[t>>2]=l;r[e+64>>0]=1}uo(g,l)|0;t=a[47374]|0;a[47374]=t+1;a[s>>2]=t;S4(c,137391,s)|0;uo(g,c)|0;t=g+4|0;l=a[t>>2]|0;if(l>>>0>=(a[g+8>>2]|0)>>>0){so(g,1)|0;l=a[t>>2]|0}r[l>>0]=0;l=a[g>>2]|0;a[t>>2]=l;t=1}l=iI(A,0,a[i>>2]|0,a[i+12>>2]|0,a[i+8>>2]|0,l,a[b+8>>2]|0)|0;if(t)wo(g);do{if(l|0){if((a[w>>2]|0)==0?(f[B>>1]&1)==0:0)break;a[u>>2]=a[n>>2];a[u+4>>2]=a[n+4>>2];a[u+8>>2]=a[n+8>>2];a[u+12>>2]=a[n+12>>2];a[u+16>>2]=a[n+16>>2];a[u+20>>2]=a[n+20>>2];a[u+24>>2]=a[n+24>>2];a[u+28>>2]=a[n+28>>2];sI(A,u);Si(A,a[w>>2]|0,a[o>>2]|0,a[h>>2]|0,a[d>>2]|0)}}while(0);k=v;return l|0}function jf(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0.0,l=0,t=0;t=k;k=k+16|0;l=t;if(!((qM(e,f,l)|0)<<24>>24)){er(A,e);e=1}else{er(A,a[f>>2]|0);e=a[f+4>>2]|0;n=+c[l>>2];if(!e)ir(A,137314,i,n);else ir(A,e,i,n);e=r>>>1&1|2}$i(A,137379);k=t;return e|0}function Pf(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0.0,n=0.0,l=0.0,t=0.0;a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2];r=A+32|0;e=e+16|0;a[r>>2]=a[e>>2];a[r+4>>2]=a[e+4>>2];a[r+8>>2]=a[e+8>>2];a[r+12>>2]=a[e+12>>2];if((i|0)>1){t=+(i|0)*.5;l=+s[A>>3]+t;s[A>>3]=l;i=A+8|0;n=+s[i>>3]+t;s[i>>3]=n;f=+s[r>>3]-t;s[r>>3]=f;r=A+40|0;t=+s[r>>3]-t;s[r>>3]=t}else{f=+s[r>>3];n=+s[A+8>>3];l=+s[A>>3];t=+s[A+40>>3]}s[A+16>>3]=f;s[A+24>>3]=n;s[A+48>>3]=l;s[A+56>>3]=t;return A|0}function Sf(A,e,i){A=A|0;e=e|0;i=i|0;var l=0,t=0.0,c=0.0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0;E=k;k=k+176|0;d=E+96|0;B=E+136|0;g=E+64|0;o=E;h=E+128|0;v=e+48|0;a[g>>2]=a[v>>2];a[g+4>>2]=a[v+4>>2];a[g+8>>2]=a[v+8>>2];a[g+12>>2]=a[v+12>>2];a[g+16>>2]=a[v+16>>2];a[g+20>>2]=a[v+20>>2];a[g+24>>2]=a[v+24>>2];a[g+28>>2]=a[v+28>>2];t=+s[i>>3];c=+s[i+8>>3];if(!(a[e>>2]|0))v=(a[e+8>>2]|0)!=0;else v=1;s[g>>3]=+s[g>>3]+t;w=g+16|0;s[w>>3]=+s[w>>3]+t;w=g+8|0;s[w>>3]=+s[w>>3]+c;w=g+24|0;s[w>>3]=+s[w>>3]+c;if(v?(a[A+152>>2]&4|0)==0:0){a[d>>2]=a[g>>2];a[d+4>>2]=a[g+4>>2];a[d+8>>2]=a[g+8>>2];a[d+12>>2]=a[g+12>>2];a[d+16>>2]=a[g+16>>2];a[d+20>>2]=a[g+20>>2];a[d+24>>2]=a[g+24>>2];a[d+28>>2]=a[g+28>>2];w=Tf(A,i,e,d,B)|0}else w=0;u=e+42|0;l=f[u>>1]|0;A:do{if(!(l&32)){b=a[e+20>>2]|0;if(b|0){l=jf(A,b,a[e+28>>2]|0,l&65535,h)|0;if(!(f[u>>1]&4)){a[d>>2]=a[g>>2];a[d+4>>2]=a[g+4>>2];a[d+8>>2]=a[g+8>>2];a[d+12>>2]=a[g+12>>2];a[d+16>>2]=a[g+16>>2];a[d+20>>2]=a[g+20>>2];a[d+24>>2]=a[g+24>>2];a[d+28>>2]=a[g+28>>2];nr(A,d,l)}else{u=n[e+33>>0]|0;a[d>>2]=a[g>>2];a[d+4>>2]=a[g+4>>2];a[d+8>>2]=a[g+8>>2];a[d+12>>2]=a[g+12>>2];a[d+16>>2]=a[g+16>>2];a[d+20>>2]=a[g+20>>2];a[d+24>>2]=a[g+24>>2];a[d+28>>2]=a[g+28>>2];tp(A,Pf(o,d,u)|0,4,4,l)}L2(a[h>>2]|0)}if(r[e+33>>0]|0){a[d>>2]=a[g>>2];a[d+4>>2]=a[g+4>>2];a[d+8>>2]=a[g+8>>2];a[d+12>>2]=a[g+12>>2];a[d+16>>2]=a[g+16>>2];a[d+20>>2]=a[g+20>>2];a[d+24>>2]=a[g+24>>2];a[d+28>>2]=a[g+28>>2];Kf(A,e,d)}l=e+88|0;switch(r[e+92>>0]|0){case 1:{Hf(A,a[l>>2]|0,i);break A}case 3:{Aa(A,a[l>>2]|0,i);break A}default:{Xf(A,a[l>>2]|0,i);break A}}}}while(0);if(w|0)_f(A,B);if((v?a[A+152>>2]&4|0:0)?(a[d>>2]=a[g>>2],a[d+4>>2]=a[g+4>>2],a[d+8>>2]=a[g+8>>2],a[d+12>>2]=a[g+12>>2],a[d+16>>2]=a[g+16>>2],a[d+20>>2]=a[g+20>>2],a[d+24>>2]=a[g+24>>2],a[d+28>>2]=a[g+28>>2],Tf(A,i,e,d,B)|0):0)_f(A,B);k=E;return}function Of(A,e,i,t,c){A=A|0;e=e|0;i=i|0;t=t|0;c=c|0;var b=0.0,u=0,w=0.0,o=0.0,h=0,d=0.0,B=0.0,g=0.0,v=0.0,E=0,C=0,I=0.0,Z=0,G=0,m=0,Q=0,L=0;m=k;k=k+32|0;Z=m+16|0;G=m;d=+s[i>>3];I=+s[i+8>>3];h=(t|0)==0?137314:t;er(A,h);$i(A,h);g=+s[e+48>>3];w=+s[e+56>>3];v=+s[e+64>>3];o=+s[e+72>>3];B=g+d;d=v+d;I=w+I;h=e+100|0;i=r[h>>0]|0;if((i&1)!=0?(u=a[e+96>>2]|0,((l[e+80>>1]|0)+(l[e+84>>1]|0)|0)<(a[u+104>>2]|0)):0){i=f[e+86>>1]|0;do{if(i<<16>>16)if(((l[e+82>>1]|0)+(i&65535)|0)==(a[u+100>>2]|0)){Q=r[u+32>>0]|0;L=(Q<<24>>24)/2|0;t=(L<<24>>24)+(n[u+33>>0]|0)|0;i=t;t=t&255;b=I-+(L<<24>>24);u=Q;break}else{u=r[u+32>>0]|0;i=0;t=((u<<24>>24)/2|0)<<24>>24;b=I;break}else{L=r[u+32>>0]|0;t=((L<<24>>24)/2|0)<<24>>24;i=t+(n[u+33>>0]|0)|0;b=I;u=L}}while(0);s[G+8>>3]=b-+(t|0);s[G>>3]=d+ +(((u<<24>>24)/2|0)<<24>>24);a[Z>>2]=a[G>>2];a[Z+4>>2]=a[G+4>>2];a[Z+8>>2]=a[G+8>>2];a[Z+12>>2]=a[G+12>>2];$f(A,Z,0.0,o-w+ +(i&255|0)+ +(u<<24>>24));i=r[h>>0]|0}if(i&2?(E=f[e+86>>1]|0,C=a[e+96>>2]|0,((l[e+82>>1]|0)+(E&65535)|0)<(a[C+100>>2]|0)):0){i=f[e+84>>1]|0;do{if(!(i<<16>>16)){i=r[C+32>>0]|0;L=(i<<24>>24)/2|0;u=(L<<24>>24)+(n[C+33>>0]|0)|0;t=u&255;u=u&255;b=+(L<<24>>24);s[G>>3]=B-b-+(u|0);if((a[C+104>>2]|0)==(l[e+80>>1]|0)){t=u<<1&255;break}if((c|0)!=0?(f[c+86>>1]|0)!=E<<16>>16:0)t=~~(+(t&255)-v+ +s[C+64>>3]-b)&255}else{if(((l[e+80>>1]|0)+(i&65535)|0)==(a[C+104>>2]|0)){i=r[C+32>>0]|0;L=(i<<24>>24)/2|0;t=(L&255)+(n[C+33>>0]|0)&255;s[G>>3]=B-+(L<<24>>24);break}i=r[C+32>>0]|0;b=+(((i<<24>>24)/2|0)<<24>>24);s[G>>3]=B-b;if((c|0)!=0?(f[c+86>>1]|0)!=E<<16>>16:0)t=~~(+s[C+64>>3]-v-b)&255;else t=0}}while(0);s[G+8>>3]=I-+(((i<<24>>24)/2|0)<<24>>24);a[Z>>2]=a[G>>2];a[Z+4>>2]=a[G+4>>2];a[Z+8>>2]=a[G+8>>2];a[Z+12>>2]=a[G+12>>2];$f(A,Z,v-g+ +(t&255)+ +(i<<24>>24),0.0)}k=m;return}function Kf(A,e,i){A=A|0;e=e|0;i=i|0;var l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0.0;o=k;k=k+160|0;w=o+112|0;u=o;t=o+144|0;b=a[e+24>>2]|0;$i(A,(b|0)==0?137314:b);b=e+42|0;l=f[b>>1]|0;if(!(l&384))rr(A,a[(a[A>>2]|0)+336>>2]|0);else{a[t+4>>2]=0;a[t>>2]=0;l=l&65535;if(!(l&256)){if(l&128|0){l=137320;c=4}}else{l=137327;c=4}if((c|0)==4)a[t>>2]=l;rr(A,t)}c=e+33|0;ur(A,+(n[c>>0]|0));A:do{if(!(f[b>>1]&4)){l=f[e+36>>1]&15360;if(!(l<<16>>16)){l=r[c>>0]|0;if((l&255)>1){h=+(l&255)*.5;s[i>>3]=+s[i>>3]+h;u=i+8|0;s[u>>3]=+s[u>>3]+h;u=i+16|0;s[u>>3]=+s[u>>3]-h;u=i+24|0;s[u>>3]=+s[u>>3]-h}a[w>>2]=a[i>>2];a[w+4>>2]=a[i+4>>2];a[w+8>>2]=a[i+8>>2];a[w+12>>2]=a[i+12>>2];a[w+16>>2]=a[i+16>>2];a[w+20>>2]=a[i+20>>2];a[w+24>>2]=a[i+24>>2];a[w+28>>2]=a[i+28>>2];nr(A,w,0);break}t=u+16|0;b=n[c>>0]|0;a[w>>2]=a[i>>2];a[w+4>>2]=a[i+4>>2];a[w+8>>2]=a[i+8>>2];a[w+12>>2]=a[i+12>>2];a[w+16>>2]=a[i+16>>2];a[w+20>>2]=a[i+20>>2];a[w+24>>2]=a[i+24>>2];a[w+28>>2]=a[i+28>>2];Pf(t,w,b)|0;do{switch(((l&65535)+-1024|0)>>>10&4194303|0){case 7:{tr(A,t,2);break A}case 3:{tr(A,u+32|0,2);break A}case 1:{tr(A,u+48|0,2);break A}case 0:{i=u+64|0;a[u>>2]=a[i>>2];a[u+4>>2]=a[i+4>>2];a[u+8>>2]=a[i+8>>2];a[u+12>>2]=a[i+12>>2];tr(A,u,2);break A}case 11:{tr(A,t,3);break A}case 5:{tr(A,u+32|0,3);break A}case 2:{i=u+80|0;a[i>>2]=a[t>>2];a[i+4>>2]=a[t+4>>2];a[i+8>>2]=a[t+8>>2];a[i+12>>2]=a[t+12>>2];tr(A,u+48|0,3);break A}case 8:{i=u+64|0;a[u>>2]=a[i>>2];a[u+4>>2]=a[i+4>>2];a[u+8>>2]=a[i+8>>2];a[u+12>>2]=a[i+12>>2];tr(A,u,3);break A}case 13:{tr(A,t,4);break A}case 6:{i=u+80|0;a[i>>2]=a[t>>2];a[i+4>>2]=a[t+4>>2];a[i+8>>2]=a[t+8>>2];a[i+12>>2]=a[t+12>>2];tr(A,u+32|0,4);break A}case 10:{i=u+80|0;a[i>>2]=a[t>>2];a[i+4>>2]=a[t+4>>2];a[i+8>>2]=a[t+8>>2];a[i+12>>2]=a[t+12>>2];i=u+96|0;w=u+32|0;a[i>>2]=a[w>>2];a[i+4>>2]=a[w+4>>2];a[i+8>>2]=a[w+8>>2];a[i+12>>2]=a[w+12>>2];tr(A,u+48|0,4);break A}case 12:{i=u+64|0;a[u>>2]=a[i>>2];a[u+4>>2]=a[i+4>>2];a[u+8>>2]=a[i+8>>2];a[u+12>>2]=a[i+12>>2];tr(A,u,4);break A}case 9:{tr(A,t,2);tr(A,u+48|0,2);break A}case 4:{i=u+64|0;a[u>>2]=a[i>>2];a[u+4>>2]=a[i+4>>2];a[u+8>>2]=a[i+8>>2];a[u+12>>2]=a[i+12>>2];tr(A,u,2);tr(A,u+32|0,2);break A}default:break A}}while(0)}else{b=n[c>>0]|0;a[w>>2]=a[i>>2];a[w+4>>2]=a[i+4>>2];a[w+8>>2]=a[i+8>>2];a[w+12>>2]=a[i+12>>2];a[w+16>>2]=a[i+16>>2];a[w+20>>2]=a[i+20>>2];a[w+24>>2]=a[i+24>>2];a[w+28>>2]=a[i+28>>2];tp(A,Pf(u,w,b)|0,4,4,0)}}while(0);k=o;return}function _f(A,e){A=A|0;e=e|0;var i=0,n=0,l=0;l=a[A+16>>2]|0;i=l+208|0;if((a[i>>2]|0)==0?(f[l+260>>1]&1)==0:0)A=0;else{Oi(A);A=a[i>>2]|0}if((A|0)!=(a[e>>2]|0)){L2(A);a[i>>2]=a[e>>2]}A=l+228|0;i=a[A>>2]|0;n=e+4|0;if((i|0)!=(a[n>>2]|0)){L2(i);a[A>>2]=a[n>>2]}A=l+244|0;i=a[A>>2]|0;n=e+8|0;if((i|0)!=(a[n>>2]|0)){L2(i);a[A>>2]=a[n>>2]}A=l+212|0;i=a[A>>2]|0;n=e+12|0;if((i|0)!=(a[n>>2]|0)){L2(i);a[A>>2]=a[n>>2]}l=l+260|0;f[l>>1]=f[l>>1]&-2|r[e+16>>0]&1;return}function qf(A,e){A=A|0;e=e|0;var i=0.0,r=0;r=a[e>>2]|0;if(r|0)a[A+16>>2]=r;r=a[e+4>>2]|0;if(r|0)a[A+20>>2]=r;i=+s[e+16>>3];if(i>=0.0)s[A+32>>3]=i;return}function $f(A,e,i,r){A=A|0;e=e|0;i=+i;r=+r;var f=0,n=0,l=0;f=k;k=k+64|0;n=f+32|0;l=f;a[l>>2]=a[e>>2];a[l+4>>2]=a[e+4>>2];a[l+8>>2]=a[e+8>>2];a[l+12>>2]=a[e+12>>2];s[l+16>>3]=+s[e>>3]+i;s[l+24>>3]=+s[e+8>>3]+r;a[n>>2]=a[l>>2];a[n+4>>2]=a[l+4>>2];a[n+8>>2]=a[l+8>>2];a[n+12>>2]=a[l+12>>2];a[n+16>>2]=a[l+16>>2];a[n+20>>2]=a[l+20>>2];a[n+24>>2]=a[l+24>>2];a[n+28>>2]=a[l+28>>2];nr(A,n,1);k=f;return}function Aa(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0.0,c=0.0,b=0.0,u=0.0;l=k;k=k+64|0;n=l;c=+s[i>>3];u=c+ +s[e>>3];b=+s[i+8>>3];t=b+ +s[e+8>>3];c=c+ +s[e+16>>3];b=b+ +s[e+24>>3];s[n>>3]=c;s[n+8>>3]=b;s[n+32>>3]=u;s[n+40>>3]=t;s[n+16>>3]=u;s[n+24>>3]=b;s[n+48>>3]=c;s[n+56>>3]=t;f=a[e+36>>2]|0;if(!f)f=a[i+56>>2]|0;i=a[e+32>>2]|0;if(!i)gA(137334,137342,623,137354);if(!(r[i>>0]|0))gA(137368,137342,624,137354);else{sr(A,i,n,4,1,f);k=l;return}}function ea(A,e,i,n,l,t,c,b){A=A|0;e=e|0;i=i|0;n=n|0;l=+l;t=t|0;c=c|0;b=b|0;var u=0.0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0.0,F=0,V=0,J=0,p=0.0,N=0.0,R=0,X=0,H=0,U=0;U=k;k=k+128|0;V=U+104|0;R=U+48|0;X=U+16|0;J=U;F=J;a[F>>2]=0;a[F+4>>2]=0;p=+s[n>>3];N=p-l;M=p+l;F=J+8|0;s[F>>3]=(+s[c+24>>3]-+s[c+8>>3])*.5+ +s[n+8>>3];Ki(A,1);y=X+16|0;W=X+4|0;z=X+24|0;Y=R+4|0;D=R+16|0;B=(b|0)==0;g=R+24|0;v=R+8|0;E=R+32|0;C=R+40|0;I=R+48|0;Z=t+16|0;G=t+4|0;m=X+8|0;h=0;while(1){if((h|0)>=(e|0))break;switch(r[i+(h*24|0)+6>>0]|0){case 108:{l=N;break}case 114:{l=M-+s[i+(h*24|0)+8>>3];break}default:l=p-+s[i+(h*24|0)+8>>3]*.5}s[n>>3]=l;Q=i+(h*24|0)+16|0;s[F>>3]=+s[F>>3]-+s[Q>>3];L=i+(h*24|0)+4|0;o=a[i+(h*24|0)>>2]|0;d=0;while(1){if((d|0)>=(f[L>>1]|0))break;w=o+4|0;b=a[w>>2]|0;if(b){s[y>>3]=+s[(+s[b+16>>3]>0.0?b:t)+16>>3];a[X>>2]=a[((a[b>>2]|0)==0?t:b)>>2];c=a[((a[b+4>>2]|0)==0?t:b)+4>>2]|0;a[W>>2]=c;b=a[b+24>>2]&127;if(!b)H=12;else b=a[z>>2]&-128|b}else{s[y>>3]=+s[Z>>3];a[X>>2]=a[t>>2];c=a[G>>2]|0;a[W>>2]=c;H=12}if((H|0)==12){H=0;b=a[z>>2]&-128}a[z>>2]=b;$i(A,c);a[R>>2]=a[o>>2];a[Y>>2]=X;s[D>>3]=+s[o+16>>3];if(B)u=1.0;else u=+s[o+24>>3];s[g>>3]=u;a[m>>2]=a[(a[w>>2]|0)+8>>2];a[v>>2]=a[o+8>>2];w=o+32|0;s[E>>3]=+s[w>>3];s[C>>3]=+s[Q>>3];r[I>>0]=108;s[J>>3]=l;a[V>>2]=a[J>>2];a[V+4>>2]=a[J+4>>2];a[V+8>>2]=a[J+8>>2];a[V+12>>2]=a[J+12>>2];qi(A,V,R);u=+s[w>>3]+l;s[n>>3]=u;o=o+56|0;d=d+1|0;l=u}h=h+1|0}_i(A);k=U;return}function ia(A){A=A|0;L2(a[A>>2]|0);L2(a[A+4>>2]|0);L2(a[A+8>>2]|0);L2(a[A+16>>2]|0);L2(a[A+12>>2]|0);L2(a[A+20>>2]|0);L2(a[A+24>>2]|0);return}function ra(A){A=A|0;var e=0,i=0,r=0,n=0,l=0,t=0,c=0,s=0;if(A|0){c=A+4|0;i=0;n=a[A>>2]|0;while(1){if((i|0)>=(f[c>>1]|0))break;s=n+4|0;e=0;r=a[n>>2]|0;while(1){if((e|0)>=(f[s>>1]|0))break;L2(a[r>>2]|0);l=a[r+8>>2]|0;if(l|0?(t=a[r+12>>2]|0,t|0):0)F5[t&127](l);e=e+1|0;r=r+56|0}i=i+1|0;n=n+24|0}e=a[A>>2]|0;if(e|0)L2(e);L2(A)}return}function fa(A){A=A|0;L2(a[A+32>>2]|0);L2(A);return}function aa(A,e){A=A|0;e=e|0;switch(r[A+4>>0]|0){case 1:{na(a[A>>2]|0);break}case 3:{fa(a[A>>2]|0);break}default:ra(a[A>>2]|0)}if(e|0)L2(A);return}function na(A){A=A|0;var e=0,i=0,r=0;r=A+84|0;if((a[A+100>>2]|0)==-1)Hk(a[r>>2]|0)|0;else{e=a[r>>2]|0;L2(a[A+92>>2]|0);L2(a[A+96>>2]|0);while(1){i=a[e>>2]|0;if(!i)break;la(i);e=e+4|0}L2(a[r>>2]|0)}ia(A);L2(A);return}function la(A){A=A|0;aa(A+88|0,0);ia(A);L2(A);return}function ta(A,e,i){A=A|0;e=e|0;i=i|0;var f=0;A=a[(a[(a[A+16>>2]|0)+104>>2]|0)+72>>2]|0;if((r[A+4>>0]|0)!=2?(f=ca(a[A>>2]|0,e)|0,(f|0)!=0):0){a[i>>2]=n[f+35>>0];A=f+48|0}else A=0;return A|0}function ca(A,e){A=A|0;e=e|0;var i=0,r=0;i=a[A+4>>2]|0;if(!((i|0)!=0?(p1(i,e)|0)==0:0))r=3;A:do{if((r|0)==3){i=a[A+84>>2]|0;while(1){A=a[i>>2]|0;if(!A){A=0;break A}A=sa(A,e)|0;if(!A)i=i+4|0;else break}}}while(0);return A|0}function sa(A,e){A=A|0;e=e|0;var i=0;i=a[A+4>>2]|0;if(!((i|0)!=0?(p1(i,e)|0)==0:0))if((r[A+92>>0]|0)==1)A=ca(a[A+88>>2]|0,e)|0;else A=0;return A|0}function ba(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;return 0}function ua(A){A=A|0;var e=0.0,i=0,n=0,t=0,c=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0;o=A+92|0;a[o>>2]=qF((a[A+100>>2]<<2)+4|0)|0;w=qF((a[A+104>>2]<<2)+4|0)|0;a[A+96>>2]=w;k=A+32|0;u=a[A+84>>2]|0;while(1){b=a[u>>2]|0;if(!b)break;A=f[b+82>>1]|0;e=+s[b+72>>3];if(A<<16>>16==1)n=~~e;else{n=~~((e-+(U((r[k>>0]|0)+-1|0,(A&65535)+-1|0)|0))/+(A&65535));n=(n|0)>1?n:1}t=f[b+80>>1]|0;e=+s[b+64>>3];if(t<<16>>16==1)c=~~e;else{c=~~((e-+(U((r[k>>0]|0)+-1|0,(t&65535)+-1|0)|0))/+(t&65535));c=(c|0)>1?c:1}h=l[b+86>>1]|0;i=(A&65535)+h|0;A=h;while(1){if((A|0)>=(i|0))break;h=(a[o>>2]|0)+(A<<2)|0;d=a[h>>2]|0;a[h>>2]=(d|0)>(n|0)?d:n;A=A+1|0}A=l[b+84>>1]|0;i=(t&65535)+A|0;while(1){if((A|0)>=(i|0))break;d=w+(A<<2)|0;h=a[d>>2]|0;a[d>>2]=(h|0)>(c|0)?h:c;A=A+1|0}u=u+4|0}return}function wa(A){A=A|0;var e=0,i=0;i=k;k=k+16|0;e=i;if(A>>>0<21)A=a[55840+(A<<2)>>2]|0;else{a[e>>2]=A;S4(194959,137395,e)|0;A=194959}k=i;return A|0}function ka(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,t=0,c=0,b=0,u=0,w=0,k=0;c=A+104|0;b=A+100|0;t=i+16|0;r=0;f=0;while(1){if((r|0)>(a[c>>2]|0))break;n=gd(i,wa(r)|0,1)|0;Td(n,137447,304,1)|0;u=n+16|0;a[(a[u>>2]|0)+176>>2]=0;k=qF((a[b>>2]<<2)+4|0)|0;w=a[u>>2]|0;a[w+172>>2]=k;a[w+184>>2]=0;w=qF((a[b>>2]<<2)+4|0)|0;a[(a[u>>2]|0)+180>>2]=w;if(!f)a[(a[t>>2]|0)+192>>2]=n;else a[(a[f+16>>2]|0)+164>>2]=n;r=r+1|0;f=n}t=e+16|0;r=0;f=0;while(1){if((r|0)>(a[b>>2]|0))break;n=gd(e,wa(r)|0,1)|0;Td(n,137447,304,1)|0;k=n+16|0;a[(a[k>>2]|0)+176>>2]=0;u=qF((a[c>>2]<<2)+4|0)|0;w=a[k>>2]|0;a[w+172>>2]=u;a[w+184>>2]=0;w=qF((a[c>>2]<<2)+4|0)|0;a[(a[k>>2]|0)+180>>2]=w;if(!f)a[(a[t>>2]|0)+192>>2]=n;else a[(a[f+16>>2]|0)+164>>2]=n;r=r+1|0;f=n}r=a[A+84>>2]|0;while(1){f=a[r>>2]|0;if(!f)break;k=f+84|0;w=gd(i,wa(l[k>>1]|0)|0,0)|0;k=gd(i,wa((l[f+80>>1]|0)+(l[k>>1]|0)|0)|0,0)|0;oa(i,w,k,~~+s[f+64>>3]);k=f+86|0;w=gd(e,wa(l[k>>1]|0)|0,0)|0;k=gd(e,wa((l[f+82>>1]|0)+(l[k>>1]|0)|0)|0,0)|0;oa(e,w,k,~~+s[f+72>>3]);r=r+4|0}ha(i);ha(e);return}function oa(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var n=0,t=0;n=th(A,e,i,0,0)|0;if(!n){t=th(A,e,i,0,1)|0;Td(t,137460,176,1)|0;f[(a[t+16>>2]|0)+170>>1]=r;e=e+16|0;A=a[e>>2]|0;n=a[A+180>>2]|0;if(!n)A=$F((a[A+184>>2]<<2)+8|0)|0;else A=eV(n,(a[A+184>>2]<<2)+8|0)|0;r=a[e>>2]|0;a[r+180>>2]=A;r=r+184|0;n=a[r>>2]|0;a[r>>2]=n+1;a[A+(n<<2)>>2]=t;e=a[e>>2]|0;a[(a[e+180>>2]|0)+(a[e+184>>2]<<2)>>2]=0;e=i+16|0;A=a[e>>2]|0;n=a[A+172>>2]|0;if(!n)A=$F((a[A+176>>2]<<2)+8|0)|0;else A=eV(n,(a[A+176>>2]<<2)+8|0)|0;r=a[e>>2]|0;a[r+172>>2]=A;r=r+176|0;i=a[r>>2]|0;a[r>>2]=i+1;a[A+(i<<2)>>2]=t;t=a[e>>2]|0;a[(a[t+172>>2]|0)+(a[t+176>>2]<<2)>>2]=0}else{t=(a[n+16>>2]|0)+170|0;i=l[t>>1]|0;f[t>>1]=(i|0)>(r|0)?i:r}return}function ha(A){A=A|0;var e=0,i=0,r=0,n=0,l=0,t=0;e=a[(a[A+16>>2]|0)+192>>2]|0;while(1){r=e+16|0;l=a[(a[r>>2]|0)+164>>2]|0;if(!l)break;if(th(A,e,l,0,0)|0){e=l;continue}n=th(A,e,l,0,1)|0;Td(n,137460,176,1)|0;f[(a[n+16>>2]|0)+170>>1]=0;e=a[r>>2]|0;i=a[e+180>>2]|0;if(!i)e=$F((a[e+184>>2]<<2)+8|0)|0;else e=eV(i,(a[e+184>>2]<<2)+8|0)|0;t=a[r>>2]|0;a[t+180>>2]=e;t=t+184|0;i=a[t>>2]|0;a[t>>2]=i+1;a[e+(i<<2)>>2]=n;r=a[r>>2]|0;a[(a[r+180>>2]|0)+(a[r+184>>2]<<2)>>2]=0;r=l+16|0;e=a[r>>2]|0;i=a[e+172>>2]|0;if(!i)e=$F((a[e+176>>2]<<2)+8|0)|0;else e=eV(i,(a[e+176>>2]<<2)+8|0)|0;i=a[r>>2]|0;a[i+172>>2]=e;i=i+176|0;t=a[i>>2]|0;a[i>>2]=t+1;a[e+(t<<2)>>2]=n;e=a[r>>2]|0;a[(a[e+172>>2]|0)+(a[e+176>>2]<<2)>>2]=0;e=l}return}function da(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0;n=A+92|0;r=0;f=0;e=a[(a[(a[e+16>>2]|0)+192>>2]|0)+16>>2]|0;while(1){e=a[e+164>>2]|0;if(!e)break;e=a[e+16>>2]|0;l=e+232|0;a[(a[n>>2]|0)+(f<<2)>>2]=(a[l>>2]|0)-r;r=a[l>>2]|0;f=f+1|0}A=A+96|0;r=0;f=0;e=a[(a[(a[i+16>>2]|0)+192>>2]|0)+16>>2]|0;while(1){e=a[e+164>>2]|0;if(!e)break;e=a[e+16>>2]|0;l=e+232|0;a[(a[A>>2]|0)+(f<<2)>>2]=(a[l>>2]|0)-r;r=a[l>>2]|0;f=f+1|0}return}function Ba(A){A=A|0;var e=0,i=0,f=0,n=0,l=0;l=k;k=k+16|0;n=l+4|0;e=l;a[e>>2]=a[4647];i=a[A+100>>2]|0;if((i|0)!=1?(f=A+104|0,(a[f>>2]|0)!=1):0){a[A+92>>2]=qF((i<<2)+4|0)|0;a[A+96>>2]=qF((a[f>>2]<<2)+4|0)|0;r[n>>0]=r[e>>0]|0;r[n+1>>0]=r[e+1>>0]|0;r[n+2>>0]=r[e+2>>0]|0;r[n+3>>0]=r[e+3>>0]|0;f=kh(137473,n,0)|0;r[n>>0]=r[e>>0]|0;r[n+1>>0]=r[e+1>>0]|0;r[n+2>>0]=r[e+2>>0]|0;r[n+3>>0]=r[e+3>>0]|0;n=kh(137478,n,0)|0;Td(f,137483,280,1)|0;Td(n,137483,280,1)|0;ka(A,f,n);JV(f,2,2147483647)|0;JV(n,2,2147483647)|0;da(A,f,n);ga(f,n)}else ua(A);k=l;return}function ga(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;i=(a[e+16>>2]|0)+192|0;while(1){i=a[i>>2]|0;if(!i)break;f=i+16|0;i=a[f>>2]|0;r=a[i+172>>2]|0;if(r){L2(r);i=a[f>>2]|0}r=a[i+180>>2]|0;if(r){L2(r);i=a[f>>2]|0}i=i+164|0}Bh(A)|0;Bh(e)|0;return}function va(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0.0,d=0.0;o=k;k=k+272|0;u=o+104|0;w=o+136|0;t=o+72|0;c=o;n=o+144|0;a[c+48>>2]=A;switch(Md(A)|0){case 0:{i=a[A+60>>2]|0;break}case 1:{i=Id(A)|0;break}case 2:{i=Id(a[((a[A>>2]&3|0)==2?A:A+-48|0)+40>>2]|0)|0;break}default:{}}l=c+52|0;a[l>>2]=i;b=a[i+60>>2]|0;s[c+32>>3]=+s[e+16>>3];a[c+16>>2]=a[e+4>>2];a[c+20>>2]=a[e+8>>2];a[c+40>>2]=0;f=zl(a[e>>2]|0,w,c)|0;if(!f){co(u,128,n);r[e+82>>0]=0;i=b3(Ea(A,u)|0)|0;a[e>>2]=i;if((a[e+12>>2]|0)==1)i=EX(i)|0;else i=BX(i,a[l>>2]|0)|0;L2(a[e>>2]|0);a[e>>2]=i;RF(a[(a[b+16>>2]|0)+144>>2]|0,e);wo(u);i=a[w>>2]|0}else{i=f+4|0;if((r[i>>0]|0)==1){if((a[(a[f>>2]|0)+24>>2]|0)==0?Ca(A)|0:0){l=b3(Ca(A)|0)|0;a[(a[f>>2]|0)+24>>2]=l}b=Ia(b,a[f>>2]|0,0,c)|0;a[w>>2]=a[w>>2]|b;b=a[f>>2]|0;d=+s[b+64>>3]*.5;h=+s[b+72>>3]*.5;Za(t,-d,-h,d,h);b=a[f>>2]|0;a[u>>2]=a[t>>2];a[u+4>>2]=a[t+4>>2];a[u+8>>2]=a[t+8>>2];a[u+12>>2]=a[t+12>>2];a[u+16>>2]=a[t+16>>2];a[u+20>>2]=a[t+20>>2];a[u+24>>2]=a[t+24>>2];a[u+28>>2]=a[t+28>>2];Ga(b,u,15)}else{ma(a[(a[b+16>>2]|0)+144>>2]|0,a[f>>2]|0,c);u=a[f>>2]|0;h=+s[u+24>>3]*.5;d=+s[u+32>>3]*.5;Za(t,-h,-d,h,d);u=(a[f>>2]|0)+8|0;a[u>>2]=a[t>>2];a[u+4>>2]=a[t+4>>2];a[u+8>>2]=a[t+8>>2];a[u+12>>2]=a[t+12>>2];a[u+16>>2]=a[t+16>>2];a[u+20>>2]=a[t+20>>2];a[u+24>>2]=a[t+24>>2];a[u+28>>2]=a[t+28>>2]}s[e+24>>3]=+s[t+16>>3]-+s[t>>3];s[e+32>>3]=+s[t+24>>3]-+s[t+8>>3];a[e+72>>2]=f;if((r[i>>0]|0)==1){L2(a[e>>2]|0);a[e>>2]=b3(141611)|0}i=a[w>>2]|0}k=o;return i|0}function Ea(A,e){A=A|0;e=e|0;var i=0;A:do{switch(Md(A)|0){case 0:{uo(e,Vh(A)|0)|0;break}case 1:{uo(e,Vh(A)|0)|0;break}case 2:{uo(e,Vh(a[((a[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0)|0)|0;i=A+-48|0;uo(e,Vh(a[((a[A>>2]&3|0)==2?A:i)+40>>2]|0)|0)|0;if(!(Ih(Id(a[((a[A>>2]&3|0)==2?A:i)+40>>2]|0)|0)|0)){uo(e,141747)|0;break A}else{uo(e,137738)|0;break A}}default:{}}}while(0);i=e+4|0;A=a[i>>2]|0;if(A>>>0>=(a[e+8>>2]|0)>>>0){so(e,1)|0;A=a[i>>2]|0}r[A>>0]=0;e=a[e>>2]|0;a[i>>2]=e;return e|0}function Ca(A){A=A|0;var e=0,i=0;e=Ho(A,137729)|0;if(!((e|0)!=0?(r[e>>0]|0)!=0:0))i=3;do{if((i|0)==3){e=Ho(A,140823)|0;if(e|0?r[e>>0]|0:0)break;e=0}}while(0);return e|0}function Ia(A,e,i,t){A=A|0;e=e|0;i=i|0;t=t|0;var c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0;C=k;k=k+16|0;v=C+8|0;g=C;E=e+108|0;c=a[E>>2]|0;if(c|0)xf(t,c,186576);a[e+80>>2]=i;c=Wa(A,e,t)|0;d=e+36|0;A=f[d>>1]|0;if(!(A&128))r[e+32>>0]=2;i=e+33|0;if(!(A&32))r[i>>0]=1;Ba(e);u=a[e+104>>2]|0;o=r[e+32>>0]|0;A=U(u+1|0,o)|0;w=n[i>>0]<<1;h=a[e+100>>2]|0;o=U(h+1|0,o)|0;b=e+96|0;A=w+A|0;i=0;while(1){if((i|0)>=(u|0))break;A=(a[(a[b>>2]|0)+(i<<2)>>2]|0)+A|0;i=i+1|0}u=e+92|0;i=o+w|0;b=0;while(1){if((b|0)>=(h|0))break;i=(a[(a[u>>2]|0)+(b<<2)>>2]|0)+i|0;b=b+1|0}u=e+38|0;do{if(f[d>>1]&1){d=f[u>>1]|0;b=d&65535;if(d<<16>>16?(B=f[e+40>>1]|0,B<<16>>16):0){if(!((A|0)>(b|0)|(i|0)>(B&65535|0))){i=0;A=0;break}ao(0,137529,g)|0;c=1;i=0;A=0;break}ao(0,137563,v)|0;c=1}}while(0);v=l[u>>1]|0;s[e+64>>3]=+(((A|0)>(v|0)?A:v)|0);v=l[e+40>>1]|0;s[e+72>>3]=+(((i|0)>(v|0)?i:v)|0);if(a[E>>2]|0)qf(t,186576);k=C;return c|0}function Za(A,e,i,r,f){A=A|0;e=+e;i=+i;r=+r;f=+f;s[A>>3]=e;s[A+8>>3]=i;s[A+16>>3]=r;s[A+24>>3]=f;return}function Ga(A,e,i){A=A|0;e=e|0;i=i|0;var l=0,t=0,c=0,b=0.0,u=0.0,w=0,o=0,h=0.0,d=0.0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0.0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0.0,V=0;M=k;k=k+64|0;Y=M+32|0;D=M;W=a[A+84>>2]|0;c=a[A+80>>2]|0;if((c|0?(l=a[c+24>>2]|0,l|0):0)?(t=A+24|0,(a[t>>2]|0)==0):0)a[t>>2]=b3(l)|0;z=A+48|0;l=e+16|0;u=+s[l>>3];b=+s[e>>3];c=~~(u-b-+(~~+s[A+64>>3]|0));if((c|0)<=-1)gA(137496,137342,1761,137506);w=e+24|0;Z=+s[w>>3];o=e+8|0;h=+s[o>>3];d=+(~~+s[A+72>>3]|0);B=~~(Z-h-d);if((B|0)<=-1)gA(137519,137342,1764,137506);g=f[A+36>>1]|0;t=g&65535;A:do{if(t&1){e:do{if((c|0)>0)switch(t&6){case 4:{s[l>>3]=b+d;break e}case 2:{F=+(c|0);s[l>>3]=u+F;b=b+F;s[e>>3]=b;break e}default:{F=+(c>>>1|0);b=b+F;s[e>>3]=b;s[l>>3]=u-F;break e}}}while(0);if((B|0)>0)switch(g&24){case 16:{Z=h+d;s[w>>3]=Z;B=0;l=0;break A}case 8:{F=+(B|0);Z=Z+F;s[w>>3]=Z;s[o>>3]=h+F;B=0;l=0;break A}default:{F=+(B>>>1|0);s[o>>3]=h+F;Z=Z-F;s[w>>3]=Z;B=0;l=0;break A}}else{B=0;l=0}}else l=c}while(0);u=+(n[A+33>>0]|0);L=A+32|0;v=r[L>>0]|0;h=+(v<<24>>24);y=A+104|0;c=a[y>>2]|0;g=(l|0)/(c|0)|0;w=l-(U(g,c)|0)|0;w=~~(((w|0)>-1?.5:-.5)+ +(w|0));Q=A+96|0;o=v<<24>>24;l=~~(b+u+h);t=0;while(1){if((t|0)>(c|0))break;m=(a[Q>>2]|0)+(t<<2)|0;c=a[m>>2]|0;a[m>>2]=l;l=l+g+((t|0)<(w|0)&1)+c+o|0;t=t+1|0;c=a[y>>2]|0}m=A+100|0;c=a[m>>2]|0;g=(B|0)/(c|0)|0;o=B-(U(g,c)|0)|0;o=~~(((o|0)>-1?.5:-.5)+ +(o|0));G=A+92|0;w=v<<24>>24;l=~~(Z-u-h);t=0;while(1){if((t|0)>(c|0))break;I=(a[G>>2]|0)+(t<<2)|0;c=a[I>>2]|0;a[I>>2]=l;l=l-g+(((t|0)<(o|0))<<31>>31)-c-w|0;t=t+1|0;c=a[m>>2]|0}v=(i|0)==0;E=D+16|0;C=D+24|0;I=D+8|0;l=W;while(1){w=a[l>>2]|0;if(!w)break;c=f[w+84>>1]|0;if(v){t=0;o=f[w+80>>1]|0;B=f[w+86>>1]|0;g=f[w+82>>1]|0}else{t=c<<16>>16==0?8:0;B=f[w+86>>1]|0;t=B<<16>>16==0?t|4:t;o=f[w+80>>1]|0;g=f[w+82>>1]|0;t=(((o&65535)+(c&65535)|0)==(a[y>>2]|0)?t|2:t)|((g&65535)+(B&65535)|0)==(a[m>>2]|0)}V=a[Q>>2]|0;c=c&65535;s[D>>3]=+(a[V+(c<<2)>>2]|0);W=r[L>>0]|0;s[E>>3]=+((a[V+((o&65535)+c<<2)>>2]|0)-W|0);o=a[G>>2]|0;s[C>>3]=+(a[o+((B&65535)<<2)>>2]|0);s[I>>3]=+((a[o+((g&65535)+(B&65535)<<2)>>2]|0)+W|0);a[Y>>2]=a[D>>2];a[Y+4>>2]=a[D+4>>2];a[Y+8>>2]=a[D+8>>2];a[Y+12>>2]=a[D+12>>2];a[Y+16>>2]=a[D+16>>2];a[Y+20>>2]=a[D+20>>2];a[Y+24>>2]=a[D+24>>2];a[Y+28>>2]=a[D+28>>2];Qa(w,Y,t&i);l=l+4|0}r[A+35>>0]=i;a[z>>2]=a[e>>2];a[z+4>>2]=a[e+4>>2];a[z+8>>2]=a[e+8>>2];a[z+12>>2]=a[e+12>>2];a[z+16>>2]=a[e+16>>2];a[z+20>>2]=a[e+20>>2];a[z+24>>2]=a[e+24>>2];a[z+28>>2]=a[e+28>>2];k=M;return}function ma(A,e,i){A=A|0;e=e|0;i=i|0;var n=0,l=0,t=0.0,c=0.0,b=0,u=0,w=0.0,o=0.0,h=0.0,d=0,B=0.0,g=0.0,v=0.0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0.0,H=0.0,U=0.0;R=k;k=k+112|0;D=R+48|0;M=R+16|0;F=R;a[M>>2]=0;a[M+4>>2]=0;a[M+8>>2]=0;a[M+12>>2]=0;a[M+16>>2]=0;a[M+20>>2]=0;a[M+24>>2]=0;a[M+28>>2]=0;V=e+4|0;J=i+16|0;p=i+32|0;N=M+16|0;d=f[V>>1]|0;u=d<<16>>16;n=0;t=-1.0;b=0;while(1){if((b|0)>=(u|0)){n=1;break}l=a[e>>2]|0;if((f[l+(b*24|0)+4>>1]|0)>1){n=0;break}l=a[(a[l+(b*24|0)>>2]|0)+4>>2]|0;if(!l){c=+s[p>>3];s[N>>3]=c;l=J}else{if(a[l+24>>2]&127|0){n=0;break}c=+s[(+s[l+16>>3]>0.0?l:J)+16>>3];s[N>>3]=c;l=(a[l>>2]|0)==0?J:l}l=a[l>>2]|0;a[M>>2]=l;if(!(t==-1.0)){if(c!=t){n=0;break}}else t=c;if(n){if(A1(l,n)|0){n=0;break}}else n=l;b=b+1|0}r[e+6>>0]=n;W=i+48|0;z=i+20|0;Y=M+4|0;C=i+40|0;I=M+24|0;Z=A+144|0;G=D+4|0;E=F+8|0;m=D+16|0;Q=D+24|0;L=D+8|0;y=D+12|0;i=(n|0)==0;t=0.0;B=0.0;g=0.0;v=0.0;u=0;n=d;while(1){if((u|0)>=(n<<16>>16|0))break;c=0.0;h=0.0;b=0;o=0.0;t=0.0;l=a[e>>2]|0;while(1){if((b|0)>=(f[l+(u*24|0)+4>>1]|0))break;a[D>>2]=PF(a[(a[l+(u*24|0)>>2]|0)+(b*56|0)>>2]|0,a[W>>2]|0)|0;l=(a[e>>2]|0)+(u*24|0)|0;n=a[(a[l>>2]|0)+(b*56|0)+4>>2]|0;if(!n){s[N>>3]=+s[p>>3];a[M>>2]=a[J>>2];a[Y>>2]=a[z>>2];a[I>>2]=a[I>>2]&-128|a[C>>2]&127}else{n=a[n+24>>2]&127;if(!n)n=a[C>>2]&127;a[I>>2]=a[I>>2]&-128|n;d=a[(a[l>>2]|0)+(b*56|0)+4>>2]|0;s[N>>3]=+s[(+s[d+16>>3]>0.0?d:J)+16>>3];a[M>>2]=a[((a[d>>2]|0)==0?J:d)>>2];a[Y>>2]=a[((a[d+4>>2]|0)==0?J:d)+4>>2]}l=a[Z>>2]|0;a[G>>2]=y5[a[l>>2]&63](l,M,1)|0;AR(F,A,D);H=+s[F>>3];w=+s[E>>3];L2(a[(a[(a[e>>2]|0)+(u*24|0)>>2]|0)+(b*56|0)>>2]|0);l=a[e>>2]|0;d=a[l+(u*24|0)>>2]|0;a[d+(b*56|0)>>2]=a[D>>2];s[d+(b*56|0)+32>>3]=H;s[d+(b*56|0)+16>>3]=+s[m>>3];s[d+(b*56|0)+24>>3]=+s[Q>>3];a[d+(b*56|0)+4>>2]=a[G>>2];a[d+(b*56|0)+8>>2]=a[L>>2];a[d+(b*56|0)+12>>2]=a[y>>2];X=+s[N>>3];U=+s[Q>>3];c=U>c?U:c;h=H+h;b=b+1|0;o=X>o?X:o;t=w>t?w:t}s[l+(u*24|0)+8>>3]=h;n=(u|0)==0;do{if(i)if(n){w=o;c=o-c;n=l;break}else{w=o;c=g-v+o-c;n=l+(u*24|0)|0;break}else{w=t;c=n?o:t;n=l+(u*24|0)|0}}while(0);s[n+16>>3]=c;B=h>B?h:B;g=w+g;v=+s[l+(u*24|0)+16>>3]+v;u=u+1|0;n=f[V>>1]|0}s[e+24>>3]=B;s[e+32>>3]=n<<16>>16==1?t:g;k=R;return}function Qa(A,e,i){A=A|0;e=e|0;i=i|0;var l=0,t=0,c=0.0,b=0.0,u=0.0,w=0.0,o=0.0,h=0.0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0.0,m=0.0;Z=k;k=k+64|0;E=Z+32|0;I=Z;t=A+24|0;if((a[t>>2]|0)==0?(l=a[(a[A+96>>2]|0)+24>>2]|0,l|0):0)a[t>>2]=b3(l)|0;g=A+36|0;C=f[g>>1]|0;l=C&65535;A:do{if(l&1){c=+s[A+64>>3];h=+s[A+72>>3];t=e+16|0;b=+s[t>>3];w=+s[e>>3];u=b-w-c;e:do{if(u>0.0)switch(l&6){case 4:{b=w+c;s[t>>3]=b;c=w;break e}case 2:{b=u+b;s[t>>3]=b;c=w+u;s[e>>3]=c;break e}default:{o=u*.5;c=o+w;s[e>>3]=c;b=b-o;s[t>>3]=b;break e}}else c=w}while(0);l=e+24|0;o=+s[l>>3];t=e+8|0;u=+s[t>>3];w=o-u-h;if(w>0.0)switch(C&24){case 16:{w=u+h;s[l>>3]=w;break A}case 8:{h=w+o;s[l>>3]=h;u=u+w;s[t>>3]=u;w=h;break A}default:{w=w*.5;u=w+u;s[t>>3]=u;w=o-w;s[l>>3]=w;break A}}else w=o}else{c=+s[e>>3];u=+s[e+8>>3];b=+s[e+16>>3];w=+s[e+24>>3]}}while(0);B=A+48|0;a[B>>2]=a[e>>2];a[B+4>>2]=a[e+4>>2];a[B+8>>2]=a[e+8>>2];a[B+12>>2]=a[e+12>>2];a[B+16>>2]=a[e+16>>2];a[B+20>>2]=a[e+20>>2];a[B+24>>2]=a[e+24>>2];a[B+28>>2]=a[e+28>>2];r[A+35>>0]=i;m=+(n[A+33>>0]|0);G=+(n[A+34>>0]|0);o=c+m+G;s[I>>3]=o;h=u+m+G;B=I+8|0;s[B>>3]=h;u=b-m-G;e=I+16|0;s[e>>3]=u;w=w-m-G;d=I+24|0;s[d>>3]=w;t=A+88|0;switch(r[A+92>>0]|0){case 1:{C=a[t>>2]|0;a[E>>2]=a[I>>2];a[E+4>>2]=a[I+4>>2];a[E+8>>2]=a[I+8>>2];a[E+12>>2]=a[I+12>>2];a[E+16>>2]=a[I+16>>2];a[E+20>>2]=a[I+20>>2];a[E+24>>2]=a[I+24>>2];a[E+28>>2]=a[I+28>>2];Ga(C,E,i);break}case 3:{l=a[t>>2]|0;c=+s[l+24>>3];b=u-o-+s[l+16>>3];A:do{if(b>0.0)switch(C&6){case 4:{s[e>>3]=u-b;break A}case 2:{s[I>>3]=b+o;break A}default:break A}}while(0);c=w-h-c;A:do{if(c>0.0)switch(C&24){case 16:{s[d>>3]=w-c;break A}case 8:{s[B>>3]=c+h;break A}default:break A}}while(0);a[E>>2]=a[I>>2];a[E+4>>2]=a[I+4>>2];a[E+8>>2]=a[I+8>>2];a[E+12>>2]=a[I+12>>2];a[E+16>>2]=a[I+16>>2];a[E+20>>2]=a[I+20>>2];a[E+24>>2]=a[I+24>>2];a[E+28>>2]=a[I+28>>2];La(l,E);break}default:{l=a[t>>2]|0;c=+s[l+32>>3];b=u-o-+s[l+24>>3];A:do{if(b>0.0?(v=C&6,v<<16>>16!=6):0)switch(v&7){case 4:{s[e>>3]=u-b;break A}case 2:{s[I>>3]=b+o;break A}default:{m=b*.5;s[I>>3]=m+o;s[e>>3]=u-m;break A}}}while(0);c=w-h-c;A:do{if(c>0.0)switch(C&24){case 16:{s[d>>3]=w-c;break A}case 8:{s[B>>3]=c+h;break A}default:{m=c*.5;s[B>>3]=m+h;s[d>>3]=w-m;break A}}}while(0);C=l+8|0;a[C>>2]=a[I>>2];a[C+4>>2]=a[I+4>>2];a[C+8>>2]=a[I+8>>2];a[C+12>>2]=a[I+12>>2];a[C+16>>2]=a[I+16>>2];a[C+20>>2]=a[I+20>>2];a[C+24>>2]=a[I+24>>2];a[C+28>>2]=a[I+28>>2];I=f[g>>1]&768;ya(a[t>>2]|0,(I&1023)==512?108:(I&1023)==256?114:110)}}k=Z;return}function La(A,e){A=A|0;e=e|0;a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2];a[A+16>>2]=a[e+16>>2];a[A+20>>2]=a[e+20>>2];a[A+24>>2]=a[e+24>>2];a[A+28>>2]=a[e+28>>2];return}function ya(A,e){A=A|0;e=e|0;var i=0,n=0,l=0;n=f[A+4>>1]|0;i=0;while(1){if((i|0)>=(n|0))break;l=(a[A>>2]|0)+(i*24|0)+6|0;if(!(r[l>>0]|0))r[l>>0]=e;i=i+1|0}return}function Wa(A,e,i){A=A|0;e=e|0;i=i|0;var n=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0;b=e+84|0;g=a[b>>2]|0;v=$V()|0;E=Ma()|0;t=0;n=0;s=xk(g)|0;while(1){if(!s)break;c=xk(a[s+8>>2]|0)|0;while(1){if(!c)break;c=a[c>>2]|0;t=t+1|0}n=n+1|0;if(r[s+12>>0]|0)pa(E,n);s=a[s>>2]|0}n=qF((t<<2)+4|0)|0;a[b>>2]=n;t=0;c=0;s=0;h=0;d=xk(g)|0;while(1){if(!d)break;B=h&65535;o=0;k=xk(a[d+8>>2]|0)|0;while(1){if(!k)break;w=a[k+8>>2]|0;a[n>>2]=w;s=za(A,w,e,i)|0|s;b=Ya(v,h,o,w)|0;f[w+86>>1]=B;f[w+84>>1]=b;b=b+(l[w+80>>1]|0)|0;u=h+(l[w+82>>1]|0)|0;if(Na(E,u)|0){o=w+100|0;r[o>>0]=r[o>>0]|2}o=b;n=n+4|0;k=a[k>>2]|0;t=(b|0)>(t|0)?b:t;c=(u|0)>(c|0)?u:c}h=h+1|0;d=a[d>>2]|0}a[e+100>>2]=c;a[e+104>>2]=t;Hk(g)|0;Hk(E)|0;iJ(v);return s|0}function za(A,e,i,t){A=A|0;e=e|0;i=i|0;t=t|0;var c=0.0,b=0.0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0.0;v=k;k=k+16|0;g=v+8|0;B=v;a[e+96>>2]=i;h=e+36|0;w=f[h>>1]|0;if(!(w&64)){if(!(f[i+36>>1]&64))u=2;else u=r[i+34>>0]|0;r[e+34>>0]=u}if(!(w&32)){u=r[i+88>>0]|0;if(u<<24>>24<=-1)if(!(f[i+36>>1]&32))u=1;else u=r[i+33>>0]|0;r[e+33>>0]=u}u=e+88|0;o=e+92|0;switch(r[o>>0]|0){case 1:{w=Ia(A,a[u>>2]|0,e,t)|0;i=a[u>>2]|0;u=w;w=i+64|0;i=i+72|0;break}case 3:{w=Da(a[u>>2]|0,t)|0;i=a[u>>2]|0;u=w;w=i+16|0;i=i+24|0;break}default:{ma(a[(a[A+16>>2]|0)+144>>2]|0,a[u>>2]|0,t);i=a[u>>2]|0;u=0;w=i+24|0;i=i+32|0}}c=+((n[e+33>>0]|0)+(n[e+34>>0]|0)<<1|0);b=+s[w>>3]+c;c=+s[i>>3]+c;i=e+38|0;do{if(f[h>>1]&1){w=f[i>>1]|0;if(w<<16>>16?(d=f[e+40>>1]|0,d<<16>>16):0){if(!(b>+(w&65535)|c>+(d&65535))){b=0.0;c=0.0;break}if((r[o>>0]|0)==3){b=0.0;c=0.0;break}ao(0,137614,B)|0;u=1;b=0.0;c=0.0;break}ao(0,137647,g)|0;u=1}}while(0);E=+(l[i>>1]|0);s[e+64>>3]=b>E?b:E;b=+(l[e+40>>1]|0);s[e+72>>3]=c>b?c:b;k=v;return u|0}function Ya(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,a=0,n=0,t=0,c=0;c=r+80|0;t=(l[c>>1]|0)+-1|0;n=0;A:while(1){f=i;while(1){if(n)break A;a=t+f|0;while(1){if((a|0)<(f|0)){i=f;n=1;continue A}if(lJ(A,a,e)|0)break;a=a+-1|0}f=a+1|0}}n=r+82|0;f=i;while(1){if((f|0)<(i+(l[c>>1]|0)|0))a=e;else break;while(1){if((a|0)>=((l[n>>1]|0)+e|0))break;aJ(A,f,a);a=a+1|0}f=f+1|0}return i|0}function Da(A,e){A=A|0;e=e|0;var i=0.0,f=0.0,n=0,l=0,t=0,c=0,b=0;b=k;k=k+16|0;t=b;l=b+8|0;e=e+52|0;n=A+32|0;Uv(l,a[e>>2]|0,a[n>>2]|0);c=a[l>>2]|0;l=a[l+4>>2]|0;if((l&c|0)==-1){a[t>>2]=a[n>>2];ao(1,137697,t)|0;e=1;f=0.0;i=0.0}else{r[(a[(a[e>>2]|0)+16>>2]|0)+114>>0]=1;e=0;f=+(l|0);i=+(c|0)}a[A>>2]=0;a[A+4>>2]=0;a[A+8>>2]=0;a[A+12>>2]=0;s[A+16>>3]=i;s[A+24>>3]=f;k=b;return e|0}function Ma(){return jk(55924,a[4581]|0)|0}function Fa(A,e,i){A=A|0;e=e|0;i=i|0;i=qF(12)|0;a[i>>2]=a[e>>2];return i|0}function Va(A,e,i){A=A|0;e=e|0;i=i|0;L2(e);return}function Ja(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;e=a[e>>2]|0;r=a[i>>2]|0;return((e|0)>(r|0)?1:((e|0)<(r|0))<<31>>31)|0}function pa(A,e){A=A|0;e=e|0;var i=0,r=0;i=k;k=k+16|0;r=i;a[r>>2]=e;y5[a[A>>2]&63](A,r,1)|0;k=i;return}function Na(A,e){A=A|0;e=e|0;var i=0,r=0;i=k;k=k+16|0;r=i;a[r>>2]=e;e=(y5[a[A>>2]&63](A,r,512)|0)!=0&1;k=i;return e|0}function Ra(A){A=A|0;var e=0;if(!(a[47375]|0)){e=qF((A<<2)+4|0)|0;a[47375]=e;a[e>>2]=189504;a[47386]=A}a[47387]=0;return}function Xa(){L2(a[47375]|0);a[47375]=0;a[47387]=0;return}function Ha(){a[47387]=0;return}function Ua(){var A=0,e=0,i=0;e=a[47387]|0;i=a[47375]|0;A=1;while(1){if((A|0)>(e|0)){A=5;break}if((a[(a[i+(A<<2)>>2]|0)+4>>2]|0)==(A|0))A=A+1|0;else{A=4;break}}if((A|0)==4)gA(138394,137741,59,137747);else if((A|0)==5)return}function xa(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0;f=a[47375]|0;n=a[f+(A<<2)>>2]|0;l=a[n>>2]|0;while(1){e=(A|0)/2|0;i=a[f+(e<<2)>>2]|0;r=f+(A<<2)|0;if((a[i>>2]|0)>=(l|0))break;a[r>>2]=i;a[i+4>>2]=A;A=e}a[r>>2]=n;a[n+4>>2]=A;return}function Ta(A){A=A|0;var e=0,i=0;i=k;k=k+16|0;e=a[47387]|0;if((e|0)==(a[47386]|0)){ao(1,137755,i)|0;A=1}else{e=e+1|0;a[47387]=e;a[(a[47375]|0)+(e<<2)>>2]=A;xa(e);Ua();A=0}k=i;return A|0}function ja(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0;r=a[47375]|0;f=a[r+(A<<2)>>2]|0;n=a[f>>2]|0;l=a[47387]|0;t=(l|0)/2|0;while(1){if((A|0)>(t|0))break;i=A<<1;e=a[r+(i<<2)>>2]|0;if((i|0)<(l|0)){b=i|1;c=a[r+(b<<2)>>2]|0;s=(a[e>>2]|0)<(a[c>>2]|0);i=s?b:i;e=s?c:e}if((n|0)>=(a[e>>2]|0))break;a[r+(A<<2)>>2]=e;a[e+4>>2]=A;A=i}a[r+(A<<2)>>2]=f;a[f+4>>2]=A;return}function Pa(){var A=0,e=0,i=0,r=0;e=a[47387]|0;if(!e)A=0;else{r=a[47375]|0;i=r+4|0;A=a[i>>2]|0;a[i>>2]=a[r+(e<<2)>>2];e=e+-1|0;a[47387]=e;if(e|0)ja(1);Ua()}return A|0}function Sa(A,e){A=A|0;e=e|0;a[A>>2]=e;xa(a[A+4>>2]|0);Ua();return}function Oa(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,k=0;u=A+16|0;t=a[u>>2]|0;t=(r[t+((a[i+12>>2]|0)*40|0)+36>>0]|0)!=(r[t+((a[i+16>>2]|0)*40|0)+36>>0]|0);c=~~((+s[e+64>>3]+-3.0-+s[e+48>>3])*.5);b=~~((+s[e+56>>3]+-3.0-+s[e+40>>3])*.5);n=(c|0)<(b|0)?c:b;w=e+4|0;f=0;while(1){A=a[w>>2]|0;if((f|0)>=(A|0)){n=f;break}l=a[e+8+(f<<2)>>2]|0;k=a[u>>2]|0;if((r[k+((a[l+12>>2]|0)*40|0)+36>>0]|0)==(r[k+((a[l+16>>2]|0)*40|0)+36>>0]|0)){n=f;break}Ka(l,n);f=f+1|0}while(1){if((n|0)>=(A|0))break;f=a[e+8+(n<<2)>>2]|0;if(t|(f|0)==(i|0)){Ka(f,r[(a[u>>2]|0)+((a[f+12>>2]|0)*40|0)+36>>0]|0?c:b);A=a[w>>2]|0}n=n+1|0}return}function Ka(A,e){A=A|0;e=e|0;var i=0,r=0;i=A+8|0;r=a[i>>2]|0;a[i>>2]=r+1;if((r|0)>=(e|0)){a[i>>2]=0;s[A>>3]=+s[A>>3]+16384.0}return}function _a(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0.0,w=0.0,o=0.0,h=0.0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0.0,G=0.0,m=0.0,Q=0.0,L=0,y=0,W=0.0;I=k;k=k+112|0;v=I+64|0;g=I+96|0;b=I+32|0;E=I;C=qF(28)|0;e=gh(A)|0;B=C+4|0;a[B>>2]=e;e=qF(e*72|0)|0;d=C+12|0;a[d>>2]=e;r=E+8|0;s[r>>3]=1797693134862315708145274.0e284;s[E>>3]=1797693134862315708145274.0e284;f=E+24|0;s[f>>3]=-1797693134862315708145274.0e284;n=E+16|0;s[n>>3]=-1797693134862315708145274.0e284;l=b+16|0;t=b+8|0;c=b+24|0;i=cd(A)|0;u=1797693134862315708145274.0e284;w=1797693134862315708145274.0e284;o=-1797693134862315708145274.0e284;h=-1797693134862315708145274.0e284;while(1){if(!i)break;L=i+16|0;y=a[L>>2]|0;G=(+s[y+96>>3]+ +s[y+88>>3])*.5;G=G<1.0?1.0:G;Z=+s[y+80>>3]*.5;Z=Z<1.0?1.0:Z;W=+s[y+16>>3];Q=W-G;s[b>>3]=Q;G=W+G;s[l>>3]=G;W=+s[y+24>>3];m=W-Z;s[t>>3]=m;Z=W+Z;s[c>>3]=Z;Q=+s[(u>3];s[E>>3]=Q;m=+s[(w>3];s[r>>3]=m;G=+s[(o>G?E:b)+16>>3];s[n>>3]=G;Z=+s[(h>Z?E:b)+24>>3];s[f>>3]=Z;y=e+40|0;a[y>>2]=a[b>>2];a[y+4>>2]=a[b+4>>2];a[y+8>>2]=a[b+8>>2];a[y+12>>2]=a[b+12>>2];a[y+16>>2]=a[b+16>>2];a[y+20>>2]=a[b+20>>2];a[y+24>>2]=a[b+24>>2];a[y+28>>2]=a[b+28>>2];a[e>>2]=a[e>>2]|1;a[(a[L>>2]|0)+112>>2]=e;e=e+72|0;i=sd(A,i)|0;u=Q;w=m;o=G;h=Z}s[E>>3]=u+-36.0;s[r>>3]=w+-36.0;s[n>>3]=o+36.0;s[f>>3]=h+36.0;y=a[d>>2]|0;f=a[B>>2]|0;a[v>>2]=a[E>>2];a[v+4>>2]=a[E+4>>2];a[v+8>>2]=a[E+8>>2];a[v+12>>2]=a[E+12>>2];a[v+16>>2]=a[E+16>>2];a[v+20>>2]=a[E+20>>2];a[v+24>>2]=a[E+24>>2];a[v+28>>2]=a[E+28>>2];f=tn(y,f,g,v)|0;if(a[47323]&1|0){d=a[d>>2]|0;L=a[B>>2]|0;y=a[g>>2]|0;a[v>>2]=a[E>>2];a[v+4>>2]=a[E+4>>2];a[v+8>>2]=a[E+8>>2];a[v+12>>2]=a[E+12>>2];a[v+16>>2]=a[E+16>>2];a[v+20>>2]=a[E+20>>2];a[v+24>>2]=a[E+24>>2];a[v+28>>2]=a[E+28>>2];qa(d,L,v,f,y)}r=C+8|0;a[r>>2]=qF((a[g>>2]|0)*72|0)|0;a[C>>2]=a[g>>2];i=a[g>>2]|0;e=0;while(1){if((e|0)>=(i|0))break;y=(a[r>>2]|0)+(e*72|0)+40|0;L=f+(e<<5)|0;a[y>>2]=a[L>>2];a[y+4>>2]=a[L+4>>2];a[y+8>>2]=a[L+8>>2];a[y+12>>2]=a[L+12>>2];a[y+16>>2]=a[L+16>>2];a[y+20>>2]=a[L+20>>2];a[y+24>>2]=a[L+24>>2];a[y+28>>2]=a[L+28>>2];e=e+1|0}L2(f);a[v>>2]=a[E>>2];a[v+4>>2]=a[E+4>>2];a[v+8>>2]=a[E+8>>2];a[v+12>>2]=a[E+12>>2];a[v+16>>2]=a[E+16>>2];a[v+20>>2]=a[E+20>>2];a[v+24>>2]=a[E+24>>2];a[v+28>>2]=a[E+28>>2];a[C+16>>2]=$a(C,v)|0;k=I;return C|0}function qa(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0.0,l=0,t=0,c=0.0,b=0.0,u=0.0,w=0,o=0,h=0,d=0,B=0,g=0.0,v=0.0,E=0.0;h=k;k=k+128|0;o=h+96|0;w=h+64|0;t=h+32|0;d=h+16|0;B=h;b=+s[i+16>>3];u=+s[i>>3];c=+s[i+24>>3];n=+s[i+8>>3];l=a[15712]|0;Q3(137770,l)|0;a[B>>2]=10;a[B+4>>2]=10;a[B+8>>2]=~~(b+10.0-u);a[B+12>>2]=~~(c+10.0-n);f3(l,138200,B)|0;s[d>>3]=10.0-u;s[d+8>>3]=10.0-n;f3(l,138248,d)|0;Q3(138265,l)|0;i=0;while(1){if((i|0)>=(e|0))break;E=+s[A+(i*72|0)+48>>3];v=+s[A+(i*72|0)+56>>3];g=+s[A+(i*72|0)+64>>3];s[t>>3]=+s[A+(i*72|0)+40>>3];s[t+8>>3]=E;s[t+16>>3]=v;s[t+24>>3]=g;f3(l,138284,t)|0;i=i+1|0}Q3(138302,l)|0;i=0;while(1){if((i|0)>=(f|0))break;g=+s[r+(i<<5)+8>>3];v=+s[r+(i<<5)+16>>3];E=+s[r+(i<<5)+24>>3];s[w>>3]=+s[r+(i<<5)>>3];s[w+8>>3]=g;s[w+16>>3]=v;s[w+24>>3]=E;f3(l,138321,w)|0;i=i+1|0}Q3(138339,l)|0;s[o>>3]=u;s[o+8>>3]=n;s[o+16>>3]=b;s[o+24>>3]=c;f3(l,138321,o)|0;Q3(138086,l)|0;k=h;return}function $a(A,e){A=A|0;e=e|0;var i=0,r=0.0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0;m=k;k=k+32|0;g=m+16|0;c=m;C=a[A>>2]|0;Z=vi(C<<2|2)|0;G=jk(55960,a[4581]|0)|0;E=jk(55996,a[4581]|0)|0;C=qF(C<<7)|0;f=qF(a[A>>2]<<4)|0;I=A+8|0;n=e+16|0;l=c+8|0;t=e+24|0;b=e+8|0;i=0;while(1){if((i|0)>=(a[A>>2]|0))break;u=a[I>>2]|0;w=u+(i*72|0)|0;a[u+(i*72|0)+32>>2]=4;o=u+(i*72|0)+36|0;a[o>>2]=f+(i<<2<<2);h=u+(i*72|0)+40|0;r=+s[u+(i*72|0)+56>>3];if(r<+s[n>>3]){s[c>>3]=r;s[l>>3]=+s[u+(i*72|0)+48>>3];a[g>>2]=a[c>>2];a[g+4>>2]=a[c+4>>2];a[g+8>>2]=a[c+8>>2];a[g+12>>2]=a[c+12>>2];B=An(Z,G,g,C,1)|0;a[B+20>>2]=w;a[a[o>>2]>>2]=B}r=+s[u+(i*72|0)+64>>3];if(r<+s[t>>3]){s[c>>3]=+s[h>>3];s[l>>3]=r;a[g>>2]=a[c>>2];a[g+4>>2]=a[c+4>>2];a[g+8>>2]=a[c+8>>2];a[g+12>>2]=a[c+12>>2];B=An(Z,E,g,C,0)|0;a[B+20>>2]=w;a[(a[o>>2]|0)+4>>2]=B}if(+s[h>>3]>+s[e>>3]){a[g>>2]=a[h>>2];a[g+4>>2]=a[h+4>>2];a[g+8>>2]=a[h+8>>2];a[g+12>>2]=a[h+12>>2];B=An(Z,G,g,C,1)|0;a[B+24>>2]=w;a[(a[o>>2]|0)+8>>2]=B}if(+s[u+(i*72|0)+48>>3]>+s[b>>3]){a[g>>2]=a[h>>2];a[g+4>>2]=a[h+4>>2];a[g+8>>2]=a[h+8>>2];a[g+12>>2]=a[h+12>>2];B=An(Z,E,g,C,0)|0;a[B+24>>2]=w;a[(a[o>>2]|0)+12>>2]=B}i=i+1|0}w=qF(a[Z>>2]<<2)|0;d=A+4|0;B=A+12|0;o=g+8|0;b=0;h=0;u=0;while(1){i=a[d>>2]|0;if((u|0)>=(i|0)){e=0;break}n=a[B>>2]|0;l=n+(u*72|0)|0;t=n+(u*72|0)+36|0;a[t>>2]=w+(b<<2);e=n+(u*72|0)+40|0;a[g>>2]=a[e>>2];a[g+4>>2]=a[e+4>>2];a[g+8>>2]=a[e+8>>2];a[g+12>>2]=a[e+12>>2];e=n+(u*72|0)+56|0;c=n+(u*72|0)+32|0;i=y5[a[E>>2]&63](E,g,512)|0;while(1){if(!i)break;if(!(+s[i+8>>3]<+s[e>>3]))break;L=a[i>>2]|0;Q=a[t>>2]|0;f=a[c>>2]|0;a[c>>2]=f+1;a[Q+(f<<2)>>2]=L;a[(a[i>>2]|0)+24>>2]=l;i=y5[a[E>>2]&63](E,i,8)|0}f=n+(u*72|0)+64|0;i=y5[a[G>>2]&63](G,g,512)|0;while(1){if(!i){v=20;break}r=+s[f>>3];if(!(+s[i+16>>3]>2]|0;Q=a[t>>2]|0;L=a[c>>2]|0;a[c>>2]=L+1;a[Q+(L<<2)>>2]=e;a[(a[i>>2]|0)+24>>2]=l;i=y5[a[G>>2]&63](G,i,8)|0}if((v|0)==20){v=0;r=+s[f>>3]}s[o>>3]=r;e=n+(u*72|0)+56|0;i=y5[a[E>>2]&63](E,g,512)|0;while(1){if(!i){v=25;break}r=+s[e>>3];if(!(+s[i+8>>3]>2]|0;Q=a[t>>2]|0;L=a[c>>2]|0;a[c>>2]=L+1;a[Q+(L<<2)>>2]=y;a[(a[i>>2]|0)+20>>2]=l;i=y5[a[E>>2]&63](E,i,8)|0}if((v|0)==25){v=0;r=+s[e>>3]}s[g>>3]=r;s[o>>3]=+s[n+(u*72|0)+48>>3];i=y5[a[G>>2]&63](G,g,512)|0;while(1){if(!i)break;if(!(+s[i+16>>3]<+s[f>>3]))break;Q=a[i>>2]|0;L=a[t>>2]|0;y=a[c>>2]|0;a[c>>2]=y+1;a[L+(y<<2)>>2]=Q;a[(a[i>>2]|0)+20>>2]=l;i=y5[a[G>>2]&63](G,i,8)|0}y=a[c>>2]|0;b=y+b|0;h=(y|0)>(h|0)?y:h;u=u+1|0}while(1){if((e|0)>=(i|0))break;en((a[B>>2]|0)+(e*72|0)|0);e=e+1|0;i=a[d>>2]|0}i=a[Z>>2]|0;y=a[Z+16>>2]|0;a[y+(i*40|0)+32>>2]=i;i=i+1|0;a[y+(i*40|0)+32>>2]=i;gi(Z,h);i=0;while(1){if((i|0)>=(a[A>>2]|0))break;rn((a[I>>2]|0)+(i*72|0)|0,Z);i=i+1|0}Hk(G)|0;Hk(E)|0;L2(C);fn(Z);di(Z);k=m;return Z|0}function An(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0,t=0;l=y5[a[e>>2]&63](e,i,512)|0;do{if(!l){A=Ei(A)|0;if(!f)gA(138183,138131,291,138190);else{l=a[A+32>>2]|0;t=f+(l<<5)|0;f=f+(l<<5)+8|0;a[f>>2]=a[i>>2];a[f+4>>2]=a[i+4>>2];a[f+8>>2]=a[i+8>>2];a[f+12>>2]=a[i+12>>2];a[t>>2]=A;r[A+36>>0]=n;y5[a[e>>2]&63](e,t,1)|0;break}}else t=l}while(0);return a[t>>2]|0}function en(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0;A:do{if((+s[A+64>>3]+-3.0-+s[A+48>>3])*.5<2.0){l=a[A+32>>2]|0;t=A+36|0;n=0;while(1){if((n|0)>=(l|0))break A;e=a[(a[t>>2]|0)+(n<<2)>>2]|0;e:do{if(r[e+36>>0]|0){f=a[e+20>>2]|0;if((f|0)==(A|0)){i=a[e+24>>2]|0;e=i;i=a[i>>2]|0;do{a[e>>2]=i|8;e=a[a[e+36>>2]>>2]|0;if(!e)break e;e=a[e+24>>2]|0;i=a[e>>2]|0}while(!(i&1|0))}else{i=f;e=a[f>>2]|0;do{a[i>>2]=e|8;e=a[(a[i+36>>2]|0)+8>>2]|0;if(!e)break e;i=a[e+20>>2]|0;e=a[i>>2]|0}while(!(e&1|0))}}}while(0);n=n+1|0}}}while(0);A:do{if((+s[A+56>>3]+-3.0-+s[A+40>>3])*.5<2.0){l=a[A+32>>2]|0;t=A+36|0;n=0;while(1){if((n|0)>=(l|0))break A;e=a[(a[t>>2]|0)+(n<<2)>>2]|0;e:do{if(!(r[e+36>>0]|0)){f=a[e+20>>2]|0;if((f|0)==(A|0)){i=a[e+24>>2]|0;e=i;i=a[i>>2]|0;do{a[e>>2]=i|16;e=a[(a[e+36>>2]|0)+4>>2]|0;if(!e)break e;e=a[e+24>>2]|0;i=a[e>>2]|0}while(!(i&1|0))}else{i=f;e=a[f>>2]|0;do{a[i>>2]=e|16;e=a[(a[i+36>>2]|0)+12>>2]|0;if(!e)break e;i=a[e+20>>2]|0;e=a[i>>2]|0}while(!(e&1|0))}}}while(0);n=n+1|0}}}while(0);return}function rn(A,e){A=A|0;e=e|0;var i=0,r=0,f=0.0,n=0.0,l=0.0,t=0,c=0,b=0,u=0,w=0,k=0,o=0.0,h=0;n=+s[A+56>>3]-+s[A+40>>3];l=+s[A+64>>3]-+s[A+48>>3];f=(l+n)*.5+500.0;if((l+-3.0)*.5<2.0){b=(a[A>>2]&8|0)==0;f=b?16384.0:f;o=b?16384.0:n}else o=n;if((n+-3.0)*.5<2.0){b=(a[A>>2]&16|0)==0;l=b?16384.0:l;f=b?16384.0:f}b=A+36|0;i=a[b>>2]|0;r=a[i+8>>2]|0;if((r|0)!=0?(t=a[i+4>>2]|0,(t|0)!=0):0){t=Ci(e,r,t,f)|0;r=A+4|0;i=a[r>>2]|0;a[r>>2]=i+1;a[A+8+(i<<2)>>2]=t;i=a[b>>2]|0}r=a[i+4>>2]|0;if((r|0)!=0?(c=a[i>>2]|0,(c|0)!=0):0){c=Ci(e,r,c,f)|0;t=A+4|0;i=a[t>>2]|0;a[t>>2]=i+1;a[A+8+(i<<2)>>2]=c;i=a[b>>2]|0}r=a[i+8>>2]|0;if((r|0)!=0?(u=a[i+12>>2]|0,(u|0)!=0):0){u=Ci(e,r,u,f)|0;c=A+4|0;i=a[c>>2]|0;a[c>>2]=i+1;a[A+8+(i<<2)>>2]=u;i=a[b>>2]|0}r=a[i+12>>2]|0;if((r|0)!=0?(w=a[i>>2]|0,(w|0)!=0):0){w=Ci(e,r,w,f)|0;u=A+4|0;i=a[u>>2]|0;a[u>>2]=i+1;a[A+8+(i<<2)>>2]=w;i=a[b>>2]|0}r=a[i+4>>2]|0;if((r|0)!=0?(k=a[i+12>>2]|0,(k|0)!=0):0){k=Ci(e,r,k,l)|0;w=A+4|0;i=a[w>>2]|0;a[w>>2]=i+1;a[A+8+(i<<2)>>2]=k;i=a[b>>2]|0}r=a[i+8>>2]|0;if(r|0?(h=a[i>>2]|0,h|0):0){e=Ci(e,r,h,o)|0;k=A+4|0;h=a[k>>2]|0;a[k>>2]=h+1;a[A+8+(h<<2)>>2]=e}return}function fn(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0;c=k;k=k+16|0;t=c+8|0;l=c;f=A+16|0;n=a[15712]|0;r=0;while(1){if((r|0)>=(a[A>>2]|0)){e=10;break}e=a[f>>2]|0;i=e+(r*40|0)+20|0;if((a[i>>2]|0)==0?(a[l>>2]=r,f3(n,138096,l)|0,(a[i>>2]|0)==0):0){e=5;break}e=e+(r*40|0)+24|0;if((a[e>>2]|0)==0?(a[t>>2]=r,f3(n,138148,t)|0,(a[e>>2]|0)==0):0){e=8;break}r=r+1|0}if((e|0)==5)gA(138118,138131,311,138138);else if((e|0)==8)gA(138170,138131,313,138138);else if((e|0)==10){k=c;return}}function an(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,a=0.0;f=+s[e+8>>3];a=+s[i+8>>3];if(!(f>a))if(!(f>3];f=+s[i>>3];if(a>f)A=1;else A=(a>31}else A=-1;else A=1;return A|0}function nn(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,a=0.0;f=+s[e>>3];a=+s[i>>3];if(!(f>a))if(!(f>3];f=+s[i+8>>3];if(a>f)A=1;else A=(a>31}else A=-1;else A=1;return A|0}function ln(A){A=A|0;var e=0,i=0;i=A+8|0;L2(a[(a[i>>2]|0)+36>>2]|0);e=A+12|0;L2(a[(a[e>>2]|0)+36>>2]|0);L2(a[i>>2]|0);L2(a[e>>2]|0);Zi(a[A+16>>2]|0);Hk(a[A+20>>2]|0)|0;Hk(a[A+24>>2]|0)|0;L2(A);return}function tn(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0;o=k;k=k+32|0;l=o;t=e<<2;f=t+4|0;t=t+5|0;w=$F(t*56|0)|0;t=qF(t<<2)|0;n=f*5|1;c=$F(n*72|0)|0;b=n<<5;s=qF(b)|0;b=qF(b)|0;a[l>>2]=a[r>>2];a[l+4>>2]=a[r+4>>2];a[l+8>>2]=a[r+8>>2];a[l+12>>2]=a[r+12>>2];a[l+16>>2]=a[r+16>>2];a[l+20>>2]=a[r+20>>2];a[l+24>>2]=a[r+24>>2];a[l+28>>2]=a[r+28>>2];cn(A,e,l,w,0);l8(173);sn(f,t);vn(f,w,t,n,c)|0;u=bn(f,w,c,0,s)|0;a[l>>2]=a[r>>2];a[l+4>>2]=a[r+4>>2];a[l+8>>2]=a[r+8>>2];a[l+12>>2]=a[r+12>>2];a[l+16>>2]=a[r+16>>2];a[l+20>>2]=a[r+20>>2];a[l+24>>2]=a[r+24>>2];a[l+28>>2]=a[r+28>>2];cn(A,e,l,w,1);sn(f,t);vn(f,w,t,n,c)|0;f=bn(f,w,c,1,b)|0;n=qF(U(u<<5,f)|0)|0;e=0;A=0;while(1){if((e|0)>=(f|0))break;l=b+(e<<5)|0;r=0;while(1){if((r|0)>=(u|0))break;h=A+((un(n+(A<<5)|0,l,s+(r<<5)|0)|0)!=0&1)|0;r=r+1|0;A=h}e=e+1|0}h=eV(n,A<<5)|0;L2(w);L2(t);L2(c);L2(s);L2(b);a[i>>2]=A;k=o;return h|0}function cn(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0;c=k;k=k+96|0;l=c+64|0;t=c;a[l>>2]=a[i>>2];a[l+4>>2]=a[i+4>>2];a[l+8>>2]=a[i+8>>2];a[l+12>>2]=a[i+12>>2];a[l+16>>2]=a[i+16>>2];a[l+20>>2]=a[i+20>>2];a[l+24>>2]=a[i+24>>2];a[l+28>>2]=a[i+28>>2];Bn(l,f,1,t);i=gn(r,1,t)|0;n=0;while(1){if((n|0)>=(e|0))break;s=A+(n*72|0)+40|0;a[l>>2]=a[s>>2];a[l+4>>2]=a[s+4>>2];a[l+8>>2]=a[s+8>>2];a[l+12>>2]=a[s+12>>2];a[l+16>>2]=a[s+16>>2];a[l+20>>2]=a[s+20>>2];a[l+24>>2]=a[s+24>>2];a[l+28>>2]=a[s+28>>2];Bn(l,f,0,t);i=gn(r,i,t)|0;n=n+1|0}k=c;return}function sn(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;i=0;while(1){if((i|0)>(A|0))break;a[e+(i<<2)>>2]=i;i=i+1|0}n=A+1|0;i=1;while(1){if((i|0)>(A|0))break;l=~~(+c8()*+(n-i|0)+ +(i|0));r=e+(i<<2)|0;f=e+(l<<2)|0;if((i|0)!=(l|0)){l=a[r>>2]|0;a[r>>2]=a[f>>2];a[f>>2]=l}i=i+1|0}return}function bn(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0;n=A*5|0;c=n+1|0;b=qF(c<<2)|0;a[47388]=qF(c<<4)|0;a[47389]=qF((A*56|0)+56|0)|0;c=qF(A<<2)|0;a[47390]=c;s=0;while(1){if((s|0)>(n|0))break;if(wn(i+(s*72|0)|0,e)|0)break;s=s+1|0}l=a[47388]|0;t=a[47389]|0;n=1;while(1){if((n|0)>(A|0))break;a[l+(n<<4)+8>>2]=a[e+(n*56|0)+48>>2];u=e+(n*56|0)+44|0;a[l+(n<<4)+4>>2]=a[u>>2];a[l+(n<<4)>>2]=n;w=t+(n*56|0)|0;k=e+(n*56|0)|0;a[w>>2]=a[k>>2];a[w+4>>2]=a[k+4>>2];a[w+8>>2]=a[k+8>>2];a[w+12>>2]=a[k+12>>2];a[t+(n*56|0)+16>>2]=a[u>>2];a[t+(n*56|0)+32>>2]=n;a[t+(n*56|0)+48>>2]=1;n=n+1|0}a[47391]=A;a[47392]=0;a[c>>2]=1;n=a[i+(s*72|0)+40>>2]|0;if((n|0)<=0){n=a[i+(s*72|0)+48>>2]|0;if((n|0)>0)n=kn(b,f,0,e,i,0,s,n,r,2)|0;else n=0}else n=kn(b,f,0,e,i,0,s,n,r,1)|0;L2(b);L2(a[47388]|0);L2(a[47389]|0);L2(a[47390]|0);return n|0}function un(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0,a=0.0,n=0.0;n=+s[(+s[e>>3]>+s[i>>3]?e:i)>>3];a=+s[(+s[e+16>>3]<+s[i+16>>3]?e:i)+16>>3];s[A+16>>3]=a;s[A>>3]=n;f=+s[(+s[e+8>>3]>+s[i+8>>3]?e:i)+8>>3];r=+s[(+s[e+24>>3]<+s[i+24>>3]?e:i)+24>>3];s[A+24>>3]=r;s[A+8>>3]=f;return!(n>=a)&!(f>=r)&1|0}function wn(A,e){A=A|0;e=e|0;var i=0.0,r=0.0,f=0;f=a[A+4>>2]|0;do{if((a[A+68>>2]|0)!=2?!((f|0)<1|(a[A>>2]|0)<1):0){if(!((a[A+40>>2]|0)<1?(a[A+44>>2]|0)<1:0)){if((a[A+48>>2]|0)>=1){A=0;break}if((a[A+52>>2]|0)>=1){A=0;break}}i=+s[e+(f*56|0)+24>>3];r=+s[e+(f*56|0)+8>>3];if(!(i>r+1.0e-07))if(i>3]>+s[e+(f*56|0)>>3]&1;else A=1}else A=0}while(0);return A|0}function kn(A,e,i,r,f,n,l,t,c,b){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;t=t|0;c=c|0;b=b|0;var u=0,w=0,k=0.0,o=0.0,h=0.0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,z=0,Y=0,D=0,M=0.0,F=0,V=0.0,J=0,p=0,N=0,R=0,X=0;L=(c|0)==0;Q=l;A:while(1){Z=f+(Q*72|0)|0;if((Q|0)<1)break;l=A+(Q<<2)|0;if(a[l>>2]|0)break;a[l>>2]=1;E=f+(Q*72|0)+8|0;g=f+(Q*72|0)+16|0;o=+s[g>>3];C=f+(Q*72|0)+24|0;I=f+(Q*72|0)+32|0;k=+s[I>>3];if((o>k?(m=a[Z>>2]|0,M=+s[r+(m*56|0)>>3],M==+s[r+(m*56|0)+16>>3]):0)?(m=a[f+(Q*72|0)+4>>2]|0,V=+s[r+(m*56|0)>>3],V==+s[r+(m*56|0)+16>>3]):0){l=e+(i<<5)|0;if(L){s[l>>3]=M;h=o;o=V}else{s[l>>3]=k;h=-M;k=-V}s[e+(i<<5)+8>>3]=k;s[e+(i<<5)+16>>3]=o;s[e+(i<<5)+24>>3]=h;i=i+1|0}l=f+(Q*72|0)+40|0;G=a[l>>2]|0;do{if((G|0)<1?(J=f+(Q*72|0)+44|0,(a[J>>2]|0)<1):0){l=f+(Q*72|0)+48|0;w=f+(Q*72|0)+52|0;if((a[l>>2]|0)>0?(p=a[w>>2]|0,(p|0)>0):0){u=a[f+(p*72|0)>>2]|0;b=a[Z>>2]|0;if((p|0)==(t|0)){b=on(n,b,u)|0;i=kn(A,e,i,r,f,n,a[w>>2]|0,Q,c,1)|0;n=b;b=1;break}else{b=on(n,u,b)|0;i=kn(A,e,i,r,f,n,a[l>>2]|0,Q,c,1)|0;n=b;l=w;b=1;break}}i=kn(A,e,i,r,f,n,G,Q,c,2)|0;i=kn(A,e,i,r,f,n,a[J>>2]|0,Q,c,2)|0;i=kn(A,e,i,r,f,n,a[l>>2]|0,Q,c,1)|0;l=w;b=1}else X=19}while(0);do{if((X|0)==19){X=0;m=f+(Q*72|0)+48|0;d=a[m>>2]|0;if((d|0)<1?(N=f+(Q*72|0)+52|0,(a[N>>2]|0)<1):0){w=f+(Q*72|0)+44|0;if((G|0)>0?(R=a[w>>2]|0,(R|0)>0):0){u=a[f+(Q*72|0)+4>>2]|0;b=a[f+(G*72|0)+4>>2]|0;if((R|0)==(t|0)){b=on(n,b,u)|0;i=kn(A,e,i,r,f,n,a[w>>2]|0,Q,c,2)|0;n=b;b=2;break}else{b=on(n,u,b)|0;i=kn(A,e,i,r,f,n,a[l>>2]|0,Q,c,2)|0;n=b;l=w;b=2;break}}i=kn(A,e,i,r,f,n,G,Q,c,2)|0;i=kn(A,e,i,r,f,n,a[w>>2]|0,Q,c,2)|0;i=kn(A,e,i,r,f,n,a[m>>2]|0,Q,c,1)|0;l=N;b=1;break}v=f+(Q*72|0)+44|0;B=a[v>>2]|0;u=(B|0)>0;if((G|0)>0){if(u){if((d|0)>0?(y=f+(Q*72|0)+52|0,z=a[y>>2]|0,(z|0)>0):0){w=a[f+(z*72|0)>>2]|0;u=a[f+(G*72|0)+4>>2]|0;if(!((b|0)==2&(z|0)==(t|0))?!((b|0)==1&(B|0)==(t|0)):0){b=on(n,w,u)|0;i=kn(A,e,i,r,f,n,a[l>>2]|0,Q,c,2)|0;i=kn(A,e,i,r,f,n,a[m>>2]|0,Q,c,1)|0;i=kn(A,e,i,r,f,b,a[v>>2]|0,Q,c,2)|0;n=b;l=y;b=1;break}b=on(n,u,w)|0;i=kn(A,e,i,r,f,n,a[v>>2]|0,Q,c,2)|0;i=kn(A,e,i,r,f,n,a[y>>2]|0,Q,c,1)|0;i=kn(A,e,i,r,f,b,a[l>>2]|0,Q,c,2)|0;n=b;l=m;b=1;break}u=a[Z>>2]|0;if(+W(+(+s[I>>3]-+s[r+(u*56|0)+24>>3]))<=1.0e-07?+W(+(+s[C>>3]-+s[r+(u*56|0)+16>>3]))<=1.0e-07:0){w=a[f+(G*72|0)+4>>2]|0;u=a[r+(u*56|0)+44>>2]|0;if((b|0)==1&(G|0)==(t|0)){b=on(n,u,w)|0;i=kn(A,e,i,r,f,n,a[l>>2]|0,Q,c,2)|0;i=kn(A,e,i,r,f,b,a[m>>2]|0,Q,c,1)|0;i=kn(A,e,i,r,f,b,a[v>>2]|0,Q,c,2)|0;n=b;l=f+(Q*72|0)+52|0;b=1;break}else{b=on(n,w,u)|0;i=kn(A,e,i,r,f,n,a[v>>2]|0,Q,c,2)|0;i=kn(A,e,i,r,f,n,a[m>>2]|0,Q,c,1)|0;i=kn(A,e,i,r,f,n,a[f+(Q*72|0)+52>>2]|0,Q,c,1)|0;n=b;b=2;break}}w=a[f+(Q*72|0)+4>>2]|0;u=a[f+(G*72|0)+4>>2]|0;if((b|0)==1&(B|0)==(t|0)){b=on(n,u,w)|0;i=kn(A,e,i,r,f,n,a[v>>2]|0,Q,c,2)|0;i=kn(A,e,i,r,f,b,a[f+(Q*72|0)+52>>2]|0,Q,c,1)|0;i=kn(A,e,i,r,f,b,a[m>>2]|0,Q,c,1)|0;n=b;b=2;break}else{b=on(n,w,u)|0;i=kn(A,e,i,r,f,n,a[l>>2]|0,Q,c,2)|0;i=kn(A,e,i,r,f,n,a[m>>2]|0,Q,c,1)|0;i=kn(A,e,i,r,f,n,a[f+(Q*72|0)+52>>2]|0,Q,c,1)|0;n=b;l=v;b=2;break}}}else if(!u)break A;if((d|0)>0?(Y=f+(Q*72|0)+52|0,D=a[Y>>2]|0,(D|0)>0):0){w=a[Z>>2]|0;if(+W(+(+s[g>>3]-+s[r+(w*56|0)+8>>3]))<=1.0e-07?+W(+(+s[E>>3]-+s[r+(w*56|0)>>3]))<=1.0e-07:0){u=a[f+(D*72|0)>>2]|0;if((b|0)==2&(d|0)==(t|0)){b=on(n,u,w)|0;i=kn(A,e,i,r,f,n,a[m>>2]|0,Q,c,1)|0;i=kn(A,e,i,r,f,b,a[l>>2]|0,Q,c,2)|0;i=kn(A,e,i,r,f,b,a[f+(Q*72|0)+44>>2]|0,Q,c,2)|0;n=b;l=Y;b=1;break}else{b=on(n,w,u)|0;i=kn(A,e,i,r,f,n,a[f+(Q*72|0)+44>>2]|0,Q,c,2)|0;i=kn(A,e,i,r,f,n,a[Y>>2]|0,Q,c,1)|0;i=kn(A,e,i,r,f,n,a[l>>2]|0,Q,c,2)|0;n=b;l=m;b=1;break}}u=a[f+(D*72|0)>>2]|0;w=a[r+((a[f+(Q*72|0)+4>>2]|0)*56|0)+44>>2]|0;if((b|0)==2&(D|0)==(t|0)){b=on(n,w,u)|0;i=kn(A,e,i,r,f,n,a[Y>>2]|0,Q,c,1)|0;i=kn(A,e,i,r,f,b,a[f+(Q*72|0)+44>>2]|0,Q,c,2)|0;i=kn(A,e,i,r,f,b,a[l>>2]|0,Q,c,2)|0;n=b;l=m;b=1;break}else{b=on(n,u,w)|0;i=kn(A,e,i,r,f,n,a[l>>2]|0,Q,c,2)|0;i=kn(A,e,i,r,f,n,a[m>>2]|0,Q,c,1)|0;i=kn(A,e,i,r,f,n,a[f+(Q*72|0)+44>>2]|0,Q,c,2)|0;n=b;l=Y;b=1;break}}k=+s[g>>3];w=a[Z>>2]|0;if(((+W(+(k-+s[r+(w*56|0)+8>>3]))<=1.0e-07?+W(+(+s[E>>3]-+s[r+(w*56|0)>>3]))<=1.0e-07:0)?(F=a[f+(Q*72|0)+4>>2]|0,+W(+(+s[I>>3]-+s[r+(F*56|0)+8>>3]))<=1.0e-07):0)?+W(+(+s[C>>3]-+s[r+(F*56|0)>>3]))<=1.0e-07:0)if((b|0)==1){b=on(n,w,F)|0;i=kn(A,e,i,r,f,n,a[l>>2]|0,Q,c,2)|0;i=kn(A,e,i,r,f,n,a[f+(Q*72|0)+44>>2]|0,Q,c,2)|0;i=kn(A,e,i,r,f,b,a[f+(Q*72|0)+52>>2]|0,Q,c,1)|0;n=b;l=m;b=1;break}else{b=on(n,F,w)|0;i=kn(A,e,i,r,f,n,a[f+(Q*72|0)+52>>2]|0,Q,c,1)|0;i=kn(A,e,i,r,f,n,a[m>>2]|0,Q,c,1)|0;i=kn(A,e,i,r,f,b,a[l>>2]|0,Q,c,2)|0;n=b;l=f+(Q*72|0)+44|0;b=2;break}t=a[f+(Q*72|0)+4>>2]|0;if(((+W(+(k-+s[r+(t*56|0)+24>>3]))<=1.0e-07?+W(+(+s[E>>3]-+s[r+(t*56|0)+16>>3]))<=1.0e-07:0)?+W(+(+s[I>>3]-+s[r+(w*56|0)+24>>3]))<=1.0e-07:0)?+W(+(+s[C>>3]-+s[r+(w*56|0)+16>>3]))<=1.0e-07:0){u=a[r+(t*56|0)+44>>2]|0;t=a[r+(w*56|0)+44>>2]|0;if((b|0)==1){b=on(n,t,u)|0;i=kn(A,e,i,r,f,n,a[l>>2]|0,Q,c,2)|0;i=kn(A,e,i,r,f,n,a[f+(Q*72|0)+44>>2]|0,Q,c,2)|0;i=kn(A,e,i,r,f,b,a[f+(Q*72|0)+52>>2]|0,Q,c,1)|0;n=b;l=m;b=1;break}else{b=on(n,u,t)|0;i=kn(A,e,i,r,f,n,a[f+(Q*72|0)+52>>2]|0,Q,c,1)|0;i=kn(A,e,i,r,f,n,a[m>>2]|0,Q,c,1)|0;i=kn(A,e,i,r,f,b,a[l>>2]|0,Q,c,2)|0;n=b;l=f+(Q*72|0)+44|0;b=2;break}}i=kn(A,e,i,r,f,n,G,Q,c,2)|0;i=kn(A,e,i,r,f,n,a[m>>2]|0,Q,c,1)|0;i=kn(A,e,i,r,f,n,a[f+(Q*72|0)+44>>2]|0,Q,c,2)|0;l=f+(Q*72|0)+52|0;b=1}}while(0);t=Q;Q=a[l>>2]|0}return i|0}function on(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0;f=k;k=k+16|0;d=f+4|0;t=f;r=(a[47392]|0)+1|0;a[47392]=r;b=a[47389]|0;hn(e,i,d,t);d=a[d>>2]|0;l=a[b+(e*56|0)+32+(d<<2)>>2]|0;t=a[b+(i*56|0)+32+(a[t>>2]<<2)>>2]|0;u=a[47391]|0;n=u+1|0;u=u+2|0;a[47391]=u;h=a[47388]|0;a[h+(n<<4)>>2]=e;a[h+(u<<4)>>2]=i;w=h+(l<<4)+4|0;o=h+(n<<4)+4|0;a[o>>2]=a[w>>2];a[h+(a[w>>2]<<4)+8>>2]=n;a[h+(n<<4)+8>>2]=u;a[h+(u<<4)+4>>2]=n;c=h+(t<<4)+8|0;a[h+(u<<4)+8>>2]=a[c>>2];a[h+(a[c>>2]<<4)+4>>2]=u;a[w>>2]=t;a[c>>2]=l;c=b+(e*56|0)+48|0;w=a[c>>2]|0;t=b+(i*56|0)+48|0;s=a[t>>2]|0;a[b+(e*56|0)+16+(d<<2)>>2]=i;a[b+(e*56|0)+32+(w<<2)>>2]=n;a[b+(e*56|0)+16+(w<<2)>>2]=a[h+(a[o>>2]<<4)>>2];a[b+(i*56|0)+32+(s<<2)>>2]=u;a[b+(i*56|0)+16+(s<<2)>>2]=e;a[c>>2]=(a[c>>2]|0)+1;a[t>>2]=(a[t>>2]|0)+1;i=a[47390]|0;a[i+(A<<2)>>2]=l;a[i+(r<<2)>>2]=n;k=f;return r|0}function hn(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0.0,l=0,t=0,c=0.0,s=0.0,b=0,u=0,w=0;b=a[47389]|0;u=b+(A*56|0)|0;w=b+(e*56|0)|0;f=0;n=-4.0;t=0;while(1){if((t|0)==4)break;l=a[b+(A*56|0)+16+(t<<2)>>2]|0;if((l|0)>=1?(c=+dn(u,b+(l*56|0)|0,w),c>n):0){f=t;n=c}t=t+1|0}a[i>>2]=f;f=0;t=0;n=-4.0;while(1){if((t|0)==4)break;l=a[b+(e*56|0)+16+(t<<2)>>2]|0;if((l|0)>=1?(s=+dn(w,b+(l*56|0)|0,u),s>n):0){f=t;n=s}t=t+1|0}a[r>>2]=f;return}function dn(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0,a=0.0,n=0.0,l=0.0;n=+s[A>>3];l=+s[e>>3]-n;r=+s[A+8>>3];a=+s[e+8>>3]-r;n=+s[i>>3]-n;r=+s[i+8>>3]-r;f=r*a+n*l;if(!(r*l-n*a>=0.0))r=-f/(+z(+(r*r+n*n))*+z(+(a*a+l*l)))+-2.0;else r=f/(+z(+(r*r+n*n))*+z(+(a*a+l*l)));return+r}function Bn(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0.0,b=0.0;a[r>>2]=a[A>>2];a[r+4>>2]=a[A+4>>2];a[r+8>>2]=a[A+8>>2];a[r+12>>2]=a[A+12>>2];l=r+32|0;t=A+16|0;a[l>>2]=a[t>>2];a[l+4>>2]=a[t+4>>2];a[l+8>>2]=a[t+8>>2];a[l+12>>2]=a[t+12>>2];if(!i){f=A+8|0;n=t;l=A+24|0;i=A}else{f=A+24|0;n=A;l=A+8|0;i=t}c=+s[n>>3];b=+s[l>>3];s[r+16>>3]=+s[i>>3];s[r+24>>3]=b;s[r+48>>3]=c;s[r+56>>3]=+s[f>>3];A:do{if(e|0){i=0;while(1){if((i|0)==4)break A;t=r+(i<<4)+8|0;b=+s[t>>3];e=r+(i<<4)|0;s[t>>3]=+s[e>>3];s[e>>3]=-b;i=i+1|0}}}while(0);return}function gn(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;l=e+3|0;t=e+1|0;c=e+2|0;s=A+(e*56|0)+44|0;b=A+(l*56|0)+44|0;r=0;f=e;while(1){if((f|0)>(l|0))break;do{if((f|0)!=(e|0))if((f|0)==(l|0)){a[b>>2]=e;n=c;break}else{a[A+(f*56|0)+44>>2]=f+1;n=f+-1|0;break}else{a[s>>2]=t;n=l}}while(0);a[A+(f*56|0)+48>>2]=n;a[A+(f*56|0)+32>>2]=0;w=A+(f*56|0)|0;u=i+(r<<4)|0;a[w>>2]=a[u>>2];a[w+4>>2]=a[u+4>>2];a[w+8>>2]=a[u+8>>2];a[w+12>>2]=a[u+12>>2];z6(A+(n*56|0)+16|0,u|0,16)|0;r=r+1|0;f=f+1|0}return e+4|0}function vn(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0;a[47393]=r<<1;a[47394]=r;s=qF(r*80|0)|0;a[47395]=1;a[47396]=1;Y6(f|0,0,r*72|0)|0;n=En(a[i+4>>2]|0,e,f,s)|0;r=1;while(1){if((r|0)>(A|0))break;a[e+(r*56|0)+40>>2]=n;a[e+(r*56|0)+36>>2]=n;r=r+1|0}c=Cn(A)|0;n=2;t=1;while(1){if((t|0)>(c|0))break;r=In(A,t+-1|0)|0;l=In(A,t)|0;while(1){if((r|0)>=(l|0)){r=1;break}Zn(a[i+(n<<2)>>2]|0,e,f,s);r=r+1|0;n=n+1|0}while(1){if((r|0)>(A|0))break;Gn(r,e,f,s);r=r+1|0}t=t+1|0}r=In(A,c)|0;while(1){if((r|0)>=(A|0))break;Zn(a[i+(n<<2)>>2]|0,e,f,s);n=n+1|0;r=r+1|0}L2(s);return a[47395]|0}function En(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0;f=Wn()|0;a[r+(f*40|0)>>2]=2;B=r+(f*40|0)+8|0;c=e+(A*56|0)|0;b=e+(A*56|0)+16|0;Mn(B,c,b);w=Wn()|0;a[r+(f*40|0)+36>>2]=w;a[r+(w*40|0)>>2]=3;a[r+(w*40|0)+28>>2]=f;t=Wn()|0;a[r+(f*40|0)+32>>2]=t;a[r+(t*40|0)>>2]=2;d=r+(t*40|0)+8|0;Fn(d,c,b);a[r+(t*40|0)+28>>2]=f;b=Wn()|0;a[r+(t*40|0)+32>>2]=b;a[r+(b*40|0)>>2]=3;a[r+(b*40|0)+28>>2]=t;c=Wn()|0;a[r+(t*40|0)+36>>2]=c;a[r+(c*40|0)>>2]=1;a[r+(c*40|0)+4>>2]=A;a[r+(c*40|0)+28>>2]=t;t=Wn()|0;a[r+(c*40|0)+32>>2]=t;a[r+(t*40|0)>>2]=3;a[r+(t*40|0)+28>>2]=c;n=Wn()|0;a[r+(c*40|0)+36>>2]=n;a[r+(n*40|0)>>2]=3;a[r+(n*40|0)+28>>2]=c;c=yn(i)|0;l=yn(i)|0;u=yn(i)|0;k=yn(i)|0;o=i+(c*72|0)+8|0;h=i+(l*72|0)+8|0;g=i+(k*72|0)+24|0;a[g>>2]=a[B>>2];a[g+4>>2]=a[B+4>>2];a[g+8>>2]=a[B+8>>2];a[g+12>>2]=a[B+12>>2];z6(h|0,B|0,16)|0;a[o>>2]=a[h>>2];a[o+4>>2]=a[h+4>>2];a[o+8>>2]=a[h+8>>2];a[o+12>>2]=a[h+12>>2];o=i+(c*72|0)+24|0;h=i+(l*72|0)+24|0;B=i+(u*72|0)+8|0;a[B>>2]=a[d>>2];a[B+4>>2]=a[d+4>>2];a[B+8>>2]=a[d+8>>2];a[B+12>>2]=a[d+12>>2];z6(h|0,d|0,16)|0;a[o>>2]=a[h>>2];a[o+4>>2]=a[h+4>>2];a[o+8>>2]=a[h+8>>2];a[o+12>>2]=a[h+12>>2];s[i+(k*72|0)+16>>3]=1073741824.0;s[i+(k*72|0)+8>>3]=1073741824.0;s[i+(u*72|0)+32>>3]=-1073741824.0;s[i+(u*72|0)+24>>3]=-1073741824.0;a[i+(l*72|0)>>2]=A;a[i+(c*72|0)+4>>2]=A;a[i+(l*72|0)+40>>2]=k;a[i+(c*72|0)+40>>2]=k;a[i+(l*72|0)+48>>2]=u;a[i+(c*72|0)+48>>2]=u;a[i+(u*72|0)+40>>2]=c;a[i+(k*72|0)+48>>2]=c;a[i+(u*72|0)+44>>2]=l;a[i+(k*72|0)+52>>2]=l;a[i+(c*72|0)+56>>2]=t;a[i+(l*72|0)+56>>2]=n;a[i+(u*72|0)+56>>2]=b;a[i+(k*72|0)+56>>2]=w;a[i+(l*72|0)+68>>2]=1;a[i+(c*72|0)+68>>2]=1;a[i+(k*72|0)+68>>2]=1;a[i+(u*72|0)+68>>2]=1;a[r+(w*40|0)+24>>2]=k;a[r+(b*40|0)+24>>2]=u;a[r+(t*40|0)+24>>2]=c;a[r+(n*40|0)+24>>2]=l;a[e+(A*56|0)+32>>2]=1;return f|0}function Cn(A){A=A|0;var e=0.0;e=+(A|0);A=0;while(1){if(!(e>=1.0))break;e=+a1(e);A=A+1|0}return A+-1|0}function In(A,e){A=A|0;e=e|0;var i=0.0,r=0.0;r=+(A|0);i=r;A=0;while(1){if((A|0)>=(e|0))break;i=+a1(i);A=A+1|0}return~~+H(+(r/i))|0}function Zn(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0.0,t=0.0,c=0,b=0,u=0,w=0,o=0,h=0.0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0,U=0,x=0,T=0,j=0,P=0,S=0,O=0;S=k;k=k+96|0;x=S+32|0;f=S+16|0;T=S;B=x;c=e+(A*56|0)|0;d=B+56|0;do{a[B>>2]=a[c>>2];B=B+4|0;c=c+4|0}while((B|0)<(d|0));j=x+16|0;P=x+24|0;l=+s[P>>3];D=x+8|0;t=+s[D>>3];do{if(!(l>t+1.0e-07)){if(!(l>3]>+s[x>>3]:0){Y=4;break}Y=(Ln(A,e,1)|0)==0;f=a[x+36>>2]|0;if(Y){u=0;Y=7}else{f=mn(x,j,f,e,r)|0;Y=20}}else Y=4}while(0);if((Y|0)==4){a[f>>2]=a[x>>2];a[f+4>>2]=a[x+4>>2];a[f+8>>2]=a[x+8>>2];a[f+12>>2]=a[x+12>>2];a[x>>2]=a[j>>2];a[x+4>>2]=a[j+4>>2];a[x+8>>2]=a[j+8>>2];a[x+12>>2]=a[j+12>>2];a[j>>2]=a[f>>2];a[j+4>>2]=a[f+4>>2];a[j+8>>2]=a[f+8>>2];a[j+12>>2]=a[f+12>>2];y=x+36|0;z=a[y>>2]|0;Y=x+40|0;f=a[Y>>2]|0;a[y>>2]=f;a[Y>>2]=z;if(!(Ln(A,e,2)|0)){u=1;Y=7}else{f=mn(x,j,f,e,r)|0;Y=19}}if((Y|0)==7){b=mn(x,j,f,e,r)|0;f=yn(i)|0;a[i+(f*72|0)+68>>2]=1;B=i+(f*72|0)|0;c=i+(b*72|0)|0;d=B+72|0;do{a[B>>2]=a[c>>2];B=B+4|0;c=c+4|0}while((B|0)<(d|0));h=+s[D>>3];s[i+(f*72|0)+16>>3]=h;s[i+(b*72|0)+32>>3]=h;h=+s[x>>3];s[i+(f*72|0)+8>>3]=h;s[i+(b*72|0)+24>>3]=h;a[i+(b*72|0)+48>>2]=f;a[i+(b*72|0)+52>>2]=0;a[i+(f*72|0)+40>>2]=b;a[i+(f*72|0)+44>>2]=0;n=a[i+(f*72|0)+48>>2]|0;if((n|0)>0){c=i+(n*72|0)+40|0;if((a[c>>2]|0)==(b|0))a[c>>2]=f;n=i+(n*72|0)+44|0;if((a[n>>2]|0)==(b|0))a[n>>2]=f}n=a[i+(f*72|0)+52>>2]|0;if((n|0)>0){c=i+(n*72|0)+40|0;if((a[c>>2]|0)==(b|0))a[c>>2]=f;n=i+(n*72|0)+44|0;if((a[n>>2]|0)==(b|0))a[n>>2]=f}y=Wn()|0;Y=Wn()|0;z=i+(b*72|0)+56|0;L=a[z>>2]|0;a[r+(L*40|0)>>2]=2;Q=r+(L*40|0)+8|0;a[Q>>2]=a[x>>2];a[Q+4>>2]=a[x+4>>2];a[Q+8>>2]=a[x+8>>2];a[Q+12>>2]=a[x+12>>2];a[r+(L*40|0)+4>>2]=A;a[r+(L*40|0)+32>>2]=Y;a[r+(L*40|0)+36>>2]=y;a[r+(y*40|0)>>2]=3;a[r+(y*40|0)+24>>2]=b;a[r+(y*40|0)+28>>2]=L;a[r+(Y*40|0)>>2]=3;a[r+(Y*40|0)+24>>2]=f;a[r+(Y*40|0)+28>>2]=L;a[z>>2]=y;a[i+(f*72|0)+56>>2]=Y;if(u)Y=19;else Y=20}if((Y|0)==19)if(!(Ln(A,e,1)|0)){n=1;Y=21}else{n=1;Y=32}else if((Y|0)==20)if(!(Ln(A,e,2)|0)){n=0;Y=21}else{n=0;Y=32}if((Y|0)==21){w=mn(j,x,a[x+40>>2]|0,e,r)|0;u=yn(i)|0;a[i+(u*72|0)+68>>2]=1;B=i+(u*72|0)|0;c=i+(w*72|0)|0;d=B+72|0;do{a[B>>2]=a[c>>2];B=B+4|0;c=c+4|0}while((B|0)<(d|0));h=+s[P>>3];s[i+(u*72|0)+16>>3]=h;s[i+(w*72|0)+32>>3]=h;h=+s[j>>3];s[i+(u*72|0)+8>>3]=h;s[i+(w*72|0)+24>>3]=h;a[i+(w*72|0)+48>>2]=u;a[i+(w*72|0)+52>>2]=0;a[i+(u*72|0)+40>>2]=w;a[i+(u*72|0)+44>>2]=0;c=a[i+(u*72|0)+48>>2]|0;if((c|0)>0){b=i+(c*72|0)+40|0;if((a[b>>2]|0)==(w|0))a[b>>2]=u;c=i+(c*72|0)+44|0;if((a[c>>2]|0)==(w|0))a[c>>2]=u}c=a[i+(u*72|0)+52>>2]|0;if((c|0)>0){b=i+(c*72|0)+40|0;if((a[b>>2]|0)==(w|0))a[b>>2]=u;c=i+(c*72|0)+44|0;if((a[c>>2]|0)==(w|0))a[c>>2]=u}L=Wn()|0;z=Wn()|0;y=i+(w*72|0)+56|0;Q=a[y>>2]|0;a[r+(Q*40|0)>>2]=2;m=r+(Q*40|0)+8|0;a[m>>2]=a[j>>2];a[m+4>>2]=a[j+4>>2];a[m+8>>2]=a[j+8>>2];a[m+12>>2]=a[j+12>>2];a[r+(Q*40|0)+4>>2]=A;a[r+(Q*40|0)+32>>2]=z;a[r+(Q*40|0)+36>>2]=L;a[r+(L*40|0)>>2]=3;a[r+(L*40|0)+24>>2]=w;a[r+(L*40|0)+28>>2]=Q;a[r+(z*40|0)>>2]=3;a[r+(z*40|0)+24>>2]=u;a[r+(z*40|0)+28>>2]=Q;a[y>>2]=L;a[i+(u*72|0)+56>>2]=z;z=f;f=0}else if((Y|0)==32){z=f;w=mn(j,x,a[x+40>>2]|0,e,r)|0;f=1}A:do{if((z|0)>0){L=i+(w*72|0)+24|0;y=i+(w*72|0)+32|0;Q=(f|0)!=0;Z=n?e+(A*56|0)+48|0:e+(A*56|0)+44|0;G=T+8|0;n=0;f=0;I=z;e:while(1){c=i+(I*72|0)|0;E=i+(I*72|0)+24|0;if(!(zn(E,L)|0))break A;b=i+(I*72|0)+56|0;v=a[b>>2]|0;u=Wn()|0;o=Wn()|0;a[r+(v*40|0)>>2]=1;a[r+(v*40|0)+4>>2]=A;a[r+(v*40|0)+32>>2]=u;a[r+(v*40|0)+36>>2]=o;a[r+(u*40|0)>>2]=3;a[r+(u*40|0)+24>>2]=I;a[r+(u*40|0)+28>>2]=v;a[r+(o*40|0)>>2]=3;C=yn(i)|0;a[r+(o*40|0)+24>>2]=C;m=i+(C*72|0)|0;a[i+(C*72|0)+68>>2]=1;a[r+(o*40|0)+28>>2]=v;n=(I|0)==(z|0)?C:n;v=i+(I*72|0)+32|0;if(+W(+(+s[v>>3]-+s[y>>3]))<=1.0e-07?+W(+(+s[E>>3]-+s[L>>3]))<=1.0e-07:0)f=C;B=m;d=B+72|0;do{a[B>>2]=a[c>>2];B=B+4|0;c=c+4|0}while((B|0)<(d|0));a[b>>2]=u;a[i+(C*72|0)+56>>2]=o;g=i+(I*72|0)+48|0;b=i+(I*72|0)+52|0;c=(a[b>>2]|0)<1;do{if((a[g>>2]|0)<1){if(c)break e;B=i+(I*72|0)+40|0;c=a[B>>2]|0;do{if((c|0)>0?(p=i+(I*72|0)+44|0,N=a[p>>2]|0,(N|0)>0):0){d=i+(I*72|0)+60|0;c=a[d>>2]|0;if((c|0)<=0){a[i+(C*72|0)+40>>2]=N;a[i+(C*72|0)+44>>2]=-1;a[p>>2]=-1;a[i+(N*72|0)+48>>2]=C;break}if((a[i+(I*72|0)+64>>2]|0)==1){a[i+(C*72|0)+40>>2]=N;a[p>>2]=-1;a[i+(C*72|0)+44>>2]=c;a[i+((a[B>>2]|0)*72|0)+48>>2]=I;o=C;u=N}else{a[i+(C*72|0)+44>>2]=-1;g=i+(C*72|0)+40|0;a[g>>2]=a[p>>2];u=a[B>>2]|0;a[p>>2]=u;a[B>>2]=c;a[i+(c*72|0)+48>>2]=I;o=I;c=a[g>>2]|0}a[i+(u*72|0)+48>>2]=o;a[i+(c*72|0)+48>>2]=C;a[i+(C*72|0)+60>>2]=0;a[d>>2]=0}else Y=77}while(0);do{if((Y|0)==77){Y=0;u=i+(c*72|0)+48|0;o=a[u>>2]|0;c=i+(c*72|0)+52|0;if((o|0)>0?(a[c>>2]|0)>0:0){c=a[i+(o*72|0)+4>>2]|0;if((c|0)>0?(Qn(c,e,j)|0)==0:0){a[i+(C*72|0)+44>>2]=-1;a[i+(I*72|0)+44>>2]=-1;a[B>>2]=-1;a[i+((a[i+(C*72|0)+40>>2]|0)*72|0)+52>>2]=C;break}a[i+(I*72|0)+44>>2]=-1;a[i+(C*72|0)+44>>2]=-1;a[i+(C*72|0)+40>>2]=-1;a[i+((a[B>>2]|0)*72|0)+48>>2]=I;break}a[u>>2]=I;a[c>>2]=C}}while(0);if(+W(+(+s[v>>3]-+s[y>>3]))<=1.0e-07?Q&+W(+(+s[E>>3]-+s[L>>3]))<=1.0e-07:0){c=a[Z>>2]|0;if((c|0)>0?(Qn(c,e,x)|0)!=0:0){a[i+((a[b>>2]|0)*72|0)+40>>2]=I;u=i+(C*72|0)+52|0;c=C}else{a[i+((a[i+(C*72|0)+52>>2]|0)*72|0)+44>>2]=C;u=b;c=I}a[u>>2]=-1;a[i+(c*72|0)+48>>2]=-1;c=a[b>>2]|0;break}c=a[b>>2]|0;b=i+(c*72|0)+40|0;u=a[b>>2]|0;o=i+(c*72|0)+44|0;if((u|0)>0?(R=a[o>>2]|0,X=(u|0)==(I|0),(R|0)>0):0){a[i+(c*72|0)+60>>2]=X?R:u;a[i+(c*72|0)+64>>2]=X?1:2}a[b>>2]=I;a[o>>2]=C}else{if(!c){l=+s[v>>3];t=+s[D>>3];h=l-t;if(!(+W(+h)<=1.0e-07)){s[G>>3]=l;l=+s[x>>3];s[T>>3]=(+s[j>>3]-l)*(h/(+s[P>>3]-t))+l;B=(Yn(T,E)|0)!=0}else B=+s[E>>3]>+s[x>>3];d=i+(I*72|0)+40|0;c=a[d>>2]|0;do{if((c|0)>0?(H=i+(I*72|0)+44|0,U=a[H>>2]|0,(U|0)>0):0){o=i+(I*72|0)+60|0;c=a[o>>2]|0;if((c|0)<=0){a[i+(C*72|0)+40>>2]=U;a[i+(C*72|0)+44>>2]=-1;a[H>>2]=-1;a[i+(U*72|0)+48>>2]=C;break}if((a[i+(I*72|0)+64>>2]|0)==1){a[i+(C*72|0)+40>>2]=U;a[H>>2]=-1;a[i+(C*72|0)+44>>2]=c;a[i+((a[d>>2]|0)*72|0)+48>>2]=I;u=C;b=U}else{a[i+(C*72|0)+44>>2]=-1;O=i+(C*72|0)+40|0;a[O>>2]=a[H>>2];b=a[d>>2]|0;a[H>>2]=b;a[d>>2]=c;a[i+(c*72|0)+48>>2]=I;u=I;c=a[O>>2]|0}a[i+(b*72|0)+48>>2]=u;a[i+(c*72|0)+48>>2]=C;a[i+(C*72|0)+60>>2]=0;a[o>>2]=0}else Y=106}while(0);do{if((Y|0)==106){Y=0;b=i+(c*72|0)+48|0;u=a[b>>2]|0;c=i+(c*72|0)+52|0;if((u|0)>0?(a[c>>2]|0)>0:0){c=a[i+(u*72|0)+4>>2]|0;if((c|0)>0?(Qn(c,e,j)|0)==0:0){a[i+(C*72|0)+44>>2]=-1;a[i+(I*72|0)+44>>2]=-1;a[d>>2]=-1;a[i+((a[i+(C*72|0)+40>>2]|0)*72|0)+52>>2]=C;break}a[i+(I*72|0)+44>>2]=-1;a[i+(C*72|0)+44>>2]=-1;a[i+(C*72|0)+40>>2]=-1;a[i+((a[d>>2]|0)*72|0)+48>>2]=I;break}a[b>>2]=I;a[c>>2]=C}}while(0);if(+W(+(+s[v>>3]-+s[y>>3]))<=1.0e-07?Q&+W(+(+s[E>>3]-+s[L>>3]))<=1.0e-07:0){c=a[g>>2]|0;a[i+(c*72|0)+40>>2]=I;a[i+(c*72|0)+44>>2]=-1;c=i+(I*72|0)+52|0;O=a[c>>2]|0;a[i+(O*72|0)+40>>2]=C;a[i+(O*72|0)+44>>2]=-1;a[i+(C*72|0)+48>>2]=O;a[i+(C*72|0)+52>>2]=-1;a[c>>2]=-1;c=-1}else Y=116;do{if((Y|0)==116){Y=0;c=a[g>>2]|0;a[i+(c*72|0)+40>>2]=I;b=i+(c*72|0)+44|0;if(B){a[b>>2]=C;O=i+(I*72|0)+52|0;E=a[O>>2]|0;a[i+(E*72|0)+40>>2]=C;a[i+(E*72|0)+44>>2]=-1;a[O>>2]=-1;break}else{a[b>>2]=-1;c=i+(I*72|0)+52|0;O=a[c>>2]|0;a[i+(O*72|0)+40>>2]=I;a[i+(O*72|0)+44>>2]=C;a[i+(C*72|0)+48>>2]=O;a[i+(C*72|0)+52>>2]=-1;c=a[c>>2]|0;break}}}while(0);break}B=i+(I*72|0)+40|0;c=a[B>>2]|0;do{if((c|0)>0?(M=i+(I*72|0)+44|0,F=a[M>>2]|0,(F|0)>0):0){d=i+(I*72|0)+60|0;c=a[d>>2]|0;if((c|0)<=0){a[i+(C*72|0)+40>>2]=F;a[i+(C*72|0)+44>>2]=-1;a[M>>2]=-1;a[i+(F*72|0)+48>>2]=C;break}if((a[i+(I*72|0)+64>>2]|0)==1){a[i+(C*72|0)+40>>2]=F;a[M>>2]=-1;a[i+(C*72|0)+44>>2]=c;a[i+((a[B>>2]|0)*72|0)+48>>2]=I;o=C;u=F}else{a[i+(C*72|0)+44>>2]=-1;O=i+(C*72|0)+40|0;a[O>>2]=a[M>>2];u=a[B>>2]|0;a[M>>2]=u;a[B>>2]=c;a[i+(c*72|0)+48>>2]=I;o=I;c=a[O>>2]|0}a[i+(u*72|0)+48>>2]=o;a[i+(c*72|0)+48>>2]=C;a[i+(C*72|0)+60>>2]=0;a[d>>2]=0}else Y=51}while(0);do{if((Y|0)==51){Y=0;u=i+(c*72|0)+48|0;o=a[u>>2]|0;c=i+(c*72|0)+52|0;if((o|0)>0?(a[c>>2]|0)>0:0){c=a[i+(o*72|0)+4>>2]|0;if((c|0)>0?(Qn(c,e,j)|0)==0:0){a[i+(C*72|0)+44>>2]=-1;a[i+(I*72|0)+44>>2]=-1;a[B>>2]=-1;a[i+((a[i+(C*72|0)+40>>2]|0)*72|0)+52>>2]=C;break}a[i+(I*72|0)+44>>2]=-1;a[i+(C*72|0)+44>>2]=-1;a[i+(C*72|0)+40>>2]=-1;a[i+((a[B>>2]|0)*72|0)+48>>2]=I;break}a[u>>2]=I;a[c>>2]=C}}while(0);if(+W(+(+s[v>>3]-+s[y>>3]))<=1.0e-07?Q&+W(+(+s[E>>3]-+s[L>>3]))<=1.0e-07:0){c=a[Z>>2]|0;if((c|0)>0?(Qn(c,e,x)|0)!=0:0){a[i+((a[g>>2]|0)*72|0)+40>>2]=I;b=i+(C*72|0)+52|0;c=C}else{a[i+((a[i+(C*72|0)+48>>2]|0)*72|0)+44>>2]=C;c=I}a[b>>2]=-1;a[i+(c*72|0)+48>>2]=-1;c=a[g>>2]|0;break}c=a[g>>2]|0;b=i+(c*72|0)+40|0;u=a[b>>2]|0;o=i+(c*72|0)+44|0;if((u|0)>0?(V=a[o>>2]|0,J=(u|0)==(I|0),(V|0)>0):0){a[i+(c*72|0)+60>>2]=J?V:u;a[i+(c*72|0)+64>>2]=J?1:2}a[b>>2]=I;a[o>>2]=C}}while(0);a[m>>2]=A;a[i+(I*72|0)+4>>2]=A;if((c|0)>0)I=c;else break A}L3(138424,19,1,a[15712]|0)|0}else{n=0;f=0}}while(0);Dn(A,z,w,1,i,r);Dn(A,n,f,2,i,r);a[e+(A*56|0)+32>>2]=1;k=S;return}function Gn(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0;if(!(a[e+(A*56|0)+32>>2]|0)){f=e+(A*56|0)|0;n=e+(A*56|0)+16|0;l=e+(A*56|0)+36|0;a[l>>2]=a[i+((mn(f,n,a[l>>2]|0,e,r)|0)*72|0)+56>>2];A=e+(A*56|0)+40|0;a[A>>2]=a[i+((mn(n,f,a[A>>2]|0,e,r)|0)*72|0)+56>>2]}return}function mn(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0.0,l=0,t=0.0,c=0.0,b=0.0,u=0.0,w=0.0,k=0,o=0.0,h=0,d=0;k=A+8|0;h=e+8|0;A:while(1){e:do{switch(a[f+(i*40|0)>>2]|0){case 3:{d=3;break A}case 2:{n=+s[k>>3];l=f+(i*40|0)+8|0;t=+s[f+(i*40|0)+16>>3];c=t+1.0e-07;do{if(!(n>c)){b=t+-1.0e-07;if(!(n>3]>+s[l>>3]:0)break;if(+W(+(n-t))<=1.0e-07?(u=+s[l>>3],+W(+(+s[A>>3]-u))<=1.0e-07):0){n=+s[h>>3];do{if(!(n>c)){if(!(n>3]>u:0)break;i=f+(i*40|0)+32|0;break e}}while(0);i=f+(i*40|0)+36|0;break e}i=f+(i*40|0)+32|0;break e}}while(0);i=f+(i*40|0)+36|0;break}case 1:{n=+s[k>>3];l=a[f+(i*40|0)+4>>2]|0;if(+W(+(n-+s[r+(l*56|0)+8>>3]))<=1.0e-07?(w=+s[A>>3],+W(+(w-+s[r+(l*56|0)>>3]))<=1.0e-07):0)t=w;else d=19;do{if((d|0)==19){d=0;if(+W(+(n-+s[r+(l*56|0)+24>>3]))<=1.0e-07?(o=+s[A>>3],+W(+(o-+s[r+(l*56|0)+16>>3]))<=1.0e-07):0){t=o;break}if(!(Qn(l,r,A)|0)){i=f+(i*40|0)+36|0;break e}else{i=f+(i*40|0)+32|0;break e}}}while(0);if(!(+W(+(n-+s[h>>3]))<=1.0e-07))if(!(Qn(l,r,e)|0)){i=f+(i*40|0)+36|0;break e}else{i=f+(i*40|0)+32|0;break e}else if(+s[e>>3]>2]|0}if((d|0)==3)return a[f+(i*40|0)+24>>2]|0;else if((d|0)==31){L3(138358,35,1,a[15712]|0)|0;gA(138394,138396,349,138408)}return 0}function Qn(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0,a=0,n=0.0,l=0,t=0,c=0.0;a=e+(A*56|0)+16|0;n=+s[e+(A*56|0)+24>>3];l=e+(A*56|0)|0;f=+s[e+(A*56|0)+8>>3];do{if(!(n>f+1.0e-07)){if(!(n>3]>+s[l>>3]:0){t=4;break}r=+s[i+8>>3];if(+W(+(n-r))<=1.0e-07){r=+s[i>>3]<+s[a>>3]?1.0:-1.0;break}if(!(+W(+(f-r))<=1.0e-07)){c=+s[a>>3];r=(+s[l>>3]-c)*(r-n)-(+s[i>>3]-c)*(f-n);break}else{r=+s[i>>3]<+s[l>>3]?1.0:-1.0;break}}else t=4}while(0);do{if((t|0)==4){r=+s[i+8>>3];if(+W(+(n-r))<=1.0e-07){r=+s[i>>3]<+s[a>>3]?1.0:-1.0;break}if(!(+W(+(f-r))<=1.0e-07)){c=+s[l>>3];r=(+s[a>>3]-c)*(r-f)-(+s[i>>3]-c)*(n-f);break}else{r=+s[i>>3]<+s[l>>3]?1.0:-1.0;break}}}while(0);return r>0.0|0}function Ln(A,e,i){A=A|0;e=e|0;i=i|0;return a[e+((a[((i|0)==1?e+(A*56|0)+48|0:e+(A*56|0)+44|0)>>2]|0)*56|0)+32>>2]|0}function yn(A){A=A|0;var e=0,i=0,r=0;r=k;k=k+16|0;i=r;e=a[47395]|0;if((e|0)<(a[47394]|0)){a[A+(e*72|0)>>2]=-1;a[A+(e*72|0)+4>>2]=-1;a[A+(e*72|0)+68>>2]=1;a[47395]=e+1;k=r;return e|0}else{r=a[15712]|0;a[i>>2]=e;f3(r,138483,i)|0;gA(138394,138396,88,138521)}return 0}function Wn(){var A=0;A=a[47396]|0;if((A|0)<(a[47393]|0)){a[47396]=A+1;return A|0}else{L3(138444,30,1,a[15712]|0)|0;gA(138394,138396,72,138475)}return 0}function zn(A,e){A=A|0;e=e|0;var i=0.0,r=0.0;i=+s[A+8>>3];r=+s[e+8>>3];if(!(i>r+1.0e-07))if(i>3]>=+s[e>>3]&1;else A=1;return A|0}function Yn(A,e){A=A|0;e=e|0;var i=0.0,r=0.0;i=+s[A+8>>3];r=+s[e+8>>3];if(!(ir+1.0e-07)A=0;else A=+s[A>>3]<+s[e>>3]&1;else A=1;return A|0}function Dn(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0;h=f+(i*72|0)+24|0;o=(r|0)==1;A:while(1){k=f+(e*72|0)+24|0;c=f+(e*72|0)+48|0;s=f+(e*72|0)+52|0;b=f+(e*72|0)|0;u=f+(e*72|0)+4|0;w=f+(e*72|0)+56|0;if((e|0)<=0)break;while(1){if(!(zn(k,h)|0))break A;i=a[c>>2]|0;r=(i|0)>0;do{if(o){if(r?(a[f+(i*72|0)+4>>2]|0)==(A|0):0)break;i=a[s>>2]|0;if((i|0)<=0){e=i;continue A}if((a[f+(i*72|0)+4>>2]|0)!=(A|0)){e=i;continue A}}else{if(r?(a[f+(i*72|0)>>2]|0)==(A|0):0)break;i=a[s>>2]|0;if((i|0)<=0){e=i;continue A}if((a[f+(i*72|0)>>2]|0)!=(A|0)){e=i;continue A}}}while(0);if((a[b>>2]|0)!=(a[f+(i*72|0)>>2]|0)){e=i;continue A}if((a[u>>2]|0)!=(a[f+(i*72|0)+4>>2]|0)){e=i;continue A}d=a[f+(i*72|0)+56>>2]|0;r=a[n+(d*40|0)+28>>2]|0;l=n+(r*40|0)+32|0;t=a[w>>2]|0;if((a[l>>2]|0)==(d|0))a[l>>2]=t;else a[n+(r*40|0)+36>>2]=t;r=a[f+(i*72|0)+48>>2]|0;a[c>>2]=r;do{if((r|0)>0){l=f+(r*72|0)+40|0;if((a[l>>2]|0)==(i|0)){a[l>>2]=e;break}r=f+(r*72|0)+44|0;if((a[r>>2]|0)==(i|0))a[r>>2]=e}}while(0);r=a[f+(i*72|0)+52>>2]|0;a[s>>2]=r;do{if((r|0)>0){l=f+(r*72|0)+40|0;if((a[l>>2]|0)==(i|0)){a[l>>2]=e;break}r=f+(r*72|0)+44|0;if((a[r>>2]|0)==(i|0))a[r>>2]=e}}while(0);d=f+(i*72|0)+24|0;a[k>>2]=a[d>>2];a[k+4>>2]=a[d+4>>2];a[k+8>>2]=a[d+8>>2];a[k+12>>2]=a[d+12>>2];a[f+(i*72|0)+68>>2]=2}}return}function Mn(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0;r=+s[e+8>>3];f=+s[i+8>>3];do{if(!(r>f+1.0e-07)){if(!(+W(+(r-f))<=1.0e-07)){a[A>>2]=a[i>>2];a[A+4>>2]=a[i+4>>2];a[A+8>>2]=a[i+8>>2];a[A+12>>2]=a[i+12>>2];break}if(+s[e>>3]>+s[i>>3]+1.0e-07){a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2];break}else{a[A>>2]=a[i>>2];a[A+4>>2]=a[i+4>>2];a[A+8>>2]=a[i+8>>2];a[A+12>>2]=a[i+12>>2];break}}else{a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2]}}while(0);return}function Fn(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0;r=+s[e+8>>3];f=+s[i+8>>3];do{if(!(r>2]=a[i>>2];a[A+4>>2]=a[i+4>>2];a[A+8>>2]=a[i+8>>2];a[A+12>>2]=a[i+12>>2];break}if(+s[e>>3]<+s[i>>3]){a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2];break}else{a[A>>2]=a[i>>2];a[A+4>>2]=a[i+4>>2];a[A+8>>2]=a[i+8>>2];a[A+12>>2]=a[i+12>>2];break}}else{a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2]}}while(0);return}function Vn(A){A=A|0;var e=0;e=qF(8)|0;if(e|0){a[e+4>>2]=A;a[e>>2]=0}return e|0}function Jn(A,e){A=A|0;e=e|0;if(e){e=Vn(e)|0;a[e>>2]=A;A=e}return A|0}function pn(A){A=A|0;var e=0;do{e=A;A=a[A>>2]|0;L2(e)}while((A|0)!=0);return}function Nn(){var A=0;A=qF(1992)|0;if(A|0)a[A>>2]=Rn(A)|0;return A|0}function Rn(A){A=A|0;var e=0;e=jn(A)|0;a[e+4>>2]=0;A=A+1972|0;a[A>>2]=(a[A>>2]|0)+1;return e|0}function Xn(A){A=A|0;Hn(A,a[A>>2]|0);L2(a[A>>2]|0);L2(A);return 0}function Hn(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;n=A+1980|0;l=A+1912|0;t=A+1936|0;A:do{if((a[e+4>>2]|0)>0){i=0;while(1){if((i|0)==64)break A;r=e+8+(i*20|0)+16|0;f=a[r>>2]|0;if(f|0?(Hn(A,f),L2(a[r>>2]|0),qn(e,i),a[n>>2]=(a[n>>2]|0)+-1,a[l>>2]|0):0)a[t>>2]=(a[t>>2]|0)+1;i=i+1|0}}else{i=0;while(1){if((i|0)==64)break A;if(a[e+8+(i*20|0)+16>>2]|0?(qn(e,i),a[n>>2]=(a[n>>2]|0)+-1,a[l>>2]|0):0)a[t>>2]=(a[t>>2]|0)+1;i=i+1|0}}}while(0);return}function Un(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0;if(!e)gA(138879,138529,194,138537);r=a[e+4>>2]|0;if((r|0)<=-1)gA(138549,138529,195,138537);if(!i)gA(138821,138529,196,138537);t=A+1952|0;a[t>>2]=(a[t>>2]|0)+1;A:do{if((r|0)>0){t=0;r=0;while(1){if((t|0)==64)break A;f=e+8+(t*20|0)+16|0;if((a[f>>2]|0)!=0?(rl(i,e+8+(t*20|0)|0)|0)!=0:0){n=Un(A,a[f>>2]|0,i)|0;if(!r)r=n;else{f=r;while(1){l=a[f>>2]|0;if(!l)break;else f=l}a[f>>2]=n}}t=t+1|0}}else{n=0;r=0;while(1){if((n|0)==64)break A;f=e+8+(n*20|0)|0;if((a[e+8+(n*20|0)+16>>2]|0)!=0?(rl(i,f)|0)!=0:0)r=Jn(r,f)|0;n=n+1|0}}}while(0);return r|0}function xn(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0;o=k;k=k+64|0;s=o+52|0;b=o+32|0;u=o+16|0;w=o;a[s>>2]=0;if(!((e|0)!=0&(r|0)!=0))gA(138735,138529,247,138563);if((f|0)>-1?(c=a[r>>2]|0,(a[c+4>>2]|0)>=(f|0)):0){n=0;while(1){if((n|0)>=2)break;if((a[e+(n<<2)>>2]|0)>(a[e+(n+2<<2)>>2]|0)){l=8;break}else n=n+1|0}if((l|0)==8)gA(138610,138529,250,138563);t=A+1912|0;n=A+1908|0;l=a[n>>2]|0;if(a[t>>2]|0){h=l|0?A+1924|0:A+1916|0;a[h>>2]=(a[h>>2]|0)+1}if(!l){h=A+1964|0;a[h>>2]=(a[h>>2]|0)+1}if(!(Tn(A,e,i,c,s,f)|0))n=0;else{if(a[t>>2]|0){h=a[n>>2]|0?A+1948|0:A+1944|0;a[h>>2]=(a[h>>2]|0)+1}n=jn(A)|0;h=A+1976|0;a[h>>2]=(a[h>>2]|0)+1;h=a[r>>2]|0;a[n+4>>2]=(a[h+4>>2]|0)+1;On(u,h);a[b>>2]=a[u>>2];a[b+4>>2]=a[u+4>>2];a[b+8>>2]=a[u+8>>2];a[b+12>>2]=a[u+12>>2];h=b+16|0;a[h>>2]=a[r>>2];_n(A,b,n,0)|0;On(w,a[s>>2]|0);a[b>>2]=a[w>>2];a[b+4>>2]=a[w+4>>2];a[b+8>>2]=a[w+8>>2];a[b+12>>2]=a[w+12>>2];a[h>>2]=a[s>>2];_n(A,b,n,0)|0;a[r>>2]=n;n=A+1980|0;a[n>>2]=(a[n>>2]|0)+2;n=1}k=o;return n|0}gA(138575,138529,248,138563);return 0}function Tn(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0;h=k;k=k+80|0;b=h+52|0;u=h+48|0;w=h+32|0;o=h+16|0;s=h;a[u>>2]=0;if(!((e|0)!=0&(r|0)!=0&(f|0)!=0))gA(138653,138529,311,138667);if((n|0)>-1?(t=r+4|0,l=a[t>>2]|0,(l|0)>=(n|0)):0){if(a[A+1912>>2]|0){l=a[A+1908>>2]|0?A+1948|0:A+1944|0;a[l>>2]=(a[l>>2]|0)+1;l=a[t>>2]|0}do{if((l|0)>(n|0)){t=Kn(e,r)|0;l=r+8+(t*20|0)+16|0;t=r+8+(t*20|0)|0;if(!(Tn(A,e,i,a[l>>2]|0,u,n)|0)){il(w,e,t);a[t>>2]=a[w>>2];a[t+4>>2]=a[w+4>>2];a[t+8>>2]=a[w+8>>2];a[t+12>>2]=a[w+12>>2];c=0;break}else{On(o,a[l>>2]|0);a[t>>2]=a[o>>2];a[t+4>>2]=a[o+4>>2];a[t+8>>2]=a[o+8>>2];a[t+12>>2]=a[o+12>>2];c=a[u>>2]|0;a[b+16>>2]=c;On(s,c);a[b>>2]=a[s>>2];a[b+4>>2]=a[s+4>>2];a[b+8>>2]=a[s+8>>2];a[b+12>>2]=a[s+12>>2];c=A+1980|0;a[c>>2]=(a[c>>2]|0)+1;c=_n(A,b,r,f)|0;break}}else if((l|0)==(n|0)){a[b>>2]=a[e>>2];a[b+4>>2]=a[e+4>>2];a[b+8>>2]=a[e+8>>2];a[b+12>>2]=a[e+12>>2];a[b+16>>2]=i;c=A+1980|0;a[c>>2]=(a[c>>2]|0)+1;c=_n(A,b,r,f)|0;break}else gA(138712,138529,341,138667)}while(0);k=h;return c|0}gA(138680,138529,312,138667);return 0}function jn(A){A=A|0;A=A+1968|0;a[A>>2]=(a[A>>2]|0)+1;A=Q2(1288)|0;Pn(A);return A|0}function Pn(A){A=A|0;var e=0;a[A>>2]=0;a[A+4>>2]=-1;e=0;while(1){if((e|0)==64)break;Sn(A+8+(e*20|0)|0);e=e+1|0}return}function Sn(A){A=A|0;$n(A);a[A+16>>2]=0;return}function On(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;t=k;k=k+32|0;n=t+16|0;l=t;if(!e)gA(138879,138718,99,138725);$n(n);i=1;f=0;while(1){if((f|0)==64)break;do{if(a[e+8+(f*20|0)+16>>2]|0){r=e+8+(f*20|0)|0;if(!i){il(l,n,r);a[n>>2]=a[l>>2];a[n+4>>2]=a[l+4>>2];a[n+8>>2]=a[l+8>>2];a[n+12>>2]=a[l+12>>2];i=0;break}else{a[n>>2]=a[r>>2];a[n+4>>2]=a[r+4>>2];a[n+8>>2]=a[r+8>>2];a[n+12>>2]=a[r+12>>2];i=0;break}}}while(0);f=f+1|0}a[A>>2]=a[n>>2];a[A+4>>2]=a[n+4>>2];a[A+8>>2]=a[n+8>>2];a[A+12>>2]=a[n+12>>2];k=t;return}function Kn(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0;s=k;k=k+32|0;t=s+16|0;c=s;if(!((A|0)!=0&(e|0)!=0))gA(138735,138718,125,138742);i=0;r=0;f=0;n=1;l=0;while(1){if((l|0)==64)break;if(a[e+8+(l*20|0)+16>>2]|0){u=e+8+(l*20|0)|0;o=el(u)|0;il(c,A,u);a[t>>2]=a[c>>2];a[t+4>>2]=a[c+4>>2];a[t+8>>2]=a[c+8>>2];a[t+12>>2]=a[c+12>>2];u=(el(t)|0)-o|0;b=(n|0)!=0|(u|0)<(f|0);w=b|(o|0)<(r|0)&(u|0)==(f|0);i=w?l:i;r=w?o:r;f=w?u:f;n=b?0:n}l=l+1|0}k=s;return i|0}function _n(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0;if(!e)gA(138901,138718,167,138753);if(!i)gA(138879,138718,168,138753);do{if((a[i>>2]|0)<64){A=0;while(1){if((A|0)>=64){r=10;break}if(!(a[i+8+(A*20|0)+16>>2]|0)){r=8;break}A=A+1|0}if((r|0)==8){f=i+8+(A*20|0)|0;a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];a[f+16>>2]=a[e+16>>2];f=0;n=i;break}else if((r|0)==10)gA(138763,138718,178,138753)}else{if(a[A+1912>>2]|0){l=a[A+1908>>2]|0?A+1948|0:A+1944|0;a[l>>2]=(a[l>>2]|0)+1}if(!r)gA(138776,138718,187,138753);else{fl(A,i,e,r);f=1;n=(a[i+4>>2]|0)==0?A+1972|0:A+1976|0;break}}}while(0);a[n>>2]=(a[n>>2]|0)+1;return f|0}function qn(A,e){A=A|0;e=e|0;if(!((A|0)!=0&e>>>0<64))gA(138780,138718,201,138808);if(!(a[A+8+(e*20|0)+16>>2]|0))gA(139302,138718,202,138808);else{Sn(A+8+(e*20|0)|0);a[A>>2]=(a[A>>2]|0)+-1;return}}function $n(A){A=A|0;var e=0;e=0;while(1){if((e|0)==4)break;a[A+(e<<2)>>2]=0;e=e+1|0}return}function Al(A){A=A|0;var e=0,i=0,r=0;r=k;k=k+16|0;i=r;a[i>>2]=1;a[i+8>>2]=-1;e=1;while(1){if((e|0)==2)break;a[i+(e+2<<2)>>2]=0;a[i+(e<<2)>>2]=0;e=e+1|0}a[A>>2]=a[i>>2];a[A+4>>2]=a[i+4>>2];a[A+8>>2]=a[i+8>>2];a[A+12>>2]=a[i+12>>2];k=r;return}function el(A){A=A|0;var e=0,i=0,r=0;if(!A)gA(138821,138823,128,138835);A:do{if((a[A>>2]|0)>(a[A+8>>2]|0))e=0;else{e=1;i=0;while(1){if((i|0)==2)break A;r=U(a[A+(i+2<<2)>>2]|0,e)|0;e=r-(a[A+(i<<2)>>2]|0)|0;i=i+1|0}}}while(0);return e|0}function il(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0;n=k;k=k+16|0;f=n;if(!((e|0)!=0&(i|0)!=0))gA(138844,138823,195,138852);do{if((a[e>>2]|0)>(a[e+8>>2]|0)){a[A>>2]=a[i>>2];a[A+4>>2]=a[i+4>>2];a[A+8>>2]=a[i+8>>2];a[A+12>>2]=a[i+12>>2]}else{if((a[i>>2]|0)>(a[i+8>>2]|0)){a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2];break}else r=0;while(1){if((r|0)==2)break;c=a[e+(r<<2)>>2]|0;l=a[i+(r<<2)>>2]|0;a[f+(r<<2)>>2]=(c|0)<(l|0)?c:l;l=r+2|0;c=a[e+(l<<2)>>2]|0;t=a[i+(l<<2)>>2]|0;a[f+(l<<2)>>2]=(c|0)>(t|0)?c:t;r=r+1|0}a[A>>2]=a[f>>2];a[A+4>>2]=a[f+4>>2];a[A+8>>2]=a[f+8>>2];a[A+12>>2]=a[f+12>>2]}}while(0);k=n;return}function rl(A,e){A=A|0;e=e|0;var i=0,r=0;if((A|0)!=0&(e|0)!=0)i=0;else gA(138864,138823,216,138871);while(1){if((i|0)>=2){i=1;break}r=i+2|0;if((a[A+(i<<2)>>2]|0)>(a[e+(r<<2)>>2]|0)){i=0;break}if((a[e+(i<<2)>>2]|0)>(a[A+(r<<2)>>2]|0)){i=0;break}else i=i+1|0}return i|0}function fl(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0;if(!e)gA(138879,138881,40,138891);if(!i)gA(138901,138881,41,138891);t=A+1912|0;if(a[t>>2]|0){l=a[A+1908>>2]|0?A+1932|0:A+1928|0;a[l>>2]=(a[l>>2]|0)+1}n=e+4|0;l=a[n>>2]|0;al(A,e,i);i=A+1324|0;nl(A);f=el(A+1852|0)|0;f=(el(A+1868|0)|0)+f|0;if(a[t>>2]|0?(f|0)!=0&(a[A+1908>>2]|0)==0:0){t=A+1960|0;c[t>>2]=+((a[A+1320>>2]|0)>>>0)/+(f|0)+ +c[t>>2]}t=jn(A)|0;a[r>>2]=t;a[n>>2]=l;a[t+4>>2]=l;ll(A,e,t,i);if(((a[a[r>>2]>>2]|0)+(a[e>>2]|0)|0)==65)return;else gA(138903,138881,86,138891)}function al(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0;l=k;k=k+16|0;n=l;if(!e)gA(138879,138881,106,139290);if(!i)gA(138901,138881,107,139290);else r=0;while(1){if((r|0)>=64)break;if(!(a[e+8+(r*20|0)+16>>2]|0)){f=7;break}c=e+8+(r*20|0)|0;t=A+4+(r*20|0)|0;a[t>>2]=a[c>>2];a[t+4>>2]=a[c+4>>2];a[t+8>>2]=a[c+8>>2];a[t+12>>2]=a[c+12>>2];a[t+16>>2]=a[c+16>>2];r=r+1|0}if((f|0)==7)gA(139302,138881,111,139290);r=A+4|0;c=A+1284|0;a[c>>2]=a[i>>2];a[c+4>>2]=a[i+4>>2];a[c+8>>2]=a[i+8>>2];a[c+12>>2]=a[i+12>>2];a[c+16>>2]=a[i+16>>2];i=A+1304|0;a[i>>2]=a[r>>2];a[i+4>>2]=a[r+4>>2];a[i+8>>2]=a[r+8>>2];a[i+12>>2]=a[r+12>>2];r=1;while(1){if((r|0)==65)break;il(n,i,A+4+(r*20|0)|0);a[i>>2]=a[n>>2];a[i+4>>2]=a[n+4>>2];a[i+8>>2]=a[n+8>>2];a[i+12>>2]=a[n+12>>2];r=r+1|0}a[A+1320>>2]=el(i)|0;Pn(e);k=l;return}function nl(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0;v=k;k=k+48|0;t=v+32|0;s=v+16|0;b=v;tl(A);cl(A);h=A+1844|0;B=A+1848|0;g=A+1892|0;u=A+1852|0;w=A+1884|0;o=A+1868|0;c=A+1888|0;f=0;r=0;while(1){i=a[h>>2]|0;e=a[B>>2]|0;if((e+i|0)>=65)break;l=65-(a[g>>2]|0)|0;if((i|0)<(l|0)&(e|0)<(l|0)){n=-1;l=0}else{d=12;break}while(1){if((l|0)==65)break;if(!(a[A+1584+(l<<2)>>2]|0)){E=A+4+(l*20|0)|0;il(s,E,u);a[t>>2]=a[s>>2];a[t+4>>2]=a[s+4>>2];a[t+8>>2]=a[s+8>>2];a[t+12>>2]=a[s+12>>2];e=el(t)|0;i=a[w>>2]|0;il(b,E,o);a[t>>2]=a[b>>2];a[t+4>>2]=a[b+4>>2];a[t+8>>2]=a[b+8>>2];a[t+12>>2]=a[b+12>>2];E=el(t)|0;e=E-(a[c>>2]|0)+(i-e)|0;i=(e|0)>-1;e=i?e:0-e|0;i=(i^1)&1;if((e|0)<=(n|0))if((e|0)==(n|0)){E=(a[A+1844+(i<<2)>>2]|0)<(a[A+1844+(f<<2)>>2]|0);e=n;i=E?i:f;r=E?l:r}else{e=n;i=f}else r=l}else{e=n;i=f}n=e;l=l+1|0;f=i}sl(A,r,f)}if((d|0)==12){e=(i|0)>=(65-(a[g>>2]|0)|0)&1;i=0;while(1){if((i|0)==65)break;if(!(a[A+1584+(i<<2)>>2]|0))sl(A,i,e);i=i+1|0}i=a[h>>2]|0;e=a[B>>2]|0}if((e+i|0)!=65)gA(139046,138881,210,139132);E=a[g>>2]|0;if((i|0)<(E|0)|(e|0)<(E|0))gA(139143,138881,212,139132);else{k=v;return}}function ll(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0;if(!e)gA(138879,138881,297,138943);if(!i)gA(138953,138881,298,138943);if(!r)gA(138955,138881,299,138943);else f=0;while(1){if((f|0)>=65){r=14;break}r=a[A+1324+(f<<2)>>2]|0;if(r>>>0>=2){r=9;break}switch(r|0){case 0:{_n(A,A+4+(f*20|0)|0,e,0)|0;break}case 1:{_n(A,A+4+(f*20|0)|0,i,0)|0;break}default:{}}f=f+1|0}if((r|0)==9)gA(138957,138881,303,138943);else if((r|0)==14)return}function tl(A){A=A|0;var e=0,i=0,r=0,f=0;i=k;k=k+16|0;r=i;a[A+1848>>2]=0;a[A+1844>>2]=0;e=A+1852|0;f=A+1868|0;Al(r);a[f>>2]=a[r>>2];a[f+4>>2]=a[r+4>>2];a[f+8>>2]=a[r+8>>2];a[f+12>>2]=a[r+12>>2];a[e>>2]=a[r>>2];a[e+4>>2]=a[r+4>>2];a[e+8>>2]=a[r+8>>2];a[e+12>>2]=a[r+12>>2];a[A+1888>>2]=0;a[A+1884>>2]=0;e=0;while(1){if((e|0)==65)break;a[A+1584+(e<<2)>>2]=0;a[A+1324+(e<<2)>>2]=-1;e=e+1|0}k=i;return}function cl(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0;w=k;k=k+304|0;s=w+32|0;b=w+16|0;u=w;e=0;while(1){if((e|0)==65)break;a[s+(e<<2)>>2]=el(A+4+(e*20|0)|0)|0;e=e+1|0}e=0;i=0;r=0;n=0;A:while(1){if((n|0)==64)break;t=n+1|0;c=A+4+(n*20|0)|0;l=s+(n<<2)|0;f=t;while(1){if((f|0)==65){n=t;continue A}il(u,c,A+4+(f*20|0)|0);a[b>>2]=a[u>>2];a[b+4>>2]=a[u+4>>2];a[b+8>>2]=a[u+8>>2];a[b+12>>2]=a[u+12>>2];o=el(b)|0;o=o-(a[l>>2]|0)-(a[s+(f<<2)>>2]|0)|0;h=o>>>0>r>>>0;d=h?f:e;f=f+1|0;e=d;i=h?n:i;r=h?o:r}}sl(A,i,0);sl(A,e,1);k=w;return}function sl(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0;t=k;k=k+16|0;l=t;r=A+1584+(e<<2)|0;if(a[r>>2]|0)gA(139246,138881,257,139281);a[A+1324+(e<<2)>>2]=i;a[r>>2]=1;n=A+1844+(i<<2)|0;f=A+1852+(i<<4)|0;r=A+4+(e*20|0)|0;if(!(a[n>>2]|0)){a[f>>2]=a[r>>2];a[f+4>>2]=a[r+4>>2];a[f+8>>2]=a[r+8>>2];a[f+12>>2]=a[r+12>>2]}else{il(l,r,f);a[f>>2]=a[l>>2];a[f+4>>2]=a[l+4>>2];a[f+8>>2]=a[l+8>>2];a[f+12>>2]=a[l+12>>2]}a[A+1884+(i<<2)>>2]=el(f)|0;a[n>>2]=(a[n>>2]|0)+1;k=t;return}function bl(){var A=0,e=0,i=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0;g=k;k=k+1200|0;d=g+800|0;i=g;a[47397]=0;a[47398]=-2;e=d;t=200;u=i;o=0;h=0;w=d;A:while(1){f[w>>1]=o;if((e+(t<<1)+-2|0)>>>0>w>>>0)s=t;else{b=w-e>>1;A=b+1|0;if(t>>>0>9999){B=95;break}s=t<<1;s=s>>>0<1e4?s:1e4;l=Q2(s*6|3)|0;if(l){W6(l|0,e|0,A<<1|0)|0;t=l+(s>>>1<<2)|0;W6(t|0,u|0,A<<2|0)|0;if((e|0)==(d|0)){A=0;e=l}else{L2(e);A=0;e=l}}else{A=4;t=u}c=(A|0)==0;l=e+(b<<1)|0;switch((c?(e+(s<<1)+-2|0)>>>0>l>>>0?0:9:A)&15){case 9:{A=1;B=96;break A}case 4:{B=95;break A}case 0:{i=c?t+(b<<2)|0:i;u=t;w=c?l:w;break}default:{A=0;break A}}}if((o|0)==31){A=0;B=96;break}A=f[65534+(o<<1)>>1]|0;c=A<<16>>16;do{if(A<<16>>16!=-82){l=a[47398]|0;if((l|0)==-2){l=mt()|0;a[47398]=l}if((l|0)>=1)if(l>>>0<296)t=n[139321+l>>0]|0;else t=2;else{a[47398]=0;t=0}l=t+c|0;if(l>>>0<=271?(t|0)==(r[139617+l>>0]|0):0){o=r[139889+l>>0]|0;A=o<<24>>24;if(o<<24>>24<1){l=0-A|0;B=23;break}else{a[47398]=-2;i=i+4|0;a[i>>2]=a[47399];c=(h|0)==0?0:h+-1|0;l=w;break}}else B=22}else B=22}while(0);if((B|0)==22){B=0;o=r[140161+o>>0]|0;l=o&255;if(!(o<<24>>24)){l=a[47398]|0;e:do{switch(h|0){case 0:{a[47397]=(a[47397]|0)+1;Yl(143761);l=w;break}case 3:if((l|0)<1)if(!l){A=1;B=96;break A}else{l=w;break e}else{a[47398]=-2;l=w;break e}default:l=w}}while(0);while(1){if(A<<16>>16==8)break;if((l|0)==(e|0)){A=1;B=96;break A}A=l+-2|0;i=i+-4|0;l=A;A=f[65534+(f[A>>1]<<1)>>1]|0}i=i+4|0;a[i>>2]=a[47399];A=1;c=3}else B=23}do{if((B|0)==23){B=0;c=n[140277+l>>0]|0;A=a[i+(1-c<<2)>>2]|0;do{switch(l|0){case 4:{B=26;break A}case 2:{a[47400]=ul(a[i+-4>>2]|0,2)|0;break}case 3:{a[47400]=ul(a[i+-4>>2]|0,1)|0;break}case 5:{A=kl()|0;break}case 8:{ol(a[47401]|0);break}case 9:{hl(a[i>>2]|0);break}case 18:{dl(a[i>>2]|0);break}case 19:{Bl();break}case 20:{dl(a[i>>2]|0);break}case 21:{Bl();break}case 22:{dl(a[i>>2]|0);break}case 23:{Bl();break}case 24:{dl(a[i>>2]|0);break}case 25:{Bl();break}case 26:{dl(a[i>>2]|0);break}case 27:{Bl();break}case 28:{dl(a[i>>2]|0);break}case 29:{Bl();break}case 30:{dl(a[i>>2]|0);break}case 31:{Bl();break}case 32:{dl(a[i>>2]|0);break}case 33:{Bl();break}case 34:{A=a[i+-4>>2]|0;break}case 35:{A=a[i>>2]|0;break}case 38:{A=a[47401]|0;t=a[A+4>>2]|0;if(t>>>0>=(a[A+8>>2]|0)>>>0){so(A,1)|0;t=a[47401]|0;A=t;t=a[t+4>>2]|0}r[t>>0]=0;o=a[A>>2]|0;a[A+4>>2]=o;if(gl(o)|0){B=51;break A}a[(a[i>>2]|0)+80>>2]=a[47402];A=jk(56032,a[4580]|0)|0;a[(a[i>>2]|0)+84>>2]=A;a[47402]=a[i>>2];a[(a[i>>2]|0)+108>>2]=a[a[47403]>>2];A=a[i>>2]|0;break}case 39:{A=a[47401]|0;t=a[A+4>>2]|0;if(t>>>0>=(a[A+8>>2]|0)>>>0){so(A,1)|0;t=a[47401]|0;A=t;t=a[t+4>>2]|0}r[t>>0]=0;o=a[A>>2]|0;a[A+4>>2]=o;if(gl(o)|0){B=56;break A}A=a[47402]|0;a[47402]=a[A+80>>2];break}case 40:{A=a[i>>2]|0;break}case 41:{A=a[i+-4>>2]|0;break}case 42:{A=a[i+-4>>2]|0;break}case 43:{A=a[i+-4>>2]|0;break}case 44:{A=a[i+-4>>2]|0;break}case 45:{A=a[i+-4>>2]|0;break}case 48:{A=a[i>>2]|0;break}case 49:{A=a[i>>2]|0;break}case 50:{r[(a[i+-8>>2]|0)+12>>0]=1;A=a[i>>2]|0;break}case 51:{vl();break}case 52:{A=El()|0;break}case 53:{A=a[i>>2]|0;break}case 54:{A=a[i>>2]|0;break}case 55:{A=(a[i+-8>>2]|0)+100|0;r[A>>0]=r[A>>0]|1;A=a[i>>2]|0;break}case 56:{Cl(a[i+-4>>2]|0,a[i>>2]|0,1);break}case 57:{A=a[i+-12>>2]|0;break}case 58:{Cl(a[i+-4>>2]|0,a[i>>2]|0,2);break}case 59:{A=a[i+-12>>2]|0;break}case 60:{Cl(a[i+-4>>2]|0,a[i>>2]|0,3);break}case 61:{A=a[i+-12>>2]|0;break}case 62:{Cl(a[i>>2]|0,kl()|0,2);break}case 63:{A=a[i+-8>>2]|0;break}case 64:{A=a[i+-4>>2]|0;break}case 65:{A=a[i>>2]|0;break}default:{}}}while(0);t=0-c|0;o=i+(t<<2)|0;t=w+(t<<1)|0;i=o+4|0;a[o+4>>2]=A;A=(n[140449+l>>0]|0)+-41|0;o=f[t>>1]|0;l=o+(f[65766+(A<<1)>>1]|0)|0;if(l>>>0<272?(r[139617+l>>0]|0)==(o|0):0){A=r[139889+l>>0]|0;c=h;l=t;break}A=r[140519+A>>0]|0;c=h;l=t}}while(0);t=s;o=A;h=c;w=l+2|0}if((B|0)==26){wl();A=1;B=96}else if((B|0)==51){Yl(140347);wl();A=1;B=96}else if((B|0)==56){Yl(140398);wl();A=1;B=96}else if((B|0)==95){Yl(140558);A=2;B=96}if((B|0)==96)if((e|0)!=(d|0))L2(e);k=g;return A|0}function ul(A,e){A=A|0;e=e|0;var i=0;i=qF(8)|0;r[i+4>>0]=e;a[i>>2]=A;return i|0}function wl(){var A=0,e=0;A=a[47402]|0;e=a[47400]|0;if(e|0){aa(e,1);a[47400]=0}a[14021]=67;while(1){if(!A)break;e=a[A+80>>2]|0;ml(A);A=e}a[14021]=56;a[14030]=68;e=a[47405]|0;y5[a[e>>2]&63](e,0,64)|0;a[14030]=56;a[14039]=69;e=a[47406]|0;y5[a[e>>2]&63](e,0,64)|0;a[14039]=56;yl();return}function kl(){var A=0,e=0,i=0,r=0,n=0,l=0;i=a[47406]|0;r=qF(40)|0;if(Sk(a[47405]|0)|0)hl(0);A=Sk(i)|0;f[r+4>>1]=A;A:do{if(!A)A=i;else{a[r>>2]=qF(A*24|0)|0;A=0;e=y5[a[i>>2]&63](i,0,128)|0;while(1){if(!e){A=i;break A}n=(a[r>>2]|0)+(A*24|0)|0;l=e+8|0;a[n>>2]=a[l>>2];a[n+4>>2]=a[l+4>>2];a[n+8>>2]=a[l+8>>2];a[n+12>>2]=a[l+12>>2];a[n+16>>2]=a[l+16>>2];a[n+20>>2]=a[l+20>>2];A=A+1|0;e=y5[a[i>>2]&63](i,e,8)|0}}}while(0);y5[a[A>>2]&63](i,0,64)|0;return r|0}function ol(A){A=A|0;var e=0,i=0,f=0;i=qF(64)|0;f=A+4|0;e=a[f>>2]|0;if(e>>>0>=(a[A+8>>2]|0)>>>0){so(A,1)|0;e=a[f>>2]|0}r[e>>0]=0;A=a[A>>2]|0;a[f>>2]=A;a[i+8>>2]=b3(A)|0;a[i+12>>2]=a[a[47403]>>2];f=a[47405]|0;y5[a[f>>2]&63](f,i,1)|0;return}function hl(A){A=A|0;var e=0,i=0,n=0,l=0,t=0,c=0,s=0;t=qF(32)|0;c=a[47405]|0;e=Sk(c)|0;s=t+8|0;r[t+14>>0]=A;A:do{if(!e){a[s>>2]=qF(56)|0;f[t+12>>1]=1;l=b3(195059)|0;s=a[s>>2]|0;a[s>>2]=l;a[s+4>>2]=a[a[47403]>>2]}else{f[t+12>>1]=e;a[s>>2]=qF(e*56|0)|0;A=0;e=xk(c)|0;while(1){if(!e)break A;i=(a[s>>2]|0)+(A*56|0)|0;n=e+8|0;l=i+56|0;do{a[i>>2]=a[n>>2];i=i+4|0;n=n+4|0}while((i|0)<(l|0));A=A+1|0;e=a[e>>2]|0}}}while(0);y5[a[c>>2]&63](c,0,64)|0;s=a[47406]|0;y5[a[s>>2]&63](s,t,1)|0;return}function dl(A){A=A|0;var e=0,i=0.0,r=0,f=0,n=0,l=0,t=0;t=k;k=k+32|0;n=t;l=qF(8)|0;f=a[a[47403]>>2]|0;a[n>>2]=a[A>>2];a[n+4>>2]=a[A+4>>2];a[n+8>>2]=a[A+8>>2];a[n+12>>2]=a[A+12>>2];a[n+16>>2]=a[A+16>>2];a[n+20>>2]=a[A+20>>2];a[n+24>>2]=a[A+24>>2];a[n+28>>2]=a[A+28>>2];if(f|0){A=n+4|0;if((a[A>>2]|0)==0?(e=a[f+4>>2]|0,e|0):0)a[A>>2]=e;A=n+16|0;if(+s[A>>3]<0.0?(i=+s[f+16>>3],i>=0.0):0)s[A>>3]=i;if((a[n>>2]|0)==0?(r=a[f>>2]|0,r|0):0)a[n>>2]=r;A=a[f+24>>2]&127;if(A|0){f=n+24|0;r=a[f>>2]|0;a[f>>2]=r&127|A|r&-128}}f=a[(a[47404]|0)+144>>2]|0;a[l>>2]=y5[a[f>>2]&63](f,n,1)|0;a[l+4>>2]=a[47403];a[47403]=l;k=t;return}function Bl(){var A=0,e=0;e=a[47403]|0;A=a[e+4>>2]|0;L2(e);a[47403]=A;return}function gl(A){A=A|0;var e=0;while(1){e=r[A>>0]|0;if(!(e<<24>>24)){A=0;break}if(e<<24>>24==32)A=A+1|0;else{A=1;break}}return A|0}function vl(){var A=0,e=0,i=0;i=jk(56068,a[4580]|0)|0;A=a[47402]|0;e=qF(16)|0;a[e+8>>2]=i;if(r[A+112>>0]&2)r[e+12>>0]=1;i=a[A+84>>2]|0;y5[a[i>>2]&63](i,e,1)|0;return}function El(){var A=0;A=a[(a[47402]|0)+84>>2]|0;return y5[a[A>>2]&63](A,0,256)|0}function Cl(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0;n=qF(16)|0;f=a[47402]|0;l=a[f+84>>2]|0;l=a[(y5[a[l>>2]&63](l,0,256)|0)+8>>2]|0;a[n+8>>2]=A;y5[a[l>>2]&63](l,n,1)|0;r[A+92>>0]=i;if(r[f+112>>0]&1)r[A+100>>0]=1;a[A+88>>2]=e;return}function Il(A,e,i){A=A|0;e=e|0;i=i|0;L2(e);return}function Zl(A,e,i){A=A|0;e=e|0;i=i|0;Hk(a[e+8>>2]|0)|0;L2(e);return}function Gl(A,e,i){A=A|0;e=e|0;i=i|0;Wl(a[e+8>>2]|0);L2(e);return}function ml(A){A=A|0;Hk(a[A+84>>2]|0)|0;ia(A);L2(A);return}function Ql(A,e,i){A=A|0;e=e|0;i=i|0;L2(a[e+8>>2]|0);L2(e);return}function Ll(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,n=0,l=0;n=e+12|0;A=f[n>>1]|0;if(A<<16>>16){l=e+8|0;i=0;r=a[l>>2]|0;while(1){if((i|0)>=(A<<16>>16|0))break;L2(a[r>>2]|0);i=i+1|0;r=r+56|0;A=f[n>>1]|0}L2(a[l>>2]|0)}L2(e);return}function yl(){var A=0,e=0;A=a[47403]|0;while(1){e=a[A+4>>2]|0;if(!e)break;L2(A);A=e}return}function Wl(A){A=A|0;var e=0;e=A+88|0;switch(r[A+92>>0]|0){case 1:{ml(a[e>>2]|0);break}case 2:{ra(a[e>>2]|0);break}default:{}}ia(A);L2(A);return}function zl(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;f=k;k=k+160|0;r=f+8|0;n=f;a[n>>2]=0;a[n+4>>2]=0;a[47403]=n;a[47402]=0;a[47400]=0;a[47404]=a[(a[(a[i+52>>2]|0)+16>>2]|0)+144>>2];a[47405]=jk(56104,a[4580]|0)|0;a[47406]=jk(56140,a[4580]|0)|0;co(r,128,f+24|0);a[47401]=r;if(!(Fl(A,r,i)|0)){bl()|0;a[e>>2]=Gt()|0;A=a[47400]|0}else{a[e>>2]=2;A=0}Hk(a[47405]|0)|0;Hk(a[47406]|0)|0;a[47405]=0;a[47406]=0;a[47403]=0;wo(r);k=f;return A|0}function Yl(A){A=A|0;var e=0,i=0,f=0;i=k;k=k+16|0;e=i;if(!(r[189661]|0)){r[189661]=1;f=Dl()|0;a[e>>2]=A;a[e+4>>2]=f;ao(1,140575,e)|0;Ml()}k=i;return}function Dl(){return kb(a[47407]|0)|0}function Ml(){var A=0,e=0,i=0,f=0;f=k;k=k+16|0;i=f;A=a[47410]|0;a[A+4>>2]=a[A>>2];e=a[47419]|0;if((e|0)>0){bo(A,a[47417]|0,e)|0;A=a[47410]|0}bo(A,a[47416]|0,a[47418]|0)|0;e=a[47410]|0;A=a[e+4>>2]|0;if(A>>>0>=(a[e+8>>2]|0)>>>0){so(e,1)|0;A=a[47410]|0;e=A;A=a[A+4>>2]|0}a[e+4>>2]=A+1;r[A>>0]=0;A=a[47410]|0;e=a[A>>2]|0;a[A+4>>2]=e;a[i>>2]=e;ao(3,140591,i)|0;k=f;return}function Fl(A,e,i){A=A|0;e=e|0;i=i|0;a[47410]=e;co(189644,128,0);a[47408]=A;r[189663]=0;r[189660]=0;r[189661]=0;a[47418]=0;a[47419]=0;r[189662]=1;i=i+52|0;e=Rc(NF(n[(a[(a[i>>2]|0)+16>>2]|0)+115>>0]|0)|0)|0;a[47407]=e;eb(e,a[(a[(a[i>>2]|0)+16>>2]|0)+144>>2]|0);ib(a[47407]|0,70,27);rb(a[47407]|0,71);return 0}function Vl(A,e,i){A=A|0;e=e|0;i=i|0;do{if(!(p1(e,140603)|0)){a[47399]=Rl(i)|0;r[189662]=0;a[47409]=286}else{if(p1(e,140609)|0?p1(e,140612)|0:0){if(!(p1(e,140615)|0)){r[189662]=1;a[47399]=Xl(i)|0;a[47409]=287;break}if(!(p1(e,140623)|0)){a[47399]=Hl(A,i,0)|0;a[47409]=288;break}if(!(p1(e,140628)|0)){a[47399]=Hl(A,0,1)|0;a[47409]=290;break}if(!(p1(e,140644)|0)){a[47399]=Hl(A,0,32)|0;a[47409]=295;break}if(!(p1(e,140630)|0)){a[47399]=Hl(A,0,4)|0;a[47409]=291;break}if(!(p1(e,140632)|0)){a[47399]=Hl(A,0,64)|0;a[47409]=292;break}if(!(p1(e,140634)|0)){a[47399]=Hl(A,0,2)|0;a[47409]=289;break}if(!(p1(e,140636)|0)){a[47399]=Hl(A,0,8)|0;a[47409]=293;break}if(!(p1(e,140640)|0)){a[47399]=Hl(A,0,16)|0;a[47409]=294;break}if(!(p1(e,140646)|0)){Ul(i);a[47409]=283;break}if(!(p1(e,140649)|0)){a[47409]=277;break}if(!(p1(e,140652)|0)){a[47409]=280;break}if(!(p1(e,140655)|0)){a[47399]=xl(i)|0;a[47409]=285;break}if(!(p1(e,140618)|0)){a[47409]=262;break}else{Nl(e);break}}r[189662]=0;a[47409]=260}}while(0);return}function Jl(A,e){A=A|0;e=e|0;do{if(!(p1(e,140603)|0)){a[47409]=264;r[189662]=1}else{if(p1(e,140609)|0?p1(e,140612)|0:0){if(!(p1(e,140615)|0)){a[47409]=265;r[189662]=0;break}if(!(p1(e,140618)|0)){a[47409]=263;break}if(!(p1(e,140623)|0)){a[47409]=266;break}if(!(p1(e,140628)|0)){a[47409]=270;break}if(!(p1(e,140630)|0)){a[47409]=271;break}if(!(p1(e,140632)|0)){a[47409]=272;break}if(!(p1(e,140634)|0)){a[47409]=269;break}if(!(p1(e,140636)|0)){a[47409]=273;break}if(!(p1(e,140640)|0)){a[47409]=274;break}if(!(p1(e,140644)|0)){a[47409]=275;break}if(!(p1(e,140646)|0)){a[47409]=(a[47409]|0)==283?282:258;break}if(!(p1(e,140649)|0)){a[47409]=(a[47409]|0)==277?276:278;break}if(!(p1(e,140652)|0)){a[47409]=(a[47409]|0)==280?279:281;break}if(!(p1(e,140655)|0)){a[47409]=(a[47409]|0)==285?284:259;break}else{Nl(e);break}}a[47409]=261}}while(0);return}function pl(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0;if(r[189662]|0){A=0;while(1){if(!i)break;l=e+1|0;n=r[e>>0]|0;if((n&255)>31){e=a[47410]|0;f=a[e+4>>2]|0;if(f>>>0>=(a[e+8>>2]|0)>>>0){so(e,1)|0;f=a[47410]|0;e=f;f=a[f+4>>2]|0}a[e+4>>2]=f+1;r[f>>0]=n;A=A+1|0}e=l;i=i+-1|0}if(A|0)a[47409]=267}return}function Nl(A){A=A|0;var e=0,i=0,f=0;e=k;k=k+16|0;i=e;a[47409]=268;r[189661]=1;f=Dl()|0;a[i>>2]=A;a[i+4>>2]=f;ao(1,140659,i)|0;k=e;return}function Rl(A){A=A|0;var e=0;e=qF(120)|0;a[e+100>>2]=-1;r[e+88>>0]=-1;Tl(e,56400,22,A,141611);return e|0}function Xl(A){A=A|0;var e=0;e=qF(104)|0;f[e+80>>1]=1;f[e+82>>1]=1;Tl(e,56224,22,A,140965);return e|0}function Hl(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;f=k;k=k+32|0;r=f;a[r>>2]=0;a[r+4>>2]=0;a[r+8>>2]=0;a[r+12>>2]=0;a[r+16>>2]=0;a[r+20>>2]=0;a[r+24>>2]=0;a[r+28>>2]=0;s[r+16>>3]=-1.0;a[r+24>>2]=i&127;if(e|0)Tl(r,56200,3,e,140816);i=a[A+144>>2]|0;r=y5[a[i>>2]&63](i,r,1)|0;k=f;return r|0}function Ul(A){A=A|0;a[47399]=0;Tl(189596,56192,1,A,140752);return}function xl(A){A=A|0;var e=0;e=qF(40)|0;Tl(e,56176,2,A,140698);return e|0}function Tl(A,e,i,f,l){A=A|0;e=e|0;i=i|0;f=f|0;l=l|0;var t=0,c=0,s=0,b=0,u=0,w=0;w=k;k=k+16|0;u=w;b=w+8|0;while(1){s=a[f>>2]|0;if(!s)break;t=a[f+4>>2]|0;a[b>>2]=s;c=i8(b,e,i,8,104)|0;if(!c){a[u>>2]=s;a[u+4>>2]=l;ao(0,140704,u)|0;t=1}else{t=Q5[a[c+4>>2]&127](A,t)|0;t=(t|(n[189660]|0))&255}r[189660]=t;f=f+8|0}k=w;return}function jl(A,e){A=A|0;e=e|0;return p1(a[A>>2]|0,a[e>>2]|0)|0}function Pl(A,e){A=A|0;e=e|0;a[A+36>>2]=b3(e)|0;return 0}function Sl(A,e){A=A|0;e=e|0;a[A+32>>2]=b3(e)|0;return 0}function Ol(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0;t=k;k=k+16|0;n=t;f=(Y4(r[e>>0]|0)|0)<<24>>24;switch(f|0){case 82:{i=e+1|0;if(!(p1(i,140763)|0)){a[A>>2]=114;i=0}else l=5;break}case 76:{l=6;break}default:{i=e+1|0;l=5}}do{if((l|0)==5)if(!(p1(i,140768)|0))l=6;else{if((f|0)!=67?(p1(i,140772)|0)==0:0){a[n>>2]=e;ao(0,140778,n)|0;i=1;break}a[A>>2]=110;i=0}}while(0);if((l|0)==6){a[A>>2]=108;i=0}k=t;return i|0}function Kl(A,e){A=A|0;e=e|0;a[A+4>>2]=e;return 0}function _l(A,e){A=A|0;e=e|0;a[A>>2]=e;return 0}function ql(A,e){A=A|0;e=e|0;var i=0,r=0;r=k;k=k+16|0;i=r;if(!($l(e,140845,0,255,i)|0)){s[A+16>>3]=+(a[i>>2]|0);A=0}else A=1;k=r;return A|0}function $l(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0;s=k;k=k+48|0;c=s+24|0;t=s+8|0;l=s;b=s+36|0;n=n3(A,b,10)|0;do{if((a[b>>2]|0)!=(A|0)){if((n|0)>(r|0)){a[t>>2]=e;a[t+4>>2]=A;a[t+8>>2]=r;ao(0,140887,t)|0;A=1;break}if((n|0)<(i|0)){a[c>>2]=e;a[c+4>>2]=A;a[c+8>>2]=i;ao(0,140926,c)|0;A=1;break}else{a[f>>2]=n;A=0;break}}else{a[l>>2]=e;a[l+4>>2]=A;ao(0,140856,l)|0;A=1}}while(0);k=s;return A|0}function At(A,e){A=A|0;e=e|0;var i=0,n=0,l=0;l=k;k=k+16|0;i=l;switch((Y4(r[e>>0]|0)|0)<<24>>24|0){case 76:{if(!(p1(e+1|0,140768)|0)){A=A+36|0;f[A>>1]=f[A>>1]|4;A=0}else n=9;break}case 82:{if(!(p1(e+1|0,140763)|0)){A=A+36|0;f[A>>1]=f[A>>1]|2;A=0}else n=9;break}case 84:{if(!(p1(e+1|0,141563)|0)){A=A+36|0;f[A>>1]=f[A>>1]|6;A=0}else n=9;break}case 67:{if(!(p1(e+1|0,140772)|0))A=0;else n=9;break}default:n=9}if((n|0)==9){a[i>>2]=e;ao(0,141567,i)|0;A=1}k=l;return A|0}function et(A,e){A=A|0;e=e|0;var i=0,n=0,l=0;l=k;k=k+16|0;i=l;switch((Y4(r[e>>0]|0)|0)<<24>>24|0){case 76:{if(!(p1(e+1|0,140768)|0)){A=A+36|0;f[A>>1]=f[A>>1]|512;A=0}else n=7;break}case 82:{if(!(p1(e+1|0,140763)|0)){A=A+36|0;f[A>>1]=f[A>>1]|256;A=0}else n=7;break}case 67:{if(!(p1(e+1|0,140772)|0))A=0;else n=7;break}default:n=7}if((n|0)==7){a[i>>2]=e;ao(0,141518,i)|0;A=1}k=l;return A|0}function it(A,e){A=A|0;e=e|0;a[A+20>>2]=b3(e)|0;return 0}function rt(A,e){A=A|0;e=e|0;var i=0,n=0;n=k;k=k+16|0;i=n;if(!($l(e,141511,0,255,i)|0)){r[A+33>>0]=a[i>>2];A=A+36|0;f[A>>1]=f[A>>1]|32;A=0}else A=1;k=n;return A|0}function ft(A,e){A=A|0;e=e|0;var i=0,n=0;n=k;k=k+16|0;i=n;if(!($l(e,141499,0,255,i)|0)){r[A+34>>0]=a[i>>2];A=A+36|0;f[A>>1]=f[A>>1]|64;A=0}else A=1;k=n;return A|0}function at(A,e){A=A|0;e=e|0;var i=0,n=0;n=k;k=k+16|0;i=n;if(!($l(e,141487,-128,127,i)|0)){r[A+32>>0]=a[i>>2];A=A+36|0;f[A>>1]=f[A>>1]|128;A=0}else A=1;k=n;return A|0}function nt(A,e){A=A|0;e=e|0;a[A+24>>2]=b3(e)|0;return 0}function lt(A,e){A=A|0;e=e|0;var i=0,r=0,n=0;n=k;k=k+16|0;r=n;i=n+4|0;do{if(!($l(e,141442,0,65535,i)|0)){e=a[i>>2]|0;if(!e){ao(0,141450,r)|0;e=1;break}else{f[A+80>>1]=e;e=0;break}}else e=1}while(0);k=n;return e|0}function tt(A,e){A=A|0;e=e|0;var i=0,r=0,l=0;l=k;k=k+16|0;i=l;switch((Y4(n[e>>0]|0)|0)<<24>>24|0){case 84:{if(!(p1(e+1|0,141391)|0)){A=A+36|0;f[A>>1]=f[A>>1]|1;A=0}else r=5;break}case 70:{if(!(p1(e+1|0,141395)|0))A=0;else r=5;break}default:r=5}if((r|0)==5){a[i>>2]=e;ao(0,141400,i)|0;A=1}k=l;return A|0}function ct(A,e){A=A|0;e=e|0;var i=0,r=0;r=k;k=k+16|0;i=r;if(!($l(e,141377,0,360,i)|0)){a[A+28>>2]=a[i>>2]&65535;A=0}else A=1;k=r;return A|0}function st(A,e){A=A|0;e=e|0;var i=0,r=0;r=k;k=k+16|0;i=r;if(!($l(e,141370,0,65535,i)|0)){f[A+40>>1]=a[i>>2];A=0}else A=1;k=r;return A|0}function bt(A,e){A=A|0;e=e|0;a[A>>2]=b3(e)|0;return 0}function ut(A,e){A=A|0;e=e|0;a[A+16>>2]=b3(e)|0;return 0}function wt(A,e){A=A|0;e=e|0;a[A+4>>2]=b3(e)|0;return 0}function kt(A,e){A=A|0;e=e|0;var i=0,r=0,n=0;n=k;k=k+16|0;r=n;i=n+4|0;do{if(!($l(e,141325,0,65535,i)|0)){e=a[i>>2]|0;if(!e){ao(0,141333,r)|0;e=1;break}else{f[A+82>>1]=e;e=0;break}}else e=1}while(0);k=n;return e|0}function ot(A,e){A=A|0;e=e|0;var i=0,n=0,l=0,t=0,c=0,s=0;s=k;k=k+16|0;t=s;l=0;A:while(1){e:while(1){n=e+1|0;e=r[e>>0]|0;if(!(e<<24>>24))break A;e=e<<24>>24;i=(N1(e)|0)+-98|0;switch(i>>>1|i<<31|0){case 5:{c=5;break e}case 9:{i=2048;break e}case 8:{c=6;break e}case 0:{c=7;break e}default:{}}a[t>>2]=e;a[t+4>>2]=e;ao(0,141272,t)|0;e=n}if((c|0)==5){c=0;i=1024}else if((c|0)==6){c=0;i=4096}else if((c|0)==7){c=0;i=8192}e=n;l=l|i}if(l<<16>>16!=15360){c=A+36|0;f[c>>1]=f[c>>1]|l}k=s;return 0}function ht(A,e){A=A|0;e=e|0;var i=0,n=0,l=0,t=0,c=0,s=0;s=k;k=k+16|0;c=s+8|0;t=s;l=b3(e)|0;n=A+42|0;i=0;e=l;while(1){A=t3(e,141182)|0;if(!A)break;if(((Y4(r[A>>0]|0)|0)&255|0)==82){e=A+1|0;if(!(p1(e,141185)|0)){f[n>>1]=f[n>>1]|4;A=i;e=0;i=A;continue}if(!(p1(e,141192)|0)){f[n>>1]=f[n>>1]|2;A=i;e=0;i=A;continue}else{a[t>>2]=A;ao(0,141198,t)|0;i=1;e=0;continue}}if(!(p1(A,141236)|0)){f[n>>1]=f[n>>1]&-385;A=i;e=0;i=A;continue}if(p1(A,141242)|0?p1(A,141252)|0:0){if(!(p1(A,141258)|0)){f[n>>1]=f[n>>1]|128;A=i;e=0;i=A;continue}if(!(p1(A,141265)|0)){f[n>>1]=f[n>>1]|256;A=i;e=0;i=A;continue}else{a[c>>2]=A;ao(0,141198,c)|0;i=1;e=0;continue}}f[n>>1]=f[n>>1]|32;A=i;e=0;i=A}L2(l);k=s;return i|0}function dt(A,e){A=A|0;e=e|0;a[A+8>>2]=b3(e)|0;return 0}function Bt(A,e){A=A|0;e=e|0;a[A+12>>2]=b3(e)|0;return 0}function gt(A,e){A=A|0;e=e|0;var i=0,n=0,l=0;l=k;k=k+16|0;i=l;switch((Y4(r[e>>0]|0)|0)<<24>>24|0){case 66:{if(!(p1(e+1|0,141128)|0)){A=A+36|0;f[A>>1]=f[A>>1]|16;A=0}else n=7;break}case 84:{if(!(p1(e+1|0,141134)|0)){A=A+36|0;f[A>>1]=f[A>>1]|8;A=0}else n=7;break}case 77:{if(!(p1(e+1|0,141137)|0))A=0;else n=7;break}default:n=7}if((n|0)==7){a[i>>2]=e;ao(0,141143,i)|0;A=1}k=l;return A|0}function vt(A,e){A=A|0;e=e|0;var i=0,r=0;r=k;k=k+16|0;i=r;if(!($l(e,141122,0,65535,i)|0)){f[A+38>>1]=a[i>>2];A=0}else A=1;k=r;return A|0}function Et(A,e){A=A|0;e=e|0;var i=0,n=0,l=0;l=k;k=k+16|0;i=l;switch((Y4(r[e>>0]|0)|0)<<24>>24|0){case 76:{if(!(p1(e+1|0,140768)|0)){A=A+36|0;f[A>>1]=f[A>>1]|4;A=0}else n=7;break}case 82:{if(!(p1(e+1|0,140763)|0)){A=A+36|0;f[A>>1]=f[A>>1]|2;A=0}else n=7;break}case 67:{if(!(p1(e+1|0,140772)|0))A=0;else n=7;break}default:n=7}if((n|0)==7){a[i>>2]=e;ao(0,140778,i)|0;A=1}k=l;return A|0}function Ct(A,e){A=A|0;e=e|0;var i=0,f=0;f=k;k=k+16|0;i=f;if(!($l(e,141720,0,127,i)|0)){r[A+88>>0]=a[i>>2];A=0}else A=1;k=f;return A|0}function It(A,e){A=A|0;e=e|0;var i=0,f=0;f=k;k=k+16|0;i=f;if((r[e>>0]|0)==42){A=A+112|0;r[A>>0]=r[A>>0]|1;A=0}else{a[i>>2]=e;ao(0,141680,i)|0;A=1}k=f;return A|0}function Zt(A,e){A=A|0;e=e|0;var i=0,f=0;f=k;k=k+16|0;i=f;if((r[e>>0]|0)==42){A=A+112|0;r[A>>0]=r[A>>0]|2;A=0}else{a[i>>2]=e;ao(0,141643,i)|0;A=1}k=f;return A|0}function Gt(){var A=0;A=(r[189661]|r[189660])<<24>>24;jc(a[47407]|0);wo(189644);return A|0}function mt(){var A=0,e=0,i=0,f=0,n=0,l=0,t=0,c=0;c=k;k=k+16|0;t=c;a[47409]=0;e=0;A:do{e:do{switch(r[189663]|0){case 2:{A=-1;break A}case 0:{r[189663]=1;l=6;A=141732;e=0;break}default:{A=a[47408]|0;if(!(r[A>>0]|0)){r[189663]=2;l=7;A=141739;break e}else{e=Qt(A)|0;l=e-A|0;break e}}}}while(0);a[47417]=a[47416];a[47419]=a[47418];a[47416]=A;a[47418]=l;i=a[47412]|0;f=i-(a[47411]|0)|0;n=a[47407]|0;if(!f)A=fb(n,A,l,(l|0)==0&1)|0;else{if(i>>>0<(a[47413]|0)>>>0)A=i;else{so(189644,1)|0;A=a[47412]|0}r[A>>0]=0;A=a[47411]|0;a[47412]=A;A=fb(n,A,f,0)|0}if(!((A|0)!=0|(r[189661]|0)!=0)){n=ob(wb(a[47407]|0)|0)|0;l=Dl()|0;a[t>>2]=n;a[t+4>>2]=l;ao(1,140575,t)|0;Ml();r[189661]=1;a[47409]=268}if(e|0)a[47408]=e;A=a[47409]|0}while((A|0)==0);k=c;return A|0}function Qt(A){A=A|0;var e=0,i=0,f=0,n=0,l=0;l=k;k=k+16|0;f=l;e=A+1|0;i=r[A>>0]|0;A:do{if(i<<24>>24==60){i=r[e>>0]|0;if(i<<24>>24==33)if(!(Z1(A+2|0,141747,2)|0)){i=Lt(A+4|0)|0;e=i;i=r[i>>0]|0;n=8}else{i=e;n=5}else n=6;e:while(1)if((n|0)==5){e=i;i=r[i>>0]|0;n=6;continue}else if((n|0)==6){switch(i<<24>>24){case 62:case 0:{n=8;continue e}default:{}}i=e+1|0;n=5;continue}else if((n|0)==8)if(i<<24>>24==62){n=10;break}else{n=9;break}if((n|0)==9){ao(0,141750,f)|0;r[189660]=1;break}else if((n|0)==10){e=e+1|0;break}}else{e=A;A=i;while(1){switch(A<<24>>24){case 60:case 0:break A;case 38:{i=e+1|0;if((r[i>>0]|0)==35)n=15;else i=hX(i,189644)|0;break}default:n=15}if((n|0)==15){n=0;i=a[47412]|0;if(i>>>0>=(a[47413]|0)>>>0){so(189644,1)|0;i=a[47412]|0}a[47412]=i+1;r[i>>0]=A;i=e+1|0}e=i;A=r[i>>0]|0}}}while(0);k=l;return e|0}function Lt(A){A=A|0;var e=0,i=0,f=0,a=0,n=0,l=0,t=0,c=0;c=k;k=k+16|0;t=c;a=1;e=A;A:while(1){f=(a|0)==0;i=e;e:while(1){if(f)break A;n=i+1|0;switch(r[i>>0]|0){case 0:{e=n;break A}case 60:{l=5;break e}case 62:{e=-1;break e}default:i=n}}if((l|0)==5){l=0;e=1}a=a+e|0;e=n}i=e+-1|0;do{if(r[i>>0]|0){e=e+-3|0;if(e>>>0>=A>>>0?(Z1(e,141747,2)|0)==0:0)break;ao(0,141791,t)|0;r[189660]=1}}while(0);k=c;return i|0}function yt(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0;i=Q2(28)|0;if(!i)i=0;else{r=0;f=0;while(1){if((r|0)>=(e|0))break;d=(a[(a[A+(r<<2)>>2]|0)+4>>2]|0)+f|0;r=r+1|0;f=d}k=i+8|0;a[k>>2]=Wt(f<<4)|0;o=i+12|0;a[o>>2]=Wt((e<<2)+4|0)|0;r=f<<2;h=i+16|0;a[h>>2]=Wt(r)|0;r=Wt(r)|0;d=i+20|0;a[d>>2]=r;a[i+4>>2]=f;a[i>>2]=e;f=0;l=0;while(1){a[(a[o>>2]|0)+(l<<2)>>2]=f;if((l|0)>=(e|0))break;c=A+(l<<2)|0;w=a[c>>2]|0;s=a[w+4>>2]|0;b=f+-1|0;n=0;t=f;u=s;while(1){if((n|0)>=(u|0))break;u=(a[k>>2]|0)+(t<<4)|0;r=(a[w>>2]|0)+(n<<4)|0;a[u>>2]=a[r>>2];a[u+4>>2]=a[r+4>>2];a[u+8>>2]=a[r+8>>2];a[u+12>>2]=a[r+12>>2];u=t+1|0;a[(a[h>>2]|0)+(t<<2)>>2]=u;r=a[d>>2]|0;a[r+(t<<2)>>2]=t+-1;B=a[c>>2]|0;n=n+1|0;t=u;u=a[B+4>>2]|0;w=B}B=b+s|0;a[(a[h>>2]|0)+(B<<2)>>2]=f;a[r+(f<<2)>>2]=B;f=t;l=l+1|0}Wc(i)}return i|0}function Wt(A){A=A|0;if(!A)A=0;else A=Q2(A)|0;return A|0}function zt(A){A=A|0;var e=0,i=0;L2(a[A+8>>2]|0);L2(a[A+12>>2]|0);L2(a[A+16>>2]|0);L2(a[A+20>>2]|0);i=A+24|0;e=a[i>>2]|0;if(e|0){L2(a[e>>2]|0);L2(a[i>>2]|0)}L2(A);return}function Yt(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0;o=k;k=k+32|0;b=o+16|0;c=o;a[b>>2]=a[e>>2];a[b+4>>2]=a[e+4>>2];a[b+8>>2]=a[e+8>>2];a[b+12>>2]=a[e+12>>2];u=Jc(A,i,b)|0;a[b>>2]=a[r>>2];a[b+4>>2]=a[r+4>>2];a[b+8>>2]=a[r+8>>2];a[b+12>>2]=a[r+12>>2];w=Jc(A,f,b)|0;a[c>>2]=a[e>>2];a[c+4>>2]=a[e+4>>2];a[c+8>>2]=a[e+8>>2];a[c+12>>2]=a[e+12>>2];a[b>>2]=a[r>>2];a[b+4>>2]=a[r+4>>2];a[b+8>>2]=a[r+8>>2];a[b+12>>2]=a[r+12>>2];b=vc(c,i,u,b,f,w,A)|0;i=a[A+4>>2]|0;c=i+1|0;f=1;l=i;while(1){l=a[b+(l<<2)>>2]|0;s=f+1|0;if((l|0)==(c|0))break;else f=s}t=Q2(s<<4)|0;l=t+(f<<4)|0;a[l>>2]=a[r>>2];a[l+4>>2]=a[r+4>>2];a[l+8>>2]=a[r+8>>2];a[l+12>>2]=a[r+12>>2];A=A+8|0;while(1){i=a[b+(i<<2)>>2]|0;f=f+-1|0;l=t+(f<<4)|0;if((i|0)==(c|0))break;r=(a[A>>2]|0)+(i<<4)|0;a[l>>2]=a[r>>2];a[l+4>>2]=a[r+4>>2];a[l+8>>2]=a[r+8>>2];a[l+12>>2]=a[r+12>>2]}a[l>>2]=a[e>>2];a[l+4>>2]=a[e+4>>2];a[l+8>>2]=a[e+8>>2];a[l+12>>2]=a[e+12>>2];if(f|0)gA(141809,141816,148,141822);if(u|0)L2(u);if(w|0)L2(w);a[n+4>>2]=s;a[n>>2]=t;L2(b);k=o;return 1}function Dt(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0;c=k;k=k+48|0;l=c+32|0;n=c+16|0;f=c;t=a[A>>2]|0;i=a[A+4>>2]|0;r=i+-1|0;A=0;while(1){if((A|0)>=(i|0)){A=1;break}b=t+(((r+A|0)%(i|0)|0)<<4)|0;s=t+(A<<4)|0;a[f>>2]=a[b>>2];a[f+4>>2]=a[b+4>>2];a[f+8>>2]=a[b+8>>2];a[f+12>>2]=a[b+12>>2];a[n>>2]=a[s>>2];a[n+4>>2]=a[s+4>>2];a[n+8>>2]=a[s+8>>2];a[n+12>>2]=a[s+12>>2];a[l>>2]=a[e>>2];a[l+4>>2]=a[e+4>>2];a[l+8>>2]=a[e+8>>2];a[l+12>>2]=a[e+12>>2];if((mc(f,n,l)|0)==1){A=0;break}else A=A+1|0}k=c;return A|0}function Mt(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,g=0,v=0;v=k;k=k+64|0;b=v+48|0;s=v+32|0;h=4;c=Q2(40)|0;a[c>>2]=0;u=v+16|0;w=v;o=a[i>>2]|0;t=a[i+4>>2]|0;h=L6(189680,1,c|0,h|0)|0;c=L;d=0;i=d;d=0;if((i|0)!=0&(B|0)!=0){n=y6(a[i>>2]|0,h|0,c|0)|0;if(!n)fe(i|0,B|0);L=B}else n=-1;if((n|0)==1)i=L;else i=0;while(1){if(i|0){i=-1;break}d=0;a[b>>2]=a[r>>2];a[b+4>>2]=a[r+4>>2];a[b+8>>2]=a[r+8>>2];a[b+12>>2]=a[r+12>>2];uA(28,u|0,b|0);i=d;d=0;if((i|0)!=0&(B|0)!=0){n=y6(a[i>>2]|0,h|0,c|0)|0;if(!n)fe(i|0,B|0);L=B}else n=-1;if((n|0)==1){i=L;continue}a[r>>2]=a[u>>2];a[r+4>>2]=a[u+4>>2];a[r+8>>2]=a[u+8>>2];a[r+12>>2]=a[u+12>>2];l=r+16|0;d=0;a[b>>2]=a[l>>2];a[b+4>>2]=a[l+4>>2];a[b+8>>2]=a[l+8>>2];a[b+12>>2]=a[l+12>>2];uA(28,w|0,b|0);i=d;d=0;if((i|0)!=0&(B|0)!=0){n=y6(a[i>>2]|0,h|0,c|0)|0;if(!n)fe(i|0,B|0);L=B}else n=-1;if((n|0)==1){i=L;continue}a[l>>2]=a[w>>2];a[l+4>>2]=a[w+4>>2];a[l+8>>2]=a[w+8>>2];a[l+12>>2]=a[w+12>>2];a[47459]=0;d=0;bA(115,4);i=d;d=0;if((i|0)!=0&(B|0)!=0){n=y6(a[i>>2]|0,h|0,c|0)|0;if(!n)fe(i|0,B|0);L=B}else n=-1;if((n|0)==1){i=L;continue}n=a[47460]|0;i=a[47459]|0;a[47459]=i+1;i=n+(i<<4)|0;a[i>>2]=a[o>>2];a[i+4>>2]=a[o+4>>2];a[i+8>>2]=a[o+8>>2];a[i+12>>2]=a[o+12>>2];d=0;a[s>>2]=a[r>>2];a[s+4>>2]=a[r+4>>2];a[s+8>>2]=a[r+8>>2];a[s+12>>2]=a[r+12>>2];a[b>>2]=a[l>>2];a[b+4>>2]=a[l+4>>2];a[b+8>>2]=a[l+8>>2];a[b+12>>2]=a[l+12>>2];i=tA(1,A|0,e|0,o|0,t|0,s|0,b|0)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,h|0,c|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)==1)i=L;else{g=8;break}}if((g|0)==8)if((i|0)==-1)i=-1;else{a[f+4>>2]=a[47459];a[f>>2]=a[47460];i=0}L2(h|0);k=v;return i|0}function Ft(A,e){A=A|0;e=e|0;var i=0.0,r=0,f=0.0,n=0.0,l=0.0;i=+s[e>>3];r=e+8|0;f=+s[r>>3];l=f*f+i*i;n=+z(+l);if(l>1.0e-06){s[e>>3]=i/n;s[r>>3]=f/n}a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2];return}function Vt(A){A=A|0;var e=0,i=0,r=0,f=0;f=k;k=k+32|0;r=f+16|0;i=f;if((a[47463]|0)<(A|0)){e=a[47460]|0;if(!e){r=Q2(A<<4)|0;a[47460]=r;if(!r){r=a[15712]|0;a[i>>2]=141831;a[i+4>>2]=531;a[i+8>>2]=141966;f3(r,141839,i)|0;fe(189680,1)}}else{i=W2(e,A<<4)|0;a[47460]=i;if(!i){i=a[15712]|0;a[r>>2]=141831;a[r+4>>2]=537;a[r+8>>2]=141984;f3(i,141839,r)|0;fe(189680,1)}}a[47463]=A}k=f;return}function Jt(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0.0,c=0,b=0.0,u=0,w=0.0,o=0.0,h=0,d=0.0,B=0.0,g=0.0,v=0.0,E=0.0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0,U=0,x=0,T=0.0,j=0.0,P=0.0,S=0.0;U=k;k=k+336|0;F=U+320|0;M=U+304|0;C=U+144|0;h=U+128|0;Y=U+112|0;D=U+96|0;H=U+80|0;m=U+64|0;L=U+48|0;V=U+32|0;J=U+16|0;p=U;I=U+288|0;Z=U+272|0;G=U+256|0;Q=U+240|0;y=U+224|0;W=U+208|0;N=U+192|0;R=U+176|0;X=U+160|0;l=a[47462]|0;do{if((a[47461]|0)<(r|0)){if(!l){l=Q2(r*40|0)|0;a[47462]=l;if(!l){l=-1;break}}else{l=W2(l,r*40|0)|0;a[47462]=l;if(!l){l=-1;break}}a[47461]=r;c=6}else c=6}while(0);if((c|0)==6){s[l>>3]=0.0;c=1;t=0.0;while(1){if((c|0)>=(r|0))break;u=i+(c<<4)|0;z=i+(c+-1<<4)|0;a[M>>2]=a[u>>2];a[M+4>>2]=a[u+4>>2];a[M+8>>2]=a[u+8>>2];a[M+12>>2]=a[u+12>>2];a[F>>2]=a[z>>2];a[F+4>>2]=a[z+4>>2];a[F+8>>2]=a[z+8>>2];a[F+12>>2]=a[z+12>>2];E=+pt(M,F)+t;s[l+(c*40|0)>>3]=E;c=c+1|0;t=E}z=r+-1|0;u=l+(z*40|0)|0;c=1;while(1){if((c|0)>=(r|0))break;x=l+(c*40|0)|0;s[x>>3]=+s[x>>3]/+s[u>>3];c=c+1|0}c=0;while(1){if((c|0)>=(r|0))break;x=l+(c*40|0)+8|0;u=l+(c*40|0)|0;E=+Nt(+s[u>>3]);a[F>>2]=a[f>>2];a[F+4>>2]=a[f+4>>2];a[F+8>>2]=a[f+8>>2];a[F+12>>2]=a[f+12>>2];Rt(I,F,E);a[x>>2]=a[I>>2];a[x+4>>2]=a[I+4>>2];a[x+8>>2]=a[I+8>>2];a[x+12>>2]=a[I+12>>2];x=l+(c*40|0)+24|0;E=+Xt(+s[u>>3]);a[F>>2]=a[n>>2];a[F+4>>2]=a[n+4>>2];a[F+8>>2]=a[n+8>>2];a[F+12>>2]=a[n+12>>2];Rt(Z,F,E);a[x>>2]=a[Z>>2];a[x+4>>2]=a[Z+4>>2];a[x+8>>2]=a[Z+8>>2];a[x+12>>2]=a[Z+12>>2];c=c+1|0}a[M>>2]=a[f>>2];a[M+4>>2]=a[f+4>>2];a[M+8>>2]=a[f+8>>2];a[M+12>>2]=a[f+12>>2];a[F>>2]=a[n>>2];a[F+4>>2]=a[n+4>>2];a[F+8>>2]=a[n+8>>2];a[F+12>>2]=a[n+12>>2];Ht(i,r,l,M,F,Y,m,D,L);a[h>>2]=a[Y>>2];a[h+4>>2]=a[Y+4>>2];a[h+8>>2]=a[Y+8>>2];a[h+12>>2]=a[Y+12>>2];a[C>>2]=a[m>>2];a[C+4>>2]=a[m+4>>2];a[C+8>>2]=a[m+8>>2];a[C+12>>2]=a[m+12>>2];a[M>>2]=a[D>>2];a[M+4>>2]=a[D+4>>2];a[M+8>>2]=a[D+8>>2];a[M+12>>2]=a[D+12>>2];a[F>>2]=a[L>>2];a[F+4>>2]=a[L+4>>2];a[F+8>>2]=a[L+8>>2];a[F+12>>2]=a[L+12>>2];if(!(Ut(A,e,h,C,M,F,i,r)|0)){a[F>>2]=a[m>>2];a[F+4>>2]=a[m+4>>2];a[F+8>>2]=a[m+8>>2];a[F+12>>2]=a[m+12>>2];Rt(G,F,.3333333333333333);a[M>>2]=a[Y>>2];a[M+4>>2]=a[Y+4>>2];a[M+8>>2]=a[Y+8>>2];a[M+12>>2]=a[Y+12>>2];a[F>>2]=a[G>>2];a[F+4>>2]=a[G+4>>2];a[F+8>>2]=a[G+8>>2];a[F+12>>2]=a[G+12>>2];xt(Q,M,F);E=+s[Q>>3];v=+s[Q+8>>3];a[F>>2]=a[L>>2];a[F+4>>2]=a[L+4>>2];a[F+8>>2]=a[L+8>>2];a[F+12>>2]=a[L+12>>2];Rt(y,F,.3333333333333333);a[M>>2]=a[D>>2];a[M+4>>2]=a[D+4>>2];a[M+8>>2]=a[D+8>>2];a[M+12>>2]=a[D+12>>2];a[F>>2]=a[y>>2];a[F+4>>2]=a[y+4>>2];a[F+8>>2]=a[y+8>>2];a[F+12>>2]=a[y+12>>2];Tt(W,M,F);g=+s[W>>3];o=+s[W+8>>3];h=a[47462]|0;d=+s[Y>>3];B=+s[D>>3];w=+s[Y+8>>3];b=+s[D+8>>3];u=H+8|0;l=-1;t=-1.0;c=1;while(1){if((c|0)>=(z|0))break;T=+s[h+(c*40|0)>>3];j=+jt(T);P=+Nt(T);S=+Xt(T);T=+Pt(T);s[H>>3]=P*E+d*j+S*g+B*T;s[u>>3]=S*o+P*v+w*j+b*T;x=i+(c<<4)|0;a[M>>2]=a[H>>2];a[M+4>>2]=a[H+4>>2];a[M+8>>2]=a[H+8>>2];a[M+12>>2]=a[H+12>>2];a[F>>2]=a[x>>2];a[F+4>>2]=a[x+4>>2];a[F+8>>2]=a[x+8>>2];a[F+12>>2]=a[x+12>>2];T=+pt(M,F);x=T>t;l=x?c:l;t=x?T:t;c=c+1|0}x=i+(l<<4)|0;H=i+(l+-1<<4)|0;a[M>>2]=a[x>>2];a[M+4>>2]=a[x+4>>2];a[M+8>>2]=a[x+8>>2];a[M+12>>2]=a[x+12>>2];a[F>>2]=a[H>>2];a[F+4>>2]=a[H+4>>2];a[F+8>>2]=a[H+8>>2];a[F+12>>2]=a[H+12>>2];Tt(N,M,F);a[F>>2]=a[N>>2];a[F+4>>2]=a[N+4>>2];a[F+8>>2]=a[N+8>>2];a[F+12>>2]=a[N+12>>2];Ft(J,F);H=l+1|0;N=i+(H<<4)|0;a[M>>2]=a[N>>2];a[M+4>>2]=a[N+4>>2];a[M+8>>2]=a[N+8>>2];a[M+12>>2]=a[N+12>>2];a[F>>2]=a[x>>2];a[F+4>>2]=a[x+4>>2];a[F+8>>2]=a[x+8>>2];a[F+12>>2]=a[x+12>>2];Tt(R,M,F);a[F>>2]=a[R>>2];a[F+4>>2]=a[R+4>>2];a[F+8>>2]=a[R+8>>2];a[F+12>>2]=a[R+12>>2];Ft(p,F);a[M>>2]=a[J>>2];a[M+4>>2]=a[J+4>>2];a[M+8>>2]=a[J+8>>2];a[M+12>>2]=a[J+12>>2];a[F>>2]=a[p>>2];a[F+4>>2]=a[p+4>>2];a[F+8>>2]=a[p+8>>2];a[F+12>>2]=a[p+12>>2];xt(X,M,F);a[F>>2]=a[X>>2];a[F+4>>2]=a[X+4>>2];a[F+8>>2]=a[X+8>>2];a[F+12>>2]=a[X+12>>2];Ft(V,F);a[M>>2]=a[f>>2];a[M+4>>2]=a[f+4>>2];a[M+8>>2]=a[f+8>>2];a[M+12>>2]=a[f+12>>2];a[F>>2]=a[V>>2];a[F+4>>2]=a[V+4>>2];a[F+8>>2]=a[V+8>>2];a[F+12>>2]=a[V+12>>2];Jt(A,e,i,H,M,F)|0;a[M>>2]=a[V>>2];a[M+4>>2]=a[V+4>>2];a[M+8>>2]=a[V+8>>2];a[M+12>>2]=a[V+12>>2];a[F>>2]=a[n>>2];a[F+4>>2]=a[n+4>>2];a[F+8>>2]=a[n+8>>2];a[F+12>>2]=a[n+12>>2];Jt(A,e,x,r-l|0,M,F)|0;l=0}else l=0}k=U;return l|0}function pt(A,e){A=A|0;e=e|0;var i=0.0,r=0.0;i=+s[e>>3]-+s[A>>3];r=+s[e+8>>3]-+s[A+8>>3];return+ +z(+(r*r+i*i))}function Nt(A){A=+A;var e=0.0;e=1.0-A;return+(e*e*(A*3.0))}function Rt(A,e,i){A=A|0;e=e|0;i=+i;var r=0;s[e>>3]=+s[e>>3]*i;r=e+8|0;s[r>>3]=+s[r>>3]*i;a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2];return}function Xt(A){A=+A;return+(A*A*3.0*(1.0-A))}function Ht(A,e,i,r,f,n,l,t,c){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;t=t|0;c=c|0;var b=0.0,u=0.0,w=0.0,o=0.0,h=0,d=0,B=0,g=0,v=0,E=0,C=0.0,I=0.0,Z=0.0,G=0.0,m=0.0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0.0,M=0.0,F=0,V=0,J=0,p=0;Y=k;k=k+128|0;Q=Y+112|0;E=Y+80|0;v=Y;d=Y+96|0;B=Y+64|0;g=Y+48|0;L=Y+32|0;y=Y+16|0;W=A+(e+-1<<4)|0;h=0;C=0.0;I=0.0;Z=0.0;G=0.0;m=0.0;while(1){if((h|0)>=(e|0))break;V=i+(h*40|0)+8|0;a[E>>2]=a[V>>2];a[E+4>>2]=a[V+4>>2];a[E+8>>2]=a[V+8>>2];a[E+12>>2]=a[V+12>>2];a[Q>>2]=a[V>>2];a[Q+4>>2]=a[V+4>>2];a[Q+8>>2]=a[V+8>>2];a[Q+12>>2]=a[V+12>>2];D=+$t(E,Q)+I;F=i+(h*40|0)+24|0;a[E>>2]=a[V>>2];a[E+4>>2]=a[V+4>>2];a[E+8>>2]=a[V+8>>2];a[E+12>>2]=a[V+12>>2];a[Q>>2]=a[F>>2];a[Q+4>>2]=a[F+4>>2];a[Q+8>>2]=a[F+8>>2];a[Q+12>>2]=a[F+12>>2];o=+$t(E,Q)+m;a[E>>2]=a[F>>2];a[E+4>>2]=a[F+4>>2];a[E+8>>2]=a[F+8>>2];a[E+12>>2]=a[F+12>>2];a[Q>>2]=a[F>>2];a[Q+4>>2]=a[F+4>>2];a[Q+8>>2]=a[F+8>>2];a[Q+12>>2]=a[F+12>>2];w=+$t(E,Q)+Z;J=A+(h<<4)|0;p=i+(h*40|0)|0;M=+Ac(+s[p>>3]);a[Q>>2]=a[A>>2];a[Q+4>>2]=a[A+4>>2];a[Q+8>>2]=a[A+8>>2];a[Q+12>>2]=a[A+12>>2];Rt(B,Q,M);M=+ec(+s[p>>3]);a[Q>>2]=a[W>>2];a[Q+4>>2]=a[W+4>>2];a[Q+8>>2]=a[W+8>>2];a[Q+12>>2]=a[W+12>>2];Rt(g,Q,M);a[E>>2]=a[B>>2];a[E+4>>2]=a[B+4>>2];a[E+8>>2]=a[B+8>>2];a[E+12>>2]=a[B+12>>2];a[Q>>2]=a[g>>2];a[Q+4>>2]=a[g+4>>2];a[Q+8>>2]=a[g+8>>2];a[Q+12>>2]=a[g+12>>2];xt(d,E,Q);a[E>>2]=a[J>>2];a[E+4>>2]=a[J+4>>2];a[E+8>>2]=a[J+8>>2];a[E+12>>2]=a[J+12>>2];a[Q>>2]=a[d>>2];a[Q+4>>2]=a[d+4>>2];a[Q+8>>2]=a[d+8>>2];a[Q+12>>2]=a[d+12>>2];Tt(v,E,Q);a[E>>2]=a[V>>2];a[E+4>>2]=a[V+4>>2];a[E+8>>2]=a[V+8>>2];a[E+12>>2]=a[V+12>>2];a[Q>>2]=a[v>>2];a[Q+4>>2]=a[v+4>>2];a[Q+8>>2]=a[v+8>>2];a[Q+12>>2]=a[v+12>>2];M=+$t(E,Q)+C;a[E>>2]=a[F>>2];a[E+4>>2]=a[F+4>>2];a[E+8>>2]=a[F+8>>2];a[E+12>>2]=a[F+12>>2];a[Q>>2]=a[v>>2];a[Q+4>>2]=a[v+4>>2];a[Q+8>>2]=a[v+8>>2];a[Q+12>>2]=a[v+12>>2];h=h+1|0;C=M;I=D;Z=w;G=+$t(E,Q)+G;m=o}w=Z*I-m*m;o=w>=0.0?w:-w;if(!(o>=1.0e-06?(b=(Z*C-m*G)/w,u=(I*G-m*C)/w,!(o<1.0e-06|b<=0.0|u<=0.0)):0))z=6;if((z|0)==6){a[E>>2]=a[A>>2];a[E+4>>2]=a[A+4>>2];a[E+8>>2]=a[A+8>>2];a[E+12>>2]=a[A+12>>2];a[Q>>2]=a[W>>2];a[Q+4>>2]=a[W+4>>2];a[Q+8>>2]=a[W+8>>2];a[Q+12>>2]=a[W+12>>2];b=+pt(E,Q)*.3333333333333333;u=b}a[n>>2]=a[A>>2];a[n+4>>2]=a[A+4>>2];a[n+8>>2]=a[A+8>>2];a[n+12>>2]=a[A+12>>2];a[Q>>2]=a[r>>2];a[Q+4>>2]=a[r+4>>2];a[Q+8>>2]=a[r+8>>2];a[Q+12>>2]=a[r+12>>2];Rt(L,Q,b);a[l>>2]=a[L>>2];a[l+4>>2]=a[L+4>>2];a[l+8>>2]=a[L+8>>2];a[l+12>>2]=a[L+12>>2];a[t>>2]=a[W>>2];a[t+4>>2]=a[W+4>>2];a[t+8>>2]=a[W+8>>2];a[t+12>>2]=a[W+12>>2];a[Q>>2]=a[f>>2];a[Q+4>>2]=a[f+4>>2];a[Q+8>>2]=a[f+8>>2];a[Q+12>>2]=a[f+12>>2];Rt(y,Q,u);a[c>>2]=a[y>>2];a[c+4>>2]=a[y+4>>2];a[c+8>>2]=a[y+8>>2];a[c+12>>2]=a[y+12>>2];k=Y;return}function Ut(A,e,i,r,f,n,l,t){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;t=t|0;var c=0.0,b=0.0,u=0.0,w=0.0,o=0.0,h=0,d=0.0,B=0.0,g=0,v=0.0,E=0,C=0.0,I=0,Z=0.0,G=0,m=0,Q=0,L=0,y=0.0,W=0;L=k;k=k+64|0;Q=L;G=(t|0)==2;Z=+s[i>>3];v=+s[i+8>>3];E=Q+8|0;C=+s[r>>3];I=Q+16|0;o=+s[r+8>>3];h=Q+24|0;d=+s[f>>3];B=+s[n>>3];g=Q+32|0;w=+s[f+8>>3];u=+s[n+8>>3];r=Q+40|0;f=Q+48|0;n=Q+56|0;i=1;c=4.0;b=4.0;while(1){s[Q>>3]=Z;s[E>>3]=v;y=b*.3333333333333333;s[I>>3]=y*C+Z;s[h>>3]=y*o+v;y=c*.3333333333333333;s[g>>3]=d-y*B;s[r>>3]=w-y*u;s[f>>3]=d;s[n>>3]=w;if(i?(y=+St(Q,4),y<+St(l,t)+-.001):0){i=0;break}if(Ot(A,e,Q)|0){m=5;break}if(b==0.0&c==0.0){m=9;break}W=b>.01;i=0;c=W?c*.5:0.0;b=W?b*.5:0.0}A:do{if((m|0)==5){Vt((a[47459]|0)+4|0);r=a[47460]|0;i=1;while(1){if((i|0)==4){i=1;break A}W=a[47459]|0;s[r+(W<<4)>>3]=+s[Q+(i<<4)>>3];y=+s[Q+(i<<4)+8>>3];a[47459]=W+1;s[r+(W<<4)+8>>3]=y;i=i+1|0}}else if((m|0)==9)if(G){Vt((a[47459]|0)+4|0);r=a[47460]|0;i=1;while(1){if((i|0)==4){i=1;break A}W=a[47459]|0;s[r+(W<<4)>>3]=+s[Q+(i<<4)>>3];y=+s[Q+(i<<4)+8>>3];a[47459]=W+1;s[r+(W<<4)+8>>3]=y;i=i+1|0}}else i=0}while(0);k=L;return i|0}function xt(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;s[e>>3]=+s[e>>3]+ +s[i>>3];r=e+8|0;s[r>>3]=+s[r>>3]+ +s[i+8>>3];a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2];return}function Tt(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;s[e>>3]=+s[e>>3]-+s[i>>3];r=e+8|0;s[r>>3]=+s[r>>3]-+s[i+8>>3];a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2];return}function jt(A){A=+A;A=1.0-A;return+(A*A*A)}function Pt(A){A=+A;return+(A*A*A)}function St(A,e){A=A|0;e=e|0;var i=0.0,r=0,f=0.0,a=0.0,n=0;i=0.0;r=1;while(1){if((r|0)>=(e|0))break;n=r+-1|0;f=+s[A+(r<<4)>>3]-+s[A+(n<<4)>>3];a=+s[A+(r<<4)+8>>3]-+s[A+(n<<4)+8>>3];i=+z(+(a*a+f*f))+i;r=r+1|0}return+i}function Ot(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0.0,o=0.0,h=0.0,d=0.0,B=0.0,g=0,v=0,E=0.0,C=0,I=0.0,Z=0,G=0,m=0,Q=0,L=0,y=0.0,W=0.0;L=k;k=k+64|0;g=L+32|0;v=L;C=v+16|0;Z=i+16|0;G=i+32|0;m=i+48|0;Q=i+8|0;n=i+24|0;l=i+40|0;t=i+56|0;c=v+8|0;b=v+24|0;f=0;A:while(1){if((f|0)>=(e|0)){r=1;break}u=A+(f<<5)|0;a[v>>2]=a[u>>2];a[v+4>>2]=a[u+4>>2];a[v+8>>2]=a[u+8>>2];a[v+12>>2]=a[u+12>>2];u=A+(f<<5)+16|0;a[C>>2]=a[u>>2];a[C+4>>2]=a[u+4>>2];a[C+8>>2]=a[u+8>>2];a[C+12>>2]=a[u+12>>2];u=Kt(i,v,g)|0;e:do{if((u|0)!=4){w=+s[v>>3];o=+s[c>>3];h=+s[C>>3];d=+s[b>>3];r=0;while(1){if((r|0)>=(u|0))break e;B=+s[g+(r<<3)>>3];if((!(B<1.0e-06|B>.999999)?(I=B*B*B,W=B*3.0,y=1.0-B,B=W*B*y,E=y*y,W=E*W,y=E*y,E=+s[Z>>3]*W+ +s[i>>3]*y+ +s[G>>3]*B+ +s[m>>3]*I,I=+s[n>>3]*W+ +s[Q>>3]*y+ +s[l>>3]*B+ +s[t>>3]*I,B=E-w,y=I-o,!(y*y+B*B<.001)):0)?(W=E-h,y=I-d,!(y*y+W*W<.001)):0){r=0;break A}r=r+1|0}}}while(0);f=f+1|0}k=L;return r|0}function Kt(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0.0,l=0,t=0.0,c=0,b=0,u=0,w=0,o=0.0,h=0.0,d=0,B=0,g=0,v=0,E=0;E=k;k=k+96|0;B=E+48|0;g=E+24|0;c=E;v=E+80|0;o=+s[e>>3];n=+s[e+16>>3]-o;h=+s[e+8>>3];t=+s[e+24>>3]-h;a[v>>2]=0;A:do{if(!(n==0.0)){t=t/n;b=A+16|0;u=A+32|0;w=A+48|0;_t(+s[A+8>>3]-+s[A>>3]*t,+s[A+24>>3]-+s[b>>3]*t,+s[A+40>>3]-+s[u>>3]*t,+s[A+56>>3]-+s[w>>3]*t,B);s[B>>3]=t*o-h+ +s[B>>3];r=Ec(B,g)|0;if((r|0)==4)e=4;else{f=B+8|0;l=B+16|0;c=B+24|0;n=1.0/n;e=0;while(1){if((e|0)>=(r|0))break;t=+s[g+(e<<3)>>3];if(t>=0.0&t<=1.0?(_t(+s[A>>3],+s[b>>3],+s[u>>3],+s[w>>3],B),h=(+s[B>>3]-o+((+s[c>>3]*t+ +s[l>>3])*t+ +s[f>>3])*t)*n,h>=0.0&h<=1.0):0)qt(t,i,v);e=e+1|0}e=a[v>>2]|0}}else{_t(+s[A>>3],+s[A+16>>3],+s[A+32>>3],+s[A+48>>3],B);s[B>>3]=+s[B>>3]-o;d=Ec(B,g)|0;if(!(t==0.0)){if((d|0)==4){e=4;break}b=A+8|0;u=A+24|0;w=A+40|0;r=A+56|0;f=B+8|0;l=B+16|0;c=B+24|0;n=1.0/t;e=0;while(1){if((e|0)>=(d|0))break;t=+s[g+(e<<3)>>3];if(t>=0.0&t<=1.0?(_t(+s[b>>3],+s[u>>3],+s[w>>3],+s[r>>3],B),o=(+s[B>>3]-h+((+s[c>>3]*t+ +s[l>>3])*t+ +s[f>>3])*t)*n,o>=0.0&o<=1.0):0)qt(t,i,v);e=e+1|0}e=a[v>>2]|0;break}_t(+s[A+8>>3],+s[A+24>>3],+s[A+40>>3],+s[A+56>>3],B);s[B>>3]=+s[B>>3]-h;l=Ec(B,c)|0;e=(l|0)==4;e:do{if((d|0)==4){if(e){e=4;break A}else e=0;while(1){if((e|0)>=(l|0))break e;qt(+s[c+(e<<3)>>3],i,v);e=e+1|0}}else{if(e){e=0;while(1){if((e|0)>=(d|0))break e;qt(+s[g+(e<<3)>>3],i,v);e=e+1|0}}else r=0;while(1){if((r|0)>=(d|0))break e;f=g+(r<<3)|0;e=0;while(1){if((e|0)>=(l|0))break;n=+s[f>>3];if(n==+s[c+(e<<3)>>3])qt(n,i,v);e=e+1|0}r=r+1|0}}}while(0);e=a[v>>2]|0}}while(0);k=E;return e|0}function _t(A,e,i,r,f){A=+A;e=+e;i=+i;r=+r;f=f|0;s[f+24>>3]=r-A+(e-i)*3.0;s[f+16>>3]=(i+A)*3.0-e*6.0;s[f+8>>3]=(e-A)*3.0;s[f>>3]=A;return}function qt(A,e,i){A=+A;e=e|0;i=i|0;var r=0;if(A>=0.0&A<=1.0){r=a[i>>2]|0;s[e+(r<<3)>>3]=A;a[i>>2]=r+1}return}function $t(A,e){A=A|0;e=e|0;return+(+s[e+8>>3]*+s[A+8>>3]+ +s[e>>3]*+s[A>>3])}function Ac(A){A=+A;var e=0.0;e=1.0-A;return+(e*e*(e+A*3.0))}function ec(A){A=+A;return+(A*A*((1.0-A)*3.0+A))}function ic(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0.0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,g=0,v=0,E=0,I=0,Z=0,G=0,m=0,Q=0,y=0,W=0,z=0,Y=0,D=0,M=0.0;D=k;k=k+112|0;W=D+80|0;y=D+64|0;Q=D+48|0;Y=4;z=Q2(40)|0;a[z>>2]=0;E=D+32|0;I=D+16|0;Z=D;G=D+96|0;Y=L6(189856,1,z|0,Y|0)|0;z=L;d=0;r=d;d=0;if((r|0)!=0&(B|0)!=0){f=y6(a[r>>2]|0,Y|0,z|0)|0;if(!f)fe(r|0,B|0);L=B}else f=-1;if((f|0)==1)r=L;else r=0;A:while(1){if(r|0){r=-2;break}n=A+4|0;d=0;bA(116,a[n>>2]|0);r=d;d=0;if((r|0)!=0&(B|0)!=0){f=y6(a[r>>2]|0,Y|0,z|0)|0;if(!f)fe(r|0,B|0);L=B}else f=-1;if((f|0)==1){r=L;continue}a[47503]=0;a[47504]=0;d=0;bA(117,a[n>>2]<<1|0);r=d;d=0;if((r|0)!=0&(B|0)!=0){f=y6(a[r>>2]|0,Y|0,z|0)|0;if(!f)fe(r|0,B|0);L=B}else f=-1;if((f|0)==1){r=L;continue}b=(a[47506]|0)/2|0;a[47507]=b;a[47508]=b+-1;b=a[n>>2]|0;n=a[A>>2]|0;r=0;f=-1;l=C;while(1){if((r|0)>=(b|0))break;M=+s[n+(r<<4)>>3];v=l>M;g=v?r:f;r=r+1|0;f=g;l=v?M:l}v=n+(f<<4)|0;a[I>>2]=a[v>>2];a[I+4>>2]=a[v+4>>2];a[I+8>>2]=a[v+8>>2];a[I+12>>2]=a[v+12>>2];v=n+(((f|0)==0?b:f)+-1<<4)|0;a[E>>2]=a[v>>2];a[E+4>>2]=a[v+4>>2];a[E+8>>2]=a[v+8>>2];a[E+12>>2]=a[v+12>>2];v=n+(((f|0)==(b+-1|0)?0:f+1|0)<<4)|0;a[Z>>2]=a[v>>2];a[Z+4>>2]=a[v+4>>2];a[Z+8>>2]=a[v+8>>2];a[Z+12>>2]=a[v+12>>2];M=+s[I>>3];if((+s[E>>3]==M?M==+s[Z>>3]:0)?+s[Z+8>>3]>+s[I+8>>3]:0)v=15;else v=12;e:do{if((v|0)==12){v=0;d=0;r=aA(36,E|0,I|0,Z|0)|0;f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,Y|0,z|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){r=L;continue A}if((r|0)==1){n=a[47510]|0;r=a[47511]|0;f=0;while(1){if((f|0)>=(b|0))break e;t=a[A>>2]|0;if(!(((f|0)>0?(m=f+-1|0,+s[t+(f<<4)>>3]==+s[t+(m<<4)>>3]):0)?+s[t+(f<<4)+8>>3]==+s[t+(m<<4)+8>>3]:0)){g=a[47503]|0;a[n+(g<<3)>>2]=t+(f<<4);a[n+(g<<3)+4>>2]=n+(((g|0)%(b|0)|0)<<3);a[r+(g<<2)>>2]=n+(g<<3);a[47503]=g+1}f=f+1|0}}else v=15}}while(0);e:do{if((v|0)==15){v=0;t=a[47510]|0;r=a[47511]|0;n=b;while(1){f=n+-1|0;if((n|0)<=0)break e;c=a[A>>2]|0;if(((n|0)<(b|0)?+s[c+(f<<4)>>3]==+s[c+(n<<4)>>3]:0)?+s[c+(f<<4)+8>>3]==+s[c+(n<<4)+8>>3]:0){n=f;continue}n=a[47503]|0;a[t+(n<<3)>>2]=c+(f<<4);a[t+(n<<3)+4>>2]=t+(((n|0)%(b|0)|0)<<3);a[r+(n<<2)>>2]=t+(n<<3);a[47503]=n+1;n=f}}}while(0);d=0;uA(29,r|0,a[47503]|0);r=d;d=0;if((r|0)!=0&(B|0)!=0){f=y6(a[r>>2]|0,Y|0,z|0)|0;if(!f)fe(r|0,B|0);L=B}else f=-1;if((f|0)==1){r=L;continue}t=0;r=a[47504]|0;e:while(1){if((t|0)>=(r|0)){h=0;break}c=t+1|0;n=c;while(1){if((n|0)>=(r|0)){t=c;continue e}d=0;uA(30,t|0,n|0);r=d;d=0;if((r|0)!=0&(B|0)!=0){f=y6(a[r>>2]|0,Y|0,z|0)|0;if(!f)fe(r|0,B|0);L=B}else f=-1;if((f|0)==1){r=L;continue A}n=n+1|0;r=a[47504]|0}}while(1){if((h|0)>=(r|0))break;d=0;f=rA(105,h|0,e|0)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){t=y6(a[n>>2]|0,Y|0,z|0)|0;if(!t)fe(n|0,B|0);L=B}else t=-1;if((t|0)==1){r=L;continue A}if(f|0)break;h=h+1|0}if((h|0)==(r|0)){r=a[15712]|0;d=0;a[Q>>2]=141858;a[Q+4>>2]=192;a[Q+8>>2]=141869;aA(32,r|0,141839,Q|0)|0;r=d;d=0;if((r|0)!=0&(B|0)!=0){f=y6(a[r>>2]|0,Y|0,z|0)|0;if(!f)fe(r|0,B|0);L=B}else f=-1;if((f|0)==1){r=L;continue}else{v=41;break}}g=e+16|0;c=0;while(1){if((c|0)>=(r|0))break;d=0;f=rA(105,c|0,g|0)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){t=y6(a[n>>2]|0,Y|0,z|0)|0;if(!t)fe(n|0,B|0);L=B}else t=-1;if((t|0)==1){r=L;continue A}if(f|0)break;c=c+1|0}if((c|0)==(r|0)){r=a[15712]|0;d=0;a[y>>2]=141858;a[y+4>>2]=200;a[y+8>>2]=141902;aA(32,r|0,141839,y|0)|0;r=d;d=0;if((r|0)!=0&(B|0)!=0){f=y6(a[r>>2]|0,Y|0,z|0)|0;if(!f)fe(r|0,B|0);L=B}else f=-1;if((f|0)==1){r=L;continue}else{v=48;break}}d=0;r=rA(106,h|0,c|0)|0;f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,Y|0,z|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){r=L;continue}if(!r){r=a[15712]|0;d=0;a[W>>2]=141858;a[W+4>>2]=207;a[W+8>>2]=141940;aA(32,r|0,141839,W|0)|0;r=d;d=0;if((r|0)!=0&(B|0)!=0){f=y6(a[r>>2]|0,Y|0,z|0)|0;if(!f)fe(r|0,B|0);L=B}else f=-1;if((f|0)==1){r=L;continue}d=0;bA(118,2);r=d;d=0;if((r|0)!=0&(B|0)!=0){f=y6(a[r>>2]|0,Y|0,z|0)|0;if(!f)fe(r|0,B|0);L=B}else f=-1;if((f|0)==1){r=L;continue}else{v=53;break}}if((h|0)==(c|0)){d=0;bA(118,2);r=d;d=0;if((r|0)!=0&(B|0)!=0){f=y6(a[r>>2]|0,Y|0,z|0)|0;if(!f)fe(r|0,B|0);L=B}else f=-1;if((f|0)==1){r=L;continue}else{v=56;break}}a[G>>2]=e;a[G+4>>2]=0;f=G+8|0;a[f>>2]=g;a[G+12>>2]=0;d=0;uA(31,1,G|0);r=d;d=0;if((r|0)!=0&(B|0)!=0){n=y6(a[r>>2]|0,Y|0,z|0)|0;if(!n)fe(r|0,B|0);L=B}else n=-1;if((n|0)==1){r=L;continue}a[47509]=a[47507];w=h;e:while(1){if((w|0)==-1){n=f;r=0;break}o=a[47513]|0;a[o+(w*52|0)>>2]=2;r=0;while(1){if((r|0)>=3){v=65;break}v=a[o+(w*52|0)+4+(r<<4)+12>>2]|0;if(v|0?(a[v>>2]|0)==1:0){v=68;break}r=r+1|0}if((v|0)==65){v=0;if((r|0)==3){r=a[47505]|0;c=a[r+(a[47508]<<2)>>2]|0;d=0;r=aA(36,g|0,a[a[r+(a[47507]<<2)>>2]>>2]|0,a[c>>2]|0)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){t=y6(a[n>>2]|0,Y|0,z|0)|0;if(!t)fe(n|0,B|0);L=B}else t=-1;if((t|0)==1){r=L;continue A}t=(r|0)==1;u=t?f:c;t=t?c:f}else v=68}if((v|0)==68){v=0;c=a[o+(w*52|0)+4+(r<<4)>>2]|0;b=a[o+(w*52|0)+4+(r<<4)+4>>2]|0;d=0;r=aA(36,a[c>>2]|0,a[a[o+(w*52|0)+4+(((r+1|0)%3|0)<<4)+4>>2]>>2]|0,a[b>>2]|0)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){t=y6(a[n>>2]|0,Y|0,z|0)|0;if(!t)fe(n|0,B|0);L=B}else t=-1;if((t|0)==1){r=L;continue A}t=(r|0)==1;u=t?c:b;t=t?b:c}do{if((w|0)==(h|0)){d=0;uA(31,2,t|0);r=d;d=0;if((r|0)!=0&(B|0)!=0){n=y6(a[r>>2]|0,Y|0,z|0)|0;if(!n)fe(r|0,B|0);L=B}else n=-1;if((n|0)==1){r=L;continue A}d=0;uA(31,1,u|0);r=d;d=0;if((r|0)!=0&(B|0)!=0){n=y6(a[r>>2]|0,Y|0,z|0)|0;if(!n)fe(r|0,B|0);L=B}else n=-1;if((n|0)==1){r=L;continue A}r=0}else{b=a[47505]|0;if((a[b+(a[47507]<<2)>>2]|0)!=(u|0)?(a[b+(a[47508]<<2)>>2]|0)!=(u|0):0){d=0;t=iA(34,u|0)|0;r=d;d=0;if((r|0)!=0&(B|0)!=0){n=y6(a[r>>2]|0,Y|0,z|0)|0;if(!n)fe(r|0,B|0);L=B}else n=-1;if((n|0)==1){r=L;continue A}d=0;uA(32,2,t|0);r=d;d=0;if((r|0)!=0&(B|0)!=0){n=y6(a[r>>2]|0,Y|0,z|0)|0;if(!n)fe(r|0,B|0);L=B}else n=-1;if((n|0)==1){r=L;continue A}d=0;uA(31,1,u|0);r=d;d=0;if((r|0)!=0&(B|0)!=0){n=y6(a[r>>2]|0,Y|0,z|0)|0;if(!n)fe(r|0,B|0);L=B}else n=-1;if((n|0)==1){r=L;continue A}if((t|0)<=(a[47509]|0)){r=0;break}a[47509]=t;r=0;break}d=0;c=iA(34,t|0)|0;r=d;d=0;if((r|0)!=0&(B|0)!=0){n=y6(a[r>>2]|0,Y|0,z|0)|0;if(!n)fe(r|0,B|0);L=B}else n=-1;if((n|0)==1){r=L;continue A}d=0;uA(32,1,c|0);r=d;d=0;if((r|0)!=0&(B|0)!=0){n=y6(a[r>>2]|0,Y|0,z|0)|0;if(!n)fe(r|0,B|0);L=B}else n=-1;if((n|0)==1){r=L;continue A}d=0;uA(31,2,t|0);r=d;d=0;if((r|0)!=0&(B|0)!=0){n=y6(a[r>>2]|0,Y|0,z|0)|0;if(!n)fe(r|0,B|0);L=B}else n=-1;if((n|0)==1){r=L;continue A}if((c|0)>=(a[47509]|0)){r=0;break}a[47509]=c;r=0}}while(0);while(1){if((r|0)>=3){w=-1;continue e}n=a[o+(w*52|0)+4+(r<<4)+12>>2]|0;if(n|0?(a[n>>2]|0)==1:0)break;r=r+1|0}w=(n-(a[47513]|0)|0)/52|0}while(1){if(!n)break;n=a[n+4>>2]|0;r=r+1|0}d=0;bA(118,r|0);n=d;d=0;if((n|0)!=0&(B|0)!=0){t=y6(a[n>>2]|0,Y|0,z|0)|0;if(!t)fe(n|0,B|0);L=B}else t=-1;if((t|0)==1)r=L;else{v=94;break}}if((v|0)==41)r=-1;else if((v|0)==48)r=-1;else if((v|0)==53){a[i+4>>2]=2;r=a[47512]|0;a[r>>2]=a[e>>2];a[r+4>>2]=a[e+4>>2];a[r+8>>2]=a[e+8>>2];a[r+12>>2]=a[e+12>>2];z=r+16|0;a[z>>2]=a[g>>2];a[z+4>>2]=a[g+4>>2];a[z+8>>2]=a[g+8>>2];a[z+12>>2]=a[g+12>>2];a[i>>2]=r;r=0}else if((v|0)==56){a[i+4>>2]=2;r=a[47512]|0;a[r>>2]=a[e>>2];a[r+4>>2]=a[e+4>>2];a[r+8>>2]=a[e+8>>2];a[r+12>>2]=a[e+12>>2];z=r+16|0;a[z>>2]=a[g>>2];a[z+4>>2]=a[g+4>>2];a[z+8>>2]=a[g+8>>2];a[z+12>>2]=a[g+12>>2];a[i>>2]=r;r=0}else if((v|0)==94){a[i+4>>2]=r;n=a[47512]|0;while(1){r=r+-1|0;if(!f)break;z=n+(r<<4)|0;W=a[f>>2]|0;a[z>>2]=a[W>>2];a[z+4>>2]=a[W+4>>2];a[z+8>>2]=a[W+8>>2];a[z+12>>2]=a[W+12>>2];f=a[f+4>>2]|0}a[i>>2]=n;r=0}L2(Y|0);k=D;return r|0}function rc(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0;l=k;k=k+64|0;r=l+48|0;n=l+32|0;f=l+16|0;i=l;if((a[47516]|0)<(A|0)){e=a[47510]|0;if(!e){n=Q2(A<<3)|0;a[47510]=n;if(!n){n=a[15712]|0;a[i>>2]=141858;a[i+4>>2]=523;a[i+8>>2]=142108;f3(n,141839,i)|0;fe(189856,1)}n=Q2(A<<2)|0;a[47511]=n;if(!n){n=a[15712]|0;a[f>>2]=141858;a[f+4>>2]=527;a[f+8>>2]=142127;f3(n,141839,f)|0;fe(189856,1)}}else{f=W2(e,A<<3)|0;a[47510]=f;if(!f){f=a[15712]|0;a[n>>2]=141858;a[n+4>>2]=533;a[n+8>>2]=142147;f3(f,141839,n)|0;fe(189856,1)}n=W2(a[47511]|0,A<<2)|0;a[47511]=n;if(!n){n=a[15712]|0;a[r>>2]=141858;a[r+4>>2]=539;a[r+8>>2]=142167;f3(n,141839,r)|0;fe(189856,1)}}a[47516]=A}k=l;return}function fc(A){A=A|0;var e=0,i=0,r=0,f=0;f=k;k=k+32|0;r=f+16|0;i=f;if((a[47506]|0)<(A|0)){e=a[47505]|0;if(!e){r=Q2(A<<2)|0;a[47505]=r;if(!r){r=a[15712]|0;a[i>>2]=141858;a[i+4>>2]=573;a[i+8>>2]=142063;f3(r,141839,i)|0;fe(189856,1)}}else{i=W2(e,A<<2)|0;a[47505]=i;if(!i){i=a[15712]|0;a[r>>2]=141858;a[r+4>>2]=580;a[r+8>>2]=142085;f3(i,141839,r)|0;fe(189856,1)}}a[47506]=A}k=f;return}function ac(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0;r=+s[e+8>>3];f=+s[e>>3];r=(+s[i>>3]-f)*(+s[A+8>>3]-r)-(+s[A>>3]-f)*(+s[i+8>>3]-r);return(r>0.0?1:r<0.0?2:3)|0}function nc(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;t=k;k=k+16|0;l=t;A:while(1){if((e|0)>3)r=0;else{e=9;break}while(1){if((r|0)>=(e|0)){e=8;break A}f=r+1|0;i=(f|0)%(e|0)|0;n=(r+2|0)%(e|0)|0;if(!(kc(r,n,A,e)|0))r=f;else break}oc(a[A+(r<<2)>>2]|0,a[A+(i<<2)>>2]|0,a[A+(n<<2)>>2]|0);e=e+-1|0;while(1){if((i|0)>=(e|0))continue A;n=i+1|0;a[A+(i<<2)>>2]=a[A+(n<<2)>>2];i=n}}if((e|0)==8){A=a[15712]|0;a[l>>2]=141858;a[l+4>>2]=324;a[l+8>>2]=142003;f3(A,141839,l)|0}else if((e|0)==9)oc(a[A>>2]|0,a[A+4>>2]|0,a[A+8>>2]|0);k=t;return}function lc(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0;t=a[47513]|0;c=t+(A*52|0)|0;s=t+(e*52|0)|0;n=0;while(1){if((n|0)==3)break;b=t+(A*52|0)+4+(n<<4)|0;u=t+(A*52|0)+4+(n<<4)+4|0;w=t+(A*52|0)+4+(n<<4)+12|0;f=0;while(1){if((f|0)==3)break;k=a[a[b>>2]>>2]|0;l=a[a[t+(e*52|0)+4+(f<<4)>>2]>>2]|0;if((k|0)==(l|0)){i=a[a[t+(e*52|0)+4+(f<<4)+4>>2]>>2]|0;if((a[a[u>>2]>>2]|0)==(i|0))r=10;else r=8}else{i=a[a[t+(e*52|0)+4+(f<<4)+4>>2]>>2]|0;r=8}if(((r|0)==8?(r=0,(k|0)==(i|0)):0)?(a[a[u>>2]>>2]|0)==(l|0):0)r=10;if((r|0)==10){a[w>>2]=s;a[t+(e*52|0)+4+(f<<4)+12>>2]=c}f=f+1|0}n=n+1|0}return}function tc(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;f=a[47513]|0;i=0;r=0;while(1){if((r|0)==3)break;i=i+((ac(a[a[f+(A*52|0)+4+(r<<4)>>2]>>2]|0,a[a[f+(A*52|0)+4+(r<<4)+4>>2]>>2]|0,e)|0)!=2&1)|0;r=r+1|0}return((i|0)==3|(i|0)==0)&1|0}function cc(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;i=a[47513]|0;r=i+(A*52|0)|0;A:do{if(!(a[r>>2]|0)){a[r>>2]=1;if((A|0)==(e|0))i=1;else{f=0;while(1){if((f|0)>=3)break;r=a[i+(A*52|0)+4+(f<<4)+12>>2]|0;if(r){if(cc((r-i|0)/52|0,e)|0){i=1;break A}i=a[47513]|0}f=f+1|0}a[i+(A*52|0)>>2]=0;i=0}}else i=0}while(0);return i|0}function sc(A){A=A|0;var e=0,i=0,r=0,f=0;f=k;k=k+32|0;r=f+16|0;i=f;if((a[47514]|0)<(A|0)){e=a[47512]|0;if(!e){r=Q2(A<<4)|0;a[47512]=r;if(!r){r=a[15712]|0;a[i>>2]=141858;a[i+4>>2]=593;a[i+8>>2]=141966;f3(r,141839,i)|0;fe(189856,1)}}else{i=W2(e,A<<4)|0;a[47512]=i;if(!i){i=a[15712]|0;a[r>>2]=141858;a[r+4>>2]=599;a[r+8>>2]=141984;f3(i,141839,r)|0;fe(189856,1)}}a[47514]=A}k=f;return}function bc(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;i=a[47508]|0;r=a[47507]|0;f=(i|0)>=(r|0);if((A|0)==1)if(f){a[e+4>>2]=a[(a[47505]|0)+(r<<2)>>2];A=190028;i=-1}else{A=190028;i=-1}else if(f){a[e+4>>2]=a[(a[47505]|0)+(i<<2)>>2];A=190032;i=1}else{A=190032;i=1}f=(a[A>>2]|0)+i|0;a[A>>2]=f;a[(a[47505]|0)+(f<<2)>>2]=e;return}function uc(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;f=a[47509]|0;n=a[47505]|0;e=a[47507]|0;while(1){if((e|0)>=(f|0)){r=4;break}i=e+1|0;if((ac(a[a[n+(i<<2)>>2]>>2]|0,a[a[n+(e<<2)>>2]>>2]|0,a[A>>2]|0)|0)==1)break;else e=i}A:do{if((r|0)==4){e=a[47508]|0;while(1){if((e|0)<=(f|0)){e=f;break A}i=e+-1|0;if((ac(a[a[n+(i<<2)>>2]>>2]|0,a[a[n+(e<<2)>>2]>>2]|0,a[A>>2]|0)|0)==2)break;else e=i}}}while(0);return e|0}function wc(A,e){A=A|0;e=e|0;a[((A|0)==1?190032:190028)>>2]=e;return}function kc(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,s=0;f=a[a[i+(((A+-1+r|0)%(r|0)|0)<<2)>>2]>>2]|0;t=a[a[i+(A<<2)>>2]>>2]|0;n=a[a[i+(((A+1|0)%(r|0)|0)<<2)>>2]>>2]|0;s=(ac(f,t,n)|0)==1;c=a[a[i+(e<<2)>>2]>>2]|0;if(s)if((ac(t,c,f)|0)==1){f=ac(c,t,n)|0;n=1;l=5}else f=0;else{f=ac(t,c,n)|0;n=2;l=5}A:do{if((l|0)==5)if((f|0)==(n|0)){f=0;while(1){if((f|0)>=(r|0)){f=1;break A}n=f;f=f+1|0;l=(f|0)%(r|0)|0;if((l|0)==(e|0)|((n|0)==(e|0)|((n|0)==(A|0)|(l|0)==(A|0))))continue;if(dc(t,c,a[a[i+(n<<2)>>2]>>2]|0,a[a[i+(l<<2)>>2]>>2]|0)|0){f=0;break}}}else f=0}while(0);return f|0}function oc(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0;r=a[47504]|0;f=a[47515]|0;if((r|0)<(f|0))l=r;else{hc(f+20|0);l=a[47504]|0}n=a[47513]|0;a[47504]=l+1;f=n+(l*52|0)|0;a[f>>2]=0;a[n+(l*52|0)+4>>2]=A;a[n+(l*52|0)+8>>2]=e;a[n+(l*52|0)+16>>2]=0;a[n+(l*52|0)+20>>2]=e;a[n+(l*52|0)+24>>2]=i;a[n+(l*52|0)+32>>2]=0;a[n+(l*52|0)+36>>2]=i;a[n+(l*52|0)+40>>2]=A;a[n+(l*52|0)+48>>2]=0;r=0;while(1){if((r|0)==3)break;a[n+(l*52|0)+4+(r<<4)+8>>2]=f;r=r+1|0}return}function hc(A){A=A|0;var e=0,i=0,r=0,f=0;f=k;k=k+32|0;r=f+16|0;i=f;if((a[47515]|0)<(A|0)){e=a[47513]|0;if(!e){r=Q2(A*52|0)|0;a[47513]=r;if(!r){r=a[15712]|0;a[i>>2]=141858;a[i+4>>2]=552;a[i+8>>2]=142024;f3(r,141839,i)|0;fe(189856,1)}}else{i=W2(e,A*52|0)|0;a[47513]=i;if(!i){i=a[15712]|0;a[r>>2]=141858;a[r+4>>2]=558;a[r+8>>2]=142043;f3(i,141839,r)|0;fe(189856,1)}}a[47515]=A}k=f;return}function dc(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,a=0,n=0,l=0;a=ac(A,e,i)|0;if((((a|0)!=3?(n=ac(A,e,r)|0,(n|0)!=3):0)?(l=ac(i,r,A)|0,(l|0)!=3):0)?(f=ac(i,r,e)|0,(f|0)!=3):0)return((a|0)==1^(n|0)==1)&((l|0)==1^(f|0)==1)&1|0;if(((Bc(A,e,i)|0)==0?(Bc(A,e,r)|0)==0:0)?(Bc(i,r,A)|0)==0:0)return(Bc(i,r,e)|0)!=0|0;return 1}function Bc(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0,a=0.0,n=0.0;f=+s[A>>3];n=+s[e>>3]-f;a=+s[A+8>>3];r=+s[e+8>>3]-a;f=+s[i>>3]-f;a=+s[i+8>>3]-a;if((ac(A,e,i)|0)==3?a*r+f*n>=0.0:0)A=a*a+f*f<=r*r+n*n&1;else A=0;return A|0}function gc(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0.0,l=0,t=0.0,c=0,b=0,u=0,w=0,k=0,o=0.0,h=0;u=Q2(i<<2)|0;w=Q2((i<<3)+8|0)|0;k=w+8|0;f=0;while(1){if((f|0)>=(i|0))break;a[u+(f<<2)>>2]=-1;s[k+(f<<3)>>3]=-2147483647.0;f=f+1|0}s[w>>3]=-2147483648.0;A:while(1){if((A|0)==(e|0))break;b=k+(A<<3)|0;t=+s[b>>3];s[b>>3]=t==-2147483647.0?0.0:-t;c=0;f=-1;while(1){if((c|0)>=(i|0)){A=f;continue A}l=k+(c<<3)|0;n=+s[l>>3];if(n<0.0){h=(A|0)<(c|0);o=+s[(a[r+((h?c:A)<<2)>>2]|0)+((h?A:c)<<3)>>3];t=-(o+ +s[b>>3]);if(o!=0.0&n>3]=t;a[u+(c<<2)>>2]=A;n=t}f=n>+s[k+(f<<3)>>3]?c:f}c=c+1|0}}L2(w);return u|0}function vc(A,e,i,r,f,n,l){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;var t=0,c=0,s=0,b=0;c=k;k=k+32|0;s=c+16|0;b=c;t=a[l+4>>2]|0;a[b>>2]=a[A>>2];a[b+4>>2]=a[A+4>>2];a[b+8>>2]=a[A+8>>2];a[b+12>>2]=a[A+12>>2];a[s>>2]=a[r>>2];a[s+4>>2]=a[r+4>>2];a[s+8>>2]=a[r+8>>2];a[s+12>>2]=a[r+12>>2];if(!(Nc(b,e,s,f,l)|0)){A=a[l+24>>2]|0;a[A+(t<<2)>>2]=n;b=t+1|0;a[A+(b<<2)>>2]=i;A=gc(b,t,t+2|0,A)|0}else{A=Q2((t<<2)+8|0)|0;b=t+1|0;a[A+(t<<2)>>2]=b;a[A+(b<<2)>>2]=-1}k=c;return A|0}function Ec(A,e){A=A|0;e=e|0;var i=0,r=0.0,f=0.0,a=0.0,n=0.0,l=0.0,t=0;r=+s[A+24>>3];A:do{if(r<1.0e-07&r>-1.0e-07)A=Cc(A,e)|0;else{n=+s[A+16>>3]/(r*3.0);a=+s[A+8>>3]/r;f=n*n;r=n*2.0*f-n*a+ +s[A>>3]/r;f=a*.3333333333333333-f;f=f*f*4.0*f;a=r*r+f;if(!(a<0.0)){l=(+z(+a)-r)*.5;f=+u1(l);r=+u1(-r-l)+f;s[e>>3]=r;if(a>0.0)A=1;else{r=r*-.5;s[e+16>>3]=r;A=1;i=7}}else{l=+N(+ +z(+-a),+-r);r=+u1(+z(+-f)*.5)*2.0;s[e>>3]=r*+D(+(l*.3333333333333333));s[e+8>>3]=+D(+((l+6.283185307179586)*.3333333333333333))*r;r=+D(+((l+-6.283185307179586)*.3333333333333333))*r;A=2;i=7}if((i|0)==7){s[e+(A<<3)>>3]=r;A=3}i=0;while(1){if((i|0)>=(A|0))break A;t=e+(i<<3)|0;s[t>>3]=+s[t>>3]-n;i=i+1|0}}}while(0);return A|0}function Cc(A,e){A=A|0;e=e|0;var i=0.0,r=0.0;i=+s[A+16>>3];do{if(!(i<1.0e-07&i>-1.0e-07)){r=+s[A+8>>3]/(i*2.0);i=r*r-+s[A>>3]/i;if(!(i<0.0))if(i==0.0){s[e>>3]=-r;A=1;break}else{i=+z(+i)-r;s[e>>3]=i;s[e+8>>3]=r*-2.0-i;A=2;break}else A=0}else A=Ic(A,e)|0}while(0);return A|0}function Ic(A,e){A=A|0;e=e|0;var i=0.0,r=0.0;r=+s[A+8>>3];i=+s[A>>3];if(r<1.0e-07&r>-1.0e-07)A=i<1.0e-07&i>-1.0e-07?4:0;else{s[e>>3]=-i/r;A=1}return A|0}function Zc(A){A=A|0;L2(a[A>>2]|0);L2(A);return}function Gc(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0;r=a[A+4>>2]|0;t=(r*3|0)+-2|0;i=a[47518]|0;if((t|0)>(a[47517]|0)){if(!i)i=Q2(t<<4)|0;else i=W2(i,t<<4)|0;a[47518]=i;a[47517]=t;l=i;n=i}else{l=i;n=i}f=a[A>>2]|0;a[l>>2]=a[f>>2];a[l+4>>2]=a[f+4>>2];a[l+8>>2]=a[f+8>>2];a[l+12>>2]=a[f+12>>2];z6(l+16|0,f|0,16)|0;r=r+-1|0;i=1;A=2;while(1){if((i|0)>=(r|0))break;c=l+(A+2<<4)|0;s=l+(A+1<<4)|0;u=l+(A<<4)|0;b=f+(i<<4)|0;a[u>>2]=a[b>>2];a[u+4>>2]=a[b+4>>2];a[u+8>>2]=a[b+8>>2];a[u+12>>2]=a[b+12>>2];z6(s|0,b|0,16)|0;a[c>>2]=a[s>>2];a[c+4>>2]=a[s+4>>2];a[c+8>>2]=a[s+8>>2];a[c+12>>2]=a[s+12>>2];i=i+1|0;A=A+3|0}b=l+(A<<4)|0;u=f+(i<<4)|0;a[b>>2]=a[u>>2];a[b+4>>2]=a[u+4>>2];a[b+8>>2]=a[u+8>>2];a[b+12>>2]=a[u+12>>2];z6(l+(A+1<<4)|0,u|0,16)|0;a[e+4>>2]=t;a[e>>2]=n;return}function mc(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0;r=+s[e+8>>3];f=+s[e>>3];r=(+s[i>>3]-f)*(+s[A+8>>3]-r)-(+s[A>>3]-f)*(+s[i+8>>3]-r);return(r>.0001?1:(r<-.0001)<<31>>31)|0}function Qc(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0,a=0.0;f=+s[A>>3];a=+s[e>>3];if(f!=a){r=+s[i>>3];if(!(f>3];f=+s[i+8>>3];r=+s[e+8>>3];if(!(a>2]=a[A>>2];a[n+4>>2]=a[A+4>>2];a[n+8>>2]=a[A+8>>2];a[n+12>>2]=a[A+12>>2];a[l>>2]=a[e>>2];a[l+4>>2]=a[e+4>>2];a[l+8>>2]=a[e+8>>2];a[l+12>>2]=a[e+12>>2];a[t>>2]=a[i>>2];a[t+4>>2]=a[i+4>>2];a[t+8>>2]=a[i+8>>2];a[t+12>>2]=a[i+12>>2];c=mc(n,l,t)|0;if((c|0)==0?(a[n>>2]=a[A>>2],a[n+4>>2]=a[A+4>>2],a[n+8>>2]=a[A+8>>2],a[n+12>>2]=a[A+12>>2],a[l>>2]=a[e>>2],a[l+4>>2]=a[e+4>>2],a[l+8>>2]=a[e+8>>2],a[l+12>>2]=a[e+12>>2],a[t>>2]=a[i>>2],a[t+4>>2]=a[i+4>>2],a[t+8>>2]=a[i+8>>2],a[t+12>>2]=a[i+12>>2],(Qc(n,l,t)|0)!=0):0)f=1;else s=3;do{if((s|0)==3){a[n>>2]=a[A>>2];a[n+4>>2]=a[A+4>>2];a[n+8>>2]=a[A+8>>2];a[n+12>>2]=a[A+12>>2];a[l>>2]=a[e>>2];a[l+4>>2]=a[e+4>>2];a[l+8>>2]=a[e+8>>2];a[l+12>>2]=a[e+12>>2];a[t>>2]=a[r>>2];a[t+4>>2]=a[r+4>>2];a[t+8>>2]=a[r+8>>2];a[t+12>>2]=a[r+12>>2];f=mc(n,l,t)|0;if((f|0)==0?(a[n>>2]=a[A>>2],a[n+4>>2]=a[A+4>>2],a[n+8>>2]=a[A+8>>2],a[n+12>>2]=a[A+12>>2],a[l>>2]=a[e>>2],a[l+4>>2]=a[e+4>>2],a[l+8>>2]=a[e+8>>2],a[l+12>>2]=a[e+12>>2],a[t>>2]=a[r>>2],a[t+4>>2]=a[r+4>>2],a[t+8>>2]=a[r+8>>2],a[t+12>>2]=a[r+12>>2],Qc(n,l,t)|0):0){f=1;break}a[n>>2]=a[i>>2];a[n+4>>2]=a[i+4>>2];a[n+8>>2]=a[i+8>>2];a[n+12>>2]=a[i+12>>2];a[l>>2]=a[r>>2];a[l+4>>2]=a[r+4>>2];a[l+8>>2]=a[r+8>>2];a[l+12>>2]=a[r+12>>2];a[t>>2]=a[A>>2];a[t+4>>2]=a[A+4>>2];a[t+8>>2]=a[A+8>>2];a[t+12>>2]=a[A+12>>2];A=mc(n,l,t)|0;a[n>>2]=a[i>>2];a[n+4>>2]=a[i+4>>2];a[n+8>>2]=a[i+8>>2];a[n+12>>2]=a[i+12>>2];a[l>>2]=a[r>>2];a[l+4>>2]=a[r+4>>2];a[l+8>>2]=a[r+8>>2];a[l+12>>2]=a[r+12>>2];a[t>>2]=a[e>>2];a[t+4>>2]=a[e+4>>2];a[t+8>>2]=a[e+8>>2];a[t+12>>2]=a[e+12>>2];s=(U(f,c)|0)<0;f=(U(mc(n,l,t)|0,A)|0)>>>31;f=s?f:0}}while(0);k=b;return f|0}function yc(A,e){A=A|0;e=e|0;var i=0.0,r=0.0;i=+s[A>>3]-+s[e>>3];r=+s[A+8>>3]-+s[e+8>>3];return+(r*r+i*i)}function Wc(A){A=A|0;a[A+24>>2]=zc(a[A+4>>2]|0)|0;Yc(A);return}function zc(A){A=A|0;var e=0,i=0,r=0,f=0;r=A+2|0;f=Q2(r<<2)|0;e=y2(U(A,A)|0,8)|0;i=0;while(1){if((i|0)>=(A|0))break;a[f+(i<<2)>>2]=e;e=e+(A<<3)|0;i=i+1|0}while(1){if((A|0)>=(r|0))break;a[f+(A<<2)>>2]=0;A=A+1|0}return f|0}function Yc(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0.0;o=k;k=k+32|0;l=o+16|0;n=o;t=a[A+4>>2]|0;b=a[A+8>>2]|0;u=a[A+16>>2]|0;w=a[A+20>>2]|0;i=a[A+24>>2]|0;e=0;while(1){if((e|0)>=(t|0))break;h=a[w+(e<<2)>>2]|0;r=b+(e<<4)|0;f=b+(h<<4)|0;a[n>>2]=a[r>>2];a[n+4>>2]=a[r+4>>2];a[n+8>>2]=a[r+8>>2];a[n+12>>2]=a[r+12>>2];a[l>>2]=a[f>>2];a[l+4>>2]=a[f+4>>2];a[l+8>>2]=a[f+8>>2];a[l+12>>2]=a[f+12>>2];d=+Dc(n,l);f=a[i+(e<<2)>>2]|0;s[f+(h<<3)>>3]=d;s[(a[i+(h<<2)>>2]|0)+(e<<3)>>3]=d;A=e+-1|0;A=(h|0)==(A|0)?e+-2|0:A;while(1){if((A|0)<=-1)break;if((Mc(e,A,b,u,w)|0?Mc(A,e,b,u,w)|0:0)?(c=b+(A<<4)|0,a[n>>2]=a[r>>2],a[n+4>>2]=a[r+4>>2],a[n+8>>2]=a[r+8>>2],a[n+12>>2]=a[r+12>>2],a[l>>2]=a[c>>2],a[l+4>>2]=a[c+4>>2],a[l+8>>2]=a[c+8>>2],a[l+12>>2]=a[c+12>>2],Fc(n,l,t,t,t,b,u)|0):0){a[n>>2]=a[r>>2];a[n+4>>2]=a[r+4>>2];a[n+8>>2]=a[r+8>>2];a[n+12>>2]=a[r+12>>2];a[l>>2]=a[c>>2];a[l+4>>2]=a[c+4>>2];a[l+8>>2]=a[c+8>>2];a[l+12>>2]=a[c+12>>2];d=+Dc(n,l);s[f+(A<<3)>>3]=d;s[(a[i+(A<<2)>>2]|0)+(e<<3)>>3]=d}A=A+-1|0}e=e+1|0}k=o;return}function Dc(A,e){A=A|0;e=e|0;var i=0.0,r=0,f=0,n=0;r=k;k=k+32|0;f=r+16|0;n=r;a[n>>2]=a[A>>2];a[n+4>>2]=a[A+4>>2];a[n+8>>2]=a[A+8>>2];a[n+12>>2]=a[A+12>>2];a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];i=+z(+ +yc(n,f));k=r;return+i}function Mc(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0;n=k;k=k+64|0;l=n+48|0;t=n+32|0;c=n+16|0;s=n;u=i+(a[f+(A<<2)>>2]<<4)|0;b=i+(A<<4)|0;r=i+(a[r+(A<<2)>>2]<<4)|0;f=i+(e<<4)|0;a[s>>2]=a[u>>2];a[s+4>>2]=a[u+4>>2];a[s+8>>2]=a[u+8>>2];a[s+12>>2]=a[u+12>>2];a[c>>2]=a[b>>2];a[c+4>>2]=a[b+4>>2];a[c+8>>2]=a[b+8>>2];a[c+12>>2]=a[b+12>>2];a[t>>2]=a[r>>2];a[t+4>>2]=a[r+4>>2];a[t+8>>2]=a[r+8>>2];a[t+12>>2]=a[r+12>>2];a[l>>2]=a[f>>2];a[l+4>>2]=a[f+4>>2];a[l+8>>2]=a[f+8>>2];a[l+12>>2]=a[f+12>>2];f=Vc(s,c,t,l)|0;k=n;return f|0}function Fc(A,e,i,r,f,n,l){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;var t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0;o=k;k=k+64|0;u=o+48|0;b=o+32|0;s=o+16|0;c=o;t=0;while(1){if((t|0)>=(i|0)){w=4;break}d=n+(t<<4)|0;h=n+(a[l+(t<<2)>>2]<<4)|0;a[c>>2]=a[A>>2];a[c+4>>2]=a[A+4>>2];a[c+8>>2]=a[A+8>>2];a[c+12>>2]=a[A+12>>2];a[s>>2]=a[e>>2];a[s+4>>2]=a[e+4>>2];a[s+8>>2]=a[e+8>>2];a[s+12>>2]=a[e+12>>2];a[b>>2]=a[d>>2];a[b+4>>2]=a[d+4>>2];a[b+8>>2]=a[d+8>>2];a[b+12>>2]=a[d+12>>2];a[u>>2]=a[h>>2];a[u+4>>2]=a[h+4>>2];a[u+8>>2]=a[h+8>>2];a[u+12>>2]=a[h+12>>2];if(!(Lc(c,s,b,u)|0))t=t+1|0;else{r=0;break}}A:do{if((w|0)==4)while(1){if((r|0)>=(f|0)){r=1;break A}h=n+(r<<4)|0;d=n+(a[l+(r<<2)>>2]<<4)|0;a[c>>2]=a[A>>2];a[c+4>>2]=a[A+4>>2];a[c+8>>2]=a[A+8>>2];a[c+12>>2]=a[A+12>>2];a[s>>2]=a[e>>2];a[s+4>>2]=a[e+4>>2];a[s+8>>2]=a[e+8>>2];a[s+12>>2]=a[e+12>>2];a[b>>2]=a[h>>2];a[b+4>>2]=a[h+4>>2];a[b+8>>2]=a[h+8>>2];a[b+12>>2]=a[h+12>>2];a[u>>2]=a[d>>2];a[u+4>>2]=a[d+4>>2];a[u+8>>2]=a[d+8>>2];a[u+12>>2]=a[d+12>>2];if(!(Lc(c,s,b,u)|0)){r=r+1|0;w=4}else{r=0;break}}}while(0);k=o;return r|0}function Vc(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0;n=k;k=k+48|0;l=n+32|0;t=n+16|0;c=n;a[c>>2]=a[r>>2];a[c+4>>2]=a[r+4>>2];a[c+8>>2]=a[r+8>>2];a[c+12>>2]=a[r+12>>2];a[t>>2]=a[A>>2];a[t+4>>2]=a[A+4>>2];a[t+8>>2]=a[A+8>>2];a[t+12>>2]=a[A+12>>2];a[l>>2]=a[e>>2];a[l+4>>2]=a[e+4>>2];a[l+8>>2]=a[e+8>>2];a[l+12>>2]=a[e+12>>2];f=mc(c,t,l)|0;a[c>>2]=a[r>>2];a[c+4>>2]=a[r+4>>2];a[c+8>>2]=a[r+8>>2];a[c+12>>2]=a[r+12>>2];a[t>>2]=a[e>>2];a[t+4>>2]=a[e+4>>2];a[t+8>>2]=a[e+8>>2];a[t+12>>2]=a[e+12>>2];a[l>>2]=a[i>>2];a[l+4>>2]=a[i+4>>2];a[l+8>>2]=a[i+8>>2];a[l+12>>2]=a[i+12>>2];r=mc(c,t,l)|0;a[c>>2]=a[A>>2];a[c+4>>2]=a[A+4>>2];a[c+8>>2]=a[A+8>>2];a[c+12>>2]=a[A+12>>2];a[t>>2]=a[e>>2];a[t+4>>2]=a[e+4>>2];a[t+8>>2]=a[e+8>>2];a[t+12>>2]=a[e+12>>2];a[l>>2]=a[i>>2];a[l+4>>2]=a[i+4>>2];a[l+8>>2]=a[i+8>>2];a[l+12>>2]=a[i+12>>2];i=(mc(c,t,l)|0)>0;k=n;return(i?r|f:r&f)>>>31^1|0}function Jc(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0;B=k;k=k+80|0;t=B+64|0;l=B+48|0;n=B+32|0;c=B+16|0;w=B;o=a[A+4>>2]|0;h=a[A+8>>2]|0;d=a[A+16>>2]|0;b=a[A+20>>2]|0;u=Q2((o<<3)+16|0)|0;if((e|0)==-2222){a[t>>2]=a[i>>2];a[t+4>>2]=a[i+4>>2];a[t+8>>2]=a[i+8>>2];a[t+12>>2]=a[i+12>>2];e=pc(A,t)|0}if((e|0)>-1){A=a[A+12>>2]|0;f=a[A+(e+1<<2)>>2]|0;A=a[A+(e<<2)>>2]|0}else{f=o;A=o}e=0;while(1){if((e|0)>=(A|0)){e=A;break}v=h+(e<<4)|0;a[w>>2]=a[v>>2];a[w+4>>2]=a[v+4>>2];a[w+8>>2]=a[v+8>>2];a[w+12>>2]=a[v+12>>2];v=h+(a[b+(e<<2)>>2]<<4)|0;g=h+(a[d+(e<<2)>>2]<<4)|0;a[c>>2]=a[v>>2];a[c+4>>2]=a[v+4>>2];a[c+8>>2]=a[v+8>>2];a[c+12>>2]=a[v+12>>2];a[n>>2]=a[w>>2];a[n+4>>2]=a[w+4>>2];a[n+8>>2]=a[w+8>>2];a[n+12>>2]=a[w+12>>2];a[l>>2]=a[g>>2];a[l+4>>2]=a[g+4>>2];a[l+8>>2]=a[g+8>>2];a[l+12>>2]=a[g+12>>2];a[t>>2]=a[i>>2];a[t+4>>2]=a[i+4>>2];a[t+8>>2]=a[i+8>>2];a[t+12>>2]=a[i+12>>2];if((Vc(c,n,l,t)|0)!=0?(a[l>>2]=a[i>>2],a[l+4>>2]=a[i+4>>2],a[l+8>>2]=a[i+8>>2],a[l+12>>2]=a[i+12>>2],a[t>>2]=a[w>>2],a[t+4>>2]=a[w+4>>2],a[t+8>>2]=a[w+8>>2],a[t+12>>2]=a[w+12>>2],(Fc(l,t,A,f,o,h,d)|0)!=0):0){a[l>>2]=a[i>>2];a[l+4>>2]=a[i+4>>2];a[l+8>>2]=a[i+8>>2];a[l+12>>2]=a[i+12>>2];a[t>>2]=a[w>>2];a[t+4>>2]=a[w+4>>2];a[t+8>>2]=a[w+8>>2];a[t+12>>2]=a[w+12>>2];r=+Dc(l,t)}else r=0.0;s[u+(e<<3)>>3]=r;e=e+1|0}while(1){if((e|0)>=(f|0)){e=f;break}s[u+(e<<3)>>3]=0.0;e=e+1|0}while(1){if((e|0)>=(o|0))break;g=h+(e<<4)|0;a[w>>2]=a[g>>2];a[w+4>>2]=a[g+4>>2];a[w+8>>2]=a[g+8>>2];a[w+12>>2]=a[g+12>>2];g=h+(a[b+(e<<2)>>2]<<4)|0;v=h+(a[d+(e<<2)>>2]<<4)|0;a[c>>2]=a[g>>2];a[c+4>>2]=a[g+4>>2];a[c+8>>2]=a[g+8>>2];a[c+12>>2]=a[g+12>>2];a[n>>2]=a[w>>2];a[n+4>>2]=a[w+4>>2];a[n+8>>2]=a[w+8>>2];a[n+12>>2]=a[w+12>>2];a[l>>2]=a[v>>2];a[l+4>>2]=a[v+4>>2];a[l+8>>2]=a[v+8>>2];a[l+12>>2]=a[v+12>>2];a[t>>2]=a[i>>2];a[t+4>>2]=a[i+4>>2];a[t+8>>2]=a[i+8>>2];a[t+12>>2]=a[i+12>>2];if((Vc(c,n,l,t)|0)!=0?(a[l>>2]=a[i>>2],a[l+4>>2]=a[i+4>>2],a[l+8>>2]=a[i+8>>2],a[l+12>>2]=a[i+12>>2],a[t>>2]=a[w>>2],a[t+4>>2]=a[w+4>>2],a[t+8>>2]=a[w+8>>2],a[t+12>>2]=a[w+12>>2],(Fc(l,t,A,f,o,h,d)|0)!=0):0){a[l>>2]=a[i>>2];a[l+4>>2]=a[i+4>>2];a[l+8>>2]=a[i+8>>2];a[l+12>>2]=a[i+12>>2];a[t>>2]=a[w>>2];a[t+4>>2]=a[w+4>>2];a[t+8>>2]=a[w+8>>2];a[t+12>>2]=a[w+12>>2];r=+Dc(l,t)}else r=0.0;s[u+(e<<3)>>3]=r;e=e+1|0}s[u+(o<<3)>>3]=0.0;s[u+(o+1<<3)>>3]=0.0;k=B;return u|0}function pc(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;b=k;k=k+32|0;f=b+8|0;r=b;l=b+24|0;t=A+8|0;c=A+12|0;s=l+4|0;i=0;while(1){if((i|0)>=(a[A>>2]|0)){i=-1111;break}w=a[c>>2]|0;u=a[w+(i<<2)>>2]|0;a[l>>2]=(a[t>>2]|0)+(u<<4);n=i+1|0;a[s>>2]=(a[w+(n<<2)>>2]|0)-u;a[r>>2]=a[l>>2];a[r+4>>2]=a[l+4>>2];a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];if(!(Dt(r,f)|0))i=n;else break}k=b;return i|0}function Nc(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0;g=k;k=k+64|0;u=g+48|0;b=g+32|0;o=g+16|0;w=g;d=a[f+4>>2]|0;B=a[f+8>>2]|0;h=a[f+16>>2]|0;n=(r|0)<0;do{if((e|0)<0)if(n){n=0;t=0;f=0;l=0}else{e=a[f+12>>2]|0;f=0;l=0;t=r;c=e;e=e+(r<<2)|0;s=9}else{if(n){s=a[f+12>>2]|0;f=0;l=0;t=e;c=s;e=s+(e<<2)|0;s=9;break}n=a[f+12>>2]|0;if((e|0)>(r|0)){f=a[n+(r+1<<2)>>2]|0;l=a[n+(r<<2)>>2]|0;t=e;c=n;e=n+(e<<2)|0;s=9;break}else{f=a[n+(e+1<<2)>>2]|0;l=a[n+(e<<2)>>2]|0;t=r;c=n;e=n+(r<<2)|0;s=9;break}}}while(0);if((s|0)==9){n=a[c+(t+1<<2)>>2]|0;t=a[e>>2]|0}e=0;while(1){if((e|0)>=(l|0)){s=13;break}c=B+(e<<4)|0;r=B+(a[h+(e<<2)>>2]<<4)|0;a[w>>2]=a[A>>2];a[w+4>>2]=a[A+4>>2];a[w+8>>2]=a[A+8>>2];a[w+12>>2]=a[A+12>>2];a[o>>2]=a[i>>2];a[o+4>>2]=a[i+4>>2];a[o+8>>2]=a[i+8>>2];a[o+12>>2]=a[i+12>>2];a[b>>2]=a[c>>2];a[b+4>>2]=a[c+4>>2];a[b+8>>2]=a[c+8>>2];a[b+12>>2]=a[c+12>>2];a[u>>2]=a[r>>2];a[u+4>>2]=a[r+4>>2];a[u+8>>2]=a[r+8>>2];a[u+12>>2]=a[r+12>>2];if(!(Lc(w,o,b,u)|0))e=e+1|0;else{n=0;break}}A:do{if((s|0)==13){while(1){if((f|0)>=(t|0))break;r=B+(f<<4)|0;s=B+(a[h+(f<<2)>>2]<<4)|0;a[w>>2]=a[A>>2];a[w+4>>2]=a[A+4>>2];a[w+8>>2]=a[A+8>>2];a[w+12>>2]=a[A+12>>2];a[o>>2]=a[i>>2];a[o+4>>2]=a[i+4>>2];a[o+8>>2]=a[i+8>>2];a[o+12>>2]=a[i+12>>2];a[b>>2]=a[r>>2];a[b+4>>2]=a[r+4>>2];a[b+8>>2]=a[r+8>>2];a[b+12>>2]=a[r+12>>2];a[u>>2]=a[s>>2];a[u+4>>2]=a[s+4>>2];a[u+8>>2]=a[s+8>>2];a[u+12>>2]=a[s+12>>2];if(!(Lc(w,o,b,u)|0)){f=f+1|0;s=13}else{n=0;break A}}while(1){if((n|0)>=(d|0)){n=1;break A}r=B+(n<<4)|0;s=B+(a[h+(n<<2)>>2]<<4)|0;a[w>>2]=a[A>>2];a[w+4>>2]=a[A+4>>2];a[w+8>>2]=a[A+8>>2];a[w+12>>2]=a[A+12>>2];a[o>>2]=a[i>>2];a[o+4>>2]=a[i+4>>2];a[o+8>>2]=a[i+8>>2];a[o+12>>2]=a[i+12>>2];a[b>>2]=a[r>>2];a[b+4>>2]=a[r+4>>2];a[b+8>>2]=a[r+8>>2];a[b+12>>2]=a[r+12>>2];a[u>>2]=a[s>>2];a[u+4>>2]=a[s+4>>2];a[u+8>>2]=a[s+8>>2];a[u+12>>2]=a[s+12>>2];if(!(Lc(w,o,b,u)|0))n=n+1|0;else{n=0;break}}}}while(0);k=g;return n|0}function Rc(A){A=A|0;return Xc(A,0,0)|0}function Xc(A,e,i){A=A|0;e=e|0;i=i|0;return Hc(A,e,i,0)|0}function Hc(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0;if(!e){n=Q2(496)|0;if(!n)n=0;else{a[n+12>>2]=35;a[n+16>>2]=107;a[n+20>>2]=105;e=35;l=6}}else{n=m5[a[e>>2]&63](496)|0;if(!n)n=0;else{l=a[e>>2]|0;a[n+12>>2]=l;a[n+16>>2]=a[e+4>>2];a[n+20>>2]=a[e+8>>2];e=l;l=6}}do{if((l|0)==6){a[n+8>>2]=0;a[n+32>>2]=0;a[n+376>>2]=16;c=n+12|0;t=m5[e&63](256)|0;e=n+388|0;a[e>>2]=t;if(!t){F5[a[n+20>>2]&127](n);n=0;break}l=m5[a[c>>2]&63](1024)|0;t=n+44|0;a[t>>2]=l;if(!l){i=n+20|0;F5[a[i>>2]&127](a[e>>2]|0);F5[a[i>>2]&127](n);n=0;break}a[n+48>>2]=l+1024;if(!f){f=Uc(c)|0;a[n+352>>2]=f;if(!f){i=n+20|0;F5[a[i>>2]&127](a[t>>2]|0);F5[a[i>>2]&127](a[e>>2]|0);F5[a[i>>2]&127](n);n=0;break}}else a[n+352>>2]=f;a[n+372>>2]=0;a[n+364>>2]=0;a[n+300>>2]=0;a[n+464>>2]=0;a[n+460>>2]=0;a[n+124>>2]=0;a[n+244>>2]=0;e=n+468|0;r[e>>0]=33;l=n+232|0;r[l>>0]=0;r[n+233>>0]=0;a[n+392>>2]=0;a[n+396>>2]=0;r[n+400>>0]=0;f=n+228|0;a[f>>2]=0;xc(n+412|0,c);xc(n+436|0,c);Tc(n,A);if(A|0?(a[f>>2]|0)==0:0){jc(n);n=0;break}if(!i){a[n+224>>2]=xq()|0;break}else{r[l>>0]=1;a[n+224>>2]=C0()|0;r[e>>0]=r[i>>0]|0;break}}}while(0);return n|0}function Uc(A){A=A|0;var e=0;e=m5[a[A>>2]&63](188)|0;if(e|0){xc(e+80|0,A);xc(e+104|0,A);$s(e,A);$s(e+20|0,A);$s(e+40|0,A);$s(e+60|0,A);r[e+131>>0]=0;$s(e+132|0,A);a[e+152>>2]=0;a[e+156>>2]=0;r[e+160>>0]=0;A=e+164|0;a[A>>2]=0;a[A+4>>2]=0;a[A+8>>2]=0;a[A+12>>2]=0;a[A+16>>2]=0;a[A+20>>2]=0;r[e+128>>0]=1;r[e+129>>0]=0;r[e+130>>0]=0}return e|0}function xc(A,e){A=A|0;e=e|0;a[A>>2]=0;a[A+4>>2]=0;a[A+8>>2]=0;a[A+12>>2]=0;a[A+16>>2]=0;a[A+20>>2]=e;return}function Tc(A,e){A=A|0;e=e|0;var i=0,n=0,l=0;a[A+276>>2]=56;y0(A+252|0);if(e|0)a[A+228>>2]=As(e,A+12|0)|0;a[A+356>>2]=0;Y$(A+148|0,A+144|0,0)|0;a[A>>2]=0;a[A+4>>2]=0;e=A+116|0;n=A+52|0;l=n+64|0;do{a[n>>2]=0;n=n+4|0}while((n|0)<(l|0));a[e>>2]=A;a[A+120>>2]=0;e=A+128|0;a[e>>2]=0;a[e+4>>2]=0;a[e+8>>2]=0;a[e+12>>2]=0;e=a[A+8>>2]|0;a[A+24>>2]=e;a[A+28>>2]=e;a[A+36>>2]=0;a[A+40>>2]=0;e=A+312|0;n=A+404|0;a[n>>2]=0;a[n+4>>2]=0;n=A+280|0;i=A+304|0;a[n>>2]=0;a[n+4>>2]=0;a[n+8>>2]=0;a[n+12>>2]=0;a[n+16>>2]=0;n=e;l=n+36|0;do{a[n>>2]=0;n=n+4|0}while((n|0)<(l|0));f[e+36>>1]=0;r[i>>0]=1;a[A+308>>2]=0;a[A+360>>2]=0;a[A+368>>2]=0;a[A+380>>2]=0;a[A+236>>2]=0;a[A+248>>2]=0;a[A+240>>2]=0;a[A+472>>2]=0;a[A+476>>2]=0;r[A+484>>0]=0;r[A+485>>0]=0;a[A+488>>2]=0;a[A+492>>2]=0;return}function jc(A){A=A|0;var e=0,i=0,f=0,n=0,l=0;if(A|0){i=A+364|0;n=A+20|0;e=a[A+360>>2]|0;while(1){if(!e){e=a[i>>2]|0;if(!e)break;a[i>>2]=0}l=a[e>>2]|0;F5[a[n>>2]&127](a[e+36>>2]|0);Pc(a[e+44>>2]|0,A);F5[a[n>>2]&127](e);e=l}i=A+300|0;e=a[A+296>>2]|0;while(1){if(!e){e=a[i>>2]|0;if(!e)break;a[i>>2]=0}l=a[e+8>>2]|0;F5[a[n>>2]&127](e);e=l}Pc(a[A+372>>2]|0,A);Pc(a[A+368>>2]|0,A);Sc(A+412|0);Sc(A+436|0);e=A+12|0;F5[a[n>>2]&127](a[A+228>>2]|0);if((r[A+484>>0]|0)==0?(f=a[A+352>>2]|0,f|0):0)Oc(f,(a[A+472>>2]|0)==0&1,e);F5[a[n>>2]&127](a[A+388>>2]|0);F5[a[n>>2]&127](a[A+460>>2]|0);F5[a[n>>2]&127](a[A+8>>2]|0);F5[a[n>>2]&127](a[A+44>>2]|0);F5[a[n>>2]&127](a[A+392>>2]|0);F5[a[n>>2]&127](a[A+236>>2]|0);e=a[A+248>>2]|0;if(e|0)F5[e&127](a[A+240>>2]|0);F5[a[n>>2]&127](A)}return}function Pc(A,e){A=A|0;e=e|0;var i=0;e=e+20|0;while(1){if(!A)break;i=a[A+4>>2]|0;F5[a[e>>2]&127](a[A+16>>2]|0);F5[a[e>>2]&127](A);A=i}return}function Sc(A){A=A|0;var e=0,i=0,r=0;i=A+20|0;e=a[A>>2]|0;while(1){if(!e)break;r=a[e>>2]|0;F5[a[(a[i>>2]|0)+8>>2]&127](e);e=r}e=a[A+4>>2]|0;while(1){if(!e)break;r=a[e>>2]|0;F5[a[(a[i>>2]|0)+8>>2]&127](e);e=r}return}function Oc(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0;l=k;k=k+16|0;f=l;n=A+20|0;Kc(f,n);i=i+8|0;while(1){r=_c(f)|0;if(!r)break;if(!(a[r+16>>2]|0))continue;F5[a[i>>2]&127](a[r+20>>2]|0)}qc(A);qc(A+132|0);qc(n);qc(A+40|0);qc(A+60|0);Sc(A+80|0);Sc(A+104|0);if(e<<24>>24){F5[a[i>>2]&127](a[A+184>>2]|0);F5[a[i>>2]&127](a[A+164>>2]|0)}F5[a[i>>2]&127](A);k=l;return}function Kc(A,e){A=A|0;e=e|0;var i=0;i=a[e>>2]|0;a[A>>2]=i;a[A+4>>2]=i+(a[e+8>>2]<<2);return}function _c(A){A=A|0;var e=0,i=0,r=0;i=a[A+4>>2]|0;r=a[A>>2]|0;do{if((r|0)==(i|0)){e=0;break}e=r;r=r+4|0;a[A>>2]=r;e=a[e>>2]|0}while(!(e|0));return e|0}function qc(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;i=A+8|0;r=A+16|0;e=0;while(1){f=a[(a[r>>2]|0)+8>>2]|0;n=a[A>>2]|0;if(e>>>0>=(a[i>>2]|0)>>>0)break;F5[f&127](a[n+(e<<2)>>2]|0);e=e+1|0}F5[f&127](n);return}function $c(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0;f=es(A)|0;if(!f){a[A+276>>2]=57;f=is(A,e,i,r)|0}return f|0}function As(A,e){A=A|0;e=e|0;var i=0,f=0;i=0;do{f=i;i=i+1|0}while((r[A+f>>0]|0)!=0);e=m5[a[e>>2]&63](i)|0;if(!e)e=0;else W6(e|0,A|0,i|0)|0;return e|0}function es(A){A=A|0;var e=0;e=A+228|0;if(!(y5[(r[A+232>>0]<<24>>24?38:37)&63](A+148|0,A+144|0,a[e>>2]|0)|0))A=qs(A,a[e>>2]|0)|0;else A=0;return A|0}function is(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0;n=k;k=k+16|0;l=n;a[l>>2]=e;c=A+144|0;t=a[c>>2]|0;t=W5[a[t>>2]&127](t,e,i,l)|0;f=rs(A,a[c>>2]|0,e,i,t,a[l>>2]|0,f,(r[A+480>>0]|0)==0&1)|0;k=n;return f|0}function rs(A,e,i,f,l,t,c,s){A=A|0;e=e|0;i=i|0;f=f|0;l=l|0;t=t|0;c=c|0;s=s|0;var b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0,U=0,x=0,T=0,j=0,P=0,S=0,O=0,K=0,_=0,q=0,$=0,AA=0,eA=0,iA=0,rA=0,fA=0,aA=0,nA=0,lA=0,tA=0,cA=0,sA=0,bA=0,uA=0,wA=0,kA=0,oA=0,hA=0,dA=0,BA=0,gA=0,vA=0,EA=0,CA=0,IA=0,ZA=0,GA=0,mA=0,QA=0,LA=0,yA=0,WA=0,zA=0,YA=0;YA=k;k=k+16|0;yA=YA;a[yA>>2]=t;d=a[A+352>>2]|0;B=A+144|0;if((a[B>>2]|0)==(e|0)){o=A+284|0;h=A+288|0;wA=A+296|0}else{wA=A+296|0;h=a[wA>>2]|0;o=h;h=h+4|0}g=s<<24>>24!=0;oA=A+252|0;v=A+80|0;E=A+476|0;C=A+84|0;I=A+320|0;Z=A+412|0;G=A+316|0;m=A+424|0;Q=A+428|0;L=A+324|0;dA=A+4|0;y=A+485|0;W=d+132|0;z=A+312|0;gA=d+129|0;Y=d+128|0;D=d+80|0;M=d+92|0;F=d+96|0;V=A+136|0;J=A+88|0;p=A+488|0;EA=A+112|0;CA=d+131|0;IA=A+116|0;ZA=d+130|0;GA=A+108|0;mA=A+356|0;N=A+340|0;R=A+132|0;X=A+344|0;H=A+348|0;U=A+328|0;x=A+349|0;T=A+420|0;j=d+120|0;P=d+116|0;S=A+92|0;O=A+472|0;K=A+336|0;_=A+332|0;q=A+96|0;$=A+256|0;AA=A+464|0;eA=A+460|0;iA=d+160|0;rA=d+184|0;fA=d+180|0;aA=d+164|0;nA=A+128|0;lA=A+12|0;tA=A+16|0;cA=A+268|0;sA=A+120|0;bA=d+176|0;uA=d+168|0;w=e;u=i;e=l;A:while(1){a[o>>2]=u;i=a[yA>>2]|0;a[h>>2]=i;t=i;e:do{if((e|0)<1){if(g&(e|0)!=0){b=7;break A}switch(e|0){case-1:{t=5;b=280;break A}case 0:{b=9;break A}case-2:{t=6;break A}case-4:{b=10;break A}case-15:{e=15;break e}default:{}}a[yA>>2]=f;e=0-e|0;t=f}}while(0);l=z5[a[oA>>2]&127](oA,e,u,t,w)|0;e:do{switch(l|0){case 2:{b=58;break A}case-1:{b=184;break A}case 1:{t=fs(A,0,u,a[yA>>2]|0)|0;if(t|0){b=280;break A}t=a[B>>2]|0;break}case 4:{if(!(a[C>>2]|0))t=1;else{b=as(Z,w,u,a[yA>>2]|0)|0;a[G>>2]=b;if(!b){t=1;b=280;break A}a[Q>>2]=a[m>>2];a[L>>2]=0;t=0}a[I>>2]=0;b=274;break}case 7:{t=a[C>>2]|0;if(!t)b=275;else{R5[t&15](a[dA>>2]|0,a[G>>2]|0,a[I>>2]|0,a[L>>2]|0,1);a[G>>2]=0;ns(Z);t=w}break}case 57:{t=fs(A,1,u,a[yA>>2]|0)|0;if(t|0){b=280;break A}t=a[B>>2]|0;break}case 6:{r[y>>0]=0;b=ls(A,W,75395,36)|0;a[z>>2]=b;if(!b){t=1;b=280;break A}r[gA>>0]=1;if(!(a[C>>2]|0))b=33;else{if(!(W5[a[w+52>>2]&127](w,u,a[yA>>2]|0,o)|0)){t=32;b=280;break A}t=a[w+64>>2]|0;t=as(Z,w,u+t|0,(a[yA>>2]|0)+(0-t)|0)|0;if(!t){t=1;b=280;break A}ts(t);a[Q>>2]=a[m>>2];a[L>>2]=t;t=0;b=34}break}case 14:{b=33;break}case 8:{t=a[G>>2]|0;if(!t)t=1;else{R5[a[C>>2]&15](a[dA>>2]|0,t,a[I>>2]|0,a[L>>2]|0,0);ns(Z);t=0}if(!((a[I>>2]|0)==0?!(r[y>>0]|0):0)){i=r[gA>>0]|0;r[gA>>0]=1;do{if(a[p>>2]|0?a[EA>>2]|0:0){l=ls(A,W,75395,36)|0;if(!l){t=1;b=280;break A}if(!(r[y>>0]|0))e=l+20|0;else{e=l+20|0;a[e>>2]=a[mA>>2]}r[CA>>0]=0;if(!(z5[a[EA>>2]&127](a[IA>>2]|0,0,a[e>>2]|0,a[l+16>>2]|0,a[l+24>>2]|0)|0)){t=21;b=280;break A}if(!(r[CA>>0]|0)){if(a[I>>2]|0)break;r[gA>>0]=i;break}if(((r[ZA>>0]|0)==0?(kA=a[GA>>2]|0,kA|0):0)?(m5[kA&63](a[dA>>2]|0)|0)==0:0){t=22;b=280;break A}}}while(0);r[y>>0]=0}e=a[J>>2]|0;if(!e)b=274;else{F5[e&127](a[dA>>2]|0);t=w}break}case 34:{b=ss(A,w,u,a[yA>>2]|0)|0;a[N>>2]=b;if(!b){t=1;b=280;break A}else b=80;break}case 22:{b=bs(A,w,u,a[yA>>2]|0)|0;a[X>>2]=b;if(!b){t=1;b=280;break A}r[H>>0]=0;a[U>>2]=0;r[x>>0]=0;b=80;break}case 23:{r[H>>0]=1;a[U>>2]=142188;b=80;break}case 24:{r[x>>0]=1;a[U>>2]=142194;b=80;break}case 25:{a[U>>2]=142197;b=80;break}case 26:{a[U>>2]=142203;b=80;break}case 27:{a[U>>2]=142210;b=80;break}case 28:{a[U>>2]=142217;b=80;break}case 29:{a[U>>2]=142226;b=80;break}case 30:{a[U>>2]=142234;b=80;break}case 32:case 31:{if((r[Y>>0]|0)!=0?(a[R>>2]|0)!=0:0){if(!(us(Z,(a[U>>2]|0)==0?(l|0)==32?142243:142253:142255)|0)){t=1;b=280;break A}if(!(ws(Z,w,u,a[yA>>2]|0)|0)){t=1;b=280;break A}a[U>>2]=a[Q>>2];t=w}else b=275;break}case 36:case 35:{if(r[Y>>0]|0){if(!(ks(a[N>>2]|0,a[X>>2]|0,r[H>>0]|0,r[x>>0]|0,0,A)|0)){t=1;b=280;break A}if((a[R>>2]|0)!=0?(hA=a[U>>2]|0,(hA|0)!=0):0){switch(r[hA>>0]|0){case 40:{b=93;break}case 78:{if((r[hA+1>>0]|0)==79)b=93;break}default:{}}if((b|0)==93){b=0;t=a[m>>2]|0;if((t|0)==(a[T>>2]|0)){if(!((os(Z)|0)<<24>>24)){t=1;b=280;break A}t=a[m>>2]|0}a[m>>2]=t+1;r[t>>0]=41;t=a[m>>2]|0;if((t|0)==(a[T>>2]|0)){if(!((os(Z)|0)<<24>>24)){t=1;b=280;break A}t=a[m>>2]|0}a[m>>2]=t+1;r[t>>0]=0;a[U>>2]=a[Q>>2];a[Q>>2]=a[m>>2]}a[h>>2]=u;X5[a[R>>2]&15](a[dA>>2]|0,a[a[N>>2]>>2]|0,a[a[X>>2]>>2]|0,a[U>>2]|0,0,(l|0)==36&1);ns(Z);t=w}else b=275}else b=275;break}case 38:case 37:{if(r[Y>>0]|0){t=a[w+64>>2]|0;t=hs(A,w,r[H>>0]|0,u+t|0,(a[yA>>2]|0)+(0-t)|0,D)|0;if(t|0){b=280;break A}e=a[F>>2]|0;a[F>>2]=a[M>>2];if(!(ks(a[N>>2]|0,a[X>>2]|0,r[H>>0]|0,0,e,A)|0)){t=1;b=280;break A}if((a[R>>2]|0)!=0?(BA=a[U>>2]|0,(BA|0)!=0):0){switch(r[BA>>0]|0){case 40:{b=108;break}case 78:{if((r[BA+1>>0]|0)==79)b=108;break}default:{}}if((b|0)==108){b=0;t=a[m>>2]|0;if((t|0)==(a[T>>2]|0)){if(!((os(Z)|0)<<24>>24)){t=1;b=280;break A}t=a[m>>2]|0}a[m>>2]=t+1;r[t>>0]=41;t=a[m>>2]|0;if((t|0)==(a[T>>2]|0)){if(!((os(Z)|0)<<24>>24)){t=1;b=280;break A}t=a[m>>2]|0}a[m>>2]=t+1;r[t>>0]=0;a[U>>2]=a[Q>>2];a[Q>>2]=a[m>>2]}a[h>>2]=u;X5[a[R>>2]&15](a[dA>>2]|0,a[a[N>>2]>>2]|0,a[a[X>>2]>>2]|0,a[U>>2]|0,e,(l|0)==38&1);ns(Z);t=w}else b=275}else b=275;break}case 12:{if(r[Y>>0]|0){t=a[w+64>>2]|0;t=ds(A,w,u+t|0,(a[yA>>2]|0)+(0-t)|0)|0;e=a[z>>2]|0;i=a[j>>2]|0;if(e){a[e+4>>2]=i;a[(a[z>>2]|0)+8>>2]=(a[P>>2]|0)-(a[j>>2]|0);a[j>>2]=a[P>>2];if(!(a[V>>2]|0))e=1;else{a[h>>2]=u;e=a[z>>2]|0;H5[a[V>>2]&0](a[dA>>2]|0,a[e>>2]|0,n[e+33>>0]|0,a[e+4>>2]|0,a[e+8>>2]|0,a[mA>>2]|0,0,0,0);e=0}}else{a[P>>2]=i;e=1}if(!t){t=e;b=274}else{b=280;break A}}else b=275;break}case 5:{r[y>>0]=0;r[gA>>0]=1;if(!(a[C>>2]|0)){a[I>>2]=75395;t=1}else{b=a[w+64>>2]|0;b=as(Z,w,u+b|0,(a[yA>>2]|0)+(0-b)|0)|0;a[I>>2]=b;if(!b){t=1;b=280;break A}a[Q>>2]=a[m>>2];t=0}if((((r[ZA>>0]|0)==0?(a[p>>2]|0)==0:0)?(vA=a[GA>>2]|0,vA|0):0)?(m5[vA&63](a[dA>>2]|0)|0)==0:0){t=22;b=280;break A}if(!(a[z>>2]|0)){e=ls(A,W,75395,36)|0;a[z>>2]=e;if(!e){t=1;b=280;break A}a[e+24>>2]=0;b=133}else b=133;break}case 13:{t=1;b=133;break}case 15:{if(((r[Y>>0]|0)!=0?(a[z>>2]|0)!=0:0)?(a[V>>2]|0)!=0:0){a[h>>2]=u;t=a[z>>2]|0;H5[a[V>>2]&0](a[dA>>2]|0,a[t>>2]|0,n[t+33>>0]|0,0,0,a[t+20>>2]|0,a[t+16>>2]|0,a[t+24>>2]|0,0);t=w}else b=275;break}case 16:{if((r[Y>>0]|0)!=0?(a[z>>2]|0)!=0:0){l=as(D,w,u,a[yA>>2]|0)|0;a[(a[z>>2]|0)+28>>2]=l;if(!(a[(a[z>>2]|0)+28>>2]|0)){t=1;b=280;break A}a[F>>2]=a[M>>2];if(a[S>>2]|0){a[h>>2]=u;t=a[z>>2]|0;X5[a[S>>2]&15](a[dA>>2]|0,a[t>>2]|0,a[t+20>>2]|0,a[t+16>>2]|0,a[t+24>>2]|0,a[t+28>>2]|0);t=w;break e}if(a[V>>2]|0){a[h>>2]=u;t=a[z>>2]|0;H5[a[V>>2]&0](a[dA>>2]|0,a[t>>2]|0,0,0,0,a[t+20>>2]|0,a[t+16>>2]|0,a[t+24>>2]|0,a[t+28>>2]|0);t=w}else b=275}else b=275;break}case 9:{if(y5[a[w+44>>2]&63](w,u,a[yA>>2]|0)|0){a[z>>2]=0;b=275;break e}if(!(r[Y>>0]|0)){a[M>>2]=a[F>>2];a[z>>2]=0;b=275;break e}t=as(D,w,u,a[yA>>2]|0)|0;if(!t){t=1;b=280;break A}e=ls(A,d,t,36)|0;a[z>>2]=e;if(!e){t=1;b=280;break A}if((a[e>>2]|0)!=(t|0)){a[M>>2]=a[F>>2];a[z>>2]=0;b=275;break e}a[F>>2]=a[M>>2];a[(a[z>>2]|0)+24>>2]=0;r[(a[z>>2]|0)+33>>0]=0;if(!(a[O>>2]|0))t=(a[wA>>2]|0)!=0;else t=1;r[(a[z>>2]|0)+34>>0]=(t^1)&1;if(!(a[V>>2]|0))b=275;else t=w;break}case 10:{if(!(r[Y>>0]|0)){a[M>>2]=a[F>>2];a[z>>2]=0;b=275;break e}t=as(D,w,u,a[yA>>2]|0)|0;if(!t){t=1;b=280;break A}e=ls(A,W,t,36)|0;a[z>>2]=e;if(!e){t=1;b=280;break A}if((a[e>>2]|0)!=(t|0)){a[M>>2]=a[F>>2];a[z>>2]=0;b=275;break e}a[F>>2]=a[M>>2];a[(a[z>>2]|0)+24>>2]=0;r[(a[z>>2]|0)+33>>0]=1;if(!(a[O>>2]|0))t=(a[wA>>2]|0)!=0;else t=1;r[(a[z>>2]|0)+34>>0]=(t^1)&1;if(!(a[V>>2]|0))b=275;else t=w;break}case 18:{a[K>>2]=0;a[_>>2]=0;if(!(a[q>>2]|0))b=275;else{u=as(Z,w,u,a[yA>>2]|0)|0;a[_>>2]=u;if(!u){t=1;b=280;break A}a[Q>>2]=a[m>>2];t=w}break}case 21:{if(!(W5[a[w+52>>2]&127](w,u,a[yA>>2]|0,o)|0)){t=32;b=280;break A}if(!(a[_>>2]|0))b=275;else{t=a[w+64>>2]|0;t=as(Z,w,u+t|0,(a[yA>>2]|0)+(0-t)|0)|0;if(!t){t=1;b=280;break A}ts(t);a[K>>2]=t;a[Q>>2]=a[m>>2];t=w}break}case 19:{if((a[_>>2]|0)!=0?(a[q>>2]|0)!=0:0){t=a[w+64>>2]|0;t=as(Z,w,u+t|0,(a[yA>>2]|0)+(0-t)|0)|0;if(!t){t=1;b=280;break A}a[h>>2]=u;R5[a[q>>2]&15](a[dA>>2]|0,a[_>>2]|0,a[mA>>2]|0,t,a[K>>2]|0);t=0}else t=1;ns(Z);b=274;break}case 20:{if((a[K>>2]|0)!=0?(a[q>>2]|0)!=0:0){a[h>>2]=u;R5[a[q>>2]&15](a[dA>>2]|0,a[_>>2]|0,a[mA>>2]|0,0,a[K>>2]|0);t=0}else t=1;ns(Z);b=274;break}case 58:{if(a[v>>2]|0)Bs(A,w,u,a[yA>>2]|0);t=gs(A,w,yA,f,c,s)|0;if(t|0){b=280;break A}if(!(a[yA>>2]|0)){b=189;break A}else t=w;break}case 44:{t=a[AA>>2]|0;do{if((a[$>>2]|0)>>>0>=t>>>0){if(!t){l=a[lA>>2]|0;a[AA>>2]=32;l=m5[l&63](32)|0;a[eA>>2]=l;if(!l){b=198;break A}else break}i=a[tA>>2]|0;l=a[eA>>2]|0;t=t<<1;a[AA>>2]=t;t=Q5[i&127](l,t)|0;if(!t){b=193;break A}a[eA>>2]=t;t=a[rA>>2]|0;if(t|0){t=Q5[a[tA>>2]&127](t,a[AA>>2]<<2)|0;if(!t){t=1;b=280;break A}a[rA>>2]=t}}}while(0);r[(a[eA>>2]|0)+(a[$>>2]|0)>>0]=0;if(r[iA>>0]|0){t=Es(A)|0;if((t|0)<0){t=1;b=280;break A}a[(a[rA>>2]|0)+(a[fA>>2]<<2)>>2]=t;a[fA>>2]=(a[fA>>2]|0)+1;a[(a[aA>>2]|0)+(t*28|0)>>2]=6;if(a[nA>>2]|0)t=w;else b=275}else b=275;break}case 50:{t=(a[eA>>2]|0)+(a[$>>2]|0)|0;if((r[t>>0]|0)==124){t=2;b=280;break A}r[t>>0]=44;if((r[iA>>0]|0)!=0?(a[nA>>2]|0)!=0:0)t=w;else b=275;break}case 49:{i=a[eA>>2]|0;e=a[$>>2]|0;t=r[i+e>>0]|0;if(t<<24>>24==44){t=2;b=280;break A}if(t<<24>>24==0&(r[iA>>0]|0)!=0?(QA=(a[aA>>2]|0)+((a[(a[rA>>2]|0)+((a[fA>>2]|0)+-1<<2)>>2]|0)*28|0)|0,(a[QA>>2]|0)!=3):0){a[QA>>2]=5;t=(a[nA>>2]|0)==0&1;i=a[eA>>2]|0;e=a[$>>2]|0}else t=1;r[i+e>>0]=124;b=274;break}case 59:case 60:{r[gA>>0]=1;if(a[p>>2]|0){e=a[w+64>>2]|0;e=as(D,w,u+e|0,(a[yA>>2]|0)+(0-e)|0)|0;if(!e){t=1;b=280;break A}i=ls(A,W,e,0)|0;a[M>>2]=a[F>>2];do{if(a[cA>>2]|0){if(!(r[ZA>>0]|0)){if(r[gA>>0]|0){b=219;break}}else if(a[wA>>2]|0){b=219;break}if(!i){t=11;b=280;break A}if(!(r[i+34>>0]|0)){t=24;b=280;break A}}else b=219}while(0);if((b|0)==219?(b=0,(i|0)==0):0){r[Y>>0]=r[ZA>>0]|0;if((l|0)!=60){b=275;break e}t=a[sA>>2]|0;if(!t){b=275;break e}J5[t&127](a[dA>>2]|0,e,1);t=w;break e}t=i+32|0;if(r[t>>0]|0){t=12;b=280;break A}if(a[i+4>>2]|0){t=Cs(A,i,(l|0)==60&1)|0;e=(t|0)==0;if(e){t=(e^1)&1;b=274;break e}else{b=280;break A}}if(!(a[EA>>2]|0)){r[Y>>0]=r[ZA>>0]|0;b=275;break e}r[CA>>0]=0;r[t>>0]=1;l=(z5[a[EA>>2]&127](a[IA>>2]|0,0,a[i+20>>2]|0,a[i+16>>2]|0,a[i+24>>2]|0)|0)==0;r[t>>0]=0;if(l){t=21;b=280;break A}e=r[ZA>>0]|0;if(!(r[CA>>0]|0)){r[Y>>0]=e;t=w;break e}else t=0}else{e=r[ZA>>0]|0;r[Y>>0]=e;t=1}if((e<<24>>24==0?(LA=a[GA>>2]|0,(LA|0)!=0):0)?(m5[LA&63](a[dA>>2]|0)|0)==0:0){t=22;b=280;break A}else b=274;break}case 40:{if(!(a[nA>>2]|0))b=275;else{u=ss(A,w,u,a[yA>>2]|0)|0;a[N>>2]=u;if(!u){t=1;b=280;break A}a[fA>>2]=0;a[bA>>2]=0;r[iA>>0]=1;t=w}break}case 42:case 41:{if(!(r[iA>>0]|0))b=275;else{if(!(a[nA>>2]|0))t=1;else{t=m5[a[lA>>2]&63](20)|0;if(!t){t=1;b=280;break A}b=t+4|0;a[b>>2]=0;a[b+4>>2]=0;a[b+8>>2]=0;a[b+12>>2]=0;a[t>>2]=(l|0)==41?2:1;a[h>>2]=u;J5[a[nA>>2]&127](a[dA>>2]|0,a[a[N>>2]>>2]|0,t);t=0}r[iA>>0]=0;b=274}break}case 43:{if((r[iA>>0]|0)!=0?(a[(a[aA>>2]|0)+((a[(a[rA>>2]|0)+((a[fA>>2]|0)+-1<<2)>>2]|0)*28|0)>>2]=3,(a[nA>>2]|0)!=0):0)t=w;else b=275;break}case 51:{e=0;b=247;break}case 53:{e=1;b=247;break}case 52:{e=2;b=247;break}case 54:{e=3;b=247;break}case 45:{i=0;b=258;break}case 47:{i=1;b=258;break}case 46:{i=2;b=258;break}case 48:{i=3;b=258;break}case 55:{if(!(Zs(A,w,u,a[yA>>2]|0)|0)){t=1;b=280;break A}else t=w;break}case 56:{if(!(Gs(A,w,u,a[yA>>2]|0)|0)){t=1;b=280;break A}else t=w;break}case 0:{if((e|0)==14)t=w;else b=275;break}case 3:{if(!(a[C>>2]|0))b=275;else t=w;break}case 11:{if((r[Y>>0]|0)!=0?(a[V>>2]|0)!=0:0)t=w;else b=275;break}case 17:{if(!(a[q>>2]|0))b=275;else t=w;break}case 33:{if((r[Y>>0]|0)!=0?(a[R>>2]|0)!=0:0)t=w;else b=275;break}case 39:{if(!(a[nA>>2]|0))b=275;else t=w;break}default:b=275}}while(0);if((b|0)==33)if(!(W5[a[w+52>>2]&127](w,u,a[yA>>2]|0,o)|0)){t=32;b=280;break}else{t=1;b=34}else if((b|0)==80){b=0;if((r[Y>>0]|0)!=0?(a[R>>2]|0)!=0:0)t=w;else b=275}else if((b|0)==133){b=0;if((r[Y>>0]|0)!=0?(a[z>>2]|0)!=0:0){e=a[w+64>>2]|0;e=as(D,w,u+e|0,(a[yA>>2]|0)+(0-e)|0)|0;a[(a[z>>2]|0)+16>>2]=e;e=a[z>>2]|0;if(!(a[e+16>>2]|0)){t=1;b=280;break}a[e+20>>2]=a[mA>>2];a[F>>2]=a[M>>2];if((l|0)==13&(a[V>>2]|0)!=0)t=w;else b=274}else b=274}else if((b|0)==247){b=0;if(r[iA>>0]|0){t=a[yA>>2]|0;if(e)t=t+(0-(a[w+64>>2]|0))|0;i=Es(A)|0;if((i|0)<0){t=1;b=280;break}a[(a[aA>>2]|0)+(i*28|0)>>2]=4;a[(a[aA>>2]|0)+(i*28|0)+4>>2]=e;t=ss(A,w,u,t)|0;if(!t){t=1;b=280;break}e=a[t>>2]|0;a[(a[aA>>2]|0)+(i*28|0)+8>>2]=e;t=0;do{l=t;t=t+1|0}while((r[e+l>>0]|0)!=0);a[uA>>2]=(a[uA>>2]|0)+t;if(a[nA>>2]|0)t=w;else b=275}else b=275}else if((b|0)==258)if(r[iA>>0]|0){e=(a[nA>>2]|0)==0;t=e&1;b=(a[fA>>2]|0)+-1|0;a[fA>>2]=b;a[(a[aA>>2]|0)+((a[(a[rA>>2]|0)+(b<<2)>>2]|0)*28|0)+4>>2]=i;if(!(a[fA>>2]|0)){if(!e){e=Is(A)|0;if(!e){t=1;b=280;break}a[h>>2]=u;J5[a[nA>>2]&127](a[dA>>2]|0,a[a[N>>2]>>2]|0,e)}r[iA>>0]=0;a[uA>>2]=0;b=274}else b=274}else b=275;if((b|0)==34){b=0;if((r[Y>>0]|0)!=0?(a[z>>2]|0)!=0:0){e=a[w+64>>2]|0;e=as(D,w,u+e|0,(a[yA>>2]|0)+(0-e)|0)|0;if(!e){t=1;b=280;break}ts(e);a[(a[z>>2]|0)+24>>2]=e;a[F>>2]=a[M>>2];if((l|0)==14&(a[V>>2]|0)!=0)t=w;else b=274}else b=274}if((b|0)==274){b=0;if(!(t<<24>>24))t=w;else b=275}if((b|0)==275){b=0;if(!(a[v>>2]|0))t=w;else{Bs(A,w,u,a[yA>>2]|0);t=w}}switch(a[E>>2]|0){case 3:{b=278;break A}case 2:{t=35;b=280;break A}default:{}}e=a[yA>>2]|0;w=t;u=e;e=W5[a[t>>2]&127](t,e,f,yA)|0}A:switch(b|0){case 7:{a[c>>2]=u;t=0;break}case 9:{a[o>>2]=i;t=4;break}case 10:{t=(w|0)==(a[B>>2]|0);if(!t?(r[(a[wA>>2]|0)+20>>0]|0)==0:0){a[c>>2]=u;t=0;break}if((r[A+484>>0]|0)!=0|t^1)if((z5[a[oA>>2]&127](oA,-4,f,f,w)|0)==-1)t=29;else{a[c>>2]=u;t=0}else t=3;break}case 58:{do{if((r[y>>0]|0?(WA=r[gA>>0]|0,r[gA>>0]=1,a[p>>2]|0):0)?a[EA>>2]|0:0){t=ls(A,W,75395,36)|0;if(!t){t=1;break A}yA=t+20|0;a[yA>>2]=a[mA>>2];r[CA>>0]=0;if(!(z5[a[EA>>2]&127](a[IA>>2]|0,0,a[yA>>2]|0,a[t+16>>2]|0,a[t+24>>2]|0)|0)){t=21;break A}if(!(r[CA>>0]|0)){r[gA>>0]=WA;break}if(((r[ZA>>0]|0)==0?(zA=a[GA>>2]|0,zA|0):0)?(m5[zA&63](a[dA>>2]|0)|0)==0:0){t=22;break A}}}while(0);a[A+276>>2]=58;t=cs(A,u,f,c)|0;break}case 184:{t=(e|0)==28?10:(e|0)==12?17:2;break}case 189:{a[A+276>>2]=59;t=0;break}case 193:{a[AA>>2]=(a[AA>>2]|0)>>>1;t=1;break}case 198:{a[AA>>2]=0;t=1;break}case 278:{a[c>>2]=a[yA>>2];t=0;break}case 280:break}k=YA;return t|0}function fs(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0;h=k;k=k+32|0;o=h+16|0;b=h+12|0;t=h+8|0;c=h+4|0;s=h;a[o>>2]=0;a[b>>2]=0;a[t>>2]=0;a[s>>2]=-1;u=A+144|0;w=A+284|0;n=(e|0)!=0;A:do{if(D5[(r[A+232>>0]<<24>>24?2:1)&3](e,a[u>>2]|0,i,f,w,t,c,o,b,s)|0){if((a[s>>2]|0)==1&(n^1)?(r[(a[A+352>>2]|0)+130>>0]=1,l=A+488|0,(a[l>>2]|0)==1):0)a[l>>2]=0;l=A+140|0;if(!(a[l>>2]|0))if(!(a[A+80>>2]|0)){i=0;e=0}else{Bs(A,a[u>>2]|0,i,f);i=0;e=0}else{e=a[o>>2]|0;if(!e)e=0;else{f=a[u>>2]|0;e=as(A+436|0,f,e,e+(Q5[a[f+28>>2]&127](f,e)|0)|0)|0;if(!e){e=1;break}a[A+452>>2]=a[A+448>>2]}n=a[t>>2]|0;if(n){t=a[u>>2]|0;n=as(A+436|0,t,n,(a[c>>2]|0)+(0-(a[t+64>>2]|0))|0)|0;if(!n){e=1;break}}else n=0;N5[a[l>>2]&31](a[A+4>>2]|0,n,e,a[s>>2]|0);i=n}do{if(!(a[A+228>>2]|0)){n=a[b>>2]|0;l=n;if(n|0){s=a[n+64>>2]|0;b=a[u>>2]|0;if((s|0)==(a[b+64>>2]|0)?(s|0)!=2|(n|0)==(b|0):0){a[u>>2]=l;break}a[w>>2]=a[o>>2];e=19;break A}n=a[o>>2]|0;if(n|0){l=A+436|0;if(!e){e=a[u>>2]|0;e=as(l,e,n,n+(Q5[a[e+28>>2]&127](e,n)|0)|0)|0;if(!e){e=1;break A}}e=qs(A,e)|0;ns(l);if((e|0)!=18)break A;a[w>>2]=a[o>>2];e=18;break A}}}while(0);if((e|0)!=0|(i|0)!=0){ns(A+436|0);e=0}else e=0}else e=n?31:30}while(0);k=h;return e|0}function as(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;do{if(!(ws(A,e,i,f)|0))e=0;else{i=A+12|0;e=a[i>>2]|0;if((e|0)==(a[A+8>>2]|0)){if(!((os(A)|0)<<24>>24)){e=0;break}e=a[i>>2]|0}a[i>>2]=e+1;r[e>>0]=0;e=a[A+16>>2]|0}}while(0);return e|0}function ns(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;r=A+4|0;e=a[r>>2]|0;A:do{if(!e){a[r>>2]=a[A>>2];e=A}else{i=a[A>>2]|0;while(1){if(!i){e=A;break A}n=a[i>>2]|0;a[i>>2]=e;a[r>>2]=i;f=i;i=n;e=f}}}while(0);a[e>>2]=0;a[A+16>>2]=0;a[A+12>>2]=0;a[A+8>>2]=0;return}function ls(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0;C=e+8|0;A:do{if(!(a[C>>2]|0))if(f){r[e+4>>0]=6;a[C>>2]=64;l=e+16|0;t=m5[a[a[l>>2]>>2]&63](256)|0;a[e>>2]=t;if(!t){a[C>>2]=0;l=0;break}else{Y6(t|0,0,256)|0;c=Ks(A,i)|0;c=(a[C>>2]|0)+-1&c;t=e;k=27;break}}else l=0;else{E=Ks(A,i)|0;s=a[C>>2]|0;c=s+-1|0;b=a[e>>2]|0;u=E&0-s;v=e+4|0;w=c>>>2;t=0;c=c&E;while(1){l=a[b+(c<<2)>>2]|0;if(!l)break;if((_s(i,a[l>>2]|0)|0)<<24>>24)break A;if(!(t<<24>>24))l=(u>>>((n[v>>0]|0)+-1|0)&w|1)&255;else l=t;g=l&255;t=l;c=c-g+(c>>>0>>0?s:0)|0}if(f){t=r[v>>0]|0;l=t&255;if(!((a[e+12>>2]|0)>>>(l+-1|0))){l=e+16|0;t=e;k=27;break}h=l+1&255;c=t+1&255;B=1<>2]>>2]&63](t)|0;if(g){Y6(g|0,0,t|0)|0;o=0-B|0;w=c+-1|0;k=d>>>2;u=0;while(1){if(u>>>0>=(a[C>>2]|0)>>>0)break;t=a[(a[e>>2]|0)+(u<<2)>>2]|0;if(t|0){t=Ks(A,a[t>>2]|0)|0;s=((t&o)>>>w&k|1)&255;t=t&d;c=0;while(1){b=g+(t<<2)|0;if(!(a[b>>2]|0))break;b=c<<24>>24==0?s:c;I=b&255;t=t+(t>>>0>>0?B:0)-I|0;c=b}a[b>>2]=a[(a[e>>2]|0)+(u<<2)>>2]}u=u+1|0}F5[a[(a[l>>2]|0)+8>>2]&127](a[e>>2]|0);a[e>>2]=g;r[v>>0]=h;a[C>>2]=B;s=((E&o)>>>w&k|1)&255;t=d&E;c=0;while(1){if(!(a[g+(t<<2)>>2]|0)){c=t;t=e;k=27;break A}I=c<<24>>24==0?s:c;C=I&255;t=t+(t>>>0>>0?B:0)-C|0;c=I}}else l=0}else l=0}}while(0);if((k|0)==27){l=m5[a[a[l>>2]>>2]&63](f)|0;a[(a[t>>2]|0)+(c<<2)>>2]=l;l=a[(a[t>>2]|0)+(c<<2)>>2]|0;if(!l)l=0;else{Y6(l|0,0,f|0)|0;a[a[(a[t>>2]|0)+(c<<2)>>2]>>2]=i;l=e+12|0;a[l>>2]=(a[l>>2]|0)+1;l=a[(a[t>>2]|0)+(c<<2)>>2]|0}}return l|0}function ts(A){A=A|0;var e=0,i=0,f=0;f=A;e=A;while(1){i=r[f>>0]|0;if(!(i<<24>>24))break;switch(i<<24>>24|0){case 10:case 13:case 32:{if((e|0)!=(A|0)){if((r[e+-1>>0]|0)!=32){r[e>>0]=32;e=e+1|0}}else e=A;break}default:{r[e>>0]=i;e=e+1|0}}f=f+1|0}if((e|0)!=(A|0)){A=e+-1|0;A=(r[A>>0]|0)==32?A:e}r[A>>0]=0;return}function cs(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;e=Ls(A,0,a[A+144>>2]|0,e,i,f,(r[A+480>>0]|0)==0&1)|0;if((e|0)==0?(Js(A)|0)<<24>>24==0:0)e=1;return e|0}function ss(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0;n=a[A+352>>2]|0;e=as(n+80|0,e,i,r)|0;do{if((e|0)!=0?(f=ls(A,n+20|0,e,24)|0,(f|0)!=0):0)if((a[f>>2]|0)==(e|0)){a[n+96>>2]=a[n+92>>2];if(!(Ns(A,f)|0)){f=0;break}}else a[n+92>>2]=a[n+96>>2];else f=0}while(0);return f|0}function bs(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;u=a[A+352>>2]|0;s=u+80|0;w=u+92|0;l=a[w>>2]|0;b=u+88|0;if((l|0)==(a[b>>2]|0))if(!((os(s)|0)<<24>>24))n=0;else{l=a[w>>2]|0;t=4}else t=4;A:do{if((t|0)==4){a[w>>2]=l+1;r[l>>0]=0;e=as(s,e,i,f)|0;if((e|0)!=0?(c=e+1|0,n=ls(A,u+40|0,c,12)|0,(n|0)!=0):0){if((a[n>>2]|0)!=(c|0)){a[w>>2]=a[u+96>>2];break}l=a[w>>2]|0;t=u+96|0;a[t>>2]=l;if(r[A+232>>0]|0){i=r[c>>0]|0;e:do{if(i<<24>>24==120)if((((r[e+2>>0]|0)==109?(r[e+3>>0]|0)==108:0)?(r[e+4>>0]|0)==110:0)?(r[e+5>>0]|0)==115:0){switch(r[e+6>>0]|0){case 0:{l=u+152|0;break}case 58:{l=ls(A,u+60|0,e+7|0,8)|0;break}default:{f=0;e=120;break e}}a[n+4>>2]=l;r[n+9>>0]=1;break A}else{f=0;e=120}else{f=0;e=i}}while(0);e:while(1){switch(e<<24>>24){case 0:break A;case 58:{i=0;break e}default:{}}e=f+1|0;f=e;e=r[c+e>>0]|0}while(1){e=(l|0)==(a[b>>2]|0);if((i|0)>=(f|0))break;if(e){if(!((os(s)|0)<<24>>24)){n=0;break A}l=a[w>>2]|0}e=r[c+i>>0]|0;a[w>>2]=l+1;r[l>>0]=e;i=i+1|0;l=a[w>>2]|0}if(e){if(!((os(s)|0)<<24>>24)){n=0;break}l=a[w>>2]|0}a[w>>2]=l+1;r[l>>0]=0;l=ls(A,u+60|0,a[t>>2]|0,8)|0;a[n+4>>2]=l;if(l){e=a[t>>2]|0;if((a[l>>2]|0)==(e|0)){a[t>>2]=a[w>>2];break}else{a[w>>2]=e;break}}else n=0}}else n=0}}while(0);return n|0}function us(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0;n=A+12|0;l=A+8|0;while(1){i=r[e>>0]|0;if(!(i<<24>>24)){t=7;break}f=a[n>>2]|0;if((f|0)==(a[l>>2]|0)){if(!((os(A)|0)<<24>>24)){e=0;break}f=a[n>>2]|0;i=r[e>>0]|0}a[n>>2]=f+1;r[f>>0]=i;e=e+1|0}if((t|0)==7)e=a[A+16>>2]|0;return e|0}function ws(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0;t=k;k=k+16|0;l=t;a[l>>2]=i;n=A+12|0;if((a[n>>2]|0)==0?(os(A)|0)<<24>>24==0:0)i=0;else f=3;A:do{if((f|0)==3){i=e+56|0;f=A+8|0;while(1){if((z5[a[i>>2]&127](e,l,r,n,a[f>>2]|0)|0)>>>0<2)break;if(!((os(A)|0)<<24>>24)){i=0;break A}}i=a[A+16>>2]|0}}while(0);k=t;return i|0}function ks(A,e,i,f,n,l){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;l=l|0;var t=0,c=0,s=0,b=0,u=0,w=0;t=f<<24>>24==0;w=A+12|0;u=a[w>>2]|0;A:do{if(!(t&(n|0)==0)){c=A+20|0;f=0;while(1){if((f|0)>=(u|0))break;if((a[(a[c>>2]|0)+(f*12|0)>>2]|0)==(e|0)){f=1;break A}else f=f+1|0}if((!t?(s=A+8|0,(a[s>>2]|0)==0):0)?(r[e+9>>0]|0)==0:0){a[s>>2]=e;b=9}else b=9}else b=9}while(0);A:do{if((b|0)==9){c=A+16|0;do{if((u|0)==(a[c>>2]|0))if(!u){a[c>>2]=8;f=m5[a[l+12>>2]&63](96)|0;a[A+20>>2]=f;if(f|0)break;a[c>>2]=0;f=0;break A}else{t=A+20|0;f=Q5[a[l+16>>2]&127](a[t>>2]|0,u*24|0)|0;if(!f){f=0;break A}a[c>>2]=u<<1;a[t>>2]=f;break}else f=a[A+20>>2]|0}while(0);l=a[w>>2]|0;a[f+(l*12|0)>>2]=e;a[f+(l*12|0)+8>>2]=n;r[f+(l*12|0)+4>>0]=i;if(!(i<<24>>24))r[e+8>>0]=1;a[w>>2]=(a[w>>2]|0)+1;f=1}}while(0);return f|0}function os(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0;e=A+4|0;r=a[e>>2]|0;do{if(r){f=A+16|0;n=a[f>>2]|0;if(!n){a[A>>2]=r;a[e>>2]=a[r>>2];a[r>>2]=0;b=a[A>>2]|0;e=b+8|0;a[f>>2]=e;a[A+8>>2]=(a[b+4>>2]|0)+(b+8);a[A+12>>2]=e;e=1;break}i=A+8|0;if(((a[i>>2]|0)-n|0)<(a[r+4>>2]|0)){s=a[r>>2]|0;a[r>>2]=a[A>>2];b=a[e>>2]|0;a[A>>2]=b;a[e>>2]=s;e=a[f>>2]|0;W6(b+8|0,e|0,(a[i>>2]|0)-e|0)|0;e=a[A>>2]|0;b=A+12|0;a[b>>2]=(a[b>>2]|0)-(a[f>>2]|0)+(e+8);a[f>>2]=e+8;a[i>>2]=(a[e+4>>2]|0)+(e+8);e=1}else l=6}else l=6}while(0);A:do{if((l|0)==6){r=a[A>>2]|0;s=A+16|0;do{if(!r){t=s;e=a[s>>2]|0}else{c=a[s>>2]|0;e=c;if((c|0)!=(r+8|0)){t=s;break}f=A+8|0;n=(a[f>>2]|0)-e<<1;l=A+12|0;i=(a[l>>2]|0)-e|0;if((n|0)<0){e=0;break A}e=Os(n)|0;if(!e){e=0;break A}e=Q5[a[(a[A+20>>2]|0)+4>>2]&127](r,e)|0;if(!e){e=0;break A}a[A>>2]=e;a[e+4>>2]=n;e=a[A>>2]|0;a[l>>2]=e+8+i;a[s>>2]=e+8;a[f>>2]=e+8+n;e=1;break A}}while(0);c=A+8|0;e=(a[c>>2]|0)-e|0;if((e|0)>=0){if((e|0)>=1024){e=e<<1;if((e|0)<0){e=0;break}}else e=1024;i=Os(e)|0;if((i|0)!=0?(b=m5[a[a[A+20>>2]>>2]&63](i)|0,(b|0)!=0):0){a[b+4>>2]=e;a[b>>2]=a[A>>2];a[A>>2]=b;l=A+12|0;A=a[l>>2]|0;r=a[s>>2]|0;i=A;f=r;if((A|0)==(r|0)){n=b+8|0;r=f}else{n=b+8|0;W6(n|0,r|0,i-f|0)|0;r=a[t>>2]|0;i=a[l>>2]|0}a[l>>2]=b+8+(i-r);a[s>>2]=n;a[c>>2]=b+8+e;e=1}else e=0}else e=0}}while(0);return e|0}function hs(A,e,i,f,n,l){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;l=l|0;var t=0;A=Ss(A,e,i,f,n,l)|0;do{if(!A){e=l+12|0;A=a[e>>2]|0;if((i<<24>>24==0?(a[l+16>>2]|0)!=(A|0):0)?(t=A+-1|0,(r[t>>0]|0)==32):0){a[e>>2]=t;A=t}if((A|0)==(a[l+8>>2]|0)){if(!((os(l)|0)<<24>>24)){A=1;break}A=a[e>>2]|0}a[e>>2]=A+1;r[A>>0]=0;A=0}}while(0);return A|0}function ds(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0;D=k;k=k+16|0;Q=D;L=D+4|0;n=a[A+352>>2]|0;y=n+104|0;z=A+272|0;W=a[z>>2]|0;a[z>>2]=1;if((a[y>>2]|0)==0?(os(y)|0)<<24>>24==0:0)n=1;else{u=e+20|0;w=A+484|0;o=A+144|0;h=A+412|0;d=e+64|0;B=n+132|0;g=A+428|0;v=A+424|0;E=A+224|0;C=A+112|0;b=n+130|0;I=n+128|0;Z=n+131|0;G=A+116|0;m=n+112|0;c=n+116|0;s=e+40|0;A:while(1){e:do{switch(W5[a[u>>2]&127](e,i,f,Q)|0){case-4:{n=0;break A}case-1:{Y=37;break A}case 0:{Y=39;break A}case 28:{if((r[w>>0]|0)==0?(a[o>>2]|0)==(e|0):0){Y=19;break A}n=a[d>>2]|0;n=as(h,e,i+n|0,(a[Q>>2]|0)+(0-n)|0)|0;if(!n){n=1;break A}l=ls(A,B,n,0)|0;a[v>>2]=a[g>>2];if(!l){Y=9;break A}t=l+32|0;if(r[t>>0]|0){Y=11;break A}n=l+16|0;if(!(a[n>>2]|0)){r[t>>0]=1;n=a[l+4>>2]|0;n=ds(A,a[E>>2]|0,n,n+(a[l+8>>2]|0)|0)|0;r[t>>0]=0;if(!n)break e;else break A}if(a[C>>2]|0){r[Z>>0]=0;r[t>>0]=1;l=(z5[a[C>>2]&127](a[G>>2]|0,0,a[l+20>>2]|0,a[n>>2]|0,a[l+24>>2]|0)|0)==0;r[t>>0]=0;if(l){n=21;break A}if(r[Z>>0]|0)break e}r[I>>0]=r[b>>0]|0;break}case 6:case 9:{if(!(ws(y,e,i,a[Q>>2]|0)|0)){n=1;break A}break}case-3:{a[Q>>2]=i+(a[d>>2]|0);Y=22;break}case 7:{Y=22;break}case 10:{n=Q5[a[s>>2]&127](e,i)|0;if((n|0)<0){Y=27;break A}l=db(n,L)|0;i=0;while(1){if((i|0)>=(l|0))break;n=a[c>>2]|0;if((a[m>>2]|0)==(n|0)){if(!((os(y)|0)<<24>>24)){n=1;Y=35;break A}n=a[c>>2]|0}t=r[L+i>>0]|0;a[c>>2]=n+1;r[n>>0]=t;i=i+1|0}break}default:{Y=41;break A}}}while(0);if((Y|0)==22){Y=0;n=a[c>>2]|0;if((a[m>>2]|0)==(n|0)){if(!((os(y)|0)<<24>>24)){n=1;break}n=a[c>>2]|0}a[c>>2]=n+1;r[n>>0]=10}i=a[Q>>2]|0}if((Y|0)==9){r[I>>0]=r[b>>0]|0;n=0}else if((Y|0)==11)if((a[o>>2]|0)==(e|0)){a[A+284>>2]=i;n=12}else n=12;else if((Y|0)==19){a[A+284>>2]=i;n=10}else if((Y|0)==27)if((a[o>>2]|0)==(e|0)){a[A+284>>2]=i;n=14;Y=35}else{n=14;Y=35}else if((Y|0)==37)if((a[o>>2]|0)==(e|0)){a[A+284>>2]=i;n=4}else n=4;else if((Y|0)==39)if((a[o>>2]|0)==(e|0)){a[A+284>>2]=a[Q>>2];n=4}else n=4;else if((Y|0)==41)if((a[o>>2]|0)==(e|0)){a[A+284>>2]=i;n=23}else n=23;a[z>>2]=W}k=D;return n|0}function Bs(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0;o=k;k=k+16|0;u=o;w=o+4|0;a[u>>2]=i;if(!(r[e+68>>0]|0)){if((a[A+144>>2]|0)==(e|0)){n=A+288|0;l=A+284|0}else{l=a[A+296>>2]|0;n=l+4|0}t=A+44|0;c=e+56|0;s=A+48|0;b=A+80|0;i=A+4|0;do{a[w>>2]=a[t>>2];A=z5[a[c>>2]&127](e,u,f,w,a[s>>2]|0)|0;a[n>>2]=a[u>>2];h=a[t>>2]|0;J5[a[b>>2]&127](a[i>>2]|0,h,(a[w>>2]|0)-h|0);a[l>>2]=a[u>>2]}while(A>>>0>1)}else J5[a[A+80>>2]&127](a[A+4>>2]|0,i,f-i|0);k=o;return}function gs(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0,s=0,b=0,u=0;b=k;k=k+16|0;c=b;s=a[i>>2]|0;if((a[A+144>>2]|0)==(e|0)){t=A+284|0;a[t>>2]=s;l=A+288|0}else{t=a[A+296>>2]|0;l=t+4|0}a[t>>2]=s;a[i>>2]=0;u=W5[a[e+12>>2]&127](e,s,r,c)|0;r=a[c>>2]|0;a[l>>2]=r;switch(u|0){case 42:{if(a[A+80>>2]|0){Bs(A,e,s,r);r=a[c>>2]|0}a[i>>2]=r;a[f>>2]=r;r=(a[A+476>>2]|0)==2?35:0;break}case 0:{a[t>>2]=r;r=4;break}case-2:{if(!(n<<24>>24))r=6;else{a[f>>2]=s;r=0}break}case-4:case-1:{if(!(n<<24>>24))r=2;else{a[f>>2]=s;r=0}break}default:{a[t>>2]=r;r=23}}k=b;return r|0}function vs(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0;l=k;k=k+16|0;n=l;a[n>>2]=e;e=gs(A,a[A+144>>2]|0,n,i,f,(r[A+480>>0]|0)==0&1)|0;n=a[n>>2]|0;if(!((e|0)!=0|(n|0)==0)){a[A+276>>2]=57;e=is(A,n,i,f)|0}k=l;return e|0}function Es(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0;t=a[A+352>>2]|0;c=t+184|0;if(!(a[c>>2]|0)){e=m5[a[A+12>>2]&63](a[A+464>>2]<<2)|0;a[c>>2]=e;if(!e)e=-1;else{a[e>>2]=0;i=4}}else i=4;do{if((i|0)==4){l=t+176|0;e=a[l>>2]|0;n=t+172|0;i=a[n>>2]|0;f=t+164|0;r=a[f>>2]|0;if(e>>>0>>0)n=r;else{if(!r){e=m5[a[A+12>>2]&63](896)|0;if(!e){e=-1;break}else{i=e;e=32}}else{e=Q5[a[A+16>>2]&127](r,i*56|0)|0;if(!e){e=-1;break}i=e;e=a[n>>2]<<1}a[n>>2]=e;a[f>>2]=i;e=a[l>>2]|0;n=i}a[l>>2]=e+1;i=a[t+180>>2]|0;if(i|0){A=a[(a[c>>2]|0)+(i+-1<<2)>>2]|0;f=n+(A*28|0)+16|0;i=a[f>>2]|0;if(i|0)a[n+(i*28|0)+24>>2]=e;i=n+(A*28|0)+20|0;r=a[i>>2]|0;if(!r)a[n+(A*28|0)+12>>2]=e;a[f>>2]=e;a[i>>2]=r+1}c=n+(e*28|0)+12|0;a[c>>2]=0;a[c+4>>2]=0;a[c+8>>2]=0;a[c+12>>2]=0}}while(0);return e|0}function Cs(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0;o=k;k=k+16|0;u=o;w=A+300|0;f=a[w>>2]|0;if(!f){f=m5[a[A+12>>2]&63](24)|0;if(!f)f=1;else{b=f;n=4}}else{a[w>>2]=a[f+8>>2];b=f;n=4}do{if((n|0)==4){l=e+32|0;r[l>>0]=1;t=e+12|0;a[t>>2]=0;c=A+296|0;s=b+8|0;a[s>>2]=a[c>>2];a[c>>2]=b;a[b+12>>2]=e;f=A+308|0;a[b+16>>2]=a[f>>2];r[b+20>>0]=i;a[b>>2]=0;a[b+4>>2]=0;n=a[e+4>>2]|0;i=n+(a[e+8>>2]|0)|0;a[u>>2]=n;if(!(r[e+33>>0]|0))f=Ls(A,a[f>>2]|0,a[A+224>>2]|0,n,i,u,0)|0;else{e=A+224|0;f=a[e>>2]|0;f=W5[a[f>>2]&127](f,n,i,u)|0;f=rs(A,a[e>>2]|0,n,i,f,a[u>>2]|0,u,0)|0}if(!f){f=a[u>>2]|0;if((i|0)!=(f|0)?(a[A+476>>2]|0)==3:0){a[t>>2]=f-n;a[A+276>>2]=60;f=0;break}r[l>>0]=0;a[c>>2]=a[s>>2];a[s>>2]=a[w>>2];a[w>>2]=b;f=0}}}while(0);k=o;return f|0}function Is(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;n=k;k=k+16|0;i=n+4|0;r=n;e=a[A+352>>2]|0;f=e+176|0;e=m5[a[A+12>>2]&63](((a[f>>2]|0)*20|0)+(a[e+168>>2]|0)|0)|0;if(!e)e=0;else{a[r>>2]=e+((a[f>>2]|0)*20|0);a[i>>2]=e+20;Qs(A,0,e,i,r)}k=n;return e|0}function Zs(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0;c=A+64|0;if(!(a[c>>2]|0))if(!(a[A+80>>2]|0))i=1;else{Bs(A,e,i,r);i=1}else{l=e+64|0;n=i+(a[l>>2]<<1)|0;i=n+(Q5[a[e+28>>2]&127](e,n)|0)|0;f=A+412|0;n=as(f,e,n,i)|0;if((n|0)!=0?(a[A+428>>2]=a[A+424>>2],t=Q5[a[e+32>>2]&127](e,i)|0,t=as(f,e,t,r+(0-(a[l>>2]<<1))|0)|0,(t|0)!=0):0){ms(t);J5[a[c>>2]&127](a[A+4>>2]|0,n,t);ns(f);i=1}else i=0}return i|0}function Gs(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0;n=A+68|0;if(!(a[n>>2]|0))if(!(a[A+80>>2]|0))e=1;else{Bs(A,e,i,r);e=1}else{f=A+412|0;l=a[e+64>>2]|0;e=as(f,e,i+(l<<2)|0,r+(U(l,-3)|0)|0)|0;if(!e)e=0;else{ms(e);V5[a[n>>2]&63](a[A+4>>2]|0,e);ns(f);e=1}}return e|0}function ms(A){A=A|0;var e=0,i=0,f=0;A:while(1){switch(r[A>>0]|0){case 0:break A;case 13:{i=A;e=13;f=4;break A}default:{}}A=A+1|0}if((f|0)==4){while(1){if(e<<24>>24==13){r[i>>0]=10;f=A+1|0;A=(r[f>>0]|0)==10?A+2|0:f}else{r[i>>0]=e;A=A+1|0}i=i+1|0;e=r[A>>0]|0;if(!(e<<24>>24))break;else f=4}r[i>>0]=0}return}function Qs(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0,t=0,c=0,s=0;s=(a[A+352>>2]|0)+164|0;c=a[(a[s>>2]|0)+(e*28|0)>>2]|0;a[i>>2]=c;a[i+4>>2]=a[(a[s>>2]|0)+(e*28|0)+4>>2];if((c|0)==4){a[i+8>>2]=a[n>>2];e=a[(a[s>>2]|0)+(e*28|0)+8>>2]|0;while(1){c=r[e>>0]|0;s=a[n>>2]|0;a[n>>2]=s+1;r[s>>0]=c;if(!(r[e>>0]|0))break;else e=e+1|0}a[i+12>>2]=0;a[i+16>>2]=0}else{l=a[(a[s>>2]|0)+(e*28|0)+20>>2]|0;t=i+12|0;a[t>>2]=l;c=i+16|0;a[c>>2]=a[f>>2];a[f>>2]=(a[f>>2]|0)+(l*20|0);e=(a[s>>2]|0)+(e*28|0)+12|0;l=0;while(1){e=a[e>>2]|0;if(l>>>0>=(a[t>>2]|0)>>>0)break;Qs(A,e,(a[c>>2]|0)+(l*20|0)|0,f,n);e=(a[s>>2]|0)+(e*28|0)+24|0;l=l+1|0}a[i+8>>2]=0}return}function Ls(A,e,i,f,n,l,t){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;l=l|0;t=t|0;var c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0,U=0,x=0,T=0,j=0,P=0,S=0,O=0,K=0,_=0,q=0,$=0,AA=0,eA=0,iA=0,rA=0,fA=0,aA=0,nA=0,lA=0,tA=0,cA=0,sA=0,bA=0,uA=0,wA=0;uA=k;k=k+48|0;cA=uA+28|0;fA=uA+32|0;sA=uA+24|0;_=uA;a[cA>>2]=f;q=a[A+352>>2]|0;if((a[A+144>>2]|0)==(i|0)){aA=A+284|0;K=A+288|0}else{K=a[A+296>>2]|0;aA=K;K=K+4|0}a[aA>>2]=f;g=i+4|0;nA=A+80|0;v=A+476|0;E=i+44|0;C=i+64|0;I=q+80|0;Z=q+96|0;G=q+92|0;m=q+129|0;Q=A+112|0;L=A+116|0;y=A+428|0;W=A+424|0;z=A+304|0;Y=A+120|0;lA=A+4|0;D=q+130|0;$=A+60|0;M=A+364|0;F=A+12|0;V=A+360|0;J=i+28|0;tA=A+308|0;AA=i+56|0;p=A+16|0;N=A+52|0;R=A+412|0;X=A+388|0;H=A+56|0;U=A+232|0;x=A+233|0;T=A+468|0;j=A+104|0;P=A+372|0;S=i+40|0;O=A+72|0;eA=i+68|0;iA=A+44|0;rA=A+48|0;A:while(1){B=a[cA>>2]|0;a[fA>>2]=B;B=W5[a[g>>2]&127](i,B,n,fA)|0;f=a[fA>>2]|0;a[K>>2]=f;s=f;e:do{switch(B|0){case-3:{bA=6;break A}case-4:{bA=15;break A}case 0:{bA=20;break A}case-1:{bA=21;break A}case-2:{bA=23;break A}case 12:{f=17;break A}case-5:{bA=134;break A}case 9:{B=a[C>>2]|0;B=(y5[a[E>>2]&63](i,(a[cA>>2]|0)+B|0,s+(0-B)|0)|0)&255;r[sA>>0]=B;do{if(B<<24>>24){f=a[$>>2]|0;if(f|0){J5[f&127](a[lA>>2]|0,sA,1);break}if(a[nA>>2]|0)Bs(A,i,a[cA>>2]|0,a[fA>>2]|0)}else{c=a[C>>2]|0;c=as(I,i,(a[cA>>2]|0)+c|0,(a[fA>>2]|0)+(0-c)|0)|0;if(!c){f=1;bA=56;break A}s=ls(A,q,c,0)|0;a[G>>2]=a[Z>>2];if((r[m>>0]|0)!=0?(r[D>>0]|0)==0:0){if(!s){f=a[Y>>2]|0;if(f|0){J5[f&127](a[lA>>2]|0,c,0);break}if(!(a[nA>>2]|0))break;Bs(A,i,a[cA>>2]|0,a[fA>>2]|0);break}}else{if(!s){f=11;bA=56;break A}if(!(r[s+34>>0]|0)){f=24;bA=56;break A}}f=s+32|0;if(r[f>>0]|0){f=12;bA=56;break A}if(a[s+28>>2]|0){f=15;bA=56;break A}if(!(a[s+4>>2]|0)){if(!(a[Q>>2]|0)){if(!(a[nA>>2]|0))break;Bs(A,i,a[cA>>2]|0,a[fA>>2]|0);break}r[f>>0]=1;c=Ws(A)|0;r[f>>0]=0;if(!c){f=1;bA=56;break A}if(!(z5[a[Q>>2]&127](a[L>>2]|0,c,a[s+20>>2]|0,a[s+16>>2]|0,a[s+24>>2]|0)|0)){f=21;bA=56;break A}a[W>>2]=a[y>>2];break}if(r[z>>0]|0){f=Cs(A,s,0)|0;if(!f)break;else{bA=58;break A}}f=a[Y>>2]|0;if(!f){if(a[nA>>2]|0)Bs(A,i,a[cA>>2]|0,a[fA>>2]|0)}else J5[f&127](a[lA>>2]|0,a[s>>2]|0,0);break e}}while(0);break}case 1:case 2:{f=a[M>>2]|0;if(!f){f=m5[a[F>>2]&63](48)|0;if(!f){f=1;bA=75;break A}c=m5[a[F>>2]&63](32)|0;a[f+36>>2]=c;if(!c){bA=63;break A}a[f+40>>2]=c+32}else a[M>>2]=a[f>>2];w=f+44|0;a[w>>2]=0;a[f>>2]=a[V>>2];a[V>>2]=f;B=f+12|0;a[f+16>>2]=0;a[f+20>>2]=0;d=(a[cA>>2]|0)+(a[C>>2]|0)|0;h=f+4|0;a[h>>2]=d;o=f+8|0;a[o>>2]=Q5[a[J>>2]&127](i,d)|0;a[tA>>2]=(a[tA>>2]|0)+1;h=a[h>>2]|0;o=h+(a[o>>2]|0)|0;a[_>>2]=h;h=f+36|0;a[sA>>2]=a[h>>2];d=f+40|0;c=a[d>>2]|0;while(1){wA=z5[a[AA>>2]&127](i,_,o,sA,c+-1|0)|0;c=a[sA>>2]|0;b=a[h>>2]|0;s=b;u=c-s|0;if((wA|0)==1?1:(a[_>>2]|0)>>>0>=o>>>0)break;s=(a[d>>2]|0)-s<<1;c=Q5[a[p>>2]&127](b,s)|0;if(!c){bA=69;break A}a[h>>2]=c;wA=c+s|0;a[d>>2]=wA;a[sA>>2]=c+u;c=wA}a[f+24>>2]=u;a[B>>2]=s;r[c>>0]=0;f=zs(A,i,a[cA>>2]|0,B,w)|0;if(f|0){bA=75;break A}f=a[N>>2]|0;if(!f){if(a[nA>>2]|0)Bs(A,i,a[cA>>2]|0,a[fA>>2]|0)}else J5[f&127](a[lA>>2]|0,a[B>>2]|0,a[X>>2]|0);ns(R);break}case 3:case 4:{wA=(a[cA>>2]|0)+(a[C>>2]|0)|0;a[sA>>2]=0;wA=as(R,i,wA,wA+(Q5[a[J>>2]&127](i,wA)|0)|0)|0;a[_>>2]=wA;if(!wA){f=1;bA=89;break A}a[y>>2]=a[W>>2];f=zs(A,i,a[cA>>2]|0,_,sA)|0;if(f|0){bA=79;break A}a[y>>2]=a[W>>2];f=a[N>>2]|0;if(!f)c=1;else{J5[f&127](a[lA>>2]|0,a[_>>2]|0,a[X>>2]|0);c=0}f=a[H>>2]|0;if(!f){if(c|0?a[nA>>2]|0:0)Bs(A,i,a[cA>>2]|0,a[fA>>2]|0)}else{if(a[N>>2]|0){a[aA>>2]=a[K>>2];f=a[H>>2]|0}V5[f&63](a[lA>>2]|0,a[_>>2]|0)}ns(R);Ys(A,a[sA>>2]|0);if((a[tA>>2]|0)==0?(a[v>>2]&-2|0)!=2:0){bA=92;break A}break}case 5:{if((a[tA>>2]|0)==(e|0)){f=13;break A}u=a[V>>2]|0;a[V>>2]=a[u>>2];a[u>>2]=a[M>>2];a[M>>2]=u;f=(a[cA>>2]|0)+(a[C>>2]<<1)|0;c=Q5[a[J>>2]&127](i,f)|0;if((c|0)!=(a[u+8>>2]|0)){bA=96;break A}if(F4(a[u+4>>2]|0,f,c)|0){bA=96;break A}a[tA>>2]=(a[tA>>2]|0)+-1;f=a[H>>2]|0;if(!f){if(a[nA>>2]|0)Bs(A,i,a[cA>>2]|0,a[fA>>2]|0)}else{c=a[u+16>>2]|0;b=u+12|0;if((c|0)!=0&(r[U>>0]|0)!=0){f=(a[b>>2]|0)+(a[u+28>>2]|0)|0;while(1){s=r[c>>0]|0;if(!(s<<24>>24))break;r[f>>0]=s;f=f+1|0;c=c+1|0}c=a[u+20>>2]|0;i:do{if((c|0)!=0&(r[x>>0]|0)!=0){r[f>>0]=r[T>>0]|0;while(1){f=f+1|0;s=r[c>>0]|0;if(!(s<<24>>24))break i;r[f>>0]=s;c=c+1|0}}}while(0);r[f>>0]=0;f=a[H>>2]|0}V5[f&63](a[lA>>2]|0,a[b>>2]|0)}s=u+44|0;while(1){b=a[s>>2]|0;if(!b)break;f=a[j>>2]|0;if(!f){f=b;c=b}else{V5[f&63](a[lA>>2]|0,a[a[b>>2]>>2]|0);f=b;c=a[s>>2]|0}a[s>>2]=a[c+4>>2];a[b+4>>2]=a[P>>2];a[P>>2]=b;a[(a[f>>2]|0)+4>>2]=a[b+8>>2]}if(!(a[tA>>2]|0)){bA=117;break A}break}case 10:{f=Q5[a[S>>2]&127](i,a[cA>>2]|0)|0;if((f|0)<0){f=14;break A}c=a[$>>2]|0;if(c|0){B=a[lA>>2]|0;wA=db(f,sA)|0;J5[c&127](B,sA,wA);break e}if(a[nA>>2]|0)Bs(A,i,a[cA>>2]|0,a[fA>>2]|0);break}case 7:{f=a[$>>2]|0;if(f|0){r[sA>>0]=10;J5[f&127](a[lA>>2]|0,sA,1);break e}if(a[nA>>2]|0)Bs(A,i,a[cA>>2]|0,s);break}case 8:{f=a[O>>2]|0;if(!f){if(a[nA>>2]|0)Bs(A,i,a[cA>>2]|0,s)}else F5[f&127](a[lA>>2]|0);f=Ms(A,i,fA,n,l,t)|0;if(f|0)break A;if(!(a[fA>>2]|0)){bA=133;break A}break}case 6:{c=a[$>>2]|0;if(!c){if(!(a[nA>>2]|0))break e;Bs(A,i,a[cA>>2]|0,s);break e}if(!(r[eA>>0]|0))f=s;else{wA=a[cA>>2]|0;J5[c&127](a[lA>>2]|0,wA,f-wA|0);break e}while(1){a[sA>>2]=a[iA>>2];wA=z5[a[AA>>2]&127](i,cA,f,sA,a[rA>>2]|0)|0;a[K>>2]=a[cA>>2];B=a[iA>>2]|0;J5[c&127](a[lA>>2]|0,B,(a[sA>>2]|0)-B|0);if(wA>>>0<2)break;a[aA>>2]=a[cA>>2];f=a[fA>>2]|0}break}case 11:{if(!(Zs(A,i,a[cA>>2]|0,s)|0)){f=1;break A}break}case 13:{if(!(Gs(A,i,a[cA>>2]|0,s)|0)){f=1;break A}break}default:if(a[nA>>2]|0)Bs(A,i,a[cA>>2]|0,s)}}while(0);wA=a[fA>>2]|0;a[cA>>2]=wA;a[aA>>2]=wA;switch(a[v>>2]|0){case 2:{f=35;break A}case 3:{bA=160;break A}default:{}}}switch(bA|0){case 6:{if(t<<24>>24){a[l>>2]=a[cA>>2];f=0;break}a[K>>2]=n;f=a[$>>2]|0;if(!f){if(a[nA>>2]|0)Bs(A,i,a[cA>>2]|0,n)}else{r[sA>>0]=10;J5[f&127](a[lA>>2]|0,sA,1)}if(e)if((a[tA>>2]|0)==(e|0)){a[l>>2]=n;f=0}else f=13;else f=3;break}case 15:{if(t<<24>>24){a[l>>2]=a[cA>>2];f=0;break}if((e|0)>0)if((a[tA>>2]|0)==(e|0)){a[l>>2]=a[cA>>2];f=0}else f=13;else f=3;break}case 20:{a[aA>>2]=f;f=4;break}case 21:{if(!(t<<24>>24))f=5;else{a[l>>2]=a[cA>>2];f=0}break}case 23:{if(!(t<<24>>24))f=6;else{a[l>>2]=a[cA>>2];f=0}break}case 56:break;case 58:break;case 63:{F5[a[A+20>>2]&127](f);f=1;bA=75;break}case 69:{f=1;bA=75;break}case 79:{Ys(A,a[sA>>2]|0);bA=89;break}case 92:{f=Ds(A,a[fA>>2]|0,n,l)|0;break}case 96:{a[aA>>2]=f;f=7;break}case 117:{f=Ds(A,a[fA>>2]|0,n,l)|0;break}case 133:{a[A+276>>2]=61;f=0;break}case 134:{if(t<<24>>24){a[l>>2]=a[cA>>2];f=0;break}f=a[$>>2]|0;do{if(!f){if(a[nA>>2]|0)Bs(A,i,a[cA>>2]|0,n)}else if(!(r[eA>>0]|0)){a[sA>>2]=a[iA>>2];z5[a[AA>>2]&127](i,cA,n,sA,a[rA>>2]|0)|0;wA=a[iA>>2]|0;J5[a[$>>2]&127](a[lA>>2]|0,wA,(a[sA>>2]|0)-wA|0);break}else{wA=a[cA>>2]|0;J5[f&127](a[lA>>2]|0,wA,n-wA|0);break}}while(0);if(!e){a[aA>>2]=n;f=3;break}if((a[tA>>2]|0)==(e|0)){a[l>>2]=n;f=0;break}else{a[aA>>2]=n;f=13;break}}case 160:{a[l>>2]=a[fA>>2];f=0;break}}k=uA;return f|0}function ys(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0;h=k;k=k+16|0;o=h;s=A+296|0;b=a[s>>2]|0;do{if(b){u=a[b+12>>2]|0;l=u+4|0;c=a[l>>2]|0;t=u+12|0;n=c+(a[t>>2]|0)|0;c=c+(a[u+8>>2]|0)|0;a[o>>2]=n;w=u+33|0;if(!(r[w>>0]|0))n=Ls(A,a[b+16>>2]|0,a[A+224>>2]|0,n,c,o,0)|0;else{B=A+224|0;d=a[B>>2]|0;d=W5[a[d>>2]&127](d,n,c,o)|0;n=rs(A,a[B>>2]|0,n,c,d,a[o>>2]|0,o,0)|0}if(!n){n=a[o>>2]|0;if((c|0)!=(n|0)?(a[A+476>>2]|0)==3:0){a[t>>2]=n-(a[l>>2]|0);n=0;break}r[u+32>>0]=0;B=b+8|0;a[s>>2]=a[B>>2];n=A+300|0;a[B>>2]=a[n>>2];a[n>>2]=b;n=A+276|0;if(!(r[w>>0]|0)){a[n>>2]=58;n=Ls(A,(a[A+472>>2]|0)!=0&1,a[A+144>>2]|0,e,i,f,(r[A+480>>0]|0)==0&1)|0;break}else{a[n>>2]=57;B=A+144|0;n=a[B>>2]|0;n=W5[a[n>>2]&127](n,e,i,o)|0;n=rs(A,a[B>>2]|0,e,i,n,a[o>>2]|0,f,(r[A+480>>0]|0)==0&1)|0;break}}}else n=23}while(0);k=h;return n|0}function Ws(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0;h=k;k=k+16|0;u=h;b=a[A+352>>2]|0;l=b+156|0;w=A+412|0;o=A+424|0;A:do{if(!(a[l>>2]|0)){e=0;t=A+420|0;s=A+468|0;c=12}else{e=a[o>>2]|0;t=A+420|0;if((e|0)==(a[t>>2]|0)){if(!((os(w)|0)<<24>>24)){e=0;break}e=a[o>>2]|0}a[o>>2]=e+1;r[e>>0]=61;n=A+468|0;i=(a[(a[l>>2]|0)+20>>2]|0)+(((r[n>>0]|0)!=0)<<31>>31)|0;f=0;while(1){if((f|0)>=(i|0)){e=1;s=n;c=12;break A}e=a[o>>2]|0;if((e|0)==(a[t>>2]|0)){if(!((os(w)|0)<<24>>24)){e=0;break A}e=a[o>>2]|0}s=r[(a[(a[l>>2]|0)+16>>2]|0)+f>>0]|0;a[o>>2]=e+1;r[e>>0]=s;f=f+1|0}}}while(0);A:do{if((c|0)==12){Kc(u,b+60|0);e:while(1){do{i=_c(u)|0;if(!i)break e;l=i+4|0}while(!(a[l>>2]|0));if(e<<24>>24){e=a[o>>2]|0;if((e|0)==(a[t>>2]|0)){if(!((os(w)|0)<<24>>24)){e=0;break A}e=a[o>>2]|0}a[o>>2]=e+1;r[e>>0]=12}n=a[i>>2]|0;while(1){i=r[n>>0]|0;e=a[o>>2]|0;f=(e|0)==(a[t>>2]|0);if(!(i<<24>>24))break;if(f){if(!((os(w)|0)<<24>>24)){e=0;break A}e=a[o>>2]|0;i=r[n>>0]|0}a[o>>2]=e+1;r[e>>0]=i;n=n+1|0}if(f){if(!((os(w)|0)<<24>>24)){e=0;break A}e=a[o>>2]|0}a[o>>2]=e+1;r[e>>0]=61;f=(a[(a[l>>2]|0)+20>>2]|0)+(((r[s>>0]|0)!=0)<<31>>31)|0;i=0;while(1){if((i|0)>=(f|0)){e=1;continue e}e=a[o>>2]|0;if((e|0)==(a[t>>2]|0)){if(!((os(w)|0)<<24>>24)){e=0;break A}e=a[o>>2]|0}c=r[(a[(a[l>>2]|0)+16>>2]|0)+i>>0]|0;a[o>>2]=e+1;r[e>>0]=c;i=i+1|0}}Kc(u,b);e:while(1){do{i=_c(u)|0;if(!i)break e}while(!(r[i+32>>0]|0));if(e<<24>>24){e=a[o>>2]|0;if((e|0)==(a[t>>2]|0)){if(!((os(w)|0)<<24>>24)){e=0;break A}e=a[o>>2]|0}a[o>>2]=e+1;r[e>>0]=12}f=a[i>>2]|0;while(1){i=r[f>>0]|0;if(!(i<<24>>24)){e=1;continue e}e=a[o>>2]|0;if((e|0)==(a[t>>2]|0)){if(!((os(w)|0)<<24>>24)){e=0;break A}e=a[o>>2]|0;i=r[f>>0]|0}a[o>>2]=e+1;r[e>>0]=i;f=f+1|0}}e=a[o>>2]|0;if((e|0)==(a[t>>2]|0)){if(!((os(w)|0)<<24>>24)){e=0;break}e=a[o>>2]|0}a[o>>2]=e+1;r[e>>0]=0;e=a[A+428>>2]|0}}while(0);k=h;return e|0}function zs(A,e,i,f,l){A=A|0;e=e|0;i=i|0;f=f|0;l=l|0;var t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0;R=k;k=k+80|0;V=R+16|0;J=R;p=a[A+352>>2]|0;s=p+20|0;t=ls(A,s,a[f>>2]|0,0)|0;if(!t){t=ps(p+80|0,a[f>>2]|0)|0;if((t|0)!=0?(c=ls(A,s,t,24)|0,(c|0)!=0):0)if((r[A+232>>0]|0)!=0?(Ns(A,c)|0)==0:0)t=1;else m=6;else t=1}else{c=t;m=6}A:do{if((m|0)==6){I=a[c+12>>2]|0;s=e+36|0;b=A+376|0;g=A+388|0;v=W5[a[s>>2]&127](e,i,a[b>>2]|0,a[g>>2]|0)|0;t=v+I|0;u=a[b>>2]|0;if((t|0)>(u|0)){t=t+16|0;a[b>>2]=t;t=Q5[a[A+16>>2]&127](a[g>>2]|0,t<<4)|0;if(!t){a[b>>2]=u;t=1;break}a[g>>2]=t;if((v|0)>(u|0))W5[a[s>>2]&127](e,i,v,t)|0}F=a[g>>2]|0;d=e+28|0;D=A+412|0;M=A+428|0;C=c+20|0;h=A+424|0;B=0;o=0;s=0;while(1){if((o|0)>=(v|0))break;w=a[(a[g>>2]|0)+(o<<4)>>2]|0;w=bs(A,e,w,w+(Q5[a[d>>2]&127](e,w)|0)|0)|0;if(!w){t=1;break A}t=(a[w>>2]|0)+-1|0;if(r[t>>0]|0){m=15;break}r[t>>0]=1;i=B+1|0;a[F+(B<<2)>>2]=a[w>>2];u=a[g>>2]|0;if(r[u+(o<<4)+12>>0]|0){Y=as(D,e,a[u+(o<<4)+4>>2]|0,a[u+(o<<4)+8>>2]|0)|0;a[F+(i<<2)>>2]=Y;if(!Y){t=1;break A}}else{e:do{if(!(r[w+8>>0]|0))t=1;else{t=0;while(1){if((t|0)>=(I|0)){t=1;break e}b=a[C>>2]|0;if((w|0)==(a[b+(t*12|0)>>2]|0))break;t=t+1|0}t=r[b+(t*12|0)+4>>0]|0}}while(0);t=hs(A,e,t,a[u+(o<<4)+4>>2]|0,a[u+(o<<4)+8>>2]|0,D)|0;if(t|0)break A;a[F+(i<<2)>>2]=a[M>>2]}a[M>>2]=a[h>>2];t=a[w+4>>2]|0;do{if(t)if(r[w+9>>0]|0){t=Rs(A,t,w,a[F+(i<<2)>>2]|0,l)|0;if(!t){t=B;break}else break A}else{r[(a[w>>2]|0)+-1>>0]=2;s=s+1|0;t=B+2|0;break}else t=B+2|0}while(0);B=t;o=o+1|0}if((m|0)==15){if((a[A+144>>2]|0)!=(e|0)){t=8;break}a[A+284>>2]=a[(a[g>>2]|0)+(o<<4)>>2];t=8;break}a[A+380>>2]=B;t=a[c+8>>2]|0;e:do{if((t|0)!=0?(E=a[t>>2]|0,(r[E+-1>>0]|0)!=0):0){t=0;while(1){if((t|0)>=(B|0)){i=0;o=s;Y=B;break e}if((a[F+(t<<2)>>2]|0)==(E|0)){m=37;break e}t=t+2|0}}else{t=-1;m=37}}while(0);if((m|0)==37){a[A+384>>2]=t;i=0;o=s;Y=B}while(1){if((i|0)>=(I|0))break;t=a[C>>2]|0;u=t+(i*12|0)|0;s=a[u>>2]|0;b=(a[s>>2]|0)+-1|0;e:do{if((r[b>>0]|0)==0?(Z=t+(i*12|0)+8|0,G=a[Z>>2]|0,(G|0)!=0):0){t=a[s+4>>2]|0;do{if(t)if(r[s+9>>0]|0){t=Rs(A,t,s,G,l)|0;if(!t){t=o;s=Y;break e}else break A}else{r[b>>0]=2;t=o+1|0;break}else{r[b>>0]=1;t=o}}while(0);a[F+(Y<<2)>>2]=a[a[u>>2]>>2];a[F+(Y+1<<2)>>2]=a[Z>>2];s=Y+2|0}else{t=o;s=Y}}while(0);i=i+1|0;o=t;Y=s}a[F+(Y<<2)>>2]=0;e:do{if(!o)t=0;else{w=A+396|0;u=a[w>>2]|0;z=A+400|0;i=r[z>>0]|0;t=i&255;do{if(!(o<<1>>t)){t=1<>24}while((o>>(W&255)|0)!=0);t=(t&255)>3?t:3;r[z>>0]=t;t=t&255;b=A+392|0;s=Q5[a[A+16>>2]&127](a[b>>2]|0,12<>0]=i;t=1;break A}else{a[b>>2]=s;s=1<>2]|0)+(W*12|0)>>2]=-1;t=W}}}while(0);W=t+-1|0;a[w>>2]=W;C=p+40|0;I=A+424|0;Z=A+420|0;G=s+-1|0;m=0-s|0;Q=G>>>2;L=A+233|0;y=A+468|0;t=0;E=o;i:while(1){while(1){if((t|0)>=(Y|0))break e;e=F+(t<<2)|0;u=a[e>>2]|0;i=u+-1|0;if((r[i>>0]|0)==2)break;r[i>>0]=0;t=t+2|0}Xs(A,J);Hs(V,J);r[i>>0]=0;i=ls(A,C,u,0)|0;if(!i){t=1;break}i=a[i+4>>2]|0;if(!i){t=1;break}v=a[i+4>>2]|0;if(!v){t=27;break}h=v+20|0;d=v+16|0;o=0;while(1){i=a[h>>2]|0;w=a[d>>2]|0;if((o|0)>=(i|0))break;w=r[w+o>>0]|0;i=a[I>>2]|0;if((i|0)==(a[Z>>2]|0)){if(!((os(D)|0)<<24>>24)){t=1;break i}i=a[I>>2]|0}a[I>>2]=i+1;r[i>>0]=w;o=o+1|0}Us(V,w,i);do{g=u;u=u+1|0}while((r[g>>0]|0)!=58);Us(V,u,xs(u)|0);while(1){i=a[I>>2]|0;if((i|0)==(a[Z>>2]|0)){if(!((os(D)|0)<<24>>24)){t=1;break i}i=a[I>>2]|0}g=r[u>>0]|0;a[I>>2]=i+1;r[i>>0]=g;if(!(r[u>>0]|0))break;else u=u+1|0}g=Ts(V)|0;h=a[b>>2]|0;d=g&m;u=0;B=G&g;while(1){if((a[h+(B*12|0)>>2]|0)!=(W|0))break;if((a[h+(B*12|0)+4>>2]|0)==(g|0)){i=a[h+(B*12|0)+8>>2]|0;w=a[M>>2]|0;while(1){X=r[w>>0]|0;o=X<<24>>24==0;if(o|X<<24>>24!=(r[i>>0]|0))break;i=i+1|0;w=w+1|0}if(o){t=8;break i}}if(!(u<<24>>24))u=(d>>>((n[z>>0]|0)+-1|0)&Q|1)&255;X=u&255;B=B+((B|0)<(X|0)?s:0)-X|0}if(r[L>>0]|0){r[(a[I>>2]|0)+-1>>0]=r[y>>0]|0;i=a[a[v>>2]>>2]|0;while(1){u=a[I>>2]|0;if((u|0)==(a[Z>>2]|0)){if(!((os(D)|0)<<24>>24)){t=1;break i}u=a[I>>2]|0}X=r[i>>0]|0;a[I>>2]=u+1;r[u>>0]=X;if(!(r[i>>0]|0))break;else i=i+1|0}}X=a[M>>2]|0;a[M>>2]=a[I>>2];a[e>>2]=X;a[(a[b>>2]|0)+(B*12|0)>>2]=W;a[(a[b>>2]|0)+(B*12|0)+4>>2]=g;a[(a[b>>2]|0)+(B*12|0)+8>>2]=X;E=E+-1|0;t=t+2|0;if(!E)break e}break A}}while(0);while(1){if((t|0)>=(Y|0)){t=l;break}r[(a[F+(t<<2)>>2]|0)+-1>>0]=0;t=t+2|0}while(1){t=a[t>>2]|0;if(!t)break;r[(a[a[t+12>>2]>>2]|0)+-1>>0]=0;t=t+4|0}if(!(r[A+232>>0]|0))t=0;else{t=a[c+4>>2]|0;if(!t){t=a[p+156>>2]|0;if(!t){t=0;break}s=a[f>>2]|0}else{t=a[t+4>>2]|0;if(!t){t=27;break}c=a[f>>2]|0;while(1){s=c+1|0;if((r[c>>0]|0)==58)break;else c=s}}if((r[A+233>>0]|0)!=0?(N=a[a[t>>2]>>2]|0,(N|0)!=0):0){c=0;while(1){b=c+1|0;if(!(r[N+c>>0]|0))break;else c=b}}else b=0;a[f+4>>2]=s;o=t+20|0;a[f+16>>2]=a[o>>2];a[f+8>>2]=a[a[t>>2]>>2];a[f+20>>2]=b;h=0;while(1){d=h+1|0;if(!(r[s+h>>0]|0))break;else h=d}c=a[o>>2]|0;u=d+b+c|0;i=t+24|0;if((u|0)>(a[i>>2]|0)){c=u+24|0;w=m5[a[A+12>>2]&63](c)|0;if(!w){t=1;break}a[i>>2]=c;i=t+16|0;W6(w|0,a[i>>2]|0,a[o>>2]|0)|0;c=A+360|0;while(1){c=a[c>>2]|0;if(!c)break;u=c+12|0;if((a[u>>2]|0)==(a[i>>2]|0))a[u>>2]=w}F5[a[A+20>>2]&127](a[i>>2]|0);a[i>>2]=w;u=w;c=a[o>>2]|0}else{u=t+16|0;i=u;u=a[u>>2]|0}c=u+c|0;W6(c|0,s|0,d|0)|0;if(b|0){X=c+h|0;r[X>>0]=r[A+468>>0]|0;W6(X+1|0,a[a[t>>2]>>2]|0,b|0)|0}a[f>>2]=a[i>>2];t=0}}}while(0);k=R;return t|0}function Ys(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;r=A+104|0;f=A+372|0;i=A+4|0;while(1){if(!e)break;A=a[r>>2]|0;if(!A)A=e;else{V5[A&63](a[i>>2]|0,a[a[e>>2]>>2]|0);A=e}l=e+4|0;n=a[l>>2]|0;a[l>>2]=a[f>>2];a[f>>2]=e;a[(a[A>>2]|0)+4>>2]=a[e+8>>2];e=n}return}function Ds(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0;h=k;k=k+16|0;c=h;a[A+276>>2]=62;s=A+284|0;a[s>>2]=e;b=A+144|0;u=A+288|0;w=A+80|0;t=A+476|0;n=e;A:while(1){a[c>>2]=0;d=a[b>>2]|0;d=W5[a[d>>2]&127](d,n,i,c)|0;e=a[c>>2]|0;a[u>>2]=e;l=e;switch(d|0){case-15:{o=3;break A}case-4:{o=7;break A}case 0:{o=12;break A}case-1:{o=13;break A}case-2:{o=15;break A}case 15:{if(a[w>>2]|0)Bs(A,a[b>>2]|0,n,l);break}case 11:{if(!(Zs(A,a[b>>2]|0,n,l)|0)){e=1;break A}break}case 13:{if(!(Gs(A,a[b>>2]|0,n,l)|0)){e=1;break A}break}default:{e=9;break A}}e=a[c>>2]|0;a[s>>2]=e;switch(a[t>>2]|0){case 2:{e=35;break A}case 3:{o=18;break A}default:{}}n=e}do{if((o|0)==3){if(a[w>>2]|0){Bs(A,a[b>>2]|0,n,l);if((a[t>>2]|0)==2){e=35;break}e=a[c>>2]|0}a[f>>2]=e;e=0}else if((o|0)==7){a[f>>2]=n;e=0}else if((o|0)==12){a[s>>2]=e;e=4}else if((o|0)==13)if(!(r[A+480>>0]|0)){a[f>>2]=n;e=0}else e=5;else if((o|0)==15)if(!(r[A+480>>0]|0)){a[f>>2]=n;e=0}else e=6;else if((o|0)==18){a[f>>2]=e;e=0}}while(0);k=h;return e|0}function Ms(A,e,i,f,n,l){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;l=l|0;var t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0;Q=k;k=k+16|0;Z=Q+8|0;G=Q+4|0;I=Q;t=a[i>>2]|0;a[Z>>2]=t;if((a[A+144>>2]|0)==(e|0)){B=A+284|0;a[B>>2]=t;g=A+288|0}else{g=a[A+296>>2]|0;B=g;g=g+4|0}a[B>>2]=t;a[i>>2]=0;s=e+8|0;b=A+60|0;v=A+80|0;E=A+4|0;C=A+476|0;u=e+68|0;w=A+44|0;o=e+56|0;h=A+48|0;A:while(1){c=W5[a[s>>2]&127](e,a[Z>>2]|0,f,G)|0;t=a[G>>2]|0;a[g>>2]=t;d=t;e:do{switch(c|0){case 40:{m=6;break A}case 0:{m=23;break A}case-2:{m=24;break A}case-4:case-1:{m=26;break A}case 7:{t=a[b>>2]|0;if(t|0){r[I>>0]=10;J5[t&127](a[E>>2]|0,I,1);break e}if(a[v>>2]|0)Bs(A,e,a[Z>>2]|0,d);break}case 6:{c=a[b>>2]|0;if(!c){if(!(a[v>>2]|0))break e;Bs(A,e,a[Z>>2]|0,d);break e}if(!(r[u>>0]|0))t=d;else{d=a[Z>>2]|0;J5[c&127](a[E>>2]|0,d,t-d|0);break e}while(1){a[I>>2]=a[w>>2];d=z5[a[o>>2]&127](e,Z,t,I,a[h>>2]|0)|0;a[g>>2]=a[G>>2];t=a[w>>2]|0;J5[c&127](a[E>>2]|0,t,(a[I>>2]|0)-t|0);if(d>>>0<2)break;a[B>>2]=a[Z>>2];t=a[G>>2]|0}break}default:{m=28;break A}}}while(0);d=a[G>>2]|0;a[Z>>2]=d;a[B>>2]=d;switch(a[C>>2]|0){case 3:{m=30;break A}case 2:{t=35;break A}default:{}}}if((m|0)==6){t=a[A+76>>2]|0;if(!t){if(a[v>>2]|0)Bs(A,e,a[Z>>2]|0,d)}else F5[t&127](a[E>>2]|0);t=a[G>>2]|0;a[i>>2]=t;a[n>>2]=t;t=(a[C>>2]|0)==2?35:0}else if((m|0)==23){a[B>>2]=t;t=4}else if((m|0)==24)if(!(l<<24>>24))t=6;else{a[n>>2]=a[Z>>2];t=0}else if((m|0)==26)if(!(l<<24>>24))t=20;else{a[n>>2]=a[Z>>2];t=0}else if((m|0)==28){a[B>>2]=t;t=23}else if((m|0)==30){a[n>>2]=a[G>>2];t=0}k=Q;return t|0}function Fs(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0;l=k;k=k+16|0;n=l;a[n>>2]=e;e=Ms(A,a[A+144>>2]|0,n,i,f,(r[A+480>>0]|0)==0&1)|0;n=a[n>>2]|0;do{if(!((e|0)!=0|(n|0)==0)){e=A+276|0;if(!(a[A+472>>2]|0)){a[e>>2]=58;e=cs(A,n,i,f)|0;break}else{a[e>>2]=63;e=Vs(A,n,i,f)|0;break}}}while(0);k=l;return e|0}function Vs(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;e=Ls(A,1,a[A+144>>2]|0,e,i,f,(r[A+480>>0]|0)==0&1)|0;if((e|0)==0?(Js(A)|0)<<24>>24==0:0)e=1;return e|0}function Js(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0;u=A+16|0;A=A+360|0;while(1){A=a[A>>2]|0;if(!A){A=1;break}t=(a[A+24>>2]|0)+1|0;c=A+36|0;f=a[c>>2]|0;r=f+t|0;b=A+4|0;i=a[b>>2]|0;if((i|0)==(r|0)){A=1;break}s=A+8|0;e=a[s>>2]|0;n=e+t|0;l=A+40|0;if((n|0)>((a[l>>2]|0)-f|0)){r=Q5[a[u>>2]&127](f,n)|0;if(!r){A=0;break}e=A+12|0;f=a[c>>2]|0;if((a[e>>2]|0)==(f|0))a[e>>2]=r;e=A+16|0;i=a[e>>2]|0;if(i|0)a[e>>2]=r+(i-f);a[c>>2]=r;a[l>>2]=r+n;r=r+t|0;i=a[b>>2]|0;e=a[s>>2]|0}W6(r|0,i|0,e|0)|0;a[b>>2]=r}return A|0}function ps(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0;f=A+12|0;n=A+8|0;while(1){i=a[f>>2]|0;if((i|0)==(a[n>>2]|0)){if(!((os(A)|0)<<24>>24)){e=0;break}i=a[f>>2]|0}t=r[e>>0]|0;a[f>>2]=i+1;r[i>>0]=t;if(!(r[e>>0]|0)){l=6;break}else e=e+1|0}if((l|0)==6){t=A+16|0;e=a[t>>2]|0;a[t>>2]=a[f>>2]}return e|0}function Ns(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;w=a[A+352>>2]|0;c=w+80|0;s=w+92|0;b=w+88|0;u=w+60|0;w=w+96|0;t=e+4|0;l=a[e>>2]|0;A:while(1){switch(r[l>>0]|0){case 0:{i=1;break A}case 58:{n=a[e>>2]|0;while(1){i=a[s>>2]|0;f=(i|0)==(a[b>>2]|0);if((n|0)==(l|0))break;if(f){if(!((os(c)|0)<<24>>24)){i=0;break A}i=a[s>>2]|0}f=r[n>>0]|0;a[s>>2]=i+1;r[i>>0]=f;n=n+1|0}if(f){if(!((os(c)|0)<<24>>24)){i=0;break A}i=a[s>>2]|0}a[s>>2]=i+1;r[i>>0]=0;i=ls(A,u,a[w>>2]|0,8)|0;if(!i){i=0;break A}f=a[w>>2]|0;if((a[i>>2]|0)==(f|0))a[w>>2]=a[s>>2];else a[s>>2]=f;a[t>>2]=i;break}default:{}}l=l+1|0}return i|0}function Rs(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0;s=r[f>>0]|0;t=a[e>>2]|0;l=(t|0)==0;do{if(!(s<<24>>24))if(l){u=0;c=11}else l=28;else if(((!l?(r[t>>0]|0)==120:0)?(r[t+1>>0]|0)==109:0)?(r[t+2>>0]|0)==108:0){l=r[t+3>>0]|0;if((l<<24>>24==110?(r[t+4>>0]|0)==115:0)?(r[t+5>>0]|0)==0:0){l=39;break}u=l<<24>>24==0&1;c=11}else{u=0;c=11}}while(0);A:do{if((c|0)==11){b=u<<24>>24!=0;l=1;t=1;w=0;while(1){c=t<<24>>24!=0;if(!(s<<24>>24))break;do{if(c){if((w|0)<=36?s<<24>>24==(r[142257+w>>0]|0):0)break;t=0}else t=0}while(0);do{if(!(b|l<<24>>24==0)){if((w|0)<=29?s<<24>>24==(r[142294+w>>0]|0):0)break;l=0}}while(0);s=w+1|0;w=s;s=r[f+s>>0]|0}if((u&255|0)!=(c&(w|0)==36&1|0)){l=b?38:40;break}if(!(l<<24>>24!=0&(w|0)==29)){k=A+468|0;w=w+((r[k>>0]|0)!=0&1)|0;l=A+372|0;c=a[l>>2]|0;do{if(!c){l=A+12|0;t=m5[a[l>>2]&63](28)|0;if(!t){l=1;break A}c=w+24|0;u=m5[a[l>>2]&63](c)|0;a[t+16>>2]=u;if(!u){F5[a[A+20>>2]&127](t);l=1;break A}else{a[t+24>>2]=c;c=t;break}}else{t=c+24|0;if((w|0)>(a[t>>2]|0)){s=c+16|0;b=w+24|0;u=Q5[a[A+16>>2]&127](a[s>>2]|0,b)|0;if(!u){l=1;break A}a[s>>2]=u;a[t>>2]=b}a[l>>2]=a[c+4>>2]}}while(0);a[c+20>>2]=w;t=c+16|0;W6(a[t>>2]|0,f|0,w|0)|0;l=r[k>>0]|0;if(l<<24>>24)r[(a[t>>2]|0)+(w+-1)>>0]=l;a[c>>2]=e;a[c+12>>2]=i;t=e+4|0;a[c+8>>2]=a[t>>2];if((r[f>>0]|0)==0?((a[A+352>>2]|0)+152|0)==(e|0):0)l=0;else l=c;a[t>>2]=l;a[c+4>>2]=a[n>>2];a[n>>2]=c;if((i|0)!=0?(o=a[A+100>>2]|0,(o|0)!=0):0){J5[o&127](a[A+4>>2]|0,a[e>>2]|0,a[t>>2]|0?f:0);l=0}else l=0}else l=40}}while(0);return l|0}function Xs(A,e){A=A|0;e=e|0;var i=0;i=e;a[i>>2]=0;a[i+4>>2]=0;e=e+8|0;a[e>>2]=Ps(A)|0;a[e+4>>2]=0;return}function Hs(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;i=e;n=a[i+4>>2]^1936682341;r=A;a[r>>2]=a[i>>2]^1886610805;a[r+4>>2]=n;r=e+8|0;n=r;i=a[n+4>>2]^1685025377;f=A+8|0;a[f>>2]=a[n>>2]^1852075885;a[f+4>>2]=i;f=e;e=a[f+4>>2]^1819895653;i=A+16|0;a[i>>2]=a[f>>2]^1852142177;a[i+4>>2]=e;i=a[r+4>>2]^1952801890;e=A+24|0;a[e>>2]=a[r>>2]^2037671283;a[e+4>>2]=i;a[A+40>>2]=A+32;e=A+48|0;a[e>>2]=0;a[e+4>>2]=0;return}function Us(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0;w=e+i|0;k=A+40|0;o=A+40|0;h=A+32|0;d=A+33|0;B=A+34|0;g=A+35|0;l=A+36|0;t=A+37|0;c=A+38|0;s=A+39|0;b=A+24|0;u=A+48|0;i=e;do{while(1){f=a[k>>2]|0;if(i>>>0>=w>>>0){e=0;break}if(f>>>0>=o>>>0){e=1;break}e=r[i>>0]|0;a[k>>2]=f+1;r[f>>0]=e;i=i+1|0}if(f>>>0>>0)break;G=n[h>>0]|0;m=G6(n[d>>0]|0|0,0,8)|0;f=L;Z=G6(n[B>>0]|0|0,0,16)|0;f=f|L;C=G6(n[g>>0]|0|0,0,24)|0;f=f|L|(n[l>>0]|0);v=G6(n[t>>0]|0|0,0,40)|0;f=f|L;I=G6(n[c>>0]|0|0,0,48)|0;f=f|L;E=G6(n[s>>0]|0|0,0,56)|0;E=m|G|Z|C|v|I|E;f=f|L;I=b;v=f^a[I+4>>2];C=b;a[C>>2]=E^a[I>>2];a[C+4>>2]=v;js(A,2);C=A;f=a[C+4>>2]^f;v=A;a[v>>2]=a[C>>2]^E;a[v+4>>2]=f;a[k>>2]=h;v=u;v=d6(a[v>>2]|0,a[v+4>>2]|0,8,0)|0;f=u;a[f>>2]=v;a[f+4>>2]=L}while(e);return}function xs(A){A=A|0;var e=0;e=0;while(1){if(!(r[A>>0]|0))break;e=e+1|0;A=A+1|0}return e|0}function Ts(A){A=A|0;var e=0,i=0,r=0,f=0,l=0,t=0;r=A+32|0;l=(a[A+40>>2]|0)-r|0;i=A+48|0;i=d6(a[i>>2]|0,a[i+4>>2]|0,l|0,0)|0;i=G6(i|0,L|0,56)|0;e=L;switch(l<<24>>24|0){case 7:{i=G6(n[A+38>>0]|0|0,0,48)|0|i;e=L|e;f=3;break}case 6:{f=3;break}case 5:{f=4;break}case 4:{f=5;break}case 3:{f=6;break}case 2:{f=7;break}case 1:{f=8;break}default:{}}if((f|0)==3){l=G6(n[A+37>>0]|0|0,0,40)|0;i=l|i;e=L|e;f=4}if((f|0)==4){e=n[A+36>>0]|0|e;f=5}if((f|0)==5){l=G6(n[A+35>>0]|0|0,0,24)|0;i=l|i;e=L|e;f=6}if((f|0)==6){l=G6(n[A+34>>0]|0|0,0,16)|0;i=l|i;e=L|e;f=7}if((f|0)==7){l=G6(n[A+33>>0]|0|0,0,8)|0;e=L|e;i=l|i;f=8}if((f|0)==8)i=i|(n[r>>0]|0);l=A+24|0;t=l;f=a[t+4>>2]^e;r=l;a[r>>2]=a[t>>2]^i;a[r+4>>2]=f;js(A,2);r=A;e=a[r+4>>2]^e;f=A;a[f>>2]=a[r>>2]^i;a[f+4>>2]=e;f=A+16|0;e=f;i=a[e+4>>2]|0;r=f;a[r>>2]=a[e>>2]^255;a[r+4>>2]=i;js(A,4);r=A;A=A+8|0;L=a[A+4>>2]^a[r+4>>2]^a[f+4>>2]^a[l+4>>2];return a[A>>2]^a[r>>2]^a[f>>2]^a[l>>2]|0}function js(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0;r=A+8|0;f=A+24|0;n=A+16|0;i=0;while(1){if((i|0)>=(e|0))break;l=r;w=a[l>>2]|0;l=a[l+4>>2]|0;k=A;k=d6(a[k>>2]|0,a[k+4>>2]|0,w|0,l|0)|0;s=L;u=G6(w|0,l|0,13)|0;b=L;l=Z6(w|0,l|0,51)|0;l=(u|l)^k;b=(b|L)^s;u=f;w=a[u>>2]|0;u=a[u+4>>2]|0;c=n;c=d6(a[c>>2]|0,a[c+4>>2]|0,w|0,u|0)|0;t=L;h=G6(w|0,u|0,16)|0;o=L;u=Z6(w|0,u|0,48)|0;u=(h|u)^c;o=(o|L)^t;k=d6(s|0,k|0,u|0,o|0)|0;s=L;h=A;a[h>>2]=k;a[h+4>>2]=s;h=G6(u|0,o|0,21)|0;w=L;o=Z6(u|0,o|0,43)|0;u=f;a[u>>2]=(h|o)^k;a[u+4>>2]=(w|L)^s;t=d6(c|0,t|0,l|0,b|0)|0;c=L;u=G6(l|0,b|0,17)|0;s=L;b=Z6(l|0,b|0,47)|0;l=r;a[l>>2]=(u|b)^t;a[l+4>>2]=(s|L)^c;l=n;a[l>>2]=c;a[l+4>>2]=t;i=i+1|0}return}function Ps(A){A=A|0;var e=0;while(1){e=a[A+472>>2]|0;if(!e)break;else A=e}return a[A+492>>2]|0}function Ss(A,e,i,f,n,l){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;l=l|0;var t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0;J=k;k=k+16|0;M=J;F=J+4|0;V=a[A+352>>2]|0;w=e+16|0;o=e+40|0;h=A+144|0;d=A+284|0;B=i<<24>>24==0;g=l+12|0;E=l+16|0;C=l+8|0;I=e+44|0;Z=e+64|0;G=A+436|0;m=A+452|0;Q=A+448|0;L=(V+80|0)==(l|0);y=A+268|0;W=V+130|0;z=V+129|0;Y=A+296|0;D=A+224|0;t=0;A:while(1){e:while(1){switch(W5[a[w>>2]&127](e,f,n,M)|0){case-4:{t=0;u=61;break A}case 0:{u=4;break A}case-1:{u=6;break A}case 6:{u=21;break e}case-3:{u=22;break e}case 7:case 39:{u=23;break e}case 10:{c=Q5[a[o>>2]&127](e,f)|0;i:do{if((c|0)<0)if((a[h>>2]|0)==(e|0)){a[d>>2]=f;c=1;t=14}else{c=1;t=14}else{if(B&(c|0)==32){s=a[g>>2]|0;if((a[E>>2]|0)==(s|0)){c=4;break}if((r[s+-1>>0]|0)==32){c=4;break}}b=db(c,F)|0;s=0;while(1){if((s|0)>=(b|0)){c=0;break i}c=a[g>>2]|0;if((c|0)==(a[C>>2]|0)){if(!((os(l)|0)<<24>>24)){c=1;t=1;break i}c=a[g>>2]|0}p=r[F+s>>0]|0;a[g>>2]=c+1;r[c>>0]=p;s=s+1|0}}}while(0);switch(c&7){case 4:case 0:break e;default:{}}break}case 9:{c=a[Z>>2]|0;c=(y5[a[I>>2]&63](e,f+c|0,(a[M>>2]|0)+(0-c)|0)|0)&255;if(c<<24>>24){u=31;break e}c=a[Z>>2]|0;c=as(G,e,f+c|0,(a[M>>2]|0)+(0-c)|0)|0;if(!c){t=1;u=61;break A}b=ls(A,V,c,0)|0;a[Q>>2]=a[m>>2];do{if(L){if(!(a[y>>2]|0))if(!b)break e;else break;if(!(r[W>>0]|0)){c=(b|0)!=0;if(!(r[z>>0]|0)){u=45;break}else{v=c;u=47;break}}else{c=(b|0)!=0;if(!(a[Y>>2]|0)){u=45;break}else{v=c;u=47;break}}}else if(!(r[z>>0]|0))if(!b){t=11;u=61;break A}else{u=46;break}else{c=(b|0)!=0;if(!(r[W>>0]|0)){v=c;u=47;break}else{u=45;break}}}while(0);if((u|0)==45)if(c)u=46;else{t=11;u=61;break A}else if((u|0)==47?(u=0,!v):0)break e;if((u|0)==46?(u=0,(r[b+34>>0]|0)==0):0){t=24;u=61;break A}s=b+32|0;if(r[s>>0]|0){u=49;break A}if(a[b+28>>2]|0){u=52;break A}c=a[b+4>>2]|0;if(!c){u=55;break A}b=c+(a[b+8>>2]|0)|0;r[s>>0]=1;b=Ss(A,a[D>>2]|0,i,c,b,l)|0;r[s>>0]=0;c=(b|0)==0;if(c)break e;else{c=(c^1)&1;t=b}break}default:{u=58;break A}}if(c)break A}if((u|0)==21){u=0;if(!(ws(l,e,f,a[M>>2]|0)|0)){t=1;u=61;break}}else if((u|0)==22){a[M>>2]=f+(a[Z>>2]|0);u=23}else if((u|0)==31){u=0;f=a[g>>2]|0;if((f|0)==(a[C>>2]|0)){if(!((os(l)|0)<<24>>24)){t=1;u=61;break}f=a[g>>2]|0}a[g>>2]=f+1;r[f>>0]=c}do{if((u|0)==23){u=0;f=a[g>>2]|0;if(B){if((a[E>>2]|0)==(f|0))break;if((r[f+-1>>0]|0)==32)break}if((f|0)==(a[C>>2]|0)){if(!((os(l)|0)<<24>>24)){t=1;u=61;break A}f=a[g>>2]|0}a[g>>2]=f+1;r[f>>0]=32}}while(0);f=a[M>>2]|0}if((u|0)==4)if((a[h>>2]|0)==(e|0)){a[d>>2]=a[M>>2];t=4;u=61}else{t=4;u=61}else if((u|0)==6)if((a[h>>2]|0)==(e|0)){a[d>>2]=f;t=4;u=61}else{t=4;u=61}else if((u|0)==49)if((a[h>>2]|0)==(e|0)){a[d>>2]=f;t=12;u=61}else{t=12;u=61}else if((u|0)==52)if((a[h>>2]|0)==(e|0)){a[d>>2]=f;t=15;u=61}else{t=15;u=61}else if((u|0)==55)if((a[h>>2]|0)==(e|0)){a[d>>2]=f;t=16;u=61}else{t=16;u=61}else if((u|0)==58)if((a[h>>2]|0)==(e|0)){a[d>>2]=f;t=23;u=61}else{t=23;u=61}k=J;return t|0}function Os(A){A=A|0;var e=0;e=A+8|0;return((A|0)<1?0:(e|0)>0?e:0)|0}function Ks(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;i=k;k=k+80|0;r=i+16|0;f=i;Xs(A,f);Hs(r,f);Us(r,e,xs(e)|0);e=Ts(r)|0;k=i;return e|0}function _s(A,e){A=A|0;e=e|0;var i=0;while(1){i=r[A>>0]|0;if(i<<24>>24!=(r[e>>0]|0)){e=0;break}if(!(i<<24>>24)){e=1;break}e=e+1|0;A=A+1|0}return e|0}function qs(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0;s=k;k=k+1040|0;t=s;f=a[A+124>>2]|0;A:do{if(!f)i=18;else{i=0;while(1){if((i|0)==256)break;a[t+(i<<2)>>2]=-1;i=i+1|0}n=t+1028|0;a[n>>2]=0;c=t+1024|0;a[c>>2]=0;l=t+1032|0;a[l>>2]=0;do{if(y5[f&63](a[A+244>>2]|0,e,t)|0){f=a[A+12>>2]|0;i=Bb()|0;i=m5[f&63](i)|0;a[A+236>>2]=i;if(!i){i=a[l>>2]|0;if(!i)i=1;else{F5[i&127](a[c>>2]|0);i=1}}else{i=W5[(r[A+232>>0]<<24>>24?65:64)&127](i,t,a[n>>2]|0,a[c>>2]|0)|0;if(!i)break;a[A+240>>2]=a[c>>2];a[A+248>>2]=a[l>>2];a[A+144>>2]=i;i=0}break A}}while(0);i=a[l>>2]|0;if(i|0)F5[i&127](a[c>>2]|0);i=18}}while(0);k=s;return i|0}function $s(A,e){A=A|0;e=e|0;r[A+4>>0]=0;a[A+8>>2]=0;a[A+12>>2]=0;a[A>>2]=0;a[A+16>>2]=e;return}function Ab(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0;b=a[A+352>>2]|0;u=A+424|0;w=A+420|0;k=A+412|0;o=A+428|0;h=b+152|0;d=A+368|0;c=b+60|0;s=b+80|0;A:while(1){l=e;e:while(1){if(!(r[e>>0]|0)){e=1;break A}f=r[l>>0]|0;switch(f<<24>>24){case 0:case 12:{B=5;break e}case 61:break e;default:{}}i=a[u>>2]|0;if((i|0)==(a[w>>2]|0)){if(!((os(k)|0)<<24>>24)){e=0;break A}i=a[u>>2]|0;f=r[l>>0]|0}a[u>>2]=i+1;r[i>>0]=f;l=l+1|0}if((B|0)==5){B=0;e=a[u>>2]|0;if((e|0)==(a[w>>2]|0)){if(!((os(k)|0)<<24>>24)){e=0;break}e=a[u>>2]|0}a[u>>2]=e+1;r[e>>0]=0;e=ls(A,b,a[o>>2]|0,0)|0;if(e|0)r[e+32>>0]=1;e=(r[l>>0]|0)==0?l:l+1|0;a[u>>2]=a[o>>2];continue}e=a[u>>2]|0;if((a[o>>2]|0)==(e|0))f=h;else{if((e|0)==(a[w>>2]|0)){if(!((os(k)|0)<<24>>24)){e=0;break}e=a[u>>2]|0}a[u>>2]=e+1;r[e>>0]=0;f=ls(A,c,a[o>>2]|0,8)|0;if(!f){e=0;break}i=a[f>>2]|0;t=a[o>>2]|0;e=t;if((i|0)==(t|0)){t=ps(s,i)|0;a[f>>2]=t;if(!t){e=0;break}e=a[o>>2]|0}a[u>>2]=e}e:while(1){t=l+1|0;i=r[t>>0]|0;n=(e|0)==(a[w>>2]|0);switch(i<<24>>24){case 0:case 12:break e;default:{}}if(n){if(!((os(k)|0)<<24>>24)){e=0;break A}e=a[u>>2]|0;i=r[t>>0]|0}a[u>>2]=e+1;r[e>>0]=i;l=t;e=a[u>>2]|0}if(n){if(!((os(k)|0)<<24>>24)){e=0;break}e=a[u>>2]|0}a[u>>2]=e+1;r[e>>0]=0;if(Rs(A,f,0,a[o>>2]|0,d)|0){e=0;break}a[u>>2]=a[o>>2];e=(r[t>>0]|0)==0?t:l+2|0}return e|0}function eb(A,e){A=A|0;e=e|0;var i=0,r=0;if(A|0?(i=A+4|0,r=(a[i>>2]|0)==(a[A>>2]|0),a[A>>2]=e,r):0)a[i>>2]=e;return}function ib(A,e,i){A=A|0;e=e|0;i=i|0;if(A|0){a[A+52>>2]=e;a[A+56>>2]=i}return}function rb(A,e){A=A|0;e=e|0;if(A|0)a[A+60>>2]=e;return}function fb(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0;n=(A|0)==0;A:do{if(!(n|(i|0)<0)?!((e|0)==0&(i|0)!=0):0){l=A+476|0;switch(a[l>>2]|0){case 3:{a[A+280>>2]=33;n=0;break A}case 2:{a[A+280>>2]=36;n=0;break A}case 0:{if((a[A+472>>2]|0)==0?(ab(A)|0)<<24>>24==0:0){a[A+280>>2]=1;n=0;break A}break}default:{}}a[l>>2]=1;if(i|0){n=lb(A,i)|0;if(!n){n=0;break}W6(n|0,e|0,i|0)|0;n=tb(A,i,f)|0;break}r[A+480>>0]=f;if(!f)n=1;else{n=A+24|0;c=a[n>>2]|0;e=A+292|0;a[e>>2]=c;f=a[A+28>>2]|0;a[A+40>>2]=f;i=A+276|0;f=W5[a[i>>2]&127](A,c,f,n)|0;a[A+280>>2]=f;if(f|0){a[A+288>>2]=a[A+284>>2];a[i>>2]=66;n=0;break}switch(a[l>>2]|0){case 3:{c=a[A+144>>2]|0;N5[a[c+48>>2]&31](c,a[e>>2]|0,a[n>>2]|0,A+404|0);a[e>>2]=a[n>>2];n=2;break A}case 1:case 0:{a[l>>2]=2;n=1;break A}default:{n=1;break A}}}}else t=3}while(0);if((t|0)==3)if(n)n=0;else{a[A+280>>2]=41;n=0}return n|0}function ab(A){A=A|0;var e=0;e=A+492|0;if(!(a[e>>2]|0))a[e>>2]=cb()|0;if(!(r[A+232>>0]|0))A=1;else A=Ab(A,142324)|0;return A|0}function nb(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;return a[A+280>>2]|0}function lb(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0;A:do{if(!A)i=0;else{if((e|0)<0){a[A+280>>2]=1;i=0;break}switch(a[A+476>>2]|0){case 3:{a[A+280>>2]=33;i=0;break A}case 2:{a[A+280>>2]=36;i=0;break A}default:{u=A+32|0;c=a[u>>2]|0;w=A+28|0;r=a[w>>2]|0;i=r;if((c-r|0)>=(e|0))break A;o=A+24|0;s=a[o>>2]|0;t=r-s|0;r=t+e|0;if((r|0)<0){a[A+280>>2]=1;i=0;break A}b=A+8|0;f=a[b>>2]|0;h=f;n=s-h|0;l=(n|0)>1024;e=l?1024:n;r=e+r|0;do{if((r|0)>(c-h|0)){i=c-s|0;i=(i|0)==0?1024:i;do{i=i<<1}while((i|0)<(r|0)&(i|0)>0);if((i|0)<1){a[A+280>>2]=1;i=0;break A}r=m5[a[A+12>>2]&63](i)|0;if(!r){a[A+280>>2]=1;i=0;break A}a[u>>2]=r+i;i=a[o>>2]|0;if(!i){i=r+(a[w>>2]|0)|0;a[w>>2]=i;a[b>>2]=r;k=22;break}else{h=i;k=h-(a[b>>2]|0)|0;k=(k|0)<1024?k:1024;W6(r|0,i+(0-k)|0,(a[w>>2]|0)-h+k|0)|0;F5[a[A+20>>2]&127](a[b>>2]|0);a[b>>2]=r;i=r+((a[w>>2]|0)-(a[o>>2]|0))+k|0;a[w>>2]=i;r=r+k|0;k=22;break}}else if(l){r=n-e|0;z6(f|0,f+r|0,e+t|0)|0;r=0-r|0;i=(a[w>>2]|0)+r|0;a[w>>2]=i;r=(a[o>>2]|0)+r|0;k=22}}while(0);if((k|0)==22)a[o>>2]=r;a[A+288>>2]=0;a[A+284>>2]=0;a[A+292>>2]=0;break A}}}}while(0);return i|0}function tb(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0;A:do{if(!A)e=0;else{f=A+476|0;switch(a[f>>2]|0){case 3:{a[A+280>>2]=33;e=0;break A}case 2:{a[A+280>>2]=36;e=0;break A}case 0:{if((a[A+472>>2]|0)==0?(ab(A)|0)<<24>>24==0:0){a[A+280>>2]=1;e=0;break A}break}default:{}}a[f>>2]=1;n=A+24|0;c=a[n>>2]|0;l=A+292|0;a[l>>2]=c;s=A+28|0;t=(a[s>>2]|0)+e|0;a[s>>2]=t;a[A+40>>2]=t;s=A+36|0;a[s>>2]=(a[s>>2]|0)+e;r[A+480>>0]=i;e=A+276|0;t=W5[a[e>>2]&127](A,c,t,n)|0;a[A+280>>2]=t;if(t|0){a[A+288>>2]=a[A+284>>2];a[e>>2]=66;e=0;break}switch(a[f>>2]|0){case 3:{e=2;break}case 1:case 0:{if(!i)e=1;else{a[f>>2]=2;e=1;break A}break}default:e=1}s=a[A+144>>2]|0;N5[a[s+48>>2]&31](s,a[l>>2]|0,a[n>>2]|0,A+404|0);a[l>>2]=a[n>>2]}}while(0);return e|0}function cb(){var A=0,e=0,i=0;e=k;k=k+16|0;A=e;if(!(sb(A)|0)){i=ub()|0;i=(z3()|0)^i;a[A>>2]=i;A=bb(142378,U(i,2147483647)|0)|0}else A=bb(142365,a[A>>2]|0)|0;k=e;return A|0}function sb(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;f=k;k=k+16|0;r=S2(142365,0,f)|0;if((r|0)<0)e=0;else{e=0;while(1){n=W3(r,A+e|0,4-e|0)|0;i=n+e|0;if((n|0)>0)if(i>>>0<4)e=i;else{e=1;break}if((a[(N2()|0)>>2]|0)!=4){e=0;break}}P4(r)|0}k=f;return e|0}function bb(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;f=k;k=k+16|0;r=f;i=SA(142443)|0;if(i|0?(A1(i,142463)|0)==0:0){i=a[15712]|0;a[r>>2]=A;a[r+4>>2]=8;a[r+8>>2]=e;a[r+12>>2]=4;f3(i,142465,r)|0}k=f;return e|0}function ub(){var A=0,e=0;e=k;k=k+16|0;A=e;if(!(OA(A|0,0)|0)){k=e;return a[A+4>>2]|0}else gA(142390,142412,819,142423);return 0}function wb(A){A=A|0;if(!A)A=41;else A=a[A+280>>2]|0;return A|0}function kb(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;if(!A)A=0;else{e=A+284|0;i=a[e>>2]|0;if(i|0?(r=A+292|0,f=a[r>>2]|0,i>>>0>=f>>>0):0){n=a[A+144>>2]|0;N5[a[n+48>>2]&31](n,f,i,A+404|0);a[r>>2]=a[e>>2]}A=(a[A+404>>2]|0)+1|0}return A|0}function ob(A){A=A|0;do{switch(A|0){case 41:{A=142502;break}case 1:{A=143774;break}case 2:{A=143761;break}case 3:{A=143744;break}case 4:{A=143712;break}case 5:{A=143697;break}case 6:{A=143679;break}case 7:{A=143664;break}case 8:{A=143644;break}case 9:{A=143616;break}case 10:{A=143581;break}case 11:{A=143564;break}case 12:{A=143537;break}case 13:{A=143517;break}case 14:{A=143479;break}case 15:{A=143452;break}case 16:{A=143410;break}case 17:{A=143363;break}case 18:{A=143346;break}case 19:{A=143295;break}case 20:{A=143272;break}case 21:{A=143226;break}case 22:{A=143199;break}case 23:{A=143148;break}case 24:{A=143112;break}case 25:{A=143060;break}case 26:{A=143015;break}case 27:{A=143e3;break}case 28:{A=142974;break}case 29:{A=142936;break}case 30:{A=142904;break}case 31:{A=142871;break}case 32:{A=142837;break}case 33:{A=142820;break}case 34:{A=142799;break}case 35:{A=142783;break}case 36:{A=142766;break}case 37:{A=142722;break}case 38:{A=142642;break}case 39:{A=142583;break}case 40:{A=142519;break}default:A=0}}while(0);return A|0}function hb(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,l=0,t=0;i=a[e>>2]|0;r=0;A:while(1){if(i>>>0<=A>>>0)break;l=i+-1|0;f=n[l>>0]|0;do{if((f&248|0)==240)if((r+1|0)>>>0>3){t=5;break A}else r=0;else{if((f&240|0)==224)if((r+1|0)>>>0>2){t=8;break A}else{r=0;break}if((f&224|0)==192)if((r+1|0)>>>0>1){t=11;break A}else{r=0;break}else if(!(f&128))break A;else break}}while(0);i=l;r=r+1|0}if((t|0)==5)i=i+3|0;else if((t|0)==8)i=i+2|0;else if((t|0)==11)i=i+1|0;a[e>>2]=i;return}function db(A,e){A=A|0;e=e|0;do{if((A|0)>=0){if((A|0)<128){r[e>>0]=A;A=1;break}if((A|0)<2048){r[e>>0]=A>>>6|192;r[e+1>>0]=A&63|128;A=2;break}if((A|0)<65536){r[e>>0]=A>>>12|224;r[e+1>>0]=A>>>6&63|128;r[e+2>>0]=A&63|128;A=3;break}if((A|0)<1114112){r[e>>0]=A>>>18|240;r[e+1>>0]=A>>>12&63|128;r[e+2>>0]=A>>>6&63|128;r[e+3>>0]=A&63|128;A=4}else A=0}else A=0}while(0);return A|0}function Bb(){return 1908}function gb(A,e,i,l){A=A|0;e=e|0;i=i|0;l=l|0;var t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0;t=0;while(1){if((t|0)==364){t=0;break}r[A+t>>0]=r[56576+t>>0]|0;t=t+1|0}A:while(1){if((t|0)>=128){c=5;break}switch(r[56648+t>>0]|0){case 0:case 28:break;default:if((a[e+(t<<2)>>2]|0)!=(t|0)){A=0;break A}}t=t+1|0}A:do{if((c|0)==5){h=A+72|0;u=A+372|0;w=A+884|0;k=(i|0)==0;b=0;while(1){if((b|0)>=256)break;o=a[e+(b<<2)>>2]|0;do{if((o|0)==-1){r[h+b>>0]=1;f[u+(b<<1)>>1]=-1;r[w+(b<<2)>>0]=1;r[w+(b<<2)+1>>0]=0}else{if((o|0)<0){if(k|(o|0)<-4){A=0;break A}r[h+b>>0]=3-o;r[w+(b<<2)>>0]=0;f[u+(b<<1)>>1]=0;break}if((o|0)<128){t=r[56648+o>>0]|0;switch(t<<24>>24){case 0:case 28:break;default:if((o|0)!=(b|0)){A=0;break A}}r[h+b>>0]=t;r[w+(b<<2)>>0]=1;r[w+(b<<2)+1>>0]=o;f[u+(b<<1)>>1]=(o|0)==0?-1:o&65535;break}if((vb(o)|0)<0){r[h+b>>0]=0;f[u+(b<<1)>>1]=-1;r[w+(b<<2)>>0]=1;r[w+(b<<2)+1>>0]=0;break}if((o|0)>65535){A=0;break A}t=o>>>8;c=o>>>5&7;s=1<<(o&31);if(!(a[56940+((n[143788+t>>0]<<3|c)<<2)>>2]&s))r[h+b>>0]=a[56940+((n[144044+t>>0]<<3|c)<<2)>>2]&s|0?26:28;else r[h+b>>0]=22;r[w+(b<<2)>>0]=db(o,w+(b<<2)+1|0)|0;f[u+(b<<1)>>1]=o}}while(0);b=b+1|0}a[A+368>>2]=l;a[A+364>>2]=i;if(!k){a[A+328>>2]=108;a[A+332>>2]=108;a[A+336>>2]=108;a[A+340>>2]=109;a[A+344>>2]=109;a[A+348>>2]=109;a[A+352>>2]=110;a[A+356>>2]=110;a[A+360>>2]=110}a[A+56>>2]=13;a[A+60>>2]=14}}while(0);return A|0}function vb(A){A=A|0;var e=0;switch(A>>8|0){case 223:case 222:case 221:case 220:case 219:case 218:case 217:case 216:{A=-1;break}case 0:{if(!(r[56648+A>>0]|0))A=-1;else e=4;break}case 255:{if((A|1|0)==65535)A=-1;else e=4;break}default:e=4}return A|0}function Eb(A,e){A=A|0;e=e|0;A=Q5[a[A+364>>2]&127](a[A+368>>2]|0,e)|0;if(A>>>0>65535)A=0;else A=a[56940+(((n[144044+(A>>>8)>>0]|0)<<3|A>>>5&7)<<2)>>2]&1<<(A&31);return A|0}function Cb(A,e){A=A|0;e=e|0;A=Q5[a[A+364>>2]&127](a[A+368>>2]|0,e)|0;if(A>>>0>65535)A=0;else A=a[56940+(((n[143788+(A>>>8)>>0]|0)<<3|A>>>5&7)<<2)>>2]&1<<(A&31);return A|0}function Ib(A,e){A=A|0;e=e|0;A=Q5[a[A+364>>2]&127](a[A+368>>2]|0,e)|0;if(A>>>0>65535)A=1;else A=(vb(A)|0)>>>31;return A|0}function Zb(A,e,i,f,l){A=A|0;e=e|0;i=i|0;f=f|0;l=l|0;var t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0;h=k;k=k+16|0;b=h;u=A+364|0;w=A+884|0;o=A+368|0;s=A+72|0;while(1){t=a[e>>2]|0;if((t|0)==(i|0)){l=0;break}d=n[t>>0]|0;c=w+(d<<2)+1|0;d=r[w+(d<<2)>>0]|0;A=d<<24>>24;if(!(d<<24>>24)){A=db(Q5[a[u>>2]&127](a[o>>2]|0,t)|0,b)|0;if((A|0)>(l-(a[f>>2]|0)|0)){l=2;break}t=a[e>>2]|0;c=b;t=t+((n[s+(n[t>>0]|0)>>0]|0)+-3)|0}else{if((l-(a[f>>2]|0)|0)<(A|0)){l=2;break}t=t+1|0}a[e>>2]=t;W6(a[f>>2]|0,c|0,A|0)|0;a[f>>2]=(a[f>>2]|0)+A}k=h;return l|0}function Gb(A,e,i,r,l){A=A|0;e=e|0;i=i|0;r=r|0;l=l|0;var t=0,c=0,s=0,b=0,u=0,w=0,k=0;u=A+372|0;w=A+364|0;k=A+368|0;b=A+72|0;while(1){s=a[e>>2]|0;A=s>>>0>>0;t=a[r>>2]|0;if(!(A&t>>>0>>0))break;A=f[u+((n[s>>0]|0)<<1)>>1]|0;if(!(A<<16>>16)){A=(Q5[a[w>>2]&127](a[k>>2]|0,s)|0)&65535;t=a[e>>2]|0;c=(n[b+(n[t>>0]|0)>>0]|0)+-3|0}else{c=1;t=s}a[e>>2]=t+c;s=a[r>>2]|0;a[r>>2]=s+2;f[s>>1]=A}return((t|0)!=(l|0)|A^1?0:2)|0}function mb(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0;A:do{if(e>>>0>>0){w=A+72|0;do{switch(r[w+(n[e>>0]|0)>>0]|0){case 12:{l=Xq(12,A,e+1|0,i,f)|0;break A}case 13:{l=Xq(13,A,e+1|0,i,f)|0;break A}case 2:{l=e+1|0;if((i-l|0)<=0){l=-1;break A}switch(r[w+(n[l>>0]|0)>>0]|0){case 16:{l=Hq(A,e+2|0,i,f)|0;break A}case 15:{l=Jq(A,e+2|0,i,f)|0;break A}case 7:case 6:case 5:case 29:case 24:case 22:{a[f>>2]=e;l=29;break A}default:{a[f>>2]=l;l=0;break A}}}case 9:{if((e+1|0)==(i|0)){a[f>>2]=i;l=-15;break A}else s=3;break}case 10:case 21:{s=3;break}case 30:{l=zq(A,e+1|0,i,f)|0;break A}case 35:{a[f>>2]=e+1;l=38;break A}case 20:{a[f>>2]=e+1;l=25;break A}case 4:{t=e+1|0;l=i-t|0;if((l|0)<=0){l=-26;break A}if((r[t>>0]|0)==93){if((l|0)<=1){l=-1;break A}if((r[e+2>>0]|0)==62){a[f>>2]=e+3;l=34;break A}}a[f>>2]=t;l=26;break A}case 31:{a[f>>2]=e+1;l=23;break A}case 32:{l=e+1|0;if((i-l|0)<=0){l=-24;break A}switch(r[w+(n[l>>0]|0)>>0]|0){case 33:{a[f>>2]=e+2;l=36;break A}case 15:{a[f>>2]=e+2;l=35;break A}case 34:{a[f>>2]=e+2;l=37;break A}case 32:case 36:case 35:case 11:case 21:case 10:case 9:{a[f>>2]=l;l=24;break A}default:{a[f>>2]=l;l=0;break A}}}case 36:{a[f>>2]=e+1;l=21;break A}case 11:{a[f>>2]=e+1;l=17;break A}case 19:{l=Uq(A,e+1|0,i,f)|0;break A}case 5:{if((i-e|0)<2){l=-2;break A}if(!(Q5[a[A+340>>2]&127](A,e)|0))if(!(Q5[a[A+328>>2]&127](A,e)|0)){a[f>>2]=e;l=0;break A}else{l=19;t=2}else{l=18;t=2}break}case 6:{if((i-e|0)<3){l=-2;break A}if(!(Q5[a[A+344>>2]&127](A,e)|0))if(!(Q5[a[A+332>>2]&127](A,e)|0)){a[f>>2]=e;l=0;break A}else{l=19;t=3}else{l=18;t=3}break}case 7:{if((i-e|0)<4){l=-2;break A}if(!(Q5[a[A+348>>2]&127](A,e)|0))if(!(Q5[a[A+336>>2]&127](A,e)|0)){a[f>>2]=e;l=0;break A}else{l=19;t=4}else{l=18;t=4}break}case 24:case 22:{l=18;t=1;break}case 23:case 27:case 26:case 25:{l=19;t=1;break}default:{a[f>>2]=e;l=0;break A}}}while(0);if((s|0)==3){c=i;t=e;e:while(1){l=t;t=t+1|0;if((c-t|0)<=0){s=18;break}switch(r[w+(n[t>>0]|0)>>0]|0){case 10:case 21:continue e;case 9:break;default:{s=17;break e}}if((l+2|0)==(i|0)){s=17;break}}if((s|0)==17){a[f>>2]=t;l=15;break}else if((s|0)==18){a[f>>2]=t;l=15;break}}s=A+328|0;b=A+332|0;u=A+336|0;c=e+t|0;e:while(1){t=i-c|0;if((t|0)<=0){s=99;break}switch(r[w+(n[c>>0]|0)>>0]|0){case 29:{s=56;break e}case 10:case 9:case 21:case 30:case 20:case 36:case 35:case 32:case 11:{s=70;break e}case 34:{s=89;break e}case 33:{s=92;break e}case 15:{s=95;break e}case 27:case 26:case 25:case 24:case 22:{e=l;c=c+1|0;l=e;continue e}case 5:{if((t|0)<2){l=-2;break A}if(!(Q5[a[s>>2]&127](A,c)|0)){s=60;break e}e=l;c=c+2|0;l=e;continue e}case 6:{if((t|0)<3){l=-2;break A}if(!(Q5[a[b>>2]&127](A,c)|0)){s=64;break e}e=l;c=c+3|0;l=e;continue e}case 7:{if((t|0)<4){l=-2;break A}if(!(Q5[a[u>>2]&127](A,c)|0)){s=68;break e}e=l;c=c+4|0;l=e;continue e}case 23:{t=c+1|0;switch(l&63){case 18:break;case 41:{l=19;c=t;continue e}default:{e=l;c=t;l=e;continue e}}l=i-t|0;if((l|0)<=0){l=-1;break A}switch(r[w+(n[t>>0]|0)>>0]|0){case 29:{s=74;break e}case 27:case 26:case 25:case 24:case 22:{l=41;c=c+2|0;continue e}case 5:{if((l|0)<2){l=-2;break A}if(!(Q5[a[s>>2]&127](A,t)|0)){s=78;break e}l=41;c=c+3|0;continue e}case 6:{if((l|0)<3){l=-2;break A}if(!(Q5[a[b>>2]&127](A,t)|0)){s=82;break e}l=41;c=c+4|0;continue e}case 7:{if((l|0)<4){l=-2;break A}if(!(Q5[a[u>>2]&127](A,t)|0)){s=86;break e}l=41;c=c+5|0;continue e}default:{l=19;c=t;continue e}}}default:{s=98;break e}}}switch(s|0){case 56:{a[f>>2]=c;l=0;break A}case 60:{a[f>>2]=c;l=0;break A}case 64:{a[f>>2]=c;l=0;break A}case 68:{a[f>>2]=c;l=0;break A}case 70:{a[f>>2]=c;break A}case 74:{a[f>>2]=t;l=0;break A}case 78:{a[f>>2]=t;l=0;break A}case 82:{a[f>>2]=t;l=0;break A}case 86:{a[f>>2]=t;l=0;break A}case 89:if((l|0)==19){a[f>>2]=c;l=0;break A}else{a[f>>2]=c+1;l=32;break A}case 92:if((l|0)==19){a[f>>2]=c;l=0;break A}else{a[f>>2]=c+1;l=31;break A}case 95:if((l|0)==19){a[f>>2]=c;l=0;break A}else{a[f>>2]=c+1;l=30;break A}case 98:{a[f>>2]=c;l=0;break A}case 99:{l=0-l|0;break A}}}else l=-4}while(0);return l|0}function Qb(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0,u=0;A:do{if(e>>>0>>0){u=A+72|0;e:do{switch(r[u+(n[e>>0]|0)>>0]|0){case 2:{l=Mq(A,e+1|0,i,f)|0;break A}case 3:{l=Wq(A,e+1|0,i,f)|0;break A}case 9:{l=e+1|0;if((i-l|0)<=0){l=-3;break A}a[f>>2]=(r[u+(n[l>>0]|0)>>0]|0)==10?e+2|0:l;l=7;break A}case 10:{a[f>>2]=e+1;l=7;break A}case 4:{t=e+1|0;if((i-t|0)<=0){l=-5;break A}if((r[t>>0]|0)==93){l=e+2|0;if((i-l|0)<=0){l=-5;break A}if((r[l>>0]|0)==62){a[f>>2]=l;l=0;break A}else l=i}else l=i;break}case 5:{l=i;if((l-e|0)<2){l=-2;break A}if(!(Q5[a[A+352>>2]&127](A,e)|0)){t=e+2|0;break e}else{a[f>>2]=e;l=0;break A}}case 6:{l=i;if((l-e|0)<3){l=-2;break A}if(!(Q5[a[A+356>>2]&127](A,e)|0)){t=e+3|0;break e}else{a[f>>2]=e;l=0;break A}}case 7:{l=i;if((l-e|0)<4){l=-2;break A}if(!(Q5[a[A+360>>2]&127](A,e)|0)){t=e+4|0;break e}else{a[f>>2]=e;l=0;break A}}case 8:case 1:case 0:{a[f>>2]=e;l=0;break A}default:{t=e+1|0;l=i}}}while(0);c=A+352|0;s=A+356|0;b=A+360|0;e:while(1){i=l-t|0;if((i|0)<=0){i=49;break}switch(r[u+(n[t>>0]|0)>>0]|0){case 10:case 9:case 8:case 1:case 0:case 2:case 3:{i=47;break e}case 5:{if((i|0)<2){i=32;break e}if(Q5[a[c>>2]&127](A,t)|0){i=32;break e}t=t+2|0;continue e}case 6:{if((i|0)<3){i=36;break e}if(Q5[a[s>>2]&127](A,t)|0){i=36;break e}t=t+3|0;continue e}case 7:{if((i|0)<4){i=40;break e}if(Q5[a[b>>2]&127](A,t)|0){i=40;break e}t=t+4|0;continue e}case 4:{if((i|0)<=1){i=47;break e}e=t+1|0;if((r[e>>0]|0)!=93){t=e;continue e}if((i|0)<=2){i=47;break e}t=t+2|0;if((r[t>>0]|0)==62){i=46;break e}else{t=e;continue e}}default:{t=t+1|0;continue e}}}if((i|0)==32){a[f>>2]=t;l=6;break}else if((i|0)==36){a[f>>2]=t;l=6;break}else if((i|0)==40){a[f>>2]=t;l=6;break}else if((i|0)==46){a[f>>2]=t;l=0;break}else if((i|0)==47){a[f>>2]=t;l=6;break}else if((i|0)==49){a[f>>2]=t;l=6;break}}else l=-4}while(0);return l|0}function Lb(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;A:do{if(e>>>0>>0){b=A+72|0;e:do{switch(r[b+(n[e>>0]|0)>>0]|0){case 4:{t=e+1|0;l=i;if((l-t|0)<=0){l=-1;break A}if((r[t>>0]|0)==93){i=e+2|0;if((l-i|0)<=0){l=-1;break A}if((r[i>>0]|0)==62){a[f>>2]=e+3;l=40;break A}}break}case 9:{l=e+1|0;if((i-l|0)<=0){l=-1;break A}a[f>>2]=(r[b+(n[l>>0]|0)>>0]|0)==10?e+2|0:l;l=7;break A}case 10:{a[f>>2]=e+1;l=7;break A}case 5:{l=i;if((l-e|0)<2){l=-2;break A}if(!(Q5[a[A+352>>2]&127](A,e)|0)){t=e+2|0;break e}else{a[f>>2]=e;l=0;break A}}case 6:{l=i;if((l-e|0)<3){l=-2;break A}if(!(Q5[a[A+356>>2]&127](A,e)|0)){t=e+3|0;break e}else{a[f>>2]=e;l=0;break A}}case 7:{l=i;if((l-e|0)<4){l=-2;break A}if(!(Q5[a[A+360>>2]&127](A,e)|0)){t=e+4|0;break e}else{a[f>>2]=e;l=0;break A}}case 8:case 1:case 0:{a[f>>2]=e;l=0;break A}default:{t=e+1|0;l=i}}}while(0);e=A+352|0;c=A+356|0;s=A+360|0;e:while(1){i=l-t|0;if((i|0)<=0){i=39;break}switch(r[b+(n[t>>0]|0)>>0]|0){case 4:case 10:case 9:case 8:case 1:case 0:{i=37;break e}case 5:{if((i|0)<2){i=30;break e}if(!(Q5[a[e>>2]&127](A,t)|0))i=2;else{i=30;break e}break}case 6:{if((i|0)<3){i=33;break e}if(!(Q5[a[c>>2]&127](A,t)|0))i=3;else{i=33;break e}break}case 7:{if((i|0)<4){i=36;break e}if(!(Q5[a[s>>2]&127](A,t)|0))i=4;else{i=36;break e}break}default:i=1}t=t+i|0}if((i|0)==30){a[f>>2]=t;l=6;break}else if((i|0)==33){a[f>>2]=t;l=6;break}else if((i|0)==36){a[f>>2]=t;l=6;break}else if((i|0)==37){a[f>>2]=t;l=6;break}else if((i|0)==39){a[f>>2]=t;l=6;break}}else l=-4}while(0);return l|0}function yb(A,e,i,r,f,n,l,t,c){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;t=t|0;c=c|0;var b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0,v=0;if(!((A|0)>-1&((e|0)>0&(i|0)>0)))gA(95162,94943,843,95188);t=uq(e,i,A,l,t,1)|0;if(!t)gA(95233,94943,847,95188);v=a[t+20>>2]|0;g=a[t+24>>2]|0;u=e+1|0;b=0;while(1){if((b|0)==(u|0))break;a[v+(b<<2)>>2]=0;b=b+1|0}A:do{switch(l|0){case 1:{l=a[t+28>>2]|0;b=0;while(1){if((b|0)>=(A|0)){h=0;break}u=a[r+(b<<2)>>2]|0;if(!((u|0)>-1&(u|0)<(e|0))){B=13;break}d=a[f+(b<<2)>>2]|0;if(!((d|0)>-1&(d|0)<(i|0))){B=13;break}d=v+(u+1<<2)|0;a[d>>2]=(a[d>>2]|0)+1;b=b+1|0}if((B|0)==13)gA(138394,94943,862,95188);while(1){if((h|0)==(e|0)){b=0;break}B=h+1|0;i=v+(B<<2)|0;a[i>>2]=(a[i>>2]|0)+(a[v+(h<<2)>>2]|0);h=B}while(1){if((b|0)==(A|0))break;d=v+(a[r+(b<<2)>>2]<<2)|0;B=a[d>>2]|0;s[l+(B<<3)>>3]=+s[n+(b<<3)>>3];i=a[f+(b<<2)>>2]|0;a[d>>2]=B+1;a[g+(B<<2)>>2]=i;b=b+1|0}while(1){if((e|0)<=0)break A;f=e+-1|0;a[v+(e<<2)>>2]=a[v+(f<<2)>>2];e=f}}case 2:{l=a[t+28>>2]|0;b=0;while(1){if((b|0)>=(A|0)){d=0;break}u=a[r+(b<<2)>>2]|0;if(!((u|0)>-1&(u|0)<(e|0))){B=25;break}h=a[f+(b<<2)>>2]|0;if(!((h|0)>-1&(h|0)<(i|0))){B=25;break}h=v+(u+1<<2)|0;a[h>>2]=(a[h>>2]|0)+1;b=b+1|0}if((B|0)==25)gA(138394,94943,880,95188);while(1){if((d|0)==(e|0)){b=0;break}B=d+1|0;i=v+(B<<2)|0;a[i>>2]=(a[i>>2]|0)+(a[v+(d<<2)>>2]|0);d=B}while(1){if((b|0)==(A|0))break;d=v+(a[r+(b<<2)>>2]<<2)|0;B=a[d>>2]|0;i=B<<1;s[l+(i<<3)>>3]=+s[n>>3];s[l+((i|1)<<3)>>3]=+s[n+8>>3];i=a[f+(b<<2)>>2]|0;a[d>>2]=B+1;a[g+(B<<2)>>2]=i;n=n+16|0;b=b+1|0}while(1){if((e|0)<=0)break A;f=e+-1|0;a[v+(e<<2)>>2]=a[v+(f<<2)>>2];e=f}}case 4:{l=a[t+28>>2]|0;b=0;while(1){if((b|0)>=(A|0)){o=0;break}u=a[r+(b<<2)>>2]|0;if(!((u|0)>-1&(u|0)<(e|0))){B=37;break}d=a[f+(b<<2)>>2]|0;if(!((d|0)>-1&(d|0)<(i|0))){B=37;break}d=v+(u+1<<2)|0;a[d>>2]=(a[d>>2]|0)+1;b=b+1|0}if((B|0)==37)gA(138394,94943,899,95188);while(1){if((o|0)==(e|0)){b=0;break}B=o+1|0;i=v+(B<<2)|0;a[i>>2]=(a[i>>2]|0)+(a[v+(o<<2)>>2]|0);o=B}while(1){if((b|0)==(A|0))break;d=r+(b<<2)|0;a[l+(a[v+(a[d>>2]<<2)>>2]<<2)>>2]=a[n+(b<<2)>>2];i=a[f+(b<<2)>>2]|0;d=v+(a[d>>2]<<2)|0;B=a[d>>2]|0;a[d>>2]=B+1;a[g+(B<<2)>>2]=i;b=b+1|0}while(1){if((e|0)<=0)break A;f=e+-1|0;a[v+(e<<2)>>2]=a[v+(f<<2)>>2];e=f}}case 8:{n=0;while(1){if((n|0)>=(A|0)){w=0;break}b=a[r+(n<<2)>>2]|0;if(!((b|0)>-1&(b|0)<(e|0))){B=48;break}d=a[f+(n<<2)>>2]|0;if(!((d|0)>-1&(d|0)<(i|0))){B=48;break}d=v+(b+1<<2)|0;a[d>>2]=(a[d>>2]|0)+1;n=n+1|0}if((B|0)==48)gA(138394,94943,915,95188);while(1){if((w|0)==(e|0)){n=0;break}B=w+1|0;i=v+(B<<2)|0;a[i>>2]=(a[i>>2]|0)+(a[v+(w<<2)>>2]|0);w=B}while(1){if((n|0)==(A|0))break;i=a[f+(n<<2)>>2]|0;d=v+(a[r+(n<<2)>>2]<<2)|0;B=a[d>>2]|0;a[d>>2]=B+1;a[g+(B<<2)>>2]=i;n=n+1|0}while(1){if((e|0)<=0)break A;f=e+-1|0;a[v+(e<<2)>>2]=a[v+(f<<2)>>2];e=f}}case 16:{b=0;while(1){if((b|0)>=(A|0)){k=0;break}u=a[r+(b<<2)>>2]|0;if(!((u|0)>-1&(u|0)<(e|0))){B=59;break}d=a[f+(b<<2)>>2]|0;if(!((d|0)>-1&(d|0)<(i|0))){B=59;break}d=v+(u+1<<2)|0;a[d>>2]=(a[d>>2]|0)+1;b=b+1|0}if((B|0)==59)gA(138394,94943,930,95188);while(1){if((k|0)==(e|0))break;B=k+1|0;i=v+(B<<2)|0;a[i>>2]=(a[i>>2]|0)+(a[v+(k<<2)>>2]|0);k=B}W6(a[t+28>>2]|0,n|0,U(a[t+40>>2]|0,A)|0)|0;n=0;while(1){if((n|0)==(A|0))break;i=a[f+(n<<2)>>2]|0;d=v+(a[r+(n<<2)>>2]<<2)|0;B=a[d>>2]|0;a[d>>2]=B+1;a[g+(B<<2)>>2]=i;n=n+1|0}while(1){if((e|0)<=0)break A;f=e+-1|0;a[v+(e<<2)>>2]=a[v+(f<<2)>>2];e=f}}default:gA(138394,94943,944,95188)}}while(0);a[v>>2]=0;a[t+8>>2]=A;if(c)t=Wb(t,c)|0;return t|0}function Wb(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0.0,c=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0;g=a[A+20>>2]|0;v=a[A+24>>2]|0;r=a[A+16>>2]|0;d=a[A+4>>2]|0;A:do{if(e){u=d<<2;w=$F(u)|0;i=0;while(1){if((i|0)>=(d|0))break;a[w+(i<<2)>>2]=-1;i=i+1|0}e:do{switch(r|0){case 1:{c=a[A+28>>2]|0;f=0;r=a[g>>2]|0;i=0;i:while(1){if((i|0)>=(a[A>>2]|0)){E=f;C=w;break e}b=i+1|0;u=g+(b<<2)|0;l=g+(i<<2)|0;i=f;while(1){e=a[u>>2]|0;if((r|0)>=(e|0))break;e=v+(r<<2)|0;f=a[e>>2]|0;n=a[w+(f<<2)>>2]|0;if((n|0)<(a[l>>2]|0)){a[v+(i<<2)>>2]=f;s[c+(i<<3)>>3]=+s[c+(r<<3)>>3];a[w+(a[e>>2]<<2)>>2]=i;i=i+1|0}else{if((a[v+(n<<2)>>2]|0)!=(f|0))break i;B=c+(n<<3)|0;s[B>>3]=+s[B>>3]+ +s[c+(r<<3)>>3]}r=r+1|0}a[u>>2]=i;f=i;r=e;i=b}gA(95235,94943,1792,95260);break}case 2:{B=a[A+28>>2]|0;switch(e|0){case 1:{e=a[g>>2]|0;r=0;i=0;i:while(1){if((r|0)>=(a[A>>2]|0)){E=i;C=w;break e}c=r+1|0;b=g+(c<<2)|0;l=g+(r<<2)|0;while(1){r=a[b>>2]|0;if((e|0)>=(r|0))break;r=v+(e<<2)|0;f=a[r>>2]|0;n=a[w+(f<<2)>>2]|0;if((n|0)<(a[l>>2]|0)){a[v+(i<<2)>>2]=f;h=e<<1;d=i<<1;s[B+(d<<3)>>3]=+s[B+(h<<3)>>3];s[B+((d|1)<<3)>>3]=+s[B+((h|1)<<3)>>3];a[w+(a[r>>2]<<2)>>2]=i;i=i+1|0}else{if((a[v+(n<<2)>>2]|0)!=(f|0))break i;h=e<<1;d=n<<1;o=B+(d<<3)|0;s[o>>3]=+s[o>>3]+ +s[B+(h<<3)>>3];d=B+((d|1)<<3)|0;s[d>>3]=+s[d>>3]+ +s[B+((h|1)<<3)>>3]}e=e+1|0}a[b>>2]=i;e=r;r=c}gA(95235,94943,1815,95260);break}case 4:{e=a[g>>2]|0;r=0;i=0;i:while(1){if((r|0)>=(a[A>>2]|0)){E=i;C=w;break e}b=r+1|0;c=g+(b<<2)|0;l=g+(r<<2)|0;while(1){r=a[c>>2]|0;if((e|0)>=(r|0))break;r=v+(e<<2)|0;f=a[r>>2]|0;n=a[w+(f<<2)>>2]|0;if((n|0)<(a[l>>2]|0)){a[v+(i<<2)>>2]=f;h=e<<1;d=i<<1;s[B+(d<<3)>>3]=+s[B+(h<<3)>>3];s[B+((d|1)<<3)>>3]=+s[B+((h|1)<<3)>>3];a[w+(a[r>>2]<<2)>>2]=i;i=i+1|0}else{if((a[v+(n<<2)>>2]|0)!=(f|0))break i;h=e<<1;d=n<<1;o=B+(d<<3)|0;s[o>>3]=+s[o>>3]+ +s[B+(h<<3)>>3];s[B+((d|1)<<3)>>3]=+s[B+((h|1)<<3)>>3]}e=e+1|0}a[c>>2]=i;e=r;r=b}gA(95235,94943,1835,95260);break}case 2:{h=~~+s[B+8>>3];l=a[A>>2]|0;r=h;n=0;i=0;i:while(1){if((n|0)>=(l|0))break;c=n+1|0;b=a[g+(c<<2)>>2]|0;f=i;e=h;i=a[g+(n<<2)>>2]|0;while(1){if((i|0)>=(b|0)){h=e;n=c;i=f;continue i}h=~~+s[B+((f<<1|1)<<3)>>3];f=f+1|0;r=(r|0)>(h|0)?r:h;e=(e|0)<(h|0)?e:h;i=i+1|0}}L2(w);o=r-h+1|0;k=$F(U(o,u)|0)|0;o=U(o,d)|0;i=0;while(1){if((i|0)>=(o|0))break;a[k+(i<<2)>>2]=-1;i=i+1|0}i=0;e=a[g>>2]|0;r=0;i:while(1){if((r|0)>=(a[A>>2]|0)){E=i;C=k;break e}u=r+1|0;w=g+(u<<2)|0;b=g+(r<<2)|0;while(1){r=a[w>>2]|0;if((e|0)>=(r|0))break;r=a[v+(e<<2)>>2]|0;f=e<<1;t=+s[B+((f|1)<<3)>>3];n=(U(~~t-h|0,d)|0)+r|0;l=k+(n<<2)|0;c=a[l>>2]|0;if((c|0)<(a[b>>2]|0)){a[v+(i<<2)>>2]=r;c=i<<1;s[B+(c<<3)>>3]=+s[B+(f<<3)>>3];s[B+((c|1)<<3)>>3]=t;a[l>>2]=i;i=i+1|0}else{if((n|0)>=(o|0)){i=55;break i}if((a[v+(c<<2)>>2]|0)!=(r|0)){i=57;break i}c=c<<1;l=B+(c<<3)|0;s[l>>3]=+s[l>>3]+ +s[B+(f<<3)>>3];s[B+((c|1)<<3)>>3]=t}e=e+1|0}a[w>>2]=i;e=r;r=u}if((i|0)==55)gA(95292,94943,1869,95260);else if((i|0)==57)gA(95313,94943,1870,95260);break}case 3:{f=~~+s[B+8>>3];l=a[A>>2]|0;i=f;r=0;n=0;i:while(1){if((n|0)>=(l|0))break;c=n+1|0;b=a[g+(c<<2)>>2]|0;e=i;i=a[g+(n<<2)>>2]|0;while(1){if((i|0)>=(b|0)){i=e;n=c;continue i}h=~~+s[B+(r<<1<<3)>>3];e=(e|0)>(h|0)?e:h;f=(f|0)>(h|0)?f:h;r=r+1|0;i=i+1|0}}L2(w);r=i-f+1|0;k=$F(U(r,u)|0)|0;r=U(r,d)|0;i=0;while(1){if((i|0)>=(r|0))break;a[k+(i<<2)>>2]=-1;i=i+1|0}i=0;e=a[g>>2]|0;r=0;i:while(1){if((r|0)>=(a[A>>2]|0)){E=i;C=k;break e}u=r+1|0;w=g+(u<<2)|0;b=g+(r<<2)|0;while(1){r=a[w>>2]|0;if((e|0)>=(r|0))break;r=a[v+(e<<2)>>2]|0;n=e<<1;t=+s[B+(n<<3)>>3];l=k+((U(~~t-f|0,d)|0)+r<<2)|0;c=a[l>>2]|0;if((c|0)<(a[b>>2]|0)){a[v+(i<<2)>>2]=r;h=i<<1;s[B+(h<<3)>>3]=t;s[B+((h|1)<<3)>>3]=+s[B+((n|1)<<3)>>3];a[l>>2]=i;i=i+1|0}else{if((a[v+(c<<2)>>2]|0)!=(r|0))break i;h=c<<1;s[B+(h<<3)>>3]=t;h=B+((h|1)<<3)|0;s[h>>3]=+s[h>>3]+ +s[B+((n|1)<<3)>>3]}e=e+1|0}a[w>>2]=i;e=r;r=u}gA(95313,94943,1905,95260);break}default:{E=0;C=w;break e}}break}case 4:{c=a[A+28>>2]|0;r=0;i=0;e=a[g>>2]|0;i:while(1){if((r|0)>=(a[A>>2]|0)){E=i;C=w;break e}b=r+1|0;u=g+(b<<2)|0;l=g+(r<<2)|0;while(1){f=a[u>>2]|0;if((e|0)>=(f|0))break;r=v+(e<<2)|0;f=a[r>>2]|0;n=a[w+(f<<2)>>2]|0;if((n|0)<(a[l>>2]|0)){a[v+(i<<2)>>2]=f;a[c+(i<<2)>>2]=a[c+(e<<2)>>2];a[w+(a[r>>2]<<2)>>2]=i;i=i+1|0}else{if((a[v+(n<<2)>>2]|0)!=(f|0))break i;B=c+(n<<2)|0;a[B>>2]=(a[B>>2]|0)+(a[c+(e<<2)>>2]|0)}e=e+1|0}a[u>>2]=i;r=b;e=f}gA(95235,94943,1929,95260);break}case 8:{r=0;i=0;e=a[g>>2]|0;i:while(1){if((r|0)>=(a[A>>2]|0)){E=i;C=w;break e}c=r+1|0;b=g+(c<<2)|0;l=g+(r<<2)|0;while(1){f=a[b>>2]|0;if((e|0)>=(f|0))break;r=v+(e<<2)|0;f=a[r>>2]|0;n=a[w+(f<<2)>>2]|0;if((n|0)>=(a[l>>2]|0)){if((a[v+(n<<2)>>2]|0)!=(f|0))break i}else{a[v+(i<<2)>>2]=f;a[w+(a[r>>2]<<2)>>2]=i;i=i+1|0}e=e+1|0}a[b>>2]=i;r=c;e=f}gA(95235,94943,1948,95260);break}default:{A=0;break A}}}while(0);a[A+8>>2]=E;L2(C)}}while(0);return A|0}function zb(A,e,i,r,f,a,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;n=n|0;if(!r)Yb(A,i,f,n,e,a);else Db(A,i,f,n,e,a);return}function Yb(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0.0,v=0;if((a[A+32>>2]|0)!=1)gA(94919,94943,1121,95483);if((a[A+16>>2]|0)!=1)gA(95364,94943,1122,95483);o=a[A+28>>2]|0;h=a[A+20>>2]|0;d=a[A+24>>2]|0;B=a[A>>2]|0;k=a[A+4>>2]|0;A=a[i>>2]|0;l=(A|0)!=0;if(!f){if(!l)A=$F(U(r<<3,B)|0)|0;f=0;A:while(1){if((f|0)>=(B|0))break;w=U(f,r)|0;l=0;while(1){if((l|0)>=(r|0))break;s[A+(l+w<<3)>>3]=0.0;l=l+1|0}b=f+1|0;u=a[h+(b<<2)>>2]|0;l=a[h+(f<<2)>>2]|0;while(1){if((l|0)>=(u|0)){f=b;continue A}t=o+(l<<3)|0;c=d+(l<<2)|0;f=0;while(1){if((f|0)>=(r|0))break;g=+s[e+((U(a[c>>2]|0,r)|0)+f<<3)>>3]*+s[t>>3];k=A+(f+w<<3)|0;s[k>>3]=+s[k>>3]+g;f=f+1|0}l=l+1|0}}if(n)Fb(A,B,r)}else{if(!l)A=$F(U(r<<3,k)|0)|0;f=U(k,r)|0;l=0;while(1){if((l|0)>=(f|0)){l=0;break}s[A+(l<<3)>>3]=0.0;l=l+1|0}A:while(1){if((l|0)>=(B|0))break;b=l+1|0;u=a[h+(b<<2)>>2]|0;w=U(l,r)|0;l=a[h+(l<<2)>>2]|0;while(1){if((l|0)>=(u|0)){l=b;continue A}t=o+(l<<3)|0;c=d+(l<<2)|0;f=0;while(1){if((f|0)>=(r|0))break;v=A+((U(a[c>>2]|0,r)|0)+f<<3)|0;s[v>>3]=+s[v>>3]+ +s[e+(f+w<<3)>>3]*+s[t>>3];f=f+1|0}l=l+1|0}}if(n)Fb(A,k,r)}a[i>>2]=A;return}function Db(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0,s=0,b=0,u=0;u=k;k=k+16|0;b=u;if((a[A+32>>2]|0)!=1)gA(94919,94943,1163,95335);if((a[A+16>>2]|0)!=1)gA(95364,94943,1164,95335);l=a[i>>2]|0;c=a[A>>2]|0;s=a[A+4>>2]|0;t=(l|0)!=0;if(!f){if(!t)l=$F(U(r<<3,c)|0)|0;t=0;while(1){if((t|0)>=(r|0))break;a[b>>2]=l+((U(t,c)|0)<<3);Mb(A,e+((U(t,s)|0)<<3)|0,b,0);t=t+1|0}if(!n)Fb(l,r,c)}else{if(!t)l=$F(U(r<<3,s)|0)|0;t=0;while(1){if((t|0)>=(r|0))break;a[b>>2]=l+((U(t,s)|0)<<3);Mb(A,e+((U(t,c)|0)<<3)|0,b,f);t=t+1|0}if(!n)Fb(l,r,s)}a[i>>2]=l;k=u;return}function Mb(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0.0,l=0,t=0,c=0,b=0,u=0,w=0,k=0,o=0.0;if((a[A+32>>2]|0)!=1)gA(94919,94943,1222,95392);l=a[A+16>>2]|0;switch(l|0){case 4:case 1:break;default:gA(95421,94943,1223,95392)}w=a[A+20>>2]|0;u=a[A+24>>2]|0;k=a[A>>2]|0;c=a[A+4>>2]|0;t=a[i>>2]|0;A:do{switch(l|0){case 1:{b=a[A+28>>2]|0;A=(r|0)!=0;f=(t|0)!=0;if(!e){if(!A){if(f)f=t;else f=$F(k<<3)|0;A=0;e:while(1){if((A|0)>=(k|0))break A;l=f+(A<<3)|0;s[l>>3]=0.0;t=A+1|0;r=a[w+(t<<2)>>2]|0;A=a[w+(A<<2)>>2]|0;n=0.0;while(1){if((A|0)>=(r|0)){A=t;continue e}o=n+ +s[b+(A<<3)>>3];s[l>>3]=o;A=A+1|0;n=o}}}if(!f)t=$F(c<<3)|0;A=0;while(1){if((A|0)>=(c|0)){A=0;break}s[t+(A<<3)>>3]=0.0;A=A+1|0}e:while(1){if((A|0)>=(k|0)){f=t;break A}f=A+1|0;l=a[w+(f<<2)>>2]|0;A=a[w+(A<<2)>>2]|0;while(1){if((A|0)>=(l|0)){A=f;continue e}e=t+(a[u+(A<<2)>>2]<<3)|0;s[e>>3]=+s[e>>3]+ +s[b+(A<<3)>>3];A=A+1|0}}}else{if(!A){if(f)f=t;else f=$F(k<<3)|0;A=0;e:while(1){if((A|0)>=(k|0))break A;l=f+(A<<3)|0;s[l>>3]=0.0;t=A+1|0;r=a[w+(t<<2)>>2]|0;A=a[w+(A<<2)>>2]|0;n=0.0;while(1){if((A|0)>=(r|0)){A=t;continue e}o=n+ +s[e+(a[u+(A<<2)>>2]<<3)>>3]*+s[b+(A<<3)>>3];s[l>>3]=o;A=A+1|0;n=o}}}if(f)f=t;else f=$F(c<<3)|0;A=0;while(1){if((A|0)>=(c|0)){A=0;break}s[f+(A<<3)>>3]=0.0;A=A+1|0}e:while(1){if((A|0)>=(k|0))break A;l=A+1|0;t=a[w+(l<<2)>>2]|0;r=e+(A<<3)|0;A=a[w+(A<<2)>>2]|0;while(1){if((A|0)>=(t|0)){A=l;continue e}c=f+(a[u+(A<<2)>>2]<<3)|0;s[c>>3]=+s[c>>3]+ +s[r>>3]*+s[b+(A<<3)>>3];A=A+1|0}}}}case 4:{b=a[A+28>>2]|0;A=(r|0)!=0;f=(t|0)!=0;if(!e){if(!A){if(f)f=t;else f=$F(k<<3)|0;A=0;e:while(1){if((A|0)>=(k|0))break A;l=f+(A<<3)|0;s[l>>3]=0.0;t=A+1|0;r=a[w+(t<<2)>>2]|0;A=a[w+(A<<2)>>2]|0;n=0.0;while(1){if((A|0)>=(r|0)){A=t;continue e}o=n+ +(a[b+(A<<2)>>2]|0);s[l>>3]=o;A=A+1|0;n=o}}}if(!f)t=$F(c<<3)|0;A=0;while(1){if((A|0)>=(c|0)){A=0;break}s[t+(A<<3)>>3]=0.0;A=A+1|0}e:while(1){if((A|0)>=(k|0)){f=t;break A}f=A+1|0;l=a[w+(f<<2)>>2]|0;A=a[w+(A<<2)>>2]|0;while(1){if((A|0)>=(l|0)){A=f;continue e}e=t+(a[u+(A<<2)>>2]<<3)|0;s[e>>3]=+s[e>>3]+ +(a[b+(A<<2)>>2]|0);A=A+1|0}}}else{if(!A){if(f)f=t;else f=$F(k<<3)|0;A=0;e:while(1){if((A|0)>=(k|0))break A;l=f+(A<<3)|0;s[l>>3]=0.0;t=A+1|0;r=a[w+(t<<2)>>2]|0;A=a[w+(A<<2)>>2]|0;n=0.0;while(1){if((A|0)>=(r|0)){A=t;continue e}o=n+ +s[e+(a[u+(A<<2)>>2]<<3)>>3]*+(a[b+(A<<2)>>2]|0);s[l>>3]=o;A=A+1|0;n=o}}}if(f)f=t;else f=$F(c<<3)|0;A=0;while(1){if((A|0)>=(c|0)){A=0;break}s[f+(A<<3)>>3]=0.0;A=A+1|0}e:while(1){if((A|0)>=(k|0))break A;l=A+1|0;t=a[w+(l<<2)>>2]|0;r=e+(A<<3)|0;A=a[w+(A<<2)>>2]|0;while(1){if((A|0)>=(t|0)){A=l;continue e}c=f+(a[u+(A<<2)>>2]<<3)|0;s[c>>3]=+s[c>>3]+ +s[r>>3]*+(a[b+(A<<2)>>2]|0);A=A+1|0}}}}default:gA(138394,94943,1315,95392)}}while(0);a[i>>2]=f;return}function Fb(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,a=0,n=0;r=U(e<<3,i)|0;a=$F(r)|0;W6(a|0,A|0,r|0)|0;r=0;while(1){if((r|0)>=(e|0))break;n=U(r,i)|0;f=0;while(1){if((f|0)>=(i|0))break;s[A+((U(f,e)|0)+r<<3)>>3]=+s[a+(f+n<<3)>>3];f=f+1|0}r=r+1|0}L2(a);return}function Vb(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0;I=a[A+20>>2]|0;Z=a[A+24>>2]|0;G=a[e+20>>2]|0;m=a[e+24>>2]|0;C=a[A+32>>2]|0;if(!((C|0)==1?(C|0)==(a[e+32>>2]|0):0))gA(95005,94943,1408,95512);C=a[A>>2]|0;if(((a[A+4>>2]|0)==(a[e>>2]|0)?(w=a[A+16>>2]|0,(w|0)==(a[e+16>>2]|0)):0)?(u=e+4|0,Q=$F(a[u>>2]<<2)|0,(Q|0)!=0):0){i=0;while(1){if((i|0)>=(a[u>>2]|0)){r=0;i=0;break}a[Q+(i<<2)>>2]=-1;i=i+1|0}A:while(1){if((i|0)>=(C|0))break;t=i+1|0;c=I+(t<<2)|0;b=-2-i|0;l=a[I+(i<<2)>>2]|0;while(1){if((l|0)>=(a[c>>2]|0)){i=t;continue A}f=a[Z+(l<<2)>>2]|0;n=G+(f+1<<2)|0;f=a[G+(f<<2)>>2]|0;while(1){if((f|0)>=(a[n>>2]|0))break;i=Q+(a[m+(f<<2)>>2]<<2)|0;if((a[i>>2]|0)!=(b|0)){a[i>>2]=b;r=r+1|0}f=f+1|0}l=l+1|0}}i=fq(C,a[u>>2]|0,r,w,1)|0;A:do{if(!i)i=0;else{g=a[i+20>>2]|0;v=a[i+24>>2]|0;e:do{switch(w|0){case 1:{d=a[A+28>>2]|0;w=a[e+28>>2]|0;e=a[i+28>>2]|0;a[g>>2]=0;r=0;f=0;i:while(1){if((r|0)>=(C|0)){E=f;break e}k=r+1|0;o=I+(k<<2)|0;h=g+(r<<2)|0;A=a[I+(r<<2)>>2]|0;while(1){if((A|0)>=(a[o>>2]|0))break;c=a[Z+(A<<2)>>2]|0;b=G+(c+1<<2)|0;u=d+(A<<3)|0;c=a[G+(c<<2)>>2]|0;while(1){if((c|0)>=(a[b>>2]|0))break;r=m+(c<<2)|0;n=a[r>>2]|0;l=Q+(n<<2)|0;t=a[l>>2]|0;if((t|0)<(a[h>>2]|0)){a[l>>2]=f;a[v+(f<<2)>>2]=a[r>>2];s[e+(f<<3)>>3]=+s[w+(c<<3)>>3]*+s[u>>3];f=f+1|0}else{if((a[v+(t<<2)>>2]|0)!=(n|0))break i;B=e+(t<<3)|0;s[B>>3]=+s[B>>3]+ +s[w+(c<<3)>>3]*+s[u>>3]}c=c+1|0}A=A+1|0}a[g+(k<<2)>>2]=f;r=k}gA(95534,94943,1468,95512);break}case 2:{B=a[A+28>>2]|0;e=a[e+28>>2]|0;k=a[i+28>>2]|0;a[g>>2]=0;r=0;f=0;i:while(1){if((r|0)>=(C|0)){E=f;break e}o=r+1|0;h=I+(o<<2)|0;d=g+(r<<2)|0;w=a[I+(r<<2)>>2]|0;while(1){if((w|0)>=(a[h>>2]|0))break;c=a[Z+(w<<2)>>2]|0;b=G+(c+1<<2)|0;A=w<<1;u=B+(A<<3)|0;A=B+((A|1)<<3)|0;c=a[G+(c<<2)>>2]|0;while(1){if((c|0)>=(a[b>>2]|0))break;r=m+(c<<2)|0;n=a[r>>2]|0;l=Q+(n<<2)|0;t=a[l>>2]|0;if((t|0)<(a[d>>2]|0)){a[l>>2]=f;a[v+(f<<2)>>2]=a[r>>2];l=c<<1;n=e+(l<<3)|0;l=e+((l|1)<<3)|0;t=f<<1;s[k+(t<<3)>>3]=+s[n>>3]*+s[u>>3]-+s[l>>3]*+s[A>>3];s[k+((t|1)<<3)>>3]=+s[n>>3]*+s[A>>3]+ +s[l>>3]*+s[u>>3];f=f+1|0}else{if((a[v+(t<<2)>>2]|0)!=(n|0))break i;l=c<<1;n=e+(l<<3)|0;l=e+((l|1)<<3)|0;t=t<<1;r=k+(t<<3)|0;s[r>>3]=+s[r>>3]+ +s[n>>3]*+s[u>>3]-+s[l>>3]*+s[A>>3];t=k+((t|1)<<3)|0;s[t>>3]=+s[n>>3]*+s[A>>3]+ +s[l>>3]*+s[u>>3]+ +s[t>>3]}c=c+1|0}w=w+1|0}a[g+(o<<2)>>2]=f;r=o}gA(95534,94943,1497,95512);break}case 4:{d=a[A+28>>2]|0;w=a[e+28>>2]|0;e=a[i+28>>2]|0;a[g>>2]=0;r=0;f=0;i:while(1){if((f|0)>=(C|0)){E=r;break e}k=f+1|0;o=I+(k<<2)|0;h=g+(f<<2)|0;b=a[I+(f<<2)>>2]|0;while(1){if((b|0)>=(a[o>>2]|0))break;c=a[Z+(b<<2)>>2]|0;u=G+(c+1<<2)|0;A=d+(b<<2)|0;c=a[G+(c<<2)>>2]|0;while(1){if((c|0)>=(a[u>>2]|0))break;f=m+(c<<2)|0;n=a[f>>2]|0;l=Q+(n<<2)|0;t=a[l>>2]|0;if((t|0)<(a[h>>2]|0)){a[l>>2]=r;a[v+(r<<2)>>2]=a[f>>2];a[e+(r<<2)>>2]=U(a[w+(c<<2)>>2]|0,a[A>>2]|0)|0;r=r+1|0}else{if((a[v+(t<<2)>>2]|0)!=(n|0))break i;l=U(a[w+(c<<2)>>2]|0,a[A>>2]|0)|0;B=e+(t<<2)|0;a[B>>2]=(a[B>>2]|0)+l}c=c+1|0}b=b+1|0}a[g+(k<<2)>>2]=r;f=k}gA(95534,94943,1523,95512);break}case 8:{a[g>>2]=0;r=0;f=0;i:while(1){if((f|0)>=(C|0)){E=r;break e}A=f+1|0;w=I+(A<<2)|0;e=g+(f<<2)|0;b=a[I+(f<<2)>>2]|0;while(1){if((b|0)>=(a[w>>2]|0))break;c=a[Z+(b<<2)>>2]|0;u=G+(c+1<<2)|0;c=a[G+(c<<2)>>2]|0;while(1){if((c|0)>=(a[u>>2]|0))break;f=m+(c<<2)|0;n=a[f>>2]|0;l=Q+(n<<2)|0;t=a[l>>2]|0;if((t|0)>=(a[e>>2]|0)){if((a[v+(t<<2)>>2]|0)!=(n|0))break i}else{a[l>>2]=r;a[v+(r<<2)>>2]=a[f>>2];r=r+1|0}c=c+1|0}b=b+1|0}a[g+(A<<2)>>2]=r;f=A}gA(95534,94943,1543,95512);break}default:{rq(i);i=0;break A}}}while(0);a[i+8>>2]=E}}while(0);L2(Q)}else i=0;return i|0}function Jb(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0.0,V=0.0,J=0.0,p=0.0;z=a[A+20>>2]|0;Y=a[A+24>>2]|0;D=a[e+20>>2]|0;Q=a[e+24>>2]|0;L=a[i+20>>2]|0;y=a[i+24>>2]|0;W=a[A+32>>2]|0;if(!((W|0)==1?(W|0)==(a[e+32>>2]|0):0))gA(95005,94943,1574,95559);W=a[A>>2]|0;if(((((a[A+4>>2]|0)==(a[e>>2]|0)?(a[e+4>>2]|0)==(a[i>>2]|0):0)?(h=a[A+16>>2]|0,(h|0)==(a[e+16>>2]|0)):0)?(h|0)==(a[i+16>>2]|0):0)?(o=i+4|0,M=$F(a[o>>2]<<2)|0,(M|0)!=0):0){r=0;while(1){if((r|0)>=(a[o>>2]|0)){f=0;r=0;break}a[M+(r<<2)>>2]=-1;r=r+1|0}A:while(1){if((r|0)>=(W|0))break;u=r+1|0;w=z+(u<<2)|0;k=-2-r|0;b=a[z+(r<<2)>>2]|0;while(1){if((b|0)>=(a[w>>2]|0)){r=u;continue A}t=a[Y+(b<<2)>>2]|0;c=D+(t+1<<2)|0;t=a[D+(t<<2)>>2]|0;while(1){if((t|0)>=(a[c>>2]|0))break;n=a[Q+(t<<2)>>2]|0;l=L+(n+1<<2)|0;n=a[L+(n<<2)>>2]|0;while(1){if((n|0)>=(a[l>>2]|0))break;r=M+(a[y+(n<<2)>>2]<<2)|0;if((a[r>>2]|0)!=(k|0)){a[r>>2]=k;f=f+1|0}n=n+1|0}t=t+1|0}b=b+1|0}}r=fq(W,a[o>>2]|0,f,h,1)|0;A:do{if(!r)r=0;else{Z=a[r+20>>2]|0;G=a[r+24>>2]|0;e:do{switch(h|0){case 1:{E=a[A+28>>2]|0;v=a[e+28>>2]|0;i=a[i+28>>2]|0;d=a[r+28>>2]|0;a[Z>>2]=0;f=0;n=0;i:while(1){if((f|0)>=(W|0)){m=n;break e}B=f+1|0;g=z+(B<<2)|0;e=Z+(f<<2)|0;h=a[z+(f<<2)>>2]|0;while(1){if((h|0)>=(a[g>>2]|0))break;k=a[Y+(h<<2)>>2]|0;o=D+(k+1<<2)|0;A=E+(h<<3)|0;k=a[D+(k<<2)>>2]|0;while(1){if((k|0)>=(a[o>>2]|0))break;b=a[Q+(k<<2)>>2]|0;u=L+(b+1<<2)|0;w=v+(k<<3)|0;b=a[L+(b<<2)>>2]|0;while(1){if((b|0)>=(a[u>>2]|0))break;f=y+(b<<2)|0;l=a[f>>2]|0;t=M+(l<<2)|0;c=a[t>>2]|0;if((c|0)<(a[e>>2]|0)){a[t>>2]=n;a[G+(n<<2)>>2]=a[f>>2];s[d+(n<<3)>>3]=+s[w>>3]*+s[A>>3]*+s[i+(b<<3)>>3];n=n+1|0}else{if((a[G+(c<<2)>>2]|0)!=(l|0))break i;I=d+(c<<3)|0;s[I>>3]=+s[I>>3]+ +s[w>>3]*+s[A>>3]*+s[i+(b<<3)>>3]}b=b+1|0}k=k+1|0}h=h+1|0}a[Z+(B<<2)>>2]=n;f=B}gA(95582,94943,1642,95559);break}case 2:{I=a[A+28>>2]|0;C=a[e+28>>2]|0;d=a[i+28>>2]|0;B=a[r+28>>2]|0;a[Z>>2]=0;f=0;n=0;i:while(1){if((n|0)>=(W|0)){m=f;break e}g=n+1|0;v=z+(g<<2)|0;E=Z+(n<<2)|0;A=a[z+(n<<2)>>2]|0;while(1){if((A|0)>=(a[v>>2]|0))break;u=a[Y+(A<<2)>>2]|0;h=D+(u+1<<2)|0;i=A<<1;e=I+(i<<3)|0;i=I+((i|1)<<3)|0;u=a[D+(u<<2)>>2]|0;while(1){if((u|0)>=(a[h>>2]|0))break;b=a[Q+(u<<2)>>2]|0;w=L+(b+1<<2)|0;o=u<<1;k=C+(o<<3)|0;o=C+((o|1)<<3)|0;b=a[L+(b<<2)>>2]|0;while(1){if((b|0)>=(a[w>>2]|0))break;n=y+(b<<2)|0;l=a[n>>2]|0;t=M+(l<<2)|0;c=a[t>>2]|0;if((c|0)<(a[E>>2]|0)){a[t>>2]=f;a[G+(f<<2)>>2]=a[n>>2];V=+s[e>>3];J=+s[k>>3];F=+s[i>>3];p=+s[o>>3];t=b<<1;l=d+(t<<3)|0;t=d+((t|1)<<3)|0;c=f<<1;s[B+(c<<3)>>3]=(J*V-p*F)*+s[l>>3]-(p*V+F*J)*+s[t>>3];J=+s[e>>3];F=+s[o>>3];V=+s[i>>3];p=+s[k>>3];s[B+((c|1)<<3)>>3]=(p*V+F*J)*+s[l>>3]+(p*J-V*F)*+s[t>>3];f=f+1|0}else{if((a[G+(c<<2)>>2]|0)!=(l|0))break i;J=+s[e>>3];V=+s[k>>3];p=+s[i>>3];F=+s[o>>3];t=b<<1;l=d+(t<<3)|0;t=d+((t|1)<<3)|0;c=c<<1;n=B+(c<<3)|0;s[n>>3]=+s[n>>3]+(V*J-F*p)*+s[l>>3]-(F*J+p*V)*+s[t>>3];V=+s[e>>3];p=+s[o>>3];J=+s[i>>3];F=+s[k>>3];c=B+((c|1)<<3)|0;s[c>>3]=(F*J+p*V)*+s[l>>3]+(F*V-J*p)*+s[t>>3]+ +s[c>>3]}b=b+1|0}u=u+1|0}A=A+1|0}a[Z+(g<<2)>>2]=f;n=g}gA(95582,94943,1674,95559);break}case 4:{E=a[A+28>>2]|0;v=a[e+28>>2]|0;e=a[i+28>>2]|0;i=a[r+28>>2]|0;a[Z>>2]=0;f=0;n=0;i:while(1){if((n|0)>=(W|0)){m=f;break e}d=n+1|0;B=z+(d<<2)|0;g=Z+(n<<2)|0;o=a[z+(n<<2)>>2]|0;while(1){if((o|0)>=(a[B>>2]|0))break;u=a[Y+(o<<2)>>2]|0;A=D+(u+1<<2)|0;h=E+(o<<2)|0;u=a[D+(u<<2)>>2]|0;while(1){if((u|0)>=(a[A>>2]|0))break;b=a[Q+(u<<2)>>2]|0;w=L+(b+1<<2)|0;k=v+(u<<2)|0;b=a[L+(b<<2)>>2]|0;while(1){if((b|0)>=(a[w>>2]|0))break;n=y+(b<<2)|0;l=a[n>>2]|0;t=M+(l<<2)|0;c=a[t>>2]|0;if((c|0)<(a[g>>2]|0)){a[t>>2]=f;a[G+(f<<2)>>2]=a[n>>2];C=U(a[k>>2]|0,a[h>>2]|0)|0;C=U(C,a[e+(b<<2)>>2]|0)|0;I=i+(f<<2)|0;a[I>>2]=(a[I>>2]|0)+C;f=f+1|0}else{if((a[G+(c<<2)>>2]|0)!=(l|0))break i;C=U(a[k>>2]|0,a[h>>2]|0)|0;C=U(C,a[e+(b<<2)>>2]|0)|0;I=i+(c<<2)|0;a[I>>2]=(a[I>>2]|0)+C}b=b+1|0}u=u+1|0}o=o+1|0}a[Z+(d<<2)>>2]=f;n=d}gA(95582,94943,1706,95559);break}case 8:{a[Z>>2]=0;f=0;n=0;i:while(1){if((n|0)>=(W|0)){m=f;break e}A=n+1|0;h=z+(A<<2)|0;e=Z+(n<<2)|0;k=a[z+(n<<2)>>2]|0;while(1){if((k|0)>=(a[h>>2]|0))break;u=a[Y+(k<<2)>>2]|0;o=D+(u+1<<2)|0;u=a[D+(u<<2)>>2]|0;while(1){if((u|0)>=(a[o>>2]|0))break;b=a[Q+(u<<2)>>2]|0;w=L+(b+1<<2)|0;b=a[L+(b<<2)>>2]|0;while(1){if((b|0)>=(a[w>>2]|0))break;n=y+(b<<2)|0;l=a[n>>2]|0;t=M+(l<<2)|0;c=a[t>>2]|0;if((c|0)>=(a[e>>2]|0)){if((a[G+(c<<2)>>2]|0)!=(l|0))break i}else{a[t>>2]=f;a[G+(f<<2)>>2]=a[n>>2];f=f+1|0}b=b+1|0}u=u+1|0}k=k+1|0}a[Z+(A<<2)>>2]=f;n=A}gA(95582,94943,1729,95559);break}default:{rq(r);r=0;break A}}}while(0);a[r+8>>2]=m}}while(0);L2(M)}else r=0;return r|0}function pb(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0;if((a[A+32>>2]|0)!=2)gA(95100,94943,1971,95607);if((e|0)>=1){l=a[A+8>>2]|0;n=l+e|0;if((n|0)>=(a[A+12>>2]|0))Nb(A,n+10|0)|0;t=l<<2;n=e<<2;W6((a[A+20>>2]|0)+t|0,i|0,n|0)|0;W6((a[A+24>>2]|0)+t|0,r|0,n|0)|0;n=a[A+40>>2]|0;if(n|0){t=U(n,e)|0;l=U(n,l)|0;W6((a[A+28>>2]|0)+l|0,f|0,t|0)|0}f=A+4|0;l=0;while(1){if((l|0)>=(e|0))break;n=a[i+(l<<2)>>2]|0;if((n|0)>=(a[A>>2]|0))a[A>>2]=n+1;n=a[r+(l<<2)>>2]|0;if((n|0)>=(a[f>>2]|0))a[f>>2]=n+1;l=l+1|0}t=A+8|0;a[t>>2]=(a[t>>2]|0)+e}return A|0}function Nb(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;if((a[A+32>>2]|0)==2){i=A+20|0;f=e<<2;a[i>>2]=eV(a[i>>2]|0,f)|0;i=A+24|0;a[i>>2]=eV(a[i>>2]|0,f)|0;i=a[A+40>>2]|0;if((i|0)>0){f=A+28|0;r=a[f>>2]|0;i=U(i,e)|0;if(!r)i=$F(i)|0;else i=eV(r,i)|0;a[f>>2]=i}}else{i=A+24|0;a[i>>2]=eV(a[i>>2]|0,e<<2)|0;i=a[A+40>>2]|0;if((i|0)>0){f=A+28|0;r=a[f>>2]|0;i=U(i,e)|0;if(!r)i=$F(i)|0;else i=eV(r,i)|0;a[f>>2]=i}}a[A+12>>2]=e;return A|0}function Rb(A){A=A|0;var e=0,i=0.0,r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0;A:do{if(!A)A=0;else{b=a[A+20>>2]|0;c=a[A+24>>2]|0;e:do{switch(a[A+16>>2]|0){case 1:{l=a[A+28>>2]|0;r=a[A>>2]|0;e=0;i:while(1){if((e|0)>=(r|0))break e;f=e+1|0;n=a[b+(f<<2)>>2]|0;e=a[b+(e<<2)>>2]|0;i=1.0/+(n-e|0);while(1){if((e|0)>=(n|0)){e=f;continue i}c=l+(e<<3)|0;s[c>>3]=+s[c>>3]*i;e=e+1|0}}}case 2:{f=a[A+28>>2]|0;n=a[A>>2]|0;e=0;i:while(1){if((e|0)>=(n|0))break e;l=e+1|0;t=a[b+(l<<2)>>2]|0;r=a[b+(e<<2)>>2]|0;i=1.0/+(t-r|0);while(1){if((r|0)>=(t|0)){e=l;continue i}if((a[c+(r<<2)>>2]|0)!=(e|0)){u=r<<1;w=f+(u<<3)|0;s[w>>3]=+s[w>>3]*i;u=f+((u|1)<<3)|0;s[u>>3]=+s[u>>3]*i}r=r+1|0}}}case 4:{gA(138394,94943,2192,95648);break}case 8:break;default:{A=0;break A}}}while(0)}}while(0);return A|0}function Xb(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;if((A|0)!=0?(e=A+8|0,i=a[e>>2]|0,r=a[A+4>>2]|0,(r|0)==(a[A>>2]|0)):0){n=a[A+24>>2]|0;A=a[A+20>>2]|0;f=fq(r,r,i,8,1)|0;W6(a[f+20>>2]|0,A|0,(r<<2)+4|0)|0;W6(a[f+24>>2]|0,n|0,i<<2|0)|0;a[f+8>>2]=a[e>>2];A=tq(f,1)|0;rq(f);A=kq(A)|0;r=A+8|0;i=$F(a[r>>2]<<3)|0;a[A+28>>2]=i;r=a[r>>2]|0;e=0;while(1){if((e|0)>=(r|0))break;s[i+(e<<3)>>3]=1.0;e=e+1|0}a[A+16>>2]=1;a[A+40>>2]=8}else A=0;return A|0}function Hb(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0;o=a[A+20>>2]|0;h=a[A+24>>2]|0;E=a[A+4>>2]|0;w=a[A>>2]|0;d=E<<2;B=$F(d)|0;g=$F(d+4|0)|0;v=$F(d)|0;d=$F(d)|0;k=g+4|0;A=0;while(1){if((A|0)>=(E|0))break;a[B+(A<<2)>>2]=0;A=A+1|0}a[k>>2]=E;A=0;while(1){if((A|0)>=(E|0)){l=1;s=0;break}a[v+(A<<2)>>2]=-1;A=A+1|0}A:while(1){if((s|0)>=(w|0))break;n=o+(s<<2)|0;b=s+1|0;u=o+(b<<2)|0;A=a[n>>2]|0;while(1){f=a[u>>2]|0;if((A|0)>=(f|0))break;c=k+(a[B+(a[h+(A<<2)>>2]<<2)>>2]<<2)|0;a[c>>2]=(a[c>>2]|0)+-1;A=A+1|0}A=l;c=a[n>>2]|0;while(1){if((c|0)>=(f|0)){l=A;s=b;continue A}l=h+(c<<2)|0;f=B+(a[l>>2]<<2)|0;t=a[f>>2]|0;n=v+(t<<2)|0;if((a[n>>2]|0)<(s|0)){a[n>>2]=s;f=k+(t<<2)|0;if(!(a[f>>2]|0)){a[f>>2]=1;n=A;A=t;f=d+(t<<2)|0}else{a[d+(t<<2)>>2]=A;a[k+(A<<2)>>2]=1;n=A+1|0;f=B+(a[l>>2]<<2)|0}a[f>>2]=A;A=n}else{t=d+(t<<2)|0;a[f>>2]=a[t>>2];t=k+(a[t>>2]<<2)|0;a[t>>2]=(a[t>>2]|0)+1}c=c+1|0;f=a[u>>2]|0}}a[g>>2]=0;A=0;f=0;while(1){if((A|0)>=(l|0))break;o=A+1|0;k=g+(o<<2)|0;h=(a[k>>2]|0)+f|0;a[k>>2]=h;A=o;f=h}a[i>>2]=d;A=0;while(1){if((A|0)>=(E|0)){A=l;break}h=g+(a[B+(A<<2)>>2]<<2)|0;i=a[h>>2]|0;a[h>>2]=i+1;a[d+(i<<2)>>2]=A;A=A+1|0}while(1){if((A|0)<=0)break;E=A+-1|0;a[g+(A<<2)>>2]=a[g+(E<<2)>>2];A=E}a[g>>2]=0;a[r>>2]=g;a[e>>2]=l;L2(v);L2(B);return}function Ub(){return+(+(a8()|0)*4.656612875245797e-10)}function xb(A){A=A|0;if((A|0)>1)return(a8()|0)%(A|0)|0|0;else gA(95682,95688,58,95698);return 0}function Tb(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;A:do{if((A|0)<1)e=0;else{e=$F(A<<2)|0;i=0;while(1){if((i|0)==(A|0))break;a[e+(i<<2)>>2]=i;i=i+1|0}while(1){if((A|0)<=1)break A;r=xb(A)|0;i=A+-1|0;n=e+(i<<2)|0;f=a[n>>2]|0;r=e+(r<<2)|0;a[n>>2]=a[r>>2];a[r>>2]=f;A=i}}}while(0);return e|0}function jb(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;r=0;while(1){if((r|0)>=(A|0))break;f=i+(r<<3)|0;s[f>>3]=+s[e+(r<<3)>>3]-+s[f>>3];r=r+1|0}return i|0}function Pb(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0.0,a=0.0;r=0;f=0.0;while(1){if((r|0)>=(A|0))break;a=+s[i+(r<<3)>>3]*+s[e+(r<<3)>>3]+f;r=r+1|0;f=a}return+f}function Sb(A,e,i,r){A=A|0;e=e|0;i=i|0;r=+r;var f=0,a=0;f=0;while(1){if((f|0)>=(A|0))break;a=i+(f<<3)|0;s[a>>3]=+s[a>>3]*r+ +s[e+(f<<3)>>3];f=f+1|0}return i|0}function Ob(A,e,i,r){A=A|0;e=e|0;i=i|0;r=+r;var f=0,a=0;f=0;while(1){if((f|0)>=(A|0))break;a=e+(f<<3)|0;s[a>>3]=+s[i+(f<<3)>>3]*r+ +s[a>>3];f=f+1|0}return e|0}function Kb(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,a=0,n=0.0;a=U(i,e)|0;r=U(r,e)|0;f=0.0;i=0;while(1){if((i|0)>=(e|0))break;n=+s[A+(i+a<<3)>>3]-+s[A+(i+r<<3)>>3];f=n*n+f;i=i+1|0}n=+z(+f);return+(n>1.0e-15?n:1.0e-15)}function _b(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,a=0,n=0.0;a=U(i,e)|0;r=U(r,e)|0;f=0.0;i=0;while(1){if((i|0)>=(e|0))break;n=+s[A+(i+a<<3)>>3]-+s[A+(i+r<<3)>>3];f=n*n+f;i=i+1|0}return+ +z(+f)}function qb(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0,a=0.0;r=0.0;f=0;while(1){if((f|0)>=(i|0))break;a=+s[A+(f<<3)>>3]-+s[e+(f<<3)>>3];r=a*a+r;f=f+1|0}return+ +z(+r)}function $b(A,e,i,r,f,a,n){A=+A;e=+e;i=+i;r=+r;f=f|0;a=a|0;n=n|0;var l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0.0,d=0,B=0.0;o=k;k=k+80|0;u=o+48|0;b=o+24|0;w=o;l=0;while(1){if((l|0)>=(a|0)){t=0;break}h=+s[n+(l<<3)>>3];s[u+(l<<3)>>3]=h;s[b+(l<<3)>>3]=h;l=l+1|0}while(1){if((t|0)>=(f|0))break;c=U(t,a)|0;l=0;while(1){if((l|0)>=(a|0))break;B=+s[n+(l+c<<3)>>3];d=u+(l<<3)|0;h=+s[d>>3];s[d>>3]=B>3];s[d>>3]=B>h?B:h;l=l+1|0}t=t+1|0}h=+s[b>>3]-+s[u>>3];i=h!=0.0?(i-A)/h:1.0;h=+s[b+8>>3]-+s[u+8>>3];B=(r-e)/h;i=h!=0.0?i>3]=A;s[w+8>>3]=e;s[w+16>>3]=0.0;t=0;while(1){if((t|0)>=(f|0))break;c=U(t,a)|0;l=0;while(1){if((l|0)>=(a|0))break;d=n+(l+c<<3)|0;s[d>>3]=(+s[d>>3]-+s[u+(l<<3)>>3])*i+ +s[w+(l<<3)>>3];l=l+1|0}t=t+1|0}k=o;return}function Au(A,e){A=A|0;e=e|0;if((gh(A)|0)==1){A=a[(a[(cd(A)|0)+16>>2]|0)+132>>2]|0;a[A>>2]=0;a[A+4>>2]=0;a[A+8>>2]=0;a[A+12>>2]=0}else{eu(A);if(!((vR(Ho(e,95704)|0)|0)<<24>>24))e=Jw(A,186208)|0;else e=iu(A)|0;jw(A,e,186208);ru(e)}return}function eu(A){A=A|0;var e=0;e=Id(a[a[(a[(cd(A)|0)+16>>2]|0)+112>>2]>>2]|0)|0;A=a[46925]|0;if((e|0)!=(A|0)){a[46555]=0;a[46925]=e;a[46926]=Yo(e,0,95713,0)|0;a[46927]=Yo(a[46925]|0,1,95721,0)|0;a[46928]=Yo(a[46925]|0,1,95738,0)|0;A=a[46925]|0}a[46929]=Ho(A,95738)|0;zw(186208);a[46554]=1;s[23280]=+oR(a[46925]|0,a[46926]|0,1.0,0.0);a[46556]=a[46927];a[46557]=a[46928];a[46558]=a[46929];return}function iu(A){A=A|0;var e=0,i=0,r=0,f=0;f=k;k=k+144|0;r=f;i=f+8|0;e=a[46555]|0;a[46555]=e+1;a[r>>2]=e;S4(i,96234,r)|0;i=Yw(NB(A,i,1)|0)|0;r=i+8|0;e=cd(A)|0;while(1){if(!e)break;kd(a[r>>2]|0,e,1)|0;a[(a[(a[e+16>>2]|0)+112>>2]|0)+12>>2]=i;e=sd(A,e)|0}k=f;return i|0}function ru(A){A=A|0;Tw(A);return}function fu(A,e){A=A|0;e=e|0;var i=0;i=$F(32)|0;a[i>>2]=4;s[i+8>>3]=.75;a[i+16>>2]=1073741824;a[i+20>>2]=1;a[i+24>>2]=A;a[i+28>>2]=e;return i|0}function au(A){A=A|0;L2(A);return}function nu(A){A=A|0;var e=0,i=0;if(!A)return;i=a[A+8>>2]|0;do{if(i|0){if(a[A>>2]|0){rq(i);e=a[A+12>>2]|0;if(!e)break;rq(e);break}if(a[A+36>>2]|0?(rq(i),e=a[A+12>>2]|0,e|0):0)rq(e)}}while(0);rq(a[A+16>>2]|0);rq(a[A+20>>2]|0);e=a[A+24>>2]|0;if(e|0?(a[A>>2]|0)>0:0)L2(e);nu(a[A+28>>2]|0);L2(A);return}function lu(A,e,i,r,f,n,l,t,c,b){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;t=t|0;c=c|0;b=b|0;var u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0.0,E=0;E=k;k=k+32|0;u=E+16|0;w=E+12|0;o=E+8|0;h=E+4|0;d=E;a[u>>2]=A;a[w>>2]=0;a[o>>2]=0;a[h>>2]=0;a[d>>2]=0;a[l>>2]=0;a[t>>2]=0;a[e>>2]=0;a[n>>2]=0;a[r>>2]=0;B=c+28|0;g=c+8|0;v=+(a[A+4>>2]|0);f=i;do{tu(A,u,f,w,0,d,o,h,c,b);f=a[u>>2]|0;if(!f)break;i=a[f+4>>2]|0;f=a[l>>2]|0;if(!f){a[l>>2]=a[o>>2];a[t>>2]=a[h>>2]}else{A=Vb(f,a[o>>2]|0)|0;rq(a[l>>2]|0);rq(a[o>>2]|0);a[l>>2]=A;A=Vb(a[h>>2]|0,a[t>>2]|0)|0;rq(a[t>>2]|0);rq(a[h>>2]|0);a[t>>2]=A}f=a[e>>2]|0;if(f|0)rq(f);a[e>>2]=a[u>>2];f=a[r>>2]|0;if(f|0)rq(f);f=a[w>>2]|0;a[r>>2]=f;A=a[n>>2]|0;if(A){L2(A);f=a[w>>2]|0}a[n>>2]=a[d>>2];A=a[u>>2]|0;a[d>>2]=0;if(!(+s[g>>3]*v<+(i|0)))break}while((a[B>>2]|0)==1);k=E;return}function tu(A,e,i,r,f,n,l,t,c,b){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;t=t|0;c=c|0;b=b|0;var u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0.0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0;D=k;k=k+32|0;y=D+28|0;h=D+24|0;Q=D+20|0;W=D+16|0;w=D+12|0;z=D+8|0;Y=D+4|0;E=D;a[y>>2]=0;a[h>>2]=0;a[W>>2]=0;a[z>>2]=0;a[Y>>2]=0;a[e>>2]=0;a[r>>2]=0;a[l>>2]=0;a[t>>2]=0;L=a[A>>2]|0;o=c+24|0;a[b>>2]=a[o>>2];u=a[o>>2]|0;A:do{switch(u|0){case 12:{a[o>>2]=3;a[b>>2]=3;tu(A,e,i,r,f,n,l,t,c,b);if((((a[e>>2]|0)==0?(a[o>>2]=4,a[b>>2]=4,tu(A,e,i,r,f,n,l,t,c,b),(a[e>>2]|0)==0):0)?(a[o>>2]=6,a[b>>2]=6,tu(A,e,i,r,f,n,l,t,c,b),(a[e>>2]|0)==0):0)?(a[o>>2]=9,a[b>>2]=9,tu(A,e,i,r,f,n,l,t,c,b),(a[e>>2]|0)==0):0){a[o>>2]=2;a[b>>2]=2;tu(A,e,i,r,f,n,l,t,c,b)}a[o>>2]=12;o=0;h=0;c=0;w=0;u=0;b=0;break}case 9:case 10:{i=a[c+20>>2]|0;if((u|0)==9)ou(A,i,W,w,Q);else hu(A,i,W,w,Q);v=a[A+20>>2]|0;E=a[A+24>>2]|0;g=a[w>>2]|0;if(!(a[c+28>>2]|0)){if((g|0)==(L|0)?1:+s[c+8>>3]*+(L|0)<+(g|0)){o=0;h=0;c=0;w=0;u=0;b=0;break A}}else if((g|0)==(L|0)){o=0;h=0;c=0;w=0;u=0;b=0;break A}if((g|0)>=(a[c>>2]|0)){G=a[Q>>2]|0;Z=G<<2;I=$F(Z)|0;Z=$F(Z)|0;G=$F(G<<3)|0;a[Q>>2]=0;B=a[W>>2]|0;d=0;w=0;e:while(1){if((d|0)>=(L|0))break;i=B+(d<<2)|0;if((a[i>>2]|0)!=-1){a[I+(w<<2)>>2]=d;a[Z+(a[Q>>2]<<2)>>2]=a[i>>2];h=a[Q>>2]|0;c=h+1|0;a[Q>>2]=c;s[G+(h<<3)>>3]=1.0;d=d+1|0;w=c;continue}u=a[v+(d<<2)>>2]|0;h=d+1|0;c=v+(h<<2)|0;o=a[c>>2]|0;i=0;b=u;while(1){if((b|0)>=(o|0))break;i=((a[B+(a[E+(b<<2)>>2]<<2)>>2]|0)>>>31^1)+i|0;b=b+1|0}C=1.0/+(i|0);i=o;while(1){if((u|0)>=(i|0)){d=h;continue e}b=E+(u<<2)|0;if((a[B+(a[b>>2]<<2)>>2]|0)>-1){a[I+(w<<2)>>2]=d;a[Z+(a[Q>>2]<<2)>>2]=a[B+(a[b>>2]<<2)>>2];i=a[Q>>2]|0;b=i+1|0;a[Q>>2]=b;s[G+(i<<3)>>3]=C;i=a[c>>2]|0}else b=w;u=u+1|0;w=b}}L=hq(w,L,g,I,Z,G,1,8)|0;a[l>>2]=L;L=iq(L)|0;a[t>>2]=L;l=Jb(L,A,a[l>>2]|0)|0;a[e>>2]=l;if(!l){o=G;h=Z;c=I;w=I;u=Z;b=G}else{Mb(a[t>>2]|0,f,n,0);o=a[e>>2]|0;h=o+36|0;a[h>>2]=a[h>>2]|3;a[e>>2]=kq(o)|0;a[r>>2]=0;o=G;h=Z;c=I;w=I;u=Z;b=G}}else{o=0;h=0;c=0;w=0;u=0;b=0}break}case 5:{m=26;break}case 1:{b=c+20|0;uu(A,a[b>>2]|0,y,h);i=a[o>>2]|0;if((i|0)==2){i=b;m=24}else m=25;break}case 2:{i=c+20|0;m=24;break}case 3:{cu(A,a[c+20>>2]|0,z,Y,E);m=12;break}case 4:{su(A,a[c+20>>2]|0,z,Y,E);m=12;break}case 6:{bu(A,z,Y,E);m=12;break}default:{o=0;h=0;c=0;w=0;u=0;b=0}}}while(0);do{if((m|0)==12){d=a[E>>2]|0;if(!(a[c+28>>2]|0)){if((d|0)==(L|0)?1:+s[c+8>>3]*+(L|0)<+(d|0)){o=0;h=0;c=0;w=0;u=0;b=0;break}}else if((d|0)==(L|0)){o=0;h=0;c=0;w=0;u=0;b=0;break}if((d|0)>=(a[c>>2]|0)){g=L<<2;B=$F(g)|0;g=$F(g)|0;v=$F(L<<3)|0;a[Q>>2]=0;w=a[Y>>2]|0;o=a[z>>2]|0;u=0;i=0;A:while(1){if((u|0)>=(a[E>>2]|0))break;h=u+1|0;c=w+(h<<2)|0;b=a[w+(u<<2)>>2]|0;while(1){if((b|0)>=(a[c>>2]|0)){u=h;continue A}a[B+(i<<2)>>2]=a[o+(b<<2)>>2];a[g+(a[Q>>2]<<2)>>2]=u;Z=a[Q>>2]|0;G=Z+1|0;a[Q>>2]=G;s[v+(Z<<3)>>3]=1.0;b=b+1|0;i=G}}L=hq(i,L,d,B,g,v,1,8)|0;a[l>>2]=L;a[t>>2]=iq(L)|0;a[r>>2]=0;l=Jb(a[t>>2]|0,A,a[l>>2]|0)|0;a[e>>2]=l;if(!l){o=v;h=g;c=B;w=B;u=g;b=v}else{Mb(a[t>>2]|0,f,n,0);a[t>>2]=Rb(a[t>>2]|0)|0;o=a[e>>2]|0;h=o+36|0;a[h>>2]=a[h>>2]|3;a[e>>2]=kq(o)|0;o=v;h=g;c=B;w=B;u=g;b=v}}else{o=0;h=0;c=0;w=0;u=0;b=0}}else if((m|0)==24){wu(A,a[i>>2]|0,y,h);i=a[o>>2]|0;m=25}}while(0);if((m|0)==25)if((i|0)==5)m=26;else m=27;if((m|0)==26){ku(A,a[c+20>>2]|0,y,h);m=27}do{if((m|0)==27){i=a[h>>2]|0;if(!(a[c+28>>2]|0)){if((i|0)==(L|0)?1:+s[c+8>>3]*+(L|0)<+(i|0)){o=0;h=0;c=0;w=0;u=0;b=0;break}}else if((i|0)==(L|0)){o=0;h=0;c=0;w=0;u=0;b=0;break}if((i|0)>=(a[c>>2]|0)){B=L<<2;d=$F(B)|0;B=$F(B)|0;g=$F(L<<3)|0;a[Q>>2]=0;h=a[y>>2]|0;i=0;o=0;while(1){if((o|0)>=(L|0))break;b=h+(o<<2)|0;u=a[b>>2]|0;if((u|0)>-1){a[d+(a[Q>>2]<<2)>>2]=o;a[B+(a[Q>>2]<<2)>>2]=i;m=a[Q>>2]|0;w=m+1|0;a[Q>>2]=w;s[g+(m<<3)>>3]=1.0;if((u|0)!=(o|0)){a[d+(w<<2)>>2]=a[b>>2];a[B+(a[Q>>2]<<2)>>2]=i;m=a[Q>>2]|0;a[Q>>2]=m+1;s[g+(m<<3)>>3]=1.0;a[h+(a[b>>2]<<2)>>2]=-1}a[b>>2]=-1;i=i+1|0}o=o+1|0}L=hq(a[Q>>2]|0,L,i,d,B,g,1,8)|0;a[l>>2]=L;L=iq(L)|0;a[t>>2]=L;l=Jb(L,A,a[l>>2]|0)|0;a[e>>2]=l;if(!l){o=g;h=B;c=d;w=d;u=B;b=g}else{Mb(a[t>>2]|0,f,n,0);a[t>>2]=Rb(a[t>>2]|0)|0;o=a[e>>2]|0;h=o+36|0;a[h>>2]=a[h>>2]|3;a[e>>2]=kq(o)|0;a[r>>2]=0;o=g;h=B;c=d;w=d;u=B;b=g}}else{o=0;h=0;c=0;w=0;u=0;b=0}}}while(0);i=a[y>>2]|0;if(i|0)L2(i);i=a[W>>2]|0;if(i|0)L2(i);if(c|0)L2(w);if(h|0)L2(u);if(o|0)L2(b);i=a[z>>2]|0;if(i|0)L2(i);i=a[Y>>2]|0;if(i|0)L2(i);k=D;return}function cu(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0.0,c=0,b=0,u=0,w=0,k=0.0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0;g=a[A+20>>2]|0;v=a[A+24>>2]|0;C=a[A>>2]|0;E=C<<2;a[i>>2]=$F(E)|0;a[r>>2]=$F(E+4|0)|0;E=$F(E)|0;n=0;while(1){if((n|0)>=(C|0))break;a[E+(n<<2)>>2]=n;n=n+1|0}a[f>>2]=0;d=a[r>>2]|0;a[d>>2]=0;B=a[A+28>>2]|0;A:do{if(!e){n=0;A=0;e:while(1){while(1){if((A|0)>=(C|0)){A=0;t=0.0;e=0;break e}e=A;A=A+1|0;if((a[E+(e<<2)>>2]|0)==-1)continue;e=a[g+(e<<2)>>2]|0;if(((a[g+(A<<2)>>2]|0)-e|0)==1)break}b=a[v+(e<<2)>>2]|0;a[E+(b<<2)>>2]=-1;u=a[i>>2]|0;a[u+(n<<2)>>2]=b;w=g+(b+1<<2)|0;c=a[g+(b<<2)>>2]|0;n=n+1|0;while(1){if((c|0)>=(a[w>>2]|0))break;e=v+(c<<2)|0;l=a[e>>2]|0;if((b|0)!=(l|0)?((a[g+(l+1<<2)>>2]|0)-(a[g+(l<<2)>>2]|0)|0)==1:0){a[E+(l<<2)>>2]=-1;a[u+(n<<2)>>2]=a[e>>2];n=n+1|0}c=c+1|0}e=a[f>>2]|0;l=a[d+(e<<2)>>2]|0;if((n-l|0)<5){r=e+1|0;a[f>>2]=r;a[d+(r<<2)>>2]=n;continue}l=l+1|0;e=e+1|0;a[f>>2]=e;a[d+(e<<2)>>2]=l;e=l;while(1){if(!((l|0)<(n|0)&(e|0)<(n|0)))continue e;r=l+3|0;r=(n|0)<(r|0)?n:r;h=(a[f>>2]|0)+1|0;a[f>>2]=h;a[d+(h<<2)>>2]=r;e=e+1|0;l=r}}e:while(1){do{w=e;while(1){if((w|0)>=(C|0)){A=0;break e}o=E+(w<<2)|0;l=a[o>>2]|0;if((l|0)!=-1)break;w=w+1|0}e=w+1|0;h=a[g+(e<<2)>>2]|0;b=1;u=a[g+(w<<2)>>2]|0;while(1){if((u|0)>=(h|0))break;c=a[v+(u<<2)>>2]|0;if((w|0)!=(c|0)?(a[E+(c<<2)>>2]|0)!=-1:0)if((l|0)!=-1){k=+s[B+(u<<3)>>3];if((b|0)==0?!(k>t):0)b=0;else{b=0;A=c;t=k}}else l=-1;u=u+1|0}}while((b|0)!=0);a[E+(A<<2)>>2]=-1;a[o>>2]=-1;h=a[i>>2]|0;a[h+(n<<2)>>2]=w;r=n+2|0;a[h+(n+1<<2)>>2]=A;h=(a[f>>2]|0)+1|0;a[f>>2]=h;a[d+(h<<2)>>2]=r;n=r}while(1){if((A|0)>=(C|0))break A;if((a[E+(A<<2)>>2]|0)==(A|0)){v=n+1|0;a[(a[i>>2]|0)+(n<<2)>>2]=A;n=(a[f>>2]|0)+1|0;a[f>>2]=n;a[d+(n<<2)>>2]=v;n=v}A=A+1|0}}else{d=Tb(C)|0;w=0;n=0;while(1){if((w|0)>=(C|0)){h=0;A=0;t=0.0;break}A=a[d+(w<<2)>>2]|0;e:do{if((a[E+(A<<2)>>2]|0)!=-1?(o=a[g+(A<<2)>>2]|0,((a[g+(A+1<<2)>>2]|0)-o|0)==1):0){c=a[v+(o<<2)>>2]|0;a[E+(c<<2)>>2]=-1;b=a[i>>2]|0;a[b+(n<<2)>>2]=c;u=g+(c+1<<2)|0;l=a[g+(c<<2)>>2]|0;n=n+1|0;while(1){if((l|0)>=(a[u>>2]|0))break;A=v+(l<<2)|0;e=a[A>>2]|0;if((c|0)!=(e|0)?((a[g+(e+1<<2)>>2]|0)-(a[g+(e<<2)>>2]|0)|0)==1:0){a[E+(e<<2)>>2]=-1;a[b+(n<<2)>>2]=a[A>>2];n=n+1|0}l=l+1|0}l=a[r>>2]|0;A=a[f>>2]|0;e=a[l+(A<<2)>>2]|0;if((n-e|0)<5){h=A+1|0;a[f>>2]=h;a[l+(h<<2)>>2]=n;break}e=e+1|0;A=A+1|0;a[f>>2]=A;a[l+(A<<2)>>2]=e;A=e;while(1){if(!((e|0)<(n|0)&(A|0)<(n|0)))break e;h=e+3|0;h=(n|0)<(h|0)?n:h;u=(a[f>>2]|0)+1|0;a[f>>2]=u;a[l+(u<<2)>>2]=h;A=A+1|0;e=h}}}while(0);w=w+1|0}while(1){if((h|0)>=(C|0)){A=0;break}u=a[d+(h<<2)>>2]|0;w=E+(u<<2)|0;e=a[w>>2]|0;if((e|0)!=-1){o=a[g+(u+1<<2)>>2]|0;c=1;b=a[g+(u<<2)>>2]|0;while(1){if((b|0)>=(o|0))break;l=a[v+(b<<2)>>2]|0;if((u|0)!=(l|0)?(a[E+(l<<2)>>2]|0)!=-1:0)if((e|0)!=-1){k=+s[B+(b<<3)>>3];if((c|0)==0?!(k>t):0)c=0;else{c=0;A=l;t=k}}else e=-1;b=b+1|0}if(!c){a[E+(A<<2)>>2]=-1;a[w>>2]=-1;w=a[i>>2]|0;a[w+(n<<2)>>2]=u;o=n+2|0;a[w+(n+1<<2)>>2]=A;w=a[r>>2]|0;n=(a[f>>2]|0)+1|0;a[f>>2]=n;a[w+(n<<2)>>2]=o;n=o}}h=h+1|0}while(1){if((A|0)>=(C|0))break;if((a[E+(A<<2)>>2]|0)==(A|0)){v=n+1|0;a[(a[i>>2]|0)+(n<<2)>>2]=A;g=a[r>>2]|0;n=(a[f>>2]|0)+1|0;a[f>>2]=n;a[g+(n<<2)>>2]=v;n=v}A=A+1|0}L2(d)}}while(0);L2(E);return}function su(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0.0,t=0,c=0,b=0,u=0,w=0.0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0;m=k;k=k+16|0;h=m+8|0;Z=m+4|0;G=m;a[Z>>2]=0;a[G>>2]=0;E=a[A+20>>2]|0;v=a[A+24>>2]|0;C=a[A>>2]|0;I=C<<2;a[i>>2]=$F(I)|0;a[r>>2]=$F(I+4|0)|0;I=$F(I)|0;n=0;while(1){if((n|0)>=(C|0))break;a[I+(n<<2)>>2]=n;n=n+1|0}Hb(A,h,Z,G);a[f>>2]=0;B=a[r>>2]|0;a[B>>2]=0;g=a[A+28>>2]|0;n=0;A=0;A:while(1){c=a[h>>2]|0;b=a[G>>2]|0;do{if((A|0)>=(c|0))break A;u=A;A=A+1|0;o=b+(A<<2)|0;t=a[o>>2]|0;u=a[b+(u<<2)>>2]|0}while((t-u|0)<2);b=a[Z>>2]|0;c=a[B+(a[f>>2]<<2)>>2]|0;while(1){if((u|0)>=(t|0))break;d=b+(u<<2)|0;a[I+(a[d>>2]<<2)>>2]=-1;t=n+1|0;a[(a[i>>2]|0)+(n<<2)>>2]=a[d>>2];if((t-c|0)>3){n=(a[f>>2]|0)+1|0;a[f>>2]=n;a[B+(n<<2)>>2]=t;n=t}else n=c;c=n;u=u+1|0;n=t;t=a[o>>2]|0}if((n|0)<=(c|0))continue;d=(a[f>>2]|0)+1|0;a[f>>2]=d;a[B+(d<<2)>>2]=n}A:do{if(!e){A=0;l=0.0;t=0;e:while(1){do{e=t;while(1){if((e|0)>=(C|0)){A=0;break e}h=I+(e<<2)|0;c=a[h>>2]|0;if((c|0)!=-1)break;e=e+1|0}t=e+1|0;d=a[E+(t<<2)>>2]|0;u=1;o=a[E+(e<<2)>>2]|0;while(1){if((o|0)>=(d|0))break;b=a[v+(o<<2)>>2]|0;if((e|0)!=(b|0)?(a[I+(b<<2)>>2]|0)!=-1:0)if((c|0)!=-1){w=+s[g+(o<<3)>>3];if((u|0)==0?!(w>l):0)u=0;else{u=0;A=b;l=w}}else c=-1;o=o+1|0}}while((u|0)!=0);a[I+(A<<2)>>2]=-1;a[h>>2]=-1;d=a[i>>2]|0;a[d+(n<<2)>>2]=e;r=n+2|0;a[d+(n+1<<2)>>2]=A;d=(a[f>>2]|0)+1|0;a[f>>2]=d;a[B+(d<<2)>>2]=r;n=r}while(1){if((A|0)>=(C|0))break A;if((a[I+(A<<2)>>2]|0)==(A|0)){E=n+1|0;a[(a[i>>2]|0)+(n<<2)>>2]=A;n=(a[f>>2]|0)+1|0;a[f>>2]=n;a[B+(n<<2)>>2]=E;n=E}A=A+1|0}}else{B=Tb(C)|0;d=0;A=0;l=0.0;while(1){if((d|0)>=(C|0)){A=0;break}o=a[B+(d<<2)>>2]|0;e=I+(o<<2)|0;t=a[e>>2]|0;if((t|0)!=-1){h=a[E+(o+1<<2)>>2]|0;b=1;u=a[E+(o<<2)>>2]|0;while(1){if((u|0)>=(h|0))break;c=a[v+(u<<2)>>2]|0;if((o|0)!=(c|0)?(a[I+(c<<2)>>2]|0)!=-1:0)if((t|0)!=-1){w=+s[g+(u<<3)>>3];if((b|0)==0?!(w>l):0)b=0;else{b=0;A=c;l=w}}else t=-1;u=u+1|0}if(!b){a[I+(A<<2)>>2]=-1;a[e>>2]=-1;e=a[i>>2]|0;a[e+(n<<2)>>2]=o;h=n+2|0;a[e+(n+1<<2)>>2]=A;e=a[r>>2]|0;n=(a[f>>2]|0)+1|0;a[f>>2]=n;a[e+(n<<2)>>2]=h;n=h}}d=d+1|0}while(1){if((A|0)>=(C|0))break;if((a[I+(A<<2)>>2]|0)==(A|0)){E=n+1|0;a[(a[i>>2]|0)+(n<<2)>>2]=A;v=a[r>>2]|0;n=(a[f>>2]|0)+1|0;a[f>>2]=n;a[v+(n<<2)>>2]=E;n=E}A=A+1|0}L2(B)}}while(0);L2(a[Z>>2]|0);L2(a[G>>2]|0);L2(I);k=m;return}function bu(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0;d=a[A+20>>2]|0;B=a[A+24>>2]|0;E=a[A>>2]|0;v=E<<2;a[e>>2]=$F(v)|0;a[i>>2]=$F(v+4|0)|0;v=$F(v)|0;h=$F(E<<4)|0;f=0;while(1){if((f|0)>=(E|0))break;a[v+(f<<2)>>2]=f;f=f+1|0}a[r>>2]=0;a[a[i>>2]>>2]=0;o=a[A+28>>2]|0;g=Tb(E)|0;f=0;u=0;while(1){if((u|0)>=(E|0)){k=0;break}A=a[g+(u<<2)>>2]|0;A:do{if((a[v+(A<<2)>>2]|0)!=-1?(w=a[d+(A<<2)>>2]|0,((a[d+(A+1<<2)>>2]|0)-w|0)==1):0){t=a[B+(w<<2)>>2]|0;a[v+(t<<2)>>2]=-1;c=a[e>>2]|0;a[c+(f<<2)>>2]=t;b=d+(t+1<<2)|0;l=a[d+(t<<2)>>2]|0;f=f+1|0;while(1){if((l|0)>=(a[b>>2]|0))break;A=B+(l<<2)|0;n=a[A>>2]|0;if((t|0)!=(n|0)?((a[d+(n+1<<2)>>2]|0)-(a[d+(n<<2)>>2]|0)|0)==1:0){a[v+(n<<2)>>2]=-1;a[c+(f<<2)>>2]=a[A>>2];f=f+1|0}l=l+1|0}l=a[i>>2]|0;A=a[r>>2]|0;n=a[l+(A<<2)>>2]|0;if((f-n|0)<5){k=A+1|0;a[r>>2]=k;a[l+(k<<2)>>2]=f;break}n=n+1|0;A=A+1|0;a[r>>2]=A;a[l+(A<<2)>>2]=n;A=n;while(1){if(!((n|0)<(f|0)&(A|0)<(f|0)))break A;k=n+3|0;k=(f|0)<(k|0)?f:k;b=(a[r>>2]|0)+1|0;a[r>>2]=b;a[l+(b<<2)>>2]=k;A=A+1|0;n=k}}}while(0);u=u+1|0}while(1){if((k|0)>=(E|0)){A=0;break}u=a[g+(k<<2)>>2]|0;w=v+(u<<2)|0;A=a[w>>2]|0;if((A|0)!=-1){b=a[d+(u+1<<2)>>2]|0;n=0;c=a[d+(u<<2)>>2]|0;while(1){if((c|0)>=(b|0))break;t=a[B+(c<<2)>>2]|0;if((u|0)!=(t|0)?(a[v+(t<<2)>>2]|0)!=-1:0){l=n<<1;if((A|0)==-1)A=-1;else{s[h+(l<<3)>>3]=+(t|0);s[h+((l|1)<<3)>>3]=+s[o+(c<<3)>>3];n=n+1|0}}c=c+1|0}if((n|0)>0){K4(h,n,16,81);n=(n|0)<3?n:3;A=0;while(1){if((A|0)>=(n|0))break;b=~~+s[h+(A<<1<<3)>>3];a[v+(b<<2)>>2]=-1;a[(a[e>>2]|0)+(f<<2)>>2]=b;A=A+1|0;f=f+1|0}a[w>>2]=-1;w=f+1|0;a[(a[e>>2]|0)+(f<<2)>>2]=u;u=a[i>>2]|0;f=(a[r>>2]|0)+1|0;a[r>>2]=f;a[u+(f<<2)>>2]=w;f=w}}k=k+1|0}while(1){if((A|0)>=(E|0))break;if((a[v+(A<<2)>>2]|0)==(A|0)){B=f+1|0;a[(a[e>>2]|0)+(f<<2)>>2]=A;d=a[i>>2]|0;f=(a[r>>2]|0)+1|0;a[r>>2]=f;a[d+(f<<2)>>2]=B;f=B}A=A+1|0}L2(g);L2(v);return}function uu(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0;o=a[A+20>>2]|0;h=a[A+24>>2]|0;d=a[A>>2]|0;f=a[A+4>>2]|0;s=$F(d<<2)|0;a[i>>2]=s;A=0;while(1){if((A|0)>=(d|0))break;a[s+(A<<2)>>2]=A;A=A+1|0}a[r>>2]=f;A:do{if(!e){f=0;e:while(1){if((f|0)>=(d|0))break A;e=f+1|0;n=o+(e<<2)|0;l=s+(f<<2)|0;t=s+(f<<2)|0;A=a[o+(f<<2)>>2]|0;while(1){if((A|0)>=(a[n>>2]|0)){f=e;continue e}c=h+(A<<2)|0;i=a[c>>2]|0;if(((f|0)!=(i|0)?(k=s+(i<<2)|0,(a[k>>2]|0)==(i|0)):0)?(a[l>>2]|0)==(f|0):0){a[k>>2]=f;a[t>>2]=a[c>>2];a[r>>2]=(a[r>>2]|0)+-1}A=A+1|0}}}else{e=Tb(d)|0;A=0;while(1){if((A|0)>=(d|0))break;n=a[e+(A<<2)>>2]|0;l=o+(n+1<<2)|0;f=a[o+(n<<2)>>2]|0;while(1){if((f|0)>=(a[l>>2]|0))break;t=h+(f<<2)|0;c=a[t>>2]|0;if(((n|0)!=(c|0)?(b=a[i>>2]|0,u=b+(c<<2)|0,(a[u>>2]|0)==(c|0)):0)?(w=b+(n<<2)|0,(a[w>>2]|0)==(n|0)):0){a[u>>2]=n;a[w>>2]=a[t>>2];a[r>>2]=(a[r>>2]|0)+-1}f=f+1|0}A=A+1|0}L2(e)}}while(0);return}function wu(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0.0,t=0.0,c=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0;d=a[A+20>>2]|0;B=a[A+24>>2]|0;g=a[A>>2]|0;n=a[A+4>>2]|0;k=$F(g<<2)|0;a[i>>2]=k;f=0;while(1){if((f|0)>=(g|0))break;a[k+(f<<2)>>2]=f;f=f+1|0}a[r>>2]=n;h=a[A+28>>2]|0;A:do{if(!e){f=0;l=0.0;c=0;while(1){if((c|0)>=(g|0))break A;b=c+1|0;u=a[d+(b<<2)>>2]|0;w=k+(c<<2)|0;n=1;e=a[d+(c<<2)>>2]|0;while(1){if((e|0)>=(u|0))break;A=a[B+(e<<2)>>2]|0;if(((c|0)!=(A|0)?(a[k+(A<<2)>>2]|0)==(A|0):0)?(a[w>>2]|0)==(c|0):0){t=+s[h+(e<<3)>>3];if((n|0)==0?!(t>l):0)n=0;else{n=0;f=A;l=t}}e=e+1|0}if(n|0){c=b;continue}a[k+(f<<2)>>2]=c;a[k+(c<<2)>>2]=f;a[r>>2]=(a[r>>2]|0)+-1;c=b}}else{o=Tb(g)|0;k=0;f=0;l=0.0;while(1){if((k|0)>=(g|0))break;c=a[o+(k<<2)>>2]|0;b=a[i>>2]|0;u=b+(c<<2)|0;if((a[u>>2]|0)==(c|0)){w=a[d+(c+1<<2)>>2]|0;e=a[d+(c<<2)>>2]|0;n=1;while(1){if((e|0)>=(w|0))break;A=a[B+(e<<2)>>2]|0;if((c|0)!=(A|0)?(a[b+(A<<2)>>2]|0)==(A|0):0){t=+s[h+(e<<3)>>3];if((n|0)==0?!(t>l):0)n=0;else{n=0;f=A;l=t}}e=e+1|0}if(!n){a[b+(f<<2)>>2]=c;a[u>>2]=f;a[r>>2]=(a[r>>2]|0)+-1}}k=k+1|0}L2(o)}}while(0);return}function ku(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0.0,t=0.0,c=0,b=0,u=0,w=0,k=0.0,o=0,h=0,d=0,B=0,g=0,v=0;B=a[A+20>>2]|0;g=a[A+24>>2]|0;v=a[A>>2]|0;n=a[A+4>>2]|0;o=$F(v<<2)|0;a[i>>2]=o;f=0;while(1){if((f|0)>=(v|0))break;a[o+(f<<2)>>2]=f;f=f+1|0}a[r>>2]=n;d=a[A+28>>2]|0;A:do{if(!e){f=0;l=0.0;c=0;while(1){if((c|0)>=(v|0))break A;e=a[B+(c<<2)>>2]|0;b=c+1|0;u=a[B+(b<<2)>>2]|0;w=o+(c<<2)|0;k=+(u-e|0);n=1;while(1){if((e|0)>=(u|0))break;A=a[g+(e<<2)>>2]|0;if(((c|0)!=(A|0)?(a[o+(A<<2)>>2]|0)==(A|0):0)?(a[w>>2]|0)==(c|0):0){t=+s[d+(e<<3)>>3]/(+((a[B+(A+1<<2)>>2]|0)-(a[B+(A<<2)>>2]|0)|0)*k);if((n|0)==0?!(t>l):0)n=0;else{n=0;f=A;l=t}}e=e+1|0}if(n|0){c=b;continue}a[o+(f<<2)>>2]=c;a[o+(c<<2)>>2]=f;a[r>>2]=(a[r>>2]|0)+-1;c=b}}else{h=Tb(v)|0;o=0;f=0;l=0.0;while(1){if((o|0)>=(v|0))break;c=a[h+(o<<2)>>2]|0;b=a[i>>2]|0;u=b+(c<<2)|0;if((a[u>>2]|0)==(c|0)){e=a[B+(c<<2)>>2]|0;w=a[B+(c+1<<2)>>2]|0;k=+(w-e|0);n=1;while(1){if((e|0)>=(w|0))break;A=a[g+(e<<2)>>2]|0;if((c|0)!=(A|0)?(a[b+(A<<2)>>2]|0)==(A|0):0){t=+s[d+(e<<3)>>3]/(+((a[B+(A+1<<2)>>2]|0)-(a[B+(A<<2)>>2]|0)|0)*k);if((n|0)==0?!(t>l):0)n=0;else{n=0;f=A;l=t}}e=e+1|0}if(!n){a[b+(f<<2)>>2]=c;a[u>>2]=f;a[r>>2]=(a[r>>2]|0)+-1}}o=o+1|0}L2(h)}}while(0);return}function ou(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;u=a[A+20>>2]|0;w=a[A+24>>2]|0;b=a[A>>2]|0;c=$F(b<<2)|0;a[i>>2]=c;A=0;while(1){if((A|0)>=(b|0))break;a[c+(A<<2)>>2]=-100;A=A+1|0}a[r>>2]=0;a[f>>2]=0;A:do{if(!e){e=0;e:while(1){if((e|0)>=(b|0))break A;if((a[c+(e<<2)>>2]|0)!=-100){e=e+1|0;continue}n=a[r>>2]|0;a[r>>2]=n+1;a[c+(e<<2)>>2]=n;n=e+1|0;l=u+(n<<2)|0;A=a[u+(e<<2)>>2]|0;while(1){if((A|0)>=(a[l>>2]|0)){e=n;continue e}t=a[w+(A<<2)>>2]|0;if((e|0)!=(t|0)){a[c+(t<<2)>>2]=-1;a[f>>2]=(a[f>>2]|0)+1}A=A+1|0}}}else{t=Tb(b)|0;l=0;while(1){if((l|0)>=(b|0))break;c=a[t+(l<<2)>>2]|0;s=a[i>>2]|0;A=s+(c<<2)|0;e:do{if((a[A>>2]|0)==-100){e=a[r>>2]|0;a[r>>2]=e+1;a[A>>2]=e;e=u+(c+1<<2)|0;A=a[u+(c<<2)>>2]|0;while(1){if((A|0)>=(a[e>>2]|0))break e;n=a[w+(A<<2)>>2]|0;if((c|0)!=(n|0)){a[s+(n<<2)>>2]=-1;a[f>>2]=(a[f>>2]|0)+1}A=A+1|0}}}while(0);l=l+1|0}L2(t)}}while(0);a[f>>2]=(a[f>>2]|0)+(a[r>>2]|0);return}function hu(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0;h=k;k=k+16|0;u=h+4|0;w=h;o=a[A+20>>2]|0;b=a[A+24>>2]|0;l=a[A>>2]|0;A=$F(l<<2)|0;a[i>>2]=A;n=0;while(1){a[u>>2]=n;if((n|0)>=(l|0))break;a[A+(n<<2)>>2]=-100;n=(a[u>>2]|0)+1|0}a[r>>2]=0;a[f>>2]=0;s=Cu(l,(l<<1)+-2|0)|0;A:do{if(!e){A=0;while(1){a[u>>2]=A;if((A|0)>=(l|0))break A;c=A+1|0;Zu(s,A,(a[o+(c<<2)>>2]|0)-(a[o+(A<<2)>>2]|0)|0)|0;A=c}}else{n=Tb(l)|0;A=0;while(1){if((A|0)>=(l|0))break;c=a[n+(A<<2)>>2]|0;a[u>>2]=c;Zu(s,c,(a[o+(c+1<<2)>>2]|0)-(a[o+(c<<2)>>2]|0)|0)|0;A=A+1|0}L2(n)}}while(0);A:while(1){c=(Gu(s,u,w)|0)==0;A=a[r>>2]|0;if(c)break;a[r>>2]=A+1;a[(a[i>>2]|0)+(a[u>>2]<<2)>>2]=A;A=a[u>>2]|0;c=a[o+(A<<2)>>2]|0;while(1){if((c|0)>=(a[o+(A+1<<2)>>2]|0))continue A;t=a[b+(c<<2)>>2]|0;if((A|0)!=(t|0)){e:do{if((a[(a[i>>2]|0)+(t<<2)>>2]|0)==-100){Qu(s,t)|0;a[(a[i>>2]|0)+(t<<2)>>2]=-1;n=o+(t+1<<2)|0;A=a[o+(t<<2)>>2]|0;while(1){if((A|0)>=(a[n>>2]|0))break e;e=b+(A<<2)|0;l=a[e>>2]|0;if((t|0)!=(l|0)?(a[(a[i>>2]|0)+(l<<2)>>2]|0)==-100:0){l=mu(s,l)|0;a[w>>2]=l;Zu(s,a[e>>2]|0,l+1|0)|0}A=A+1|0}}}while(0);a[f>>2]=(a[f>>2]|0)+1;A=a[u>>2]|0}c=c+1|0}}a[f>>2]=(a[f>>2]|0)+A;Iu(s);k=h;return}function du(A,e){A=A|0;e=e|0;var i=0.0,r=0.0;r=+s[A+8>>3];i=+s[e+8>>3];return(r>i?-1:r>2]|0)==1:0)f=A;else f=Xb(A)|0;do{if(!e)e=0;else{if(cq(e,0)|0?(a[e+16>>2]|0)==1:0)break;e=wq(e,0)|0}}while(0);i=gu(f,e,i)|0;e=vu(i,r)|0;if((f|0)!=(A|0))a[i+36>>2]=1;return e|0}function gu(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;if(!A)A=0;else{r=$F(44)|0;a[r>>2]=0;a[r+4>>2]=a[A+4>>2];a[r+8>>2]=A;a[r+12>>2]=e;a[r+16>>2]=0;a[r+20>>2]=0;a[r+24>>2]=i;a[r+28>>2]=0;a[r+32>>2]=0;a[r+36>>2]=0;A=r}return A|0}function vu(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0;s=k;k=k+32|0;r=s+20|0;f=s+16|0;n=s+12|0;l=s+8|0;t=s+4|0;c=s;a[f>>2]=0;if((a[A>>2]|0)<((a[e+16>>2]|0)+-1|0)?(lu(a[A+8>>2]|0,t,a[A+12>>2]|0,c,0,f,n,l,e,r),i=a[t>>2]|0,i|0):0){t=a[c>>2]|0;c=gu(i,t,a[f>>2]|0)|0;a[A+28>>2]=c;a[c+40>>2]=a[r>>2];a[c>>2]=(a[A>>2]|0)+1;a[c+4>>2]=a[i>>2];a[c+8>>2]=i;a[c+12>>2]=t;a[c+16>>2]=a[n>>2];a[A+20>>2]=a[l>>2];a[c+32>>2]=A;vu(c,e)|0}k=s;return A|0}function Eu(A){A=A|0;var e=0;while(1){e=a[A+28>>2]|0;if(!e)break;else A=e}return A|0}function Cu(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;f=$F(28)|0;a[f>>2]=0;a[f+4>>2]=A;a[f+8>>2]=e;a[f+12>>2]=-1;r=f+16|0;a[r>>2]=$F((e<<2)+4|0)|0;i=0;while(1){if((i|0)>(e|0))break;a[(a[r>>2]|0)+(i<<2)>>2]=0;i=i+1|0}e=(A<<2)+4|0;r=f+20|0;a[r>>2]=$F(e)|0;i=0;while(1){if((i|0)>(A|0))break;a[(a[r>>2]|0)+(i<<2)>>2]=0;i=i+1|0}e=$F(e)|0;a[f+24>>2]=e;i=0;while(1){if((i|0)>(A|0))break;a[e+(i<<2)>>2]=-999;i=i+1|0}return f|0}function Iu(A){A=A|0;var e=0,i=0,r=0,f=0;if(A|0){r=A+16|0;e=a[r>>2]|0;if(e|0){f=A+8|0;i=0;while(1){if((i|0)>(a[f>>2]|0))break;Qw(a[e+(i<<2)>>2]|0,105);i=i+1|0;e=a[r>>2]|0}L2(e)}e=a[A+20>>2]|0;if(e|0)L2(e);L2(a[A+24>>2]|0);L2(A)}return}function Zu(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0;n=A+8|0;c=A+20|0;t=A+24|0;s=A+16|0;if(!A)gA(138953,95743,69,95759);while(1){if((a[n>>2]|0)<(i|0)){l=4;break}r=(a[c>>2]|0)+(e<<2)|0;f=a[r>>2]|0;if(!f)break;b=a[(a[t>>2]|0)+(e<<2)>>2]|0;a[r>>2]=0;a[A>>2]=(a[A>>2]|0)+-1;Ww(f,105,(a[s>>2]|0)+(b<<2)|0)}if((l|0)==4)gA(95778,95743,70,95759);a[A>>2]=(a[A>>2]|0)+1;r=A+12|0;if((a[r>>2]|0)<(i|0))a[r>>2]=i;a[(a[t>>2]|0)+(e<<2)>>2]=i;r=$F(4)|0;a[r>>2]=e;f=a[(a[s>>2]|0)+(i<<2)>>2]|0;if(!f)r=mw(r)|0;else r=Lw(f,r)|0;a[(a[c>>2]|0)+(e<<2)>>2]=r;a[(a[s>>2]|0)+(i<<2)>>2]=r;return A|0}function Gu(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;if((A|0)!=0?(a[A>>2]|0)>=1:0){f=A+12|0;r=a[f>>2]|0;a[i>>2]=r;a[A>>2]=(a[A>>2]|0)+-1;i=A+16|0;n=a[(a[i>>2]|0)+(r<<2)>>2]|0;a[e>>2]=a[(yw(n)|0)>>2];Ww(n,105,(a[i>>2]|0)+(r<<2)|0);i=a[i>>2]|0;if(!(a[i+(r<<2)>>2]|0)){while(1){if((r|0)<=-1)break;if(a[i+(r<<2)>>2]|0)break;r=r+-1|0}a[f>>2]=r}r=a[e>>2]|0;a[(a[A+20>>2]|0)+(r<<2)>>2]=0;a[(a[A+24>>2]|0)+(r<<2)>>2]=-999;r=1}else r=0;return r|0}function mu(A,e){A=A|0;e=e|0;return a[(a[A+24>>2]|0)+(e<<2)>>2]|0}function Qu(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;if((A|0)!=0?(r=a[A>>2]|0,(r|0)>=1):0){l=A+24|0;i=a[(a[l>>2]|0)+(e<<2)>>2]|0;a[A>>2]=r+-1;f=A+20|0;r=A+16|0;Ww(a[(a[f>>2]|0)+(e<<2)>>2]|0,105,(a[r>>2]|0)+(i<<2)|0);A=A+12|0;if((i|0)==(a[A>>2]|0)?(n=a[r>>2]|0,(a[n+(i<<2)>>2]|0)==0):0){while(1){if((i|0)<=-1)break;if(a[n+(i<<2)>>2]|0)break;i=i+-1|0}a[A>>2]=i}a[(a[f>>2]|0)+(e<<2)>>2]=0;a[(a[l>>2]|0)+(e<<2)>>2]=-999;i=1}else i=0;return i|0}function Lu(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0.0,l=0,t=0,c=0.0,b=0.0,u=0,w=0.0,k=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0;if(!(cq(A,0)|0))gA(95795,95831,260,95846);C=sq(A)|0;I=a[C+20>>2]|0;Z=a[C+24>>2]|0;r=C+16|0;A=C+28|0;if((a[r>>2]|0)==1)E=a[A>>2]|0;else{L2(a[A>>2]|0);a[r>>2]=1;E=$F(a[C+8>>2]<<3)|0;a[A>>2]=E}d=$F(a[C>>2]<<2)|0;A=0;while(1){r=a[C>>2]|0;if((A|0)>=(r|0)){h=0;A=r;break}a[d+(A<<2)>>2]=-1;A=A+1|0}A:while(1){if((h|0)>=(A|0)){n=0.0;c=0.0;f=0;v=0;g=A;break}o=h+1|0;l=I+(o<<2)|0;u=I+(h<<2)|0;t=(a[l>>2]|0)-(a[u>>2]|0)|0;a[d+(h<<2)>>2]=h;r=a[u>>2]|0;while(1){k=a[l>>2]|0;if((r|0)>=(k|0))break;A=a[Z+(r<<2)>>2]|0;if((h|0)!=(A|0))a[d+(A<<2)>>2]=h;r=r+1|0}w=+(t|0);r=a[u>>2]|0;while(1){if((r|0)>=(k|0))break;A=a[Z+(r<<2)>>2]|0;if((h|0)!=(A|0)){l=a[I+(A+1<<2)>>2]|0;A=a[I+(A<<2)>>2]|0;b=+(l-A|0)+w;while(1){if((A|0)>=(l|0))break;b=(a[d+(a[Z+(A<<2)>>2]<<2)>>2]|0)==(h|0)?b+-1.0:b;A=A+1|0}s[E+(r<<3)>>3]=b;if(!(b>0.0)){B=23;break A}}r=r+1|0}h=o;A=a[C>>2]|0}if((B|0)==23)gA(95868,95831,290,95846);while(1){if((v|0)>=(g|0))break;l=v+1|0;t=I+(l<<2)|0;r=a[I+(v<<2)>>2]|0;while(1){if((r|0)>=(a[t>>2]|0))break;A=a[Z+(r<<2)>>2]|0;if((v|0)==(A|0))A=f;else{c=+_b(i,e,v,A)+c;n=+s[E+(r<<3)>>3]+n;A=f+1|0}f=A;r=r+1|0}v=l;g=a[C>>2]|0}w=+(f|0);n=c/(n/w*w);A=0;A:while(1){if((A|0)>=(g|0))break;l=A+1|0;t=a[I+(l<<2)>>2]|0;r=a[I+(A<<2)>>2]|0;while(1){if((r|0)>=(t|0)){A=l;continue A}f=E+(r<<3)|0;if((A|0)!=(a[Z+(r<<2)>>2]|0))s[f>>3]=+s[f>>3]*n;r=r+1|0}}return C|0}function yu(A,e,i,r,f){A=A|0;e=e|0;i=+i;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,b=0,u=0,w=0,k=0.0,o=0,h=0.0,d=0.0,B=0.0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0,U=0.0,x=0.0;J=a[A>>2]|0;p=a[A+20>>2]|0;N=a[A+24>>2]|0;if(!(cq(A,0)|0))gA(95795,95831,333,95876);R=Lu(A,e,r)|0;X=$F(56)|0;H=X+32|0;s[H>>3]=1.0;a[X+20>>2]=0;a[X+24>>2]=0;s[X+40>>3]=.01;a[X+48>>2]=~~+z(+ +(a[A>>2]|0));n=J<<3;M=$F(n)|0;a[X+12>>2]=M;A=0;while(1){if((A|0)>=(J|0))break;s[M+(A<<3)>>3]=i;A=A+1|0}F=$F(J<<2)|0;D=$F(n)|0;t=0;while(1){if((t|0)>=(J|0)){w=0;break}c=D+(t<<3)|0;s[c>>3]=0.0;b=t+1|0;u=p+(b<<2)|0;l=a[p+(t<<2)>>2]|0;A=0;i=0.0;while(1){if((l|0)>=(a[u>>2]|0))break;n=a[N+(l<<2)>>2]|0;if((t|0)!=(n|0)){i=+_b(r,e,t,n);i=+s[c>>3]+i;s[c>>3]=i;A=A+1|0}l=l+1|0}if((A|0)<=0){o=14;break}s[c>>3]=i/+(A|0);t=b}if((o|0)==14)gA(95908,95831,358,95876);while(1){if((w|0)>=(J|0)){A=0;b=0;break}a[F+(w<<2)>>2]=-1;w=w+1|0}A:while(1){if((b|0)>=(J|0))break;a[F+(b<<2)>>2]=b;t=p+(b<<2)|0;u=b+1|0;w=p+(u<<2)|0;l=a[t>>2]|0;while(1){n=a[w>>2]|0;if((l|0)>=(n|0))break;n=F+(a[N+(l<<2)>>2]<<2)|0;if((a[n>>2]|0)!=(b|0)){a[n>>2]=b;A=A+1|0}l=l+1|0}c=a[t>>2]|0;while(1){if((c|0)>=(n|0)){b=u;continue A}l=a[N+(c<<2)>>2]|0;t=p+(l+1<<2)|0;l=a[p+(l<<2)>>2]|0;while(1){if((l|0)>=(a[t>>2]|0))break;n=F+(a[N+(l<<2)>>2]<<2)|0;if((a[n>>2]|0)!=(b|0)){a[n>>2]=b;A=A+1|0}l=l+1|0}c=c+1|0;n=a[w>>2]|0}}n=A+J|0;y=X+4|0;a[y>>2]=fq(J,J,n,1,1)|0;n=fq(J,J,n,1,1)|0;W=X+8|0;a[W>>2]=n;A=a[y>>2]|0;do{if(!((n|0)==0|(A|0)==0)){Q=a[A+20>>2]|0;m=a[A+24>>2]|0;Z=a[A+28>>2]|0;L=a[n+28>>2]|0;G=a[n+20>>2]|0;g=a[n+24>>2]|0;a[G>>2]=0;a[Q>>2]=0;i=0.0;k=0.0;o=0;l=0;A:while(1){if((o|0)>=(J|0)){o=58;break}v=o+J|0;a[F+(o<<2)>>2]=v;c=p+(o<<2)|0;E=o+1|0;C=p+(E<<2)|0;I=D+(o<<3)|0;h=0.0;d=0.0;t=a[c>>2]|0;while(1){A=a[C>>2]|0;if((t|0)>=(A|0))break;n=a[N+(t<<2)>>2]|0;A=F+(n<<2)|0;if((a[A>>2]|0)!=(v|0)){a[A>>2]=v;a[m+(l<<2)>>2]=n;switch(f|0){case 0:{B=1.0;break}case 1:{B=(+s[D+(n<<3)>>3]+ +s[I>>3])*.5;break}case 2:{B=+Y(+ +Kb(r,e,o,n),.4);break}default:{o=42;break A}}x=-1.0/(B*B);s[Z+(l<<3)>>3]=x;a[g+(l<<2)>>2]=n;U=x*B;w=L+(l<<3)|0;s[w>>3]=U;k=+_b(r,e,o,n)*U+k;U=+s[w>>3];l=l+1|0;h=x+h;d=U+d;i=U*B+i}t=t+1|0}w=a[c>>2]|0;while(1){if((w|0)>=(A|0))break;c=a[N+(w<<2)>>2]|0;b=p+(c+1<<2)|0;u=D+(c<<3)|0;t=a[p+(c<<2)>>2]|0;while(1){if((t|0)>=(a[b>>2]|0))break;n=N+(t<<2)|0;A=F+(a[n>>2]<<2)|0;if((a[A>>2]|0)!=(v|0)){a[A>>2]=v;switch(f|0){case 0:{B=2.0;break}case 1:{B=(+s[u>>3]*2.0+ +s[I>>3]+ +s[D+(a[n>>2]<<3)>>3])*.5;break}case 2:{B=+Y(+ +Kb(r,e,o,a[n>>2]|0),.4);break}default:{o=53;break A}}a[m+(l<<2)>>2]=a[n>>2];U=-1.0/(B*B);s[Z+(l<<3)>>3]=U;a[g+(l<<2)>>2]=a[n>>2];x=U*B;A=L+(l<<3)|0;s[A>>3]=x;k=+_b(r,e,a[n>>2]|0,c)*x+k;x=+s[A>>3];l=l+1|0;h=U+h;d=x+d;i=x*B+i}t=t+1|0}w=w+1|0;A=a[C>>2]|0}a[m+(l<<2)>>2]=o;I=M+(o<<3)|0;x=-(h*+s[I>>3]);s[I>>3]=x;s[Z+(l<<3)>>3]=x-h;a[g+(l<<2)>>2]=o;s[L+(l<<3)>>3]=-d;l=l+1|0;a[Q+(E<<2)>>2]=l;a[G+(E<<2)>>2]=l;o=E}if((o|0)==42){L3(95915,29,1,a[15712]|0)|0;gA(138394,95831,418,95876)}else if((o|0)==53){L3(95915,29,1,a[15712]|0)|0;gA(138394,95831,460,95876)}else if((o|0)==58){i=k/i;A=0;while(1){if((A|0)>=(l|0))break;N=L+(A<<3)|0;s[N>>3]=+s[N>>3]*i;A=A+1|0}s[H>>3]=i;a[(a[y>>2]|0)+8>>2]=l;a[(a[W>>2]|0)+8>>2]=l;L2(F);L2(D);rq(R);V=X;break}}else{Wu(X);V=0}}while(0);return V|0}function Wu(A){A=A|0;var e=0;if(A|0){e=a[A+4>>2]|0;if(e|0)rq(e);e=a[A+8>>2]|0;if(e|0)rq(e);e=a[A+12>>2]|0;if(e|0)L2(e);e=a[A+20>>2]|0;if(e|0)F5[a[A+16>>2]&127](e);L2(A)}return}function zu(A,e,i,r,f,n){A=A|0;e=e|0;i=+i;r=r|0;f=f|0;n=n|0;var l=0,t=0.0,c=0,b=0.0,u=0.0,w=0.0,k=0.0,o=0.0,h=0.0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0.0,N=0;V=a[A>>2]|0;if(cq(A,0)|0?(a[A+16>>2]|0)==1:0){c=U(V,e)|0;t=0.0;l=0;while(1){if((l|0)>=(c|0))break;h=+s[r+(l<<3)>>3];t=h*h+t;l=l+1|0}A:do{if(t==0.0){l=0;while(1){if((l|0)>=(c|0))break A;s[r+(l<<3)>>3]=+Ub()*72.0;l=l+1|0}}}while(0);W=a[A+20>>2]|0;Y=a[A+24>>2]|0;D=a[A+28>>2]|0;l=$F(56)|0;F=l+32|0;s[F>>3]=1.0;a[l+20>>2]=0;a[l+24>>2]=0;a[l>>2]=A;s[l+40>>3]=.01;a[l+48>>2]=~~+z(+ +(a[A>>2]|0));M=$F(V<<3)|0;a[l+12>>2]=M;c=0;while(1){if((c|0)>=(V|0))break;s[M+(c<<3)>>3]=i;c=c+1|0}A=(a[A+8>>2]|0)+V|0;L=l+4|0;a[L>>2]=fq(V,V,A,1,1)|0;A=fq(V,V,A,1,1)|0;y=l+8|0;a[y>>2]=A;c=a[L>>2]|0;if(!((A|0)==0|(c|0)==0)){I=a[c+20>>2]|0;Z=a[c+24>>2]|0;G=a[A+20>>2]|0;m=a[A+24>>2]|0;E=a[c+28>>2]|0;Q=a[A+28>>2]|0;a[G>>2]=0;a[I>>2]=0;o=0.0;h=0.0;C=0;B=0;A:while(1){if((B|0)>=(V|0))break;g=B+1|0;v=W+(g<<2)|0;b=0.0;u=0.0;d=a[W+(B<<2)>>2]|0;k=o;i=h;A=C;while(1){if((d|0)>=(a[v>>2]|0))break;c=a[Y+(d<<2)>>2]|0;if((c|0)==(B|0)){t=k;c=A}else{a[Z+(A<<2)>>2]=c;w=+s[D+(d<<3)>>3];switch(f|0){case 2:{t=w*w;t=t==0.0?-1.0e5:-1.0/t;break}case 1:{t=w*w==0.0?-1.0e5:-1.0/w;break}case 0:{t=-1.0;break}default:{J=23;break A}}s[E+(A<<3)>>3]=t;a[m+(A<<2)>>2]=c;p=t*w;N=Q+(A<<3)|0;s[N>>3]=p;i=+_b(r,e,B,c)*p+i;p=+s[N>>3];b=t+b;u=p+u;t=p*w+k;c=A+1|0}d=d+1|0;k=t;A=c}a[Z+(A<<2)>>2]=B;C=M+(B<<3)|0;o=-(b*+s[C>>3]);s[C>>3]=o;s[E+(A<<3)>>3]=o-b;a[m+(A<<2)>>2]=B;s[Q+(A<<3)>>3]=-u;C=A+1|0;a[I+(g<<2)>>2]=C;a[G+(g<<2)>>2]=C;o=k;h=i;B=g}if((J|0)==23)gA(138394,95831,591,96012);t=(n|0)==0?1.0:h/o;if(t==0.0)l=0;else{c=0;while(1){if((c|0)>=(C|0))break;N=Q+(c<<3)|0;s[N>>3]=+s[N>>3]*t;c=c+1|0}s[F>>3]=t;a[(a[L>>2]|0)+8>>2]=C;a[(a[y>>2]|0)+8>>2]=C}}else{Wu(l);l=0}return l|0}gA(95945,95831,525,96012);return 0}function Yu(A){A=A|0;Wu(A);return}function Du(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=+f;return+ +Mu(A,e,i,r,f)}function Mu(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=+f;var n=0,l=0,t=0.0,c=0,b=0,u=0,w=0,o=0.0,h=0,d=0.0,B=0.0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0.0,Q=0.0,L=0,y=0,W=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0,x=0,T=0,j=0;T=k;k=k+16|0;X=T+12|0;x=T+8|0;u=T+4|0;c=T;b=a[A+4>>2]|0;l=a[A+8>>2]|0;a[X>>2]=0;a[x>>2]=0;a[u>>2]=0;V=a[A+12>>2]|0;a[c>>2]=0;J=sq(l)|0;p=a[b>>2]|0;N=U(p,e)|0;n=N<<3;H=$F(n)|0;if((H|0)!=0?(R=U(e<<3,p)|0,W6(H|0,i|0,R|0)|0,F=$F(n)|0,a[x>>2]=F,(F|0)!=0):0){M=a[l+20>>2]|0;F=a[l+24>>2]|0;y=a[l+28>>2]|0;W=a[J+28>>2]|0;Y=a[b+28>>2]|0;D=A+24|0;switch(a[D>>2]|0){case 1:{Fu(a[A+20>>2]|0,p,e,i,c,u);n=a[c>>2]|0;if(!n){m=0.0;Q=0.0;n=0}else{b=bq(b,n)|0;m=0.0;Q=0.0}break}case 2:{n=a[A+20>>2]|0;m=+s[n+8>>3];Q=+s[n>>3];n=0;break}default:{m=0.0;Q=0.0;n=0}}Z=(V|0)==0;G=A+40|0;I=A+48|0;l=a[u>>2]|0;t=1.0;c=0;A:while(1){C=c+1|0;if(!((c|0)<(r|0)&t>f))break;e:do{if((a[D>>2]|0)==4){u=a[x>>2]|0;c=0;while(1){if((c|0)>=(p|0))break e;w=U(c,e)|0;A=0;while(1){if((A|0)>=(e|0))break;s[u+(A+w<<3)>>3]=0.0;A=A+1|0}c=c+1|0}}else{h=0;while(1){if((h|0)>=(p|0))break;v=h+1|0;E=M+(v<<2)|0;o=0.0;g=a[M+(h<<2)>>2]|0;c=-1;while(1){if((g|0)>=(a[E>>2]|0))break;u=F+(g<<2)|0;A=a[u>>2]|0;if((h|0)==(A|0))c=g;else{B=+_b(i,e,h,A);w=y+(g<<3)|0;d=+s[w>>3];if(d==0.0)d=0.0;else{if(B==0.0){d=d/+s[Y+(g<<3)>>3]*.0001;A=0;while(1){if((A|0)>=(e|0))break;B=d*(+Ub()+.0001);j=i+((U(a[u>>2]|0,e)|0)+A<<3)|0;s[j>>3]=B+ +s[j>>3];A=A+1|0}B=+_b(i,e,h,a[u>>2]|0);d=+s[w>>3]}d=d/B}s[W+(g<<3)>>3]=d;o=d+o}g=g+1|0}if((c|0)<=-1){L=25;break A}s[W+(c<<3)>>3]=-o;h=v}zb(J,0,i,0,x,0,e)}}while(0);e:do{if(!Z){u=a[x>>2]|0;c=0;while(1){if((c|0)>=(p|0))break e;w=V+(c<<3)|0;h=U(c,e)|0;A=0;while(1){if((A|0)>=(e|0))break;E=A+h|0;j=u+(E<<3)|0;s[j>>3]=+s[j>>3]+ +s[H+(E<<3)>>3]*+s[w>>3];A=A+1|0}c=c+1|0}}}while(0);e:do{switch(a[D>>2]|0){case 1:{c=a[x>>2]|0;A=0;while(1){if((A|0)>=(p|0)){L=50;break e}w=U(A,e)|0;u=0;while(1){if((u|0)>=(e|0))break;L=u+w|0;j=c+(L<<3)|0;s[j>>3]=+s[j>>3]+ +s[l+(L<<3)>>3];u=u+1|0}A=A+1|0}}case 2:{Vu(p,e,i,a[x>>2]|0,Q,m);c=a[x>>2]|0;o=+s[G>>3];A=a[I>>2]|0;if((a[D>>2]|0)==2)Ju(b,Q,e,i,c,o,A,X);else L=51;break}default:{c=a[x>>2]|0;L=50}}}while(0);if((L|0)==50){o=+s[G>>3];A=a[I>>2]|0;L=51}if((L|0)==51){L=0;+fw(b,e,i,c,o,A,0,X)}if(a[X>>2]|0)break;t=+pu(p,e,i,a[x>>2]|0);t=t/+z(+ +Pb(N,i,i));W6(i|0,a[x>>2]|0,R|0)|0;c=C}if((L|0)==25)gA(96049,95831,895,96060);rq(J);if(n){rq(n);rq(b)}}else{rq(J);t=1.0;l=0}L2(H);n=a[x>>2]|0;if(n|0)L2(n);if(l|0)L2(l);k=T;return+t}function Fu(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0.0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0.0,g=0,v=0,E=0,C=0.0,I=0,Z=0,G=0,m=0,Q=0.0;o=a[A+8>>2]|0;m=a[A+12>>2]|0;I=a[A+16>>2]|0;G=a[A+32>>2]|0;Z=a[G+20>>2]|0;G=a[G+24>>2]|0;b=A+20|0;d=a[b>>2]|0;u=A+24|0;h=a[u>>2]|0;w=A+28|0;k=a[w>>2]|0;C=+s[A>>3];A:do{if((o|2|0)==3){if(!d){if((h|0)!=0|(k|0)!=0)gA(96094,95831,692,96111);else{l=0;t=0}while(1){if((l|0)>=(m|0))break;E=a[I+(l<<2)>>2]|0;B=+((a[Z+(E+1<<2)>>2]|0)-(a[Z+(E<<2)>>2]|0)|0)+1.0;l=l+1|0;t=t+~~(B*B)|0}h=t<<2;d=$F(h)|0;a[b>>2]=d;h=$F(h)|0;a[u>>2]=h;k=$F(t<<3)|0;a[w>>2]=k}v=0;A=0;while(1){if((v|0)>=(m|0))break;o=a[I+(v<<2)>>2]|0;g=Z+(o<<2)|0;t=a[g>>2]|0;l=a[G+(t<<2)>>2]|0;t=a[G+(t+1<<2)>>2]|0;e:do{if((l|0)!=(t|0)){Q=+Kb(r,i,l,t);Q=Q*Q;w=Z+(o+1<<2)|0;B=+((a[w>>2]|0)-(a[g>>2]|0)|0);a[d+(A<<2)>>2]=o;a[h+(A<<2)>>2]=o;s[k+(A<<3)>>3]=C/Q;c=B*B*Q;B=-(C/(Q*B));t=a[g>>2]|0;while(1){A=A+1|0;l=a[w>>2]|0;if((t|0)>=(l|0))break;a[d+(A<<2)>>2]=o;a[h+(A<<2)>>2]=a[G+(t<<2)>>2];s[k+(A<<3)>>3]=B;t=t+1|0}c=C/c;u=a[g>>2]|0;while(1){if((u|0)>=(l|0))break e;b=a[G+(u<<2)>>2]|0;a[d+(A<<2)>>2]=b;a[h+(A<<2)>>2]=o;s[k+(A<<3)>>3]=B;t=a[g>>2]|0;while(1){A=A+1|0;l=a[w>>2]|0;if((t|0)>=(l|0))break;E=a[G+(t<<2)>>2]|0;a[d+(A<<2)>>2]=b;a[h+(A<<2)>>2]=E;s[k+(A<<3)>>3]=c;t=t+1|0}u=u+1|0}}}while(0);v=v+1|0}l=hq(A,e,e,d,h,k,1,8)|0;A=0}else{switch(o|0){case 2:case 4:break;default:{l=0;A=0;break A}}do{if(!d)if((h|0)!=0|(k|0)!=0)gA(96094,95831,734,96111);else{v=m<<2;E=$F(v)|0;a[b>>2]=E;v=$F(v)|0;a[u>>2]=v;g=$F(m<<3)|0;a[w>>2]=g;break}else{g=k;v=h;E=d}}while(0);A=$F(U(e<<3,i)|0)|0;t=U(i,e)|0;l=0;while(1){if((l|0)>=(t|0)){k=0;break}s[A+(l<<3)>>3]=0.0;l=l+1|0}while(1){if((k|0)>=(m|0))break;o=a[I+(k<<2)>>2]|0;b=Z+(o<<2)|0;u=a[b>>2]|0;c=+Kb(r,i,a[G+(u<<2)>>2]|0,a[G+(u+1<<2)>>2]|0);a[E+(k<<2)>>2]=o;a[v+(k<<2)>>2]=o;c=C/c;s[g+(k<<3)>>3]=c;b=a[b>>2]|0;u=a[Z+(o+1<<2)>>2]|0;o=U(o,i)|0;t=b;while(1){if((t|0)>=(u|0))break;w=U(a[G+(t<<2)>>2]|0,i)|0;l=0;while(1){if((l|0)>=(i|0))break;d=A+(l+o<<3)|0;s[d>>3]=+s[d>>3]+ +s[r+(l+w<<3)>>3];l=l+1|0}t=t+1|0}c=c*(1.0/+(u-b|0));l=0;while(1){if((l|0)>=(i|0))break;d=A+(l+o<<3)|0;s[d>>3]=c*+s[d>>3];l=l+1|0}k=k+1|0}l=hq(k,e,e,E,v,g,1,8)|0}}while(0);a[f>>2]=l;a[n>>2]=A;return}function Vu(A,e,i,r,f,a){A=A|0;e=e|0;i=i|0;r=r|0;f=+f;a=+a;var n=0,l=0,t=0,c=0,b=0,u=0,w=0,k=0.0,o=0;a=a*f;n=0;A:while(1){if((n|0)>=(A|0))break;b=n+1|0;u=U(n,e)|0;l=b;while(1){if((l|0)==(A|0)){n=b;continue A}c=U(l,e)|0;f=1.0/+Kb(i,e,n,l);t=0;while(1){if((t|0)>=(e|0))break;o=t+u|0;w=t+c|0;k=a*((+s[i+(o<<3)>>3]-+s[i+(w<<3)>>3])*f);o=r+(o<<3)|0;s[o>>3]=k+ +s[o>>3];w=r+(w<<3)|0;s[w>>3]=+s[w>>3]-k;t=t+1|0}l=l+1|0}}return}function Ju(A,e,i,r,f,n,l,t){A=A|0;e=+e;i=i|0;r=r|0;f=f|0;n=+n;l=l|0;t=t|0;var c=0,s=0;s=Pu(A,e)|0;c=qu(A,e)|0;+ew(s,c,a[A>>2]|0,i,r,f,n,l,t);return}function pu(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,a=0,n=0.0,l=0.0,t=0,c=0.0,b=0;a=0;l=0.0;while(1){if((a|0)>=(A|0))break;t=U(a,e)|0;f=0;n=0.0;while(1){if((f|0)>=(e|0))break;b=f+t|0;c=+s[r+(b<<3)>>3]-+s[i+(b<<3)>>3];f=f+1|0;n=c*c+n}a=a+1|0;l=+z(+n)+l}return+l}function Nu(A,e,i,r,f){A=A|0;e=e|0;i=+i;r=r|0;f=f|0;var n=0,l=0,t=0,c=0.0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0.0,g=0.0,v=0.0,E=0.0,C=0.0,I=0,Z=0,G=0,m=0,Q=0,L=0.0,y=0.0;m=a[A>>2]|0;o=a[A+20>>2]|0;h=a[A+24>>2]|0;if(!(cq(A,0)|0))gA(95795,95831,1034,96133);d=m<<3;Q=$F(d)|0;t=0;while(1){if((t|0)>=(m|0))break;u=Q+(t<<3)|0;s[u>>3]=0.0;w=t+1|0;k=o+(w<<2)|0;b=a[o+(t<<2)>>2]|0;n=0;c=0.0;while(1){if((b|0)>=(a[k>>2]|0))break;l=a[h+(b<<2)>>2]|0;if((t|0)!=(l|0)){c=+_b(r,e,t,l);c=+s[u>>3]+c;s[u>>3]=c;n=n+1|0}b=b+1|0}if((n|0)<=0){G=11;break}s[u>>3]=c/+(n|0);t=w}if((G|0)==11)gA(95908,95831,1046,96133);n=$F(56)|0;Z=n+32|0;s[Z>>3]=1.0;a[n+20>>2]=0;a[n+24>>2]=0;s[n+40>>3]=.01;a[n+48>>2]=~~+z(+ +(a[A>>2]|0));I=$F(d)|0;a[n+12>>2]=I;l=0;while(1){if((l|0)>=(m|0))break;s[I+(l<<3)>>3]=i;l=l+1|0}do{if((m|0)>2)if(!f){l=nw(m,e,r)|0;break}else{l=aw(m,e,r)|0;break}else l=sq(A)|0}while(0);f=n+4|0;a[f>>2]=bq(A,l)|0;rq(l);t=sq(a[f>>2]|0)|0;a[n+8>>2]=t;l=a[f>>2]|0;if((t|0)==0|(l|0)==0){Ru(n);n=0}else{d=a[l+20>>2]|0;h=a[l+24>>2]|0;o=a[l+28>>2]|0;f=a[t+28>>2]|0;E=0.0;C=0.0;u=0;while(1){if((u|0)>=(m|0))break;k=u+1|0;w=d+(k<<2)|0;v=0.0;i=0.0;t=-1;B=E;g=C;b=a[d+(u<<2)>>2]|0;while(1){if((b|0)>=(a[w>>2]|0))break;l=a[h+(b<<2)>>2]|0;if((l|0)==(u|0)){c=v;l=b}else{L=+Y(+ +Kb(r,e,u,l),.6);c=1.0/(L*L);s[o+(b<<3)>>3]=c;y=c*L;A=f+(b<<3)|0;s[A>>3]=y;g=y*+_b(r,e,u,l)+g;y=+s[A>>3];c=c+v;i=y+i;l=t;B=y*L+B}v=c;t=l;b=b+1|0}A=I+(u<<3)|0;c=-(v*+s[A>>3]);s[A>>3]=c;if((t|0)<=-1){G=31;break}s[o+(t<<3)>>3]=c-v;s[f+(t<<3)>>3]=-i;E=B;C=g;u=k}if((G|0)==31)gA(96154,95831,1112,96133);c=C/E;t=a[d+(m<<2)>>2]|0;l=0;while(1){if((l|0)>=(t|0))break;m=f+(l<<3)|0;s[m>>3]=+s[m>>3]*c;l=l+1|0}s[Z>>3]=c;L2(Q)}return n|0}function Ru(A){A=A|0;Wu(A);return}function Xu(A,e,i){A=A|0;e=e|0;i=i|0;+Mu(A,e,i,50,.001);return}function Hu(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0.0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0;G=a[A>>2]|0;m=a[A+20>>2]|0;Q=a[A+24>>2]|0;if(!(cq(A,0)|0))gA(95795,95831,1149,96165);E=Lu(A,e,r)|0;C=a[E+28>>2]|0;A=$F(8)|0;I=$F(G<<2)|0;Z=$F(G<<3)|0;l=0;while(1){if((l|0)>=(G|0)){k=0;break}b=Z+(l<<3)|0;s[b>>3]=0.0;u=l+1|0;w=m+(u<<2)|0;t=a[m+(l<<2)>>2]|0;f=0;c=0.0;while(1){if((t|0)>=(a[w>>2]|0))break;n=a[Q+(t<<2)>>2]|0;if((l|0)!=(n|0)){c=+_b(r,e,l,n);c=+s[b>>3]+c;s[b>>3]=c;f=f+1|0}t=t+1|0}if((f|0)<=0){o=11;break}s[b>>3]=c/+(f|0);l=u}if((o|0)==11)gA(95908,95831,1167,96165);while(1){if((k|0)>=(G|0)){u=0;f=0;break}a[I+(k<<2)>>2]=-1;k=k+1|0}A:while(1){if((u|0)>=(G|0))break;a[I+(u<<2)>>2]=u;t=m+(u<<2)|0;w=u+1|0;k=m+(w<<2)|0;l=a[t>>2]|0;while(1){n=a[k>>2]|0;if((l|0)>=(n|0))break;n=I+(a[Q+(l<<2)>>2]<<2)|0;if((a[n>>2]|0)!=(u|0)){a[n>>2]=u;f=f+1|0}l=l+1|0}b=a[t>>2]|0;while(1){if((b|0)>=(n|0)){u=w;continue A}l=a[Q+(b<<2)>>2]|0;t=m+(l+1<<2)|0;l=a[m+(l<<2)>>2]|0;while(1){if((l|0)>=(a[t>>2]|0))break;n=I+(a[Q+(l<<2)>>2]<<2)|0;if((a[n>>2]|0)!=(u|0)){a[n>>2]=u;f=f+1|0}l=l+1|0}b=b+1|0;n=a[k>>2]|0}}r=fq(G,G,f,1,1)|0;a[A>>2]=r;if(!r){Uu(A);A=0}else{o=a[r+20>>2]|0;h=a[r+24>>2]|0;d=a[r+28>>2]|0;a[o>>2]=0;n=0;f=0;while(1){if((n|0)>=(G|0))break;B=n+G|0;a[I+(n<<2)>>2]=B;b=m+(n<<2)|0;g=n+1|0;v=m+(g<<2)|0;e=Z+(n<<3)|0;t=a[b>>2]|0;while(1){n=a[v>>2]|0;if((t|0)>=(n|0))break;n=a[Q+(t<<2)>>2]|0;l=I+(n<<2)|0;if((a[l>>2]|0)!=(B|0)){a[l>>2]=B;a[h+(f<<2)>>2]=n;k=d+(f<<3)|0;s[k>>3]=(+s[Z+(n<<3)>>3]+ +s[e>>3])*.5;s[k>>3]=+s[C+(t<<3)>>3];f=f+1|0}t=t+1|0}k=a[b>>2]|0;while(1){if((k|0)>=(n|0))break;t=a[Q+(k<<2)>>2]|0;b=m+(t+1<<2)|0;u=Z+(t<<3)|0;w=C+(k<<3)|0;t=a[m+(t<<2)>>2]|0;while(1){if((t|0)>=(a[b>>2]|0))break;n=Q+(t<<2)|0;l=I+(a[n>>2]<<2)|0;if((a[l>>2]|0)!=(B|0)){a[l>>2]=B;a[h+(f<<2)>>2]=a[n>>2];l=d+(f<<3)|0;s[l>>3]=(+s[u>>3]*2.0+ +s[e>>3]+ +s[Z+(a[n>>2]<<3)>>3])*.5;s[l>>3]=+s[C+(t<<3)>>3]+ +s[w>>3];f=f+1|0}t=t+1|0}k=k+1|0;n=a[v>>2]|0}a[o+(g<<2)>>2]=f;n=g}a[r+8>>2]=f;m=JT()|0;Q=A+4|0;a[Q>>2]=m;W6(m|0,i|0,168)|0;Q=a[Q>>2]|0;a[Q+16>>2]=0;a[Q+40>>2]=1;m=Q+96|0;s[m>>3]=+s[m>>3]*.5;a[Q+80>>2]=20;L2(I);L2(Z);rq(E)}return A|0}function Uu(A){A=A|0;var e=0;if(A|0){e=a[A>>2]|0;if(e|0)rq(e);A=a[A+4>>2]|0;if(A|0)pT(A)}return}function xu(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0;n=k;k=k+16|0;l=n;a[l>>2]=0;aj(r,e,a[A>>2]|0,a[A+4>>2]|0,i,f,l);if(!(a[l>>2]|0)){k=n;return}else gA(96184,95831,1262,96190)}function Tu(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0;a[n>>2]=0;n=a[i+120>>2]|0;A:do{switch(n|0){case 5:case 6:{if((a[e>>2]|0)>2){e=Nu(e,A,0.0,f,(n|0)!=6&1)|0;Xu(e,A,f);Ru(e)}break}case 4:{n=0;while(1){if((n|0)==1)break A;t=Hu(e,A,i,f)|0;xu(t,e,r,A,f);Uu(t);n=n+1|0}}case 1:{i=0;l=6;break}case 2:{i=1;l=6;break}case 3:{i=2;l=6;break}default:{}}}while(0);A:do{if((l|0)==6){n=0;while(1){if((n|0)==1)break A;t=yu(e,A,.05,f,i)|0;+Mu(t,A,f,50,.001);Wu(t);n=n+1|0}}}while(0);return}function ju(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0,n=0,l=0.0,t=0,c=0;c=k;k=k+16|0;n=c;a[n>>2]=i;t=a[A>>2]|0;A=a[t+8>>2]|0;l=+s[t>>3];t=a[A>>2]|0;Mb(A,e,n,0);A=0;f=0.0;while(1){if((A|0)>=(t|0))break;r=+s[e+(A<<3)>>3]+f;A=A+1|0;f=r}r=+(t|0);i=a[n>>2]|0;A=0;while(1){if((A|0)>=(t|0))break;n=i+(A<<3)|0;s[n>>3]=(+s[e+(A<<3)>>3]*r-f)*l+ +s[n>>3];A=A+1|0}k=c;return i|0}function Pu(A,e){A=A|0;e=+e;var i=0,r=0;i=$F(8)|0;r=$F(16)|0;a[i>>2]=r;s[r>>3]=e;a[r+8>>2]=A;a[i+4>>2]=25;return i|0}function Su(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;f=k;k=k+16|0;r=f;a[r>>2]=i;Mb(a[A>>2]|0,e,r,0);k=f;return a[r>>2]|0}function Ou(A){A=A|0;var e=0;e=$F(8)|0;a[e>>2]=A;a[e+4>>2]=26;return e|0}function Ku(A){A=A|0;if(A|0)L2(A);return}function _u(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;f=a[A>>2]|0;r=~~+s[f>>3];f=f+8|0;A=0;while(1){if((A|0)>=(r|0))break;s[i+(A<<3)>>3]=+s[f+(A<<3)>>3]*+s[e+(A<<3)>>3];A=A+1|0}return i|0}function qu(A,e){A=A|0;e=+e;var i=0,r=0,f=0,n=0,l=0,t=0.0,c=0,b=0,u=0,w=0.0,k=0,o=0,h=0.0;u=a[A>>2]|0;k=a[A+20>>2]|0;o=a[A+24>>2]|0;c=a[A+28>>2]|0;b=$F(8)|0;l=$F((u<<3)+8|0)|0;a[b>>2]=l;s[l>>3]=+(u|0);l=l+8|0;h=+(u+-1|0);t=1.0/h;e=h*e;A=0;A:while(1){if((A|0)>=(u|0))break;r=l+(A<<3)|0;s[r>>3]=t;f=A+1|0;n=a[k+(f<<2)>>2]|0;i=a[k+(A<<2)>>2]|0;while(1){if((i|0)>=(n|0)){A=f;continue A}if((A|0)==(a[o+(i<<2)>>2]|0)?(w=+s[c+(i<<3)>>3],(w>=0.0?w:-w)>0.0):0)s[r>>3]=1.0/(w+e);i=i+1|0}}a[b+4>>2]=27;return b|0}function $u(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0.0,c=0,b=0,u=0,w=0;l=a[A>>2]|0;c=a[A+20>>2]|0;b=a[A+24>>2]|0;u=a[A+28>>2]|0;w=$F(8)|0;i=$F((a[A>>2]<<3)+8|0)|0;a[w>>2]=i;s[i>>3]=+(l|0);i=i+8|0;A=0;A:while(1){if((A|0)>=(l|0))break;r=i+(A<<3)|0;s[r>>3]=1.0;f=A+1|0;n=a[c+(f<<2)>>2]|0;e=a[c+(A<<2)>>2]|0;while(1){if((e|0)>=(n|0)){A=f;continue A}if((A|0)==(a[b+(e<<2)>>2]|0)?(t=+s[u+(e<<3)>>3],(t>=0.0?t:-t)>0.0):0)s[r>>3]=1.0/t;e=e+1|0}}a[w+4>>2]=27;return w|0}function Aw(A){A=A|0;L2(a[A>>2]|0);if(A|0)L2(A);return}function ew(A,e,i,r,f,a,n,l,t){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;n=+n;l=l|0;t=t|0;var c=0.0,b=0,u=0.0,w=0,k=0,o=0;k=i<<3;w=$F(k)|0;k=$F(k)|0;b=0;u=0.0;while(1){if((b|0)<(r|0))t=0;else break;while(1){if((t|0)>=(i|0))break;o=(U(t,r)|0)+b|0;s[w+(t<<3)>>3]=+s[f+(o<<3)>>3];s[k+(t<<3)>>3]=+s[a+(o<<3)>>3];t=t+1|0}c=+iw(A,e,i,w,k,n,l);t=0;while(1){if((t|0)>=(i|0))break;s[a+((U(t,r)|0)+b<<3)>>3]=+s[w+(t<<3)>>3];t=t+1|0}b=b+1|0;u=c+u}L2(w);L2(k);return+u}function iw(A,e,i,r,f,n,l){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=+n;l=l|0;var t=0,c=0.0,s=0,b=0,u=0,w=0.0,k=0.0,o=0,h=0,d=0,B=0.0,g=0,v=0;d=a[A+4>>2]|0;o=a[e+4>>2]|0;h=i<<3;t=$F(h)|0;s=$F(h)|0;g=$F(h)|0;b=$F(h)|0;s=y5[d&63](A,r,s)|0;u=jb(i,f,s)|0;k=+(i|0);B=+z(+ +Pb(i,u,u))/k;w=B*n;k=1.0/k;u=0;f=g;c=1.0;n=B;while(1){if(!(n>w&(u|0)<(l|0)))break;t=y5[o&63](e,s,t)|0;n=+Pb(i,s,t);if((u|0)>0)Sb(i,t,f,n/c)|0;else W6(f|0,t|0,h|0)|0;v=y5[d&63](A,f,b)|0;c=n/+Pb(i,f,v);Ob(i,r,f,c)|0;g=Ob(i,s,v,-c)|0;u=u+1|0;c=n;b=v;n=+z(+ +Pb(i,g,g))*k}L2(t);L2(s);L2(f);L2(b);return+n}function rw(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0.0,t=0.0,c=0.0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0;L=k;k=k+16|0;Q=L;Z=a[A+4>>2]|0;G=Z<<3;m=$F(G)|0;v=$F(G)|0;E=$F(G)|0;C=a[A+20>>2]|0;I=a[A+24>>2]|0;B=a[A+28>>2]|0;g=a[15712]|0;d=0;while(1){if((d|0)<(e|0))n=0;else break;while(1){if((n|0)>=(Z|0)){A=0;break}h=(U(n,e)|0)+d|0;s[m+(n<<3)>>3]=+s[i+(h<<3)>>3];s[E+(n<<3)>>3]=+s[r+(h<<3)>>3];n=n+1|0}while(1){if((A|0)<(f|0))u=0;else{n=0;break}while(1){if((u|0)>=(Z|0))break;w=a[C+(u<<2)>>2]|0;o=u+1|0;h=a[C+(o<<2)>>2]|0;b=w;t=0.0;l=0.0;while(1){if((b|0)>=(h|0))break;n=a[I+(b<<2)>>2]|0;c=+s[B+(b<<3)>>3];if((n|0)==(u|0))l=c;else t=+s[m+(n<<3)>>3]*c+t;b=b+1|0}if(t==0.0){a[Q>>2]=h-w;f3(g,96212,Q)|0}s[v+(u<<3)>>3]=(+s[E+(u<<3)>>3]-t)/l;u=o}W6(m|0,v|0,G|0)|0;A=A+1|0}while(1){if((n|0)>=(Z|0))break;s[r+((U(n,e)|0)+d<<3)>>3]=+s[m+(n<<3)>>3];n=n+1|0}d=d+1|0}L2(m);L2(v);L2(E);k=L;return r|0}function fw(A,e,i,r,f,n,l,t){A=A|0;e=e|0;i=i|0;r=r|0;f=+f;n=n|0;l=l|0;t=t|0;var c=0;c=a[A>>2]|0;a[t>>2]=0;switch(l|0){case 0:{l=Ou(A)|0;t=$u(A)|0;f=+ew(l,t,c,e,i,r,f,n,0);Ku(l);Aw(t);break}case 1:{rw(A,e,i,r,n,0)|0;f=0.0;break}default:f=0.0}return+f}function aw(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0;w=k;k=k+32|0;c=w;b=w+20|0;f=w+16|0;n=w+12|0;l=w+8|0;s[c>>3]=1.0;t=A<<3;u=$F(t)|0;t=$F(t)|0;e=0;while(1){if((e|0)>=(A|0))break;r=e<<1;s[u+(e<<3)>>3]=+s[i+(r<<3)>>3];s[t+(e<<3)>>3]=+s[i+((r|1)<<3)>>3];e=e+1|0}a[b>>2]=e;if((A|0)>2)i=pP(u,t,A,l)|0;else{a[l>>2]=0;i=0}r=fq(A,A,1,1,2)|0;e=0;while(1){a[b>>2]=e;if((e|0)>=(a[l>>2]|0))break;o=e<<1;a[f>>2]=a[i+(o<<2)>>2];a[n>>2]=a[i+((o|1)<<2)>>2];pb(r,1,f,n,c)|0;e=(a[b>>2]|0)+1|0}if((A|0)==2){a[f>>2]=0;a[n>>2]=1;pb(r,1,f,n,c)|0;e=0}else e=0;while(1){a[b>>2]=e;if((e|0)>=(A|0))break;pb(r,1,b,b,c)|0;e=(a[b>>2]|0)+1|0}A=oq(r)|0;rq(r);o=tq(A,0)|0;rq(A);L2(i);L2(u);L2(t);k=w;return o|0}function nw(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,b=0;b=k;k=k+16|0;n=b+8|0;l=b;s[l>>3]=1.0;c=A<<3;t=$F(c)|0;c=$F(c)|0;r=0;while(1){if((r|0)>=(A|0))break;f=U(r,e)|0;s[t+(r<<3)>>3]=+s[i+(f<<3)>>3];s[c+(r<<3)>>3]=+s[i+(f+1<<3)>>3];r=r+1|0}a[n>>2]=r;r=NP(t,c,A,0)|0;f=fq(A,A,1,1,2)|0;e=0;while(1){a[n>>2]=e;if((e|0)<(A|0))i=1;else{e=0;break}while(1){if((i|0)>=(a[r+(e*12|0)>>2]|0))break;pb(f,1,n,(a[r+(e*12|0)+4>>2]|0)+(i<<2)|0,l)|0;i=i+1|0;e=a[n>>2]|0}e=e+1|0}while(1){a[n>>2]=e;if((e|0)>=(A|0))break;pb(f,1,n,n,l)|0;e=(a[n>>2]|0)+1|0}l=tq(oq(f)|0,0)|0;rq(f);L2(t);L2(c);RP(r);k=b;return l|0}function lw(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,a=0;f=k;k=k+16|0;a=f;tw(a,i);cw(A,e,i,a);sw(e,a,r);bw(a);k=f;return}function tw(A,e){A=A|0;e=e|0;a[A>>2]=$F(e<<4)|0;a[A+4>>2]=e;a[A+8>>2]=0;return}function cw(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0;y=k;k=k+64|0;d=y+32|0;v=y+48|0;E=y+16|0;C=y;g=e<<2;m=$F(g)|0;L=$F(g)|0;a[E>>2]=0;a[E+4>>2]=0;a[E+8>>2]=0;a[E+12>>2]=0;B=$F(g)|0;g=$F(g)|0;f=0;while(1){if((f|0)>=(e|0))break;a[B+(f<<2)>>2]=f;f=f+1|0}h=e+-1|0;OS(A,B,0,h);f=0;while(1){if((f|0)>=(e|0))break;a[g+(a[B+(f<<2)>>2]<<2)>>2]=f;f=f+1|0}ww(v,A,B,e);f=1;while(1){if((f|0)>=(e|0)){f=0;break}a[m+(a[B+(f<<2)>>2]<<2)>>2]=a[B+(f+-1<<2)>>2];f=f+1|0}while(1){if((f|0)>=(h|0))break;o=f+1|0;a[L+(a[B+(f<<2)>>2]<<2)>>2]=a[B+(o<<2)>>2];f=o}c=r+8|0;b=r+4|0;u=E+4|0;w=C+4|0;o=C+8|0;t=0;while(1){if((t|0)>=(i|0))break;if(!((kw(v,E)|0)<<24>>24))break;f=a[c>>2]|0;e=a[b>>2]|0;if((f|0)<(e|0))e=a[r>>2]|0;else{a[b>>2]=e<<1;e=W2(a[r>>2]|0,e<<5)|0;a[r>>2]=e;f=a[c>>2]|0}a[c>>2]=f+1;f=e+(f<<4)|0;a[f>>2]=a[E>>2];a[f+4>>2]=a[E+4>>2];a[f+8>>2]=a[E+8>>2];a[f+12>>2]=a[E+12>>2];f=a[E>>2]|0;e=a[g+(f<<2)>>2]|0;n=a[u>>2]|0;l=a[g+(n<<2)>>2]|0;if((e|0)>0?(I=a[B+(e+-1<<2)>>2]|0,Z=L+(I<<2)|0,(a[g+(a[Z>>2]<<2)>>2]|0)<(l|0)):0){a[C>>2]=I;a[w>>2]=n;s[o>>3]=+s[A+(n<<3)>>3]-+s[A+(I<<3)>>3];a[d>>2]=a[C>>2];a[d+4>>2]=a[C+4>>2];a[d+8>>2]=a[C+8>>2];a[d+12>>2]=a[C+12>>2];ow(v,d);a[Z>>2]=n;a[m+(n<<2)>>2]=I}if((l|0)<(h|0)?(G=a[B+(l+1<<2)>>2]|0,Q=m+(G<<2)|0,(a[g+(a[Q>>2]<<2)>>2]|0)>(e|0)):0){a[C>>2]=f;a[w>>2]=G;s[o>>3]=+s[A+(G<<3)>>3]-+s[A+(f<<3)>>3];a[d>>2]=a[C>>2];a[d+4>>2]=a[C+4>>2];a[d+8>>2]=a[C+8>>2];a[d+12>>2]=a[C+12>>2];ow(v,d);a[Q>>2]=f;a[L+(f<<2)>>2]=G}t=t+1|0}L2(m);L2(L);L2(B);L2(g);hw(v);k=y;return}function sw(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,s=0,b=0,u=0,w=0;s=$F(A<<2)|0;b=e+8|0;l=a[b>>2]|0;t=(l<<1)+A|0;n=t<<2;r=$F(n)|0;n=$F(n)|0;f=0;while(1){if((f|0)>=(A|0))break;a[s+(f<<2)>>2]=1;f=f+1|0}f=0;while(1){if((f|0)>=(l|0)){f=0;break}w=a[e>>2]|0;u=a[w+(f<<4)+4>>2]|0;w=s+(a[w+(f<<4)>>2]<<2)|0;a[w>>2]=(a[w>>2]|0)+1;u=s+(u<<2)|0;a[u>>2]=(a[u>>2]|0)+1;f=f+1|0}while(1){if((f|0)>=(t|0))break;c[n+(f<<2)>>2]=1.0;f=f+1|0}l=$F(A*20|0)|0;a[i>>2]=l;f=0;while(1){if((f|0)>=(A|0))break;a[l+(f*20|0)>>2]=1;a[l+(f*20|0)+8>>2]=n;a[l+(f*20|0)+4>>2]=r;a[r>>2]=f;c[n>>2]=0.0;w=a[s+(f<<2)>>2]|0;n=n+(w<<2)|0;r=r+(w<<2)|0;f=f+1|0}L2(s);while(1){r=a[b>>2]|0;if(!r)break;w=r+-1|0;a[b>>2]=w;u=a[e>>2]|0;uw(l,a[u+(w<<4)>>2]|0,a[u+(w<<4)+4>>2]|0)}return}function bw(A){A=A|0;L2(a[A>>2]|0);return}function uw(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0;f=A+(e*20|0)|0;n=a[f>>2]|0;l=a[A+(e*20|0)+4>>2]|0;r=0;while(1){if((r|0)>=(n|0)){t=4;break}if((a[l+(r<<2)>>2]|0)==(i|0))break;else r=r+1|0}if((t|0)==4?(a[f>>2]=n+1,a[l+(n<<2)>>2]=i,l=a[A+(i*20|0)+4>>2]|0,n=A+(i*20|0)|0,t=a[n>>2]|0,a[n>>2]=t+1,a[l+(t<<2)>>2]=e,a[A+8>>2]|0):0){t=a[A+(e*20|0)+8>>2]|0;c[t>>2]=+c[t>>2]+-1.0;t=a[A+(i*20|0)+8>>2]|0;c[t>>2]=+c[t>>2]+-1.0}return}function ww(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0.0,c=0,b=0;f=r+-1|0;a[A+4>>2]=f;a[A+8>>2]=f;a[A>>2]=$F(f<<4)|0;r=0;while(1){if((r|0)>=(f|0))break;b=a[i+(r<<2)>>2]|0;n=r+1|0;c=a[i+(n<<2)>>2]|0;t=+s[e+(c<<3)>>3]-+s[e+(b<<3)>>3];l=a[A>>2]|0;a[l+(r<<4)>>2]=b;a[l+(r<<4)+4>>2]=c;s[l+(r<<4)+8>>3]=t;r=n}r=(f|0)/2|0;while(1){if((r|0)<=-1)break;dw(A,r);r=r+-1|0}return}function kw(A,e){A=A|0;e=e|0;var i=0,r=0;i=A+4|0;if(!(a[i>>2]|0))A=0;else{r=a[A>>2]|0;a[e>>2]=a[r>>2];a[e+4>>2]=a[r+4>>2];a[e+8>>2]=a[r+8>>2];a[e+12>>2]=a[r+12>>2];e=a[A>>2]|0;r=e+((a[i>>2]|0)+-1<<4)|0;a[e>>2]=a[r>>2];a[e+4>>2]=a[r+4>>2];a[e+8>>2]=a[r+8>>2];a[e+12>>2]=a[r+12>>2];a[i>>2]=(a[i>>2]|0)+-1;dw(A,0);A=1}return A|0}function ow(A,e){A=A|0;e=e|0;var i=0,r=0.0,f=0.0,n=0,l=0,t=0,c=0,b=0,u=0;u=k;k=k+16|0;b=u;t=A+4|0;n=a[t>>2]|0;i=A+8|0;if((n|0)==(a[i>>2]|0)){a[i>>2]=n<<1;i=W2(a[A>>2]|0,n<<5)|0;a[A>>2]=i;c=A;l=a[t>>2]|0}else{c=A;l=n;i=a[A>>2]|0}a[t>>2]=l+1;t=i+(n<<4)|0;a[t>>2]=a[e>>2];a[t+4>>2]=a[e+4>>2];a[t+8>>2]=a[e+8>>2];a[t+12>>2]=a[e+12>>2];while(1){if((n|0)<=0)break;i=a[c>>2]|0;r=+s[i+(n<<4)+8>>3];A=n>>>1;f=+s[i+(A<<4)+8>>3];if(!(r>2]|0}t=i+(n<<4)|0;a[b>>2]=a[t>>2];a[b+4>>2]=a[t+4>>2];a[b+8>>2]=a[t+8>>2];a[b+12>>2]=a[t+12>>2];e=i+(A<<4)|0;a[t>>2]=a[e>>2];a[t+4>>2]=a[e+4>>2];a[t+8>>2]=a[e+8>>2];a[t+12>>2]=a[e+12>>2];t=(a[c>>2]|0)+(A<<4)|0;a[t>>2]=a[b>>2];a[t+4>>2]=a[b+4>>2];a[t+8>>2]=a[b+8>>2];a[t+12>>2]=a[b+12>>2];n=A}k=u;return}function hw(A){A=A|0;L2(a[A>>2]|0);return}function dw(A,e){A=A|0;e=e|0;var i=0,r=0.0,f=0.0,n=0,l=0,t=0,c=0,b=0,u=0;b=k;k=k+16|0;l=b;t=A+4|0;while(1){i=e<<1;n=i|1;if((i|0)<(a[t>>2]|0)){u=a[A>>2]|0;r=+s[u+(i<<4)+8>>3];f=+s[u+(e<<4)+8>>3];if(!(r>2]|0)){u=a[A>>2]|0;r=+s[u+(n<<4)+8>>3];f=+s[u+(i<<4)+8>>3];if(!(r>2]|0;u=n+(i<<4)|0;a[l>>2]=a[u>>2];a[l+4>>2]=a[u+4>>2];a[l+8>>2]=a[u+8>>2];a[l+12>>2]=a[u+12>>2];n=n+(e<<4)|0;a[u>>2]=a[n>>2];a[u+4>>2]=a[n+4>>2];a[u+8>>2]=a[n+8>>2];a[u+12>>2]=a[n+12>>2];u=(a[A>>2]|0)+(e<<4)|0;a[u>>2]=a[l>>2];a[u+4>>2]=a[l+4>>2];a[u+8>>2]=a[l+8>>2];a[u+12>>2]=a[l+12>>2];e=i}k=b;return}function Bw(A,e,i,r,f,n,l,t){A=A|0;e=e|0;i=+i;r=+r;f=f|0;n=n|0;l=l|0;t=t|0;var c=0,b=0,u=0,w=0.0;b=(f|0)!=0;if(!b){f=$F(e<<3)|0;if(!(KO(A,e,f,e)|0))u=3;else{A=1;u=17}}else u=3;if((u|0)==3){c=qF(e<<2)|0;a[n>>2]=c;A=0;while(1){if((A|0)>=(e|0))break;a[c+(A<<2)>>2]=A;A=A+1|0}A=e+-1|0;OS(f,c,0,A);w=+s[f+(a[c>>2]<<3)>>3];r=(+s[f+(a[c+(A<<2)>>2]<<3)>>3]-w)*r/+(A|0);r=r=(e|0))break;w=+s[f+(a[c+(n<<2)>>2]<<3)>>3];A=A+(w-i>r&1)|0;n=n+1|0;i=w}a[t>>2]=A;A:do{if(!A){c=$F(4)|0;a[l>>2]=c;a[c>>2]=e}else{t=$F(A<<2)|0;a[l>>2]=t;A=0;n=1;while(1){if((n|0)>=(e|0))break A;if(+s[f+(a[c+(n<<2)>>2]<<3)>>3]-+s[f+(a[c+(n+-1<<2)>>2]<<3)>>3]>r){a[t+(A<<2)>>2]=n;A=A+1|0}n=n+1|0}}}while(0);if(b)A=0;else{A=0;u=17}}if((u|0)==17)L2(f);return A|0}function gw(A,e){A=A|0;e=e|0;var i=0,r=0,f=0.0,n=0,l=0,t=0.0,c=0,b=0,u=0,w=0,k=0,o=0,h=0;i=a[46930]|0;if(i|0)cU(i);a[46930]=tU(e,e,0.0)|0;i=a[46931]|0;if(i|0)L2(i);a[46931]=qF(e<<2)|0;i=a[46932]|0;if(i|0)L2(i);w=qF(e<<3)|0;a[46932]=w;k=a[46930]|0;o=a[46931]|0;l=0;while(1){if((l|0)>=(e|0)){r=10;break}r=A+(l<<2)|0;n=k+(l<<2)|0;f=0.0;i=0;while(1){if((i|0)==(e|0))break;t=+s[(a[r>>2]|0)+(i<<3)>>3];s[(a[n>>2]|0)+(i<<3)>>3]=t;t=+W(+t);f=f>3]=1.0/f;a[o+(l<<2)>>2]=l;l=l+1|0}A:do{if((r|0)==10){u=e+-1|0;i=0;b=0;e:while(1){if((b|0)<(u|0)){r=b;c=i;f=0.0}else break;while(1){if((r|0)>=(e|0))break;A=a[o+(r<<2)>>2]|0;t=+W(+ +s[(a[k+(A<<2)>>2]|0)+(b<<3)>>3]);t=+s[w+(A<<3)>>3]*t;A=f>2]|0;A=o+(c<<2)|0;a[i>>2]=a[A>>2];a[A>>2]=l}n=a[k+(a[i>>2]<<2)>>2]|0;A=b+1|0;f=1.0/+s[n+(b<<3)>>3];r=A;while(1){if((r|0)>=(e|0)){i=c;b=A;continue e}l=a[k+(a[o+(r<<2)>>2]<<2)>>2]|0;i=l+(b<<3)|0;t=+s[i>>3]*f;s[i>>3]=t;i:do{if(t!=0.0){i=A;while(1){if((i|0)>=(e|0))break i;h=l+(i<<3)|0;s[h>>3]=+s[h>>3]-+s[n+(i<<3)>>3]*t;i=i+1|0}}}while(0);r=r+1|0}}i=+s[(a[k+(a[o+(u<<2)>>2]<<2)>>2]|0)+(u<<3)>>3]!=0.0&1}else if((r|0)==15){s[w+(l<<3)>>3]=0.0;i=0}}while(0);return i|0}function vw(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0.0,n=0,l=0,t=0,c=0,b=0;c=a[46930]|0;b=a[46931]|0;t=0;while(1){if((t|0)>=(i|0)){r=i;break}n=a[b+(t<<2)>>2]|0;l=c+(n<<2)|0;f=0.0;r=0;while(1){if((r|0)==(t|0))break;f=+s[A+(r<<3)>>3]*+s[(a[l>>2]|0)+(r<<3)>>3]+f;r=r+1|0}s[A+(t<<3)>>3]=+s[e+(n<<3)>>3]-f;t=t+1|0}while(1){e=r+-1|0;if((r|0)<=0)break;n=b+(e<<2)|0;f=0.0;while(1){if((r|0)>=(i|0))break;f=+s[A+(r<<3)>>3]*+s[(a[c+(a[n>>2]<<2)>>2]|0)+(r<<3)>>3]+f;r=r+1|0}r=A+(e<<3)|0;s[r>>3]=(+s[r>>3]-f)/+s[(a[c+(a[n>>2]<<2)>>2]|0)+(e<<3)>>3];r=e}return}function Ew(A){A=A|0;var e=0;e=$F(8)|0;a[e>>2]=A;a[e+4>>2]=0;return e|0}function Cw(A,e){A=A|0;e=e|0;var i=0,r=0;if(A|0)do{i=A;A=a[A+4>>2]|0;r=a[i>>2]|0;if(r|0)F5[e&127](r);L2(i)}while((A|0)!=0);return}function Iw(A,e){A=A|0;e=e|0;e=Ew(e)|0;a[e+4>>2]=A;return e|0}function Zw(A){A=A|0;return a[A>>2]|0}function Gw(A){A=A|0;return a[A+4>>2]|0}function mw(A){A=A|0;var e=0;e=$F(12)|0;a[e>>2]=A;a[e+4>>2]=0;a[e+8>>2]=0;return e|0}function Qw(A,e){A=A|0;e=e|0;var i=0,r=0;if(A|0)do{i=A;A=a[A+4>>2]|0;r=a[i>>2]|0;if(r|0)F5[e&127](r);L2(i)}while((A|0)!=0);return}function Lw(A,e){A=A|0;e=e|0;e=mw(e)|0;if(A|0){a[e+4>>2]=A;a[A+8>>2]=e}return e|0}function yw(A){A=A|0;return a[A>>2]|0}function Ww(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;if(A|0){r=a[A+4>>2]|0;f=a[A+8>>2]|0;n=a[A>>2]|0;if(n|0)F5[e&127](n);L2(A);if(r|0)a[r+8>>2]=f;a[(f|0?f+4|0:i)>>2]=r}return}function zw(A){A=A|0;a[A>>2]=0;a[A+4>>2]=0;return}function Yw(A){A=A|0;var e=0;e=qF(64)|0;zw(e+36|0);a[e+8>>2]=A;return e|0}function Dw(A){A=A|0;if(A|0){ek(a[A+32>>2]|0);L2(A)}return}function Mw(A){A=A|0;return gh(a[A+8>>2]|0)|0}function Fw(A,e){A=A|0;e=e|0;var i=0,r=0;a[e+4>>2]=0;i=A+4|0;r=a[i>>2]|0;a[((r|0)==0?A:r+4|0)>>2]=e;a[i>>2]=e;return}function Vw(A,e){A=A|0;e=e|0;var i=0;i=a[A>>2]|0;if(!i){a[A>>2]=e;A=A+4|0}else a[e+4>>2]=i;a[A>>2]=e;return}function Jw(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0;pw(A,e);c=a[e>>2]|0;l=a[c+4>>2]|0;while(1){if(!l)break;s=a[l+8>>2]|0;t=cd(s)|0;i=a[(a[t+16>>2]|0)+112>>2]|0;A=a[i+16+4>>2]|0;i=a[i+8>>2]|0;f=t;t=sd(s,t)|0;while(1){if(!t)break;r=a[(a[t+16>>2]|0)+112>>2]|0;n=a[r+16+4>>2]|0;if((n|0)<(A|0)){f=t;i=a[r+8>>2]|0;A=n}t=sd(s,t)|0}t=a[(a[i+16>>2]|0)+112>>2]|0;s=t+4|0;a[s>>2]=a[s>>2]|8;a[l>>2]=f;s=a[l+4>>2]|0;Fw((a[t+12>>2]|0)+36|0,l);l=s}zw(e);return c|0}function pw(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;t=k;k=k+16|0;l=t;n=t+8|0;r=a[e+24>>2]|0;if(!((r|0)!=0?(i=gd(A,r,0)|0,(i|0)!=0):0))f=3;A:do{if((f|0)==3){r=e+20|0;e:do{if(a[r>>2]|0){i=cd(A)|0;while(1){if(!i)break e;if((gR(a[a[(a[i+16>>2]|0)+112>>2]>>2]|0,a[r>>2]|0,0)|0)<<24>>24)break A;i=sd(A,i)|0}}}while(0);i=cd(A)|0}}while(0);if(0){}a[n+4>>2]=0;a[n>>2]=0;Nw(A,i,e,1,n);k=t;return}function Nw(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0;b=i+8|0;s=a[b>>2]|0;a[b>>2]=s+1;b=e+16|0;a[(a[(a[b>>2]|0)+112>>2]|0)+16+4>>2]=s;a[(a[(a[b>>2]|0)+112>>2]|0)+24>>2]=s;s=(r|0)==0;c=Ah(A,e)|0;while(1){if(!c)break;r=a[c>>2]&3;n=a[((r|0)==2?c:c+-48|0)+40>>2]|0;if((n|0)==(e|0)){r=a[((r|0)==3?c:c+48|0)+40>>2]|0;n=a[(a[c+16>>2]|0)+120>>2]|0;if(!(a[n>>2]|0))a[n>>2]=-1}else{r=a[(a[c+16>>2]|0)+120>>2]|0;if(!(a[r>>2]|0)){a[r>>2]=1;r=n}else r=n}n=r+16|0;l=a[(a[n>>2]|0)+112>>2]|0;t=a[l+16+4>>2]|0;do{if(!t){a[l+8>>2]=e;Rw(f,c);Nw(A,r,i,0,f);t=(a[(a[b>>2]|0)+112>>2]|0)+24|0;a[t>>2]=a[(a[(a[((a[t>>2]|0)<(a[(a[(a[n>>2]|0)+112>>2]|0)+24>>2]|0)?e:r)+16>>2]|0)+112>>2]|0)+24>>2];if((a[(a[(a[n>>2]|0)+112>>2]|0)+24>>2]|0)>=(a[(a[(a[b>>2]|0)+112>>2]|0)+16+4>>2]|0)){r=0;do{l=Xw(f)|0;n=(a[a[(a[l+16>>2]|0)+120>>2]>>2]|0)==1;n=a[((a[l>>2]&3|0)==((n?2:3)|0)?l:l+((n?-1:1)*48|0)|0)+40>>2]|0;if(!(a[(a[(a[n+16>>2]|0)+112>>2]|0)+12>>2]|0)){if(!r)r=Hw(A,i)|0;Uw(r,n)}}while((l|0)!=(c|0));if(r|0){if((a[(a[(a[b>>2]|0)+112>>2]|0)+12>>2]|0)==0?(Mw(r)|0)>1:0)Uw(r,e);if(!s?(a[(a[(a[b>>2]|0)+112>>2]|0)+12>>2]|0)==(r|0):0){Vw(i,r);break}Fw(i,r)}}}else{n=a[(a[b>>2]|0)+112>>2]|0;if((a[n+8>>2]|0)!=(r|0)){l=n+24|0;n=a[l>>2]|0;a[l>>2]=(n|0)<(t|0)?n:t}}}while(0);c=eh(A,c,e)|0}if(!s?(a[(a[(a[b>>2]|0)+112>>2]|0)+12>>2]|0)==0:0){b=Hw(A,i)|0;Uw(b,e);Vw(i,b)}return}function Rw(A,e){A=A|0;e=e|0;a[(a[(a[e+16>>2]|0)+120>>2]|0)+4>>2]=a[A>>2];a[A>>2]=e;e=A+4|0;a[e>>2]=(a[e>>2]|0)+1;return}function Xw(A){A=A|0;var e=0,i=0,r=0;e=a[A>>2]|0;if(!e)gA(138394,96254,65,96266);i=A+4|0;r=a[i>>2]|0;if((r|0)>0){a[A>>2]=a[(a[(a[e+16>>2]|0)+120>>2]|0)+4>>2];a[i>>2]=r+-1;return e|0}else gA(96244,96254,61,96266);return 0}function Hw(A,e){A=A|0;e=e|0;return Yw(xw(A,e)|0)|0}function Uw(A,e){A=A|0;e=e|0;kd(a[A+8>>2]|0,e,1)|0;a[(a[(a[e+16>>2]|0)+112>>2]|0)+12>>2]=A;return}function xw(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;i=k;k=k+144|0;f=i;r=i+8|0;n=e+12|0;e=a[n>>2]|0;a[n>>2]=e+1;a[f>>2]=e;S4(r,96234,f)|0;e=NB(A,r,1)|0;Td(e,137483,280,1)|0;k=i;return e|0}function Tw(A){A=A|0;var e=0,i=0;e=a[A+36>>2]|0;while(1){if(!e)break;i=a[e+4>>2]|0;Tw(e);e=i}Dw(A);return}function jw(A,e,i){A=A|0;e=e|0;i=i|0;Pw(A,e,+s[i+32>>3]);return}function Pw(A,e,i){A=A|0;e=e|0;i=+i;var r=0,f=0,n=0,l=0;r=e+36|0;f=0;while(1){r=a[r>>2]|0;if(!r)break;Pw(A,r,i);r=r+4|0;f=f+1|0}r=bk(A,e,i)|0;a[e+32>>2]=r;A=tk(r)|0;if((f|0)>0)i=+Sw(f,A,r,e,i);else i=3.141592653589793;if((((A|0)==1?(n=a[e>>2]|0,n|0):0)?a[(a[(a[n+16>>2]|0)+112>>2]|0)+8>>2]|0:0)?(l=e+48|0,s[l>>3]=i,i<0.0):0)s[l>>3]=i+6.283185307179586;return}function Sw(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=+f;var n=0.0,l=0,t=0.0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0;E=k;k=k+48|0;g=E;v=qF(A*56|0)|0;a[g+40>>2]=a[r+36>>2];o=r+16|0;t=+s[o>>3];h=g+8|0;s[h>>3]=t;s[g>>3]=t;a[g+44>>2]=a[r>>2];t=6.283185307179586/+(e|0);s[g+16>>3]=t;d=g+24|0;s[d>>3]=-1.0;B=g+32|0;s[B>>3]=-1.0;c=0;w=0;n=0.0;while(1){l=a[i>>2]|0;if(!l)break;i=a[l>>2]|0;if(!(a[(a[(a[i+16>>2]|0)+112>>2]|0)+4>>2]&8))i=w;else{u=v+(w*56|0)|0;a[u>>2]=i;s[v+(w*56|0)+8>>3]=t*+(c|0);i=w+1|0;n=+Ow(u,g,f)}c=c+1|0;w=i;i=l+4|0}A:do{switch(w|0){case 1:{s[v+40>>3]=1.0;i=0;break}case 2:{t=+s[v+64>>3]-+s[v+8>>3];Kw(v,v+56|0,t>3.141592653589793?6.283185307179586-t:t);i=0;break}default:{u=v+8|0;b=v;i=0;while(1){if((i|0)>=(w|0)){i=0;break A}i=i+1|0;if((i|0)==(w|0)){l=v;t=+s[u>>3]+6.283185307179586-+s[b+8>>3];c=b+56|0}else{c=b+56|0;l=c;t=+s[b+64>>3]-+s[b+8>>3]}Kw(b,l,t);b=c}}}}while(0);while(1){if((i|0)>=(w|0))break;_w(v+(i*56|0)|0,g,e,f);i=i+1|0}L2(v);if((A|0)==1){f=n+f*.5;qw(r,-f,0.0,0.0);s[o>>3]=+s[o>>3]+f;v=r+56|0;a[v>>2]=a[v>>2]|1}else s[o>>3]=+s[h>>3];k=E;return+((+s[B>>3]+ +s[d>>3])*.5+-3.141592653589793)}function Ow(A,e,i){A=A|0;e=e|0;i=+i;var r=0,f=0.0,n=0.0,l=0,t=0,c=0.0;l=0;f=0.0;n=0.0;r=e+40|0;while(1){t=a[r>>2]|0;if(!t)break;r=a[t>>2]|0;if(!r)r=0;else r=a[(a[(a[r+16>>2]|0)+112>>2]|0)+8>>2]|0;if((r|0)==(a[A>>2]|0)){c=+s[t+16>>3];r=l+1|0;f=f+i+c*2.0;n=n>3]=f;a[A+48>>2]=l;s[A+16>>3]=n+i+ +s[e>>3];s[A+24>>3]=n;return+n}function Kw(A,e,i){A=A|0;e=e|0;i=+i;var r=0.0,f=0.0;f=+s[e+16>>3];r=+s[A+16>>3];i=(r*+s[e+32>>3]+f*+s[A+32>>3])/(i*2.0*f*r);i=i<1.0?1.0:i;A=A+40|0;if(i>+s[A>>3])s[A>>3]=i;A=e+40|0;if(i>+s[A>>3])s[A>>3]=i;return}function _w(A,e,i,r){A=A|0;e=e|0;i=i|0;r=+r;var f=0.0,n=0.0,l=0,t=0.0,c=0.0,b=0.0,u=0.0,w=0,k=0,o=0.0,h=0.0,d=0,B=0,g=0,v=0.0,E=0.0,C=0,I=0,Z=0.0,G=0,m=0,Q=0,L=0,y=0.0,W=0.0;G=e+8|0;Z=+s[G>>3];m=e+24|0;c=+s[m>>3];Q=e+32|0;t=+s[Q>>3];f=+s[A+16>>3]*+s[A+40>>3];I=(i|0)==1;if(I){E=+s[A+32>>3];n=E*.15915494309189535;n=f>n?f:n;f=n*6.283185307179586-E;if(f>0.0){r=f/+(a[A+48>>2]|0)+r;b=0.0;f=n}else{b=0.0;f=n}}else b=+s[A+8>>3]-+s[A+32>>3]/(f*2.0);h=+s[A+24>>3]+f;d=h>Z;B=A+48|0;g=((a[B>>2]|0)+1|0)/2|0;v=1.0/f;E=r/f*.5;C=A+8|0;w=e+40|0;k=0;o=0.0;n=b;while(1){w=a[w>>2]|0;if(!w)break;l=a[w>>2]|0;if(!l)l=0;else l=a[(a[(a[l+16>>2]|0)+112>>2]|0)+8>>2]|0;if((l|0)==(a[A>>2]|0)?(tk(a[w+32>>2]|0)|0)>=1:0){b=+s[w+16>>3];u=b*v;do{if(!I)if((a[B>>2]|0)==1){n=+s[C>>3];break}else{n=n+E+u;break}else{if(n!=0.0)n=(a[B>>2]|0)==2?3.141592653589793:u+n;t=n;c=c<0.0?n:c}}while(0);W=+D(+n)*f;y=+M(+n)*f;qw(w,W,y,+$w(w,W,y,n));n=(I?(b+r)*v:u+E)+n;k=k+1|0;l=k;b=(k|0)==(g|0)?n:o}else{l=k;b=o}w=w+4|0;k=l;o=b}f=d?h:Z;if((i|0)>1?(L=a[A>>2]|0,(L|0)==(a[e+44>>2]|0)):0)s[(a[(a[L+16>>2]|0)+112>>2]|0)+24>>3]=o;s[G>>3]=f;s[m>>3]=c;s[Q>>3]=t;return}function qw(A,e,i,r){A=A|0;e=+e;i=+i;r=+r;var f=0,n=0.0,l=0.0,t=0.0,c=0,b=0,u=0,w=0,k=0.0,o=0.0;u=a[A+8>>2]|0;w=r!=0.0;f=cd(u)|0;while(1){if(!f)break;c=a[(a[f+16>>2]|0)+132>>2]|0;l=+s[c>>3];b=c+8|0;n=+s[b>>3];if(w){k=+D(+r);o=+M(+r);t=k*l-o*n;n=o*l+k*n}else t=l;s[c>>3]=t+e;s[b>>3]=n+i;f=sd(u,f)|0}f=A+36|0;while(1){f=a[f>>2]|0;if(!f)break;qw(f,e,i,r);f=f+4|0}return}function $w(A,e,i,r){A=A|0;e=+e;i=+i;r=+r;var f=0.0,n=0,l=0,t=0.0,c=0.0,b=0,u=0,w=0,k=0;u=a[A+8>>2]|0;f=+s[A+48>>3];do{if(!(f>=0.0)){if((tk(a[A+32>>2]|0)|0)==2){f=r+-1.5707963267948966;break}b=a[A>>2]|0;w=b+16|0;l=a[(a[w>>2]|0)+132>>2]|0;f=+s[l>>3]+e;c=+s[l+8>>3]+i;f=c*c+f*f;l=cd(u)|0;n=b;while(1){if(!l)break;if((l|0)!=(b|0)?(k=a[(a[l+16>>2]|0)+132>>2]|0,t=+s[k>>3]+e,c=+s[k+8>>3]+i,t=c*c+t*t,t>3];c=+s[A+16>>3]-t;n=a[w>>2]|0;l=a[n+132>>2]|0;f=+s[l>>3];if(f>-c?(a[A+56>>2]&1|0)!=0:0){i=+z(+(i*i+e*e));e=+N(+ +s[l+8>>3],+(f+c));f=+D(+e);f=r+1.5707963267948966-e-+J(+((c-t/f)/i*f));break}else{f=+N(+ +s[l+8>>3],+f);f=r+3.141592653589793-f-+s[(a[n+112>>2]|0)+24>>3];f=f>6.283185307179586?f+-6.283185307179586:f;break}}else f=0.0}else{f=3.141592653589793-f+r;f=f<0.0?f+6.283185307179586:f}}while(0);return+f}function Ak(){return qF(12)|0}function ek(A){A=A|0;var e=0,i=0;if(A|0){e=a[A>>2]|0;while(1){if(!e)break;i=a[e+4>>2]|0;L2(e);e=i}L2(A)}return}function ik(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;f=rk(i)|0;i=A+8|0;a[i>>2]=(a[i>>2]|0)+1;i=A+4|0;r=a[i>>2]|0;if((e|0)==0|(r|0)==(e|0)){a[(r|0?r+4|0:A)>>2]=f;a[f+8>>2]=r;r=0}else{r=e+4|0;i=a[r>>2]|0;a[r>>2]=f;a[f+8>>2]=e;r=i;i=i+8|0}a[i>>2]=f;a[f+4>>2]=r;return}function rk(A){A=A|0;var e=0;e=qF(12)|0;a[e>>2]=A;return e|0}function fk(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;e=a[A>>2]|0;i=e;while(1){if(!e)break;n=e+4|0;r=a[n>>2]|0;f=e+8|0;a[n>>2]=a[f>>2];a[f>>2]=r;e=r}f=A+4|0;n=a[f>>2]|0;a[f>>2]=i;a[A>>2]=n;return A|0}function ak(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;i=a[A>>2]|0;if((i|0)!=(e|0)){f=e+8|0;r=a[f>>2]|0;a[A>>2]=e;a[f>>2]=0;e=A+4|0;A=a[e>>2]|0;a[A+4>>2]=i;a[i+8>>2]=A;a[e>>2]=r;a[r+4>>2]=0}return}function nk(A){A=A|0;var e=0,i=0,r=0;i=Ak()|0;r=i+4|0;e=0;while(1){A=a[A>>2]|0;if(!A)break;ik(i,e,a[A>>2]|0);e=a[r>>2]|0;A=A+4|0}return i|0}function lk(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,s=0;f=A;while(1){c=a[f>>2]|0;if(!c){s=6;break}if((a[c>>2]|0)==(e|0))break;f=c+4|0}if((s|0)==6)gA(96270,96277,217,96288);t=c+8|0;f=a[t>>2]|0;n=c+4|0;e=a[n>>2]|0;a[(f|0?f+4|0:A)>>2]=e;l=A+4|0;a[(e|0?e+8|0:l)>>2]=f;e=0;f=A;while(1){f=a[f>>2]|0;if(!f)break;if((a[f>>2]|0)==(i|0)){s=9;break}e=f;f=f+4|0}if((s|0)==9){do{if(!r)if((f|0)==(a[A>>2]|0)){a[A>>2]=c;a[n>>2]=f;a[t>>2]=0;f=f+8|0;break}else{a[e+4>>2]=c;a[t>>2]=e;a[n>>2]=f;f=f+8|0;break}else if((f|0)==(a[l>>2]|0)){a[l>>2]=c;a[n>>2]=0;a[t>>2]=f;f=f+4|0;break}else{a[t>>2]=f;f=f+4|0;a[n>>2]=a[f>>2];a[(a[f>>2]|0)+8>>2]=c;break}}while(0);a[f>>2]=c}return}function tk(A){A=A|0;return a[A+8>>2]|0}function ck(A,e){A=A|0;e=e|0;sk(A,fk(e)|0);L2(e);return}function sk(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;i=a[e>>2]|0;if(i|0){r=A+4|0;f=a[r>>2]|0;a[f+4>>2]=i;a[i+8>>2]=f;a[r>>2]=a[e+4>>2];i=A+8|0;a[i>>2]=(a[i>>2]|0)+(a[e+8>>2]|0)}return}function bk(A,e,i){A=A|0;e=e|0;i=+i;var r=0,f=0.0,n=0.0,l=0.0,t=0.0,c=0,b=0,u=0,w=0,k=0.0;u=a[e+8>>2]|0;uk(A,e);b=wk(u)|0;A=ok(kk(b)|0)|0;hk(u,A);u=dk(A,u)|0;A=tk(u)|0;t=+Bk(u);c=(A|0)==1;f=+(A|0);l=f*.15915494309189535*(t+i);n=c?0.0:l;A=u;while(1){A=a[A>>2]|0;if(!A)break;if(a[(a[(a[(a[A>>2]|0)+16>>2]|0)+112>>2]|0)+4>>2]&8|0){r=4;break}A=A+4|0}if((r|0)==4)ak(u,A);i=1.0/f;r=0;A=u;while(1){A=a[A>>2]|0;if(!A)break;w=(a[A>>2]|0)+16|0;a[(a[(a[w>>2]|0)+112>>2]|0)+16>>2]=r;s[(a[(a[w>>2]|0)+112>>2]|0)+24>>3]=0.0;f=6.283185307179586*i*+(r|0);k=+D(+f)*n;w=a[(a[w>>2]|0)+132>>2]|0;s[w>>3]=k;s[w+8>>3]=+M(+f)*n;r=r+1|0;A=A+4|0}k=c?t*.5:l;s[e+16>>3]=k;s[e+24>>3]=k;s[e+48>>3]=-1.0;Bh(b)|0;return u|0}function uk(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;f=a[e+8>>2]|0;i=cd(f)|0;while(1){if(!i)break;r=Oo(A,i)|0;while(1){if(!r)break;if((a[(a[(a[(a[((a[r>>2]&3|0)==2?r:r+-48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0)+12>>2]|0)==(e|0))uh(f,r,1)|0;r=_o(A,r)|0}i=sd(f,i)|0}return}function wk(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0;s=k;k=k+16|0;n=s;f=Zk(A,n)|0;n=a[n>>2]|0;t=gh(n)|0;l=Gk(n)|0;t=t+-3|0;r=0;while(1){if((r|0)>=(t|0))break;c=Mk(l)|0;i=Ah(n,c)|0;while(1){if(!i)break;e=a[i>>2]&3;A=a[((e|0)==2?i:i+-48|0)+40>>2]|0;if((c|0)==(A|0))A=a[((e|0)==3?i:i+48|0)+40>>2]|0;Dk(l,A);i=eh(n,i,c)|0}mk(n,c,f);i=Ah(n,c)|0;while(1){if(!i)break;e=a[i>>2]&3;A=a[((e|0)==2?i:i+-48|0)+40>>2]|0;if((c|0)==(A|0))A=a[((e|0)==3?i:i+48|0)+40>>2]|0;e=(a[A+16>>2]|0)+236|0;a[e>>2]=(a[e>>2]|0)+-1;Yk(l,A);i=eh(n,i,c)|0}Cd(n,c)|0;r=r+1|0}Bh(n)|0;zk(l);k=s;return f|0}function kk(A){A=A|0;var e=0,i=0,r=0,f=0;f=k;k=k+144|0;e=f;r=f+8|0;i=a[46933]|0;a[46933]=i+1;a[e>>2]=i;S4(r,96303,e)|0;r=NB(A,r,1)|0;Td(r,137483,280,1)|0;e=cd(A)|0;while(1){if(!e)break;kd(r,e,1)|0;i=e+16|0;a[(a[(a[i>>2]|0)+112>>2]|0)+16+12>>2]=0;a[(a[(a[i>>2]|0)+112>>2]|0)+32>>2]=0;i=(a[(a[i>>2]|0)+112>>2]|0)+4|0;a[i>>2]=a[i>>2]&-2;e=sd(A,e)|0}e=cd(A)|0;while(1){if(!e)break;i=a[(a[e+16>>2]|0)+112>>2]|0;if(!(a[i+4>>2]&1)){a[i+16>>2]=0;Ik(A,e,r)}e=sd(A,e)|0}k=f;return r|0}function ok(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;if((gh(A)|0)!=1){i=cd(A)|0;while(1){if(!i)break;e=0;r=Ah(A,i)|0;while(1){if(!r)break;e=e+1|0;r=eh(A,r,i)|0}if((e|0)==1)Ck(i,i,0,0);i=sd(A,i)|0}e=0;f=0;i=cd(A)|0;while(1){if(!i)break;n=a[(a[i+16>>2]|0)+112>>2]|0;n=(a[n+32>>2]|0)+(a[n+16+12>>2]|0)|0;r=(n|0)>(e|0);e=r?n:e;f=r?i:f;i=sd(A,i)|0}e=Ak()|0;r=f+16|0;i=(a[(a[r>>2]|0)+112>>2]|0)+16+4|0;while(1){i=a[i>>2]|0;if((i|0)==(f|0))break;ik(e,0,i);i=a[(a[i+16>>2]|0)+112>>2]|0;n=i+4|0;a[n>>2]=a[n>>2]|16;i=i+16|0}ik(e,0,f);n=a[(a[r>>2]|0)+112>>2]|0;A=n+4|0;a[A>>2]=a[A>>2]|16;if(a[n+32>>2]|0){A=Ak()|0;i=(a[(a[r>>2]|0)+112>>2]|0)+24|0;while(1){i=a[i>>2]|0;if((i|0)==(f|0))break;ik(A,0,i);i=a[(a[i+16>>2]|0)+112>>2]|0;n=i+4|0;a[n>>2]=a[n>>2]|16;i=i+16|0}ck(e,A)}}else{e=Ak()|0;n=cd(A)|0;ik(e,0,n);n=(a[(a[n+16>>2]|0)+112>>2]|0)+4|0;a[n>>2]=a[n>>2]|16}return e|0}function hk(A,e){A=A|0;e=e|0;var i=0;i=cd(A)|0;while(1){if(!i)break;if(!(a[(a[(a[i+16>>2]|0)+112>>2]|0)+4>>2]&16))Ek(A,i,e);i=sd(A,i)|0}return}function dk(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;n=k;k=k+16|0;f=n;i=gk(A,e)|0;a[f>>2]=i;A:do{if(i){r=0;while(1){if((r|0)>=10)break A;A=vk(A,e,f)|0;l=i;i=a[f>>2]|0;if((l|0)==(i|0)|(i|0)==0)break;else r=r+1|0}}}while(0);k=n;return A|0}function Bk(A){A=A|0;var e=0.0,i=0.0,r=0.0,f=0;e=0.0;while(1){A=a[A>>2]|0;if(!A)break;f=a[(a[a[(a[(a[A>>2]|0)+16>>2]|0)+112>>2]>>2]|0)+16>>2]|0;i=+s[f+32>>3];i=i>e?i:e;r=+s[f+40>>3];e=r>i?r:i;A=A+4|0}return+e}function gk(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0;s=Fk()|0;r=cd(e)|0;while(1){if(!r)break;i=Oo(e,r)|0;while(1){if(!i)break;a[a[(a[i+16>>2]|0)+120>>2]>>2]=0;i=_o(e,i)|0}r=sd(e,r)|0}c=1;i=0;while(1){l=a[A>>2]|0;if(!l)break;t=a[l>>2]|0;n=Ah(e,t)|0;while(1){if(!n)break;f=n+16|0;if((a[a[(a[f>>2]|0)+120>>2]>>2]|0)>0){A=y5[a[s>>2]&63](s,0,128)|0;while(1){if(!A)break;r=a[A+8>>2]|0;if((a[a[(a[r+16>>2]|0)+120>>2]>>2]|0)>(a[a[(a[f>>2]|0)+120>>2]>>2]|0)?(b=a[r>>2]&3,(a[((b|0)==2?r:r+-48|0)+40>>2]|0)!=(t|0)):0)i=i+((a[((b|0)==3?r:r+48|0)+40>>2]|0)!=(t|0)&1)|0;A=y5[a[s>>2]&63](s,A,8)|0}Xk(s,n)}n=eh(e,n,t)|0}r=Ah(e,t)|0;while(1){if(!r)break;A=a[(a[r+16>>2]|0)+120>>2]|0;if(!(a[A>>2]|0)){a[A>>2]=c;Rk(s,r)}r=eh(e,r,t)|0}A=l+4|0;c=c+1|0}Nk(s);return i|0}function vk(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,s=0;r=a[i>>2]|0;s=cd(e)|0;A:while(1){if(!s)break;c=Ah(e,s)|0;while(1){if(!c)break;n=a[c>>2]&3;f=a[((n|0)==3?c:c+48|0)+40>>2]|0;if((f|0)==(s|0))f=a[((n|0)==2?c:c+-48|0)+40>>2]|0;t=0;while(1){if((t|0)>=2)break;l=nk(A)|0;lk(A,s,f,t);n=gk(A,e)|0;if((n|0)<(r|0)){ek(l);if(!n){r=0;break A}else r=n}else{ek(A);A=l}t=t+1|0}c=eh(e,c,s)|0}s=sd(e,s)|0}a[i>>2]=r;return A|0}function Ek(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0;l=Ak()|0;r=Oo(A,e)|0;while(1){if(!r)break;f=r+-48|0;ik(l,0,a[((a[r>>2]&3|0)==2?r:f)+40>>2]|0);f=(a[(a[(a[((a[r>>2]&3|0)==2?r:f)+40>>2]|0)+16>>2]|0)+112>>2]|0)+4|0;a[f>>2]=a[f>>2]|32;r=_o(A,r)|0}r=qo(A,e)|0;while(1){if(!r)break;f=r+48|0;ik(l,0,a[((a[r>>2]&3|0)==3?r:f)+40>>2]|0);f=(a[(a[(a[((a[r>>2]&3|0)==3?r:f)+40>>2]|0)+16>>2]|0)+112>>2]|0)+4|0;a[f>>2]=a[f>>2]|32;r=$o(A,r)|0}A:do{if((tk(l)|0)>1){f=i+4|0;A=i;while(1){r=a[A>>2]|0;if(!r){n=13;break A}A=r+4|0;if(!(a[(a[(a[(a[r>>2]|0)+16>>2]|0)+112>>2]|0)+4>>2]&32))continue;if(a[(a[(a[(a[a[((r|0)==(a[f>>2]|0)?i:A)>>2]>>2]|0)+16>>2]|0)+112>>2]|0)+4>>2]&32|0)break}ik(i,r,e)}else n=13}while(0);A:do{if((n|0)==13){e:do{if((tk(l)|0)>0){r=i;while(1){r=a[r>>2]|0;if(!r)break e;if(a[(a[(a[(a[r>>2]|0)+16>>2]|0)+112>>2]|0)+4>>2]&32|0)break;r=r+4|0}ik(i,r,e);break A}}while(0);ik(i,0,e)}}while(0);r=l;while(1){r=a[r>>2]|0;if(!r)break;i=(a[(a[(a[r>>2]|0)+16>>2]|0)+112>>2]|0)+4|0;a[i>>2]=a[i>>2]&-33;r=r+4|0}ek(l);return}function Ck(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,s=0;while(1){n=a[(a[(a[e+16>>2]|0)+112>>2]|0)+16>>2]|0;if(!n)break;l=i+1|0;t=n+16|0;c=a[(a[t>>2]|0)+112>>2]|0;e=c+16|0;f=a[e+12>>2]|0;if(f){if((f|0)>(i|0)){s=11;break}e=a[e+4>>2]|0;f=e;if((e|0)==(r|0))e=c;else{i=c+24|0;if(!((a[c+32>>2]|0)!=0?(a[i>>2]|0)==(r|0):0))r=e;a[i>>2]=f;e=a[(a[t>>2]|0)+112>>2]|0;a[e+32>>2]=a[e+16+12>>2];e=a[(a[t>>2]|0)+112>>2]|0}e=e+16|0}a[e+4>>2]=A;a[(a[(a[t>>2]|0)+112>>2]|0)+16+12>>2]=l;e=n;i=l}if((s|0)==11?(a[c+32>>2]|0)<=(i|0):0){a[c+24>>2]=A;a[(a[(a[t>>2]|0)+112>>2]|0)+32>>2]=l}return}function Ik(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;n=(a[(a[e+16>>2]|0)+112>>2]|0)+4|0;a[n>>2]=a[n>>2]|1;n=Ah(A,e)|0;while(1){if(!n)break;f=a[n>>2]&3;r=a[((f|0)==2?n:n+-48|0)+40>>2]|0;if((r|0)==(e|0))r=a[((f|0)==3?n:n+48|0)+40>>2]|0;f=r+16|0;if(!(a[(a[(a[f>>2]|0)+112>>2]|0)+4>>2]&1)){uh(i,n,1)|0;a[(a[(a[f>>2]|0)+112>>2]|0)+16>>2]=e;Ik(A,r,i)}n=eh(A,n,e)|0}return}function Zk(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0;s=k;k=k+144|0;c=s+8|0;t=s;i=s+16|0;l=a[46934]|0;a[46934]=l+1;a[t>>2]=l;S4(i,96312,t)|0;t=NB(A,i,1)|0;Td(t,137483,280,1)|0;l=a[46934]|0;a[46934]=l+1;a[c>>2]=l;S4(i,96312,c)|0;l=A+24|0;r[c>>0]=r[l>>0]|0;r[c+1>>0]=r[l+1>>0]|0;r[c+2>>0]=r[l+2>>0]|0;r[c+3>>0]=r[l+3>>0]|0;c=kh(i,c,0)|0;i=cd(A)|0;while(1){if(!i)break;kd(t,i,1)|0;l=gd(c,Vh(i)|0,1)|0;Td(l,137447,304,1)|0;a[(a[(a[i+16>>2]|0)+112>>2]|0)+16>>2]=l;i=sd(A,i)|0}f=cd(A)|0;while(1){if(!f)break;n=a[(a[(a[f+16>>2]|0)+112>>2]|0)+16>>2]|0;l=n+16|0;i=Oo(A,f)|0;while(1){if(!i)break;uh(t,i,1)|0;b=a[(a[(a[(a[((a[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0)+16>>2]|0;u=th(c,n,b,0,1)|0;Td(u,137460,176,1)|0;a[(a[u+16>>2]|0)+116>>2]=i;u=(a[l>>2]|0)+236|0;a[u>>2]=(a[u>>2]|0)+1;b=(a[b+16>>2]|0)+236|0;a[b>>2]=(a[b>>2]|0)+1;i=_o(A,i)|0}f=sd(A,f)|0}a[e>>2]=c;k=s;return t|0}function Gk(A){A=A|0;var e=0,i=0;i=Qk()|0;e=cd(A)|0;while(1){if(!e)break;Yk(i,e);e=sd(A,e)|0}return i|0}function mk(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0;u=a[(a[e+16>>2]|0)+236>>2]|0;o=u<<2;k=$F(o)|0;o=$F(o)|0;t=0;b=Ah(A,e)|0;w=0;f=0;while(1){if(!b)break;r=a[b>>2]&3;n=a[((r|0)==2?b:b+-48|0)+40>>2]|0;if((n|0)==(e|0))n=a[((r|0)==3?b:b+48|0)+40>>2]|0;l=0;s=Ah(A,e)|0;c=t;while(1){if(!s)break;if((s|0)!=(b|0)){t=a[s>>2]&3;r=a[((t|0)==2?s:s+-48|0)+40>>2]|0;if((r|0)==(e|0))r=a[((t|0)==3?s:s+48|0)+40>>2]|0;t=th(A,n,r,0,0)|0;if(t)if(n>>>0>>0){r=c+1|0;l=t+16|0;t=a[(a[l>>2]|0)+116>>2]|0;if(!t)l=1;else{Cd(i,t)|0;a[(a[l>>2]|0)+116>>2]=0;l=1}}else{l=1;r=c}else r=c}else r=c;s=eh(A,s,e)|0;c=r}if(!l){a[o+(w<<2)>>2]=n;r=w+1|0}else{a[k+(f<<2)>>2]=n;r=w;f=f+1|0}t=c;b=eh(A,b,e)|0;w=r}r=u+-1-t|0;A:do{if((r|0)>0){if((r|0)<(w|0))n=0;else{if((r|0)!=(w|0))break;f=a[k>>2]|0;n=f+16|0;r=0;while(1){if((r|0)>=(w|0))break A;u=a[o+(r<<2)>>2]|0;Td(th(A,f,u,0,1)|0,137460,176,1)|0;i=(a[n>>2]|0)+236|0;a[i>>2]=(a[i>>2]|0)+1;u=(a[u+16>>2]|0)+236|0;a[u>>2]=(a[u>>2]|0)+1;r=r+1|0}}while(1){if((n|0)>=(w|0)){f=2;break}f=n|1;if((f|0)>=(w|0)){f=2;break}i=a[o+(n<<2)>>2]|0;u=a[o+(f<<2)>>2]|0;Td(th(A,i,u,0,1)|0,137460,176,1)|0;i=(a[i+16>>2]|0)+236|0;a[i>>2]=(a[i>>2]|0)+1;u=(a[u+16>>2]|0)+236|0;a[u>>2]=(a[u>>2]|0)+1;n=n+2|0;r=r+-1|0}while(1){if((r|0)<=0)break A;u=a[o>>2]|0;w=a[o+(f<<2)>>2]|0;Td(th(A,u,w,0,1)|0,137460,176,1)|0;u=(a[u+16>>2]|0)+236|0;a[u>>2]=(a[u>>2]|0)+1;w=(a[w+16>>2]|0)+236|0;a[w>>2]=(a[w>>2]|0)+1;f=f+1|0;r=r+-1|0}}}while(0);L2(o);L2(k);return}function Qk(){return jk(18240,a[4581]|0)|0}function Lk(A,e,i){A=A|0;e=e|0;i=i|0;i=$F(16)|0;a[i+12>>2]=0;a[i+8>>2]=a[e+8>>2];return i|0}function yk(A,e,i){A=A|0;e=e|0;i=i|0;L2(e);return}function Wk(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;e=a[e>>2]|0;r=a[i>>2]|0;return((e|0)<(r|0)?-1:(e|0)>(r|0)&1)|0}function zk(A){A=A|0;Hk(A)|0;return}function Yk(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;i=k;k=k+16|0;f=i;r=e+16|0;a[f+8>>2]=a[(a[r>>2]|0)+236>>2];A=(y5[a[A>>2]&63](A,f,1)|0)+12|0;a[(a[r>>2]|0)+164>>2]=a[A>>2];a[A>>2]=e;k=i;return}function Dk(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;l=k;k=k+16|0;n=l;f=e+16|0;a[n+8>>2]=a[(a[f>>2]|0)+236>>2];n=y5[a[A>>2]&63](A,n,4)|0;if(!n)gA(96322,96325,107,96335);r=n+12|0;i=a[r>>2]|0;if((i|0)==(e|0)){e=a[(a[f>>2]|0)+164>>2]|0;a[r>>2]=e;if(!e)y5[a[A>>2]&63](A,n,2)|0}else{do{A=(a[i+16>>2]|0)+164|0;i=a[A>>2]|0;r=(i|0)!=0}while(r&(i|0)!=(e|0));if(r)a[A>>2]=a[(a[i+16>>2]|0)+164>>2]}k=l;return}function Mk(A){A=A|0;var e=0,i=0,r=0,f=0;i=y5[a[A>>2]&63](A,0,128)|0;if(i){f=i+12|0;e=a[f>>2]|0;r=a[(a[e+16>>2]|0)+164>>2]|0;a[f>>2]=r;if(!r)y5[a[A>>2]&63](A,i,2)|0}else e=0;return e|0}function Fk(){return jk(18276,a[4581]|0)|0}function Vk(A,e,i){A=A|0;e=e|0;i=i|0;i=$F(12)|0;a[i+8>>2]=a[e+8>>2];return i|0}function Jk(A,e,i){A=A|0;e=e|0;i=i|0;L2(e);return}function pk(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;e=a[e>>2]|0;r=a[i>>2]|0;return(e>>>0>r>>>0?1:(e>>>0>>0)<<31>>31)|0}function Nk(A){A=A|0;Hk(A)|0;return}function Rk(A,e){A=A|0;e=e|0;var i=0,r=0;i=k;k=k+16|0;r=i;a[r+8>>2]=e;y5[a[A>>2]&63](A,r,1)|0;k=i;return}function Xk(A,e){A=A|0;e=e|0;var i=0,r=0;i=k;k=k+16|0;r=i;a[r+8>>2]=e;y5[a[A>>2]&63](A,r,2)|0;k=i;return}function Hk(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0;do{if((A|0)!=0?(a[A+24>>2]|0)<=0:0){l=a[A+4>>2]|0;n=l+32|0;e=a[n>>2]|0;if(e){e=W5[e&127](A,2,0,l)|0;if((e|0)<0){e=-1;break}}else e=0;if(a[A+28>>2]|0)_k(A,0)|0;f=(e|0)==0;if(f){y5[a[a[A+16>>2]>>2]&63](A,0,64)|0;if((Sk(A)|0)>0){e=-1;break}i=A+8|0;e=a[i>>2]|0;if((a[e+12>>2]|0)>0){r=A+12|0;W5[a[r>>2]&127](A,a[e+8>>2]|0,0,l)|0;e=a[i>>2]|0}else r=A+12|0;W5[a[r>>2]&127](A,e,0,l)|0}e=a[A+20>>2]|0;if(e){if(f&(e|0)==1)W5[a[A+12>>2]&127](A,A,0,l)|0}else L2(A);e=a[n>>2]|0;if(!e)e=0;else{W5[e&127](A,6,0,l)|0;e=0}}else e=-1}while(0);return e|0}function Uk(A){A=A|0;var e=0,i=0,r=0;r=A+8|0;e=a[r>>2]|0;i=a[e>>2]|0;A:do{if(!(i&12)){if(!(i&3)){i=e+8|0;A=a[i>>2]|0;a[i>>2]=0;break}A=xk(A)|0;i=a[r>>2]|0;e=a[i+8>>2]|0;i=e+(a[i+12>>2]<<2)|0;while(1){if(e>>>0>=i>>>0)break A;a[e>>2]=0;e=e+4|0}}else A=a[e+4>>2]|0}while(0);r=a[r>>2]|0;a[r>>2]=a[r>>2]&-4097;a[r+16>>2]=0;a[r+4>>2]=0;return A|0}function xk(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;n=A+8|0;A=a[n>>2]|0;e=a[A>>2]|0;if(!(e&4096)){A:do{if(!(e&3)){if(e&112|0){A=a[A+8>>2]|0;break}A=a[A+4>>2]|0;if(!A)A=0;else{while(1){e=A+4|0;i=a[e>>2]|0;if(!i){r=A;break}a[e>>2]=a[i>>2];a[i>>2]=A;A=i}while(1){e=a[r>>2]|0;if(!e)break A;i=a[e+4>>2]|0;if(!i){r=e;continue}while(1){a[e+4>>2]=a[i>>2];a[i>>2]=e;e=a[i+4>>2]|0;if(!e)break;else{f=i;i=e;e=f}}a[r>>2]=i;r=i}}}else{r=a[A+8>>2]|0;f=r+(a[A+12>>2]<<2)|0;e=0;A=0;while(1){if(r>>>0>=f>>>0)break A;i=a[r>>2]|0;if(i){if(!e){e=i;A=i}else a[e>>2]=i;while(1){i=a[e>>2]|0;if(!i)break;else e=i}a[r>>2]=e}r=r+4|0}}}while(0);n=a[n>>2]|0;a[n+4>>2]=A;a[n>>2]=a[n>>2]|4096}else A=a[A+4>>2]|0;return A|0}function Tk(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0,v=0;B=A+8|0;if(a[a[B>>2]>>2]&4096|0)Pk(A,0)|0;d=a[A+4>>2]|0;u=a[d>>2]|0;w=a[d+4>>2]|0;h=d+8|0;v=a[h>>2]|0;k=a[d+20>>2]|0;o=A+20|0;f=a[o>>2]&-32769;a[o>>2]=f;A:do{if(!e){if(i&384|0){f=a[B>>2]|0;r=a[f+8>>2]|0;if(!r){r=0;break}if(i&256){r=a[r+4>>2]|0;a[f+4>>2]=r;if(!r){r=0;break}}else a[f+4>>2]=r;if((v|0)<0){r=a[r+8>>2]|0;break}else{r=r+(0-v)|0;break}}if(i&4098|0){r=a[B>>2]|0;if(a[r>>2]&144|0){r=0;break}r=a[r+8>>2]|0;if(!r){r=0;break}else{l=r;g=84;break}}if(!(i&64))r=0;else{t=d+16|0;e:do{if((a[t>>2]|0)!=0|(v|0)<0){c=A+12|0;s=(v|0)<0;f=0-v|0;r=a[(a[B>>2]|0)+8>>2]|0;while(1){if(!r)break e;n=a[r>>2]|0;l=a[t>>2]|0;if(l|0){if(s)e=a[r+8>>2]|0;else e=r+f|0;J5[l&127](A,e,d)}if((a[h>>2]|0)>=0){r=n;continue}W5[a[c>>2]&127](A,r,0,d)|0;r=n}}}while(0);r=a[B>>2]|0;a[r+4>>2]=0;a[r+8>>2]=0;a[(a[B>>2]|0)+16>>2]=0;r=0}}else{if(i&2049|0){n=d+12|0;r=a[n>>2]|0;l=(i&1|0)==0;if(!(l|(r|0)==0)){r=y5[r&63](A,e,d)|0;if(!r){r=0;break}else f=r}else f=e;do{if((v|0)>-1)l=f+v|0;else{r=W5[a[A+12>>2]&127](A,0,12,d)|0;if(r|0){a[r+8>>2]=f;l=r;break}if(!(a[n>>2]|0)){r=0;break A}r=a[d+16>>2]|0;if(l|(r|0)==0){r=0;break A}J5[r&127](A,f,d);r=0;break A}}while(0);n=a[B>>2]|0;r=a[n>>2]|0;do{if(!(r&128)){if(!(r&16))if(!(r&32)){g=51;break}else{g=48;break}f=a[n+4>>2]|0;r=(f|0)!=0;if(!(i&8192)){if(!r){g=48;break}if((f|0)==(a[n+8>>2]|0)){g=48;break}d=f+4|0;A=a[d>>2]|0;a[l+4>>2]=A;a[A>>2]=l;a[l>>2]=f;a[d>>2]=l;break}else{if(!r){g=51;break}r=a[f>>2]|0;if(!r){g=51;break}a[l>>2]=r;a[r+4>>2]=l;a[l+4>>2]=f;a[f>>2]=l;break}}else if(!(i&8192))g=48;else g=51}while(0);if((g|0)==48){r=a[n+8>>2]|0;a[l>>2]=r;if(!r)r=l;else a[l+4>>2]=a[r+4>>2];a[r+4>>2]=l;a[(a[B>>2]|0)+8>>2]=l}else if((g|0)==51){f=n+8|0;r=a[f>>2]|0;if(!r){a[f>>2]=l;r=l}else{d=r+4|0;a[a[d>>2]>>2]=l;a[l+4>>2]=a[d>>2]}a[r+4>>2]=l;a[l>>2]=0}r=a[B>>2]|0;f=r+16|0;n=a[f>>2]|0;if((n|0)>-1)a[f>>2]=n+1;a[r+4>>2]=l;if((v|0)<0){r=a[l+8>>2]|0;break}else{r=l+(0-v)|0;break}}l=a[B>>2]|0;do{if(!(i&512)){r=a[l+4>>2]|0;if(r|0){if((v|0)<0)n=a[r+8>>2]|0;else n=r+(0-v)|0;if((n|0)==(e|0))break}r=e+u|0;if((w|0)<0){e=a[r>>2]|0;g=68}else{e=r;g=68}}else g=68}while(0);if((g|0)==68){n=(v|0)<0;t=(w|0)<0;c=(k|0)==0;s=(w|0)<1;b=0-v|0;r=l+8|0;do{r=a[r>>2]|0;if(!r){r=0;break A}if(n)f=a[r+8>>2]|0;else f=r+b|0;f=f+u|0;if(t)f=a[f>>2]|0;do{if(c)if(s){f=A1(e,f)|0;break}else{f=F4(e,f,w)|0;break}else f=W5[k&127](A,e,f,d)|0}while(0)}while((f|0)!=0);f=a[o>>2]|0}a[o>>2]=f|32768;if(!(i&4098)){do{if(!(i&8)){f=a[B>>2]|0;if(!(i&16)){a[f+4>>2]=r;break}if((r|0)==(a[f+8>>2]|0)){a[f+4>>2]=0;r=0;break A}else{r=r+4|0;g=108;break}}else{f=a[B>>2]|0;g=108}}while(0);if((g|0)==108){r=a[r>>2]|0;a[f+4>>2]=r;if(!r){r=0;break}}if((v|0)<0){r=a[r+8>>2]|0;break}else{r=r+(0-v)|0;break}}else{l=r;g=84}}}while(0);if((g|0)==84){r=a[l>>2]|0;if(r){a[r+4>>2]=a[l+4>>2];r=a[l>>2]|0}f=(a[B>>2]|0)+8|0;n=a[f>>2]|0;if((l|0)==(n|0)){a[f>>2]=r;r=a[(a[B>>2]|0)+8>>2]|0;if(r|0)a[r+4>>2]=a[l+4>>2]}else{f=l+4|0;a[a[f>>2]>>2]=r;r=n+4|0;if((l|0)==(a[r>>2]|0))a[r>>2]=a[f>>2]}r=a[B>>2]|0;f=r+4|0;if((l|0)==(a[f>>2]|0))n=a[l>>2]|0;else n=0;a[f>>2]=n;g=r+16|0;a[g>>2]=(a[g>>2]|0)+-1;if((v|0)<0)r=a[l+8>>2]|0;else r=l+(0-v)|0;f=a[d+16>>2]|0;if(!((i&2|0)==0|(f|0)==0))J5[f&127](A,r,d);if((a[h>>2]|0)<0)W5[a[A+12>>2]&127](A,l,0,d)|0}return r|0}function jk(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0;c=k;k=k+16|0;n=c;A:do{if((A|0)!=0&(e|0)!=0?(f=Q2(40)|0,(f|0)!=0):0){a[f>>2]=0;a[f+16>>2]=0;a[f+4>>2]=0;Ao(f,A,0)|0;i=f+20|0;t=A+32|0;a[i>>2]=0;a[i+4>>2]=0;a[i+8>>2]=0;a[i+12>>2]=0;a[i+16>>2]=0;i=a[t>>2]|0;do{if(i){a[n>>2]=0;i=W5[i&127](f,1,n,A)|0;if((i|0)>=0)if(i){r=a[n>>2]|0;if(r|0)if(!(a[e+4>>2]&a[r>>2])){i=f;l=12;break}else{i=f;break}i=A+28|0;if(!(a[i>>2]|0)){i=f;l=12}else{L2(f);r=W5[a[i>>2]&127](0,0,40,A)|0;if(!r){i=0;break A}a[r>>2]=0;a[r+16>>2]=0;a[r+4>>2]=0;Ao(r,A,0)|0;a[r+20>>2]=1;a[r+24>>2]=0;a[r+32>>2]=0;a[r+28>>2]=0;i=r;f=r;l=11}}else{i=f;l=11}else{i=f;l=12}}else{i=f;l=11}}while(0);if((l|0)==11){r=W5[a[i+12>>2]&127](i,0,28,A)|0;a[n>>2]=r;if(!r){i=f;l=12}else{a[r>>2]=a[e+4>>2];n=r+4|0;a[n>>2]=0;a[n+4>>2]=0;a[n+8>>2]=0;a[n+12>>2]=0;a[n+16>>2]=0;a[n+20>>2]=0}}if((l|0)==12){L2(i);i=0;break}a[i+8>>2]=r;a[i>>2]=a[e>>2];a[i+16>>2]=e;r=a[t>>2]|0;if(r)W5[r&127](i,5,f,A)|0}else i=0}while(0);k=c;return i|0}function Pk(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0;f=a[a[A+16>>2]>>2]|0;c=A+8|0;n=a[c>>2]|0;l=a[n>>2]|0;i=l&4096;if(!e)if(!i)e=-1;else{r=i;e=a[n+4>>2]|0;t=5}else if(!(a[n+16>>2]|0)){r=0;t=5}else e=-1;A:do{if((t|0)==5){a[n>>2]=l&-4097;if(!(l&3)){i=n+4|0;if(!(l&12)){a[i>>2]=0;i=n+8|0}a[i>>2]=e;if(r|0){e=0;break}a[(a[c>>2]|0)+16>>2]=-1;e=0;break}a[n+4>>2]=0;if(!r){a[n+16>>2]=0;while(1){if(!e){e=0;break A}c=a[e>>2]|0;y5[f&63](A,e,32)|0;e=c}}r=a[n+8>>2]|0;A=r+(a[n+12>>2]<<2)|0;while(1){if(r>>>0>=A>>>0){e=0;break A}i=a[r>>2]|0;if(i){a[r>>2]=e;e=a[i>>2]|0;a[i>>2]=0}r=r+4|0}}}while(0);return e|0}function Sk(A){A=A|0;var e=0,i=0,r=0;e=A+8|0;i=a[e>>2]|0;if(a[i>>2]&4096){Pk(A,0)|0;i=a[e>>2]|0}r=i+16|0;A=a[r>>2]|0;do{if((A|0)<0){e=a[i>>2]|0;if(e&12|0){A=Ok(a[i+4>>2]|0)|0;a[r>>2]=A;break}if(e&112){A=0;e=i+8|0;while(1){e=a[e>>2]|0;if(!e)break;A=A+1|0}a[r>>2]=A}}}while(0);return A|0}function Ok(A){A=A|0;var e=0;if(!A)return 0;else{e=Ok(a[A+4>>2]|0)|0;return e+1+(Ok(a[A>>2]|0)|0)|0}return 0}function Kk(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0;Y=k;k=k+128|0;G=Y+120|0;d=Y;z=A+8|0;r=a[z>>2]|0;if(a[r>>2]&4096){Pk(A,0)|0;r=a[z>>2]|0}W=a[A+4>>2]|0;m=a[W>>2]|0;Q=a[W+4>>2]|0;I=W+8|0;y=a[I>>2]|0;L=a[W+20>>2]|0;g=A+20|0;a[g>>2]=a[g>>2]&-32769;l=a[r+4>>2]|0;A:do{if(!e)if((i&448|0)==0|(l|0)==0)r=0;else{if(!(i&64)){e:do{if(!(i&256)){r=l;while(1){f=r+4|0;n=a[f>>2]|0;if(!n)break e;a[f>>2]=a[n>>2];a[n>>2]=r;r=n}}else{r=l;while(1){f=a[r>>2]|0;if(!f)break e;A=f+4|0;a[r>>2]=a[A>>2];a[A>>2]=r;r=f}}}while(0);a[(a[z>>2]|0)+4>>2]=r;if((y|0)<0){r=a[r+8>>2]|0;break}else{r=r+(0-y)|0;break}}e=W+16|0;if((a[e>>2]|0)!=0|(y|0)<0){c=A+12|0;s=(y|0)<0;t=0-y|0;r=l;do{l=r;while(1){r=l+4|0;f=a[r>>2]|0;if(!f)break;a[r>>2]=a[f>>2];a[f>>2]=l;l=f}r=a[l>>2]|0;f=a[e>>2]|0;if(f|0){if(s)n=a[l+8>>2]|0;else n=l+t|0;J5[f&127](A,n,W)}if((a[I>>2]|0)<0)W5[a[c>>2]&127](A,l,0,W)|0}while((r|0)!=0);r=a[z>>2]|0}a[r+16>>2]=0;a[r+4>>2]=0;r=0}else{Z=A+16|0;v=(i&4098|0)==0;e:do{if(v|(a[(a[Z>>2]|0)+4>>2]|0)!=8)E=45;else{s=(Q|0)<0;r=e+m|0;if(s)r=a[r>>2]|0;t=(L|0)==0;c=(Q|0)<1;n=y5[a[A>>2]&63](A,e,4)|0;while(1){if(!n){E=45;break e}f=n+m|0;if(s)f=a[f>>2]|0;do{if(t)if(c){f=A1(r,f)|0;break}else{f=F4(r,f,Q)|0;break}else f=W5[L&127](A,r,f,W)|0}while(0);if(f|0){E=45;break e}if((n|0)==(e|0))break;n=y5[a[A>>2]&63](A,n,8)|0}l=a[(a[z>>2]|0)+4>>2]|0;a[G>>2]=a[l+4>>2];a[G+4>>2]=a[l>>2];r=G;E=180}}while(0);e:do{if((E|0)==45){do{if(!(i&2565)){if(i&32|0){if((y|0)<0)n=a[e+8>>2]|0;else n=e+(0-y)|0;r=n+m|0;if((Q|0)<0)f=a[r>>2]|0;else f=r;if(!l){r=e;f=G;l=G;E=198;break}else{r=e;B=f;c=e;E=64;break}}if(l){if((y|0)<0)r=a[l+8>>2]|0;else r=l+(0-y)|0;if((r|0)!=(e|0)){f=e+m|0;if((Q|0)<0){n=e;r=0;B=a[f>>2]|0;c=0;E=64}else{n=e;r=0;B=f;c=0;E=64}}else{r=0;n=e;f=G;s=G;c=0;E=141}}else{r=0;n=e;f=G;l=G;E=198}}else{if(!(i&512)){r=e+m|0;if((Q|0)<0)f=a[r>>2]|0;else f=r}else f=e;if(!l){r=0;n=e;f=G;l=G;E=198}else{n=e;r=0;B=f;c=0;E=64}}}while(0);i:do{if((E|0)==64){r:do{if((a[(a[Z>>2]|0)+4>>2]|0)==4?(h=a[(a[z>>2]|0)+24>>2]|0,!((i&516|0)==0|(h|0)==0)):0){e=(y|0)<0;b=(Q|0)<0;u=(L|0)==0;w=(Q|0)<1;o=0-y|0;s=0;f=l;while(1){if((s|0)>=(h|0)){f=G;s=G;b=0;break}if(e)t=a[f+8>>2]|0;else t=f+o|0;t=t+m|0;if(b)t=a[t>>2]|0;do{if(u)if(w){t=A1(B,t)|0;break}else{t=F4(B,t,Q)|0;break}else t=W5[L&127](A,B,t,W)|0}while(0);if(!t){E=80;break}a[d+(s<<2)>>2]=t;f=a[((t|0)<0?f+4|0:f)>>2]|0;if(!f){r=0;break A}else s=s+1|0}if((E|0)==80)if(e){r=a[f+8>>2]|0;break A}else{r=f+o|0;break A}while(1){if((b|0)>=(h|0))break r;do{if((a[d+(b<<2)>>2]|0)<0){t=l+4|0;e=a[t>>2]|0;if((a[d+((b|1)<<2)>>2]|0)<0){a[t>>2]=a[e>>2];a[e>>2]=l;a[f+4>>2]=e;f=e;l=s;t=e+4|0;break}else{a[s>>2]=e;a[f+4>>2]=l;f=l;l=e;t=e;break}}else{t=a[l>>2]|0;if((a[d+((b|1)<<2)>>2]|0)>0){o=t+4|0;a[l>>2]=a[o>>2];a[o>>2]=l;a[s>>2]=t;l=t;break}else{a[f+4>>2]=t;a[s>>2]=l;f=t;t=t+4|0;break}}}while(0);s=l;b=b+2|0;l=a[t>>2]|0}}else{f=G;s=G}}while(0);u=(y|0)<0;w=(Q|0)<0;o=(L|0)!=0;h=(Q|0)<1;d=0-y|0;t=l;r:while(1){l=t;while(1){if(u)t=a[l+8>>2]|0;else t=l+d|0;t=t+m|0;if(w)t=a[t>>2]|0;do{if(!o)if(h){t=A1(B,t)|0;break}else{t=F4(B,t,Q)|0;break}else t=W5[L&127](A,B,t,W)|0}while(0);if(!t){E=140;break r}if((t|0)>=0)break;e=l+4|0;b=a[e>>2]|0;if(!b){E=121;break r}if(u)t=a[b+8>>2]|0;else t=b+d|0;t=t+m|0;if(w)t=a[t>>2]|0;do{if(!o)if(h){t=A1(B,t)|0;break}else{t=F4(B,t,Q)|0;break}else t=W5[L&127](A,B,t,W)|0}while(0);if((t|0)>=0){E=118;break}a[e>>2]=a[b>>2];a[b>>2]=l;a[f+4>>2]=b;l=a[b+4>>2]|0;if(!l){f=b;l=s;E=198;break i}else f=b}if((E|0)==118){E=0;if(!t){E=119;break}a[s>>2]=b;a[f+4>>2]=l;t=a[b>>2]|0;if(!t){f=l;l=b;E=198;break i}else{f=l;s=b;continue}}e=a[l>>2]|0;if(!e){E=139;break}if(u)t=a[e+8>>2]|0;else t=e+d|0;t=t+m|0;if(w)t=a[t>>2]|0;do{if(!o)if(h){t=A1(B,t)|0;break}else{t=F4(B,t,Q)|0;break}else t=W5[L&127](A,B,t,W)|0}while(0);if((t|0)>0){t=e+4|0;a[l>>2]=a[t>>2];a[t>>2]=l;a[s>>2]=e;t=a[e>>2]|0;if(!t){l=e;E=198;break i}else{s=e;continue}}if(!t){E=137;break}a[f+4>>2]=e;a[s>>2]=l;t=a[e+4>>2]|0;if(!t){f=e;E=198;break i}else{f=e;s=l}}if((E|0)==119){a[f+4>>2]=l;f=l;l=b;E=141;break}else if((E|0)==121){a[f+4>>2]=l;f=l;l=s;E=198;break}else if((E|0)==137){a[s>>2]=l;s=l;l=e;E=141;break}else if((E|0)==139){a[s>>2]=l;E=198;break}else if((E|0)==140)if(!l){l=s;E=198;break}else{E=141;break}}}while(0);do{if((E|0)==141){a[g>>2]=a[g>>2]|32768;t=l+4|0;a[s>>2]=a[t>>2];a[f+4>>2]=a[l>>2];if(!(i&516)){if(i&8|0){a[t>>2]=a[G>>2];a[l>>2]=0;a[G>>2]=l;E=169;break}if(i&16|0){E=G+4|0;a[l>>2]=a[E>>2];a[t>>2]=0;a[E>>2]=l;E=175;break}if(!v){r=f;E=180;break e}if(i&2049|0){if(a[(a[Z>>2]|0)+4>>2]&4|0){r=l;break}a[t>>2]=0;r=G+4|0;a[l>>2]=a[r>>2];a[r>>2]=l;r=l;E=205;break}if(!(i&32)){r=0;break A}if(!(a[(a[Z>>2]|0)+4>>2]&4)){a[r+4>>2]=0;I=G+4|0;a[r>>2]=a[I>>2];a[I>>2]=c;r=(a[z>>2]|0)+16|0;a[r>>2]=(a[r>>2]|0)+1;r=l;break}r=a[W+16>>2]|0;if(r|0)J5[r&127](A,n,W);if((a[I>>2]|0)<0){W5[a[A+12>>2]&127](A,c,0,W)|0;r=l}else r=l}else r=l}else if((E|0)==198){a[f+4>>2]=0;a[l>>2]=0;if(!(i&8))if(!(i&16)){if(i&516|0){r=f;break e}if(!(i&2049)){if(!(i&32)){n=0;r=f;break e}I=(a[z>>2]|0)+16|0;a[I>>2]=(a[I>>2]|0)+1}else{r=0;E=205}}else E=175;else E=169}}while(0);if((E|0)==169){l=G+4|0;r=a[l>>2]|0;if(!r){r=f;break}while(1){f=r+4|0;n=a[f>>2]|0;if(!n)break;a[f>>2]=a[n>>2];a[n>>2]=r;r=n}a[l>>2]=a[r>>2]}else if((E|0)==175){r=a[G>>2]|0;if(!r){r=f;break}while(1){f=a[r>>2]|0;if(!f)break;I=f+4|0;a[r>>2]=a[I>>2];a[I>>2]=r;r=f}a[G>>2]=a[r+4>>2]}else if((E|0)==205){t=W+12|0;l=a[t>>2]|0;c=(i&1|0)==0;if(!(c|(l|0)==0))n=y5[l&63](A,n,W)|0;do{if(n){if((y|0)>-1){r=n+y|0;E=215;break}r=W5[a[A+12>>2]&127](A,0,12,W)|0;if(r|0){a[r+8>>2]=n;break}if((a[t>>2]|0)!=0?(C=a[W+16>>2]|0,!(c|(C|0)==0)):0){J5[C&127](A,n,W);E=215}else E=215}else E=215}while(0);if((E|0)==215)if(!r){r=f;break}f=(a[z>>2]|0)+16|0;n=a[f>>2]|0;if((n|0)>-1)a[f>>2]=n+1}a[r+4>>2]=a[G>>2];a[r>>2]=a[G+4>>2];i:do{if(!((i&516|0)==0?1:(a[(a[Z>>2]|0)+4>>2]&8|0)==0)){b=(y|0)<0;if(b)f=a[r+8>>2]|0;else f=r+(0-y)|0;u=(Q|0)<0;f=f+m|0;if(u)f=a[f>>2]|0;c=(L|0)==0;s=(Q|0)<1;e=0-y|0;while(1){t=r+4|0;n=a[t>>2]|0;if(!n)break i;while(1){l=a[n>>2]|0;if(!l)break;G=l+4|0;a[n>>2]=a[G>>2];a[G>>2]=n;n=l}a[t>>2]=n;if(b)l=a[n+8>>2]|0;else l=n+e|0;l=l+m|0;if(u)l=a[l>>2]|0;do{if(c)if(s){l=A1(f,l)|0;break}else{l=F4(f,l,Q)|0;break}else l=W5[L&127](A,f,l,W)|0}while(0);if(l|0)break i;a[t>>2]=a[n>>2];a[n>>2]=r;r=n}}}while(0);a[(a[z>>2]|0)+4>>2]=r;if((y|0)<0){r=a[r+8>>2]|0;break A}else{r=r+(0-y)|0;break A}}}while(0);if((E|0)==180){if((y|0)<0)n=a[l+8>>2]|0;else n=l+(0-y)|0;f=a[W+16>>2]|0;if(!((i&2|0)==0|(f|0)==0))J5[f&127](A,n,W);if((a[I>>2]|0)<0)W5[a[A+12>>2]&127](A,l,0,W)|0;A=(a[z>>2]|0)+16|0;W=a[A>>2]|0;a[A>>2]=(W|0)<1?-1:W+-1|0}do{f=r+4|0;r=a[f>>2]|0}while((r|0)!=0);a[f>>2]=a[G>>2];a[(a[z>>2]|0)+4>>2]=a[G+4>>2];r=i&2|0?n:0}}while(0);k=Y;return r|0}function _k(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;if(a[a[A+8>>2]>>2]&4096|0)Pk(A,0)|0;f=(e|0)!=0;if(f){if(a[a[e+8>>2]>>2]&4096|0)Pk(e,0)|0;if((a[e+16>>2]|0)==(a[A+16>>2]|0)){i=e;r=7}else e=0}else{i=0;r=7}A:do{if((r|0)==7){while(1){if(!i)break;if((i|0)==(A|0)){e=0;break A}i=a[i+28>>2]|0;r=7}i=A+28|0;r=a[i>>2]|0;if(r|0){n=r+24|0;a[n>>2]=(a[n>>2]|0)+-1}a[A+32>>2]=0;a[i>>2]=0;if(f){a[i>>2]=e;a[A>>2]=28;n=e+24|0;a[n>>2]=(a[n>>2]|0)+1;break}else{a[A>>2]=a[a[A+16>>2]>>2];e=r;break}}}while(0);return e|0}function qk(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0;A:do{if(!(i&99)){if((i&516|0)==0?(r=a[(a[A+16>>2]|0)+4>>2]|0,!((i&384|0)!=0&(r&12|0)==0)):0){if(r&12|0){if(!(i&408)){r=0;break}k=(i&136|0)!=0;o=(i&272|0)!=0;b=0;f=0;r=0;w=A;while(1){if(!w)break;u=y5[a[a[w+16>>2]>>2]&63](w,e,i)|0;do{if(!u)n=b;else{l=a[w+4>>2]|0;t=a[l+4>>2]|0;c=a[l+20>>2]|0;n=u+(a[l>>2]|0)|0;if((t|0)<0)s=a[n>>2]|0;else s=n;if(r|0){do{if(!c)if((t|0)<1){n=A1(s,f)|0;break}else{n=F4(s,f,t)|0;break}else n=W5[c&127](w,s,f,l)|0}while(0);if(!(k&(n|0)<0|o&(n|0)>0)){n=b;break}}n=w;f=s;r=u}}while(0);b=n;w=a[w+28>>2]|0}a[A+32>>2]=b;break}if(!(i&24)){r=0;break}c=A+32|0;f=a[c>>2]|0;if(f){r=a[(a[f+4>>2]|0)+8>>2]|0;n=a[(a[f+8>>2]|0)+4>>2]|0;if((r|0)<0)r=a[n+8>>2]|0;else r=n+(0-r)|0;if((r|0)==(e|0))r=e;else{f=A;l=32}}else{f=A;l=32}do{if((l|0)==32){while(1){if(!f){l=33;break}r=y5[a[a[f+16>>2]>>2]&63](f,e,4)|0;if(r|0){l=36;break}f=a[f+28>>2]|0;l=32}if((l|0)==33){a[c>>2]=0;r=0;break A}else if((l|0)==36){a[c>>2]=f;break}}}while(0);t=(i<<4&128^128)+128|0;r=y5[a[a[f+16>>2]>>2]&63](f,r,i)|0;while(1){l=f+16|0;while(1){if(!r)break;else n=A;while(1){if((n|0)==(f|0))break A;if(y5[a[a[n+16>>2]>>2]&63](n,r,4)|0)break;n=a[n+28>>2]|0}r=y5[a[a[l>>2]>>2]&63](f,r,i)|0}f=a[f+28>>2]|0;a[c>>2]=f;if(!f){r=0;break A}r=y5[a[a[f+16>>2]>>2]&63](f,0,t)|0}}else f=A;while(1){if(!f){f=0;r=0;break}r=y5[a[a[f+16>>2]>>2]&63](f,e,i)|0;if(r|0)break;f=a[f+28>>2]|0}a[A+32>>2]=f}else r=y5[a[a[A+16>>2]>>2]&63](A,e,i)|0}while(0);return r|0}function $k(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0;n=A+32|0;f=y5[a[A>>2]&63](A,0,128)|0;do{if(!f){r=0;break}l=a[n>>2]|0;r=f;f=y5[a[A>>2]&63](A,f,8)|0;r=y5[e&63]((l|0)==0?A:l,r,i)|0}while((r|0)>=0);return r|0}function Ao(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;f=A+4|0;w=a[f>>2]|0;A:do{if(w)if(e){u=a[a[A+16>>2]>>2]|0;n=A+8|0;if(a[a[n>>2]>>2]&4096|0)Pk(A,0)|0;r=a[w+32>>2]|0;if(r|0?(W5[r&127](A,3,e,w)|0)<0:0){e=0;break}a[f>>2]=e;r=a[e+28>>2]|0;a[A+12>>2]=(r|0)==0?52:r;r=a[a[n>>2]>>2]|0;if(!(r&112)){do{if(!(r&2))if(!(r&3))if(!(i&1))break;else{e=w;break A}else if((i&3|0)==3){e=w;break A}else break;else if(i&2|0){e=w;break A}}while(0);l=xk(A)|0;r=a[n>>2]|0;b=a[r>>2]|0;a[r>>2]=b&-4097;a[r+4>>2]=0;a[r+16>>2]=0;e:do{if(b&3|0){b=a[r+8>>2]|0;f=b+(a[r+12>>2]<<2)|0;r=b;while(1){if(r>>>0>=f>>>0)break e;a[r>>2]=0;r=r+4|0}}}while(0);t=(i&2|0)==0;c=e+8|0;s=e+4|0;b=e+24|0;while(1){if(!l){e=w;break A}i=a[l>>2]|0;if(t){r=a[c>>2]|0;if((r|0)<0)r=a[l+8>>2]|0;else r=l+(0-r)|0;n=a[s>>2]|0;r=r+(a[e>>2]|0)|0;if((n|0)<0)r=a[r>>2]|0;f=a[b>>2]|0;if(!f)r=io(0,r,n)|0;else r=y5[f&63](A,r,e)|0;a[l+4>>2]=r}y5[u&63](A,l,32)|0;l=i}}else e=w}else e=w;else{a[f>>2]=e;w=a[e+28>>2]|0;a[A+12>>2]=(w|0)==0?52:w}}while(0);return e|0}function eo(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;A=(i|0)==0;do{if(!e)if(A)A=0;else A=Q2(i)|0;else if(A){L2(e);A=0;break}else{A=W2(e,i)|0;break}}while(0);return A|0}function io(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,a=0,l=0;a=e;if((i|0)>=1){l=e+i+-1|0;a=(l>>>0>>0?e:l)+(1-a)&-2;f=e;while(1){if(f>>>0>=l>>>0)break;A=U(((n[f>>0]|0)<<8)+A+(n[f+1>>0]|0)|0,17109811)|0;f=f+2|0}f=e+a|0;if(f>>>0>l>>>0)e=i;else{e=i;A=U(((n[f>>0]|0)<<8)+A|0,17109811)|0}}else{while(1){f=r[e>>0]|0;if(!(f<<24>>24))break;l=r[e+1>>0]|0;i=U(((f&255)<<8)+A+(l&255)|0,17109811)|0;A=i;e=e+(l<<24>>24?2:1)|0}e=e-a|0}return U(A+e|0,17109811)|0}function ro(A){A=A|0;var e=0;e=a[46935]|0;a[46935]=A;return e|0}function fo(A){A=A|0;var e=0;e=a[46936]|0;a[46936]=A;return e|0}function ao(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;r=k;k=k+16|0;f=r;a[f>>2]=i;i=no(A,e,f)|0;k=r;return i|0}function no(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0;n=k;k=k+16|0;r=n;f=(A|0)==3;l=f?a[46938]|0:(A|0)==2?1:A;a[46938]=l;t=a[46939]|0;a[46939]=t>>>0>l>>>0?t:l;do{if(l>>>0<(a[46936]|0)>>>0){A=a[46937]|0;if(!A){A=s6()|0;a[46937]=A;if(!A){A=1;break}}if(!f){w6(A)|0;A=a[46937]|0}o4(A,e,i)|0;A=0}else{if(a[46935]|0){lo(A,e,i);A=0;break}if(f)A=a[15712]|0;else{t=a[15712]|0;a[r>>2]=(A|0)==1?96349:96355;f3(t,96363,r)|0;A=t}o4(A,e,i)|0;A=0}}while(0);k=n;return A|0}function lo(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;if((a[46940]|0)==0?(f=Q2(a[4590]|0)|0,a[46940]=f,(f|0)==0):0)Q3(96368,a[15712]|0)|0;else r=4;do{if((r|0)==4){if((A|0)!=3){m5[a[46935]&63]((A|0)==1?96349:96355)|0;m5[a[46935]&63](97027)|0}while(1){A=k4(a[46940]|0,a[4590]|0,e,i)|0;r=a[4590]|0;if((A|0)>-1&(A|0)<(r|0)){r=7;break}r=r<<1;f=A+1|0;f=(r|0)>(f|0)?r:f;a[4590]=f;if(!(W2(a[46940]|0,f)|0)){r=9;break}}if((r|0)==7){m5[a[46935]&63](a[46940]|0)|0;break}else if((r|0)==9){Q3(96368,a[15712]|0)|0;break}}}while(0);return}function to(A,e){A=A|0;e=e|0;var i=0,r=0;i=k;k=k+16|0;r=i;a[r>>2]=e;no(1,A,r)|0;k=i;return}function co(A,e,i){A=A|0;e=e|0;i=i|0;var f=0;if(!i){i=(e|0)==0?1024:e;e=i;i=Q2(i)|0;f=1}else f=0;a[A+12>>2]=f;a[A>>2]=i;a[A+8>>2]=i+e;a[A+4>>2]=i;r[i>>0]=0;return}function so(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;l=A+8|0;f=a[A>>2]|0;n=(a[l>>2]|0)-f|0;r=n<<1;n=n+e|0;r=n>>>0>r>>>0?n:r;n=A+4|0;e=f;f=(a[n>>2]|0)-f|0;i=A+12|0;if(!(a[i>>2]|0)){t=Q2(r)|0;W6(t|0,e|0,f|0)|0;a[i>>2]=1;e=t}else e=W2(e,r)|0;a[A>>2]=e;a[n>>2]=e+f;a[l>>2]=e+r;return 0}function bo(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;f=A+4|0;r=a[f>>2]|0;if((r+i|0)>>>0>(a[A+8>>2]|0)>>>0){so(A,i)|0;r=a[f>>2]|0}W6(r|0,e|0,i|0)|0;a[f>>2]=(a[f>>2]|0)+i;return i|0}function uo(A,e){A=A|0;e=e|0;return bo(A,e,P2(e)|0)|0}function wo(A){A=A|0;if(a[A+12>>2]|0)L2(a[A>>2]|0);return}function ko(A){A=A|0;var e=0,i=0;e=A+4|0;i=a[e>>2]|0;if(i>>>0>(a[A>>2]|0)>>>0){a[e>>2]=i+-1;A=n[i>>0]|0}else A=-1;return A|0}function oo(A,e,i){A=A|0;e=e|0;i=i|0;lB(a[46942]|0,a[e+8>>2]|0)|0;lB(a[46942]|0,a[e+12>>2]|0)|0;fd(a[46942]|0,e);return}function ho(A,e){A=A|0;e=e|0;var i=0;i=Ud(A,96416,0)|0;if((e|0)!=0&(i|0)==0){Bo(A);i=Ud(A,96416,0)|0}return i|0}function Bo(A){A=A|0;var e=0,i=0,r=0;r=Zd(A)|0;Qg(r,r,107,0,1)|0;i=cd(r)|0;while(1){if(!i)break;vo(A,i);e=Oo(r,i)|0;while(1){if(!e)break;Eo(A,e);e=_o(r,e)|0}i=sd(r,i)|0}return}function go(A){A=A|0;var e=0;e=A+24|0;r[e>>0]=r[e>>0]|64;mo(A);e=HB(A)|0;Io((e|0)==0?A:e,A);return}function vo(A,e){A=A|0;e=e|0;var i=0;i=Co(e)|0;if(!((i|0)!=0?(a[i+8>>2]|0)!=0:0))Io(A,e);return}function Eo(A,e){A=A|0;e=e|0;var i=0;i=Co(e)|0;if(!((i|0)!=0?(a[i+8>>2]|0)!=0:0))Io(A,e);return}function Co(A){A=A|0;return Ud(A,96404,0)|0}function Io(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;i=Td(e,96404,16,0)|0;f=Zo(A,a[e>>2]&3)|0;r=i+8|0;A:do{if(!(a[r>>2]|0)){A=Zd(A)|0;a[r>>2]=Zo(A,a[e>>2]&3)|0;A=Go(e)|0;i=i+12|0;a[i>>2]=rd(Id(e)|0,((A|0)>4?A:4)<<2)|0;A=y5[a[f>>2]&63](f,0,128)|0;while(1){if(!A)break A;r=Id(e)|0;r=aB(r,a[A+12>>2]|0)|0;a[(a[i>>2]|0)+(a[A+16>>2]<<2)>>2]=r;A=y5[a[f>>2]&63](f,A,8)|0}}}while(0);return}function Zo(A,e){A=A|0;e=e|0;var i=0,r=0;r=k;k=k+16|0;i=r;A=ho(A,0)|0;A:do{if(!A)A=0;else switch(e|0){case 0:{A=a[A+16>>2]|0;break A}case 1:{A=a[A+8>>2]|0;break A}case 2:case 3:{A=a[A+12>>2]|0;break A}default:{a[i>>2]=e;ao(1,96429,i)|0;A=0;break A}}}while(0);k=r;return A|0}function Go(A){A=A|0;var e=0;e=Zd(Id(A)|0)|0;A=Zo(e,a[A>>2]&3)|0;if(!A)A=0;else A=Sk(A)|0;return A|0}function mo(A){A=A|0;var e=0,i=0,r=0,f=0;i=Td(A,96416,20,0)|0;r=i+8|0;a[r>>2]=jB(A,18364,a[4589]|0)|0;f=i+12|0;a[f>>2]=jB(A,18364,a[4589]|0)|0;i=i+16|0;a[i>>2]=jB(A,18364,a[4589]|0)|0;e=HB(A)|0;if(!e){e=a[46941]|0;if(!((e|0)==0|(e|0)==(A|0))){e=ho(e,0)|0;Qo(a[e+8>>2]|0,a[r>>2]|0,A,1);Qo(a[e+12>>2]|0,a[f>>2]|0,A,2);Qo(a[e+16>>2]|0,a[i>>2]|0,A,0)}}else{A=ho(e,0)|0;_k(a[r>>2]|0,a[A+8>>2]|0)|0;_k(a[f>>2]|0,a[A+12>>2]|0)|0;_k(a[i>>2]|0,a[A+16>>2]|0)|0}return}function Qo(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0;n=y5[a[A>>2]&63](A,0,128)|0;while(1){if(!n)break;l=Lo(i,a[n+8>>2]|0,a[n+12>>2]|0,a[n+16>>2]|0,f)|0;r[l+22>>0]=r[n+22>>0]|0;r[l+21>>0]=r[n+21>>0]|0;y5[a[e>>2]&63](e,l,1)|0;n=y5[a[A>>2]&63](A,n,8)|0}return}function Lo(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0;l=rd(A,24)|0;r[l+20>>0]=n;a[l+8>>2]=aB(A,e)|0;a[l+12>>2]=aB(A,i)|0;a[l+16>>2]=f;return l|0}function yo(A,e){A=A|0;e=e|0;var i=0,r=0;i=k;k=k+32|0;r=i;a[r+8>>2]=e;e=y5[a[A>>2]&63](A,r,4)|0;k=i;return e|0}function Wo(A,e){A=A|0;e=e|0;var i=0;i=_k(A,0)|0;e=yo(A,e)|0;_k(A,i)|0;return e|0}function zo(A,e){A=A|0;e=e|0;A=Co(A)|0;if(!A)A=0;else A=yo(a[A+8>>2]|0,e)|0;return A|0}function Yo(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0;l=k;k=k+16|0;n=l;if(!A){A=a[46941]|0;if(!A){r[n>>0]=r[18400]|0;r[n+1>>0]=r[18401]|0;r[n+2>>0]=r[18402]|0;r[n+3>>0]=r[18403]|0;A=kh(0,n,0)|0;a[46941]=A}}if(!f)A=Mo(A,e,i)|0;else A=Do(A,e,i,f)|0;k=l;return A|0}function Do(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0;t=Zd(A)|0;ho(A,1)|0;n=Zo(A,e)|0;f=Wo(n,i)|0;A:do{if(!f){f=yo(n,i)|0;if(f|0){f=Lo(A,i,r,a[f+16>>2]|0,e)|0;y5[a[n>>2]&63](n,f,1)|0;l=16;break}n=Zo(t,e)|0;f=Lo(A,i,r,Sk(n)|0,e)|0;y5[a[n>>2]&63](n,f,1)|0;switch(e|0){case 0:{Qg(t,t,57,f,1)|0;l=16;break A}case 1:{i=cd(t)|0;while(1){if(!i){l=16;break A}Fo(A,i,f);i=sd(t,i)|0}}case 2:case 3:{n=cd(t)|0;while(1){if(!n){l=16;break A}i=Oo(t,n)|0;while(1){if(!i)break;Fo(A,i,f);i=_o(t,i)|0}n=sd(t,n)|0}}default:break A}}else{l=f+12|0;lB(A,a[l>>2]|0)|0;a[l>>2]=aB(A,r)|0;l=16}}while(0);if((l|0)==16)if((e|0)==0&(f|0)!=0)Vo(A,f,r)|0;Qd(A,A,f);return f|0}function Mo(A,e,i){A=A|0;e=e|0;i=i|0;A=Zo(A,e)|0;if(!A)A=0;else A=yo(A,i)|0;return A|0}function Fo(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;e=Co(e)|0;f=i+16|0;r=a[f>>2]|0;if((r|0)>3){n=a[A+64>>2]|0;e=e+12|0;r=r<<2;a[e>>2]=W5[a[(a[n>>2]|0)+8>>2]&127](a[n+12>>2]|0,a[e>>2]|0,r,r+4|0)|0}else e=e+12|0;n=aB(A,a[i+12>>2]|0)|0;a[(a[e>>2]|0)+(a[f>>2]<<2)>>2]=n;return}function Vo(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0;l=Id(A)|0;n=(Co(A)|0)+12|0;t=e+16|0;lB(l,a[(a[n>>2]|0)+(a[t>>2]<<2)>>2]|0)|0;f=aB(l,i)|0;a[(a[n>>2]|0)+(a[t>>2]<<2)>>2]=f;do{if(!(a[A>>2]&3)){r=a[(ho(l,0)|0)+16>>2]|0;f=e+8|0;n=Wo(r,a[f>>2]|0)|0;if(!n){t=Lo(l,a[f>>2]|0,i,a[t>>2]|0,a[A>>2]&3)|0;y5[a[r>>2]&63](r,t,1)|0;break}else{t=n+12|0;lB(l,a[t>>2]|0)|0;a[t>>2]=aB(l,i)|0;break}}}while(0);Qd(l,A,e);return 0}function Jo(A,e,i){A=A|0;e=e|0;i=i|0;A=Zo(A,e)|0;do{if(A){e=a[A>>2]|0;if(!i){A=y5[e&63](A,0,128)|0;break}else{A=y5[e&63](A,i,8)|0;break}}else A=0}while(0);return A|0}function po(A){A=A|0;var e=0;a[46942]=A;e=Co(A)|0;if(e|0){No(A,e);Pd(A,a[e>>2]|0)|0}e=ho(A,0)|0;if(e)if(((SB(A,a[e+8>>2]|0)|0)==0?(SB(A,a[e+12>>2]|0)|0)==0:0)?(SB(A,a[e+16>>2]|0)|0)==0:0){Pd(A,a[e>>2]|0)|0;e=0}else e=1;else e=0;return e|0}function No(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;f=Id(A)|0;r=Go(A)|0;e=e+12|0;A=0;while(1){i=a[e>>2]|0;if((A|0)>=(r|0))break;lB(f,a[i+(A<<2)>>2]|0)|0;A=A+1|0}fd(f,i);return}function Ro(A){A=A|0;var e=0;e=Co(A)|0;if(e|0){No(A,e);Pd(A,96404)|0}return}function Xo(A){A=A|0;var e=0;e=Co(A)|0;if(e|0){No(A,e);Pd(A,96404)|0}return}function Ho(A,e){A=A|0;e=e|0;e=zo(A,e)|0;if(!e)e=0;else{A=a[(Co(A)|0)+12>>2]|0;e=a[A+(a[e+16>>2]<<2)>>2]|0}return e|0}function Uo(A,e){A=A|0;e=e|0;A=a[(Co(A)|0)+12>>2]|0;return a[A+(a[e+16>>2]<<2)>>2]|0}function xo(A,e,i){A=A|0;e=e|0;i=i|0;e=zo(A,e)|0;if(!e)e=-1;else{Vo(A,e,i)|0;e=0}return e|0}function To(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0;f=Id(A)|0;f=Yo(f,a[A>>2]&3,e,0)|0;if(!f){f=Id(A)|0;f=Yo(f,a[A>>2]&3,e,r)|0}Vo(A,f,i)|0;return 0}function jo(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;n=Id(A)|0;f=a[A>>2]|0;A:do{if(!((a[e>>2]^f)&3)){i=1;r=0;while(1){r=Jo(n,f&3,r)|0;if(!r)break A;i=zo(e,a[r+8>>2]|0)|0;if(!i){i=1;break A}f=Uo(A,r)|0;Vo(e,i,f)|0;if(tB(f)|0)cB(Uo(e,i)|0);i=0;f=a[A>>2]|0}}else i=1}while(0);return i|0}function Po(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0;A=a[e+40>>2]|0;f=a[i+40>>2]|0;if((A|0)==(f|0)){r=(a[e>>2]|0)>>>4;A=(a[i>>2]|0)>>>4;if(r>>>0>=A>>>0)if(r>>>0>A>>>0)A=1;else n=6;else A=-1}else{r=(a[A>>2]|0)>>>4;A=(a[f>>2]|0)>>>4;if(r>>>0>=A>>>0)if(r>>>0>A>>>0)A=1;else n=6;else A=-1}if((n|0)==6)A=0;return A|0}function So(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0;A=(a[e+40>>2]|0)+8|0;n=a[A>>2]|0;A=a[A+4>>2]|0;f=(a[i+40>>2]|0)+8|0;r=a[f>>2]|0;f=a[f+4>>2]|0;do{if(!(A>>>0>>0|(A|0)==(f|0)&n>>>0>>0))if(A>>>0>f>>>0|(A|0)==(f|0)&n>>>0>r>>>0)A=1;else{r=e+8|0;A=a[r>>2]|0;r=a[r+4>>2]|0;if(!((A|0)==0&(r|0)==0)?(t=i+8|0,l=a[t>>2]|0,t=a[t+4>>2]|0,!((l|0)==0&(t|0)==0)):0){if(r>>>0>>0|(r|0)==(t|0)&A>>>0>>0){A=-1;break}if(r>>>0>t>>>0|(r|0)==(t|0)&A>>>0>l>>>0){A=1;break}}A=0}else A=-1}while(0);return A|0}function Oo(A,e){A=A|0;e=e|0;var i=0;e=Ko(A,e)|0;if(!e)e=0;else{i=A+44|0;A=e+32|0;Pk(a[i>>2]|0,a[A>>2]|0)|0;e=a[i>>2]|0;e=y5[a[e>>2]&63](e,0,128)|0;a[A>>2]=Uk(a[i>>2]|0)|0}return e|0}function Ko(A,e){A=A|0;e=e|0;var i=0,r=0;r=k;k=k+48|0;i=r;if((a[e+24>>2]|0)==(A|0))A=e+28|0;else{a[i+16>>2]=e;A=a[A+40>>2]|0;A=y5[a[A>>2]&63](A,i,4)|0}k=r;return A|0}function _o(A,e){A=A|0;e=e|0;var i=0,r=0;i=Ko(A,a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)|0;if(!i)A=0;else{r=A+44|0;i=i+32|0;Pk(a[r>>2]|0,a[i>>2]|0)|0;A=a[r>>2]|0;A=y5[a[A>>2]&63](A,e,8)|0;a[i>>2]=Uk(a[r>>2]|0)|0}return A|0}function qo(A,e){A=A|0;e=e|0;var i=0;e=Ko(A,e)|0;if(!e)e=0;else{i=A+44|0;A=e+28|0;Pk(a[i>>2]|0,a[A>>2]|0)|0;e=a[i>>2]|0;e=y5[a[e>>2]&63](e,0,128)|0;a[A>>2]=Uk(a[i>>2]|0)|0}return e|0}function $o(A,e){A=A|0;e=e|0;var i=0,r=0;i=Ko(A,a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)|0;if(!i)A=0;else{r=A+44|0;i=i+28|0;Pk(a[r>>2]|0,a[i>>2]|0)|0;A=a[r>>2]|0;A=y5[a[A>>2]&63](A,e,8)|0;a[i>>2]=Uk(a[r>>2]|0)|0}return A|0}function Ah(A,e){A=A|0;e=e|0;var i=0;i=Oo(A,e)|0;if(!i)i=qo(A,e)|0;return i|0}function eh(A,e,i){A=A|0;e=e|0;i=i|0;A:do{if((a[e>>2]&3|0)==2){e=_o(A,e)|0;if(!e){e=0;do{if(!e)e=qo(A,i)|0;else e=$o(A,e)|0;if(!e){e=0;break A}}while((a[e+40>>2]|0)==(i|0))}}else do{e=$o(A,e)|0;if(!e){e=0;break A}}while((a[e+40>>2]|0)==(i|0))}while(0);return e|0}function ih(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,l=0;l=k;k=k+32|0;r=l+16|0;f=l;if((Gh(A)|0)!=0?(a[f>>2]=0,a[f+4>>2]=0,a[f+8>>2]=0,a[f+12>>2]=0,a[r>>2]=a[f>>2],a[r+4>>2]=a[f+4>>2],a[r+8>>2]=a[f+8>>2],a[r+12>>2]=a[f+12>>2],(nh(A,e,i,r)|0)!=0):0)r=0;else r=((n[A+24>>0]|0)>>>2&1^1)&255|(e|0)!=(i|0);k=l;return r|0}function rh(A,e){A=A|0;e=e|0;ah(A,e);return}function fh(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0,t=0,c=0,s=0,b=0,u=0;kd(A,e,1)|0;kd(A,i,1)|0;l=rd(A,96)|0;t=l+48|0;b=dh(A,2)|0;c=a[t>>2]|0;s=a[l>>2]|0;u=l+8|0;a[u>>2]=f;a[u+4>>2]=n;u=l+56|0;a[u>>2]=f;a[u+4>>2]=n;n=b<<4;a[l>>2]=s&12|n|2;a[t>>2]=c&12|n|3;a[l+88>>2]=e;a[l+40>>2]=i;ah(A,l);if(r[A+24>>0]&64){Td(l,96404,16,0)|0;Eo(A,l)}Gd(A,l);return l|0}function ah(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0;t=k;k=k+16|0;i=t;l=a[e>>2]&3;n=(l|0)==2?e:e+-48|0;l=(l|0)==3?e:e+48|0;r=a[l+40>>2]|0;f=a[n+40>>2]|0;while(1){if(!A)break;a[i>>2]=a[e>>2];a[i+4>>2]=a[e+4>>2];a[i+8>>2]=a[e+8>>2];a[i+12>>2]=a[e+12>>2];if(nh(A,r,f,i)|0)break;c=Ko(A,r)|0;b=A+44|0;lh(a[b>>2]|0,c+32|0,n);s=A+48|0;lh(a[s>>2]|0,c+24|0,n);c=Ko(A,f)|0;lh(a[b>>2]|0,c+28|0,l);lh(a[s>>2]|0,c+20|0,l);A=HB(A)|0}k=t;return}function nh(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0;l=k;k=k+48|0;f=l;if(!((e|0)==0|(i|0)==0)?(a[f>>2]=a[r>>2],a[f+4>>2]=a[r+4>>2],a[f+8>>2]=a[r+8>>2],a[f+12>>2]=a[r+12>>2],a[f+40>>2]=e,n=Ko(A,i)|0,(n|0)!=0):0){r=A+48|0;n=n+20|0;Pk(a[r>>2]|0,a[n>>2]|0)|0;A=a[r>>2]|0;A=y5[a[A>>2]&63](A,f,4)|0;a[n>>2]=Uk(a[r>>2]|0)|0}else A=0;k=l;return A|0}function lh(A,e,i){A=A|0;e=e|0;i=i|0;Pk(A,a[e>>2]|0)|0;y5[a[A>>2]&63](A,i,1)|0;a[e>>2]=Uk(A)|0;return}function th(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;u=k;k=k+48|0;t=u+24|0;s=u+16|0;c=u;do{if(!(Dh(A,2,r,s,0)|0))if(!r){if(f|0?(Gh(A)|0)==0:0){b=18;break}a[c>>2]=0;a[c+4>>2]=0;a[c+8>>2]=0;a[c+12>>2]=0;b=7}else b=17;else{w=c;a[w>>2]=0;a[w+4>>2]=0;w=s;n=a[w+4>>2]|0;b=c+8|0;a[b>>2]=a[w>>2];a[b+4>>2]=n;a[c>>2]=2;b=7}}while(0);A:do{if((b|0)==7){a[t>>2]=a[c>>2];a[t+4>>2]=a[c+4>>2];a[t+8>>2]=a[c+8>>2];a[t+12>>2]=a[c+12>>2];n=nh(A,e,i,t)|0;e:do{if(!n){if(Zh(A)|0?(a[t>>2]=a[c>>2],a[t+4>>2]=a[c+4>>2],a[t+8>>2]=a[c+8>>2],a[t+12>>2]=a[c+12>>2],l=nh(A,i,e,t)|0,l|0):0){n=l;break}do{if(f|0){n=Zd(A)|0;a[t>>2]=a[c>>2];a[t+4>>2]=a[c+4>>2];a[t+8>>2]=a[c+8>>2];a[t+12>>2]=a[c+12>>2];n=nh(n,e,i,t)|0;if(!n){if(!(Zh(A)|0))break;n=Zd(A)|0;a[t>>2]=a[c>>2];a[t+4>>2]=a[c+4>>2];a[t+8>>2]=a[c+8>>2];a[t+12>>2]=a[c+12>>2];n=nh(n,i,e,t)|0;if(!n)break}rh(A,n);break e}}while(0);b=17;break A}}while(0)}}while(0);if((b|0)==17)if(!f)n=0;else b=18;if((b|0)==18)if((ih(A,e,i)|0)!=0?(Dh(A,2,r,s,1)|0)!=0:0){n=s;n=fh(A,e,i,a[n>>2]|0,a[n+4>>2]|0)|0;Jh(A,2,n)}else n=0;k=u;return n|0}function ch(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0;i=(a[e>>2]&3|0)==3;n=i?e+-48|0:e;i=i?e:e+48|0;e=a[n+40>>2]|0;l=Ko(A,a[i+40>>2]|0)|0;f=A+44|0;sh(a[f>>2]|0,l+32|0,n);r=A+48|0;sh(a[r>>2]|0,l+24|0,n);e=Ko(A,e)|0;sh(a[f>>2]|0,e+28|0,i);sh(a[r>>2]|0,e+20|0,i);return}function sh(A,e,i){A=A|0;e=e|0;i=i|0;Pk(A,a[e>>2]|0)|0;y5[a[A>>2]&63](A,i,2)|0;a[e>>2]=Uk(A)|0;return}function bh(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0;i=k;k=k+16|0;f=i;e=(a[e>>2]&3|0)==2?e:e+-48|0;n=a[e>>2]&3;l=a[((n|0)==3?e:e+48|0)+40>>2]|0;n=a[((n|0)==2?e:e+-48|0)+40>>2]|0;a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];if(nh(A,l,n,f)|0){if((Zd(A)|0)==(A|0)){if(r[A+24>>0]&64)Xo(e);yd(A,e);$d(e);l=e+8|0;Fh(A,2,a[l>>2]|0,a[l+4>>2]|0)}if(!(Qg(A,e,58,0,0)|0))if((Zd(A)|0)==(A|0)){fd(A,e);e=0}else e=0;else e=-1}else e=-1;k=i;return e|0}function uh(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0;l=k;k=k+16|0;r=l;f=kd(A,a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0,i)|0;n=kd(A,a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,i)|0;do{if((f|0)!=0&(n|0)!=0){a[r>>2]=a[e>>2];a[r+4>>2]=a[e+4>>2];a[r+8>>2]=a[e+8>>2];a[r+12>>2]=a[e+12>>2];r=nh(A,f,n,r)|0;f=(r|0)==0;if(!((i|0)!=0&f)){if(f)break}else{ah(A,e);r=e}i=a[r>>2]&3;k=l;return((i|0)==(a[e>>2]&3|0)?r:r+(((i|0)==3?-1:1)*48|0)|0)|0}}while(0);k=l;return 0}function wh(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;e=e+8|0;r=i+8|0;r=B6(a[e>>2]|0,a[e+4>>2]|0,a[r>>2]|0,a[r+4>>2]|0)|0;return((r|0)==0?0:r>>31|1)|0}function kh(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0;l=k;k=k+16|0;n=l;c=oh(i)|0;f=Q5[a[(a[c>>2]|0)+4>>2]&127](a[c+12>>2]|0,72)|0;a[f>>2]=a[f>>2]&-4;t=f+64|0;a[t>>2]=c;s=f+24|0;e=a[e>>2]|0;a[s>>2]=e;r[s>>0]=e&255|8;a[f+60>>2]=f;i=Q5[a[a[c+4>>2]>>2]&127](f,i)|0;a[(a[t>>2]|0)+16>>2]=i;if(Dh(f,0,A,n,1)|0){t=n;c=a[t+4>>2]|0;s=f+8|0;a[s>>2]=a[t>>2];a[s+4>>2]=c}s=hh(f)|0;Jh(s,0,f);k=l;return s|0}function oh(A){A=A|0;var e=0,i=0,f=0,n=0;e=(A|0)!=0;if(e){i=a[A>>2]|0;i=(i|0)==0?18736:i}else i=18736;n=m5[a[i>>2]&63](A)|0;f=Q5[a[i+4>>2]&127](n,80)|0;a[f>>2]=i;a[f+12>>2]=n;if(e){n=a[A+4>>2]|0;a[f+4>>2]=(n|0)==0?18612:n;A=a[A+8>>2]|0;A=(A|0)==0?18712:A}else{a[f+4>>2]=18612;A=18712}a[f+8>>2]=A;r[f+52>>0]=1;return f|0}function hh(A){A=A|0;var e=0,i=0;a[A+36>>2]=jB(A,18792,a[4589]|0)|0;a[A+40>>2]=jB(A,18756,a[4589]|0)|0;e=(Zd(A)|0)==(A|0);a[A+44>>2]=jB(A,e?18404:18440,a[4589]|0)|0;e=(Zd(A)|0)==(A|0);a[A+48>>2]=jB(A,e?18476:18512,a[4589]|0)|0;a[A+52>>2]=jB(A,18548,a[4589]|0)|0;e=HB(A)|0;if(!((e|0)!=0?(i=dh(e,0)|0,a[A>>2]=a[A>>2]&15|i<<4,i=a[e+52>>2]|0,y5[a[i>>2]&63](i,A,1)|0,!(r[e+24>>0]&64)):0))go(A);Gd(A,A);return A|0}function dh(A,e){A=A|0;e=e|0;var i=0;i=(a[A+64>>2]|0)+24+(e<<3)|0;e=i;e=d6(a[e>>2]|0,a[e+4>>2]|0,1,0)|0;A=L;a[i>>2]=e;a[i+4>>2]=A;L=A;return e|0}function Bh(A){A=A|0;var e=0,i=0,f=0,n=0;f=HB(A)|0;n=(f|0)==0;if(n?(e=A+64|0,(a[(a[a[e>>2]>>2]|0)+16>>2]|0)!=0):0){yd(A,A);n=A+8|0;Fh(A,0,a[n>>2]|0,a[n+4>>2]|0);e=a[e>>2]|0;F5[a[(a[e>>2]|0)+16>>2]&127](a[e+12>>2]|0);e=0}else i=4;do{if((i|0)==4){e=RB(A)|0;while(1){if(!e)break;i=XB(e)|0;Bh(e)|0;e=i}e=cd(A)|0;while(1){if(!e)break;i=sd(A,e)|0;Ed(A,e)|0;e=i}jh(A);yd(A,A);if(((((SB(A,a[A+40>>2]|0)|0)==0?(SB(A,a[A+36>>2]|0)|0)==0:0)?(SB(A,a[A+48>>2]|0)|0)==0:0)?(SB(A,a[A+44>>2]|0)|0)==0:0)?(SB(A,a[A+52>>2]|0)|0)==0:0){if(r[A+24>>0]&64?po(A)|0:0){e=-1;break}$d(A);i=A+8|0;Fh(A,0,a[i>>2]|0,a[i+4>>2]|0);if(!n){UB(f,A)|0;fd(f,A);e=0;break}e=A+64|0;while(1){i=a[e>>2]|0;f=a[i+48>>2]|0;if(!f)break;Yd(A,a[f>>2]|0)|0}F5[a[(a[i+4>>2]|0)+20>>2]&127](a[i+16>>2]|0);if(!(AB(A)|0)){e=a[e>>2]|0;n=a[e+12>>2]|0;f=(a[e>>2]|0)+12|0;V5[a[f>>2]&63](n,A);V5[a[f>>2]&63](n,e);e=0}else e=-1}else e=-1}}while(0);return e|0}function gh(A){A=A|0;return Sk(a[A+40>>2]|0)|0}function vh(A){A=A|0;var e=0,i=0,r=0;e=0;i=cd(A)|0;while(1){if(!i)break;r=(Eh(A,i,0,1)|0)+e|0;e=r;i=sd(A,i)|0}return e|0}function Eh(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0;f=Ko(A,e)|0;if(f){if(!r)e=0;else e=Ch(a[A+44>>2]|0,f+32|0)|0;if(i)e=(Ch(a[A+44>>2]|0,f+28|0)|0)+e|0}else e=0;return e|0}function Ch(A,e){A=A|0;e=e|0;var i=0;Pk(A,a[e>>2]|0)|0;i=Sk(A)|0;a[e>>2]=Uk(A)|0;return i|0}function Ih(A){A=A|0;return r[A+24>>0]&1|0}function Zh(A){A=A|0;return(Ih(A)|0)==0|0}function Gh(A){A=A|0;return(n[A+24>>0]|0)>>>1&1|0}function mh(A,e){A=A|0;e=e|0;return A|0}function Qh(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;if(!i){f=1392;i=a[f>>2]|0;f=a[f+4>>2]|0;a[r>>2]=i;a[r+4>>2]=f;f=d6(i|0,f|0,2,0)|0;r=1392;a[r>>2]=f;a[r+4>>2]=L}else{if(!f)A=iB(A,i)|0;else A=aB(A,i)|0;a[r>>2]=A;a[r+4>>2]=0}return 1}function Lh(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;return 0}function yh(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;if((i&1|0)==0&0==0)lB(A,i)|0;return}function Wh(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;return((i&1|0)==0&0==0?i:0)|0}function zh(A){A=A|0;return}function Yh(A,e,i){A=A|0;e=e|0;i=i|0;return}function Dh(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0,t=0,c=0;t=(i|0)!=0;do{if(t){if((r[i>>0]|0)!=37?(l=a[A+64>>2]|0,l=z5[a[(a[l+4>>2]|0)+4>>2]&127](a[l+16>>2]|0,e,i,f,n)|0,l|0):0)break;l=ph(A,e,i,f)|0;if(!l)c=5}else c=5}while(0);if((c|0)==5)if(n){l=a[A+64>>2]|0;l=z5[a[(a[l+4>>2]|0)+4>>2]&127](a[l+16>>2]|0,e,0,f,n)|0;if(t&(l|0)!=0){c=f;Nh(A,e,i,a[c>>2]|0,a[c+4>>2]|0)}}else l=0;return l|0}function Mh(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;A=a[A+64>>2]|0;return W5[a[(a[A+4>>2]|0)+8>>2]&127](a[A+16>>2]|0,e,i,r)|0}function Fh(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;xh(A,e,i,r)|0;A=a[A+64>>2]|0;N5[a[(a[A+4>>2]|0)+12>>2]&31](a[A+16>>2]|0,e,i,r);return}function Vh(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0;l=k;k=k+16|0;n=l;i=Id(A)|0;f=A+8|0;e=f;e=Hh(i,a[A>>2]&3,a[e>>2]|0,a[e+4>>2]|0)|0;do{if(!e){e=a[i+64>>2]|0;i=a[(a[e+4>>2]|0)+16>>2]|0;if(i|0?(r=f,r=W5[i&127](a[e+16>>2]|0,a[A>>2]&3,a[r>>2]|0,a[r+4>>2]|0)|0,r|0):0){e=r;break}if((a[A>>2]&3|0)==2)e=0;else{r=a[f>>2]|0;f=a[f+4>>2]|0;a[n>>2]=37;e=n+8|0;a[e>>2]=r;a[e+4>>2]=f;S4(194773,96456,n)|0;e=194773}}}while(0);k=l;return e|0}function Jh(A,e,i){A=A|0;e=e|0;i=i|0;A=a[A+64>>2]|0;J5[a[(a[A+4>>2]|0)+24>>2]&127](a[A+16>>2]|0,e,i);return}function ph(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0;t=k;k=k+32|0;l=t;e=a[(a[A+64>>2]|0)+56+(((e|0)==3?2:e)<<2)>>2]|0;if(((e|0)!=0?(f=iB(A,i)|0,(f|0)!=0):0)?(a[l+24>>2]=f,n=y5[a[e>>2]&63](e,l,4)|0,(n|0)!=0):0){i=n+16|0;l=a[i+4>>2]|0;e=r;a[e>>2]=a[i>>2];a[e+4>>2]=l;e=1}else e=0;k=t;return e|0}function Nh(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0;l=rd(A,32)|0;n=l+16|0;a[n>>2]=r;a[n+4>>2]=f;a[l+24>>2]=aB(A,i)|0;r=(e|0)==3?2:e;n=A+64|0;i=a[n>>2]|0;e=a[i+56+(r<<2)>>2]|0;if(!e){f=jB(A,18640,a[4589]|0)|0;a[(a[n>>2]|0)+56+(r<<2)>>2]=f;e=a[n>>2]|0}else{f=e;e=i}e=a[e+68+(r<<2)>>2]|0;if(!e){e=jB(A,18676,a[4589]|0)|0;a[(a[n>>2]|0)+68+(r<<2)>>2]=e}y5[a[f>>2]&63](f,l,1)|0;y5[a[e>>2]&63](e,l,1)|0;return}function Rh(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;A=e+16|0;e=a[A>>2]|0;A=a[A+4>>2]|0;i=i+16|0;r=a[i>>2]|0;i=a[i+4>>2]|0;return(A>>>0>i>>>0|(A|0)==(i|0)&e>>>0>r>>>0?1:(A>>>0>>0|(A|0)==(i|0)&e>>>0>>0)<<31>>31)|0}function Xh(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;e=a[e+24>>2]|0;r=a[i+24>>2]|0;return(e>>>0>r>>>0?1:(e>>>0>>0)<<31>>31)|0}function Hh(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;A=Uh(A,e,i,r)|0;if(!A)A=0;else A=a[A+24>>2]|0;return A|0}function Uh(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0;n=k;k=k+32|0;f=n;A=a[(a[A+64>>2]|0)+68+(((e|0)==3?2:e)<<2)>>2]|0;if(!A)A=0;else{e=f+16|0;a[e>>2]=i;a[e+4>>2]=r;A=y5[a[A>>2]&63](A,f,4)|0}k=n;return A|0}function xh(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0;f=(e|0)==3?2:e;e=Uh(A,f,i,r)|0;if(!e)e=0;else{r=A+64|0;i=a[(a[r>>2]|0)+56+(f<<2)>>2]|0;y5[a[i>>2]&63](i,e,2)|0;r=a[(a[r>>2]|0)+68+(f<<2)>>2]|0;y5[a[r>>2]&63](r,e,2)|0;lB(A,a[e+24>>2]|0)|0;fd(A,e);e=1}return e|0}function Th(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0;a[46942]=A;n=a[A+64>>2]|0;f=0;while(1){if((f|0)==3)break;l=n+56+(f<<2)|0;e=a[l>>2]|0;A:do{if(e|0){e=y5[a[e>>2]&63](e,0,128)|0;while(1){if(!e)break A;i=a[l>>2]|0;i=y5[a[i>>2]&63](i,e,8)|0;if((r[a[e+24>>2]>>0]|0)!=37){e=i;continue}t=e+16|0;xh(A,f,a[t>>2]|0,a[t+4>>2]|0)|0;e=i}}}while(0);f=f+1|0}return}function jh(A){A=A|0;a[46942]=A;A=A+64|0;Ph((a[A>>2]|0)+56|0);Ph((a[A>>2]|0)+68|0);return}function Ph(A){A=A|0;var e=0,i=0,r=0;e=0;while(1){if((e|0)==3)break;i=A+(e<<2)|0;r=a[i>>2]|0;if(r|0){Hk(r)|0;a[i>>2]=0}e=e+1|0}return}function Sh(A,e,i){A=A|0;e=e|0;i=i|0;if(!(p4(e,i,A)|0))A=0;else A=P2(e)|0;return A|0}function Oh(A,e){A=A|0;e=e|0;return Q3(e,A)|0}function Kh(A){A=A|0;return v3(A)|0}function _h(A){A=A|0;var e=0,i=0,r=0;e=k;k=k+32|0;r=e+12|0;i=e;a[4682]=a[4679];a[4683]=a[4680];a[r>>2]=A;a[r+4>>2]=P2(A)|0;a[r+8>>2]=0;a[i>>2]=18736;a[i+4>>2]=18612;a[i+8>>2]=18724;A=cv(r,i)|0;sB(0);k=e;return A|0}function qh(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0;if((i|0)!=0?(l=A+8|0,f=a[l>>2]|0,(f|0)<(a[A+4>>2]|0)):0){t=(a[A>>2]|0)+f|0;A=0;n=r[t>>0]|0;f=e;e=t;while(1){e=e+1|0;r[f>>0]=n;A=A+1|0;if(!(n<<24>>24!=10&(A|0)<(i|0)))break;n=r[e>>0]|0;if(!(n<<24>>24))break;else f=f+1|0}a[l>>2]=(a[l>>2]|0)+A}else A=0;return A|0}function $h(A){A=A|0;return 0}function Ad(A,e){A=A|0;e=e|0;A=Q2(e)|0;Y6(A|0,0,e|0)|0;return A|0}function ed(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;A=W2(e,r)|0;if(r>>>0>i>>>0)Y6(A+i|0,0,r-i|0)|0;return A|0}function id(A,e){A=A|0;e=e|0;L2(e);return}function rd(A,e){A=A|0;e=e|0;var i=0;i=k;k=k+16|0;A=a[A+64>>2]|0;A=Q5[a[(a[A>>2]|0)+4>>2]&127](a[A+12>>2]|0,e)|0;if(!A)ao(1,96462,i)|0;k=i;return A|0}function fd(A,e){A=A|0;e=e|0;if(e|0){A=a[A+64>>2]|0;V5[a[(a[A>>2]|0)+12>>2]&63](a[A+12>>2]|0,e)}return}function ad(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;A=(a[e+16>>2]|0)+8|0;e=a[A>>2]|0;A=a[A+4>>2]|0;i=(a[i+16>>2]|0)+8|0;r=a[i>>2]|0;i=a[i+4>>2]|0;return(A>>>0>>0|(A|0)==(i|0)&e>>>0>>0?-1:(A>>>0>i>>>0|(A|0)==(i|0)&e>>>0>r>>>0)&1)|0}function nd(A,e,i){A=A|0;e=e|0;i=i|0;A=a[e+16>>2]|0;if((A+28|0)!=(e|0))fd(a[A+24>>2]|0,e);return}function ld(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;e=(a[a[e+16>>2]>>2]|0)>>>4;r=(a[a[i+16>>2]>>2]|0)>>>4;return(e>>>0>>0?-1:e>>>0>r>>>0&1)|0}function td(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=186256;a[r>>2]=e;a[r+4>>2]=i;a[46947]=186248;A=a[A+40>>2]|0;A=y5[a[A>>2]&63](A,187772,4)|0;if(!A)A=0;else A=a[A+16>>2]|0;return A|0}function cd(A){A=A|0;A=a[A+36>>2]|0;A=y5[a[A>>2]&63](A,0,128)|0;if(!A)A=0;else A=a[A+16>>2]|0;return A|0}function sd(A,e){A=A|0;e=e|0;var i=0;e=Ko(A,e)|0;if((e|0)!=0?(i=a[A+36>>2]|0,i=y5[a[i>>2]&63](i,e,8)|0,(i|0)!=0):0)e=a[i+16>>2]|0;else e=0;return e|0}function bd(A){A=A|0;A=a[A+36>>2]|0;A=y5[a[A>>2]&63](A,0,256)|0;if(!A)A=0;else A=a[A+16>>2]|0;return A|0}function ud(A,e){A=A|0;e=e|0;var i=0;e=Ko(A,e)|0;if((e|0)!=0?(i=a[A+36>>2]|0,i=y5[a[i>>2]&63](i,e,16)|0,(i|0)!=0):0)e=a[i+16>>2]|0;else e=0;return e|0}function wd(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,a=0;f=td(A,e,i)|0;do{if((r|0)!=0&(f|0)==0){f=Zd(A)|0;if((f|0)!=(A|0)?(a=td(f,e,i)|0,a|0):0){kd(A,a,1)|0;f=a;break}if(!(Mh(A,1,e,i)|0))f=0;else{f=dh(A,1)|0;f=od(A,e,i,f,L)|0;hd(A,f);dd(A,f)}}}while(0);return f|0}function kd(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=Zd(A)|0;if((r|0)==(a[e+24>>2]|0)){r=e+8|0;r=td(A,a[r>>2]|0,a[r+4>>2]|0)|0;if((i|0)!=0&(r|0)==0){r=HB(A)|0;if(!r)r=0;else{i=kd(r,e,i)|0;Bd(A,i);return i|0}}}else r=0;return r|0}function od(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0,t=0;n=rd(A,64)|0;l=a[n>>2]|0;t=n+8|0;a[t>>2]=e;a[t+4>>2]=i;a[n>>2]=l&12|f<<4|1;a[n+24>>2]=Zd(A)|0;if(r[(Zd(A)|0)+24>>0]&64)Td(n,96404,16,0)|0;return n|0}function hd(A,e){A=A|0;e=e|0;do{Bd(A,e);A=HB(A)|0}while((A|0)!=0);return}function dd(A,e){A=A|0;e=e|0;if(r[(Zd(A)|0)+24>>0]&64)vo(A,e);Gd(A,e);return}function Bd(A,e){A=A|0;e=e|0;var i=0,r=0;r=A+40|0;Sk(a[r>>2]|0)|0;if((Zd(A)|0)==(A|0))i=e+28|0;else i=rd(A,36)|0;a[i+16>>2]=e;r=a[r>>2]|0;y5[a[r>>2]&63](r,i,1)|0;r=a[A+36>>2]|0;y5[a[r>>2]&63](r,i,1)|0;return}function gd(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0;c=k;k=k+16|0;n=c;l=Zd(A)|0;if(Dh(A,1,e,n,0)|0){r=n;r=td(A,a[r>>2]|0,a[r+4>>2]|0)|0;if(!r)if(!((i|0)==0|(l|0)==(A|0))?(f=n,f=td(l,a[f>>2]|0,a[f+4>>2]|0)|0,(f|0)!=0):0)r=kd(A,f,1)|0;else t=6}else t=6;if((t|0)==6)if((i|0)!=0?(Dh(A,1,e,n,1)|0)!=0:0){t=n;l=a[t>>2]|0;t=a[t+4>>2]|0;r=dh(A,1)|0;r=od(A,l,t,r,L)|0;hd(A,r);dd(A,r);Jh(A,1,r)}else r=0;k=c;return r|0}function vd(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;a[46956]=e;i=Ah(A,e)|0;while(1){if(!i)break;r=eh(A,i,e)|0;ch(A,i,0);i=r}r=a[A+40>>2]|0;y5[a[r>>2]&63](r,187808,2)|0;r=a[A+36>>2]|0;y5[a[r>>2]&63](r,187808,2)|0;return}function Ed(A,e){A=A|0;e=e|0;var i=0,f=0,n=0;f=e+8|0;i=f;if(td(A,a[i>>2]|0,a[i+4>>2]|0)|0){if((Zd(A)|0)==(A|0)){i=Ah(A,e)|0;while(1){if(!i)break;n=eh(A,i,e)|0;bh(A,i)|0;i=n}if(r[A+24>>0]&64)Ro(e);yd(A,e);$d(e);n=f;Fh(A,1,a[n>>2]|0,a[n+4>>2]|0)}if(!(Qg(A,e,59,0,0)|0))if((Zd(A)|0)==(A|0)){fd(A,e);i=0}else i=0;else i=-1}else i=-1;return i|0}function Cd(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;l=k;k=k+16|0;r=l;i=a[e>>2]|0;do{if(!(i&3))if((HB(e)|0)==(A|0)){i=a[e>>2]|0;n=5;break}else{ao(1,96488,r)|0;f=-1;break}else n=5}while(0);A:do{if((n|0)==5)switch(i&3){case 1:{f=Ed(A,e)|0;break A}case 2:case 3:{f=bh(A,e)|0;break A}case 0:{f=Bh(e)|0;break A}default:{}}}while(0);k=l;return f|0}function Id(A){A=A|0;var e=0;switch(a[A>>2]&3){case 2:case 3:{e=a[(a[A+40>>2]|0)+24>>2]|0;break}case 1:{e=a[A+24>>2]|0;break}case 0:{e=A;break}default:{}}return e|0}function Zd(A){A=A|0;var e=0;switch(a[A>>2]&3){case 2:case 3:{e=(a[A+40>>2]|0)+24|0;break}case 1:{e=A+24|0;break}case 0:{e=A+60|0;break}default:{}}return a[e>>2]|0}function Gd(A,e){A=A|0;e=e|0;var i=0;i=a[A+64>>2]|0;if(!(r[i+52>>0]|0))Fd(A,e,100,0);else md(A,e,a[i+48>>2]|0);return}function md(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;A:do{if(i|0){md(A,e,a[i+8>>2]|0);switch(a[e>>2]&3){case 0:{r=a[i>>2]|0;break}case 1:{r=(a[i>>2]|0)+12|0;break}case 2:{r=(a[i>>2]|0)+24|0;break}default:break A}r=a[r>>2]|0;if(r|0)J5[r&127](A,e,a[i+4>>2]|0)}}while(0);return}function Qd(A,e,i){A=A|0;e=e|0;i=i|0;var f=0;f=a[A+64>>2]|0;if(!(r[f+52>>0]|0))Fd(A,e,101,i);else Ld(A,e,i,a[f+48>>2]|0);return}function Ld(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0;A:do{if(r|0){Ld(A,e,i,a[r+8>>2]|0);switch(a[e>>2]&3){case 0:{f=(a[r>>2]|0)+4|0;break}case 1:{f=(a[r>>2]|0)+16|0;break}case 2:{f=(a[r>>2]|0)+28|0;break}default:break A}f=a[f>>2]|0;if(f|0)N5[f&31](A,e,a[r+4>>2]|0,i)}}while(0);return}function yd(A,e){A=A|0;e=e|0;var i=0;i=a[A+64>>2]|0;if(!(r[i+52>>0]|0))Fd(A,e,102,0);else Wd(A,e,a[i+48>>2]|0);return}function Wd(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;A:do{if(i|0){Wd(A,e,a[i+8>>2]|0);switch(a[e>>2]&3){case 0:{r=(a[i>>2]|0)+8|0;break}case 1:{r=(a[i>>2]|0)+20|0;break}case 2:{r=(a[i>>2]|0)+32|0;break}default:break A}r=a[r>>2]|0;if(r|0)J5[r&127](A,e,a[i+4>>2]|0)}}while(0);return}function zd(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=rd(A,12)|0;a[r>>2]=e;a[r+4>>2]=i;i=(a[A+64>>2]|0)+48|0;a[r+8>>2]=a[i>>2];a[i>>2]=r;return}function Yd(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;r=(a[A+64>>2]|0)+48|0;i=a[r>>2]|0;A:do{if(!i)i=-1;else{if((a[i>>2]|0)!=(e|0)){while(1){if(!i){i=-1;break A}r=i+8|0;f=a[r>>2]|0;if((a[f>>2]|0)==(e|0))break;else i=f}if(f)a[r>>2]=a[f+8>>2]}else a[r>>2]=a[i+8>>2];fd(A,i);i=0}}while(0);return i|0}function Dd(A,e){A=A|0;e=e|0;var i=0;i=Zd(A)|0;A:do{if((i|0)==(Zd(e)|0))switch(a[e>>2]&3){case 0:{while(1){if((e|0)==(A|0)){e=1;break A}e=HB(e)|0;if(!e){e=0;break}}break}case 1:{e=e+8|0;e=(wd(A,a[e>>2]|0,a[e+4>>2]|0,0)|0)!=0;break A}default:{e=(uh(A,e,0)|0)!=0;break A}}else e=0}while(0);return e&1|0}function Md(A){A=A|0;return a[A>>2]&3|0}function Fd(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,a=0,n=0,l=0;l=k;k=k+16|0;n=l;a=Td(A,96512,44,0)|0;switch(i|0){case 100:{f=Vd(a,e,100)|0;if(!(Jd(f,e)|0))pd(f,A,e,r)|0;break}case 101:{if(((Jd(Vd(a,e,100)|0,e)|0)==0?(Jd(Vd(a,e,102)|0,e)|0)==0:0)?(f=Vd(a,e,101)|0,(Jd(f,e)|0)==0):0)pd(f,A,e,r)|0;break}case 102:{Nd(Vd(a,e,100)|0,e);Nd(Vd(a,e,101)|0,e);f=Vd(a,e,102)|0;if(!(Jd(f,e)|0))pd(f,A,e,r)|0;break}default:ao(1,96524,n)|0}k=l;return}function Vd(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;n=k;k=k+16|0;r=n;A:do{switch(a[e>>2]&3){case 0:switch(i|0){case 100:{i=A+8|0;break A}case 101:{i=A+20|0;break A}case 102:{i=A+32|0;break A}default:{f=14;break A}}case 1:switch(i|0){case 100:{i=A+12|0;break A}case 101:{i=A+24|0;break A}case 102:{i=A+36|0;break A}default:{f=14;break A}}case 2:switch(i|0){case 100:{i=A+16|0;break A}case 101:{i=A+28|0;break A}case 102:{i=A+40|0;break A}default:{f=14;break A}}default:f=14}}while(0);if((f|0)==14){ao(1,96558,r)|0;i=0}A=a[i>>2]|0;if(!A){A=Id(e)|0;A=jB(A,18828,a[4589]|0)|0;a[i>>2]=A}k=n;return A|0}function Jd(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;i=k;k=k+32|0;r=i;f=Rd(e)|0;e=r+8|0;a[e>>2]=f;a[e+4>>2]=L;e=y5[a[A>>2]&63](A,r,4)|0;k=i;return e|0}function pd(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0;f=rd(Id(i)|0,32)|0;a[f+20>>2]=i;n=Rd(i)|0;i=f+8|0;a[i>>2]=n;a[i+4>>2]=L;a[f+16>>2]=e;if(r|0){n=rd(e,8)|0;a[f+24>>2]=n;a[n>>2]=r}y5[a[A>>2]&63](A,f,1)|0;return f|0}function Nd(A,e){A=A|0;e=e|0;e=Jd(A,e)|0;if(e|0)y5[a[A>>2]&63](A,e,2)|0;return}function Rd(A){A=A|0;A=A+8|0;L=a[A+4>>2]|0;return a[A>>2]|0}function Xd(A,e,i){A=A|0;e=e|0;i=i|0;Hd(e);fd(a[e+16>>2]|0,e);return}function Hd(A){A=A|0;var e=0,i=0;e=A+16|0;A=a[A+24>>2]|0;while(1){if(!A)break;i=a[A+4>>2]|0;fd(a[e>>2]|0,A);A=i}return}function Ud(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0;s=k;k=k+16|0;t=s;l=a[A+16>>2]|0;f=l;while(1){if(!f){f=0;break}n=a[f>>2]|0;if((n|0)==(e|0)){c=7;break}if((r[e>>0]|0)==(r[n>>0]|0)?(A1(e,n)|0)==0:0){c=7;break}f=a[f+4>>2]|0;if((f|0)==(l|0)){f=0;break}}do{if((c|0)==7){if(!(a[A>>2]&4)){if((f|0)==(l|0)&(i|0)==0){f=l;break}xd(A,f,i);break}if(i)if((l|0)==(f|0))f=l;else ao(1,96583,t)|0}}while(0);k=s;return f|0}function xd(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;a[A+16>>2]=e;r=a[A>>2]|0;i=i<<2&4;a[A>>2]=r&-5|i;if(r&2|0){r=(r&3|0)==3?-1:1;a[A+(r*48|0)+16>>2]=e;r=A+(r*48|0)|0;a[r>>2]=a[r>>2]&-5|i}return}function Td(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0;l=Id(A)|0;f=Ud(A,e,0)|0;A:do{if((i|0)!=0&(f|0)==0){i=rd(l,i)|0;a[i>>2]=aB(l,e)|0;switch(a[A>>2]&3){case 0:{jd(A,i);n=i;break A}case 1:{jd(A,i);n=i;break A}case 2:case 3:{jd(A,i);n=i;break A}default:{}}}else n=f}while(0);if(r|0)Ud(A,e,1)|0;return n|0}function jd(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;i=a[A+16>>2]|0;do{if(i){r=i+4|0;f=a[r>>2]|0;if((f|0)==(i|0)){a[r>>2]=e;r=i;i=e;break}else{a[e+4>>2]=f;r=e;break}}else{r=e;i=e}}while(0);a[i+4>>2]=r;if(!(a[A>>2]&4))xd(A,e,0);return}function Pd(A,e){A=A|0;e=e|0;var i=0,r=0;r=Id(A)|0;i=Ud(A,e,0)|0;if(!i)e=-1;else{Sd(A,i);if(!(a[A>>2]&3)){Od(r,A,i);e=i}else{Qg(Zd(r)|0,A,60,i,0)|0;e=i}lB(r,a[i>>2]|0)|0;fd(r,e);e=0}return e|0}function Sd(A,e){A=A|0;e=e|0;var i=0;A=a[A+16>>2]|0;do{i=A+4|0;A=a[i>>2]|0}while((A|0)!=(e|0));a[i>>2]=a[e+4>>2];return}function Od(A,e,i){A=A|0;e=e|0;i=i|0;if((a[e+16>>2]|0)==(i|0)){A=a[i+4>>2]|0;xd(e,(A|0)==(i|0)?0:A,0)}return}function Kd(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var a=0,n=0;a=(r|0)>-1;n=a?r:0-r|0;A:do{switch(e|0){case 0:{Td(A,i,n,f)|0;if(!a){e=RB(A)|0;while(1){if(!e)break A;Kd(e,0,i,r,f);e=XB(e)|0}}break}case 3:case 2:case 1:{r=(e|0)==1;e=cd(A)|0;while(1){if(!e)break A;e:do{if(r)Td(e,i,n,f)|0;else{a=Oo(A,e)|0;while(1){if(!a)break e;Td(a,i,n,f)|0;a=_o(A,a)|0}}}while(0);e=sd(A,e)|0}}default:{}}}while(0);return}function _d(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;A:do{switch(e|0){case 0:{Qg(A,A,61,i,1)|0;break}case 3:case 2:case 1:{f=(e|0)==1;r=cd(A)|0;while(1){if(!r)break A;e:do{if(f)Pd(r,i)|0;else{e=Oo(A,r)|0;while(1){if(!e)break e;Pd(e,i)|0;e=_o(A,e)|0}}}while(0);r=sd(A,r)|0}}default:{}}}while(0);return}function qd(A,e,i){A=A|0;e=e|0;i=i|0;Pd(e,i)|0;return}function $d(A){A=A|0;var e=0,i=0,r=0;i=Id(A)|0;e=A+16|0;A=a[e>>2]|0;if(A|0)do{r=A;A=a[A+4>>2]|0;lB(i,a[r>>2]|0)|0;fd(i,r)}while((A|0)!=(a[e>>2]|0));a[e>>2]=0;return}function AB(A){A=A|0;return SB(A,eB(A)|0)|0}function eB(A){A=A|0;var e=0,i=0;if(!A)i=187844;else i=(a[A+64>>2]|0)+20|0;e=a[i>>2]|0;if(!e){e=jB(A,18864,a[4589]|0)|0;a[i>>2]=e;A=186312;a[A>>2]=-2147483648;a[A+4>>2]=0;A=186320;a[A>>2]=2147483647;a[A+4>>2]=-1}return e|0}function iB(A,e){A=A|0;e=e|0;return rB(eB(A)|0,e)|0}function rB(A,e){A=A|0;e=e|0;A=fB(A,e)|0;if(!A)A=0;else A=a[A+16>>2]|0;return A|0}function fB(A,e){A=A|0;e=e|0;var i=0,r=0;i=k;k=k+32|0;r=i;a[r+16>>2]=e;e=y5[a[A>>2]&63](A,r,4)|0;k=i;return e|0}function aB(A,e){A=A|0;e=e|0;var i=0,r=0;if(!e)i=0;else{r=eB(A)|0;i=fB(r,e)|0;if(!i){i=(P2(e)|0)+24|0;if(!A)i=Q2(i)|0;else i=rd(A,i)|0;A=i+8|0;a[A>>2]=1;a[A+4>>2]=0;A=i+20|0;$1(A,e)|0;a[i+16>>2]=A;y5[a[r>>2]&63](r,i,1)|0}else{r=i+8|0;e=r;e=d6(a[e>>2]|0,a[e+4>>2]|0,1,0)|0;a[r>>2]=e;a[r+4>>2]=L}i=a[i+16>>2]|0}return i|0}function nB(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;if(!e)i=0;else{r=eB(A)|0;i=fB(r,e)|0;if(!i){i=(P2(e)|0)+24|0;if(!A)i=Q2(i)|0;else i=rd(A,i)|0;n=186312;f=a[n+4>>2]|0;A=i+8|0;a[A>>2]=a[n>>2]|1;a[A+4>>2]=f;A=i+20|0;$1(A,e)|0;a[i+16>>2]=A;y5[a[r>>2]&63](r,i,1)|0}else{n=i+8|0;f=n;f=d6(a[f>>2]|0,a[f+4>>2]|0,1,0)|0;a[n>>2]=f;a[n+4>>2]=L}i=a[i+16>>2]|0}return i|0}function lB(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;if((e|0)!=0?(i=eB(A)|0,r=fB(i,e)|0,(r|0)!=0):0)if((a[r+16>>2]|0)==(e|0)?(e=r+8|0,n=e,n=d6(a[n>>2]|0,a[n+4>>2]|0,-1,-1)|0,f=L,e,a[e>>2]=n,a[e+4>>2]=f,e=186320,(n|0)==0&(f|0)==0|(a[e>>2]|0)==0&(a[e+4>>2]|0)==0):0){PB(A,i,r)|0;A=0}else A=0;else A=-1;return A|0}function tB(A){A=A|0;var e=0;if(!A)A=0;else{A=A+-12|0;e=186312;A=a[e>>2]&a[A>>2]}return A|0}function cB(A){A=A|0;var e=0,i=0,r=0;if(A|0){i=186312;A=A+-12|0;r=A;e=a[r+4>>2]|a[i+4>>2];a[A>>2]=a[r>>2]|a[i>>2];a[A+4>>2]=e}return}function sB(A){A=A|0;a[46966]=A;a[4725]=1;return}function bB(A,e){A=A|0;e=e|0;a[46967]=A;a[46968]=e;a[46969]=0;return}function uB(){var A=0,e=0,i=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;if(!(a[46970]|0)){a[46970]=1;if(!(a[46971]|0))a[46971]=1;if(!(a[46962]|0))a[46962]=a[15647];if(!(a[46963]|0))a[46963]=a[15679];s=a[46972]|0;if(!((s|0)!=0?(a[s>>2]|0)!=0:0)){wB();s=kB(a[46962]|0,16384)|0;a[a[46972]>>2]=s}oB()}A:while(1){c=a[46973]|0;r[c>>0]=r[194805]|0;A=(a[(a[a[46972]>>2]|0)+28>>2]|0)+(a[46971]|0)|0;e=c;e:while(1){l=e;while(1){e=a[18904+(n[l>>0]<<2)>>2]|0;if(f[63856+(A<<1)>>1]|0){a[46974]=A;a[46975]=l}i:while(1){i=e&255;do{e=i+(f[64042+(A<<1)>>1]|0)|0;if((A|0)==(f[64252+(e<<1)>>1]|0))break i;s=f[64788+(A<<1)>>1]|0;A=s<<16>>16}while(s<<16>>16<=92);e=a[19928+(i<<2)>>2]|0}A=f[64998+(e<<1)>>1]|0;e=l+1|0;if((f[64042+(A<<1)>>1]|0)==219)break;else l=e}i:while(1){s=c;r:while(1){A=f[63856+(A<<1)>>1]|0;if(!(A<<16>>16)){A=f[63856+(a[46974]<<1)>>1]|0;e=a[46975]|0}else A=A<<16>>16;a[46964]=c;t=e;a[46965]=t-s;r[194805]=r[e>>0]|0;r[e>>0]=0;a[46973]=e;f:while(1){switch(A|0){case 1:{u=27;break A}case 12:{u=53;break A}case 13:{u=55;break A}case 14:{u=57;break A}case 15:{u=61;break A}case 16:{u=65;break A}case 17:{u=67;break A}case 18:{u=69;break A}case 19:{u=72;break A}case 20:{u=75;break A}case 21:{u=78;break A}case 23:{u=86;break A}case 33:{u=118;break A}case 39:case 38:case 37:case 36:{b=0;break A}case 2:{u=29;break e}case 3:{u=32;break e}case 4:{u=35;break e}case 5:{u=37;break e}case 6:{u=39;break e}case 7:{u=42;break e}case 8:{u=44;break e}case 9:{u=47;break e}case 10:{u=49;break e}case 11:{u=51;break e}case 22:{u=83;break e}case 24:{u=89;break e}case 25:{u=92;break e}case 26:{u=95;break e}case 27:{u=98;break e}case 28:{u=101;break e}case 29:{u=104;break e}case 30:{u=109;break e}case 31:{u=112;break e}case 32:{u=115;break e}case 34:{u=121;break e}case 0:break f;case 35:break;default:{u=134;break A}}l=a[46964]|0;r[e>>0]=r[194805]|0;A=a[46972]|0;i=a[A>>2]|0;if(!(a[i+44>>2]|0)){w=a[i+16>>2]|0;a[46977]=w;a[i>>2]=a[46962];i=a[A>>2]|0;a[i+44>>2]=1;A=w}else A=a[46977]|0;if((a[46973]|0)>>>0<=((a[i+4>>2]|0)+A|0)>>>0){u=128;break r}switch(ZB()|0){case 0:{u=132;break i}case 2:{u=133;break r}case 1:break;default:continue A}a[46973]=a[46964];A=(((a[46971]|0)+-1|0)/2|0)+36|0}r[e>>0]=r[194805]|0;e=a[46975]|0;A=a[46974]|0}if((u|0)==128){u=0;i=t-l|0;l=a[46964]|0;e=l+(i+-1)|0;a[46973]=e;A=CB()|0;t=IB(A)|0;c=a[46964]|0;if(!t)continue;else{u=129;break}}else if((u|0)==133){u=0;e=(a[(a[a[46972]>>2]|0)+4>>2]|0)+(a[46977]|0)|0;a[46973]=e;A=CB()|0;c=a[46964]|0;continue}}if((u|0)==129){u=0;e=l+i|0;a[46973]=e;A=t;continue}else if((u|0)==132){u=0;e=(a[46964]|0)+(t-l+-1)|0;a[46973]=e;A=CB()|0;c=a[46964]|0;continue}}switch(u|0){case 29:{u=0;A=a[46965]|0;if(A|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;a[4725]=(a[4725]|0)+1;continue A}case 32:{u=0;A=a[46965]|0;if(A|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;a[46971]=3;continue A}case 35:{u=0;A=a[46965]|0;if(!A)continue A;a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;continue A}case 37:{u=0;A=a[46965]|0;if(!A)continue A;a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;continue A}case 39:{u=0;A=a[46965]|0;if(A|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;a[46971]=1;continue A}case 42:{u=0;A=a[46965]|0;if(!A)continue A;a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;continue A}case 44:{u=0;A=a[46965]|0;if(A|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;hB();continue A}case 47:{u=0;A=a[46965]|0;if(!A)continue A;a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;continue A}case 49:{u=0;A=a[46965]|0;if(!A)continue A;a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;continue A}case 51:{u=0;A=a[46965]|0;if(!A)continue A;a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;continue A}case 83:{u=0;A=a[46965]|0;if(A|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;a[46971]=5;BB();continue A}case 89:{u=0;A=a[46965]|0;if(A|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;vB(98744);continue A}case 92:{u=0;A=a[46965]|0;if(A|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;vB(96616);continue A}case 95:{u=0;A=a[46965]|0;if(A|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;a[4725]=(a[4725]|0)+1;continue A}case 98:{u=0;e=a[46965]|0;A=a[46964]|0;if(e|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[A+(e+-1)>>0]|0)==10&1;vB(A);continue A}case 101:{u=0;A=a[46965]|0;if(A|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;a[46971]=7;a[46976]=1;BB();continue A}case 104:{u=0;A=a[46965]|0;if(A|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;w=(a[46976]|0)+-1|0;a[46976]=w;if(!w){u=108;break A}vB(a[46964]|0);continue A}case 109:{u=0;e=a[46965]|0;A=a[46964]|0;if(e|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[A+(e+-1)>>0]|0)==10&1;a[46976]=(a[46976]|0)+1;vB(A);continue A}case 112:{u=0;e=a[46965]|0;A=a[46964]|0;if(e|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[A+(e+-1)>>0]|0)==10&1;vB(A);a[4725]=(a[4725]|0)+1;continue A}case 115:{u=0;e=a[46965]|0;A=a[46964]|0;if(e|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[A+(e+-1)>>0]|0)==10&1;vB(A);continue A}case 121:{u=0;e=a[46965]|0;A=a[46964]|0;if(e|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[A+(e+-1)>>0]|0)==10&1;L3(A,e,1,a[46963]|0)|0;continue A}}}switch(u|0){case 27:{A=a[46965]|0;if(!A)b=-1;else{a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;b=-1}break}case 53:{A=a[46965]|0;if(!A)b=259;else{a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;b=259}break}case 55:{A=a[46965]|0;if(!A)b=260;else{a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;b=260}break}case 57:{A=a[46965]|0;if(A|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;if(!(a[46969]|0)){a[46969]=258;b=258}else b=258;break}case 61:{A=a[46965]|0;if(A|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;if(!(a[46969]|0)){a[46969]=261;b=261}else b=261;break}case 65:{A=a[46965]|0;if(!A)b=263;else{a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;b=263}break}case 67:{A=a[46965]|0;if(!A)b=262;else{a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;b=262}break}case 69:{A=a[46965]|0;if(A|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;b=(a[46969]|0)==261?264:45;break}case 72:{A=a[46965]|0;if(A|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;b=(a[46969]|0)==258?264:45;break}case 75:{e=a[46965]|0;A=a[46964]|0;if(e|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[A+(e+-1)>>0]|0)==10&1;a[46992]=aB(a[46942]|0,A)|0;b=267;break}case 78:{A=a[46965]|0;if(A|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;if(dB()|0){u=(a[46965]|0)+-1|0;r[e>>0]=r[194805]|0;w=c+u|0;a[46973]=w;a[46964]=c;a[46965]=u;r[194805]=r[w>>0]|0;r[w>>0]=0;a[46973]=w}a[46992]=aB(a[46942]|0,a[46964]|0)|0;b=267;break}case 86:{A=a[46965]|0;if(A|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[(a[46964]|0)+(A+-1)>>0]|0)==10&1;a[46971]=1;gB();b=268;break}case 108:{a[46971]=1;EB();b=268;break}case 118:{e=a[46965]|0;A=a[46964]|0;if(e|0)a[(a[a[46972]>>2]|0)+28>>2]=(r[A+(e+-1)>>0]|0)==10&1;b=r[A>>0]|0;break}case 134:{GB(96619);break}}return b|0}function wB(){var A=0,e=0,i=0;e=a[46972]|0;do{if(!e){A=YB(4)|0;a[46972]=A;if(!A)GB(96977);else{a[A>>2]=0;A=1;i=9;break}}else{A=a[46983]|0;if(0>=(A+-1|0)>>>0){A=A+8|0;e=mB(e,A<<2)|0;a[46972]=e;if(!e)GB(96977);else{i=e+(a[46983]<<2)|0;a[i>>2]=0;a[i+4>>2]=0;a[i+8>>2]=0;a[i+12>>2]=0;a[i+16>>2]=0;a[i+20>>2]=0;a[i+24>>2]=0;a[i+28>>2]=0;i=9;break}}}}while(0);if((i|0)==9)a[46983]=A;return}function kB(A,e){A=A|0;e=e|0;var i=0;i=YB(48)|0;if(!i)GB(96932);a[i+12>>2]=e;e=YB(e+2|0)|0;a[i+4>>2]=e;if(!e)GB(96932);else{a[i+20>>2]=1;LB(i,A);return i|0}return 0}function oB(){var A=0,e=0;e=a[46972]|0;A=a[e>>2]|0;a[46977]=a[A+16>>2];A=a[A+8>>2]|0;a[46973]=A;a[46964]=A;a[46962]=a[a[e>>2]>>2];r[194805]=r[A>>0]|0;return}function hB(){var A=0,e=0,i=0,f=0,n=0,l=0,t=0;n=k;k=k+32|0;f=n;e=n+16|0;i=n+12|0;l=a[46964]|0;A=l+1|0;t=(Z1(A,96916,4)|0)==0;A=t?l+5|0:A;a[f>>2]=i;a[f+4>>2]=n+20;a[f+8>>2]=e;f=J3(A,96921,f)|0;if((f|0)>0?(a[4725]=(a[i>>2]|0)+-1,(f|0)!=1):0){e=A+(a[e>>2]|0)|0;A=e;A:while(1){i=r[A>>0]|0;switch(i<<24>>24){case 0:case 34:break A;default:{}}A=A+1|0}if((A|0)!=(e|0)&i<<24>>24==34){r[A>>0]=0;zB(e,A-e|0)}}k=n;return}function dB(){var A=0,e=0,i=0,f=0,n=0,l=0,t=0,c=0,s=0;c=k;k=k+2080|0;t=c+8|0;f=c;A=c+1056|0;e=c+32|0;l=c+16|0;s=r[(a[46964]|0)+((a[46965]|0)+-1)>>0]|0;i=s<<24>>24==46;if(i|((s&255)+-48|0)>>>0<10)if(i?(WB()|0)!=0:0)n=4;else A=0;else n=4;if((n|0)==4){s=a[46966]|0;co(l,1024,A);uo(l,96827)|0;uo(l,a[46964]|0)|0;a[f>>2]=a[4725];S4(e,96871,f)|0;uo(l,e)|0;uo(l,(s|0)==0?96821:s)|0;uo(l,96888)|0;e=l+4|0;A=a[e>>2]|0;if(A>>>0>=(a[l+8>>2]|0)>>>0){so(l,1)|0;A=a[e>>2]|0}r[A>>0]=0;A=a[l>>2]|0;a[e>>2]=A;a[t>>2]=A;ao(0,96913,t)|0;wo(l);A=1}k=c;return A|0}function BB(){var A=0;A=a[46978]|0;if(!A){A=Q2(1024)|0;a[46978]=A;a[46980]=A+1024}a[46979]=A;r[A>>0]=0;return}function gB(){a[46992]=aB(a[46942]|0,a[46978]|0)|0;r[a[46978]>>0]=0;return}function vB(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0;i=a[46979]|0;e=a[46978]|0;if(i>>>0>e>>>0){i=i+-1|0;f=3}A:while(1){if((f|0)==3)a[46979]=i;f=a[46980]|0;n=f;do{l=A;A=A+1|0;l=r[l>>0]|0;t=i;i=i+1|0;r[t>>0]=l;if(!(l<<24>>24))break A}while(i>>>0>>0);a[46979]=i;f=e;t=n-f<<1;e=W2(e,t)|0;a[46978]=e;a[46980]=e+t;i=e+(i-f)|0;f=3}a[46979]=i;return}function EB(){a[46992]=nB(a[46942]|0,a[46978]|0)|0;r[a[46978]>>0]=0;return}function CB(){var A=0,e=0,i=0,n=0,l=0;l=a[46973]|0;n=a[46964]|0;e=(a[(a[a[46972]>>2]|0)+28>>2]|0)+(a[46971]|0)|0;while(1){if(n>>>0>=l>>>0)break;A=r[n>>0]|0;if(!(A<<24>>24))A=1;else A=a[18904+((A&255)<<2)>>2]|0;if(f[63856+(e<<1)>>1]|0){a[46974]=e;a[46975]=n}A:while(1){i=A&255;do{A=i+(f[64042+(e<<1)>>1]|0)|0;if((e|0)==(f[64252+(A<<1)>>1]|0))break A;A=f[64788+(e<<1)>>1]|0;e=A<<16>>16}while(A<<16>>16<=92);A=a[19928+(i<<2)>>2]|0}n=n+1|0;e=f[64998+(A<<1)>>1]|0}return e|0}function IB(A){A=A|0;var e=0;if(f[63856+(A<<1)>>1]|0){e=a[46973]|0;a[46974]=A;a[46975]=e}while(1){e=(f[64042+(A<<1)>>1]|0)+1|0;if((A|0)==(f[64252+(e<<1)>>1]|0))break;A=f[64788+(A<<1)>>1]|0}e=f[64998+(e<<1)>>1]|0;return(e<<16>>16==92?0:e<<16>>16)|0}function ZB(){var A=0,e=0,i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0;c=a[46972]|0;n=a[c>>2]|0;t=a[n+4>>2]|0;f=a[46964]|0;b=a[46973]|0;s=b;if(b>>>0>(t+((a[46977]|0)+1)|0)>>>0)GB(96674);l=s-f|0;if(!(a[n+40>>2]|0))A=(l|0)==1?1:2;else{b=l+-1|0;l=t;n=0;while(1){if((n|0)>=(b|0))break;r[l>>0]=r[f>>0]|0;l=l+1|0;f=f+1|0;n=n+1|0}f=a[c>>2]|0;do{if((a[f+44>>2]|0)==2){a[46977]=0;a[f+16>>2]=0;i=f;u=17}else{while(1){t=f+12|0;l=a[t>>2]|0;n=l-b+-1|0;if(n|0){u=16;break}n=f+4|0;c=a[n>>2]|0;if(!(a[f+20>>2]|0)){u=12;break}f=l<<1;f=(f|0)==0?(l>>>3)+l|0:f;a[t>>2]=f;f=mB(c,f+2|0)|0;a[n>>2]=f;if(!f)break;c=f+(s-c)|0;a[46973]=c;f=a[a[46972]>>2]|0;s=c}if((u|0)==12)a[n>>2]=0;else if((u|0)==16){e=y5[a[a[(a[46967]|0)+8>>2]>>2]&63](a[46968]|0,(a[f+4>>2]|0)+b|0,n>>>0<8192?n:8192)|0;i=a[a[46972]>>2]|0;a[46977]=e;a[i+16>>2]=e;if(!e){u=17;break}else{A=0;break}}GB(96730)}}while(0);do{if((u|0)==17)if(!b){QB(a[46962]|0);A=1;e=a[46977]|0;i=a[a[46972]>>2]|0;break}else{a[i+44>>2]=2;A=2;e=0;break}}while(0);f=e+b|0;do{if(f>>>0>(a[i+12>>2]|0)>>>0){u=mB(a[i+4>>2]|0,f+(e>>>1)|0)|0;e=a[46972]|0;a[(a[e>>2]|0)+4>>2]=u;e=a[(a[e>>2]|0)+4>>2]|0;if(!e)GB(96774);else{w=a[46977]|0;k=e;break}}else{w=e;k=a[i+4>>2]|0}}while(0);w=w+b|0;a[46977]=w;r[k+w>>0]=0;k=a[46972]|0;r[(a[(a[k>>2]|0)+4>>2]|0)+((a[46977]|0)+1)>>0]=0;a[46964]=a[(a[k>>2]|0)+4>>2]}return A|0}function GB(A){A=A|0;var e=0,i=0;e=k;k=k+16|0;i=a[15712]|0;a[e>>2]=A;f3(i,96670,e)|0;PA(2)}function mB(A,e){A=A|0;e=e|0;return W2(A,e)|0}function QB(A){A=A|0;var e=0,i=0,r=0;i=a[46972]|0;if((i|0)!=0?(e=a[i>>2]|0,(e|0)!=0):0)r=4;else{wB();e=kB(a[46962]|0,16384)|0;i=a[46972]|0;a[i>>2]=e;if(!i)e=0;else r=4}LB(e,A);oB();return}function LB(A,e){A=A|0;e=e|0;var i=0;i=a[(N2()|0)>>2]|0;yB(A);a[A>>2]=e;a[A+40>>2]=1;e=a[46972]|0;if(!e)e=0;else e=a[e>>2]|0;if((e|0)!=(A|0)){a[A+32>>2]=1;a[A+36>>2]=0}a[A+24>>2]=0;a[(N2()|0)>>2]=i;return}function yB(A){A=A|0;var e=0;if(A|0){a[A+16>>2]=0;e=A+4|0;r[a[e>>2]>>0]=0;r[(a[e>>2]|0)+1>>0]=0;a[A+8>>2]=a[e>>2];a[A+28>>2]=1;a[A+44>>2]=0;e=a[46972]|0;if(!e)e=0;else e=a[e>>2]|0;if((e|0)==(A|0))oB()}return}function WB(){var A=0,e=0;e=a[46964]|0;A=(a[46965]|0)+-2|0;while(1){if((A|0)<=-1){A=0;break}if((r[e+A>>0]|0)==46){A=1;break}else A=A+-1|0}return A|0}function zB(A,e){A=A|0;e=e|0;var i=0;i=a[46981]|0;if((i|0)<(e|0)){if(!i)i=Q2(e+1|0)|0;else i=W2(a[46982]|0,e+1|0)|0;a[46982]=i;a[46981]=e}else i=a[46982]|0;$1(i,A)|0;a[46966]=a[46982];return}function YB(A){A=A|0;return Q2(A)|0}function DB(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0;b=k;k=k+2112|0;s=b+32|0;t=b+24|0;l=b+16|0;n=b+8|0;f=b;e=b+56|0;c=b+40|0;co(c,1024,b+1080|0);i=a[46966]|0;if(i|0){uo(c,i)|0;uo(c,97027)|0}uo(c,A)|0;a[f>>2]=a[4725];S4(e,97030,f)|0;uo(c,e)|0;A:do{if(!(r[a[46964]>>0]|0))switch(((a[46971]|0)+-1|0)/2|0|0){case 2:{a[n>>2]=16384;S4(e,97050,n)|0;uo(c,e)|0;A=a[46978]|0;if(!(r[A>>0]|0))break A;t=P2(A)|0;uo(c,97112)|0;A=a[46978]|0;if((t|0)>80)r[A+80>>0]=0;uo(c,A)|0;break A}case 3:{a[l>>2]=16384;S4(e,97131,l)|0;uo(c,e)|0;A=a[46978]|0;if(!(r[A>>0]|0))break A;t=P2(A)|0;uo(c,97199)|0;A=a[46978]|0;if((t|0)>80)r[A+80>>0]=0;uo(c,A)|0;break A}case 1:{a[t>>2]=16384;S4(e,97218,t)|0;uo(c,e)|0;break A}default:break A}else{uo(c,97042)|0;uo(c,a[46964]|0)|0;e=c+4|0;A=a[e>>2]|0;if(A>>>0>=(a[c+8>>2]|0)>>>0){so(c,1)|0;A=a[e>>2]|0}a[e>>2]=A+1;r[A>>0]=39}}while(0);i=c+4|0;A=a[i>>2]|0;e=c+8|0;if(A>>>0>=(a[e>>2]|0)>>>0){so(c,1)|0;A=a[i>>2]|0}a[i>>2]=A+1;r[A>>0]=10;A=a[i>>2]|0;if(A>>>0>=(a[e>>2]|0)>>>0){so(c,1)|0;A=a[i>>2]|0}r[A>>0]=0;t=a[c>>2]|0;a[i>>2]=t;a[s>>2]=t;ao(1,96913,s)|0;wo(c);k=b;return}function MB(){FB(a[46964]|0);return}function FB(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0;c=a[46973]|0;r[c>>0]=r[194805]|0;t=a[46972]|0;i=a[t>>2]|0;e=a[i+4>>2]|0;if(c>>>0<(e+2|0)>>>0){f=e+((a[46977]|0)+2)|0;n=e+((a[i+12>>2]|0)+2)|0;s=e;l=i;while(1){if(f>>>0<=s>>>0)break;i=f+-1|0;s=n+-1|0;r[s>>0]=r[i>>0]|0;l=a[t>>2]|0;f=i;n=s;s=a[l+4>>2]|0}i=n-f|0;e=c+i|0;c=a[l+12>>2]|0;a[46977]=c;a[l+16>>2]=c;if(e>>>0<(s+2|0)>>>0)GB(97277);else{b=A+i|0;u=e}}else{b=A;u=c}A=u+-1|0;r[A>>0]=64;a[46964]=b;r[194805]=r[A>>0]|0;a[46973]=A;return}function VB(){var A=0;A=a[46972]|0;if(!A)A=0;else A=a[A>>2]|0;yB(A);return}function JB(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;r=k;k=k+80|0;f=r;n=A+52|0;OB(A,a[n>>2]|0,18548);A=f+8|0;a[A>>2]=e;a[A+4>>2]=i;i=a[n>>2]|0;i=y5[a[i>>2]&63](i,f,4)|0;k=r;return i|0}function pB(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0;f=JB(A,e,i)|0;if(!f){f=rd(A,72)|0;a[f+64>>2]=a[A+64>>2];n=f+24|0;l=a[A+24>>2]|0;a[n>>2]=l;r[n>>0]=l&255&-9;a[f+56>>2]=A;a[f+60>>2]=a[A+60>>2];A=f+8|0;a[A>>2]=e;a[A+4>>2]=i;hh(f)|0}return f|0}function NB(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;n=k;k=k+16|0;f=n;if(!(((e|0)!=0?(Dh(A,0,e,f,0)|0)!=0:0)?(r=f,r=JB(A,a[r>>2]|0,a[r+4>>2]|0)|0,(r|0)!=0):0))if((i|0)!=0?(Dh(A,0,e,f,1)|0)!=0:0){r=f;r=pB(A,a[r>>2]|0,a[r+4>>2]|0)|0;Jh(A,0,r)}else r=0;k=n;return r|0}function RB(A){A=A|0;A=a[A+52>>2]|0;return y5[a[A>>2]&63](A,0,128)|0}function XB(A){A=A|0;var e=0;e=HB(A)|0;if(!e)A=0;else{e=a[e+52>>2]|0;A=y5[a[e>>2]&63](e,A,8)|0}return A|0}function HB(A){A=A|0;return a[A+56>>2]|0}function UB(A,e){A=A|0;e=e|0;A=a[A+52>>2]|0;return y5[a[A>>2]&63](A,e,2)|0}function xB(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;A=a[46984]|0;r=(e|0)!=0;do{if(!A)if(r){L2(e);A=0;break}else{A=Q2(i)|0;break}else if(r){fd(A,e);A=0;break}else{A=rd(A,i)|0;break}}while(0);return A|0}function TB(A,e,i){A=A|0;e=e|0;i=i|0;A=a[46984]|0;if(!A)L2(e);else fd(A,e);return}function jB(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;r=e+28|0;f=a[r>>2]|0;a[r>>2]=7;a[46984]=A;i=jk(e,i)|0;a[r>>2]=f;a[46984]=0;return i|0}function PB(A,e,i){A=A|0;e=e|0;i=i|0;a[46984]=A;return y5[a[e>>2]&63](e,i,2)|0}function SB(A,e){A=A|0;e=e|0;var i=0,r=0;i=(Ao(e,0,0)|0)+28|0;r=a[i>>2]|0;a[i>>2]=7;a[46984]=A;if(!(Hk(e)|0)){a[i>>2]=r;a[46984]=0;A=0}else A=1;return A|0}function OB(A,e,i){A=A|0;e=e|0;i=i|0;if(i|0?(Ao(e,0,0)|0)!=(i|0):0)Ao(e,i,0)|0;return}function KB(A,e){A=A|0;e=e|0;if(!(tB(A)|0))e=qB(A,e)|0;else _B(A,e)|0;return e|0}function _B(A,e){A=A|0;e=e|0;var i=0,f=0,a=0;r[e>>0]=60;f=e;while(1){i=f+1|0;a=r[A>>0]|0;if(!(a<<24>>24))break;r[i>>0]=a;A=A+1|0;f=i}r[i>>0]=62;r[f+2>>0]=0;return e|0}function qB(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0;A:do{if((A|0)!=0?(r[A>>0]|0)!=0:0){r[e>>0]=34;b=r[A>>0]|0;h=0;n=((b+-45&255)<2|((b&255)+-48|0)>>>0<10)&1;l=0;t=0;c=0;i=e+1|0;f=A+1|0;e:while(1){s=i;while(1){if(!(b<<24>>24))break e;i=b&255;i:do{if(b<<24>>24==34){r[s>>0]=92;u=n;w=1;s=s+1|0}else{if(!n){w=b<<24>>24>-1&(b<<24>>24!=95&(V1(i)|0)==0);u=0;w=w?1:l;break}switch(b<<24>>24){case 45:{w=(c|0)==0;u=w?n:0;w=w?l:1;break i}case 46:{w=(t|0)==0;u=w?n:0;w=w?l:1;t=t+1|0;break i}default:{w=(i+-48|0)>>>0<10;u=w?n:0;w=w?l:1;break i}}}}while(0);i=s+1|0;r[s>>0]=b;o=f+1|0;k=r[f>>0]|0;c=c+1|0;f=a[5031]|0;if(!f){n=u;l=w;s=i;f=o;b=k;continue}n=k&255;l=k<<24>>24!=0;if((h&l?!(b<<24>>24==92|b<<24>>24>-1&((b+-45&255)>1&(V1(b<<24>>24)|0)==0)^1):0)?!(k<<24>>24>-1&((k+-45&255)>1&(V1(n)|0)==0)):0)break;if((c|0)<(f|0)|l^1){n=u;l=w;s=i;f=o;b=k;continue}if(b<<24>>24==92|b<<24>>24>-1&((V1(b<<24>>24)|0)==0&(b+-45&255)>1)^1){h=1;n=u;l=w;b=k;f=o;continue e}if(k<<24>>24>-1&((k+-45&255)>1&(V1(n)|0)==0)){h=1;n=u;l=w;b=k;f=o;continue e}r[i>>0]=92;r[s+2>>0]=10;n=u;l=1;c=0;s=s+3|0;f=o;b=k}r[i>>0]=92;r[s+2>>0]=10;h=0;n=u;l=1;c=0;b=k;i=s+3|0;f=o}r[s>>0]=34;r[s+1>>0]=0;if(!l){if((c|0)==1?((r[A>>0]|0)+-45&255)<2:0){A=e;break}else i=20128;while(1){f=a[i>>2]|0;if(!f)break A;if(!(p1(f,A)|0)){A=e;break}else i=i+4|0}}else A=e}else A=97309}while(0);return A|0}function $B(A){A=A|0;return KB(A,Ag(A)|0)|0}function Ag(A){A=A|0;var e=0;e=((P2(A)|0)<<1)+2|0;e=e>>>0>1024?e:1024;A=a[46986]|0;if(e>>>0>(a[46985]|0)>>>0){if(!A)A=Q2(e)|0;else A=W2(A,e)|0;a[46986]=A;a[46985]=e}return A|0}function eg(A,e){A=A|0;e=e|0;A=RB(A)|0;while(1){if(!A){A=0;break}if((ig(A)|0)==0?kd(A,e,0)|0:0){A=1;break}A=XB(A)|0}return A|0}function ig(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0;l=Vh(A)|0;if((l|0)!=0?(r[l>>0]|0)!=37:0)e=0;else i=3;A:do{if((i|0)==3){e=Co(A)|0;e:do{if(e|0?(f=Co(HB(A)|0)|0,f|0):0){l=Sk(a[(Co(Zd(A)|0)|0)+8>>2]|0)|0;n=e+12|0;i=f+12|0;e=0;while(1){if((e|0)>=(l|0))break e;f=a[(a[n>>2]|0)+(e<<2)>>2]|0;if((f|0?(t=a[(a[i>>2]|0)+(e<<2)>>2]|0,t|0):0)?A1(f,t)|0:0){e=0;break A}e=e+1|0}}}while(0);e=ho(A,0)|0;if(e)if((Sk(a[e+8>>2]|0)|0)>0)e=0;else return(Sk(a[e+12>>2]|0)|0)<1|0;else e=1}}while(0);return e|0}function rg(A,e){A=A|0;e=e|0;var i=0,f=0;a[46987]=0;i=Ho(A,97319)|0;if((i|0?((r[i>>0]|0)+-48|0)>>>0<10:0)?(f=n3(i,0,10)|0,(f|0)==0|(f|0)>59):0)a[5031]=f;fg(A,1);if(((ag(A,e,1)|0)!=-1?(ng(A,e)|0)!=-1:0)?(lg(A,e)|0)!=-1:0){a[5031]=128;A=m5[a[(a[(a[A+64>>2]|0)+8>>2]|0)+8>>2]&63](e)|0}else A=-1;return A|0}function fg(A,e){A=A|0;e=e|0;var i=0;a[A>>2]=a[A>>2]&-9;i=RB(A)|0;while(1){if(!i)break;fg(i,0);i=XB(i)|0}A:do{if(e|0){e=cd(A)|0;while(1){if(!e)break A;a[e>>2]=a[e>>2]&-9;i=Oo(A,e)|0;while(1){if(!i)break;a[i>>2]=a[i>>2]&-9;i=_o(A,i)|0}e=sd(A,e)|0}}}while(0);return}function ag(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0;if((i|0)==0?(HB(A)|0)!=0:0){t=0;n=195059;s=109514}else{s=(r[A+24>>0]&1)==0?195059:97363;n=(Gh(A)|0)==0;a[46988]=Yo(A,2,111455,0)|0;a[46989]=Yo(A,2,111464,0)|0;t=1;n=n?195059:97366}f=Vh(A)|0;if((f|0)!=0?(r[f>>0]|0)!=37:0){l=1;c=102604}else{l=0;c=195059;f=195059}do{if((tg(A,e)|0)!=-1?(cg(A,e,n)|0)!=-1:0){n=(l|0)==0;if(l|t|0){if((cg(A,e,s)|0)==-1){f=-1;break}if((cg(A,e,102597)|0)==-1){f=-1;break}}if(!n?(vg(A,e,f)|0)==-1:0){f=-1;break}if(((cg(A,e,c)|0)!=-1?(cg(A,e,97374)|0)!=-1:0)?(a[46987]=(a[46987]|0)+1,(Gg(A,e,i)|0)!=-1):0){a[A>>2]=a[A>>2]|8;f=0}else f=-1}else f=-1}while(0);return f|0}function ng(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0;A:do{if((sg(A,e)|0)==-1)i=-1;else{s=ho(Zd(A)|0,0)|0;t=(s|0)==0;c=s+12|0;s=s+8|0;l=cd(A)|0;while(1){if(!l){i=0;break A}if(bg(A,l,(a[l>>2]|0)>>>4,0)|0){if(t)i=0;else i=a[s>>2]|0;if((ug(l,e,i)|0)==-1){i=-1;break A}}n=Oo(A,l)|0;i=l;while(1){if(!n)break;f=n+-48|0;r=a[((a[n>>2]&3|0)==2?n:f)+40>>2]|0;if((i|0)!=(r|0)?(bg(A,r,(a[l>>2]|0)>>>4,0)|0)!=0:0){if(t)i=0;else i=a[s>>2]|0;if((ug(a[((a[n>>2]&3|0)==2?n:f)+40>>2]|0,e,i)|0)==-1){i=-1;break A}i=a[((a[n>>2]&3|0)==2?n:f)+40>>2]|0}if(wg(A,n)|0){if(t)r=0;else r=a[c>>2]|0;if((kg(n,e,r)|0)==-1){i=-1;break A}}n=_o(A,n)|0}l=sd(A,l)|0}}}while(0);return i|0}function lg(A,e){A=A|0;e=e|0;a[46987]=(a[46987]|0)+-1;if((tg(A,e)|0)==-1)A=-1;else A=((cg(A,e,111008)|0)==-1)<<31>>31;return A|0}function tg(A,e){A=A|0;e=e|0;var i=0;i=a[46987]|0;while(1){if((i|0)<=0){i=0;break}if((cg(A,e,153597)|0)==-1){i=-1;break}else i=i+-1|0}return i|0}function cg(A,e,i){A=A|0;e=e|0;i=i|0;return Q5[a[(a[(a[A+64>>2]|0)+8>>2]|0)+4>>2]&127](e,i)|0}function sg(A,e){A=A|0;e=e|0;A=RB(A)|0;while(1){if(!A){A=0;break}if(!(ig(A)|0)){if((ag(A,e,0)|0)==-1){A=-1;break}if((ng(A,e)|0)==-1){A=-1;break}if((lg(A,e)|0)==-1){A=-1;break}}else sg(A,e)|0;A=XB(A)|0}return A|0}function bg(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0;if((eg(A,e)|0)==0?(Cg(A,e,i,r)|0)!=0:0)if((Ig(A,e)|0)==0?(Zg(e)|0)==0:0)f=5;else A=1;else f=5;if((f|0)==5)A=0;return A|0}function ug(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=Id(A)|0;do{if((tg(r,e)|0)!=-1?(og(A,e)|0)!=-1:0){if((dg(A)|0)==0?(Bg(A,e,i)|0)==-1:0){A=-1;break}A=cg(r,e,97330)|0}else A=-1}while(0);return A|0}function wg(A,e){A=A|0;e=e|0;A=RB(A)|0;while(1){if(!A){A=1;break}if((ig(A)|0)==0?uh(A,e,0)|0:0){A=0;break}A=XB(A)|0}return A|0}function kg(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;r=a[A>>2]&3;n=a[((r|0)==3?A:A+48|0)+40>>2]|0;r=a[((r|0)==2?A:A+-48|0)+40>>2]|0;f=Id(n)|0;do{if((((((tg(f,e)|0)!=-1?(og(n,e)|0)!=-1:0)?(hg(A,e,a[46988]|0)|0)!=-1:0)?(n=(Ih(Id(n)|0)|0)!=0,(cg(f,e,n?100079:100084)|0)!=-1):0)?(og(r,e)|0)!=-1:0)?(hg(A,e,a[46989]|0)|0)!=-1:0){if(!(dg(A)|0)){if((Bg(A,e,i)|0)==-1){A=-1;break}}else if((gg(A,e,1)|0)==-1){A=-1;break}A=cg(f,e,97330)|0}else A=-1}while(0);return A|0}function og(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0;t=k;k=k+32|0;n=t;i=t+8|0;r=Vh(A)|0;f=Id(A)|0;if(!r){c=A+8|0;A=a[c+4>>2]|0;r=n;a[r>>2]=a[c>>2];a[r+4>>2]=A;S4(i,97350,n)|0;if((cg(f,e,i)|0)==-1)A=-1;else l=4}else if((vg(f,e,r)|0)==-1)A=-1;else l=4;if((l|0)==4)A=0;k=t;return A|0}function hg(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,a=0;A:do{if((i|0)!=0?(f=Id(A)|0,a=Uo(A,i)|0,(r[a>>0]|0)!=0):0)if((cg(f,e,107984)|0)==-1)A=-1;else{do{if(tB(a)|0){if((vg(f,e,a)|0)==-1){A=-1;break A}}else{A=G1(a,58)|0;if(!A)if((Eg(f,e,a,0)|0)==-1){A=-1;break A}else break;r[A>>0]=0;if((Eg(f,e,a,0)|0)==-1){A=-1;break A}if((cg(f,e,107984)|0)==-1){A=-1;break A}if((Eg(f,e,A+1|0,0)|0)==-1){A=-1;break A}r[A>>0]=58}}while(0);A=0}else A=0}while(0);return A|0}function dg(A){A=A|0;return(a[A>>2]|0)>>>3&1|0}function Bg(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,s=0;A:do{if(!(a[A>>2]&2)){r=0;s=4}else{switch(gg(A,e,0)|0){case-1:{r=-1;break A}case 0:{r=0;s=4;break A}default:{}}r=1;s=4}}while(0);A:do{if((s|0)==4){f=Co(A)|0;c=Id(A)|0;e:do{if(f){t=f+12|0;l=y5[a[i>>2]&63](i,0,128)|0;while(1){if(!l)break e;do{if(a[A>>2]&2){n=a[46988]|0;if(n|0?(a[l+16>>2]|0)==(a[n+16>>2]|0):0)break;n=a[46989]|0;if(!((n|0)!=0?(a[l+16>>2]|0)==(a[n+16>>2]|0):0))s=12}else s=12}while(0);if((s|0)==12){s=0;f=l+16|0;if((a[(a[t>>2]|0)+(a[f>>2]<<2)>>2]|0)!=(a[l+12>>2]|0)){n=r+1|0;if(r){if((cg(c,e,97345)|0)==-1){r=-1;break A}if((tg(c,e)|0)==-1){r=-1;break A}}else{if((tg(c,e)|0)==-1){r=-1;break A}if((cg(c,e,97342)|0)==-1){r=-1;break A}a[46987]=(a[46987]|0)+1}if((vg(c,e,a[l+8>>2]|0)|0)==-1){r=-1;break A}if((cg(c,e,97348)|0)==-1){r=-1;break A}if((vg(c,e,a[(a[t>>2]|0)+(a[f>>2]<<2)>>2]|0)|0)==-1){r=-1;break A}else r=n}}l=y5[a[i>>2]&63](i,l,8)|0}}}while(0);if((r|0)>0){if((cg(c,e,97340)|0)==-1){r=-1;break}a[46987]=(a[46987]|0)+-1}a[A>>2]=a[A>>2]|8;r=0}}while(0);return r|0}function gg(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,a=0;f=Vh(A)|0;A=Id(A)|0;if((f|0)!=0?(r[f>>0]|0)!=0:0)if((cg(A,e,97333)|0)!=-1?(vg(A,e,f)|0)!=-1:0)if((i|0)!=0?(cg(A,e,97340)|0)==-1:0)A=-1;else{A=1;a=7}else A=-1;else{A=0;a=7}return A|0}function vg(A,e,i){A=A|0;e=e|0;i=i|0;return Eg(A,e,i,1)|0}function Eg(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;if(!r)i=qB(i,Ag(i)|0)|0;else i=$B(i)|0;return cg(A,e,i)|0}function Cg(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;A:do{if(0>>0|(0==(r|0)?(a[e>>2]|0)>>>4>>>0>>0:0))e=0;else{e=qo(A,e)|0;while(1){if(!e){e=1;break A}if(0>>0|(0==(r|0)?(a[a[e+40>>2]>>2]|0)>>>4>>>0>>0:0)){e=0;break A}e=$o(A,e)|0}}}while(0);return e|0}function Ig(A,e){A=A|0;e=e|0;if(!(qo(A,e)|0))A=(Oo(A,e)|0)==0&1;else A=0;return A|0}function Zg(A){A=A|0;var e=0,i=0,r=0;A=Co(A)|0;A:do{if(!A)A=0;else{i=A+8|0;r=a[i>>2]|0;e=A+12|0;A=y5[a[r>>2]&63](r,0,128)|0;while(1){if(!A){A=0;break A}if((a[(a[e>>2]|0)+(a[A+16>>2]<<2)>>2]|0)!=(a[A+12>>2]|0)){A=1;break A}r=a[i>>2]|0;A=y5[a[r>>2]&63](r,A,8)|0}}}while(0);return A|0}function Gg(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;r=ho(A,0)|0;if(r)if(((mg(A,e,111494,a[r+16>>2]|0,i)|0)!=-1?(mg(A,e,111481,a[r+8>>2]|0,i)|0)!=-1:0)?(mg(A,e,111450,a[r+12>>2]|0,i)|0)!=-1:0)f=5;else A=-1;else f=5;if((f|0)==5)A=0;return A|0}function mg(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0;u=(n|0)!=0;if(u)b=0;else b=_k(f,0)|0;s=(b|0)==0;c=y5[a[f>>2]&63](f,0,128)|0;n=0;while(1){if(!c){w=23;break}t=c+12|0;w=a[t>>2]|0;if((w|0)!=0?(r[w>>0]|0)!=0:0)w=12;else w=7;do{if((w|0)==7){w=0;if(!(r[c+22>>0]|0)){if(!s){l=y5[a[b>>2]&63](b,c,4)|0;k=a[l+12>>2]|0;if(k|0?r[k>>0]|0:0){w=12;break}if(!(r[l+22>>0]|0))w=12}}else w=12}}while(0);if((w|0)==12){w=0;l=n+1|0;if(n){if((cg(A,e,97345)|0)==-1){n=-1;break}if((tg(A,e)|0)==-1){n=-1;break}}else{if((tg(A,e)|0)==-1){n=-1;break}if((cg(A,e,i)|0)==-1){n=-1;break}if((cg(A,e,97342)|0)==-1){n=-1;break}a[46987]=(a[46987]|0)+1}if((vg(A,e,a[c+8>>2]|0)|0)==-1){n=-1;break}if((cg(A,e,97348)|0)==-1){n=-1;break}if((vg(A,e,a[t>>2]|0)|0)==-1){n=-1;break}else n=l}c=y5[a[f>>2]&63](f,c,8)|0}do{if((w|0)==23){if((n|0)>0){a[46987]=(a[46987]|0)+-1;if((n|0)!=1){if((cg(A,e,153599)|0)==-1){n=-1;break}if((tg(A,e)|0)==-1){n=-1;break}}n=(cg(A,e,97377)|0)==-1;if(u|n){n=n<<31>>31;break}}else if(u){n=0;break}_k(f,b)|0;n=0}}while(0);return n|0}function Qg(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0;switch(a[e>>2]&3){case 0:{n=82;break}case 1:{n=83;break}case 3:case 2:{n=84;break}default:{}}e=Q5[n&127](A,e)|0;if(!e)e=-1;else{zg(A,e,i,r,n,f);e=0}return e|0}function Lg(A,e){A=A|0;e=e|0;if((Id(e)|0)!=(A|0))e=uh(A,e,0)|0;return e|0}function yg(A,e){A=A|0;e=e|0;if((Id(e)|0)!=(A|0))e=kd(A,e,0)|0;return e|0}function Wg(A,e){A=A|0;e=e|0;return A|0}function zg(A,e,i,r,f,a){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;var n=0,l=0,t=0;l=(a|0)!=0;if(l)J5[i&127](A,e,r);n=RB(A)|0;while(1){if(!n)break;t=Q5[f&127](n,e)|0;if(t|0)zg(n,t,i,r,f,a);n=XB(n)|0}if(!l)J5[i&127](A,e,r);return}function Yg(){var A=0,e=0,i=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0;g=k;k=k+1200|0;d=g+800|0;i=g;a[46990]=0;a[46991]=-2;e=d;t=200;u=i;o=0;h=0;w=d;A:while(1){f[w>>1]=o;if((e+(t<<1)+-2|0)>>>0>w>>>0)s=t;else{b=w-e>>1;A=b+1|0;if(t>>>0>9999){B=75;break}s=t<<1;s=s>>>0<1e4?s:1e4;l=Q2(s*6|3)|0;if(l){W6(l|0,e|0,A<<1|0)|0;t=l+(s>>>1<<2)|0;W6(t|0,u|0,A<<2|0)|0;if((e|0)==(d|0)){A=0;e=l}else{L2(e);A=0;e=l}}else{A=4;t=u}c=(A|0)==0;l=e+(b<<1)|0;switch((c?(e+(s<<1)+-2|0)>>>0>l>>>0?0:9:A)&15){case 9:{A=1;B=76;break A}case 4:{B=75;break A}case 0:{i=c?t+(b<<2)|0:i;u=t;w=c?l:w;break}default:{A=0;break A}}}if((o|0)==6){A=0;B=76;break}A=r[97381+o>>0]|0;c=A<<24>>24;do{if(A<<24>>24!=-18){l=a[46991]|0;if((l|0)==-2){l=uB()|0;a[46991]=l}if((l|0)>=1)if(l>>>0<269)t=n[97461+l>>0]|0;else t=2;else{a[46991]=0;t=0}l=t+c|0;if(l>>>0<=59?(t|0)==(n[97730+l>>0]|0):0){o=r[97790+l>>0]|0;A=o<<24>>24;if(o<<24>>24<1){l=0-A|0;B=23;break}else{a[46991]=-2;i=i+4|0;a[i>>2]=a[46992];c=(h|0)==0?0:h+-1|0;l=w;break}}else B=22}else B=22}while(0);if((B|0)==22){B=0;o=r[97850+o>>0]|0;l=o&255;if(!(o<<24>>24)){l=a[46991]|0;e:do{switch(h|0){case 0:{a[46990]=(a[46990]|0)+1;DB(143761);l=w;break}case 3:if((l|0)<1)if(!l){A=1;B=76;break A}else{l=w;break e}else{a[46991]=-2;l=w;break e}default:l=w}}while(0);while(1){if(A<<24>>24==18)break;if((l|0)==(e|0)){A=1;B=76;break A}A=l+-2|0;i=i+-4|0;l=A;A=r[97381+(f[A>>1]|0)>>0]|0}i=i+4|0;a[i>>2]=a[46992];A=1;c=3}else B=23}do{if((B|0)==23){B=0;t=n[97930+l>>0]|0;A=a[i+(1-t<<2)>>2]|0;e:do{switch(l|0){case 2:{Dg();Mg();break}case 3:{if(a[46993]|0){Dg();Mg();Bh(a[46993]|0)|0;a[46942]=0;a[46993]=0}break}case 6:{Fg(a[i>>2]|0,a[i+-4>>2]|0,a[i+-8>>2]|0);break}case 7:{A=a[i>>2]|0;break}case 8:{A=0;break}case 9:{A=1;break}case 10:{A=0;break}case 11:{A=0;break}case 12:{A=1;break}case 21:if(!(a[i+-4>>2]|0)){Jg();break e}else{Vg();break e}case 24:{pg();break}case 25:{pg();break}case 26:{A=1;break}case 27:{A=0;break}case 30:{Ng(a[i>>2]|0,0,0);break}case 31:{Ng(a[i+-8>>2]|0,a[i>>2]|0,0);break}case 32:{Ng(a[i+-16>>2]|0,a[i+-8>>2]|0,a[i>>2]|0);break}case 33:{Rg(a[i+-8>>2]|0,a[i+-4>>2]|0);break}case 34:{Rg(258,0);break}case 35:{A=258;break}case 36:{A=259;break}case 37:{A=260;break}case 38:{A=a[i+-4>>2]|0;break}case 39:{A=0;break}case 48:{Xg(a[i+-8>>2]|0,a[i>>2]|0);break}case 49:{Xg(a[i>>2]|0,0);break}case 51:{Hg(a[i>>2]|0);break}case 52:{Ug();break}case 53:{A=a[i>>2]|0;break}case 54:{A=0;break}case 55:{A=0;break}case 59:{A=a[i>>2]|0;break}case 60:{A=a[i>>2]|0;break}case 61:{A=a[i>>2]|0;break}case 62:{A=xg(a[i+-8>>2]|0,a[i>>2]|0)|0;break}default:{}}}while(0);t=0-t|0;o=i+(t<<2)|0;t=w+(t<<1)|0;i=o+4|0;a[o+4>>2]=A;A=(n[97993+l>>0]|0)+-24|0;o=f[t>>1]|0;l=o+(r[98056+A>>0]|0)|0;if(l>>>0<60?(n[97730+l>>0]|0)==(o|0):0){A=r[97790+l>>0]|0;c=h;l=t;break}A=r[98091+A>>0]|0;c=h;l=t}}while(0);t=s;o=A;h=c;w=l+2|0}if((B|0)==75){DB(140558);A=2;B=76}if((B|0)==76)if((e|0)!=(d|0))L2(e);k=g;return A|0}function Dg(){var A=0,e=0;A=a[46994]|0;while(1){if(!A)break;qg(A+8|0);qg((a[46994]|0)+24|0);qg((a[46994]|0)+16|0);e=Tg(a[46994]|0)|0;a[46994]=e;A=e}return}function Mg(){MB();Th(a[46993]|0);return}function Fg(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0;l=k;k=k+16|0;n=l;f=a[46993]|0;if(!f){r[187980]=e&1|(i&255)<<1&2|r[187980]&-12|8;f=a[46996]|0;r[n>>0]=r[187980]|0;r[n+1>>0]=r[187981]|0;r[n+2>>0]=r[187982]|0;r[n+3>>0]=r[187983]|0;f=kh(A,n,f)|0;a[46993]=f}a[46942]=f;a[46994]=jg(a[46994]|0,f)|0;lB(0,A)|0;k=l;return}function Vg(){var A=0,e=0,i=0,f=0,n=0,l=0;_g(2);i=a[46994]|0;f=r[98126]|0;l=0;A=i+24|0;while(1){e=a[A>>2]|0;if(!e)break;if(((a[e>>2]|0)==267?(n=a[e+4>>2]|0,(r[n>>0]|0)==f<<24>>24):0)?(A1(n,98126)|0)==0:0)A=a[e+8>>2]|0;else A=l;l=A;A=e+12|0}A=i+16|0;A:while(1){i=a[A>>2]|0;A=i+12|0;if(!(a[A>>2]|0))break;e=i+4|0;if((a[i>>2]|0)==262){i=a[e>>2]|0;e=cd(i)|0;while(1){if(!e)continue A;n=kd(a[a[46994]>>2]|0,e,0)|0;av(n,0,a[A>>2]|0,l);e=sd(i,e)|0}}else while(1){e=a[e>>2]|0;if(!e)continue A;av(a[e+4>>2]|0,a[e+8>>2]|0,a[A>>2]|0,l);e=e+12|0}}qg((a[46994]|0)+8|0);qg((a[46994]|0)+16|0);qg((a[46994]|0)+24|0);a[(a[46994]|0)+4>>2]=0;return}function Jg(){var A=0;_g(1);A=(a[46994]|0)+8|0;while(1){A=a[A>>2]|0;if(!A)break;fv(a[A+4>>2]|0);A=A+12|0}qg((a[46994]|0)+8|0);qg((a[46994]|0)+24|0);qg((a[46994]|0)+16|0);a[(a[46994]|0)+4>>2]=0;return}function pg(){var A=0,e=0;A=a[46994]|0;e=a[A+8>>2]|0;if(!e){e=a[A+4>>2]|0;if(!e)e=0;else{e=rv(e)|0;A=a[46994]|0}a[A+4>>2]=0}else{e=iv(e)|0;A=a[46994]|0;a[A+12>>2]=0;a[A+8>>2]=0}if(e|0)Sg(A+16|0,e);return}function Ng(A,e,i){A=A|0;e=e|0;i=i|0;if(i)e=Av(e,i)|0;i=ev(gd(a[a[46994]>>2]|0,A,1)|0,e)|0;Sg((a[46994]|0)+8|0,i);lB(a[46993]|0,A)|0;return}function Rg(A,e){A=A|0;e=e|0;var i=0,f=0,n=0;if(e|0)Kg();e=(a[46994]|0)+24|0;while(1){e=a[e>>2]|0;if(!e)break;if(!(a[e+8>>2]|0))Kg();e=e+12|0}n=(A|0)==260?2:(A|0)==259&1;_g(n);A=a[46994]|0;e=A+24|0;while(1){f=a[e>>2]|0;if(!f)break;do{if((a[f>>2]|0)!=267){e=a[f+4>>2]|0;i=a[A>>2]|0;if(!((r[e+21>>0]|0)!=0&(i|0)==(a[46993]|0))){e=Yo(i,n,a[e+8>>2]|0,a[f+8>>2]|0)|0;A=a[46994]|0;if((a[A>>2]|0)!=(a[46993]|0))break}r[e+22>>0]=1}}while(0);e=f+12|0}qg(A+24|0);return}function Xg(A,e){A=A|0;e=e|0;e=Pg(A,e)|0;Sg((a[46994]|0)+24|0,e);return}function Hg(A){A=A|0;var e=0;e=a[46994]|0;a[46994]=jg(e,NB(a[e>>2]|0,A,1)|0)|0;lB(a[46993]|0,A)|0;return}function Ug(){var A=0,e=0;A=a[46994]|0;e=a[A>>2]|0;A=Tg(A)|0;a[46994]=A;a[A+4>>2]=e;return}function xg(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;n=k;k=k+1024|0;f=n;i=P2(A)|0;i=i+1+(P2(e)|0)|0;if(i>>>0<1025)i=f;else i=Q2(i)|0;$1(i,A)|0;w3(i,e)|0;r=aB(a[46993]|0,i)|0;lB(a[46993]|0,A)|0;lB(a[46993]|0,e)|0;if((i|0)!=(f|0))L2(i);k=n;return r|0}function Tg(A){A=A|0;var e=0;e=a[(a[46994]|0)+32>>2]|0;fd(a[46993]|0,A);return e|0}function jg(A,e){A=A|0;e=e|0;var i=0;i=rd(a[46993]|0,36)|0;a[i+32>>2]=A;a[i>>2]=e;return i|0}function Pg(A,e){A=A|0;e=e|0;return Og(267,A,e)|0}function Sg(A,e){A=A|0;e=e|0;var i=0,r=0;i=A+4|0;r=a[i>>2]|0;if(r|0)a[r+12>>2]=e;a[i>>2]=e;if(!(a[A>>2]|0))a[A>>2]=e;return}function Og(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=rd(a[46993]|0,16)|0;a[r>>2]=A;a[r+4>>2]=e;a[r+8>>2]=i;return r|0}function Kg(){var A=0;A=k;k=k+16|0;ao(0,98130,A)|0;k=A;return}function _g(A){A=A|0;var e=0,i=0,f=0,n=0,l=0;n=(A|0)==2;e=(a[46994]|0)+24|0;while(1){e=a[e>>2]|0;if(!e)break;i=e+4|0;f=a[i>>2]|0;if(!((n?(r[f>>0]|0)==(r[98126]|0):0)?!(A1(f,98126)|0):0)){l=Yo(a[a[46994]>>2]|0,A,f,0)|0;a[i>>2]=l;if(!l)a[i>>2]=Yo(a[a[46994]>>2]|0,A,f,195059)|0;a[e>>2]=266;lB(a[46993]|0,f)|0}e=e+12|0}return}function qg(A){A=A|0;$g(a[A>>2]|0);a[A+4>>2]=0;a[A>>2]=0;return}function $g(A){A=A|0;var e=0;while(1){if(!A)break;e=a[A+12>>2]|0;switch(a[A>>2]|0){case 265:{$g(a[A+4>>2]|0);break}case 266:case 267:{lB(a[46993]|0,a[A+8>>2]|0)|0;break}default:{}}fd(a[46993]|0,A);A=e}return}function Av(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;l=k;k=k+1040|0;f=l;n=l+8|0;i=P2(A)|0;i=i+2+(P2(e)|0)|0;if(i>>>0<1025)r=n;else r=Q2(i)|0;a[f>>2]=A;a[f+4>>2]=e;S4(r,98163,f)|0;i=aB(a[46993]|0,r)|0;lB(a[46993]|0,A)|0;lB(a[46993]|0,e)|0;if((r|0)!=(n|0))L2(r);k=l;return i|0}function ev(A,e){A=A|0;e=e|0;return Og(259,A,e)|0}function iv(A){A=A|0;return Og(265,A,0)|0}function rv(A){A=A|0;return Og(262,A,0)|0}function fv(A){A=A|0;var e=0,i=0;e=(a[46994]|0)+24|0;while(1){e=a[e>>2]|0;if(!e)break;if((a[e>>2]|0)==266?(i=a[e+4>>2]|0,i|0):0)Vo(A,i,a[e+8>>2]|0)|0;e=e+12|0}return}function av(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0;f=i+4|0;A:do{if((a[i>>2]|0)==262){i=a[f>>2]|0;f=cd(i)|0;while(1){if(!f)break A;nv(A,e,kd(a[a[46994]>>2]|0,f,0)|0,0,r);f=sd(i,f)|0}}else while(1){f=a[f>>2]|0;if(!f)break A;i=kd(a[a[46994]>>2]|0,a[f+4>>2]|0,0)|0;nv(A,e,i,a[f+8>>2]|0,r);f=f+12|0}}while(0);return}function nv(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0;i=th(a[a[46994]>>2]|0,A,i,f,1)|0;if(i|0){n=a[i>>2]&3;f=a[((n|0)==2?i:i+-48|0)+40>>2]|0;A=(f|0)==(A|0)?(a[((n|0)==3?i:i+48|0)+40>>2]|0)!=(f|0):0;lv(i,111455,A?r:e);lv(i,111464,A?e:r);fv(i)}return}function lv(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;if(i|0){r=Yo(a[a[46994]>>2]|0,2,e,0)|0;if(!r)r=Yo(a[a[46994]>>2]|0,2,e,195059)|0;Vo(A,r,i)|0}return}function tv(A,e,i){A=A|0;e=e|0;i=i|0;a[46962]=e;a[46993]=A;a[46942]=0;A=i|0?i:18600;a[46996]=A;bB(A,e);Yg()|0;A=a[46942]|0;if(!A){VB();A=a[46942]|0}return A|0}function cv(A,e){A=A|0;e=e|0;return tv(0,A,e)|0}function sv(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,s=0;s=k;k=k+16|0;c=s+8|0;t=s;e=a[A+76>>2]|0;f=a[A>>2]|0;if((e|0)!=0?(i=a[e>>2]|0,(i|0)!=0):0){F5[i&127](A);n=12}else n=4;do{if((n|0)==4)if((a[A+40>>2]|0)==0?(l=A+36|0,(a[l>>2]|0)==0):0){if(r[f+13>>0]|0)bv(A);e=A+32|0;i=a[e>>2]|0;if(!i){a[l>>2]=a[15679];n=12;break}f=F3(i,106512)|0;a[l>>2]=f;if(!f){c=a[(a[A+12>>2]|0)+16>>2]|0;l=a[e>>2]|0;e=e1(a[(N2()|0)>>2]|0)|0;a[t>>2]=l;a[t+4>>2]=e;V5[c&63](98169,t);e=1}else n=12}else n=12}while(0);if((n|0)==12)if(!(a[A+152>>2]&1024))e=0;else{V5[a[(a[A+12>>2]|0)+16>>2]&63](98207,c);e=1}k=s;return e|0}function bv(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0;l=k;k=k+112|0;i=l;n=l+4|0;e=a[A+24>>2]|0;if(!e)r[n>>0]=0;else{a[i>>2]=e+1;S4(n,98225,i)|0}i=a[A+20>>2]|0;i=i|0?i:98229;e=P2(i)|0;t=P2(n)|0;f=A+52|0;t=e+1+t+(P2(a[f>>2]|0)|0)|0;e=t+11|0;if((a[46997]|0)>>>0<(t+1|0)>>>0){a[46997]=e;e=W2(a[46998]|0,e)|0;a[46998]=e}else e=a[46998]|0;$1(e,i)|0;w3(a[46998]|0,n)|0;e=a[46998]|0;e=e+(P2(e)|0)|0;r[e>>0]=46;r[e+1>>0]=0;e=b3(a[f>>2]|0)|0;f=a[46998]|0;while(1){i=u3(e,58)|0;if(!i)break;w3(f,i+1|0)|0;t=a[46998]|0;n=t+(P2(t)|0)|0;r[n>>0]=46;r[n+1>>0]=0;r[i>>0]=0;f=t}w3(f,e)|0;L2(e);a[A+32>>2]=a[46998];k=l;return}function uv(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0;l=k;k=k+16|0;n=l+8|0;f=l;if((e|0)!=0&(i|0)!=0){if(a[A+152>>2]&1024|0){V5[a[(a[A+12>>2]|0)+16>>2]&63](98207,f);PA(1)}if((wv(A,e,i)|0)==(i|0))r=i;else{f=a[(a[A+12>>2]|0)+16>>2]|0;a[n>>2]=i;V5[f&63](98239,n);PA(1)}}else r=0;k=l;return r|0}function wv(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;w=k;k=k+16|0;u=w;f=a[(a[A>>2]|0)+104>>2]|0;do{if(!f){c=A+40|0;l=a[c>>2]|0;if(!l){i=L3(e,1,i,a[A+36>>2]|0)|0;break}f=A+44|0;t=A+48|0;n=a[t>>2]|0;do{if(((a[f>>2]|0)+-1-n|0)>>>0>>0){n=i+4096+n&-4096;a[f>>2]=n;f=W2(l,n)|0;a[c>>2]=f;if(!f){V5[a[(a[A+12>>2]|0)+16>>2]&63](98264,u);PA(1)}else{s=f;b=a[t>>2]|0;break}}else{s=l;b=n}}while(0);W6(s+b|0,e|0,i|0)|0;u=(a[t>>2]|0)+i|0;a[t>>2]=u;r[(a[c>>2]|0)+u>>0]=0}else i=y5[f&63](A,e,i)|0}while(0);k=w;return i|0}function kv(A,e){A=A|0;e=e|0;var i=0;i=P2(e)|0;e=(uv(A,e,i)|0)==(i|0);return(e?1:-1)|0}function ov(A,e){A=A|0;e=e|0;var i=0,f=0;i=k;k=k+16|0;f=i;r[f>>0]=e;A=(uv(A,f,1)|0)==1;k=i;return(A?e:-1)|0}function hv(A){A=A|0;var e=0;e=a[A+36>>2]|0;if(((e|0)!=0?(r[A+144>>0]|0)==0:0)?(a[(a[A>>2]|0)+104>>2]|0)==0:0)A=v3(e)|0;else A=0;return A|0}function dv(A){A=A|0;var e=0,i=0;e=a[A+76>>2]|0;if(e|0?(i=a[e+4>>2]|0,i|0):0)F5[i&127](A);hv(A)|0;return}function Bv(A){A=A|0;var e=0,i=0,r=0;r=k;k=k+16|0;i=a[A+76>>2]|0;if(a[A+152>>2]&1024|0){V5[a[(a[A+12>>2]|0)+16>>2]&63](98291,r);PA(1)}if((i|0)!=0?(e=a[i+8>>2]|0,(e|0)!=0):0)F5[e&127](A);else{hv(A)|0;gv(A)}k=r;return}function gv(A){A=A|0;var e=0,i=0,f=0;e=A+32|0;if((a[e>>2]|0?(i=A+36|0,f=a[i>>2]|0,(f|0)!=(a[15679]|0)):0)?(r[A+144>>0]|0)==0:0){if(f|0){h3(f)|0;a[i>>2]=0}a[e>>2]=0}return}function vv(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0;t=k;k=k+1056|0;f=t;l=t+24|0;n=t+8|0;a[n>>2]=i;r=k4(l,1024,e,n)|0;if((r|0)>=0){if((r|0)>1023){r=$F(r+1|0)|0;a[n>>2]=i;f=r;r=O4(r,e,n)|0}else f=l;uv(A,f,r)|0;if((f|0)!=(l|0))L2(f)}else{a[f>>2]=e1(a[(N2()|0)>>2]|0)|0;ao(1,98308,f)|0}k=t;return}function Ev(A,e){A=A|0;e=+e;var i=0,r=0,f=0;i=k;k=k+16|0;r=i;f=Cv(r,e)|0;uv(A,f,a[r>>2]|0)|0;k=i;return}function Cv(A,e){A=A|0;e=+e;var i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0;if(!(e<-1.0e15))if(!(e>1.0e15)){e=e*1.0e4;f=~~((e<0.0?-.5:.5)+e);if(!f){f=138394;i=1}else{b=(f|0)<0;s=4;t=0;i=194826;f=b?0-f|0:f;while(1){if(!((f|0)!=0|(s|0)>0))break;n=(f|0)%10|0;c=(f|0)/10|0;l=i+-1|0;if((n|0)==0&t<<24>>24==0)f=0;else{r[l>>0]=n|48;f=1;i=l}if((s|0)==1)if(!(f<<24>>24))f=1;else{i=i+-1|0;r[i>>0]=46;f=1}s=s+-1|0;t=f;f=c}if(b){i=i+-1|0;r[i>>0]=45}f=i;i=194826-i|0}}else{f=98323;i=18}else{f=98322;i=19}a[A>>2]=i;return f|0}function Iv(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;i=k;k=k+16|0;r=i;f=Cv(r,+s[e>>3])|0;uv(A,f,a[r>>2]|0)|0;uv(A,102604,1)|0;e=Cv(r,+s[e+8>>3])|0;uv(A,e,a[r>>2]|0)|0;k=i;return}function Zv(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0;n=k;k=k+16|0;f=n;r=0;while(1){l=e+(r<<4)|0;a[f>>2]=a[l>>2];a[f+4>>2]=a[l+4>>2];a[f+8>>2]=a[l+8>>2];a[f+12>>2]=a[l+12>>2];Iv(A,f);r=r+1|0;if((r|0)>=(i|0))break;uv(A,102604,1)|0}k=n;return}function Gv(A,e){A=A|0;e=e|0;var i=0;i=qF(392)|0;if(i|0){a[i>>2]=20156;a[i+16>>2]=23;a[i+32>>2]=A;a[i+36>>2]=e}return i|0}function mv(A){A=A|0;var e=0,i=0,r=0,f=0;e=qF(392)|0;i=e;r=A;f=i+40|0;do{a[i>>2]=a[r>>2];i=i+4|0;r=r+4|0}while((i|0)<(f|0));f=e+60|0;r=A+60|0;a[f>>2]=a[r>>2];a[f+4>>2]=a[r+4>>2];a[f+8>>2]=a[r+8>>2];a[f+12>>2]=a[r+12>>2];a[f+16>>2]=a[r+16>>2];f=e+80|0;r=A+80|0;a[f>>2]=a[r>>2];a[f+4>>2]=a[r+4>>2];a[f+8>>2]=a[r+8>>2];a[f+12>>2]=a[r+12>>2];a[f+16>>2]=a[r+16>>2];return e|0}function Qv(A){A=A|0;Mv(A);L2(A);return}function Lv(A,e){A=A|0;e=e|0;var i=0,r=0;r=A+160|0;i=a[r>>2]|0;if(i){r=a[46999]|0;if(r){i=a[r+4>>2]|0;if(!i){i=qF(632)|0;a[(a[46999]|0)+4>>2]=i}}}else{i=qF(632)|0;a[r>>2]=i;a[A+164>>2]=i}a[46999]=i;a[i+32>>2]=e;a[i>>2]=A;return}function yv(A,e){A=A|0;e=e|0;var i=0,r=0;r=A+160|0;i=a[r>>2]|0;if(i){r=a[47e3]|0;if(r){i=a[r+4>>2]|0;if(!i){i=qF(632)|0;a[(a[47e3]|0)+4>>2]=i}}}else{i=qF(632)|0;a[r>>2]=i;a[A+164>>2]=i}a[47e3]=i;a[i+52>>2]=e;a[i>>2]=A;return(Jv(A,3,e)|0)!=0|0}function Wv(A){A=A|0;var e=0;e=a[A+160>>2]|0;a[A+164>>2]=e;return e|0}function zv(A){A=A|0;var e=0,i=0,r=0;A=A+164|0;e=a[A>>2]|0;i=a[e+4>>2]|0;if(i|0?(r=i+52|0,(a[r>>2]|0)==0):0)a[r>>2]=a[e+52>>2];a[A>>2]=i;return i|0}function Yv(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;r=A+8|0;f=e+10|0;if((a[r>>2]|0)>(e|0))A=a[A>>2]|0;else{a[r>>2]=f;f=eV(a[A>>2]|0,f<<2)|0;a[A>>2]=f;A=f}a[A+(e<<2)>>2]=i;return}function Dv(A){A=A|0;var e=0;e=a[A>>2]|0;if(e|0)L2(e);a[A>>2]=0;a[A+8>>2]=0;a[A+4>>2]=0;return}function Mv(A){A=A|0;var e=0,i=0,r=0;i=A+160|0;e=a[i>>2]|0;while(1){if(!e)break;r=a[e+4>>2]|0;Dv(e+604|0);Dv(e+592|0);L2(a[e+584>>2]|0);L2(a[e+588>>2]|0);L2(e);e=r}a[47e3]=0;a[46999]=0;a[A+192>>2]=0;a[A+164>>2]=0;a[i>>2]=0;a[A+28>>2]=0;return}function Fv(A,e,i,f,n,l){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;l=l|0;var t=0,c=0,s=0,b=0,u=0;u=k;k=k+128|0;s=u+64|0;b=u;x4(s,i,63)|0;t=G1(s,58)|0;if(t|0)r[t>>0]=0;A=A+60+(e<<2)|0;while(1){e=a[A>>2]|0;if(!e){e=A;A=0;break}x4(b,a[e+4>>2]|0,63)|0;e=G1(b,58)|0;if(e|0)r[e>>0]=0;if((A1(s,b)|0)<1){c=9;break}A=a[A>>2]|0}while(1){if((c|0)==9){e=A;A=a[A>>2]|0}if(!A)break;x4(b,a[A+4>>2]|0,63)|0;A=G1(b,58)|0;if(A|0)r[A>>0]=0;if(A1(s,b)|0)break;A=a[e>>2]|0;if((a[A+8>>2]|0)<=(f|0))break;c=9}b=$F(20)|0;a[b>>2]=a[e>>2];a[e>>2]=b;a[b+4>>2]=i;a[b+8>>2]=f;a[b+12>>2]=n;a[b+16>>2]=l;k=u;return 1}function Vv(A,e){A=A|0;e=e|0;e=k;k=k+16|0;ao(1,98396,e)|0;k=e;return 0}function Jv(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0;B=k;k=k+144|0;d=B;w=B+80|0;o=B+16|0;u=(e+-3|0)>>>0<2?0:e;x4(w,i,63)|0;i=G1(w,58)|0;if(i){f=i+1|0;r[i>>0]=0;i=G1(f,58)|0;if(!i)b=0;else{r[i>>0]=0;b=i+1|0}}else{b=0;f=0}t=(f|0)!=0;c=(b|0)==0;s=(u|0)==(e|0);l=A+60+(e<<2)|0;A:while(1){i=a[l>>2]|0;if(!i){i=0;break}x4(o,a[i+4>>2]|0,63)|0;i=G1(o,58)|0;if(!i)i=0;else{r[i>>0]=0;i=i+1|0}do{if(!(A1(o,w)|0)){n=(i|0)!=0;if(t&n?A1(i,f)|0:0)break;if(!c?A1(b,a[(a[(a[l>>2]|0)+12>>2]|0)+8>>2]|0)|0:0)break;if(s|n^1){h=16;break A}if(Jv(A,u,i)|0){h=16;break A}}}while(0);l=a[l>>2]|0}do{if((h|0)==16){i=a[l>>2]|0;if(i){f=i+16|0;if((a[f>>2]|0)==0?(Vv(0,0)|0,(a[f>>2]|0)==0):0){i=0;break}if((a[A+8>>2]|0)>0){h=a[15712]|0;w=a[i+4>>2]|0;o=a[(a[i+12>>2]|0)+8>>2]|0;a[d>>2]=a[20168+(e<<2)>>2];a[d+4>>2]=w;a[d+8>>2]=o;f3(h,98427,d)|0}}else i=0}}while(0);a[A+80+(e<<2)>>2]=i;k=B;return i|0}function pv(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0;do{if(!i)i=0;else{if(a[5047]|0){co(188004,0,0);a[5047]=0}l=b3(i)|0;i=G1(l,58)|0;if(i){r[i>>0]=0;f=A+60+(e<<2)|0;i=1;n=f;while(1){A=a[n>>2]|0;if(!A)break;e=b3(a[A+4>>2]|0)|0;A=G1(e,58)|0;if(A|0)r[A>>0]=0;if(!((r[l>>0]|0)!=0?(p1(l,e)|0)!=0:0)){i=a[47002]|0;if(i>>>0>=(a[47003]|0)>>>0){so(188004,1)|0;i=a[47002]|0}a[47002]=i+1;r[i>>0]=32;uo(188004,a[(a[n>>2]|0)+4>>2]|0)|0;i=a[47002]|0;if(i>>>0>=(a[47003]|0)>>>0){so(188004,1)|0;i=a[47002]|0}a[47002]=i+1;r[i>>0]=58;uo(188004,a[(a[(a[n>>2]|0)+12>>2]|0)+8>>2]|0)|0;i=0}L2(e);n=a[n>>2]|0}L2(l);if(i<<24>>24){n=0;t=19}}else{L2(l);n=0;f=A+60+(e<<2)|0;i=1;t=19}if((t|0)==19){while(1){A=a[f>>2]|0;if(!A)break;e=b3(a[A+4>>2]|0)|0;A=G1(e,58)|0;if(A|0)r[A>>0]=0;if(!((n|0)!=0?(p1(n,e)|0)==0:0)){i=a[47002]|0;if(i>>>0>=(a[47003]|0)>>>0){so(188004,1)|0;i=a[47002]|0}a[47002]=i+1;r[i>>0]=32;uo(188004,e)|0;i=0}n=e;f=a[f>>2]|0;t=19}if(i<<24>>24){i=195059;break}}i=a[47002]|0;if(i>>>0>=(a[47003]|0)>>>0){so(188004,1)|0;i=a[47002]|0}r[i>>0]=0;i=a[47001]|0;a[47002]=i}}while(0);return i|0}function Nv(A){A=A|0;var e=0;if(!A)gA(111208,98444,573,98458);if(!(r[A>>0]|0))gA(111213,98444,574,98458);e=a[47005]|0;if(!e)A=0;else A=y5[a[e>>2]&63](e,A,512)|0;return A|0}function Rv(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,s=0;s=k;k=k+16|0;c=s+8|0;t=s;if(!A)gA(111312,98444,589,98475);n=A+8|0;i=a[n>>2]|0;if(!i)gA(111315,98444,590,98475);if(!(r[i>>0]|0))gA(111324,98444,591,98475);l=A+20|0;f=a[l>>2]|0;do{if(!f){e=yR(i)|0;if(!e){a[t>>2]=a[n>>2];ao(0,98499,t)|0;e=0;break}t=F3(e,138821)|0;a[l>>2]=t;if(!t){a[c>>2]=e1(a[(N2()|0)>>2]|0)|0;a[c+4>>2]=e;ao(0,98524,c)|0;e=0;break}e=a[47006]|0;if((e|0)>49){r[A+17>>0]=1;e=1;break}else{a[47006]=e+1;e=1;break}}else{O3(f,0,0)|0;if(!(a[l>>2]|0))gA(98545,98444,614,98475);else e=1}}while(0);k=s;return e|0}function Xv(A){A=A|0;var e=0,i=0;if(r[A+17>>0]|0?(e=A+20|0,i=a[e>>2]|0,i|0):0){h3(i)|0;a[e>>2]=0}return}function Hv(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0.0,n=0.0;if(!e){r=-1;i=-1}else{r=a[e+48>>2]|0;f=+(r|0);if(!r){n=+s[i>>3];f=+s[i+8>>3]}else{s[i+8>>3]=f;s[i>>3]=f;n=f}r=~~(+((a[e+40>>2]|0)*72|0)/n);i=~~(+((a[e+44>>2]|0)*72|0)/f)}a[A>>2]=r;a[A+4>>2]=i;return}function Uv(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,b=0,u=0.0;b=k;k=k+48|0;f=b+16|0;t=b;c=b+32|0;if((i|0)!=0?(r[i>>0]|0)!=0:0){if((true?(n=a[47133]|0,(a[47007]|0)!=(n|0)):undefined)?(a[47007]=n,l=a[47005]|0,l|0):0){Hk(l)|0;a[47005]=0}u=+s[(a[(a[e+16>>2]|0)+8>>2]|0)+24>>3];u=!(u>=1.0)?96.0:u;s[t+8>>3]=u;s[t>>3]=u;e=xv(i)|0;a[f>>2]=a[t>>2];a[f+4>>2]=a[t+4>>2];a[f+8>>2]=a[t+8>>2];a[f+12>>2]=a[t+12>>2];Hv(c,e,f);e=a[c>>2]|0;f=a[c+4>>2]|0}else{e=-1;f=-1}a[A>>2]=e;a[A+4>>2]=f;k=b;return}function xv(A){A=A|0;var e=0,i=0,r=0,f=0;f=k;k=k+16|0;r=f;if(!A)gA(111208,98444,638,98551);if(!(a[47005]|0))a[47005]=jk(20192,a[4589]|0)|0;e=Nv(A)|0;A:do{if(!e){e=qF(64)|0;if(!e)e=0;else{i=e+8|0;a[i>>2]=aB(0,A)|0;if(!((Rv(e)|0)<<24>>24)){Tv(e);e=0;break}if(!(a[e+20>>2]|0))gA(98545,98444,653,98551);do{switch(jv(e)|0){case 0:{A=Gp(a[i>>2]|0)|0;a[e+52>>2]=A;if(!A){a[r>>2]=a[i>>2];ao(0,98568,r)|0;Tv(e);e=0;break A}break}case 2:{Pv(e);break}case 3:{Sv(e);break}case 1:{Ov(e);break}case 4:{Kv(e);break}case 6:{_v(e);break}case 11:{qv(e);break}case 8:{$v(e);break}case 5:{AE(e);break}case 12:{eE(e);break}default:{}}}while(0);Xv(e);r=a[47005]|0;y5[a[r>>2]&63](r,e,1)|0}}else Xv(e)}while(0);k=f;return e|0}function Tv(A){A=A|0;var e=0;e=a[A+8>>2]|0;if(e|0)lB(0,e)|0;L2(A);return}function jv(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0;c=k;k=k+224|0;f=c+200|0;n=c;l=A+20|0;e=a[l>>2]|0;A:do{if((e|0)!=0?(a6(f,1,20,e)|0)==20:0){i=0;while(1){if(i>>>0>=10){t=13;break A}if(!(F4(f,a[20228+(i<<4)>>2]|0,a[20228+(i<<4)+4>>2]|0)|0))break;i=i+1|0}r=A+28|0;a[r>>2]=a[20228+(i<<4)+12>>2];e=a[20228+(i<<4)+8>>2]|0;A=A+24|0;a[A>>2]=e;switch(i|0){case 7:break;case 8:{if(F4(f+8|0,98784,4)|0)break A;a[r>>2]=98789;a[A>>2]=11;e=11;break A}default:break A}while(1){if(!(p4(n,200,a[l>>2]|0)|0)){t=11;break}if(!(F4(n,98779,4)|0)){t=8;break}}if((t|0)==8){a[r>>2]=101803;a[A>>2]=8;e=8;break}else if((t|0)==11){e=a[A>>2]|0;break}}else t=13}while(0);if((t|0)==13){a[A+28>>2]=98794;a[A+24>>2]=0;e=0}k=c;return e|0}function Pv(A){A=A|0;var e=0,i=0,r=0,f=0;f=k;k=k+16|0;e=f+4|0;i=f;a[A+48>>2]=0;r=A+20|0;O3(a[r>>2]|0,6,0)|0;if((sE(a[r>>2]|0,2,e)|0)<<24>>24?(sE(a[r>>2]|0,2,i)|0)<<24>>24:0){a[A+40>>2]=a[e>>2];a[A+44>>2]=a[i>>2]}k=f;return}function Sv(A){A=A|0;var e=0,i=0,r=0,f=0;f=k;k=k+16|0;e=f+4|0;i=f;a[A+48>>2]=0;r=A+20|0;O3(a[r>>2]|0,16,0)|0;if((iE(a[r>>2]|0,4,e)|0)<<24>>24?(iE(a[r>>2]|0,4,i)|0)<<24>>24:0){a[A+40>>2]=a[e>>2];a[A+44>>2]=a[i>>2]}k=f;return}function Ov(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0;l=k;k=k+16|0;e=l+12|0;i=l+8|0;r=l+4|0;f=l;a[A+48>>2]=0;n=A+20|0;O3(a[n>>2]|0,16,0)|0;if((((sE(a[n>>2]|0,2,e)|0)<<24>>24?(sE(a[n>>2]|0,2,i)|0)<<24>>24:0)?(sE(a[n>>2]|0,2,r)|0)<<24>>24:0)?(sE(a[n>>2]|0,2,f)|0)<<24>>24:0){a[A+40>>2]=a[e>>2]<<16|a[i>>2];a[A+44>>2]=a[r>>2]<<16|a[f>>2]}k=l;return}function Kv(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0;b=k;k=k+32|0;e=b+16|0;r=b+12|0;f=b+8|0;l=b+4|0;t=b;a[A+48>>2]=0;c=A+20|0;while(1){if(!((iE(a[c>>2]|0,1,e)|0)<<24>>24))break;i=a[e>>2]|0;if((i|0)==255)continue;if(G1(98767,i)|0)continue;if((i|0)==192){s=6;break}n=a[c>>2]|0;if((i|0)==194){s=11;break}if(!((iE(n,2,r)|0)<<24>>24))break;O3(a[c>>2]|0,(a[r>>2]|0)+-2|0,1)|0}if((s|0)==6){if(((iE(a[c>>2]|0,3,t)|0)<<24>>24?(iE(a[c>>2]|0,2,f)|0)<<24>>24:0)?(iE(a[c>>2]|0,2,l)|0)<<24>>24:0){a[A+44>>2]=a[f>>2];a[A+40>>2]=a[l>>2]}}else if((((s|0)==11?(iE(n,3,t)|0)<<24>>24:0)?(iE(a[c>>2]|0,2,f)|0)<<24>>24:0)?(iE(a[c>>2]|0,2,l)|0)<<24>>24:0){a[A+44>>2]=a[f>>2];a[A+40>>2]=a[l>>2]}k=b;return}function _v(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0;b=k;k=k+1056|0;c=b;e=b+32|0;r=b+28|0;f=b+24|0;n=b+20|0;l=b+16|0;a[A+48>>2]=72;t=A+20|0;O3(a[t>>2]|0,0,0)|0;while(1){if(!(p4(e,1024,a[t>>2]|0)|0))break;i=N4(e,98752)|0;if(!i)continue;a[c>>2]=r;a[c+4>>2]=f;a[c+8>>2]=n;a[c+12>>2]=l;if((J3(i,104311,c)|0)==4){s=5;break}}if((s|0)==5){c=a[r>>2]|0;a[A+32>>2]=c;s=a[f>>2]|0;a[A+36>>2]=s;a[A+40>>2]=(a[n>>2]|0)-c;a[A+44>>2]=(a[l>>2]|0)-s}k=b;return}function qv(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0;n=k;k=k+16|0;e=n+4|0;i=n;a[A+48>>2]=0;r=A+20|0;O3(a[r>>2]|0,15,0)|0;l=(b6(a[r>>2]|0)|0)==88;f=a[r>>2]|0;if(l){O3(f,24,0)|0;if((sE(a[r>>2]|0,4,e)|0)<<24>>24?(sE(a[r>>2]|0,4,i)|0)<<24>>24:0){a[A+40>>2]=a[e>>2];a[A+44>>2]=a[i>>2]}}else{O3(f,26,0)|0;if((sE(a[r>>2]|0,2,e)|0)<<24>>24?(sE(a[r>>2]|0,2,i)|0)<<24>>24:0){a[A+40>>2]=a[e>>2];a[A+44>>2]=a[i>>2]}}k=n;return}function $v(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0;z=k;k=k+352|0;L=z+80|0;Q=z+72|0;W=z+64|0;y=z+56|0;m=z+48|0;e=z+40|0;B=z+32|0;g=z+24|0;v=z+16|0;E=z+8|0;C=z;I=z+328|0;Z=z+128|0;G=z+96|0;if(!(a[47008]|0)){if(w8(188036,98637,1)|0){a[e>>2]=98637;ao(1,98664,e)|0}a[47008]=188036}b=A+20|0;O3(a[b>>2]|0,0,0)|0;u=G+12|0;w=G+20|0;o=G+8|0;h=G+16|0;d=G+4|0;e=0;n=0;f=0;i=0;A:while(1){if(!(p4(Z,200,a[b>>2]|0)|0))break;if(n<<24>>24==0|e<<24>>24==0){l=Z;c=i}else break;e:while(1){t=f;i:while(1){while(1){if($8(188036,l,4,G,0)|0){f=t;i=c;continue A}r[l+(a[u>>2]|0)>>0]=0;r[l+(a[w>>2]|0)>>0]=0;i=l+(a[o>>2]|0)|0;f=l+(a[h>>2]|0)|0;l=l+((a[d>>2]|0)+1)|0;if(!(A1(i,141116)|0))break;if(!(A1(i,141048)|0))break i;if(A1(i,98711)|0)continue;a[L>>2]=g;a[L+4>>2]=v;a[L+8>>2]=E;a[L+12>>2]=C;if((J3(f,98719,L)|0)==4)break e}a[m>>2]=B;a[m+4>>2]=I;if((J3(f,98701,m)|0)!=2){a[y>>2]=B;if((J3(f,101209,y)|0)==1){i=1;f=cE(+s[B>>3],98708)|0}else{i=n;f=t}}else{i=1;f=cE(+s[B>>3],I)|0}if(!(e<<24>>24)){e=0;n=i;t=f}else{n=i;i=c;continue A}}a[W>>2]=B;a[W+4>>2]=I;if((J3(f,98701,W)|0)!=2){a[Q>>2]=B;if((J3(f,101209,Q)|0)==1){e=1;i=cE(+s[B>>3],98708)|0}else i=c}else{e=1;i=cE(+s[B>>3],I)|0}if(!(n<<24>>24)){n=0;f=t;c=i}else{f=t;continue A}}e=1;n=1;f=~~(+s[E>>3]+1.0-+s[g>>3])>>>0;i=~~(+s[C>>3]+1.0-+s[v>>3])>>>0}a[A+48>>2]=0;a[A+40>>2]=f;a[A+44>>2]=i;k=z;return}function AE(A){A=A|0;var e=0,i=0,r=0,f=0.0,n=0.0;i=k;k=k+32|0;e=i;a[A+48>>2]=0;r=A+20|0;O3(a[r>>2]|0,0,0)|0;if(!(rE(a[r>>2]|0,e)|0)){n=+s[e>>3];a[A+32>>2]=~~n;f=+s[e+8>>3];a[A+36>>2]=~~f;a[A+40>>2]=~~(+s[e+16>>3]-n);a[A+44>>2]=~~(+s[e+24>>3]-f)}k=i;return}function eE(A){A=A|0;var e=0,i=0,r=0,f=0;f=k;k=k+16|0;e=f+4|0;i=f;a[A+48>>2]=0;r=A+20|0;O3(a[r>>2]|0,6,0)|0;if((iE(a[r>>2]|0,1,e)|0)<<24>>24?(iE(a[r>>2]|0,1,i)|0)<<24>>24:0){a[A+40>>2]=a[e>>2];a[A+44>>2]=a[i>>2]}k=f;return}function iE(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;a[i>>2]=0;r=0;while(1){if(r>>>0>=e>>>0){r=1;break}f=b6(A)|0;if(o3(A)|0){r=0;break}a[i>>2]=a[i>>2]<<8|f;r=r+1|0}return r|0}function rE(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;l=k;k=k+1040|0;i=l;r=l+16|0;while(1){if(!(p4(r,1024,A)|0)){A=1;break}f=N4(r,98627)|0;if(f|0){n=4;break}}if((n|0)==4){a[i+4>>2]=r;a[i>>2]=f+9;a[i+8>>2]=A;A=fE(i,e)|0}k=l;return A|0}function fE(A,e){A=A|0;e=e|0;var i=0,f=0,n=0;n=k;k=k+1024|0;f=n;aE(A);i=r[a[A>>2]>>0]|0;if(!(i<<24>>24))i=(nE(A)|0)&255;else i=i<<24>>24;if((((i|0)==91?(a[A>>2]=(a[A>>2]|0)+1,lE(A,f),(tE(f,e)|0)==0):0)?(lE(A,f),(tE(f,e+8|0)|0)==0):0)?(lE(A,f),(tE(f,e+16|0)|0)==0):0){lE(A,f);i=(tE(f,e+24|0)|0)!=0&1}else i=1;k=n;return i|0}function aE(A){A=A|0;var e=0;e=a[A>>2]|0;while(1){e=r[e>>0]|0;if(!(e<<24>>24))e=(nE(A)|0)&255;else e=e<<24>>24;if(!((e&255)<<24>>24))break;if(!(m1(e&255)|0))break;e=(a[A>>2]|0)+1|0;a[A>>2]=e}return}function nE(A){A=A|0;var e=0;e=A+4|0;if(!(p4(a[e>>2]|0,1024,a[A+8>>2]|0)|0))A=0;else{e=a[e>>2]|0;a[A>>2]=e;A=r[e>>0]|0}return A|0}function lE(A,e){A=A|0;e=e|0;var i=0,f=0,n=0;aE(A);i=0;f=a[A>>2]|0;while(1){f=r[f>>0]|0;if(!(f<<24>>24))n=(nE(A)|0)&255;else n=f<<24>>24;f=n<<24>>24;if(!f)break;if(!((f|0)==46|(f+-48|0)>>>0<10))break;r[e+i>>0]=n;i=i+1|0;f=(a[A>>2]|0)+1|0;a[A>>2]=f;if((i|0)==1023){i=1023;break}}r[e+i>>0]=0;return}function tE(A,e){A=A|0;e=e|0;var i=0.0,r=0,f=0;r=k;k=k+16|0;f=r;i=+A8(A,f);if((a[f>>2]|0)==(A|0))A=1;else{s[e>>3]=i;A=0}k=r;return A|0}function cE(A,e){A=+A;e=e|0;var i=0.0;do{if(!(A1(e,98735)|0)){A=A*72.0;i=A;A=A>=0.0?.5:-.5}else{if(!(A1(e,98738)|0)){A=A*.75;i=A;A=A>=0.0?.5:-.5;break}if(!(A1(e,98741)|0)){A=A*12.0;i=A;A=A>=0.0?.5:-.5;break}if(A1(e,98708)|0?A1(e,98744)|0:0)if(!(A1(e,98746)|0)){A=A*28.346456664;i=A;A=A>=0.0?.5:-.5;break}else{e=(A1(e,98749)|0)==0;i=A*2.8346456663999997;return(e?~~(i+(i>=0.0?.5:-.5)):0)|0}i=A>=0.0?.5:-.5}}while(0);return~~(A+i)|0}function sE(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;a[i>>2]=0;r=0;while(1){if(r>>>0>=e>>>0){r=1;break}f=b6(A)|0;if(o3(A)|0){r=0;break}a[i>>2]=a[i>>2]|f<<(r<<3);r=r+1|0}return r|0}function bE(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;A=a[e+20>>2]|0;if(A|0)h3(A)|0;if(a[e+52>>2]|0?(r=a[e+60>>2]|0,r|0):0)F5[r&127](e);L2(e);return}function uE(){var A=0;Yo(0,1,108224,105493)|0;A=Gv(0,1)|0;jr(A,0);return A|0}function wE(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,b=0.0,u=0.0,w=0.0,o=0.0;c=k;k=k+304|0;t=c+24|0;l=c+8|0;f=c;n=c+40|0;if((wr(A,i)|0)!=999)if((kr(A,e)|0)==-1)A=-1;else{A=a[e+16>>2]|0;i=A+16|0;if(!(r[(a[A+8>>2]|0)+81>>0]|0)){o=+s[i>>3];w=+s[A+24>>3];u=+s[A+32>>3];b=+s[A+40>>3];a[t>>2]=~~(o+(o>=0.0?.5:-.5));a[t+4>>2]=~~(w+(w>=0.0?.5:-.5));a[t+8>>2]=~~(u+(u>=0.0?.5:-.5));a[t+12>>2]=~~(b+(b>=0.0?.5:-.5));S4(n,98899,t)|0}else{b=+s[A+24>>3];u=+s[i>>3];w=+s[A+40>>3];o=+s[A+32>>3];a[l>>2]=~~(b+(b>=0.0?.5:-.5));a[l+4>>2]=~~(u+(u>=0.0?.5:-.5));a[l+8>>2]=~~(w+(w>=0.0?.5:-.5));a[l+12>>2]=~~(o+(o>=0.0?.5:-.5));S4(n,98899,l)|0}To(e,102671,n,195059)|0;A=0}else{A=pv(A,1,i)|0;a[f>>2]=i;a[f+4>>2]=A;ao(1,111233,f)|0;A=-1}k=c;return A|0}function kE(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0;t=k;k=k+16|0;n=t;f=a[e+60>>2]|0;yv(A,i)|0;e=a[A+164>>2]|0;a[e+56>>2]=Qi(e,a[e+52>>2]|0)|0;if((Td(f,137483,0,1)|0)!=0?(a[(a[f+16>>2]|0)+8>>2]|0)!=0:0)l=5;else if(!(a[e+152>>2]&67108864)){to(98911,n);e=-1}else l=5;if((l|0)==5){a[e+36>>2]=r;if(!r){l=e+152|0;a[l>>2]=a[l>>2]|134217728}l=lF(A,f)|0;yi(e);Mv(A);e=l}k=t;return e|0}function oE(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0;t=k;k=k+16|0;n=t;f=a[e+60>>2]|0;yv(A,i)|0;e=a[A+164>>2]|0;a[e+56>>2]=Qi(e,a[e+52>>2]|0)|0;if((Td(f,137483,0,1)|0)!=0?(a[(a[f+16>>2]|0)+8>>2]|0)!=0:0)l=5;else if(!(a[e+152>>2]&67108864)){to(98911,n);e=-1}else l=5;if((l|0)==5){Lv(A,r);l=lF(A,f)|0;yi(e);Bv(e);Mv(A);e=l}k=t;return e|0}function hE(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0;b=k;k=k+16|0;l=b+8|0;n=b;e=a[e+60>>2]|0;yv(A,i)|0;c=a[A+164>>2]|0;a[c+56>>2]=Qi(c,a[c+52>>2]|0)|0;if((Td(e,137483,0,1)|0)!=0?(a[(a[e+16>>2]|0)+8>>2]|0)!=0:0)s=5;else if(!(a[c+152>>2]&67108864)){to(98911,n);e=-1}else s=5;do{if((s|0)==5){if(r|0?(t=Q2(4096)|0,a[r>>2]=t,t|0):0){n=c+40|0;a[n>>2]=t;a[c+44>>2]=4096;i=c+48|0;a[i>>2]=0;e=lF(A,e)|0;yi(c);if(!e){a[r>>2]=a[n>>2];a[f>>2]=a[i>>2]}Mv(A);break}ao(1,98932,l)|0;e=-1}}while(0);k=b;return e|0}function dE(A,e){A=A|0;e=e|0;xr(A,0,e);return}function BE(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,y=0,W=0,z=0,Y=0,D=0;D=k;k=k+4288|0;W=D+8|0;y=D;z=4;Y=Q2(40)|0;a[Y>>2]=0;G=D+4152|0;m=D+4148|0;Q=D+4128|0;c=D+4112|0;s=D+16|0;d=0;t=iA(24,A|0)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,Y|0,z|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;A:do{if((l|0)!=1){if(!t){a[e>>2]=0;n=0;break}d=0;u=aA(29,i|0,m|0,G|0)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,Y|0,z|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)!=1){d=0;b=iA(23,40)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,Y|0,z|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)!=1){d=0;hA(7,Q|0,c|0,s|0,24,85);n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,Y|0,z|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)!=1){d=0;i=iA(25,A|0)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,Y|0,z|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)!=1){c=Q+16|0;t=a[c>>2]|0;n=i;while(1){if(!n)break;d=0;rA(t|0,n|0,0)|0;l=d;d=0;if((l|0)!=0&(B|0)!=0){i=y6(a[l>>2]|0,Y|0,z|0)|0;if(!i)fe(l|0,B|0);L=B}else i=-1;if((i|0)==1){Z=0;I=c;C=b;E=u;n=L;b=15;break A}d=0;n=rA(86,A|0,n|0)|0;l=d;d=0;if((l|0)!=0&(B|0)!=0){i=y6(a[l>>2]|0,Y|0,z|0)|0;if(!i)fe(l|0,B|0);L=B}else i=-1;if((i|0)==1){Z=0;I=c;C=b;E=u;n=L;b=15;break A}}Y=L6(188068,1,Y|0,z|0)|0;z=L;d=0;n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,Y|0,z|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)==1){Z=b;I=c;C=b;E=u;n=L;b=15}else{Z=b;I=c;C=b;E=u;n=0;b=15}}else{Z=0;I=0;C=b;E=u;n=L;b=15}}else{Z=0;I=0;C=b;E=u;n=L;b=15}}else{Z=0;I=0;C=b;E=u;n=L;b=15}}else{Z=0;I=0;C=0;E=u;n=L;b=15}}else{Z=0;I=0;C=0;E=0;n=L;b=15}}while(0);do{if((b|0)==15){A:while(1){e:do{if(!n){d=0;i=iA(25,A|0)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,Y|0,z|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)==1){h=E;g=C;v=I;b=Z;n=L;E=h;C=g;I=v;Z=b;b=15;continue A}v=E+(a[m>>2]|0)|0;s=0;b=0;c=0;while(1){if(!i)break;d=0;n=rA(a[I>>2]|0,i|0,-1)|0;l=d;d=0;if((l|0)!=0&(B|0)!=0){t=y6(a[l>>2]|0,Y|0,z|0)|0;if(!t)fe(l|0,B|0);L=B}else t=-1;if((t|0)==1){h=E;g=C;v=I;b=Z;n=L;E=h;C=g;I=v;Z=b;b=15;continue A}if((n|0)==0?(r[(a[i+16>>2]|0)+119>>0]|0)==3:0){if(!b){d=0;a[y>>2]=c;aA(30,v|0,137395,y|0)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,Y|0,z|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)==1){h=E;g=C;v=I;b=Z;n=L;E=h;C=g;I=v;Z=b;b=15;continue A}d=0;t=aA(31,A|0,E|0,1)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,Y|0,z|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)==1){h=E;g=C;v=I;b=Z;n=L;E=h;C=g;I=v;Z=b;b=15;continue A}d=0;nA(53,t|0,137483,280,1)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,Y|0,z|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)==1){h=E;g=C;v=I;b=Z;n=L;E=h;C=g;I=v;Z=b;b=15;continue A}a[Z+(c<<2)>>2]=t;s=1;c=c+1|0}else t=b;d=0;nA(54,A|0,i|0,t|0,Q|0)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,Y|0,z|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)==1){h=E;g=C;v=I;b=Z;n=L;E=h;C=g;I=v;Z=b;b=15;continue A}}else t=b;d=0;i=rA(86,A|0,i|0)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,Y|0,z|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)==1){h=E;g=C;v=I;b=Z;n=L;E=h;C=g;I=v;Z=b;b=15;continue A}b=t}d=0;i=iA(25,A|0)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,Y|0,z|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)==1){h=E;g=C;v=I;b=Z;n=L;E=h;C=g;I=v;Z=b;b=15;continue A}t=10;u=Z;w=C;o=C;g=C;while(1){if(!i){b=0;t=o;i=g;break e}d=0;n=rA(a[I>>2]|0,i|0,-1)|0;l=d;d=0;if((l|0)!=0&(B|0)!=0){b=y6(a[l>>2]|0,Y|0,z|0)|0;if(!b)fe(l|0,B|0);L=B}else b=-1;if((b|0)==1){h=E;g=C;v=I;b=Z;n=L;E=h;C=g;I=v;Z=b;b=15;continue A}if(!n){d=0;a[W>>2]=c;aA(30,v|0,137395,W|0)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,Y|0,z|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)==1){h=E;g=C;v=I;b=Z;n=L;E=h;C=g;I=v;Z=b;b=15;continue A}d=0;h=aA(31,A|0,E|0,1)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,Y|0,z|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)==1){h=E;g=C;v=I;b=Z;n=L;E=h;C=g;I=v;Z=b;b=15;continue A}d=0;nA(53,h|0,137483,280,1)|0;l=d;d=0;if((l|0)!=0&(B|0)!=0){n=y6(a[l>>2]|0,Y|0,z|0)|0;if(!n)fe(l|0,B|0);L=B}else n=-1;if((n|0)==1){h=E;g=C;v=I;b=Z;n=L;E=h;C=g;I=v;Z=b;b=15;continue A}d=0;nA(54,A|0,i|0,h|0,Q|0)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,Y|0,z|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)==1){h=E;g=C;v=I;b=Z;n=L;E=h;C=g;I=v;Z=b;b=15;continue A}if((c|0)==(t|0)){t=c<<1;d=0;b=rA(87,w|0,c<<3|0)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,Y|0,z|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)==1){h=E;g=C;v=I;b=Z;n=L;E=h;C=g;I=v;Z=b;b=15;continue A}n=b;w=b;o=b;l=b}else{n=u;l=g}a[n+(c<<2)>>2]=h;u=n;c=c+1|0;b=l}else b=g;d=0;i=rA(86,A|0,i|0)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,Y|0,z|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)==1){h=E;g=C;v=I;b=Z;n=L;E=h;C=g;I=v;Z=b;b=15;continue A}g=b}}else{b=1;s=0;u=Z;c=0;t=C;i=C}}while(0);d=0;bA(108,Q|0);n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,Y|0,z|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)==1){h=E;g=C;v=I;b=Z;n=L;E=h;C=g;I=v;Z=b;b=15;continue}if((E|0)!=(G|0)){d=0;bA(105,E|0);n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,Y|0,z|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)==1){h=E;g=C;v=I;b=Z;n=L;E=h;C=g;I=v;Z=b;b=15;continue}}if(!b){d=0;n=rA(87,i|0,c<<2|0)|0;l=d;d=0;if((l|0)!=0&(B|0)!=0){i=y6(a[l>>2]|0,Y|0,z|0)|0;if(!i)fe(l|0,B|0);L=B}else i=-1;if((i|0)==1){h=E;g=C;v=I;b=Z;n=L;E=h;C=g;I=v;Z=b;b=15;continue}else{b=58;break}}a[e>>2]=0;n=0;while(1){if((n|0)>=(c|0))break;d=0;iA(26,a[u+(n<<2)>>2]|0)|0;l=d;d=0;if((l|0)!=0&(B|0)!=0){i=y6(a[l>>2]|0,Y|0,z|0)|0;if(!i)fe(l|0,B|0);L=B}else i=-1;if((i|0)==1){h=E;g=C;v=I;b=Z;n=L;E=h;C=g;I=v;Z=b;b=15;continue A}n=n+1|0}d=0;bA(105,t|0);n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,Y|0,z|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)==1){h=E;g=C;v=I;b=Z;n=L;E=h;C=g;I=v;Z=b;b=15}else{b=56;break}}if((b|0)==56){n=0;break}else if((b|0)==58){a[e>>2]=c;r[f>>0]=s;break}}}while(0);L2(Y|0);k=D;return n|0}function gE(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;if(!((A|0)!=0?(LE(A)|0)!=0:0))A=98988;r=P2(A)|0;if((r|0)>=104){i=$F(r+25|0)|0;if(!i)i=0;else f=6}else f=6;if((f|0)==6){$1(i,A)|0;a[e>>2]=r}return i|0}function vE(A,e){A=A|0;e=e|0;kd(e,A,1)|0;return}function EE(A,e){A=A|0;e=e|0;var i=0;A=(a[A+16>>2]|0)+157|0;i=r[A>>0]|0;if((e|0)>=0)r[A>>0]=e;return i|0}function CE(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;a[e>>2]=i;a[e+4>>2]=i+4096;a[e+12>>2]=0;a[e+8>>2]=0;a[A>>2]=e;a[A+4>>2]=e;a[A+8>>2]=i;a[A+12>>2]=r;a[A+16>>2]=f;return}function IE(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,s=0;mE(r,e);t=r+12|0;c=r+16|0;e=0;A:while(1){s=QE(r)|0;if(!s)break;e=e+1|0;f=a[t>>2]|0;if(f|0)V5[f&63](s,i);l=Ah(A,s)|0;while(1){if(!l)continue A;n=a[l>>2]&3;f=a[((n|0)==3?l:l+48|0)+40>>2]|0;if((f|0)==(s|0))f=a[((n|0)==2?l:l+-48|0)+40>>2]|0;if(!(Q5[a[c>>2]&127](f,-1)|0))mE(r,f);l=eh(A,l,s)|0}}return e|0}function ZE(A){A=A|0;var e=0;A=a[(a[A>>2]|0)+12>>2]|0;while(1){if(!A)break;e=a[A+12>>2]|0;GE(A);A=e}return}function GE(A){A=A|0;L2(a[A>>2]|0);L2(A);return}function mE(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0;s=k;k=k+16|0;c=s+8|0;f=s;n=A+8|0;t=A+4|0;i=a[t>>2]|0;if((a[n>>2]|0)==(a[i+4>>2]|0)){i=a[i+12>>2]|0;do{if(!i){r=$F(16)|0;if(!r){ao(1,98969,f)|0;fe(188068,1)}a[r+8>>2]=a[t>>2];a[r+12>>2]=0;i=$F(4e6)|0;a[r>>2]=i;if(!i){ao(1,98969,c)|0;fe(188068,1)}else{a[r+4>>2]=i+4e6;a[(a[t>>2]|0)+12>>2]=r;l=r;break}}else l=i}while(0);a[t>>2]=l;a[n>>2]=a[l>>2]}Q5[a[A+16>>2]&127](e,1)|0;c=a[n>>2]|0;a[n>>2]=c+4;a[c>>2]=e;k=s;return}function QE(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;f=A+8|0;e=a[f>>2]|0;i=A+4|0;r=a[i>>2]|0;if((e|0)==(a[r>>2]|0))if((r|0)==(a[A>>2]|0))e=0;else{e=a[r+8>>2]|0;a[i>>2]=e;e=a[e+4>>2]|0;a[f>>2]=e;n=4}else n=4;if((n|0)==4){e=e+-4|0;a[f>>2]=e;e=a[e>>2]|0}return e|0}function LE(A){A=A|0;var e=0;A:while(1){e=A;A=A+1|0;e=r[e>>0]|0;switch(e<<24>>24){case 95:continue A;case 0:{A=1;break A}default:{}}if(!(V1(e&255)|0)){A=0;break}}return A|0}function yE(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0;m=k;k=k+4272|0;I=m;Z=4;G=Q2(40)|0;a[G>>2]=0;v=m+4144|0;E=m+4140|0;C=m+4120|0;l=m+4104|0;t=m+8|0;d=0;f=iA(24,A|0)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){r=y6(a[n>>2]|0,G|0,Z|0)|0;if(!r)fe(n|0,B|0);L=B}else r=-1;A:do{if((r|0)!=1)if(f){d=0;s=aA(29,i|0,E|0,v|0)|0;r=d;d=0;if((r|0)!=0&(B|0)!=0){i=y6(a[r>>2]|0,G|0,Z|0)|0;if(!i)fe(r|0,B|0);L=B}else i=-1;if((i|0)!=1){d=0;c=iA(23,40)|0;r=d;d=0;if((r|0)!=0&(B|0)!=0){i=y6(a[r>>2]|0,G|0,Z|0)|0;if(!i)fe(r|0,B|0);L=B}else i=-1;if((i|0)!=1){d=0;hA(7,C|0,l|0,t|0,24,85);r=d;d=0;if((r|0)!=0&(B|0)!=0){i=y6(a[r>>2]|0,G|0,Z|0)|0;if(!i)fe(r|0,B|0);L=B}else i=-1;if((i|0)!=1){d=0;f=iA(25,A|0)|0;r=d;d=0;if((r|0)!=0&(B|0)!=0){i=y6(a[r>>2]|0,G|0,Z|0)|0;if(!i)fe(r|0,B|0);L=B}else i=-1;if((i|0)!=1){l=C+16|0;n=a[l>>2]|0;r=f;while(1){if(!r)break;d=0;rA(n|0,r|0,0)|0;i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,G|0,Z|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)==1){g=l;h=c;o=s;r=L;c=14;break A}d=0;r=rA(86,A|0,r|0)|0;i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,G|0,Z|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)==1){g=l;h=c;o=s;r=L;c=14;break A}}G=L6(188068,1,G|0,Z|0)|0;Z=L;d=0;r=d;d=0;if((r|0)!=0&(B|0)!=0){i=y6(a[r>>2]|0,G|0,Z|0)|0;if(!i)fe(r|0,B|0);L=B}else i=-1;if((i|0)==1){g=l;h=c;o=s;r=L;c=14}else{g=l;h=c;o=s;r=0;c=14}}else{g=0;h=c;o=s;r=L;c=14}}else{g=0;h=c;o=s;r=L;c=14}}else{g=0;h=c;o=s;r=L;c=14}}else{g=0;h=0;o=s;r=L;c=14}}else{i=0;r=0}else{g=0;h=0;o=0;r=L;c=14}}while(0);A:do{if((c|0)==14){e:while(1){if(r|0){d=0;bA(108,C|0);r=d;d=0;if((r|0)!=0&(B|0)!=0){i=y6(a[r>>2]|0,G|0,Z|0)|0;if(!i)fe(r|0,B|0);L=B}else i=-1;if((i|0)==1){u=o;w=h;c=g;r=L;o=u;h=w;g=c;c=14;continue}d=0;bA(105,h|0);r=d;d=0;if((r|0)!=0&(B|0)!=0){i=y6(a[r>>2]|0,G|0,Z|0)|0;if(!i)fe(r|0,B|0);L=B}else i=-1;if((i|0)==1){u=o;w=h;c=g;r=L;o=u;h=w;g=c;c=14;continue}if((o|0)==(v|0)){i=0;r=0;break A}d=0;bA(105,o|0);r=d;d=0;if((r|0)!=0&(B|0)!=0){i=y6(a[r>>2]|0,G|0,Z|0)|0;if(!i)fe(r|0,B|0);L=B}else i=-1;if((i|0)==1){u=o;w=h;c=g;r=L;o=u;h=w;g=c;c=14;continue}else{c=19;break}}d=0;f=iA(25,A|0)|0;r=d;d=0;if((r|0)!=0&(B|0)!=0){i=y6(a[r>>2]|0,G|0,Z|0)|0;if(!i)fe(r|0,B|0);L=B}else i=-1;if((i|0)==1){u=o;w=h;c=g;r=L;o=u;h=w;g=c;c=14;continue}w=o+(a[E>>2]|0)|0;l=10;s=h;r=0;c=h;u=h;while(1){if(!f)break;d=0;i=rA(a[g>>2]|0,f|0,-1)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){t=y6(a[n>>2]|0,G|0,Z|0)|0;if(!t)fe(n|0,B|0);L=B}else t=-1;if((t|0)==1){u=o;w=h;c=g;r=L;o=u;h=w;g=c;c=14;continue e}if(!i){d=0;a[I>>2]=r;aA(30,w|0,137395,I|0)|0;i=d;d=0;if((i|0)!=0&(B|0)!=0){n=y6(a[i>>2]|0,G|0,Z|0)|0;if(!n)fe(i|0,B|0);L=B}else n=-1;if((n|0)==1){u=o;w=h;c=g;r=L;o=u;h=w;g=c;c=14;continue e}d=0;b=aA(31,A|0,o|0,1)|0;i=d;d=0;if((i|0)!=0&(B|0)!=0){n=y6(a[i>>2]|0,G|0,Z|0)|0;if(!n)fe(i|0,B|0);L=B}else n=-1;if((n|0)==1){u=o;w=h;c=g;r=L;o=u;h=w;g=c;c=14;continue e}d=0;nA(53,b|0,137483,280,1)|0;i=d;d=0;if((i|0)!=0&(B|0)!=0){n=y6(a[i>>2]|0,G|0,Z|0)|0;if(!n)fe(i|0,B|0);L=B}else n=-1;if((n|0)==1){u=o;w=h;c=g;r=L;o=u;h=w;g=c;c=14;continue e}d=0;nA(54,A|0,f|0,b|0,C|0)|0;i=d;d=0;if((i|0)!=0&(B|0)!=0){n=y6(a[i>>2]|0,G|0,Z|0)|0;if(!n)fe(i|0,B|0);L=B}else n=-1;if((n|0)==1){u=o;w=h;c=g;r=L;o=u;h=w;g=c;c=14;continue e}if((r|0)==(l|0)){l=r<<1;d=0;t=rA(87,c|0,r<<3|0)|0;i=d;d=0;if((i|0)!=0&(B|0)!=0){n=y6(a[i>>2]|0,G|0,Z|0)|0;if(!n)fe(i|0,B|0);L=B}else n=-1;if((n|0)==1){u=o;w=h;c=g;r=L;o=u;h=w;g=c;c=14;continue e}n=t;c=t;i=t}else{n=s;i=u}a[n+(r<<2)>>2]=b;r=r+1|0;s=n;t=i}else t=u;d=0;f=rA(86,A|0,f|0)|0;i=d;d=0;if((i|0)!=0&(B|0)!=0){n=y6(a[i>>2]|0,G|0,Z|0)|0;if(!n)fe(i|0,B|0);L=B}else n=-1;if((n|0)==1){u=o;w=h;c=g;r=L;o=u;h=w;g=c;c=14;continue e}u=t}d=0;bA(108,C|0);i=d;d=0;if((i|0)!=0&(B|0)!=0){f=y6(a[i>>2]|0,G|0,Z|0)|0;if(!f)fe(i|0,B|0);L=B}else f=-1;if((f|0)==1){u=o;w=h;c=g;r=L;o=u;h=w;g=c;c=14;continue}d=0;i=rA(87,u|0,r<<2|0)|0;f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,G|0,Z|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){u=o;w=h;c=g;r=L;o=u;h=w;g=c;c=14;continue}if((o|0)==(v|0))break A;d=0;bA(105,o|0);f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,G|0,Z|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){u=o;w=h;c=g;r=L;o=u;h=w;g=c;c=14}else{c=39;break}}if((c|0)==19){i=0;r=0;break}else if((c|0)==39)break}}while(0);a[e>>2]=r;L2(G|0);k=m;return i|0}function WE(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;i=0;f=cd(A)|0;while(1){if(!f)break;r=Oo(e,f)|0;while(1){if(!r)break;if(kd(A,a[((a[r>>2]&3|0)==2?r:r+-48|0)+40>>2]|0,0)|0){uh(A,r,1)|0;i=i+1|0}r=_o(e,r)|0}f=sd(A,f)|0}return i|0}function zE(A){A=A|0;A=Ud(A,98993,0)|0;if(!A)gA(98998,99001,529,99010);else return a[A+8>>2]|0;return 0}function YE(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0;v=k;k=k+4320|0;B=v+24|0;d=v+8|0;h=v;g=v+4184|0;o=v+4160|0;f=v+40|0;if(gh(A)|0){Kd(A,0,99019,-12,0);Kd(A,1,99031,16,0);w=gE(i,f,g)|0;s=DE(A)|0;b=$F((gh(s)|0)<<2)|0;CE(o,v+4144|0,v+48|0,24,88);l=cd(s)|0;u=o+16|0;t=w+(a[f>>2]|0)|0;c=a[15712]|0;i=0;while(1){if(!l)break;if(!(Q5[a[u>>2]&127](l,-1)|0)){a[h>>2]=i;S4(t,99933,h)|0;E=NB(s,w,1)|0;C=NB(A,w,1)|0;Td(C,99019,12,0)|0;r[(Ud(C,99019,0)|0)+8>>0]=1;f=IE(s,l,E,o)|0;FE(E,C);n=VE(C)|0;JE(A,C);a[b+(i<<2)>>2]=C;Cd(s,E)|0;if(0){}i=i+1|0}l=sd(s,l)|0}if(0){}Bh(s)|0;_d(A,0,99019);_d(A,1,99031);ZE(o);f=eV(b,i<<2)|0;if((w|0)!=(g|0))L2(w)}else{f=0;i=0}a[e>>2]=i;k=v;return f|0}function DE(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0;t=k;k=k+16|0;l=t;r[l>>0]=r[18596]|0;r[l+1>>0]=r[18597]|0;r[l+2>>0]=r[18598]|0;r[l+3>>0]=r[18599]|0;l=kh(99120,l,0)|0;RE(l,A);e=cd(A)|0;while(1){if(!e)break;if(!(a[(Ud(e,99031,0)|0)+12>>2]|0)){n=gd(l,Vh(e)|0,1)|0;Td(n,99031,16,1)|0;a[(a[n+16>>2]|0)+12>>2]=e;a[(Ud(e,99031,0)|0)+12>>2]=n}e=sd(A,e)|0}i=cd(A)|0;while(1){if(!i)break;f=a[(Ud(i,99031,0)|0)+12>>2]|0;e=Oo(A,i)|0;while(1){if(!e)break;n=a[(Ud(a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,99031,0)|0)+12>>2]|0;do{if((n|0)!=(f|0))if(n>>>0>f>>>0){th(l,f,n,0,1)|0;break}else{th(l,n,f,0,1)|0;break}}while(0);e=_o(A,e)|0}i=sd(A,i)|0}k=t;return l|0}function ME(A,e){A=A|0;e=e|0;var i=0;A=(a[A+16>>2]|0)+8|0;i=r[A>>0]|0;if((e|0)>=0)r[A>>0]=e;return i|0}function FE(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;r=cd(A)|0;while(1){if(!r)break;f=a[(a[r+16>>2]|0)+12>>2]|0;A:do{if((a[f>>2]&3|0)==1)kd(e,f,1)|0;else{i=cd(f)|0;while(1){if(!i)break A;kd(e,i,1)|0;i=sd(f,i)|0}}}while(0);r=sd(A,r)|0}return}function VE(A){A=A|0;return WE(A,a[A+60>>2]|0)|0}function JE(A,e){A=A|0;e=e|0;pE(A,e,0);return}function pE(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,a=0,n=0;n=(i|0)==0;A=RB(A)|0;while(1){if(!A)break;if((r[(Ud(A,99019,0)|0)+8>>0]|0)==0?(a=NE(A,e,i)|0,a|0):0){if(n)f=(Z1(Vh(A)|0,108006,7)|0)==0;else f=1;pE(A,a,f&1)}A=XB(A)|0}return}function NE(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;r=0;n=cd(A)|0;while(1){if(!n)break;f=gd(e,Vh(n)|0,0)|0;if(f){if(!r)r=NB(e,Vh(A)|0,1)|0;kd(r,f,1)|0}n=sd(A,n)|0}if((i|0)!=0&(r|0)==0)r=NB(e,Vh(A)|0,1)|0;if(r|0?(WE(r,A)|0,jo(A,r)|0,(Z1(Vh(r)|0,108006,7)|0)==0):0)a[(Td(r,98993,12,0)|0)+8>>2]=A;return r|0}function RE(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0;l=k;k=k+16|0;n=l;i=RB(e)|0;r=a[15712]|0;while(1){if(!i)break;A:do{if(!(Z1(Vh(i)|0,108006,7)|0)){f=gd(A,Vh(i)|0,1)|0;Td(f,99031,16,1)|0;a[(a[f+16>>2]|0)+12>>2]=i;e=cd(i)|0;while(1){if(!e)break A;if(a[(Ud(e,99031,0)|0)+12>>2]|0){s=Vh(e)|0;c=Vh(i)|0;t=Vh(a[(Ud(e,99031,0)|0)+12>>2]|0)|0;a[n>>2]=s;a[n+4>>2]=c;a[n+8>>2]=t;f3(r,99123,n)|0}a[(Ud(e,99031,0)|0)+12>>2]=f;e=sd(i,e)|0}}else RE(A,i)}while(0);i=XB(i)|0}k=l;return}function XE(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,a=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0.0;w=+s[A>>3];t=~~(w+(w>=0.0?.5:-.5));w=+s[A+8>>3];A=~~(w+(w>=0.0?.5:-.5));w=+s[e>>3];n=~~(w+(w>=0.0?.5:-.5));w=+s[e+8>>3];a=~~(w+(w>=0.0?.5:-.5));b=n-t|0;l=((b|0)>-1?b:0-b|0)<<1;b=b>>31|1;u=a-A|0;c=((u|0)>-1?u:0-u|0)<<1;u=u>>31|1;A:do{if((l|0)>(c|0)){f=0-l|0;r=c-(l>>1)|0;e=t;while(1){aJ(i,e,A);if((e|0)==(n|0))break A;t=(r|0)>-1;r=r+c+(t?f:0)|0;e=e+b|0;A=(t?u:0)+A|0}}else{f=0-c|0;r=t;e=l-(c>>1)|0;while(1){aJ(i,r,A);if((A|0)==(a|0))break A;c=(e|0)>-1;r=(c?b:0)+r|0;e=e+l+(c?f:0)|0;A=A+u|0}}}while(0);return}function HE(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0;u=k;k=k+16|0;s=u;c=u+4|0;do{if((A|0)<1)i=0;else{f=r+16|0;if((a[f>>2]|0)>>>0<4){i=UE(A,e,i,r)|0;break}b=$F(A<<5)|0;i=0;while(1){if((i|0)==(A|0))break;n=a[e+(i<<2)>>2]|0;xR(n);l=b+(i<<5)|0;n=(a[n+16>>2]|0)+16|0;a[l>>2]=a[n>>2];a[l+4>>2]=a[n+4>>2];a[l+8>>2]=a[n+8>>2];a[l+12>>2]=a[n+12>>2];a[l+16>>2]=a[n+16>>2];a[l+20>>2]=a[n+20>>2];a[l+24>>2]=a[n+24>>2];a[l+28>>2]=a[n+28>>2];i=i+1|0}if((a[f>>2]|0)==4){l=r+28|0;A:do{if(a[l>>2]&2|0){f=r+24|0;a[f>>2]=qF(A<<2)|0;i=0;while(1){if((i|0)==(A|0))break A;n=Ho(a[e+(i<<2)>>2]|0,99190)|0;if(n|0?(a[s>>2]=c,n=(J3(n,137395,s)|0)>0,t=a[c>>2]|0,n&(t|0)>-1):0)a[(a[f>>2]|0)+(i<<2)>>2]=t;i=i+1|0}}}while(0);i=xE(A,b,r)|0;if(a[l>>2]&2)L2(a[r+24>>2]|0)}else i=0;L2(b)}}while(0);k=u;return i|0}function UE(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0.0,M=0.0,F=0.0,V=0.0;Y=k;k=k+144|0;Q=Y+136|0;m=Y+64|0;z=Y+48|0;E=Y+40|0;v=Y;g=Y+120|0;I=Y+104|0;L=Y+96|0;y=a[f+20>>2]|0;a[I>>2]=0;a[I+4>>2]=0;a[I+8>>2]=0;a[I+12>>2]=0;A:do{if((A|0)>=1){w=(y|0)==0;W=a[15712]|0;o=g+4|0;h=g+8|0;d=g+12|0;Z=I+4|0;C=I+8|0;G=I+12|0;u=0;n=0;while(1){if((u|0)==(A|0))break;B=a[e+(u<<2)>>2]|0;xR(B);if(!w?(r[y+u>>0]|0)!=0:0){b=a[B+16>>2]|0;D=+s[b+16>>3];l=~~(D+(D>=0.0?.5:-.5));a[g>>2]=l;D=+s[b+24>>3];t=~~(D+(D>=0.0?.5:-.5));a[o>>2]=t;D=+s[b+32>>3];c=~~(D+(D>=0.0?.5:-.5));a[h>>2]=c;D=+s[b+40>>3];b=~~(D+(D>=0.0?.5:-.5));a[d>>2]=b;if(!n){a[I>>2]=a[g>>2];a[I+4>>2]=a[g+4>>2];a[I+8>>2]=a[g+8>>2];a[I+12>>2]=a[g+12>>2]}else{a[I>>2]=a[((a[I>>2]|0)>(l|0)?g:I)>>2];a[Z>>2]=a[((a[Z>>2]|0)>(t|0)?g:I)+4>>2];a[C>>2]=a[((a[C>>2]|0)<(c|0)?g:I)+8>>2];a[G>>2]=a[((a[G>>2]|0)<(b|0)?g:I)+12>>2]}n=n+1|0}if(0>2){b=Vh(B)|0;B=a[B+16>>2]|0;V=+s[B+16>>3];F=+s[B+24>>3];M=+s[B+32>>3];D=+s[B+40>>3];a[v>>2]=b;s[v+8>>3]=V;s[v+16>>3]=F;s[v+24>>3]=M;s[v+32>>3]=D;f3(W,99257,v)|0}u=u+1|0}h=$F(A<<5)|0;n=0;while(1){if((n|0)==(A|0))break;v=h+(n<<5)|0;g=(a[(a[e+(n<<2)>>2]|0)+16>>2]|0)+16|0;a[v>>2]=a[g>>2];a[v+4>>2]=a[g+4>>2];a[v+8>>2]=a[g+8>>2];a[v+12>>2]=a[g+12>>2];a[v+16>>2]=a[g+16>>2];a[v+20>>2]=a[g+20>>2];a[v+24>>2]=a[g+24>>2];a[v+28>>2]=a[g+28>>2];n=n+1|0}w=f+8|0;o=PE(A,h,a[w>>2]|0)|0;if(0){}if((o|0)>=1){u=(y|0)!=0;if(u){l=((a[C>>2]|0)+(a[I>>2]|0)|0)/2|0;n=((a[G>>2]|0)+(a[Z>>2]|0)|0)/2|0}else{l=0;n=0}a[L+4>>2]=n;a[L>>2]=l;b=qF(A<<4)|0;c=f+16|0;n=0;while(1){if((n|0)>=(A|0))break;l=a[e+(n<<2)>>2]|0;t=b+(n<<4)|0;a[b+(n<<4)+12>>2]=n;if((a[c>>2]|0)==3){I=(a[l+16>>2]|0)+16|0;Z=a[w>>2]|0;G=Vh(l)|0;a[m>>2]=a[I>>2];a[m+4>>2]=a[I+4>>2];a[m+8>>2]=a[I+8>>2];a[m+12>>2]=a[I+12>>2];a[m+16>>2]=a[I+16>>2];a[m+20>>2]=a[I+20>>2];a[m+24>>2]=a[I+24>>2];a[m+28>>2]=a[I+28>>2];a[Q>>2]=a[L>>2];a[Q+4>>2]=a[L+4>>2];SE(m,t,o,Z,Q,G)}else{a[Q>>2]=a[L>>2];a[Q+4>>2]=a[L+4>>2];OE(i,l,t,o,f,Q)}n=n+1|0}t=qF(A<<2)|0;n=0;while(1){if((n|0)>=(A|0))break;a[t+(n<<2)>>2]=b+(n<<4);n=n+1|0}K4(t,A,4,89);c=$V()|0;n=qF(A<<3)|0;e:do{if(u){l=0;while(1){if((l|0)>=(A|0)){l=0;break}if(r[y+l>>0]|0){i=a[t+(l<<2)>>2]|0;f=n+(a[i+12>>2]<<3)|0;a[Q>>2]=a[L>>2];a[Q+4>>2]=a[L+4>>2];_E(i,c,f,Q)}l=l+1|0}while(1){if((l|0)>=(A|0))break e;if(!(r[y+l>>0]|0)){L=a[t+(l<<2)>>2]|0;qE(l,L,c,n+(a[L+12>>2]<<3)|0,o,a[w>>2]|0,h)}l=l+1|0}}else{l=0;while(1){if((l|0)>=(A|0))break e;y=a[t+(l<<2)>>2]|0;qE(l,y,c,n+(a[y+12>>2]<<3)|0,o,a[w>>2]|0,h);l=l+1|0}}}while(0);L2(t);l=0;while(1){if((l|0)>=(A|0))break;L2(a[b+(l<<4)+4>>2]|0);l=l+1|0}L2(b);iJ(c);L2(h);if(0>1){l=0;while(1){if((l|0)>=(A|0))break A;L=a[n+(l<<3)>>2]|0;y=a[n+(l<<3)+4>>2]|0;a[z>>2]=l;a[z+4>>2]=L;a[z+8>>2]=y;f3(W,99301,z)|0;l=l+1|0}}}else n=0}else n=0}while(0);k=Y;return n|0}function xE(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0.0,t=0,c=0,b=0.0,u=0.0,w=0.0,o=0.0,h=0.0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0;G=k;k=k+16|0;n=G;I=qF(A<<3)|0;f=a[i+4>>2]|0;Z=i+28|0;r=(f|0)>0;do{if(!(a[Z>>2]&1))if(r){c=1;C=(A+-1+f|0)/(f|0)|0;break}else{f=~~+H(+ +z(+ +(A|0)));c=1;C=(A+-1+f|0)/(f|0)|0;break}else if(r){c=0;C=f;f=(A+-1+f|0)/(f|0)|0;break}else{f=~~+H(+ +z(+ +(A|0)));c=0;C=f;f=(A+-1+f|0)/(f|0)|0;break}}while(0);if(0){}g=qF((f<<3)+8|0)|0;v=qF((C<<3)+8|0)|0;E=qF(A*24|0)|0;t=i+8|0;r=0;n=E;while(1){if((r|0)>=(A|0))break;o=+s[e+(r<<5)+8>>3];w=+s[e+(r<<5)+24>>3];h=+((a[t>>2]|0)>>>0);s[n>>3]=+s[e+(r<<5)+16>>3]-+s[e+(r<<5)>>3]+h;s[n+8>>3]=w-o+h;a[n+16>>2]=r;r=r+1|0;n=n+24|0}B=qF(A<<2)|0;r=0;while(1){if((r|0)>=(A|0))break;a[B+(r<<2)>>2]=E+(r*24|0);r=r+1|0}r=a[i+24>>2]|0;if(!r){if(!(a[Z>>2]&64))K4(B,A,4,91)}else{a[47056]=r;K4(B,A,4,90)}d=(c|0)==0;r=0;n=0;t=0;while(1){if((t|0)>=(A|0)){l=0.0;r=0;break}c=a[B+(t<<2)>>2]|0;i=g+(n<<3)|0;h=+s[i>>3];o=+s[c>>3];s[i>>3]=h>o?h:o;i=v+(r<<3)|0;o=+s[i>>3];h=+s[c+8>>3];s[i>>3]=o>h?o:h;if(d){r=r+1|0;i=(r|0)==(C|0);r=i?0:r;n=n+(i&1)|0}else{n=n+1|0;i=(n|0)==(f|0);r=r+(i&1)|0;n=i?0:n}t=t+1|0}while(1){if((r|0)>(f|0)){l=0.0;r=C;break}i=g+(r<<3)|0;h=+s[i>>3];s[i>>3]=l;l=h+l;r=r+1|0}while(1){if((r|0)<=0)break;i=r+-1|0;h=+s[v+(i<<3)>>3];s[v+(r<<3)>>3]=l;l=h+l;r=i}s[v>>3]=l;r=0;n=0;i=0;while(1){if((i|0)>=(A|0))break;c=a[(a[B+(i<<2)>>2]|0)+16>>2]|0;l=+s[e+(c<<5)>>3];b=-l;o=+s[e+(c<<5)+8>>3];h=-o;u=+s[e+(c<<5)+16>>3];w=+s[e+(c<<5)+24>>3];t=a[Z>>2]|0;do{if(!(t&4))if(!(t&8)){l=(b-u+ +s[g+(n<<3)>>3]+ +s[g+(n+1<<3)>>3])*.5;break}else{l=l-u+ +s[g+(n+1<<3)>>3];break}else l=+s[g+(n<<3)>>3]}while(0);a[I+(c<<3)>>2]=~~l;do{if(!(t&16))if(!(t&32)){l=(h-w+ +s[v+(r<<3)>>3]+ +s[v+(r+1<<3)>>3])*.5;break}else{l=+s[v+(r+1<<3)>>3];break}else l=o-w+ +s[v+(r<<3)>>3]}while(0);a[I+(c<<3)+4>>2]=~~l;if(d){r=r+1|0;c=(r|0)==(C|0);r=c?0:r;n=n+(c&1)|0}else{n=n+1|0;c=(n|0)==(f|0);r=r+(c&1)|0;n=c?0:n}i=i+1|0}L2(E);L2(B);L2(g);L2(v);k=G;return I|0}function TE(A,e){A=A|0;e=e|0;var i=0;i=a[47056]|0;A=a[i+(a[(a[A>>2]|0)+16>>2]<<2)>>2]|0;e=a[i+(a[(a[e>>2]|0)+16>>2]<<2)>>2]|0;return((A|0)>(e|0)?1:((A|0)<(e|0))<<31>>31)|0}function jE(A,e){A=A|0;e=e|0;var i=0.0,r=0.0;A=a[A>>2]|0;e=a[e>>2]|0;r=+s[A>>3]+ +s[A+8>>3];i=+s[e>>3]+ +s[e+8>>3];return(ri)<<31>>31)|0}function PE(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0,n=0.0,l=0.0,t=0.0,c=0,b=0,u=0.0,w=0.0,o=0,h=0,d=0,B=0;B=k;k=k+96|0;h=B+80|0;d=B+48|0;o=B+8|0;b=B;c=(A*100|0)+-1|0;r=+(i<<1|0);u=0.0;w=0.0;i=0;while(1){if((i|0)>=(A|0))break;t=+s[e+(i<<5)+16>>3]-+s[e+(i<<5)>>3]+r;l=+s[e+(i<<5)+24>>3]-+s[e+(i<<5)+8>>3]+r;u=u-t-l;w=w-l*t;i=i+1|0}l=+(c|0);t=u*u-l*4.0*w;if(!(t<0.0)){r=+z(+t);n=l*2.0;f=(r-u)/n;n=(-u-r)/n;i=~~f;i=(i|0)==0?1:i;if(0>2){b=a[15712]|0;L3(99444,27,1,b)|0;s[o>>3]=l;s[o+8>>3]=u;s[o+16>>3]=w;s[o+24>>3]=t;s[o+32>>3]=r;f3(b,99472,o)|0;a[d>>2]=i;s[d+8>>3]=f;a[d+16>>2]=~~n;s[d+24>>3]=n;f3(b,99498,d)|0;s[h>>3]=(f*l+u)*f+w;s[h+8>>3]=(n*l+u)*n+w;f3(b,99520,h)|0}}else{s[b>>3]=t;ao(1,99417,b)|0;i=-1}k=B;return i|0}function SE(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0,b=0,u=0.0,w=0.0,o=0.0,h=0.0,d=0,B=0,g=0,v=0,E=0.0,C=0.0;v=k;k=k+32|0;g=v+16|0;B=v;o=+s[A>>3];h=+s[A+8>>3];u=+s[A+16>>3];w=+s[A+24>>3];d=$V()|0;t=a[f>>2]|0;A=t-r|0;c=a[f+4>>2]|0;l=c-r|0;t=r-~~(o+(o>=0.0?.5:-.5))+t+~~(u+(u>=0.0?.5:-.5))|0;c=r-~~(h+(h>=0.0?.5:-.5))+c+~~(w+(w>=0.0?.5:-.5))|0;if((A|0)>-1)f=(A|0)/(i|0)|0;else f=((A+1|0)/(i|0)|0)+-1|0;if((l|0)>-1)b=(l|0)/(i|0)|0;else b=((l+1|0)/(i|0)|0)+-1|0;if((t|0)>-1)t=(t|0)/(i|0)|0;else t=((t+1|0)/(i|0)|0)+-1|0;if((c|0)>-1)l=(c|0)/(i|0)|0;else l=((c+1|0)/(i|0)|0)+-1|0;while(1){if((f|0)>(t|0))break;else A=b;while(1){if((A|0)>(l|0))break;aJ(d,f,A);A=A+1|0}f=f+1|0}c=e+4|0;a[c>>2]=cJ(d)|0;t=tJ(d)|0;b=e+8|0;a[b>>2]=t;C=+(r<<1|0);E=+(i|0);l=~~+H(+((u+C-o)/E));A=~~+H(+((w+C-h)/E));a[e>>2]=A+l;A:do{if(0>2){f=a[15712]|0;a[B>>2]=n;a[B+4>>2]=t;a[B+8>>2]=l;a[B+12>>2]=A;f3(f,99376,B)|0;A=0;while(1){if((A|0)>=(a[b>>2]|0))break A;n=a[c>>2]|0;B=a[n+(A<<3)+4>>2]|0;a[g>>2]=a[n+(A<<3)>>2];a[g+4>>2]=B;f3(f,99403,g)|0;A=A+1|0}}}while(0);iJ(d);k=v;return}function OE(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0.0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0.0,U=0.0;R=k;k=k+128|0;z=R+112|0;W=R+104|0;N=R+16|0;p=R;D=R+64|0;M=R+56|0;G=R+40|0;m=R+96|0;Z=R+88|0;E=R+24|0;C=R+80|0;I=R+72|0;V=a[f+8>>2]|0;Y=a[f+12>>2]|0;L=(A|0)==0?e:A;J=$V()|0;F=e+16|0;Q=a[F>>2]|0;g=+s[Q+16>>3];y=(a[n>>2]|0)-~~(g+(g>=0.0?.5:-.5))|0;g=+s[Q+24>>3];Q=(a[n+4>>2]|0)-~~(g+(g>=0.0?.5:-.5))|0;A:do{if((a[f+16>>2]|0)==1){E=$F((gh(e)|0)<<2)|0;A=0;n=cd(e)|0;while(1){if(!n)break;I=n+16|0;a[E+(A<<2)>>2]=a[(a[I>>2]|0)+112>>2];a[(a[I>>2]|0)+112>>2]=0;A=A+1|0;n=sd(e,n)|0}w=y-V|0;o=Q-V|0;h=y+V|0;d=Q+V|0;u=1;while(1){A=a[F>>2]|0;if((u|0)>(a[A+180>>2]|0))break;b=a[(a[A+184>>2]|0)+(u<<2)>>2]|0;l=a[b+16>>2]|0;g=+s[l+16>>3];A=~~(g+(g>=0.0?.5:-.5));g=+s[l+24>>3];n=~~(g+(g>=0.0?.5:-.5));g=+s[l+32>>3];f=~~(g+(g>=0.0?.5:-.5));g=+s[l+40>>3];l=~~(g+(g>=0.0?.5:-.5));e:do{if((f|0)>(A|0)&(l|0)>(n|0)){A=w+A|0;t=o+n|0;f=h+f|0;c=d+l|0;if((A|0)>-1)n=(A|0)/(r|0)|0;else n=((A+1|0)/(r|0)|0)+-1|0;if((t|0)>-1)t=(t|0)/(r|0)|0;else t=((t+1|0)/(r|0)|0)+-1|0;if((f|0)>-1)l=(f|0)/(r|0)|0;else l=((f+1|0)/(r|0)|0)+-1|0;if((c|0)>-1)f=(c|0)/(r|0)|0;else f=((c+1|0)/(r|0)|0)+-1|0;while(1){if((n|0)>(l|0))break;else A=t;while(1){if((A|0)>(f|0))break;aJ(J,n,A);A=A+1|0}n=n+1|0}A=cd(b)|0;while(1){if(!A)break e;a[(a[A+16>>2]|0)+212>>2]=b;A=sd(b,A)|0}}}while(0);u=u+1|0}d=G+8|0;B=D+4|0;g=+(V|0);v=M+4|0;h=m+4|0;o=Z+4|0;w=cd(e)|0;while(1){if(!w)break;mR(G,w);U=+s[G>>3];X=+s[d>>3];b=y+~~(U+(U>=0.0?.5:-.5))|0;a[D>>2]=b;u=Q+~~(X+(X>=0.0?.5:-.5))|0;a[B>>2]=u;n=w+16|0;A=a[n>>2]|0;e:do{if(!(a[A+212>>2]|0)){a[M>>2]=~~((+s[A+96>>3]+ +s[A+88>>3])*.5+g);a[v>>2]=~~(+s[A+80>>3]*.5+g);a[W>>2]=a[D>>2];a[W+4>>2]=a[D+4>>2];a[z>>2]=a[M>>2];a[z+4>>2]=a[M+4>>2];AC(m,W,z);A=a[m>>2]|0;f=a[h>>2]|0;a[W>>2]=a[D>>2];a[W+4>>2]=a[D+4>>2];a[z>>2]=a[M>>2];a[z+4>>2]=a[M+4>>2];eC(Z,W,z);l=a[Z>>2]|0;t=a[o>>2]|0;if((A|0)>-1)n=(A|0)/(r|0)|0;else n=((A+1|0)/(r|0)|0)+-1|0;if((f|0)>-1)c=(f|0)/(r|0)|0;else c=((f+1|0)/(r|0)|0)+-1|0;if((l|0)>-1)l=(l|0)/(r|0)|0;else l=((l+1|0)/(r|0)|0)+-1|0;if((t|0)>-1)f=(t|0)/(r|0)|0;else f=((t+1|0)/(r|0)|0)+-1|0;while(1){if((n|0)>(l|0))break;else A=c;while(1){if((A|0)>(f|0))break;aJ(J,n,A);A=A+1|0}n=n+1|0}if((b|0)>-1)A=(b|0)/(r|0)|0;else A=((b+1|0)/(r|0)|0)+-1|0;a[D>>2]=A;if((u|0)>-1)A=(u|0)/(r|0)|0;else A=((u+1|0)/(r|0)|0)+-1|0;a[B>>2]=A;A=Oo(L,w)|0;while(1){if(!A)break e;a[z>>2]=a[D>>2];a[z+4>>2]=a[D+4>>2];iC(A,z,J,y,Q,r,Y);A=_o(L,A)|0}}else{if((b|0)>-1)A=(b|0)/(r|0)|0;else A=((b+1|0)/(r|0)|0)+-1|0;a[D>>2]=A;if((u|0)>-1)A=(u|0)/(r|0)|0;else A=((u+1|0)/(r|0)|0)+-1|0;a[B>>2]=A;A=Oo(L,w)|0;while(1){if(!A)break e;if((a[(a[n>>2]|0)+212>>2]|0)!=(a[(a[(a[((a[A>>2]&3|0)==2?A:A+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0)){a[z>>2]=a[D>>2];a[z+4>>2]=a[D+4>>2];iC(A,z,J,y,Q,r,Y)}A=_o(L,A)|0}}}while(0);w=sd(e,w)|0}A=0;n=cd(e)|0;while(1){if(!n)break;a[(a[n+16>>2]|0)+112>>2]=a[E+(A<<2)>>2];A=A+1|0;n=sd(e,n)|0}L2(E)}else{d=E+8|0;B=D+4|0;g=+(V|0);v=M+4|0;h=C+4|0;o=I+4|0;w=cd(e)|0;while(1){if(!w)break A;mR(E,w);X=+s[E>>3];U=+s[d>>3];b=y+~~(X+(X>=0.0?.5:-.5))|0;a[D>>2]=b;u=Q+~~(U+(U>=0.0?.5:-.5))|0;a[B>>2]=u;A=a[w+16>>2]|0;a[M>>2]=~~((+s[A+96>>3]+ +s[A+88>>3])*.5+g);a[v>>2]=~~(+s[A+80>>3]*.5+g);a[W>>2]=a[D>>2];a[W+4>>2]=a[D+4>>2];a[z>>2]=a[M>>2];a[z+4>>2]=a[M+4>>2];AC(C,W,z);A=a[C>>2]|0;f=a[h>>2]|0;a[W>>2]=a[D>>2];a[W+4>>2]=a[D+4>>2];a[z>>2]=a[M>>2];a[z+4>>2]=a[M+4>>2];eC(I,W,z);l=a[I>>2]|0;t=a[o>>2]|0;if((A|0)>-1)n=(A|0)/(r|0)|0;else n=((A+1|0)/(r|0)|0)+-1|0;if((f|0)>-1)c=(f|0)/(r|0)|0;else c=((f+1|0)/(r|0)|0)+-1|0;if((l|0)>-1)l=(l|0)/(r|0)|0;else l=((l+1|0)/(r|0)|0)+-1|0;if((t|0)>-1)f=(t|0)/(r|0)|0;else f=((t+1|0)/(r|0)|0)+-1|0;while(1){if((n|0)>(l|0))break;else A=c;while(1){if((A|0)>(f|0))break;aJ(J,n,A);A=A+1|0}n=n+1|0}if((b|0)>-1)A=(b|0)/(r|0)|0;else A=((b+1|0)/(r|0)|0)+-1|0;a[D>>2]=A;if((u|0)>-1)A=(u|0)/(r|0)|0;else A=((u+1|0)/(r|0)|0)+-1|0;a[B>>2]=A;A=Oo(L,w)|0;while(1){if(!A)break;a[z>>2]=a[D>>2];a[z+4>>2]=a[D+4>>2];iC(A,z,J,y,Q,r,Y);A=_o(L,A)|0}w=sd(e,w)|0}}}while(0);l=i+4|0;a[l>>2]=cJ(J)|0;t=i+8|0;a[t>>2]=tJ(J)|0;n=a[F>>2]|0;X=+(V<<1|0);U=+(r|0);A=~~+H(+((+s[n+32>>3]+X-+s[n+16>>3])/U));n=~~+H(+((+s[n+40>>3]+X-+s[n+24>>3])/U));a[i>>2]=n+A;A:do{if(0>2){f=a[15712]|0;i=Vh(e)|0;e=a[t>>2]|0;a[p>>2]=i;a[p+4>>2]=e;a[p+8>>2]=A;a[p+12>>2]=n;f3(f,99376,p)|0;A=0;while(1){if((A|0)>=(a[t>>2]|0))break A;e=a[l>>2]|0;p=a[e+(A<<3)+4>>2]|0;a[N>>2]=a[e+(A<<3)>>2];a[N+4>>2]=p;f3(f,99403,N)|0;A=A+1|0}}}while(0);iJ(J);k=R;return}function KE(A,e){A=A|0;e=e|0;return(a[a[e>>2]>>2]|0)-(a[a[A>>2]>>2]|0)|0}function _E(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,s=0;c=k;k=k+32|0;l=c+16|0;t=c;s=a[A+4>>2]|0;n=a[A+8>>2]|0;a[i>>2]=0-(a[r>>2]|0);f=i+4|0;a[f>>2]=0-(a[r+4>>2]|0);A=0;r=s;while(1){if((A|0)>=(n|0))break;a[l>>2]=a[r>>2];a[l+4>>2]=a[r+4>>2];rJ(e,l);A=A+1|0;r=r+8|0}if(0>1){s=a[15712]|0;e=a[i>>2]|0;i=a[f>>2]|0;a[t>>2]=n;a[t+4>>2]=e;a[t+8>>2]=i;f3(s,99350,t)|0}k=c;return}function qE(A,e,i,r,f,n,l){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;var t=0,c=0,b=0.0,u=0.0,w=0.0,k=0.0,o=0.0,h=0.0;c=a[e+12>>2]|0;b=+s[l+(c<<5)>>3];u=+s[l+(c<<5)+8>>3];w=+s[l+(c<<5)+16>>3];k=+s[l+(c<<5)+24>>3];if(!((A|0)==0?(h=+(n<<1|0),o=+(f|0),($E((~~+H(+((h-b+w)/o))|0)/-2|0,(~~+H(+((h-u+k)/o))|0)/-2|0,e,i,r,f,l)|0)!=0):0))t=3;A:do{if((t|0)==3?($E(0,0,e,i,r,f,l)|0)==0:0)if((~~+H(+(w-b))|0)<(~~+H(+(k-u))|0)){c=1;while(1){t=0-c|0;A=0;while(1){if((A|0)<=(t|0)){n=t;break}if($E(t,A,e,i,r,f,l)|0)break A;A=A+-1|0}while(1){if((n|0)>=(c|0))break;if($E(n,A,e,i,r,f,l)|0)break A;n=n+1|0}while(1){if((A|0)>=(c|0))break;if($E(n,A,e,i,r,f,l)|0)break A;A=A+1|0}while(1){if((n|0)<=(t|0))break;if($E(n,A,e,i,r,f,l)|0)break A;n=n+-1|0}while(1){if((A|0)<=0)break;if(!($E(n,A,e,i,r,f,l)|0))A=A+-1|0;else break A}c=c+1|0}}else{c=1;while(1){t=0-c|0;A=0;while(1){if((A|0)>=(c|0)){n=t;break}if($E(A,t,e,i,r,f,l)|0)break A;A=A+1|0}while(1){if((n|0)>=(c|0))break;if($E(A,n,e,i,r,f,l)|0)break A;n=n+1|0}while(1){if((A|0)<=(t|0))break;if($E(A,n,e,i,r,f,l)|0)break A;A=A+-1|0}while(1){if((n|0)<=(t|0))break;if($E(A,n,e,i,r,f,l)|0)break A;n=n+-1|0}while(1){if((A|0)>=0)break;if(!($E(A,n,e,i,r,f,l)|0))A=A+1|0;else break A}c=c+1|0}}}while(0);return}function $E(A,e,i,r,f,n,l){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;var t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0.0,I=0.0;g=k;k=k+48|0;d=g+32|0;B=g+8|0;h=g;b=i+4|0;w=a[i+8>>2]|0;o=h+4|0;t=a[b>>2]|0;c=0;while(1){if((c|0)>=(w|0)){u=5;break}E=t;v=a[E+4>>2]|0;a[h>>2]=(a[E>>2]|0)+A;a[o>>2]=v+e;a[d>>2]=a[h>>2];a[d+4>>2]=a[h+4>>2];if(nJ(r,d)|0){t=0;break}t=t+8|0;c=c+1|0}if((u|0)==5){i=a[i+12>>2]|0;I=+s[l+(i<<5)>>3];C=+s[l+(i<<5)+8>>3];a[f>>2]=(U(n,A)|0)-~~(I+(I>=0.0?.5:-.5));i=f+4|0;a[i>>2]=(U(n,e)|0)-~~(C+(C>=0.0?.5:-.5));t=a[b>>2]|0;c=0;while(1){if((c|0)>=(w|0))break;v=t;E=a[v+4>>2]|0;a[h>>2]=(a[v>>2]|0)+A;a[o>>2]=E+e;a[d>>2]=a[h>>2];a[d+4>>2]=a[h+4>>2];rJ(r,d);t=t+8|0;c=c+1|0}if(0>1){t=a[15712]|0;v=a[f>>2]|0;E=a[i>>2]|0;a[B>>2]=w;a[B+4>>2]=A;a[B+8>>2]=e;a[B+12>>2]=v;a[B+16>>2]=E;f3(t,99316,B)|0;t=1}else t=1}k=g;return t|0}function AC(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=(a[e+4>>2]|0)-(a[i+4>>2]|0)|0;a[A>>2]=(a[e>>2]|0)-(a[i>>2]|0);a[A+4>>2]=r;return}function eC(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=(a[i+4>>2]|0)+(a[e+4>>2]|0)|0;a[A>>2]=(a[i>>2]|0)+(a[e>>2]|0);a[A+4>>2]=r;return}function iC(A,e,i,r,f,n,l){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;var t=0.0,c=0.0,b=0,u=0,w=0.0,o=0.0,h=0.0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0;m=k;k=k+112|0;I=m+96|0;C=m+80|0;d=m+48|0;B=m+32|0;Z=m+16|0;G=m;u=m+64|0;s[Z>>3]=+(a[e>>2]|0);g=Z+8|0;s[g>>3]=+(a[e+4>>2]|0);A:do{if((l|0)!=0?(v=A+16|0,b=a[(a[v>>2]|0)+8>>2]|0,(b|0)!=0):0){h=+(r|0);o=+(f|0);w=1.0/+(n|0);u=G+8|0;l=0;while(1){if((l|0)>=(a[b+4>>2]|0))break A;f=a[b>>2]|0;A=a[f+(l*48|0)>>2]|0;e=a[f+(l*48|0)+4>>2]|0;n=a[f+(l*48|0)+8>>2]|0;r=a[f+(l*48|0)+12>>2]|0;b=f+(l*48|0)+16|0;a[d>>2]=a[b>>2];a[d+4>>2]=a[b+4>>2];a[d+8>>2]=a[b+8>>2];a[d+12>>2]=a[b+12>>2];f=f+(l*48|0)+32|0;a[B>>2]=a[f>>2];a[B+4>>2]=a[f+4>>2];a[B+8>>2]=a[f+8>>2];a[B+12>>2]=a[f+12>>2];if(!n){a[Z>>2]=a[A>>2];a[Z+4>>2]=a[A+4>>2];a[Z+8>>2]=a[A+8>>2];a[Z+12>>2]=a[A+12>>2];b=A+16|0;a[G>>2]=a[b>>2];a[G+4>>2]=a[b+4>>2];a[G+8>>2]=a[b+8>>2];a[G+12>>2]=a[b+12>>2];b=2}else{a[Z>>2]=a[d>>2];a[Z+4>>2]=a[d+4>>2];a[Z+8>>2]=a[d+8>>2];a[Z+12>>2]=a[d+12>>2];a[G>>2]=a[A>>2];a[G+4>>2]=a[A+4>>2];a[G+8>>2]=a[A+8>>2];a[G+12>>2]=a[A+12>>2];b=1}t=+s[Z>>3]+h;s[Z>>3]=t;c=+s[g>>3]+o;s[g>>3]=c;if(!(t>=0.0))t=(t+1.0)*w+-1.0;else t=t*w;s[Z>>3]=t;if(!(c>=0.0))t=(c+1.0)*w+-1.0;else t=c*w;s[g>>3]=t;t=+s[G>>3]+h;s[G>>3]=t;c=+s[u>>3]+o;s[u>>3]=c;if(!(t>=0.0))t=(t+1.0)*w+-1.0;else t=t*w;s[G>>3]=t;if(!(c>=0.0))t=(c+1.0)*w+-1.0;else t=c*w;s[u>>3]=t;a[C>>2]=a[Z>>2];a[C+4>>2]=a[Z+4>>2];a[C+8>>2]=a[Z+8>>2];a[C+12>>2]=a[Z+12>>2];a[I>>2]=a[G>>2];a[I+4>>2]=a[G+4>>2];a[I+8>>2]=a[G+8>>2];a[I+12>>2]=a[G+12>>2];XE(C,I,i);while(1){if((b|0)>=(e|0))break;a[Z>>2]=a[G>>2];a[Z+4>>2]=a[G+4>>2];a[Z+8>>2]=a[G+8>>2];a[Z+12>>2]=a[G+12>>2];n=A+(b<<4)|0;a[G>>2]=a[n>>2];a[G+4>>2]=a[n+4>>2];a[G+8>>2]=a[n+8>>2];a[G+12>>2]=a[n+12>>2];t=+s[G>>3]+h;s[G>>3]=t;c=+s[u>>3]+o;s[u>>3]=c;if(!(t>=0.0))t=(t+1.0)*w+-1.0;else t=t*w;s[G>>3]=t;if(!(c>=0.0))t=(c+1.0)*w+-1.0;else t=c*w;s[u>>3]=t;a[C>>2]=a[Z>>2];a[C+4>>2]=a[Z+4>>2];a[C+8>>2]=a[Z+8>>2];a[C+12>>2]=a[Z+12>>2];a[I>>2]=a[G>>2];a[I+4>>2]=a[G+4>>2];a[I+8>>2]=a[G+8>>2];a[I+12>>2]=a[G+12>>2];XE(C,I,i);b=b+1|0}if(r|0){a[Z>>2]=a[G>>2];a[Z+4>>2]=a[G+4>>2];a[Z+8>>2]=a[G+8>>2];a[Z+12>>2]=a[G+12>>2];a[G>>2]=a[B>>2];a[G+4>>2]=a[B+4>>2];a[G+8>>2]=a[B+8>>2];a[G+12>>2]=a[B+12>>2];t=+s[G>>3]+h;s[G>>3]=t;c=+s[u>>3]+o;s[u>>3]=c;if(!(t>=0.0))t=(t+1.0)*w+-1.0;else t=t*w;s[G>>3]=t;if(!(c>=0.0))t=(c+1.0)*w+-1.0;else t=c*w;s[u>>3]=t;a[C>>2]=a[Z>>2];a[C+4>>2]=a[Z+4>>2];a[C+8>>2]=a[Z+8>>2];a[C+12>>2]=a[Z+12>>2];a[I>>2]=a[G>>2];a[I+4>>2]=a[G+4>>2];a[I+8>>2]=a[G+8>>2];a[I+12>>2]=a[G+12>>2];XE(C,I,i)}l=l+1|0;b=a[(a[v>>2]|0)+8>>2]|0}}else E=4}while(0);if((E|0)==4){mR(u,a[((a[A>>2]&3|0)==2?A:A+-48|0)+40>>2]|0);a[G>>2]=a[u>>2];a[G+4>>2]=a[u+4>>2];a[G+8>>2]=a[u+8>>2];a[G+12>>2]=a[u+12>>2];t=+s[G>>3]+ +(r|0);s[G>>3]=t;b=G+8|0;c=+s[b>>3]+ +(f|0);s[b>>3]=c;if(!(t>=0.0))t=(t+1.0)/+(n|0)+-1.0;else t=t/+(n|0);s[G>>3]=t;if(!(c>=0.0))t=(c+1.0)/+(n|0)+-1.0;else t=c/+(n|0);s[b>>3]=t;a[C>>2]=a[Z>>2];a[C+4>>2]=a[Z+4>>2];a[C+8>>2]=a[Z+8>>2];a[C+12>>2]=a[Z+12>>2];a[I>>2]=a[G>>2];a[I+4>>2]=a[G+4>>2];a[I+8>>2]=a[G+8>>2];a[I+12>>2]=a[G+12>>2];XE(C,I,i)}k=m;return}function rC(A,e,i){A=A|0;e=e|0;i=i|0;A:do{if((A|0)<1)A=0;else switch(a[i+16>>2]|0){case 4:{A=xE(A,e,i)|0;break A}case 3:{A=fC(A,e,i)|0;break A}default:{A=0;break A}}}while(0);return A|0}function fC(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;u=k;k=k+80|0;n=u+64|0;f=u+24|0;b=u+8|0;r=u;l=u+56|0;c=i+8|0;s=PE(A,e,a[c>>2]|0)|0;if(0){}A:do{if((s|0)>=1){a[l+4>>2]=0;a[l>>2]=0;t=qF(A<<4)|0;i=0;while(1){if((i|0)>=(A|0))break;a[t+(i<<4)+12>>2]=i;w=e+(i<<5)|0;r=a[c>>2]|0;a[f>>2]=a[w>>2];a[f+4>>2]=a[w+4>>2];a[f+8>>2]=a[w+8>>2];a[f+12>>2]=a[w+12>>2];a[f+16>>2]=a[w+16>>2];a[f+20>>2]=a[w+20>>2];a[f+24>>2]=a[w+24>>2];a[f+28>>2]=a[w+28>>2];a[n>>2]=a[l>>2];a[n+4>>2]=a[l+4>>2];SE(f,t+(i<<4)|0,s,r,n,195059);i=i+1|0}f=qF(A<<2)|0;i=0;while(1){if((i|0)>=(A|0))break;a[f+(i<<2)>>2]=t+(i<<4);i=i+1|0}K4(f,A,4,89);n=$V()|0;i=qF(A<<3)|0;r=0;while(1){if((r|0)>=(A|0))break;w=a[f+(r<<2)>>2]|0;qE(r,w,n,i+(a[w+12>>2]<<3)|0,s,a[c>>2]|0,e);r=r+1|0}L2(f);r=0;while(1){if((r|0)>=(A|0))break;L2(a[t+(r<<4)+4>>2]|0);r=r+1|0}L2(t);iJ(n);if(0>1){f=a[15712]|0;r=0;while(1){if((r|0)>=(A|0))break A;e=a[i+(r<<3)>>2]|0;w=a[i+(r<<3)+4>>2]|0;a[b>>2]=r;a[b+4>>2]=e;a[b+8>>2]=w;f3(f,99301,b)|0;r=r+1|0}}}else i=0}while(0);k=u;return i|0}function aC(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,b=0,u=0.0,w=0.0,k=0.0,o=0.0,h=0,d=0,B=0,g=0;A:do{if((A|0)<1)f=0-A|0;else{B=(r|0)==0;h=(f|0)==0;t=0;while(1){if((t|0)==(A|0)){f=0;break A}d=a[e+(t<<2)>>2]|0;n=B?d:r;c=a[i+(t<<3)>>2]|0;b=a[i+(t<<3)+4>>2]|0;u=+(c|0);w=u*.013888888888888888;k=+(b|0);o=k*.013888888888888888;l=cd(d)|0;while(1){if(!l)break;f=a[l+16>>2]|0;g=a[f+132>>2]|0;s[g>>3]=+s[g>>3]+w;g=g+8|0;s[g>>3]=+s[g>>3]+o;g=f+16|0;s[g>>3]=+s[g>>3]+u;g=f+24|0;s[g>>3]=+s[g>>3]+k;f=a[f+108>>2]|0;if(f|0){g=f+56|0;s[g>>3]=+s[g>>3]+u;g=f+64|0;s[g>>3]=+s[g>>3]+k}e:do{if(!h){f=Oo(n,l)|0;while(1){if(!f)break e;nC(f,c,b);f=_o(n,f)|0}}}while(0);l=sd(d,l)|0}lC(d,c,b);t=t+1|0}}}while(0);return f|0}function nC(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0.0,c=0,b=0.0,u=0,w=0;r=a[A+16>>2]|0;A=a[r+96>>2]|0;if(A|0){u=A+56|0;s[u>>3]=+s[u>>3]+ +(e|0);u=A+64|0;s[u>>3]=+s[u>>3]+ +(i|0)}A=a[r+108>>2]|0;if(A|0){u=A+56|0;s[u>>3]=+s[u>>3]+ +(e|0);u=A+64|0;s[u>>3]=+s[u>>3]+ +(i|0)}A=a[r+100>>2]|0;if(A|0){u=A+56|0;s[u>>3]=+s[u>>3]+ +(e|0);u=A+64|0;s[u>>3]=+s[u>>3]+ +(i|0)}A=a[r+104>>2]|0;if(A|0){u=A+56|0;s[u>>3]=+s[u>>3]+ +(e|0);u=A+64|0;s[u>>3]=+s[u>>3]+ +(i|0)}u=a[r+8>>2]|0;A:do{if(u|0){b=+(e|0);t=+(i|0);e=a[u+4>>2]|0;A=0;while(1){if((A|0)>=(e|0))break A;c=a[u>>2]|0;i=a[c+(A*48|0)>>2]|0;f=a[c+(A*48|0)+4>>2]|0;n=a[c+(A*48|0)+8>>2]|0;l=a[c+(A*48|0)+12>>2]|0;r=0;while(1){if((r|0)>=(f|0))break;w=i+(r<<4)|0;s[w>>3]=+s[w>>3]+b;w=i+(r<<4)+8|0;s[w>>3]=+s[w>>3]+t;r=r+1|0}if(n|0){w=c+(A*48|0)+16|0;s[w>>3]=+s[w>>3]+b;w=c+(A*48|0)+24|0;s[w>>3]=+s[w>>3]+t}if(l|0){w=c+(A*48|0)+32|0;s[w>>3]=+s[w>>3]+b;w=c+(A*48|0)+40|0;s[w>>3]=+s[w>>3]+t}A=A+1|0}}}while(0);return}function lC(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0.0,l=0.0,t=0,c=0.0,b=0.0,u=0,w=0.0,k=0;t=A+16|0;A=a[t>>2]|0;k=A+16|0;u=A+24|0;f=A+32|0;A=A+40|0;n=+(e|0);b=+s[f>>3]+n;l=+(i|0);w=+s[u>>3]+l;c=+s[A>>3]+l;s[k>>3]=+s[k>>3]+n;s[u>>3]=w;s[f>>3]=b;s[A>>3]=c;A=a[t>>2]|0;f=a[A+12>>2]|0;if((f|0)!=0?(r[f+81>>0]|0)!=0:0){k=f+56|0;s[k>>3]=+s[k>>3]+n;f=f+64|0;s[f>>3]=+s[f>>3]+l;f=1}else f=1;while(1){if((f|0)>(a[A+180>>2]|0))break;lC(a[(a[A+184>>2]|0)+(f<<2)>>2]|0,e,i);f=f+1|0;A=a[t>>2]|0}return}function tC(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0;f=HE(A,e,i,r)|0;if(!f)A=1;else{A=aC(A,e,f,i,a[r+12>>2]|0)|0;L2(f)}return A|0}function cC(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0;o=k;k=k+32|0;w=o;u=tC(A,e,i,r)|0;if(!u){xR(i);b=(a[i+16>>2]|0)+16|0;a[w>>2]=a[b>>2];a[w+4>>2]=a[b+4>>2];a[w+8>>2]=a[b+8>>2];a[w+12>>2]=a[b+12>>2];a[w+16>>2]=a[b+16>>2];a[w+20>>2]=a[b+20>>2];a[w+24>>2]=a[b+24>>2];a[w+28>>2]=a[b+28>>2];f=w+8|0;n=w+16|0;l=w+24|0;r=0;while(1){if((r|0)>=(A|0))break;c=a[(a[e+(r<<2)>>2]|0)+16>>2]|0;t=a[c+180>>2]|0;c=c+184|0;i=1;while(1){if((i|0)>(t|0))break;d=(a[(a[(a[c>>2]|0)+(i<<2)>>2]|0)+16>>2]|0)+16|0;s[w>>3]=+s[(+s[w>>3]<+s[d>>3]?w:d)>>3];d=a[(a[(a[c>>2]|0)+(i<<2)>>2]|0)+16>>2]|0;h=d+16|0;s[f>>3]=+s[(+s[f>>3]<+s[d+24>>3]?w:h)+8>>3];s[n>>3]=+s[(+s[n>>3]>+s[d+32>>3]?w:h)+16>>3];s[l>>3]=+s[(+s[l>>3]>+s[d+40>>3]?w:h)+24>>3];i=i+1|0}r=r+1|0}a[b>>2]=a[w>>2];a[b+4>>2]=a[w+4>>2];a[b+8>>2]=a[w+8>>2];a[b+12>>2]=a[w+12>>2];a[b+16>>2]=a[w+16>>2];a[b+20>>2]=a[w+20>>2];a[b+24>>2]=a[w+24>>2];a[b+28>>2]=a[w+28>>2]}k=o;return u|0}function sC(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0;n=k;k=k+16|0;f=n;if(!r)gA(99534,99540,1400,99547);i=bC(A,i,i)|0;a[r+8>>2]=i;if(0){}a[r+12>>2]=0;a[r+20>>2]=0;uC(A,e,r)|0;k=n;return a[r+16>>2]|0}function bC(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0;t=k;k=k+16|0;l=t;f=t+4|0;n=Ho(A,99689)|0;A:do{if(n){a[l>>2]=f;l=(J3(n,137395,l)|0)==1;A=a[f>>2]|0;if(l&(A|0)>-1)e=A;else{switch(r[n>>0]|0){case 84:case 116:break;default:break A}e=i}}}while(0);k=t;return e|0}function uC(A,e,i){A=A|0;e=e|0;i=i|0;return wC(Ho(A,99572)|0,e,i)|0}function wC(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0.0;g=k;k=k+64|0;h=g+40|0;o=g+32|0;B=g+24|0;d=g+16|0;s=g+8|0;t=g;n=g+48|0;l=g+44|0;if(!i)gA(99534,99540,1292,99581);u=i+28|0;a[u>>2]=0;w=i+16|0;a[w>>2]=e;b=i+4|0;a[b>>2]=0;a[i+24>>2]=0;A:do{if(A|0?(f=r[A>>0]|0,f<<24>>24):0)switch(f<<24>>24|0){case 97:if(!(Z1(A,99599,5)|0)){a[w>>2]=4;s=kC(A+5|0,i)|0;a[t>>2]=l;s=(J3(s,137395,t)|0)>0;e=a[l>>2]|0;if(!(s&(e|0)>0))break A;a[b>>2]=e;break A}else{if(Z1(A,99605,6)|0)break A;a[w>>2]=5;a[s>>2]=n;s=(J3(A+5|0,99612,s)|0)>0;v=+c[n>>2];c[i>>2]=s&v>0.0?v:1.0;break A}case 99:{if(f<<24>>24!=99)break A;if(A1(A,108006)|0)break A;a[w>>2]=1;break A}case 103:{if(f<<24>>24!=103)break A;if(A1(A,111494)|0)break A;a[w>>2]=3;break A}case 110:{if(f<<24>>24!=110)break A;if(A1(A,111481)|0)break A;a[w>>2]=2;break A}default:break A}}while(0);if(0){}k=g;return a[w>>2]|0}function kC(A,e){A=A|0;e=e|0;var i=0,f=0,n=0;A:do{if((r[A>>0]|0)==95){f=e+28|0;i=1;while(1){A=A+1|0;e:while(1){if(!i)break A;e=r[A>>0]|0;if(!(e<<24>>24))break A;switch(e<<24>>24|0){case 99:{n=10;break e}case 105:{n=9;break e}case 117:{n=11;break e}case 116:{n=12;break e}case 98:{e=32;break e}case 108:{n=7;break e}case 114:{n=8;break e}default:i=0}}if((n|0)==7){n=0;e=4}else if((n|0)==8){n=0;e=8}else if((n|0)==9){n=0;e=64}else if((n|0)==10){n=0;e=1}else if((n|0)==11){n=0;e=2}else if((n|0)==12){n=0;e=16}a[f>>2]=a[f>>2]|e}}}while(0);return A|0}function oC(A){A|0;switch(A|0){case 1:{108006;break}case 2:{111481;break}case 3:{111494;break}case 4:{99599;break}case 5:{99605;break}default:99679}return A|0}function hC(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0;u=k;k=k+96|0;s=u;b=u+80|0;do{if(A){if(!r){r=y2(1,20)|0;a[r+4>>2]=i>>>0>80?i:80}i=a[r>>2]|0;c=a[r+4>>2]|0;if(!i){l=100;i=A;t=y2(100,c)|0}else{l=i+100|0;t=W2(a[r+8>>2]|0,U(l,c)|0)|0;Y6(t+(U(c,i)|0)|0,0,c*100|0)|0;i=A}while(1){i=dC(s,i,e,b)|0;if(!i)break;A=a[r>>2]|0;f=l<<1;n=U(l,c)|0;if((A|0)==(l|0)){t=W2(t,U(f,c)|0)|0;Y6(t+n|0,0,n|0)|0;A=a[r>>2]|0}else f=l;A=t+(U(A,c)|0)|0;n=s;l=A+80|0;do{a[A>>2]=a[n>>2];A=A+4|0;n=n+4|0}while((A|0)<(l|0));a[r>>2]=(a[r>>2]|0)+1;l=f}if(a[b>>2]|0){b=r+16|0;a[b>>2]=a[b>>2]|1}i=a[r>>2]|0;if(!i){L2(t);L2(r);r=0;break}else{a[r+8>>2]=W2(t,U(i,c)|0)|0;break}}}while(0);k=u;return r|0}function dC(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0;c=k;k=k+80|0;l=c+64|0;t=c;a[f>>2]=0;do{n=r[e>>0]|0;e=e+1|0}while((m1(n)|0)!=0);A:do{switch(n|0){case 69:{a[A>>2]=0;e=BC(e,A+8|0)|0;if(!e){a[f>>2]=1;e=0;break A}if(i)a[A+72>>2]=a[i>>2];break}case 101:{a[A>>2]=1;e=BC(e,A+8|0)|0;if(!e){a[f>>2]=1;e=0;break A}if(i)a[A+72>>2]=a[i>>2];break}case 80:{a[A>>2]=2;e=gC(e,A+8|0)|0;if(!e){a[f>>2]=1;e=0;break A}if(i)a[A+72>>2]=a[i+4>>2];break}case 112:{a[A>>2]=3;e=gC(e,A+8|0)|0;if(!e){a[f>>2]=1;e=0;break A}if(i)a[A+72>>2]=a[i+4>>2];break}case 98:{a[A>>2]=4;e=gC(e,A+8|0)|0;if(!e){a[f>>2]=1;e=0;break A}if(i)a[A+72>>2]=a[i+8>>2];break}case 66:{a[A>>2]=5;e=gC(e,A+8|0)|0;if(!e){a[f>>2]=1;e=0;break A}if(i)a[A+72>>2]=a[i+8>>2];break}case 99:{e=vC(e,l)|0;if(!e){a[f>>2]=1;e=0;break A}n=EC(a[l>>2]|0,t)|0;a[l>>2]=n;if(!n){a[f>>2]=1;e=0;break A}if(!(a[t>>2]|0)){a[A>>2]=9;a[A+8>>2]=a[t+8>>2];if(!i)break A;a[A+72>>2]=a[i+24>>2];break A}else{a[A>>2]=14;f=A+8|0;n=t;l=f+64|0;do{a[f>>2]=a[n>>2];f=f+4|0;n=n+4|0}while((f|0)<(l|0));if(!i)break A;a[A+72>>2]=a[i+40>>2];break A}}case 67:{e=vC(e,l)|0;if(!e){a[f>>2]=1;e=0;break A}n=EC(a[l>>2]|0,t)|0;a[l>>2]=n;if(!n){a[f>>2]=1;e=0;break A}if(!(a[t>>2]|0)){a[A>>2]=8;a[A+8>>2]=a[t+8>>2];if(!i)break A;a[A+72>>2]=a[i+20>>2];break A}else{a[A>>2]=13;f=A+8|0;n=t;l=f+64|0;do{a[f>>2]=a[n>>2];f=f+4|0;n=n+4|0}while((f|0)<(l|0));if(!i)break A;a[A+72>>2]=a[i+40>>2];break A}}case 76:{a[A>>2]=6;e=gC(e,A+8|0)|0;if(!e){a[f>>2]=1;e=0;break A}if(i)a[A+72>>2]=a[i+12>>2];break}case 84:{a[A>>2]=7;e=CC(e,A+8|0)|0;if(!e){a[f>>2]=1;e=0;break A}e=CC(e,A+16|0)|0;if(!e){a[f>>2]=1;e=0;break A}e=IC(e,A+24|0)|0;if(!e){a[f>>2]=1;e=0;break A}e=CC(e,A+32|0)|0;if(!e){a[f>>2]=1;e=0;break A}e=vC(e,A+40|0)|0;if(!e){a[f>>2]=1;e=0;break A}if(i)a[A+72>>2]=a[i+16>>2];break}case 70:{a[A>>2]=10;e=CC(e,A+8|0)|0;if(!e){a[f>>2]=1;e=0;break A}e=vC(e,A+16|0)|0;if(!e){a[f>>2]=1;e=0;break A}if(i)a[A+72>>2]=a[i+28>>2];break}case 83:{a[A>>2]=11;e=vC(e,A+8|0)|0;if(!e){a[f>>2]=1;e=0;break A}if(i)a[A+72>>2]=a[i+32>>2];break}case 73:{a[A>>2]=12;e=BC(e,A+8|0)|0;if(!e){a[f>>2]=1;e=0;break A}e=vC(e,A+40|0)|0;if(!e){a[f>>2]=1;e=0;break A}if(i)a[A+72>>2]=a[i+36>>2];break}case 116:{a[A>>2]=15;e=ZC(e,A+8|0)|0;if(!e){a[f>>2]=1;e=0;break A}if(i)a[A+72>>2]=a[i+44>>2];break}case 0:{e=0;break}default:{a[f>>2]=1;e=0}}}while(0);k=c;return e|0}function BC(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;l=k;k=k+16|0;r=l;s[e>>3]=+A8(A,r);f=a[r>>2]|0;if(((f|0)!=(A|0)?(s[e+8>>3]=+A8(f,r),n=a[r>>2]|0,(f|0)!=(n|0)):0)?(s[e+16>>3]=+A8(n,r),i=a[r>>2]|0,(n|0)!=(i|0)):0){s[e+24>>3]=+A8(i,r);A=a[r>>2]|0;A=(i|0)==(A|0)?0:A}else A=0;k=l;return A|0}function gC(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0;c=k;k=k+16|0;t=c+4|0;n=c;A=GC(A,t)|0;do{if(A){i=a[t>>2]|0;l=y2(i,24)|0;a[e>>2]=i;r=l;f=0;while(1){if((f|0)>=(i|0)){i=9;break}s[r>>3]=+A8(A,n);i=a[n>>2]|0;if((A|0)==(i|0)){i=5;break}s[r+8>>3]=+A8(i,n);A=a[n>>2]|0;if((i|0)==(A|0)){i=7;break}s[r+16>>3]=0.0;r=r+24|0;i=a[e>>2]|0;f=f+1|0}if((i|0)==5){a[t>>2]=f;L2(l);A=0;break}else if((i|0)==7){a[t>>2]=f;L2(l);A=0;break}else if((i|0)==9){a[t>>2]=f;a[e+4>>2]=l;break}}else A=0}while(0);k=c;return A|0}function vC(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0;c=k;k=k+16|0;t=c;A=GC(A,t)|0;f=a[t>>2]|0;do{if(!((A|0)==0|(f|0)<1)){while(1){l=r[A>>0]|0;i=l<<24>>24==0;if(i^l<<24>>24!=45)A=A+1|0;else break}if(!i){l=y2(f+1|0,1)|0;n=l;i=f;while(1){A=A+1|0;if((i|0)<=0){i=9;break}i=r[A>>0]|0;if(!(i<<24>>24)){i=8;break}r[n>>0]=i;i=(a[t>>2]|0)+-1|0;a[t>>2]=i;n=n+1|0}if((i|0)==8){L2(l);A=0;break}else if((i|0)==9){r[n>>0]=0;a[e>>2]=l;break}}else A=0}else A=0}while(0);k=c;return A|0}function EC(A,e){A=A|0;e=e|0;var i=0;i=r[A>>0]|0;switch(i|0){case 91:{A=mC(A+1|0,e)|0;break}case 40:{A=QC(A+1|0,e)|0;break}case 47:case 35:{a[e>>2]=0;a[e+8>>2]=A;break}default:if(!(V1(i)|0))A=0;else{a[e>>2]=0;a[e+8>>2]=A}}return A|0}function CC(A,e){A=A|0;e=e|0;var i=0,r=0.0,f=0;f=k;k=k+16|0;i=f;r=+A8(A,i);i=a[i>>2]|0;if((i|0)==(A|0))i=0;else s[e>>3]=r;k=f;return i|0}function IC(A,e){A=A|0;e=e|0;var i=0,r=0;i=k;k=k+16|0;r=i;A=GC(A,r)|0;r=a[r>>2]|0;a[e>>2]=(r|0)<0?0:r|0?2:1;k=i;return A|0}function ZC(A,e){A=A|0;e=e|0;var i=0,r=0;i=k;k=k+16|0;r=i;a[e>>2]=Q1(A,r,10)|0;e=a[r>>2]|0;k=i;return((e|0)==(A|0)?0:e)|0}function GC(A,e){A=A|0;e=e|0;var i=0,r=0;i=k;k=k+16|0;r=i;a[e>>2]=n3(A,r,10)|0;e=a[r>>2]|0;k=i;return((e|0)==(A|0)?0:e)|0}function mC(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,b=0,u=0,w=0;w=k;k=k+16|0;b=w;a[e>>2]=1;u=e+8|0;n=CC(A,u)|0;do{if(((((n|0)!=0?(l=CC(n,e+16|0)|0,(l|0)!=0):0)?(r=CC(l,e+24|0)|0,(r|0)!=0):0)?(f=CC(r,e+32|0)|0,(f|0)!=0):0)?(t=e+40|0,i=GC(f,t)|0,(i|0)!=0):0){e=a[t>>2]|0;f=y2(e,8)|0;r=0;while(1){if((r|0)>=(e|0)){i=13;break}i=CC(i,b)|0;if(!i){i=9;break}c[f+(r<<3)>>2]=+s[b>>3];i=vC(i,f+(r<<3)+4|0)|0;if(!i){i=12;break}r=r+1|0;e=a[t>>2]|0}if((i|0)==9){L2(f);A=0;break}else if((i|0)==12){L2(f);A=0;break}else if((i|0)==13){a[u+36>>2]=f;break}}else A=0}while(0);k=w;return A|0}function QC(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,b=0,u=0,w=0,o=0;o=k;k=k+16|0;u=o;a[e>>2]=2;t=CC(A,e+8|0)|0;do{if(((((((t|0)!=0?(b=CC(t,e+16|0)|0,(b|0)!=0):0)?(r=CC(b,e+24|0)|0,(r|0)!=0):0)?(f=CC(r,e+32|0)|0,(f|0)!=0):0)?(n=CC(f,e+40|0)|0,(n|0)!=0):0)?(l=CC(n,e+48|0)|0,(l|0)!=0):0)?(w=e+56|0,i=GC(l,w)|0,(i|0)!=0):0){r=a[w>>2]|0;n=y2(r,8)|0;f=0;while(1){if((f|0)>=(r|0)){i=15;break}i=CC(i,u)|0;if(!i){i=11;break}c[n+(f<<3)>>2]=+s[u>>3];i=vC(i,n+(f<<3)+4|0)|0;if(!i){i=14;break}f=f+1|0;r=a[w>>2]|0}if((i|0)==11){L2(n);A=0;break}else if((i|0)==14){L2(n);A=0;break}else if((i|0)==15){a[e+60>>2]=n;break}}else A=0}while(0);k=o;return A|0}function LC(A,e,i){A=A|0;e=e|0;i=i|0;return hC(A,e,i,0)|0}function yC(A){A=A|0;return LC(A,0,0)|0}function WC(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0;r=a[A+12>>2]|0;if(A|0){f=a[A+8>>2]|0;n=A+4|0;l=(r|0)==0;e=0;while(1){if((e|0)>=(a[A>>2]|0))break;i=f+(U(a[n>>2]|0,e)|0)|0;if(!l)F5[r&127](i);zC(i);e=e+1|0}L2(f);L2(A)}return}function zC(A){A=A|0;switch(a[A>>2]|0){case 3:case 2:{L2(a[A+8+4>>2]|0);break}case 5:case 4:{L2(a[A+8+4>>2]|0);break}case 6:{L2(a[A+8+4>>2]|0);break}case 7:{L2(a[A+40>>2]|0);break}case 9:case 8:{L2(a[A+8>>2]|0);break}case 14:case 13:{YC(A+8|0);break}case 10:{L2(a[A+16>>2]|0);break}case 11:{L2(a[A+8>>2]|0);break}case 12:{L2(a[A+40>>2]|0);break}default:{}}return}function YC(A){A=A|0;var e=0,i=0,r=0;switch(a[A>>2]|0){case 1:{r=A+40|0;e=A+8+36|0;A=0;while(1){i=a[e>>2]|0;if((A|0)>=(a[r>>2]|0))break;L2(a[i+(A<<3)+4>>2]|0);A=A+1|0}L2(i);break}case 2:{r=A+56|0;i=A+60|0;A=0;while(1){e=a[i>>2]|0;if((A|0)>=(a[r>>2]|0))break;L2(a[e+(A<<3)+4>>2]|0);A=A+1|0}L2(e);break}default:{}}return}function DC(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;w=k;k=k+16|0;s=w+4|0;u=w;a[e>>2]=0;a[i>>2]=(Ih(Id(A)|0)|0)!=0&1;f=a[47184]|0;A:do{if(f|0?(l=Uo(A,f)|0,t=r[l>>0]|0,t<<24>>24):0){f=20388;while(1){n=a[f>>2]|0;if(!n)break A;if(t<<24>>24==(r[n>>0]|0)?(A1(l,n)|0)==0:0)break;f=f+12|0}a[e>>2]=a[f+4>>2];a[i>>2]=a[f+8>>2]}}while(0);f=a[47195]|0;if((f|0?(a[i>>2]|0)==1:0)?(c=Uo(A,f)|0,r[c>>0]|0):0)MC(c,i);f=a[47196]|0;if((f|0?(a[e>>2]|0)==1:0)?(b=Uo(A,f)|0,r[b>>0]|0):0)MC(b,e);if(r[(a[A+16>>2]|0)+153>>0]|0){c=A+-48|0;t=Id(a[((a[A>>2]&3|0)==2?A:c)+40>>2]|0)|0;b=a[A>>2]&3;DC(th(t,a[((b|0)==2?A:c)+40>>2]|0,a[((b|0)==3?A:A+48|0)+40>>2]|0,0,0)|0,s,u);a[i>>2]=a[s>>2]|a[i>>2];a[e>>2]=a[u>>2]|a[e>>2]}k=w;return}function MC(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;w=k;k=k+16|0;b=w;s=w+4|0;c=0;i=0;A:while(1){a[e>>2]=i;n=(c|0)<4;l=(c|0)==3;t=(c|0)==0;while(1){if(!(n&(r[A>>0]|0)!=0))break A;a[s>>2]=0;f=FC(A,s)|0;i=a[s>>2]|0;if(!i){u=5;break A}A=(i|0)==8;if(!(l&A)){if(!(t&A))break;if(r[f>>0]|0)break}a[s>>2]=0;A=f}i=a[e>>2]|i<<(c<<3);c=c+1|0;A=f}if((u|0)==5){a[b>>2]=A;ao(0,99694,b)|0}k=w;return}function FC(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;f=k;k=k+16|0;r=f;a[r>>2]=0;i=VC(A,20448,r)|0;if((i|0)==(A|0)){while(1){i=VC(A,20464,r)|0;if((A|0)==(i|0))break;else A=i}i=VC(A,20512,r)|0}A=a[r>>2]|0;if((A|0)!=0&(A&15|0)==0){A=A|1;a[r>>2]=A}a[e>>2]=a[e>>2]|A;k=f;return i|0}function VC(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;while(1){r=a[e>>2]|0;if(!r)break;f=P2(r)|0;if(!(Z1(A,r,f)|0)){n=4;break}e=e+8|0}if((n|0)==4){a[i>>2]=a[i>>2]|a[e+4>>2];A=A+f|0}return A|0}function JC(A,e){A=A|0;e=e|0;var i=0.0,r=0,f=0,n=0,l=0;n=0;i=0.0;while(1){if((n|0)==4)break;f=e>>(n<<3)&15;r=1400;while(1){if(!(a[r+16>>2]|0))break;if((f|0)==(a[r>>2]|0)){l=6;break}r=r+24|0}if((l|0)==6){l=0;i=+s[r+8>>3]+i}n=n+1|0}return+(i*10.0*+oR(A,a[47188]|0,1.0,0.0))}function pC(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=+r;f=+f;n=n|0;var l=0.0,t=0.0,c=0.0,b=0,u=0.0,w=0,o=0;o=k;k=k+96|0;b=o+80|0;w=o;c=f>4.0?f*.0875:.35;l=+s[i+8>>3];u=l*c;t=+s[i>>3];c=t*c;r=+s[e>>3];t=r+t;s[b>>3]=t;f=+s[e+8>>3];l=l+f;s[b+8>>3]=l;i=w+64|0;if(!(n&32)){a[i>>2]=a[b>>2];a[i+4>>2]=a[b+4>>2];a[i+8>>2]=a[b+8>>2];a[i+12>>2]=a[b+12>>2];a[w>>2]=a[b>>2];a[w+4>>2]=a[b+4>>2];a[w+8>>2]=a[b+8>>2];a[w+12>>2]=a[b+12>>2];b=w+32|0;a[b>>2]=a[e>>2];a[b+4>>2]=a[e+4>>2];a[b+8>>2]=a[e+8>>2];a[b+12>>2]=a[e+12>>2];f=l;r=t}else{a[i>>2]=a[e>>2];a[i+4>>2]=a[e+4>>2];a[i+8>>2]=a[e+8>>2];a[i+12>>2]=a[e+12>>2];a[w>>2]=a[e>>2];a[w+4>>2]=a[e+4>>2];a[w+8>>2]=a[e+8>>2];a[w+12>>2]=a[e+12>>2];e=w+32|0;a[e>>2]=a[b>>2];a[e+4>>2]=a[b+4>>2];a[e+8>>2]=a[b+8>>2];a[e+12>>2]=a[b+12>>2]}s[w+16>>3]=r+u;s[w+24>>3]=f-c;s[w+48>>3]=r-u;s[w+56>>3]=f+c;do{if(!(n&64))if(!(n&128)){ar(A,w+16|0,3,n>>>4&1^1);break}else{ar(A,w+32|0,3,n>>>4&1^1);break}else ar(A,w,3,n>>>4&1^1)}while(0);k=o;return}function NC(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=+r;f=+f;n=n|0;var l=0.0,t=0.0,c=0.0,b=0.0,u=0,w=0.0,o=0.0,h=0.0,d=0.0,B=0.0,g=0.0,v=0.0,E=0.0,C=0,I=0,Z=0;I=k;k=k+160|0;u=I+144|0;C=I;h=r*4.0;Z=(n&32|0)==0;h=!(h1.0)|Z?0.0:(f+-1.0)*.05/r;v=+s[i+8>>3];d=-v;E=h*d;g=+s[i>>3];h=g*h;d=B*d;B=g*B;o=+s[e>>3];r=o+g;s[u>>3]=r;w=+s[e+8>>3];f=v+w;s[u+8>>3]=f;g=g*.5+o;v=v*.5+w;i=C+128|0;if(Z){a[i>>2]=a[u>>2];a[i+4>>2]=a[u+4>>2];a[i+8>>2]=a[u+8>>2];a[i+12>>2]=a[u+12>>2];a[C>>2]=a[u>>2];a[C+4>>2]=a[u+4>>2];a[C+8>>2]=a[u+8>>2];a[C+12>>2]=a[u+12>>2];Z=C+64|0;a[Z>>2]=a[e>>2];a[Z+4>>2]=a[e+4>>2];a[Z+8>>2]=a[e+8>>2];a[Z+12>>2]=a[e+12>>2];l=w;t=o;c=w;b=o;f=w;r=o}else{a[i>>2]=a[e>>2];a[i+4>>2]=a[e+4>>2];a[i+8>>2]=a[e+8>>2];a[i+12>>2]=a[e+12>>2];a[C>>2]=a[e>>2];a[C+4>>2]=a[e+4>>2];a[C+8>>2]=a[e+8>>2];a[C+12>>2]=a[e+12>>2];Z=C+64|0;a[Z>>2]=a[u>>2];a[Z+4>>2]=a[u+4>>2];a[Z+8>>2]=a[u+8>>2];a[Z+12>>2]=a[u+12>>2];l=f+B;t=r+d;c=f-B;b=r-d}s[C+16>>3]=r-E;s[C+24>>3]=f-h;s[C+32>>3]=g-d;s[C+40>>3]=v-B;s[C+48>>3]=b;s[C+56>>3]=c;s[C+80>>3]=t;s[C+88>>3]=l;s[C+96>>3]=g+d;s[C+104>>3]=v+B;s[C+112>>3]=r+E;s[C+120>>3]=f+h;do{if(!(n&64))if(!(n&128)){ar(A,C,9,1);break}else{ar(A,C+48|0,6,1);break}else ar(A,C,6,1)}while(0);k=I;return}function RC(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=+r;f=+f;n=n|0;var l=0.0,t=0.0,c=0.0,b=0.0,u=0,w=0,o=0,h=0,d=0,B=0.0,g=0.0;h=k;k=k+64|0;o=h;g=+s[i+8>>3];B=+s[i>>3];c=+s[e>>3];r=c+B;b=+s[e+8>>3];f=b+g;l=c+B*.2;t=b+g*.2;c=c+B*.6;b=b+g*.6;s[o>>3]=l-g;s[o+8>>3]=t+B;u=o+16|0;s[u>>3]=l+g;w=o+24|0;s[w>>3]=t-B;s[o+32>>3]=c+g;s[o+40>>3]=b-B;s[o+48>>3]=c-g;s[o+56>>3]=b+B;if(!(n&64)){if(n&128|0){i=2;n=1;d=3}}else{i=3;n=0;d=3}if((d|0)==3){s[o+(n<<4)>>3]=l;s[o+(n<<4)+8>>3]=t;s[o+(i<<4)>>3]=c;s[o+(i<<4)+8>>3]=b}ar(A,o,4,1);a[o>>2]=a[e>>2];a[o+4>>2]=a[e+4>>2];a[o+8>>2]=a[e+8>>2];a[o+12>>2]=a[e+12>>2];s[u>>3]=r;s[w>>3]=f;tr(A,o,2);k=h;return}function XC(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=+r;f=+f;n=n|0;var l=0.0,t=0.0,c=0,b=0,u=0,w=0,o=0,h=0.0,d=0.0,B=0.0,g=0.0;w=k;k=k+64|0;u=w;t=+s[i+8>>3];d=t*-.4;l=+s[i>>3];h=l*.4;g=+s[e>>3];r=g+l*.8;B=+s[e+8>>3];f=B+t*.8;l=g+l;t=B+t;s[u>>3]=g+d;c=u+8|0;s[c>>3]=B+h;i=u+16|0;s[i>>3]=g-d;b=u+24|0;s[b>>3]=B-h;s[u+32>>3]=r-d;s[u+40>>3]=f-h;s[u+48>>3]=r+d;s[u+56>>3]=f+h;if(!(n&64)){if(n&128|0){a[i>>2]=a[e>>2];a[i+4>>2]=a[e+4>>2];a[i+8>>2]=a[e+8>>2];a[i+12>>2]=a[e+12>>2];i=2;o=5}}else{a[u>>2]=a[e>>2];a[u+4>>2]=a[e+4>>2];a[u+8>>2]=a[e+8>>2];a[u+12>>2]=a[e+12>>2];i=3;o=5}if((o|0)==5){s[u+(i<<4)>>3]=r;s[u+(i<<4)+8>>3]=f}ar(A,u,4,n>>>4&1^1);s[u>>3]=r;s[c>>3]=f;s[u+16>>3]=l;s[b>>3]=t;tr(A,u,2);k=w;return}function HC(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=+r;f=+f;n=n|0;var l=0,t=0,c=0.0,b=0.0,u=0.0,w=0.0,o=0.0,h=0.0;t=k;k=k+80|0;l=t;u=+s[i+8>>3];c=u*-.3333333333333333;o=+s[i>>3];f=o*.3333333333333333;h=+s[e>>3];b=h+o*.5;w=+s[e+8>>3];r=w+u*.5;i=l+64|0;s[l+64>>3]=h+o;s[l+72>>3]=w+u;a[l>>2]=a[i>>2];a[l+4>>2]=a[i+4>>2];a[l+8>>2]=a[i+8>>2];a[l+12>>2]=a[i+12>>2];s[l+16>>3]=b+c;s[l+24>>3]=r+f;i=l+32|0;a[i>>2]=a[e>>2];a[i+4>>2]=a[e+4>>2];a[i+8>>2]=a[e+8>>2];a[i+12>>2]=a[e+12>>2];s[l+48>>3]=b-c;s[l+56>>3]=r-f;do{if(!(n&64)){i=n>>>4&1^1;if(!(n&128)){ar(A,l,4,i);break}else{ar(A,l,3,i);break}}else ar(A,i,3,n>>>4&1^1)}while(0);k=t;return}function UC(A,e,i,r,f,a){A=A|0;e=e|0;i=i|0;r=+r;f=+f;a=a|0;var n=0,l=0,t=0.0,c=0.0,b=0.0;n=k;k=k+32|0;l=n;c=+s[i>>3];f=+s[i+8>>3];r=+z(+(f*f+c*c))*.5;b=+s[e>>3];c=c*.5;s[l>>3]=b+c-r;t=+s[e+8>>3];f=f*.5;s[l+8>>3]=t-r+f;s[l+16>>3]=b+r+c;s[l+24>>3]=t+r+f;fr(A,l,2,a>>>4&1^1);k=n;return}function xC(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=+r;f=+f;n=n|0;var l=0.0,t=0.0,c=0.0,b=0.0,u=0.0,w=0.0,o=0.0,h=0,d=0,B=0,g=0;g=k;k=k+112|0;h=g+48|0;d=g+16|0;B=g;u=f>4.0?f*.125:.5;o=+s[e>>3];w=+s[i>>3];l=+s[e+8>>3];b=+s[i+8>>3];r=b*u;f=w*u;a[d>>2]=a[e>>2];a[d+4>>2]=a[e+4>>2];a[d+8>>2]=a[e+8>>2];a[d+12>>2]=a[e+12>>2];s[d+16>>3]=w+o;s[d+24>>3]=b+l;s[h>>3]=u*(w-b)+o;t=u*(b+w);c=t+l;s[h+8>>3]=c;s[h+48>>3]=t+o;l=u*(b-w)+l;s[h+56>>3]=l;w=r*-.95;b=w+f+o;u=f*1.3333333333333333;if(!(n&32)){r=r*1.3333333333333333;t=f*-.33333333333333326;l=l-r;f=c-r;r=b-u}else{r=r*1.3333333333333333;t=f*2.333333333333333;l=l+r;f=c+r;r=b+u}s[h+16>>3]=r;s[h+24>>3]=f;s[h+32>>3]=t-w+o;s[h+40>>3]=l;tr(A,d,2);if(!(n&64)){if(n&128|0)QR(B,h,3,.5,h,0)}else QR(B,h,3,.5,0,h);lr(A,h,4,0,0,0);k=g;return}function TC(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=+r;f=+f;n=n|0;var l=0;n=k;k=k+32|0;l=n;r=+s[i>>3]+ +s[e>>3];f=+s[i+8>>3]+ +s[e+8>>3];a[l>>2]=a[e>>2];a[l+4>>2]=a[e+4>>2];a[l+8>>2]=a[e+8>>2];a[l+12>>2]=a[e+12>>2];s[l+16>>3]=r;s[l+24>>3]=f;tr(A,l,2);k=n;return}function jC(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0.0,t=0,c=0,b=0,u=0,w=0.0,o=0.0,h=0,d=0,B=0;u=k;k=k+80|0;t=u+72|0;c=u+8|0;b=u;l=+JC(A,n);l=l*l;s[b>>3]=l;a[f+12>>2]=n;n=f+32|0;A=r+3|0;f=e+(A<<4)|0;a[n>>2]=a[f>>2];a[n+4>>2]=a[f+4>>2];a[n+8>>2]=a[f+8>>2];a[n+12>>2]=a[f+12>>2];if((r|0)>(i|0)?(w=+s[e+(r<<4)>>3]-+s[f>>3],o=+s[e+(r<<4)+8>>3]-+s[e+(A<<4)+8>>3],o*o+w*w>2]=a[d>>2];a[B+4>>2]=a[d+4>>2];a[B+8>>2]=a[d+8>>2];a[B+12>>2]=a[d+12>>2];h=c+32|0;A=e+(r+1<<4)|0;a[h>>2]=a[A>>2];a[h+4>>2]=a[A+4>>2];a[h+8>>2]=a[A+8>>2];a[h+12>>2]=a[A+12>>2];f=c+16|0;i=e+(r+2<<4)|0;a[f>>2]=a[i>>2];a[f+4>>2]=a[i+4>>2];a[f+8>>2]=a[i+8>>2];a[f+12>>2]=a[i+12>>2];a[c>>2]=a[n>>2];a[c+4>>2]=a[n+4>>2];a[c+8>>2]=a[n+8>>2];a[c+12>>2]=a[n+12>>2];a[t>>2]=c;a[t+4>>2]=b;hN(t,92,c,1);a[d>>2]=a[B>>2];a[d+4>>2]=a[B+4>>2];a[d+8>>2]=a[B+8>>2];a[d+12>>2]=a[B+12>>2];a[A>>2]=a[h>>2];a[A+4>>2]=a[h+4>>2];a[A+8>>2]=a[h+8>>2];a[A+12>>2]=a[h+12>>2];a[i>>2]=a[f>>2];a[i+4>>2]=a[f+4>>2];a[i+8>>2]=a[f+8>>2];a[i+12>>2]=a[f+12>>2];b=e+(r+3<<4)|0;a[b>>2]=a[c>>2];a[b+4>>2]=a[c+4>>2];a[b+8>>2]=a[c+8>>2];a[b+12>>2]=a[c+12>>2];k=u;return r|0}function PC(A,e){A=A|0;e=e|0;var i=0.0,r=0.0,f=0;f=a[A>>2]|0;i=+s[e>>3]-+s[f>>3];r=+s[e+8>>3]-+s[f+8>>3];return r*r+i*i<=+s[a[A+4>>2]>>3]|0}function SC(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0.0,c=0,b=0,u=0,w=0,o=0.0,h=0.0,d=0,B=0;w=k;k=k+80|0;c=w+72|0;b=w+8|0;u=w;t=+JC(A,n);t=t*t;s[u>>3]=t;a[f+8>>2]=n;f=f+16|0;A=e+(i<<4)|0;a[f>>2]=a[A>>2];a[f+4>>2]=a[A+4>>2];a[f+8>>2]=a[A+8>>2];a[f+12>>2]=a[A+12>>2];if(!((r|0)>(i|0)?(l=i+3|0,o=+s[A>>3]-+s[e+(l<<4)>>3],h=+s[e+(i<<4)+8>>3]-+s[e+(l<<4)+8>>3],h*h+o*o>2]=a[r>>2];a[b+4>>2]=a[r+4>>2];a[b+8>>2]=a[r+8>>2];a[b+12>>2]=a[r+12>>2];n=b+16|0;i=e+(l+2<<4)|0;a[n>>2]=a[i>>2];a[n+4>>2]=a[i+4>>2];a[n+8>>2]=a[i+8>>2];a[n+12>>2]=a[i+12>>2];d=b+32|0;A=e+(l+1<<4)|0;a[d>>2]=a[A>>2];a[d+4>>2]=a[A+4>>2];a[d+8>>2]=a[A+8>>2];a[d+12>>2]=a[A+12>>2];B=b+48|0;a[B>>2]=a[f>>2];a[B+4>>2]=a[f+4>>2];a[B+8>>2]=a[f+8>>2];a[B+12>>2]=a[f+12>>2];a[c>>2]=B;a[c+4>>2]=u;hN(c,92,b,0);u=e+(l<<4)|0;a[u>>2]=a[B>>2];a[u+4>>2]=a[B+4>>2];a[u+8>>2]=a[B+8>>2];a[u+12>>2]=a[B+12>>2];a[A>>2]=a[d>>2];a[A+4>>2]=a[d+4>>2];a[A+8>>2]=a[d+8>>2];a[A+12>>2]=a[d+12>>2];a[i>>2]=a[n>>2];a[i+4>>2]=a[n+4>>2];a[i+8>>2]=a[n+8>>2];a[i+12>>2]=a[n+12>>2];a[r>>2]=a[b>>2];a[r+4>>2]=a[b+4>>2];a[r+8>>2]=a[b+8>>2];a[r+12>>2]=a[b+12>>2];k=w;return l|0}function OC(A,e,i,r,f,n,l){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;var t=0.0,c=0.0,b=0,u=0.0,w=0.0,k=0.0,o=0.0,h=0.0,d=0,B=0.0,g=0.0,v=0,E=0,C=0;v=(n|0)!=0;b=(l|0)!=0;if(!((r|0)==(i|0)&(v&b))){if(b){t=+JC(A,l);c=+s[e+(r<<4)>>3];o=+s[e+(r<<4)+8>>3];b=r+3|0;d=e+(b<<4)|0;w=+s[d>>3];b=e+(b<<4)+8|0;k=+s[b>>3];g=c-w;B=o-k;g=+z(+(B*B+g*g))*.9;t=t>=g?g:t;if(o==k){u=(c>3]=c;s[e+(C<<4)+8>>3]=o;r=e+(r+2<<4)|0;s[d>>3]=u;s[b>>3]=t;a[r>>2]=a[d>>2];a[r+4>>2]=a[d+4>>2];a[r+8>>2]=a[d+8>>2];a[r+12>>2]=a[d+12>>2];a[f+12>>2]=l;s[f+32>>3]=w;s[f+40>>3]=k}if(v){u=+JC(A,n);b=e+(i<<4)|0;c=+s[b>>3];t=+s[e+(i<<4)+8>>3];C=i+3|0;k=+s[e+(C<<4)>>3];o=+s[e+(C<<4)+8>>3];g=c-k;B=t-o;g=+z(+(B*B+g*g))*.9;u=u>=g?g:u;if(t==o){w=(c>3]=w;s[e+(C<<4)+8>>3]=u;a[b>>2]=a[E>>2];a[b+4>>2]=a[E+4>>2];a[b+8>>2]=a[E+8>>2];a[b+12>>2]=a[E+12>>2];E=i+2|0;s[e+(E<<4)>>3]=k;s[e+(E<<4)+8>>3]=o;E=16}}else{d=e+(r<<4)|0;B=+s[d>>3];g=+s[e+(r<<4)+8>>3];b=r+3|0;v=e+(b<<4)|0;c=+s[v>>3];b=e+(b<<4)+8|0;t=+s[b>>3];u=+JC(A,n);h=+JC(A,l);w=B-c;o=g-t;w=+z(+(o*o+w*w));C=!(h+u>=w);w=w*.3333333333333333;u=C?u:w;w=C?h:w;if(g==t){C=B>3]=h;s[e+(C<<4)+8>>3]=k;a[d>>2]=a[E>>2];a[d+4>>2]=a[E+4>>2];a[d+8>>2]=a[E+8>>2];a[d+12>>2]=a[E+12>>2];E=e+(r+2<<4)|0;s[v>>3]=o;s[b>>3]=u;a[E>>2]=a[v>>2];a[E+4>>2]=a[v+4>>2];a[E+8>>2]=a[v+8>>2];a[E+12>>2]=a[v+12>>2];a[f+12>>2]=l;s[f+32>>3]=B;s[f+40>>3]=g;E=16}if((E|0)==16){a[f+8>>2]=n;s[f+16>>3]=c;s[f+24>>3]=t}return}function KC(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=+r;f=f|0;var a=0.0,n=0.0,l=0.0,t=0.0,c=0.0,b=0.0,u=0.0,w=0.0,k=0.0;w=+s[e>>3];c=+s[i>>3]-w;k=+s[e+8>>3];b=+s[i+8>>3]-k;t=r*10.0/(+z(+(c*c+b*b))+.0001);c=t*((c>=0.0?.0001:-.0001)+c);t=((b>=0.0?.0001:-.0001)+b)*t;b=c*.5;u=t*.5;l=w-u;a=k-b;w=u+w;b=k+b;k=l+c;u=a+t;c=w+c;t=b+t;n=k>c?k:c;n=w>n?w:n;r=u>t?u:t;r=b>r?b:r;c=k>3]=l>3]=a>3]=l>n?l:n;s[A+24>>3]=a>r?a:r;return}function _C(A,e,i,r,f,n,l){A=A|0;e=e|0;i=i|0;r=r|0;f=+f;n=+n;l=l|0;var t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0.0,B=0.0,g=0.0;h=k;k=k+48|0;b=h+32|0;c=h+16|0;o=h;u=(a[A+16>>2]|0)+12|0;w=a[u>>2]|0;a[u>>2]=e;rr(A,a[(a[A>>2]|0)+336>>2]|0);ur(A,n);g=+s[r>>3]-+s[i>>3];e=r+8|0;B=+s[e>>3]-+s[i+8>>3];d=10.0/(+z(+(g*g+B*B))+.0001);s[r>>3]=d*((g>=0.0?.0001:-.0001)+g);s[e>>3]=((B>=0.0?.0001:-.0001)+B)*d;e=0;while(1){if((e|0)>=4)break;t=l>>(e<<3)&255;if(!t)break;a[c>>2]=a[i>>2];a[c+4>>2]=a[i+4>>2];a[c+8>>2]=a[i+8>>2];a[c+12>>2]=a[i+12>>2];a[b>>2]=a[r>>2];a[b+4>>2]=a[r+4>>2];a[b+8>>2]=a[r+8>>2];a[b+12>>2]=a[r+12>>2];qC(o,A,c,b,f,n,t);a[i>>2]=a[o>>2];a[i+4>>2]=a[o+4>>2];a[i+8>>2]=a[o+8>>2];a[i+12>>2]=a[o+12>>2];e=e+1|0}a[u>>2]=w;k=h;return}function qC(A,e,i,r,f,n,l){A=A|0;e=e|0;i=i|0;r=r|0;f=+f;n=+n;l=l|0;var t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0.0;h=k;k=k+32|0;b=h+16|0;c=h;u=l&15;t=1400;while(1){w=a[t>>2]|0;if(!w)break;if((u|0)==(w|0)){o=4;break}t=t+24|0}if((o|0)==4){d=+s[t+8>>3]*f;s[r>>3]=d*+s[r>>3];w=r+8|0;s[w>>3]=d*+s[w>>3];o=a[t+16>>2]|0;a[c>>2]=a[i>>2];a[c+4>>2]=a[i+4>>2];a[c+8>>2]=a[i+8>>2];a[c+12>>2]=a[i+12>>2];a[b>>2]=a[r>>2];a[b+4>>2]=a[r+4>>2];a[b+8>>2]=a[r+8>>2];a[b+12>>2]=a[r+12>>2];p5[o&15](e,c,b,f,n,l);s[i>>3]=+s[r>>3]+ +s[i>>3];o=i+8|0;s[o>>3]=+s[w>>3]+ +s[o>>3]}a[A>>2]=a[i>>2];a[A+4>>2]=a[i+4>>2];a[A+8>>2]=a[i+8>>2];a[A+12>>2]=a[i+12>>2];k=h;return}function $C(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0;t=k;k=k+16|0;n=t+8|0;f=t;e=Ho(A,99796)|0;if((e|0)!=0?(r[e>>0]|0)!=0:0){i=e;l=5}else{e=Ho(A,99808)|0;if((e|0)!=0?(r[e>>0]|0)!=0:0){i=e;l=5}else e=0}if((l|0)==5){e=LC(i,0,120)|0;if(!e){a[f>>2]=Vh(A)|0;ao(0,99815,f)|0;a[n>>2]=i;ao(3,99868,n)|0}}k=t;return e|0}function AI(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;n=k;k=k+16|0;f=qF(304)|0;if(!f)ao(1,99876,n)|0;r=A+16|0;A=a[r>>2]|0;a[f>>2]=A;a[r>>2]=f;if(!A){a[f+144>>2]=3;a[f+148>>2]=0;s[f+152>>3]=1.0}else{e=f+16|0;i=A+16|0;r=e+40|0;do{a[e>>2]=a[i>>2];e=e+4|0;i=i+4|0}while((e|0)<(r|0));e=f+56|0;i=A+56|0;r=e+40|0;do{a[e>>2]=a[i>>2];e=e+4|0;i=i+4|0}while((e|0)<(r|0));a[f+144>>2]=a[A+144>>2];a[f+148>>2]=a[A+148>>2];s[f+152>>3]=+s[A+152>>3];a[f+136>>2]=a[A+136>>2];e=f+96|0;i=A+96|0;r=e+40|0;do{a[e>>2]=a[i>>2];e=e+4|0;i=i+4|0}while((e|0)<(r|0))}k=n;return f|0}function eI(A){A=A|0;var e=0;A=A+16|0;e=a[A>>2]|0;if(!e)gA(99902,99906,117,99913);else{L2(a[e+212>>2]|0);L2(a[e+208>>2]|0);L2(a[e+216>>2]|0);L2(a[e+220>>2]|0);L2(a[e+224>>2]|0);L2(a[e+228>>2]|0);L2(a[e+232>>2]|0);L2(a[e+236>>2]|0);L2(a[e+240>>2]|0);L2(a[e+244>>2]|0);L2(a[e+248>>2]|0);L2(a[e+252>>2]|0);L2(a[e+256>>2]|0);L2(a[e+272>>2]|0);L2(a[e+284>>2]|0);L2(a[e+280>>2]|0);a[A>>2]=a[e>>2];L2(e);return}}function iI(A,e,i,n,l,t,c){A=A|0;e=e|0;i=i|0;n=n|0;l=l|0;t=t|0;c=c|0;var s=0,b=0;b=a[A+16>>2]|0;s=a[A+152>>2]|0;if((e|0)!=0&(s&32768|0)!=0)a[b+192>>2]=e;if(((s&65536|0)!=0?(a[b+212>>2]=PF(t,c)|0,(i|0)!=0):0)?(r[i>>0]|0)!=0:0){a[b+208>>2]=PF(i,c)|0;A=1}else A=0;do{if(s&4194304){if(n|0?r[n>>0]|0:0){a[b+228>>2]=PF(n,c)|0;A=b+260|0;f[A>>1]=f[A>>1]|1;A=1;break}e=a[b+192>>2]|0;if(e){a[b+228>>2]=b3(e)|0;A=1}}}while(0);if((l|0)!=0&(s&8388608|0)!=0?(r[l>>0]|0)!=0:0){a[b+244>>2]=PF(l,c)|0;A=1}return A|0}function rI(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0;c=k;k=k+80|0;t=c;l=c+8|0;n=a[(a[A>>2]|0)+168>>2]|0;f=a[(a[(a[n+16>>2]|0)+8>>2]|0)+92>>2]|0;fI(A,i);A=Ho(e,141060)|0;if((A|0)!=0?(r[A>>0]|0)!=0:0){uo(i,A)|0;f=i+4|0;A=a[f>>2]|0;if(A>>>0>=(a[i+8>>2]|0)>>>0){so(i,1)|0;A=a[f>>2]|0}r[A>>0]=0;A=a[i>>2]|0;a[f>>2]=A}else{if((n|0)!=(e|0)&(f|0)!=0){uo(i,f)|0;f=i+4|0;A=a[f>>2]|0;if(A>>>0>=(a[i+8>>2]|0)>>>0){so(i,1)|0;A=a[f>>2]|0}a[f>>2]=A+1;r[A>>0]=95}switch(Md(e)|0){case 0:{f=(n|0)==(e|0)?111494:99927;A=(a[e>>2]|0)>>>4;break}case 1:{f=111481;A=(a[e>>2]|0)>>>4;break}case 2:{f=111450;A=(a[e>>2]|0)>>>4;break}default:{f=0;A=0}}uo(i,f)|0;a[t>>2]=A;S4(l,99933,t)|0;uo(i,l)|0;f=i+4|0;A=a[f>>2]|0;if(A>>>0>=(a[i+8>>2]|0)>>>0){so(i,1)|0;A=a[f>>2]|0}r[A>>0]=0;A=a[i>>2]|0;a[f>>2]=A}k=c;return A|0}function fI(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0;t=k;k=k+144|0;l=t;n=t+8|0;i=a[A+160>>2]|0;if((i|0)>1?a[A+152>>2]&64|0:0){uo(e,a[(a[(a[A>>2]|0)+308>>2]|0)+(i<<2)>>2]|0)|0;f=e+4|0;i=a[f>>2]|0;if(i>>>0>=(a[e+8>>2]|0)>>>0){so(e,1)|0;i=a[f>>2]|0}a[f>>2]=i+1;r[i>>0]=95}f=a[A+196>>2]|0;i=a[A+200>>2]|0;if((f|0)>0|(i|0)>0){a[l>>2]=f;a[l+4>>2]=i;S4(n,99937,l)|0;uo(e,n)|0}k=t;return}function aI(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0,n=0.0,l=0,t=0.0,b=0.0,u=0,w=0,o=0,h=0,d=0.0,B=0;B=k;k=k+48|0;o=B+16|0;f=B+32|0;h=B;d=+s[(a[A+16>>2]|0)+152>>3];w=nI(i,0,f)|0;if((w+-1|0)>>>0>=2){r=+s[e+16>>3];t=(r+ +s[e>>3])*.5;s[h>>3]=t;n=+s[e+24>>3];b=(n+ +s[e+8>>3])*.5;s[h+8>>3]=b;t=r-t;b=n-b;u=d>.5;if(u)ur(A,.5);l=a[f>>2]|0;n=0.0;f=a[l+8>>2]|0;while(1){i=a[f>>2]|0;if(!i)break;e=f+4|0;if(+c[e>>2]==0.0)r=n;else{er(A,i);if(!(a[f+12>>2]|0))r=6.283185307179586;else r=+c[e>>2]*6.283185307179586+n;a[o>>2]=a[h>>2];a[o+4>>2]=a[h+4>>2];a[o+8>>2]=a[h+8>>2];a[o+12>>2]=a[h+12>>2];e=Qf(o,t,b,n,r)|0;lr(A,a[e>>2]|0,a[e+4>>2]|0,0,0,1);Zc(e)}n=r;f=f+12|0}if(u)ur(A,d);lI(l)}k=B;return w|0}function nI(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0.0,s=0.0,b=0.0,u=0,w=0,o=0,h=0,d=0;d=k;k=k+16|0;w=d+8|0;u=d;h=qF(12)|0;l=b3(A)|0;A:do{if(!e){e=1;f=l;while(1){switch(r[f>>0]|0){case 0:break A;case 58:{e=e+1|0;break}default:{}}f=f+1|0}}}while(0);a[h+4>>2]=l;o=qF((e*12|0)+12|0)|0;a[h+8>>2]=o;b=1.0;n=0;e=0;f=l;while(1){f=t3(f,107984)|0;if(!f){f=20;break}t=+tI(f);if(!(t>=0.0)){f=17;break}s=t-b;if(s>0.0)if((a[5156]|0)!=0?!(s<1.0e-05&s>-1.0e-05):0){a[u>>2]=A;ao(0,99948,u)|0;a[5156]=0;t=b;e=3}else t=b;s=b-t;if(t>0.0)r[o+(n*12|0)+8>>0]=1;if(r[f>>0]|0)a[o+(n*12|0)>>2]=f;f=n+1|0;c[o+(n*12|0)+4>>2]=t;if(s<1.0e-05&s>-1.0e-05){n=f;f=30;break}else{b=s;n=f;f=0}}A:do{if((f|0)==17){if(!(a[5156]|0))e=1;else{a[w>>2]=A;ao(1,99983,w)|0;a[5156]=0;e=2}lI(h)}else if((f|0)==20)if(b>0.0){f=0;l=0;while(1){if((f|0)>=(n|0))break;w=l+(+c[o+(f*12|0)+4>>2]==0.0&1)|0;f=f+1|0;l=w}if((l|0)<=0){f=o+((n+-1|0)*12|0)+4|0;c[f>>2]=b+ +c[f>>2];f=30;break}t=b/+(l|0);f=0;while(1){if((f|0)>=(n|0)){f=30;break A}l=o+(f*12|0)+4|0;if(+c[l>>2]==0.0)c[l>>2]=t;f=f+1|0}}else f=30}while(0);if((f|0)==30){while(1){f=n+-1|0;if((n|0)<=0)break;if(+c[o+(f*12|0)+4>>2]>0.0)break;else n=f}a[o+(n*12|0)>>2]=0;a[h>>2]=n;a[i>>2]=h}k=d;return e|0}function lI(A){A=A|0;L2(a[A+4>>2]|0);L2(a[A+8>>2]|0);L2(A);return}function tI(A){A=A|0;var e=0.0,i=0,f=0,n=0;f=k;k=k+16|0;i=f;A=G1(A,59)|0;if(!A)e=0.0;else{n=A+1|0;r[A>>0]=0;e=+A8(n,i);e=(e>=0.0?(a[i>>2]|0)!=(n|0):0)?e:-1.0}k=f;return+e}function cI(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,n=0,l=0,t=0,b=0.0,u=0.0,w=0,o=0,h=0,d=0,B=0.0,g=0;g=k;k=k+80|0;n=g+64|0;d=g;B=+s[(a[A+16>>2]|0)+152>>3];h=nI(i,0,n)|0;if((h+-1|0)>>>0>=2){if(!r){a[d>>2]=a[e>>2];a[d+4>>2]=a[e+4>>2];a[d+8>>2]=a[e+8>>2];a[d+12>>2]=a[e+12>>2];o=d+16|0;w=e+16|0;a[o>>2]=a[w>>2];a[o+4>>2]=a[w+4>>2];a[o+8>>2]=a[w+8>>2];a[o+12>>2]=a[w+12>>2];o=d+32|0;w=e+32|0;a[o>>2]=a[w>>2];a[o+4>>2]=a[w+4>>2];a[o+8>>2]=a[w+8>>2];a[o+12>>2]=a[w+12>>2];o=d+48|0;w=e+48|0;a[o>>2]=a[w>>2];a[o+4>>2]=a[w+4>>2];a[o+8>>2]=a[w+8>>2];a[o+12>>2]=a[w+12>>2]}else{o=e+32|0;a[d>>2]=a[o>>2];a[d+4>>2]=a[o+4>>2];a[d+8>>2]=a[o+8>>2];a[d+12>>2]=a[o+12>>2];o=d+16|0;w=e+48|0;a[o>>2]=a[w>>2];a[o+4>>2]=a[w+4>>2];a[o+8>>2]=a[w+8>>2];a[o+12>>2]=a[w+12>>2];o=d+32|0;a[o>>2]=a[e>>2];a[o+4>>2]=a[e+4>>2];a[o+8>>2]=a[e+8>>2];a[o+12>>2]=a[e+12>>2];o=d+48|0;w=e+16|0;a[o>>2]=a[w>>2];a[o+4>>2]=a[w+4>>2];a[o+8>>2]=a[w+8>>2];a[o+12>>2]=a[w+12>>2]}t=d+16|0;b=+s[t>>3];f=+s[d>>3];u=b-f;w=d+32|0;s[w>>3]=f;s[t>>3]=f;o=B>.5;if(o)ur(A,.5);n=a[n>>2]|0;l=d+48|0;r=a[n+8>>2]|0;while(1){i=a[r>>2]|0;if(!i)break;e=r+4|0;if(!(+c[e>>2]==0.0)){er(A,i);if(!(a[r+12>>2]|0))f=b;else f=u*+c[e>>2]+ +s[d>>3];s[w>>3]=f;s[t>>3]=f;ar(A,d,4,1);f=+s[t>>3];s[l>>3]=f;s[d>>3]=f}r=r+12|0}if(o)ur(A,B);lI(n)}k=g;return h|0}function sI(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;i=a[A+16>>2]|0;r=a[A+152>>2]|0;if(r&4259840|0){f=r&131072;n=f>>>16^2;a[i+264>>2]=n;l=i+268|0;a[l>>2]=n+2;n=i+272|0;L2(a[n>>2]|0);i=qF(a[l>>2]<<4)|0;a[n>>2]=i;a[i>>2]=a[e>>2];a[i+4>>2]=a[e+4>>2];a[i+8>>2]=a[e+8>>2];a[i+12>>2]=a[e+12>>2];n=i+16|0;e=e+16|0;a[n>>2]=a[e>>2];a[n+4>>2]=a[e+4>>2];a[n+8>>2]=a[e+8>>2];a[n+12>>2]=a[e+12>>2];if(!(r&8192))zi(A,i,i,2)|0;if(!f)mF(i)}return}function bI(A,e){A=A|0;e=e|0;var i=0,r=0.0,f=0,a=0,n=0,l=0.0,t=0.0,c=0.0,b=0.0,u=0.0,w=0,o=0,h=0;h=k;k=k+144|0;i=h+80|0;f=h+16|0;a=h;c=+s[e>>3];w=A+16|0;b=+s[w>>3];if(!(((((((((!(c>b)?(u=+s[A>>3],!(c>3],l=+s[A+24>>3],!(r>l)):0)?(t=+s[A+8>>3],!(r>3],!(c>b|c>3],!(c>l|c>3],!(c>b|c>3],!(c>l|c>3],!(c>b|c>3],!(u>l|u>3];if(!(r>+s[w>>3])){if(r<+s[A>>3]){i=A;o=16}}else{i=w;o=16}if((o|0)==16){o=0;s[i>>3]=r}r=+s[e+(f<<4)+8>>3];if(!(r>+s[a>>3])){if(r<+s[n>>3]){i=A;o=19}}else{i=w;o=19}if((o|0)==19){o=0;s[i+8>>3]=r}f=f+1|0}}}while(0);k=h;return}function uI(A){A=A|0;var e=0,i=0,r=0,f=0,n=0.0,l=0,t=0;e=k;k=k+48|0;i=e+32|0;r=e+16|0;f=e;t=A+48|0;l=A+16|0;a[f>>2]=a[A>>2];a[f+4>>2]=a[A+4>>2];a[f+8>>2]=a[A+8>>2];a[f+12>>2]=a[A+12>>2];a[r>>2]=a[t>>2];a[r+4>>2]=a[t+4>>2];a[r+8>>2]=a[t+8>>2];a[r+12>>2]=a[t+12>>2];a[i>>2]=a[l>>2];a[i+4>>2]=a[l+4>>2];a[i+8>>2]=a[l+8>>2];a[i+12>>2]=a[l+12>>2];n=+zF(f,r,i);l=A+32|0;a[f>>2]=a[A>>2];a[f+4>>2]=a[A+4>>2];a[f+8>>2]=a[A+8>>2];a[f+12>>2]=a[A+12>>2];a[r>>2]=a[t>>2];a[r+4>>2]=a[t+4>>2];a[r+8>>2]=a[t+8>>2];a[r+12>>2]=a[t+12>>2];a[i>>2]=a[l>>2];a[i+4>>2]=a[l+4>>2];a[i+8>>2]=a[l+8>>2];a[i+12>>2]=a[l+12>>2];A=n<4.0&+zF(f,r,i)<4.0&1;k=e;return A|0}function wI(A,e){A=A|0;e=e|0;var i=0,f=0,n=0.0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0.0,Y=0.0,D=0.0,M=0.0,F=0,V=0;y=k;k=k+272|0;v=y+256|0;E=y+224|0;C=y+192|0;I=y+128|0;Z=y+64|0;G=y;m=y+160|0;Q=y+96|0;L=y+32|0;g=a[e+16>>2]|0;B=a[g+144>>2]|0;d=g+16|0;a[I>>2]=a[d>>2];a[I+4>>2]=a[d+4>>2];a[I+8>>2]=a[d+8>>2];a[I+12>>2]=a[d+12>>2];a[I+16>>2]=a[d+16>>2];a[I+20>>2]=a[d+20>>2];a[I+24>>2]=a[d+24>>2];a[I+28>>2]=a[d+28>>2];g=a[(a[g+8>>2]|0)+88>>2]|0;a[G>>2]=0;a[G+4>>2]=0;a[G+8>>2]=0;a[G+12>>2]=0;a[G+16>>2]=0;a[G+20>>2]=0;a[G+24>>2]=0;a[G+28>>2]=0;if(!g){a[A>>2]=a[I>>2];a[A+4>>2]=a[I+4>>2];a[A+8>>2]=a[I+8>>2];a[A+12>>2]=a[I+12>>2];a[A+16>>2]=a[I+16>>2];a[A+20>>2]=a[I+20>>2];a[A+24>>2]=a[I+24>>2];a[A+28>>2]=a[I+28>>2]}else{e=I+16|0;if(+s[I>>3]==+s[e>>3]?(i=I+8|0,f=I+24|0,+s[i>>3]==+s[f>>3]):0){s[i>>3]=1797693134862315708145274.0e284;s[I>>3]=1797693134862315708145274.0e284;s[f>>3]=-1797693134862315708145274.0e284;s[e>>3]=-1797693134862315708145274.0e284}t=E+8|0;c=E+16|0;b=E+24|0;u=Z+16|0;w=Z+24|0;o=B+144|0;h=C+16|0;d=g+12|0;e=0;f=a[g+8>>2]|0;i=0;n=0.0;l=0;while(1){if((l|0)>=(a[g>>2]|0))break;a[Z>>2]=a[G>>2];a[Z+4>>2]=a[G+4>>2];a[Z+8>>2]=a[G+8>>2];a[Z+12>>2]=a[G+12>>2];a[Z+16>>2]=a[G+16>>2];a[Z+20>>2]=a[G+20>>2];a[Z+24>>2]=a[G+24>>2];a[Z+28>>2]=a[G+28>>2];switch(a[f>>2]|0){case 1:case 0:{D=+s[f+8>>3];M=+s[f+24>>3];s[E>>3]=D-M;z=+s[f+16>>3];Y=+s[f+32>>3];s[t>>3]=z-Y;s[c>>3]=M+D;s[b>>3]=Y+z;W=f+80|0;a[W>>2]=a[E>>2];a[W+4>>2]=a[E+4>>2];a[W+8>>2]=a[E+8>>2];a[W+12>>2]=a[E+12>>2];W=f+96|0;a[W>>2]=a[c>>2];a[W+4>>2]=a[c+4>>2];a[W+8>>2]=a[c+8>>2];a[W+12>>2]=a[c+12>>2];a[v>>2]=a[E>>2];a[v+4>>2]=a[E+4>>2];a[v+8>>2]=a[E+8>>2];a[v+12>>2]=a[E+12>>2];kI(I,v);a[v>>2]=a[c>>2];a[v+4>>2]=a[c+4>>2];a[v+8>>2]=a[c+8>>2];a[v+12>>2]=a[c+12>>2];kI(I,v);break}case 3:case 2:{W=f+80|0;F=f+8|0;oI(m,a[F+4>>2]|0,a[F>>2]|0,I);a[W>>2]=a[m>>2];a[W+4>>2]=a[m+4>>2];a[W+8>>2]=a[m+8>>2];a[W+12>>2]=a[m+12>>2];a[W+16>>2]=a[m+16>>2];a[W+20>>2]=a[m+20>>2];a[W+24>>2]=a[m+24>>2];a[W+28>>2]=a[m+28>>2];break}case 5:case 4:{F=f+80|0;W=f+8|0;oI(Q,a[W+4>>2]|0,a[W>>2]|0,I);a[F>>2]=a[Q>>2];a[F+4>>2]=a[Q+4>>2];a[F+8>>2]=a[Q+8>>2];a[F+12>>2]=a[Q+12>>2];a[F+16>>2]=a[Q+16>>2];a[F+20>>2]=a[Q+20>>2];a[F+24>>2]=a[Q+24>>2];a[F+28>>2]=a[Q+28>>2];break}case 6:{F=f+80|0;W=f+8|0;oI(L,a[W+4>>2]|0,a[W>>2]|0,I);a[F>>2]=a[L>>2];a[F+4>>2]=a[L+4>>2];a[F+8>>2]=a[L+8>>2];a[F+12>>2]=a[L+12>>2];a[F+16>>2]=a[L+16>>2];a[F+20>>2]=a[L+20>>2];a[F+24>>2]=a[L+24>>2];a[F+28>>2]=a[L+28>>2];break}case 7:{F=f+112|0;a[F>>2]=qF(56)|0;W=b3(a[f+40>>2]|0)|0;V=a[F>>2]|0;a[V>>2]=W;r[V+48>>0]=r[100029+(a[f+24>>2]|0)>>0]|0;a[Z>>2]=i;s[u>>3]=n;a[w>>2]=a[w>>2]&-128|e&127;V=a[o>>2]|0;V=y5[a[V>>2]&63](V,Z,1)|0;W=a[F>>2]|0;a[W+4>>2]=V;AR(v,B,W);hI(C,+s[f+8>>3],+s[f+16>>3],a[F>>2]|0);F=f+80|0;a[F>>2]=a[C>>2];a[F+4>>2]=a[C+4>>2];a[F+8>>2]=a[C+8>>2];a[F+12>>2]=a[C+12>>2];a[F+16>>2]=a[C+16>>2];a[F+20>>2]=a[C+20>>2];a[F+24>>2]=a[C+24>>2];a[F+28>>2]=a[C+28>>2];a[v>>2]=a[C>>2];a[v+4>>2]=a[C+4>>2];a[v+8>>2]=a[C+8>>2];a[v+12>>2]=a[C+12>>2];kI(I,v);a[v>>2]=a[h>>2];a[v+4>>2]=a[h+4>>2];a[v+8>>2]=a[h+8>>2];a[v+12>>2]=a[h+12>>2];kI(I,v);if(!(a[d>>2]|0))a[d>>2]=109;break}case 10:{i=a[f+16>>2]|0;n=+s[f+8>>3];break}case 15:{e=a[f+8>>2]|0;break}default:{}}f=f+120|0;l=l+1|0}a[A>>2]=a[I>>2];a[A+4>>2]=a[I+4>>2];a[A+8>>2]=a[I+8>>2];a[A+12>>2]=a[I+12>>2];a[A+16>>2]=a[I+16>>2];a[A+20>>2]=a[I+20>>2];a[A+24>>2]=a[I+24>>2];a[A+28>>2]=a[I+28>>2]}k=y;return}function kI(A,e){A=A|0;e=e|0;var i=0.0,r=0;i=+s[e>>3];r=A+16|0;if(i>+s[r>>3])s[r>>3]=i;if(i<+s[A>>3])s[A>>3]=i;i=+s[e+8>>3];e=A+24|0;if(i>+s[e>>3])s[e>>3]=i;e=A+8|0;if(i<+s[e>>3])s[e>>3]=i;return}function oI(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0;d=k;k=k+48|0;c=d+32|0;u=d;f=+s[e>>3];w=u+16|0;s[w>>3]=f;s[u>>3]=f;f=+s[e+8>>3];o=u+24|0;s[o>>3]=f;b=u+8|0;s[b>>3]=f;t=1;while(1){if((t|0)>=(i|0))break;l=e+24|0;f=+s[l>>3];if(!(f<+s[u>>3])){if(f>+s[w>>3]){n=w;h=5}}else{n=u;h=5}if((h|0)==5){h=0;s[n>>3]=f}f=+s[e+32>>3];if(!(f<+s[b>>3])){if(f>+s[o>>3]){e=w;h=8}}else{e=u;h=8}if((h|0)==8){h=0;s[e+8>>3]=f}t=t+1|0;e=l}a[c>>2]=a[u>>2];a[c+4>>2]=a[u+4>>2];a[c+8>>2]=a[u+8>>2];a[c+12>>2]=a[u+12>>2];kI(r,c);a[c>>2]=a[w>>2];a[c+4>>2]=a[w+4>>2];a[c+8>>2]=a[w+8>>2];a[c+12>>2]=a[w+12>>2];kI(r,c);a[A>>2]=a[u>>2];a[A+4>>2]=a[u+4>>2];a[A+8>>2]=a[u+8>>2];a[A+12>>2]=a[u+12>>2];a[A+16>>2]=a[u+16>>2];a[A+20>>2]=a[u+20>>2];a[A+24>>2]=a[u+24>>2];a[A+28>>2]=a[u+28>>2];k=d;return}function hI(A,e,i,f){A=A|0;e=+e;i=+i;f=f|0;var a=0.0,n=0,l=0,t=0,c=0.0,b=0,u=0;u=k;k=k+16|0;l=u+8|0;t=u;a=+s[f+32>>3];c=+s[f+40>>3];switch(r[f+48>>0]|0){case 108:{s[l>>3]=e;a=a+e;n=t;b=5;break}case 110:{a=a*.5;s[l>>3]=e-a;a=a+e;n=t;b=5;break}case 114:{s[t>>3]=e;a=e-a;n=l;b=5;break}default:{e=0.0;a=0.0}}if((b|0)==5){s[n>>3]=a;e=+s[l>>3];a=+s[t>>3]}i=+s[f+16>>3]+i;s[A>>3]=e;s[A+8>>3]=i-c;s[A+16>>3]=a;s[A+24>>3]=i;k=u;return}function dI(A){A=A|0;if((a[A>>2]|0)==7)xF(a[A+112>>2]|0,1);return}function BI(A,e){A=A|0;e=e|0;var i=0,f=0.0,n=0.0,l=0.0,t=0,c=0,b=0,u=0.0;b=k;k=k+16|0;c=b;t=a[A+152>>2]|0;u=+s[A+432>>3];l=+s[A+352>>3]*.013888888888888888;f=l*u;s[A+488>>3]=f;n=+s[A+440>>3];l=l*n;s[A+496>>3]=l;s[A+520>>3]=u*.013888888888888888;i=A+528|0;s[i>>3]=n*.013888888888888888;if(t&4096|0)s[i>>3]=n*-.013888888888888888;i=(a[A+360>>2]|0)==0;u=+((a[A+448>>2]|0)>>>0);n=+((a[A+452>>2]|0)>>>0);s[A+368>>3]=(i?u:n)/f;s[A+376>>3]=(i?n:u)/l;cr(A,dR(e,Yo(e,0,101522,0)|0,195059)|0);a[A+160>>2]=0;gI(A,e);if(t&2|0)vI(A,e);i=cd(e)|0;while(1){if(!i)break;r[(a[i+16>>2]|0)+116>>0]=0;i=sd(e,i)|0}EI(A,c);while(1){if(!((CI(A)|0)<<24>>24))break;if((II(A)|0)>1)Vi(A);ZI(A);while(1){if(!((GI(A)|0)<<24>>24))break;mI(A,e);QI(A)}if((II(A)|0)>1)Ji(A);LI(A,c)}yI(A);k=b;return}function gI(A,e){A=A|0;e=e|0;var i=0;i=AI(A)|0;a[i+4>>2]=0;a[i+8>>2]=e;a[i+12>>2]=0;TM(A,a[(a[e+16>>2]|0)+12>>2]|0,e);Yi(A,e);return}function vI(A,e){A=A|0;e=e|0;var i=0,f=0,a=0,n=0;er(A,134800);i=Ho(e,140977)|0;if(i|0?r[i>>0]|0:0)er(A,i);i=Ho(e,101446)|0;if(i|0?r[i>>0]|0:0)$i(A,i);rF(A,e);n=cd(e)|0;while(1){if(!n)break;i=Ho(n,140823)|0;if(i|0?r[i>>0]|0:0)$i(A,i);i=Ho(n,137729)|0;if(i|0?r[i>>0]|0:0)er(A,i);i=Ho(n,101418)|0;do{if(i|0?r[i>>0]|0:0){if(!(G1(i,58)|0)){$i(A,i);break}f=b3(i)|0;i=f;while(1){i=t3(i,107984)|0;if(!i)break;if(!(r[i>>0]|0)){i=0;continue}$i(A,i);i=0}L2(f)}}while(0);i=Ho(n,101446)|0;if(i|0?r[i>>0]|0:0)$i(A,i);a=Oo(e,n)|0;while(1){if(!a)break;i=Ho(a,140823)|0;do{if(i|0?r[i>>0]|0:0){if(!(G1(i,58)|0)){$i(A,i);break}f=b3(i)|0;i=f;while(1){i=t3(i,107984)|0;if(!i)break;if(!(r[i>>0]|0)){i=0;continue}$i(A,i);i=0}L2(f)}}while(0);i=Ho(a,101446)|0;if(i|0?r[i>>0]|0:0)$i(A,i);a=_o(e,a)|0}n=sd(e,n)|0}return}function EI(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;t=k;k=k+16|0;r=t+8|0;n=t;l=a[A>>2]|0;i=a[l+312>>2]|0;f=A+156|0;a[f>>2]=i;l=a[l+316>>2]|0;if(!l)if((i|0)>1?(a[A+152>>2]&64|0)==0:0){a[r>>2]=a[A+52>>2];ao(0,100567,r)|0;a[f>>2]=1;r=1;i=0}else{r=1;i=0}else{i=l+4|0;if((a[l>>2]|0)>1?(a[A+152>>2]&64|0)==0:0){a[n>>2]=a[A+52>>2];ao(0,100567,n)|0;a[l+8>>2]=(a[f>>2]|0)+1}r=a[i>>2]|0;i=l+8|0}a[A+160>>2]=r;a[e>>2]=i;k=t;return}function CI(A){A=A|0;return(a[A+160>>2]|0)<=(a[A+156>>2]|0)|0}function II(A){A=A|0;var e=0;e=a[(a[A>>2]|0)+316>>2]|0;return a[((e|0)==0?A+156|0:e)>>2]|0}function ZI(A){A=A|0;var e=0,i=0;i=A+172|0;e=a[i+4>>2]|0;A=A+196|0;a[A>>2]=a[i>>2];a[A+4>>2]=e;return}function GI(A){A=A|0;var e=0,i=0;i=a[A+196>>2]|0;if(((i|0)>-1?(i|0)<(a[A+164>>2]|0):0)?(e=a[A+200>>2]|0,(e|0)>-1):0)A=(e|0)<(a[A+168>>2]|0)&1;else A=0;return A|0}function mI(A,e){A=A|0;e=e|0;var i=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0;o=k;k=k+176|0;s=o;i=o+48|0;b=o+32|0;u=a[A+16>>2]|0;w=a[A+152>>2]|0;if((a[A+160>>2]|0)<=1?(a[A+196>>2]|0)<=0:0)l=0;else{co(b,128,i);n=u+212|0;l=a[n>>2]|0;fI(A,b);uo(b,l)|0;t=b+4|0;i=a[t>>2]|0;if(i>>>0>=(a[b+8>>2]|0)>>>0){so(b,1)|0;i=a[t>>2]|0}r[i>>0]=0;i=a[b>>2]|0;a[t>>2]=i;a[n>>2]=i}mf(Ho(e,100032)|0);zI(A);Mi(A);$i(A,137314);er(A,134800);do{if(w&4259840|0){if((a[u+208>>2]|0)==0?(f[u+260>>1]&1)==0:0)break;if(w&655360){t=w&131072;a[u+264>>2]=t>>>16^2;i=qF((t>>>12^32)+32|0)|0;n=A+288|0;a[i>>2]=a[n>>2];a[i+4>>2]=a[n+4>>2];a[i+8>>2]=a[n+8>>2];a[i+12>>2]=a[n+12>>2];n=i+16|0;h=A+304|0;a[n>>2]=a[h>>2];a[n+4>>2]=a[h+4>>2];a[n+8>>2]=a[h+8>>2];a[n+12>>2]=a[h+12>>2];if(!t){mF(i);n=4}else n=2}else{i=0;n=0}if(!(w&8192))zi(A,i,i,n)|0;a[u+272>>2]=i;a[u+268>>2]=n}}while(0);if(w&32768|0?(c=a[(a[e+16>>2]|0)+12>>2]|0,c|0):0)a[u+192>>2]=a[c>>2];n=(w&4|0)!=0;do{if(!n){i=u+208|0;if((a[i>>2]|0)==0?(f[u+260>>1]&1)==0:0)break;h=A+256|0;a[s>>2]=a[h>>2];a[s+4>>2]=a[h+4>>2];a[s+8>>2]=a[h+8>>2];a[s+12>>2]=a[h+12>>2];a[s+16>>2]=a[h+16>>2];a[s+20>>2]=a[h+20>>2];a[s+24>>2]=a[h+24>>2];a[s+28>>2]=a[h+28>>2];sI(A,s);Si(A,a[i>>2]|0,a[u+228>>2]|0,a[u+244>>2]|0,a[u+212>>2]|0)}}while(0);YI(A,e);i=a[(a[e+16>>2]|0)+12>>2]|0;if(i|0)jF(A,4,i);do{if(!n){if((a[u+208>>2]|0)==0?(f[u+260>>1]&1)==0:0)break;Oi(A)}}while(0);DI(A,e,w);Fi(A);if(l|0){wo(b);a[u+212>>2]=l}k=o;return}function QI(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0;l=k;k=k+32|0;i=l+24|0;e=l+16|0;c=l+8|0;f=l;n=A+196|0;t=A+188|0;a[e>>2]=a[n>>2];a[e+4>>2]=a[n+4>>2];a[i>>2]=a[t>>2];a[i+4>>2]=a[t+4>>2];WI(c,e,i);t=a[c+4>>2]|0;r=n;a[r>>2]=a[c>>2];a[r+4>>2]=t;if(!((GI(A)|0)<<24>>24)){r=A+180|0;if(!(a[A+184>>2]|0))a[A+200>>2]=a[A+176>>2];else a[n>>2]=a[A+172>>2];a[e>>2]=a[n>>2];a[e+4>>2]=a[n+4>>2];a[i>>2]=a[r>>2];a[i+4>>2]=a[r+4>>2];WI(f,e,i);t=a[f+4>>2]|0;c=n;a[c>>2]=a[f>>2];a[c+4>>2]=t}k=l;return}function LI(A,e){A=A|0;e=e|0;var i=0;i=a[e>>2]|0;if(!i){i=A+160|0;a[i>>2]=(a[i>>2]|0)+1}else{a[A+160>>2]=a[i>>2];a[e>>2]=i+4}return}function yI(A){A=A|0;Di(A);eI(A);return}function WI(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=(a[i+4>>2]|0)+(a[e+4>>2]|0)|0;a[A>>2]=(a[i>>2]|0)+(a[e>>2]|0);a[A+4>>2]=r;return}function zI(A){A=A|0;var e=0.0,i=0.0,r=0.0,f=0,n=0.0,l=0,t=0,c=0,b=0,u=0,w=0.0,o=0,h=0,d=0,B=0,g=0,v=0.0;g=k;k=k+48|0;u=g+32|0;f=g+24|0;t=g+8|0;c=g+16|0;b=g;d=A+196|0;h=a[d>>2]|0;d=a[d+4>>2]|0;o=f;a[o>>2]=h;a[o+4>>2]=d;o=A+164|0;l=a[o>>2]|0;o=a[o+4>>2]|0;B=t;a[B>>2]=l;a[B+4>>2]=o;B=A+360|0;if(!(a[B>>2]|0)){c=h;t=d}else{a[u>>2]=a[f>>2];a[u+4>>2]=a[f+4>>2];iF(c,u);d=c;c=a[d>>2]|0;d=a[d+4>>2]|0;o=f;a[o>>2]=c;a[o+4>>2]=d;a[u>>2]=a[t>>2];a[u+4>>2]=a[t+4>>2];iF(b,u);o=b;l=a[o>>2]|0;o=a[o+4>>2]|0;a[t>>2]=l;a[t+4>>2]=o;t=d}i=+s[A+320>>3];n=i*+(c|0)-+s[A+240>>3];s[A+288>>3]=n;r=+s[A+328>>3];w=r*+(t|0)-+s[A+248>>3];s[A+296>>3]=w;s[A+304>>3]=i+n;s[A+312>>3]=r+w;f=A+472|0;if(!(a[(a[A+12>>2]|0)+28>>2]|0)){d=A+456|0;a[f>>2]=a[d>>2];a[f+4>>2]=a[d+4>>2];a[f+8>>2]=a[d+8>>2];a[f+12>>2]=a[d+12>>2]}else{h=A+456|0;a[f>>2]=a[((a[f>>2]|0)<(a[h>>2]|0)?f:h)>>2];d=A+476|0;a[d>>2]=a[((a[d>>2]|0)<(a[A+460>>2]|0)?f:h)+4>>2];d=A+480|0;a[d>>2]=a[((a[d>>2]|0)>(a[A+464>>2]|0)?f:h)+8>>2];d=A+484|0;a[d>>2]=a[((a[d>>2]|0)>(a[A+468>>2]|0)?f:h)+12>>2]}b=a[A+152>>2]|0;e=+s[A+336>>3];if(!(b&128)){e=(+(c|0)-+(l|0)*.5)*i+e;s[A+256>>3]=e;n=(+(t|0)-+(o|0)*.5)*r+ +s[A+344>>3];w=n;i=i+e;n=n+r}else{i=+s[A+368>>3]*.5;r=e-i;s[A+256>>3]=r;n=+s[A+344>>3];v=+s[A+376>>3]*.5;w=n-v;i=i+e;n=v+n;e=r}s[A+264>>3]=w;s[A+272>>3]=i;s[A+280>>3]=n;if(!(a[B>>2]|0)){r=+s[A+352>>3];s[A+504>>3]=+s[A+384>>3]/r-e;if(!(b&4096)){i=+s[A+392>>3]/r;e=w}else{i=-n;e=+s[A+392>>3]/r}s[A+512>>3]=i-e}else{f=A+384|0;r=+s[A+352>>3];s[A+512>>3]=-n-+s[A+392>>3]/r;if(!(b&4096))i=+s[f>>3]/r;else{i=-i;e=+s[f>>3]/r}s[A+504>>3]=i-e}k=g;return}function YI(A,e){A=A|0;e=e|0;var i=0,f=0.0,n=0,l=0,t=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0;B=k;k=k+48|0;h=B;w=B+40|0;o=B+36|0;d=B+32|0;i=Ho(e,140977)|0;if(!i){t=1;i=137198}else{l=(r[i>>0]|0)==0;t=l&1;i=l?137198:i}n=a[A+152>>2]|0;l=(r[i>>0]|0)==116;if(!(n&256))if(l){b=(A1(i,137379)|0)==0;s=b?137198:i;b=b?1:t;u=8}else{s=i;b=t;u=8}else if(!(l?!(A1(i,137379)|0):0)){s=i;b=t;u=8}if((u|0)==8?!((b|0)!=0&(n&33554432|0)!=0):0)if(!((qM(s,w,o)|0)<<24>>24)){er(A,s);$i(A,137379);d=A+256|0;a[h>>2]=a[d>>2];a[h+4>>2]=a[d+4>>2];a[h+8>>2]=a[d+8>>2];a[h+12>>2]=a[d+12>>2];a[h+16>>2]=a[d+16>>2];a[h+20>>2]=a[d+20>>2];a[h+24>>2]=a[d+24>>2];a[h+28>>2]=a[d+28>>2];nr(A,h,1)}else{a[d>>2]=0;l=a[w>>2]|0;er(A,l);$i(A,137379);_M(e,d)|0;i=a[w+4>>2]|0;n=kR(e,a[47143]|0,0,0)|0;f=+c[o>>2];if(!i)ir(A,137314,n,f);else ir(A,i,n,f);d=(a[d>>2]|0)>>>1&1|2;o=A+256|0;a[h>>2]=a[o>>2];a[h+4>>2]=a[o+4>>2];a[h+8>>2]=a[o+8>>2];a[h+12>>2]=a[o+12>>2];a[h+16>>2]=a[o+16>>2];a[h+20>>2]=a[o+20>>2];a[h+24>>2]=a[o+24>>2];a[h+28>>2]=a[o+28>>2];nr(A,h,d);L2(l)}i=a[(a[(a[e+16>>2]|0)+8>>2]|0)+88>>2]|0;if(i|0)AF(A,i);k=B;return}function DI(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;n=(a[A>>2]|0)+28|0;a[n>>2]=(a[n>>2]|0)+1;n=(i&4|0)!=0;if(!n)MI(A,e,i);A:do{if(!(i&1)){if(i&16|0){Hi(A);f=cd(e)|0;while(1){if(!f)break;r=Oo(e,f)|0;while(1){if(!r)break;VI(A,r);r=_o(e,r)|0}f=sd(e,f)|0}Ui(A);Ri(A);r=cd(e)|0;while(1){if(!r)break;FI(A,r);r=sd(e,r)|0}Xi(A);break}if(!(i&8)){f=cd(e)|0;while(1){if(!f)break A;FI(A,f);r=Oo(e,f)|0;while(1){if(!r)break;FI(A,a[((a[r>>2]&3|0)==2?r:r+-48|0)+40>>2]|0);VI(A,r);r=_o(e,r)|0}f=sd(e,f)|0}}Ri(A);r=cd(e)|0;while(1){if(!r)break;if((JI(e,r)|0)<<24>>24)FI(A,r);r=sd(e,r)|0}Xi(A);Hi(A);f=cd(e)|0;while(1){if(!f)break;r=Oo(e,f)|0;while(1){if(!r)break;if((pI(e,r)|0)<<24>>24)VI(A,r);r=_o(e,r)|0}f=sd(e,f)|0}Ui(A)}else{Ri(A);r=cd(e)|0;while(1){if(!r)break;FI(A,r);r=sd(e,r)|0}Xi(A);Hi(A);f=cd(e)|0;while(1){if(!f)break;r=Oo(e,f)|0;while(1){if(!r)break;VI(A,r);r=_o(e,r)|0}f=sd(e,f)|0}Ui(A)}}while(0);if(n)MI(A,e,i);return}function MI(A,e,i){A=A|0;e=e|0;i=i|0;var l=0,t=0,b=0,u=0,w=0.0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0;X=k;k=k+128|0;C=X+72|0;N=X+64|0;D=X+112|0;M=X;F=X+104|0;V=e+16|0;J=(i&4|0)!=0;p=A+16|0;I=M+32|0;Z=M+16|0;m=M+8|0;Q=M+24|0;L=M+48|0;y=M+40|0;W=M+56|0;z=(i&8|0)==0;Y=F+4|0;E=1;while(1){l=a[V>>2]|0;if((E|0)>(a[l+180>>2]|0))break;v=a[(a[l+184>>2]|0)+(E<<2)>>2]|0;if((OM(A,v)|0)<<24>>24){if(J)MI(A,v,i);KM(A,v);d=a[p>>2]|0;B=d+208|0;if(!(a[B>>2]|0))g=(f[d+260>>1]&1)!=0;else g=1;mf(Ho(v,100032)|0);if(!(J|g^1)){h=(a[v+16>>2]|0)+16|0;a[C>>2]=a[h>>2];a[C+4>>2]=a[h+4>>2];a[C+8>>2]=a[h+8>>2];a[C+12>>2]=a[h+12>>2];a[C+16>>2]=a[h+16>>2];a[C+20>>2]=a[h+20>>2];a[C+24>>2]=a[h+24>>2];a[C+28>>2]=a[h+28>>2];sI(A,C);Si(A,a[B>>2]|0,a[d+228>>2]|0,a[d+244>>2]|0,a[d+212>>2]|0)}a[D>>2]=0;l=_M(v,D)|0;if(!l)o=0;else{rr(A,l);o=a[D>>2]&1}h=v+16|0;l=n[(a[h>>2]|0)+112>>0]|0;do{if(!(l&1)){if(l&2|0){l=BR(v,0,106256)|0;t=BR(v,0,106264)|0;R=29;break}if(l&8|0){l=BR(v,0,106272)|0;t=BR(v,0,106280)|0;R=29;break}if(l&4|0){l=BR(v,0,106288)|0;t=BR(v,0,106296)|0;R=29;break}l=Ho(v,140823)|0;if(!l)t=0;else t=(r[l>>0]|0)==0?0:l;l=Ho(v,137729)|0;if(!l)l=t;else l=(r[l>>0]|0)==0?t:l;b=Ho(v,101418)|0;if(b)t=(r[b>>0]|0)==0?t:b;if(!((o|0)!=0&(t|0)!=0)){b=Ho(v,140977)|0;if(b|0?r[b>>0]|0:0){t=b;R=29;break}l=(l|0)==0?137314:l;u=(t|0)==0?134800:t;a[F>>2]=0;if(!o)t=0;else R=31}else R=29}else{l=BR(v,0,106240)|0;t=BR(v,0,106248)|0;R=29}}while(0);if((R|0)==29){a[F>>2]=0;l=(l|0)==0?137314:l;u=(t|0)==0?134800:t;R=31}if((R|0)==31){R=0;if(!((qM(u,F,C)|0)<<24>>24)){er(A,u);t=1}else{er(A,a[F>>2]|0);t=a[Y>>2]|0;b=kR(v,a[47143]|0,0,0)|0;w=+c[C>>2];if(!t)ir(A,137314,b,w);else ir(A,t,b,w);t=(a[D>>2]|0)>>>1&1|2}}b=a[47142]|0;if((b|0?(G=Uo(v,b)|0,G|0):0)?r[G>>0]|0:0)ur(A,+oR(v,a[47142]|0,1.0,0.0));o=a[D>>2]|0;do{if(o&4){b=kR(v,a[47141]|0,1,0)|0;if(b|t|0){u=a[h>>2]|0;H=u+16|0;a[M>>2]=a[H>>2];a[M+4>>2]=a[H+4>>2];a[M+8>>2]=a[H+8>>2];a[M+12>>2]=a[H+12>>2];u=u+32|0;a[I>>2]=a[u>>2];a[I+4>>2]=a[u+4>>2];a[I+8>>2]=a[u+8>>2];a[I+12>>2]=a[u+12>>2];s[Z>>3]=+s[I>>3];s[Q>>3]=+s[m>>3];s[L>>3]=+s[M>>3];s[W>>3]=+s[y>>3];if(!b)$i(A,137379);else $i(A,l);tp(A,M,4,o,t)}}else{if(!(o&64)){if(kR(v,a[47141]|0,1,0)|0){$i(A,l);H=(a[h>>2]|0)+16|0;a[C>>2]=a[H>>2];a[C+4>>2]=a[H+4>>2];a[C+8>>2]=a[H+8>>2];a[C+12>>2]=a[H+12>>2];a[C+16>>2]=a[H+16>>2];a[C+20>>2]=a[H+20>>2];a[C+24>>2]=a[H+24>>2];a[C+28>>2]=a[H+28>>2];nr(A,C,t);break}if(!t)break;$i(A,137379);H=(a[h>>2]|0)+16|0;a[C>>2]=a[H>>2];a[C+4>>2]=a[H+4>>2];a[C+8>>2]=a[H+8>>2];a[C+12>>2]=a[H+12>>2];a[C+16>>2]=a[H+16>>2];a[C+20>>2]=a[H+20>>2];a[C+24>>2]=a[H+24>>2];a[C+28>>2]=a[H+28>>2];nr(A,C,t);break}H=a[h>>2]|0;o=H+16|0;a[M>>2]=a[o>>2];a[M+4>>2]=a[o+4>>2];a[M+8>>2]=a[o+8>>2];a[M+12>>2]=a[o+12>>2];H=H+32|0;a[I>>2]=a[H>>2];a[I+4>>2]=a[H+4>>2];a[I+8>>2]=a[H+8>>2];a[I+12>>2]=a[H+12>>2];s[Z>>3]=+s[I>>3];s[Q>>3]=+s[m>>3];s[L>>3]=+s[M>>3];s[W>>3]=+s[y>>3];if(!(kR(v,a[47141]|0,1,0)|0))$i(A,137379);else $i(A,l);if((cI(A,M,u,0)|0)>1){a[N>>2]=Vh(v)|0;ao(3,100400,N)|0}H=(a[h>>2]|0)+16|0;a[C>>2]=a[H>>2];a[C+4>>2]=a[H+4>>2];a[C+8>>2]=a[H+8>>2];a[C+12>>2]=a[H+12>>2];a[C+16>>2]=a[H+16>>2];a[C+20>>2]=a[H+20>>2];a[C+24>>2]=a[H+24>>2];a[C+28>>2]=a[H+28>>2];nr(A,C,0)}}while(0);L2(a[F>>2]|0);l=a[(a[h>>2]|0)+12>>2]|0;if(l|0)jF(A,5,l);if(g){if(J){H=(a[h>>2]|0)+16|0;a[C>>2]=a[H>>2];a[C+4>>2]=a[H+4>>2];a[C+8>>2]=a[H+8>>2];a[C+12>>2]=a[H+12>>2];a[C+16>>2]=a[H+16>>2];a[C+20>>2]=a[H+20>>2];a[C+24>>2]=a[H+24>>2];a[C+28>>2]=a[H+28>>2];sI(A,C);Si(A,a[B>>2]|0,a[d+228>>2]|0,a[d+244>>2]|0,a[d+212>>2]|0)}Oi(A)}A:do{if(!z){t=cd(v)|0;while(1){if(!t)break A;FI(A,t);l=Oo(v,t)|0;while(1){if(!l)break;VI(A,l);l=_o(v,l)|0}t=sd(v,t)|0}}}while(0);$M(A,e);if(!J)MI(A,v,i)}E=E+1|0}k=X;return}function FI(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0;c=k;k=k+32|0;i=c;l=a[A>>2]|0;t=e+16|0;A:do{if(((a[(a[t>>2]|0)+8>>2]|0?(XM(A,Id(e)|0,e)|0)<<24>>24:0)?(s=A+256|0,a[i>>2]=a[s>>2],a[i+4>>2]=a[s+4>>2],a[i+8>>2]=a[s+8>>2],a[i+12>>2]=a[s+12>>2],a[i+16>>2]=a[s+16>>2],a[i+20>>2]=a[s+20>>2],a[i+24>>2]=a[s+24>>2],a[i+28>>2]=a[s+28>>2],(HM(e,i)|0)<<24>>24):0)?(f=(a[t>>2]|0)+116|0,n=a[l+28>>2]|0,(n|0)!=(r[f>>0]|0)):0){r[f>>0]=n;cr(A,Vh(e)|0);i=dR(e,a[47169]|0,195059)|0;if(r[i>>0]|0)cr(A,i);i=dR(e,a[47157]|0,195059)|0;e:do{if(r[i>>0]|0){XI(i)|0;i=188228;while(1){f=i;i=i+4|0;f=a[f>>2]|0;if(!f)break e;if((r[f>>0]|0)!=105)continue;if(!(A1(f,134335)|0))break A}}}while(0);UM(A,e);V5[a[(a[(a[(a[t>>2]|0)+8>>2]|0)+4>>2]|0)+20>>2]&63](A,e);i=a[(a[t>>2]|0)+108>>2]|0;if(i|0?r[i+81>>0]|0:0)jF(A,10,i);xM(A)}}while(0);k=c;return}function VI(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0;l=k;k=k+32|0;n=l;i=A+256|0;a[n>>2]=a[i>>2];a[n+4>>2]=a[i+4>>2];a[n+8>>2]=a[i+8>>2];a[n+12>>2]=a[i+12>>2];a[n+16>>2]=a[i+16>>2];a[n+20>>2]=a[i+20>>2];a[n+24>>2]=a[i+24>>2];a[n+28>>2]=a[i+28>>2];A:do{if((NI(e,n)|0)<<24>>24?(f=e+-48|0,(RI(A,e)|0)<<24>>24):0){t=e+48|0;i=P2(Vh(a[((a[e>>2]&3|0)==3?e:t)+40>>2]|0)|0)|0;i=Q2(i+3+(P2(Vh(a[((a[e>>2]&3|0)==2?e:f)+40>>2]|0)|0)|0)|0)|0;$1(i,Vh(a[((a[e>>2]&3|0)==3?e:t)+40>>2]|0)|0)|0;t=(Ih(Id(a[((a[e>>2]&3|0)==2?e:f)+40>>2]|0)|0)|0)==0;n=i+(P2(i)|0)|0;if(t){r[n>>0]=r[141747]|0;r[n+1>>0]=r[141748]|0;r[n+2>>0]=r[141749]|0}else{r[n>>0]=r[137738]|0;r[n+1>>0]=r[137739]|0;r[n+2>>0]=r[137740]|0}w3(i,Vh(a[((a[e>>2]&3|0)==2?e:f)+40>>2]|0)|0)|0;cr(A,i);L2(i);i=dR(e,a[47191]|0,195059)|0;if(r[i>>0]|0)cr(A,i);i=dR(e,a[47185]|0,195059)|0;e:do{if(!(r[i>>0]|0))i=0;else{XI(i)|0;i=188228;while(1){f=i;i=i+4|0;f=a[f>>2]|0;if(!f){i=188228;break e}if((r[f>>0]|0)!=105)continue;if(!(A1(f,134335)|0))break A}}}while(0);aM(A,e,i);nM(A,e,i);lM(A)}}while(0);k=l;return}function JI(A,e){A=A|0;e=e|0;var i=0,r=0;i=A+16|0;A=1;while(1){r=a[i>>2]|0;if((A|0)>(a[r+180>>2]|0)){A=1;break}if(!(Dd(a[(a[r+184>>2]|0)+(A<<2)>>2]|0,e)|0))A=A+1|0;else{A=0;break}}return A|0}function pI(A,e){A=A|0;e=e|0;var i=0,r=0;i=A+16|0;A=1;while(1){r=a[i>>2]|0;if((A|0)>(a[r+180>>2]|0)){A=1;break}if(!(Dd(a[(a[r+184>>2]|0)+(A<<2)>>2]|0,e)|0))A=A+1|0;else{A=0;break}}return A|0}function NI(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0;c=k;k=k+64|0;t=c+32|0;f=c;n=A+16|0;A=a[n>>2]|0;i=a[A+8>>2]|0;if((i|0)!=0?(i=i+8|0,a[f>>2]=a[i>>2],a[f+4>>2]=a[i+4>>2],a[f+8>>2]=a[i+8>>2],a[f+12>>2]=a[i+12>>2],a[f+16>>2]=a[i+16>>2],a[f+20>>2]=a[i+20>>2],a[f+24>>2]=a[i+24>>2],a[f+28>>2]=a[i+28>>2],a[t>>2]=a[e>>2],a[t+4>>2]=a[e+4>>2],a[t+8>>2]=a[e+8>>2],a[t+12>>2]=a[e+12>>2],a[t+16>>2]=a[e+16>>2],a[t+20>>2]=a[e+20>>2],a[t+24>>2]=a[e+24>>2],a[t+28>>2]=a[e+28>>2],(RM(f,t)|0)!=0):0)A=1;else l=3;do{if((l|0)==3){i=a[A+96>>2]|0;if(i){a[t>>2]=a[e>>2];a[t+4>>2]=a[e+4>>2];a[t+8>>2]=a[e+8>>2];a[t+12>>2]=a[e+12>>2];a[t+16>>2]=a[e+16>>2];a[t+20>>2]=a[e+20>>2];a[t+24>>2]=a[e+24>>2];a[t+28>>2]=a[e+28>>2];if((GX(i,t)|0)<<24>>24){A=1;break}A=a[n>>2]|0}A=a[A+108>>2]|0;if((A|0?r[A+81>>0]|0:0)?(a[t>>2]=a[e>>2],a[t+4>>2]=a[e+4>>2],a[t+8>>2]=a[e+8>>2],a[t+12>>2]=a[e+12>>2],a[t+16>>2]=a[e+16>>2],a[t+20>>2]=a[e+20>>2],a[t+24>>2]=a[e+24>>2],a[t+28>>2]=a[e+28>>2],(GX(A,t)|0)<<24>>24):0){A=1;break}A=0}}while(0);k=c;return A|0}function RI(A,e){A=A|0;e=e|0;var i=0,f=0;A:do{if((a[A+156>>2]|0)>=2?(i=dR(e,a[47190]|0,195059)|0,(VM(A,i)|0)<<24>>24==0):0)if(!(r[i>>0]|0)){i=0;while(1){if((i|0)>=2){i=0;break A}f=(i|0)==1;f=dR(a[((a[e>>2]&3|0)==((f?2:3)|0)?e:e+((f?-1:1)*48|0)|0)+40>>2]|0,a[47167]|0,195059)|0;if(!(r[f>>0]|0)){i=1;break A}if(!((VM(A,f)|0)<<24>>24))i=i+1|0;else{i=1;break}}}else i=0;else i=1}while(0);return i|0}function XI(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0;o=k;k=k+192|0;w=o+24|0;u=o+16|0;b=o+8|0;s=o;n=o+48|0;c=o+32|0;if(r[100282]|0){co(188492,128,194826);r[100282]=0}co(c,128,o+56|0);a[n>>2]=A;l=c+4|0;t=c+8|0;e=0;i=0;A:while(1){f=e;e:while(1)switch(MM(n,c)|0){case 0:{e=21;break A}case 40:if(!(f<<24>>24)){f=1;continue e}else{e=7;break A}case 41:if(!(f<<24>>24)){e=9;break A}else{f=0;continue e}default:break e}if(!(f<<24>>24)){if((i|0)==63){e=12;break}e=a[47124]|0;if(e>>>0>=(a[47125]|0)>>>0){so(188492,1)|0;e=a[47124]|0}a[47124]=e+1;r[e>>0]=0;a[188228+(i<<2)>>2]=a[47124];i=i+1|0}e=a[l>>2]|0;if(e>>>0>=(a[t>>2]|0)>>>0){so(c,1)|0;e=a[l>>2]|0}r[e>>0]=0;e=a[c>>2]|0;a[l>>2]=e;uo(188492,e)|0;e=a[47124]|0;if(e>>>0>=(a[47125]|0)>>>0){so(188492,1)|0;e=a[47124]|0}a[47124]=e+1;r[e>>0]=0;e=f}do{if((e|0)==7){a[s>>2]=A;ao(1,100283,s)|0;a[47057]=0;wo(c)}else if((e|0)==9){a[b>>2]=A;ao(1,100317,b)|0;a[47057]=0;wo(c)}else if((e|0)==12){a[u>>2]=A;ao(0,100345,u)|0;a[47120]=0;wo(c)}else if((e|0)==21){if(f<<24>>24){a[w>>2]=A;ao(1,100368,w)|0;a[47057]=0;wo(c);break}a[188228+(i<<2)>>2]=0;wo(c);e=a[47124]|0;if(e>>>0>=(a[47125]|0)>>>0){so(188492,1)|0;e=a[47124]|0}r[e>>0]=0;a[47124]=a[47123]}}while(0);k=o;return 188228}function HI(A){A=A|0;var e=0;e=k;k=k+A|0;k=k+15&-16;return e|0}function UI(){return k|0}function xI(A){A=A|0;k=A}function TI(A,e){A=A|0;e=e|0;k=A;o=e}function jI(A,e){A=A|0;e=e|0;if(!d){d=A;B=e}}function PI(A){A=A|0;L=A}function SI(){return L|0}function OI(A){A=A|0;a[46654]=A;return 0}function KI(){return a[46654]|0}function _I(A,e){A=A|0;e=e|0;UA(0,A|0,e|0)|0;return}function qI(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0;t=k;k=k+16|0;f=t+4|0;n=t;a[f>>2]=0;l=uE()|0;dE(l,10976);dE(l,17220);dE(l,17440);fo(1)|0;ro(18)|0;while(1){A=_h(A)|0;r=a[f>>2]|0;if(!A)break;if(r|0){A=195059;continue}wE(l,A,i)|0;hE(l,A,e,f,n)|0;A=195059}k=t;return r|0}function $I(A){A=A|0;var e=0,i=0,r=0,n=0;n=k;k=k+16|0;e=n+4|0;i=n;r=a[(a[A+16>>2]|0)+8>>2]|0;A=A+64|0;switch(a[A>>2]|0){case 0:{qV(r);break}case 1:{if(f[(a[r+16>>2]|0)+136>>1]&1)cX(r);break}case 4:case 5:case 6:{OV(r,i,e);iZ(r,a[i>>2]|0,a[e>>2]|0,a[A>>2]|0);break}default:{}}k=n;return}function AZ(A){A=A|0;var e=0,i=0,r=0,f=0;i=a[(a[A+16>>2]|0)+8>>2]|0;if(!(a[46655]|0)){a[46655]=a[4678];a[46656]=57;a[46657]=19}r=i+64|0;f=(a[r>>2]|0)+8|0;e=a[f>>2]|0;a[f>>2]=186620;switch(a[A+64>>2]|0){case 2:{NV(A,i,A,0);break}case 3:{NV(A,i,A,1);break}case 1:case 0:{if(!(a[A+152>>2]&134217728))rg(i,A)|0;break}case 6:case 5:case 4:{eZ(i);if(!(a[A+152>>2]&134217728))rg(i,A)|0;break}default:{}}a[(a[r>>2]|0)+8>>2]=e;return}function eZ(A){A=A|0;var e=0,i=0;e=a[46659]|0;if((e|0)!=(a[46658]|0)){i=a[a[46690]>>2]|0;if(!i){i=oX(A,0,99808,195059)|0;a[a[46690]>>2]=i;e=a[46659]|0}if(e>>>0>=(a[46660]|0)>>>0){so(186632,1)|0;e=a[46659]|0}r[e>>0]=0;e=a[46658]|0;a[46659]=e;Vo(A,i,e)|0}if(a[(a[A+16>>2]|0)+12>>2]|0){i=a[(a[46690]|0)+4>>2]|0;e=a[46675]|0;if(e>>>0>=(a[46676]|0)>>>0){so(186696,1)|0;e=a[46675]|0}r[e>>0]=0;e=a[46674]|0;a[46675]=e;Vo(A,i,e)|0}To(A,66753,a[(a[46690]|0)+8236>>2]|0,195059)|0;e=0;while(1){if((e|0)==8)break;wo(186632+(e<<4)|0);e=e+1|0}L2(a[46690]|0);s[1]=1.0;s[5]=1.0;a[46691]=0;a[46695]=0;return}function iZ(A,e,i,n){A=A|0;e=e|0;i=i|0;n=n|0;var l=0,t=0,c=0;t=Q2(8240)|0;a[46690]=t;A:do{switch(n|0){case 6:{f[t+8232>>1]=14;n=66769;break}case 5:{f[t+8232>>1]=12;n=66773;break}default:{n=Ho(A,66753)|0;if((n|0?r[n>>0]|0:0)?(l=rZ(n)|0,(l&65535)>10):0){t=a[46690]|0;f[t+8232>>1]=l;break A}n=rZ(66765)|0;t=a[46690]|0;f[t+8232>>1]=n;n=66765}}}while(0);a[t+8236>>2]=n;c=A+16|0;n=a[c>>2]|0;if(!(a[n+180>>2]|0))l=0;else{l=oX(A,0,99808,195059)|0;t=a[46690]|0;n=a[c>>2]|0}a[t>>2]=l;if(!(r[n+113>>0]&8))n=0;else n=oX(A,0,66777,195059)|0;a[(a[46690]|0)+4>>2]=n;t=oX(A,1,99808,195059)|0;a[(a[46690]|0)+8>>2]=t;t=oX(A,1,66777,195059)|0;a[(a[46690]|0)+12>>2]=t;t=oX(A,2,99808,195059)|0;n=a[46690]|0;a[n+16>>2]=t;if(!i)l=0;else{l=oX(A,2,66785,195059)|0;n=a[46690]|0}a[n+20>>2]=l;if(!e)l=0;else{l=oX(A,2,66793,195059)|0;n=a[46690]|0}a[n+24>>2]=l;l=r[(a[c>>2]|0)+113>>0]|0;if(!(l&33))t=0;else{t=oX(A,2,66777,195059)|0;n=a[46690]|0;l=r[(a[c>>2]|0)+113>>0]|0}a[n+28>>2]=t;if(!(l&2))t=0;else{t=oX(A,2,66801,195059)|0;n=a[46690]|0;l=r[(a[c>>2]|0)+113>>0]|0}a[n+32>>2]=t;if(!(l&4))l=0;else{l=oX(A,2,66810,195059)|0;n=a[46690]|0}a[n+36>>2]=l;n=0;while(1){if((n|0)==8)break;co(186632+(n<<4)|0,1024,(a[46690]|0)+40+(n<<10)|0);n=n+1|0}return}function rZ(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0;c=k;k=k+1040|0;l=c;n=c+8|0;f=0;e=A;A:while(1){do{i=e;e=e+1|0;i=r[i>>0]|0;if(!(i<<24>>24))break A}while(((i<<24>>24)+-48|0)>>>0>=10);if((f|0)>=1023){t=7;break}r[n+f>>0]=i;f=f+1|0}if((t|0)==7){a[l>>2]=A;ao(0,66819,l)|0}r[n+f>>0]=0;t=(q3(n)|0)&65535;k=c;return t|0}function fZ(A){A=A|0;var e=0,i=0;i=a[(a[A+16>>2]|0)+8>>2]|0;e=a[a[46690]>>2]|0;A=a[46663]|0;if(A>>>0>=(a[46664]|0)>>>0){so(186648,1)|0;A=a[46663]|0}r[A>>0]=0;A=a[46662]|0;a[46663]=A;Vo(i,e,A)|0;if(a[(a[i+16>>2]|0)+12>>2]|0){e=a[(a[46690]|0)+4>>2]|0;A=a[46679]|0;if(A>>>0>=(a[46680]|0)>>>0){so(186712,1)|0;A=a[46679]|0}r[A>>0]=0;A=a[46678]|0;a[46679]=A;Vo(i,e,A)|0}s[2]=1.0;s[6]=1.0;a[46692]=0;a[46696]=0;return}function aZ(A){A=A|0;var e=0,i=0;i=a[(a[A+16>>2]|0)+8>>2]|0;A=a[46663]|0;if((a[46662]|0)!=(A|0)){e=a[(a[46690]|0)+8>>2]|0;if(A>>>0>=(a[46664]|0)>>>0){so(186648,1)|0;A=a[46663]|0}r[A>>0]=0;A=a[46662]|0;a[46663]=A;Vo(i,e,A)|0}A=a[46679]|0;if((a[46678]|0)!=(A|0)){e=a[(a[46690]|0)+12>>2]|0;if(A>>>0>=(a[46680]|0)>>>0){so(186712,1)|0;A=a[46679]|0}r[A>>0]=0;A=a[46678]|0;a[46679]=A;Vo(i,e,A)|0}s[9]=1.0;s[11]=1.0;a[46699]=0;a[46701]=0;return}function nZ(A){A=A|0;var e=0,i=0;i=a[(a[A+16>>2]|0)+8>>2]|0;A=a[46663]|0;if((a[46662]|0)!=(A|0)){e=a[(a[46690]|0)+16>>2]|0;if(A>>>0>=(a[46664]|0)>>>0){so(186648,1)|0;A=a[46663]|0}r[A>>0]=0;A=a[46662]|0;a[46663]=A;Vo(i,e,A)|0}A=a[46667]|0;if((a[46666]|0)!=(A|0)){e=a[(a[46690]|0)+24>>2]|0;if(A>>>0>=(a[46668]|0)>>>0){so(186664,1)|0;A=a[46667]|0}r[A>>0]=0;A=a[46666]|0;a[46667]=A;Vo(i,e,A)|0}A=a[46671]|0;if((a[46670]|0)!=(A|0)){e=a[(a[46690]|0)+20>>2]|0;if(A>>>0>=(a[46672]|0)>>>0){so(186680,1)|0;A=a[46671]|0}r[A>>0]=0;A=a[46670]|0;a[46671]=A;Vo(i,e,A)|0}A=a[46679]|0;if((a[46678]|0)!=(A|0)){e=a[(a[46690]|0)+28>>2]|0;if(A>>>0>=(a[46680]|0)>>>0){so(186712,1)|0;A=a[46679]|0}r[A>>0]=0;A=a[46678]|0;a[46679]=A;Vo(i,e,A)|0}A=a[46683]|0;if((a[46682]|0)!=(A|0)){e=a[(a[46690]|0)+36>>2]|0;if(A>>>0>=(a[46684]|0)>>>0){so(186728,1)|0;A=a[46683]|0}r[A>>0]=0;A=a[46682]|0;a[46683]=A;Vo(i,e,A)|0}A=a[46687]|0;if((a[46686]|0)!=(A|0)){e=a[(a[46690]|0)+32>>2]|0;if(A>>>0>=(a[46688]|0)>>>0){so(186744,1)|0;A=a[46687]|0}r[A>>0]=0;A=a[46686]|0;a[46687]=A;Vo(i,e,A)|0}s[10]=1.0;s[12]=1.0;s[3]=1.0;s[4]=1.0;s[7]=1.0;s[8]=1.0;a[46700]=0;a[46702]=0;a[46693]=0;a[46694]=0;a[46697]=0;a[46698]=0;return}function lZ(A,e,i){A=A|0;e=e|0;i=i|0;var n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0;g=k;k=k+1056|0;t=g+16|0;B=g+8|0;d=g;c=g+32|0;w=a[(a[A+16>>2]|0)+12>>2]|0;o=a[11416+(w<<2)>>2]|0;uo(o,66916)|0;n=i+4|0;hZ(c,+s[(a[n>>2]|0)+16>>3]);uo(o,c)|0;gZ(A,195059,a[a[n>>2]>>2]|0);wZ(A);h=r[i+48>>0]|0;h=h<<24>>24==108?-1:h<<24>>24==114&1;n=a[n>>2]|0;if(!n)n=0;else n=a[n+24>>2]&127;l=f[(a[46690]|0)+8232>>1]|0;if((l&65535)>14?(b=a[11464+((l&65535)+-15<<2)>>2]&n,u=186764+(w<<2)|0,(a[u>>2]|0)!=(b|0)):0){a[d>>2]=b;S4(c,66919,d)|0;uo(o,c)|0;a[u>>2]=b}d=e+8|0;s[d>>3]=+s[d>>3]+ +s[i+24>>3];uo(o,66925)|0;a[t>>2]=a[e>>2];a[t+4>>2]=a[e+4>>2];a[t+8>>2]=a[e+8>>2];a[t+12>>2]=a[e+12>>2];oZ(o,t);a[B>>2]=h;S4(c,102220,B)|0;uo(o,c)|0;hZ(c,+s[i+32>>3]);uo(o,c)|0;gZ(A,195059,a[i>>2]|0);k=g;return}function tZ(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0;l=k;k=k+1040|0;f=l;n=l+16|0;r=a[(a[A+16>>2]|0)+12>>2]|0;uZ(A);wZ(A);if(!i){A=a[11416+(r<<2)>>2]|0;uo(A,66913)|0}else{if((i|1|0)==3)EZ(A,i,e,2);else CZ(A);A=a[11416+(r<<2)>>2]|0;uo(A,66910)|0}a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];oZ(A,f);hZ(n,+s[e+16>>3]-+s[e>>3]);uo(A,n)|0;hZ(n,+s[e+24>>3]-+s[e+8>>3]);uo(A,n)|0;k=l;return}function cZ(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;uZ(A);wZ(A);if(!r)kZ(A,112,e,i);else{if((r|1|0)==3)EZ(A,r,e,i);else CZ(A);kZ(A,80,e,i)}return}function sZ(A,e,i,r,f,a){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;uZ(A);wZ(A);if(!a)kZ(A,66,e,i);else{if((a|1|0)==3)EZ(A,a,e,i);else CZ(A);kZ(A,98,e,i)}return}function bZ(A,e,i){A=A|0;e=e|0;i=i|0;uZ(A);wZ(A);kZ(A,76,e,i);return}function uZ(A){A=A|0;var e=0,i=0,f=0,n=0.0,l=0,t=0,c=0,b=0,u=0;u=k;k=k+1184|0;l=u;f=u+24|0;b=u+8|0;co(b,1024,u+152|0);t=A+16|0;e=a[t>>2]|0;n=+s[e+152>>3];i=8+(a[e+12>>2]<<3)|0;if(n!=+s[i>>3]){s[i>>3]=n;uo(b,66882)|0;s[l>>3]=+s[(a[t>>2]|0)+152>>3];S4(f,66896,l)|0;dZ(f,0);uo(b,f)|0;f=b+4|0;e=a[f>>2]|0;i=b+8|0;if(e>>>0>=(a[i>>2]|0)>>>0){so(b,1)|0;e=a[f>>2]|0}a[f>>2]=e+1;r[e>>0]=41;e=a[f>>2]|0;if(e>>>0>=(a[i>>2]|0)>>>0){so(b,1)|0;e=a[f>>2]|0}r[e>>0]=0;e=a[b>>2]|0;a[f>>2]=e;gZ(A,66901,e);e=a[t>>2]|0}e=a[e+160>>2]|0;if(e|0){t=b+4|0;c=b+8|0;A:while(1){l=e+4|0;e=a[e>>2]|0;if(!e)break;switch(r[e>>0]|0){case 102:{if(!(A1(e,111101)|0)){e=l;continue A}break}case 98:{if(!(A1(e,111083)|0)){e=l;continue A}break}case 115:{if(!(A1(e,111088)|0)){e=l;continue A}break}default:{}}uo(b,e)|0;do{f=e;e=e+1|0}while((r[f>>0]|0)!=0);if(r[e>>0]|0){i=a[t>>2]|0;if(i>>>0>=(a[c>>2]|0)>>>0){so(b,1)|0;i=a[t>>2]|0}a[t>>2]=i+1;r[i>>0]=40;f=0;while(1){if(!(r[e>>0]|0))break;if(f|0){i=a[t>>2]|0;if(i>>>0>=(a[c>>2]|0)>>>0){so(b,1)|0;i=a[t>>2]|0}a[t>>2]=i+1;r[i>>0]=44}uo(b,e)|0;do{i=e;e=e+1|0}while((r[i>>0]|0)!=0);f=f+1|0}e=a[t>>2]|0;if(e>>>0>=(a[c>>2]|0)>>>0){so(b,1)|0;e=a[t>>2]|0}a[t>>2]=e+1;r[e>>0]=41}e=a[t>>2]|0;if(e>>>0>=(a[c>>2]|0)>>>0){so(b,1)|0;e=a[t>>2]|0}r[e>>0]=0;e=a[b>>2]|0;a[t>>2]=e;gZ(A,66901,e);e=l}wo(b)}k=u;return}function wZ(A){A=A|0;BZ((a[A+16>>2]|0)+16|0);gZ(A,75834,193758);return}function kZ(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,s=0;s=k;k=k+1040|0;c=s;t=s+16|0;l=a[11416+(a[(a[A+16>>2]|0)+12>>2]<<2)>>2]|0;n=l+4|0;A=a[n>>2]|0;if(A>>>0>=(a[l+8>>2]|0)>>>0){so(l,1)|0;A=a[n>>2]|0}a[n>>2]=A+1;r[A>>0]=e;a[c>>2]=f;S4(t,66846,c)|0;uo(l,t)|0;A=0;while(1){if((A|0)>=(f|0))break;t=i+(A<<4)|0;a[c>>2]=a[t>>2];a[c+4>>2]=a[t+4>>2];a[c+8>>2]=a[t+8>>2];a[c+12>>2]=a[t+12>>2];oZ(l,c);A=A+1|0}k=s;return}function oZ(A,e){A=A|0;e=e|0;var i=0,r=0;i=k;k=k+1024|0;r=i;hZ(r,+s[e>>3]);uo(A,r)|0;hZ(r,+pV(+s[e+8>>3]));uo(A,r)|0;k=i;return}function hZ(A,e){A=A|0;e=+e;var i=0,r=0;i=k;k=k+16|0;r=i;s[r>>3]=e>-1.0e-08&e<1.0e-08?0.0:e;S4(A,66851,r)|0;dZ(A,1);k=i;return}function dZ(A,e){A=A|0;e=e|0;var i=0,f=0;i=G1(A,46)|0;if(!i){if(e|0){i=A+(P2(A)|0)|0;f=10}}else{while(1){A=i+1|0;if(!(r[A>>0]|0))break;else i=A}A:while(1){switch(r[i>>0]|0){case 46:{f=5;break A}case 48:break;default:{f=6;break A}}r[i>>0]=0;i=i+-1|0}if((f|0)==5)r[i>>0]=0;else if((f|0)==6)i=i+1|0;if(e|0)f=10}if((f|0)==10){r[i>>0]=32;r[i+1>>0]=0}return}function BZ(A){A=A|0;var e=0,i=0,f=0,l=0,t=0,c=0;c=k;k=k+32|0;t=c+16|0;l=c;e=r[A+3>>0]|0;i=n[A>>0]|0;f=n[A+1>>0]|0;A=n[A+2>>0]|0;if(e<<24>>24==-1){a[l>>2]=i;a[l+4>>2]=f;a[l+8>>2]=A;S4(193758,75714,l)|0}else{a[t>>2]=i;a[t+4>>2]=f;a[t+8>>2]=A;a[t+12>>2]=e&255;S4(193758,66864,t)|0}k=c;return}function gZ(A,e,i){A=A|0;e=e|0;i=i|0;vZ(a[11416+(a[(a[A+16>>2]|0)+12>>2]<<2)>>2]|0,e,i);return}function vZ(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0;f=k;k=k+1040|0;l=f;n=f+8|0;t=P2(i)|0;a[l>>2]=e;a[l+4>>2]=t;S4(n,66857,l)|0;uo(A,n)|0;uo(A,i)|0;i=A+4|0;e=a[i>>2]|0;if(e>>>0>=(a[A+8>>2]|0)>>>0){so(A,1)|0;e=a[i>>2]|0}a[i>>2]=e+1;r[e>>0]=32;k=f;return}function EZ(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0.0,t=0,b=0.0,u=0.0,w=0.0,o=0.0,h=0.0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0.0;I=k;k=k+1120|0;g=I+64|0;C=I+80|0;t=I+32|0;d=I+16|0;B=I;v=a[A+16>>2]|0;n=+(a[v+136>>2]|0)*.017453292519943295;if((l[(a[46690]|0)+8232>>1]|0)<14)CZ(A);else{co(C,1024,I+96|0);E=(e|0)==2;if(E){YX(i,t,f,n,2);i=C+4|0;e=a[i>>2]|0;if(e>>>0>=(a[C+8>>2]|0)>>>0){so(C,1)|0;e=a[i>>2]|0}a[i>>2]=e+1;r[e>>0]=91;a[g>>2]=a[t>>2];a[g+4>>2]=a[t+4>>2];a[g+8>>2]=a[t+8>>2];a[g+12>>2]=a[t+12>>2];oZ(C,g);B=t+16|0;a[g>>2]=a[B>>2];a[g+4>>2]=a[B+4>>2];a[g+8>>2]=a[B+8>>2];a[g+12>>2]=a[B+12>>2];oZ(C,g)}else{YX(i,t,f,0.0,3);h=+s[t+24>>3];w=+s[t>>3];if(n==0.0){u=+s[t+8>>3];o=h*.25;n=u;b=w}else{o=h*.25;Z=o;b=+D(+n)*Z+w;u=+s[t+8>>3];n=+M(+n)*Z+u}s[d>>3]=b;s[d+8>>3]=n;s[B>>3]=w;s[B+8>>3]=u;i=C+4|0;e=a[i>>2]|0;if(e>>>0>=(a[C+8>>2]|0)>>>0){so(C,1)|0;e=a[i>>2]|0}a[i>>2]=e+1;r[e>>0]=40;a[g>>2]=a[d>>2];a[g+4>>2]=a[d+4>>2];a[g+8>>2]=a[d+8>>2];a[g+12>>2]=a[d+12>>2];oZ(C,g);IZ(C,o);a[g>>2]=a[B>>2];a[g+4>>2]=a[B+4>>2];a[g+8>>2]=a[B+8>>2];a[g+12>>2]=a[B+12>>2];oZ(C,g);IZ(C,h)}uo(C,66907)|0;e=v+140|0;n=+c[e>>2];i=v+56|0;if(n>0.0){ZZ(C,n,i);ZZ(C,+c[e>>2],v+96|0)}else{ZZ(C,0.0,i);ZZ(C,1.0,v+96|0)}ko(C)|0;t=C+4|0;e=a[t>>2]|0;f=C+8|0;i=e>>>0>=(a[f>>2]|0)>>>0;if(E){if(i){so(C,1)|0;e=a[t>>2]|0}a[t>>2]=e+1;r[e>>0]=93}else{if(i){so(C,1)|0;e=a[t>>2]|0}a[t>>2]=e+1;r[e>>0]=41}e=a[t>>2]|0;if(e>>>0>=(a[f>>2]|0)>>>0){so(C,1)|0;e=a[t>>2]|0}r[e>>0]=0;E=a[C>>2]|0;a[t>>2]=E;gZ(A,66904,E);wo(C)}k=I;return}function CZ(A){A=A|0;BZ((a[A+16>>2]|0)+56|0);gZ(A,66904,193758);return}function IZ(A,e){A=A|0;e=+e;var i=0,r=0;i=k;k=k+1024|0;r=i;hZ(r,e);uo(A,r)|0;k=i;return}function ZZ(A,e,i){A=A|0;e=+e;i=i|0;var r=0,f=0,a=0;r=k;k=k+1040|0;a=r;f=r+8|0;s[a>>3]=e;S4(f,94168,a)|0;dZ(f,1);BZ(i);vZ(A,f,193758);k=r;return}function GZ(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0;r=k;k=k+1040|0;l=r;f=r+16|0;n=a[11416+(a[(a[A+16>>2]|0)+12>>2]<<2)>>2]|0;uo(n,67013)|0;a[l>>2]=a[i>>2];a[l+4>>2]=a[i+4>>2];a[l+8>>2]=a[i+8>>2];a[l+12>>2]=a[i+12>>2];oZ(n,l);hZ(f,+s[i+16>>3]-+s[i>>3]);uo(n,f)|0;hZ(f,+s[i+24>>3]-+s[i+8>>3]);uo(n,f)|0;gZ(A,195059,a[e+8>>2]|0);k=r;return}function mZ(A){A=A|0;var e=0;switch(a[A+64>>2]|0){case 0:{e=mv(a[A>>2]|0)|0;kE(e,a[(a[A+16>>2]|0)+8>>2]|0,67797,0)|0;Qv(e);break}case 1:{qV(a[(a[A>>2]|0)+168>>2]|0);break}default:{}}return}function QZ(A){A=A|0;var e=0,i=0,f=0,n=0;f=k;k=k+16|0;e=f;i=a[(a[A+16>>2]|0)+8>>2]|0;if(!(a[46703]|0)){a[46703]=a[4678];a[46704]=57;a[46705]=19}a[(a[i+64>>2]|0)+8>>2]=186812;LZ(i,1);a[e>>2]=0;r[e+4>>0]=(r[(a[i+16>>2]|0)+115>>0]|0)==1&1;n=a[A+64>>2]|0;r[e+5>>0]=((n|0)==0|(n|0)==3)&1;r[e+6>>0]=0;yZ(i,A,1,e);k=f;return}function LZ(A,e){A=A|0;e=e|0;var i=0;a[A>>2]=a[A>>2]&-9;i=RB(A)|0;while(1){if(!i)break;LZ(i,0);i=XB(i)|0}A:do{if(e|0){e=cd(A)|0;while(1){if(!e)break A;a[e>>2]=a[e>>2]&-9;i=Oo(A,e)|0;while(1){if(!i)break;a[i>>2]=a[i>>2]&-9;i=_o(A,i)|0}e=sd(A,e)|0}}}while(0);return}function yZ(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0;h=k;k=k+16|0;o=h+8|0;w=h;u=(i|0)!=0;if(u){b=jk(11836,a[4581]|0)|0;Kd(A,1,141060,12,0);Kd(A,2,141060,12,0);Kd(A,0,141060,-12,0);f=WZ(A,0,b)|0;c=cd(A)|0;t=0;n=0;while(1){if(!c)break;if(!(Z1(Vh(c)|0,108006,7)|0)){s=n;n=zZ(b,Vh(c)|0)|0}else{s=n+1|0;n=n+f|0}a[(Ud(c,141060,0)|0)+8>>2]=n;l=Oo(A,c)|0;n=t;while(1){if(!l)break;a[(Ud(l,141060,0)|0)+8>>2]=n;l=_o(A,l)|0;n=n+1|0}c=sd(A,c)|0;t=n;n=s}Hk(b)|0}else f=0;b=a[r>>2]|0;a[r>>2]=b+1;YZ(e,b);kv(e,97374)|0;DZ(A,e,i,r);MZ(A,e,r);kv(e,97345)|0;YZ(e,a[r>>2]|0);if(u){a[w>>2]=f;vv(e,67016,w)}else{a[o>>2]=a[(Ud(A,141060,0)|0)+8>>2];vv(e,67036,o)}VZ(A,e,i,FZ(A,e,i,r)|0,r);JZ(A,e,i,r);kv(e,153599)|0;o=(a[r>>2]|0)+-1|0;a[r>>2]=o;YZ(e,o);if(u)kv(e,111008)|0;else kv(e,75357)|0;k=h;return}function WZ(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;if((Zd(A)|0)!=(A|0)){r=e+1|0;a[(Ud(A,141060,0)|0)+8>>2]=e;if(!(Z1(Vh(A)|0,108006,7)|0)){e=Vh(A)|0;OZ(i,e,a[(Ud(A,141060,0)|0)+8>>2]|0);e=r}else e=r}r=RB(A)|0;while(1){if(!r)break;A=WZ(r,e,i)|0;r=XB(r)|0;e=A}return e|0}function zZ(A,e){A=A|0;e=e|0;A=y5[a[A>>2]&63](A,e,512)|0;if(!A)A=-1;else A=a[A+12>>2]|0;return A|0}function YZ(A,e){A=A|0;e=e|0;while(1){if((e|0)<=0)break;kv(A,90574)|0;e=e+-1|0}return}function DZ(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0;l=k;k=k+32|0;n=l+16|0;f=l+8|0;t=l;c=Vh(A)|0;YZ(e,a[r>>2]|0);a[t>>2]=RZ(c,r)|0;vv(e,67124,t);if(i|0){kv(e,97345)|0;YZ(e,a[r>>2]|0);c=(Ih(A)|0)!=0;a[f>>2]=c?107652:137308;vv(e,67738,f);YZ(e,a[r>>2]|0);c=(Gh(A)|0)!=0;a[n>>2]=c?107652:137308;vv(e,67755,n)}k=l;return}function MZ(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;w=k;k=k+16|0;u=w+8|0;b=w;t=Zd(A)|0;c=a[A>>2]&3;f=Jo(t,c,0)|0;A:do{if(f|0){s=i+5|0;while(1){if(!f)break A;n=Uo(A,f)|0;do{if(n|0){l=f+8|0;if(!(r[n>>0]|0)){n=a[l>>2]|0;if((r[n>>0]|0)!=108)break;if(A1(n,108224)|0)break}kv(e,97345)|0;YZ(e,a[i>>2]|0);a[b>>2]=RZ(a[l>>2]|0,i)|0;vv(e,67174,b);if(r[s>>0]|0?HZ(a[l>>2]|0)|0:0){UZ(Uo(A,f)|0,e,i);break}a[u>>2]=RZ(Uo(A,f)|0,i)|0;vv(e,67181,u)}}while(0);f=Jo(t,c,f)|0}}}while(0);k=w;return}function FZ(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0;t=k;k=k+16|0;l=t;f=RB(A)|0;if(f){kv(e,97345)|0;n=a[r>>2]|0;a[r>>2]=n+1;YZ(e,n);n=(i|0)!=0;if(n){kv(e,67098)|0;A=0;i=f}else{kv(e,67158)|0;YZ(e,a[r>>2]|0);A=0;i=f}while(1){if(!i)break;if(!A)A=1;else kv(e,97345)|0;if(n)XZ(i,e,r);else{a[l>>2]=a[(Ud(i,141060,0)|0)+8>>2];vv(e,137395,l)}i=XB(i)|0}if(n)A=1;else{a[r>>2]=(a[r>>2]|0)+-1;kv(e,153599)|0;YZ(e,a[r>>2]|0);kv(e,97340)|0;A=1}}else A=0;k=t;return A|0}function VZ(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0;n=cd(A)|0;if(!n){if((i|0)!=0&(r|0)!=0){a[f>>2]=(a[f>>2]|0)+-1;kv(e,153599)|0;YZ(e,a[f>>2]|0);kv(e,97340)|0}}else{kv(e,97345)|0;l=(i|0)!=0;if(l)if(!r){r=a[f>>2]|0;a[f>>2]=r+1;YZ(e,r);kv(e,67098)|0;r=0}else r=0;else{r=a[f>>2]|0;a[f>>2]=r+1;YZ(e,r);kv(e,67112)|0;YZ(e,a[f>>2]|0);r=0}while(1){if(!n)break;if(Z1(Vh(n)|0,108006,7)|0){do{if(r)if(l){kv(e,97345)|0;break}else{kv(e,100999)|0;break}else r=1}while(0);NZ(n,e,i,f)}n=sd(A,n)|0}a[f>>2]=(a[f>>2]|0)+-1;kv(e,153599)|0;YZ(e,a[f>>2]|0);kv(e,97340)|0}return}function JZ(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0;f=cd(A)|0;A:do{if(f|0){while(1){if(!f)break A;if(Oo(A,f)|0)break;f=sd(A,f)|0}kv(e,97345)|0;t=a[r>>2]|0;a[r>>2]=t+1;YZ(e,t);kv(e,67048)|0;t=(i|0)!=0;if(t)n=0;else{YZ(e,a[r>>2]|0);n=0}while(1){if(!f)break;l=Oo(A,f)|0;while(1){if(!l)break;do{if(n)if(t){kv(e,97345)|0;break}else{kv(e,100999)|0;break}else n=1}while(0);pZ(l,e,i,r);l=_o(A,l)|0}f=sd(A,f)|0}a[r>>2]=(a[r>>2]|0)+-1;kv(e,153599)|0;YZ(e,a[r>>2]|0);kv(e,97340)|0}}while(0);return}function pZ(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0;c=k;k=k+32|0;t=c+24|0;l=c+16|0;n=c+8|0;f=c;if(!i){a[t>>2]=a[(Ud(A,141060,0)|0)+8>>2];vv(e,137395,t)}else{t=a[r>>2]|0;a[r>>2]=t+1;YZ(e,t);kv(e,97374)|0;YZ(e,a[r>>2]|0);a[f>>2]=a[(Ud(A,141060,0)|0)+8>>2];vv(e,67060,f);YZ(e,a[r>>2]|0);a[n>>2]=a[(Ud(a[((a[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0,141060,0)|0)+8>>2];vv(e,67074,n);YZ(e,a[r>>2]|0);a[l>>2]=a[(Ud(a[((a[A>>2]&3|0)==2?A:A+-48|0)+40>>2]|0,141060,0)|0)+8>>2];vv(e,67087,l);MZ(A,e,r);kv(e,153599)|0;t=(a[r>>2]|0)+-1|0;a[r>>2]=t;YZ(e,t);kv(e,75357)|0}k=c;return}function NZ(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0;t=k;k=k+32|0;l=t+16|0;n=t+8|0;f=t;if(!i){a[l>>2]=a[(Ud(A,141060,0)|0)+8>>2];vv(e,137395,l)}else{l=a[r>>2]|0;a[r>>2]=l+1;YZ(e,l);kv(e,97374)|0;YZ(e,a[r>>2]|0);a[f>>2]=a[(Ud(A,141060,0)|0)+8>>2];vv(e,67060,f);YZ(e,a[r>>2]|0);a[n>>2]=RZ(Vh(A)|0,r)|0;vv(e,67124,n);MZ(A,e,r);kv(e,153599)|0;l=(a[r>>2]|0)+-1|0;a[r>>2]=l;YZ(e,l);kv(e,75357)|0}k=t;return}function RZ(A,e){A=A|0;e=e|0;var i=0,f=0,n=0;n=e+4|0;if(r[n>>0]|0)A=EX(A)|0;if(!(a[46706]|0)){co(186824,1024,0);i=A}else i=A;A:while(1){f=r[i>>0]|0;switch(f<<24>>24){case 0:break A;case 34:{uo(186824,67137)|0;break}case 92:{uo(186824,96616)|0;break}case 47:{uo(186824,67140)|0;break}case 8:{uo(186824,67143)|0;break}case 12:{uo(186824,67146)|0;break}case 10:{uo(186824,67149)|0;break}case 13:{uo(186824,67152)|0;break}case 9:{uo(186824,67155)|0;break}default:{e=a[46707]|0;if(e>>>0>=(a[46708]|0)>>>0){so(186824,1)|0;e=a[46707]|0}a[46707]=e+1;r[e>>0]=f}}i=i+1|0}e=a[46707]|0;if(e>>>0>=(a[46708]|0)>>>0){so(186824,1)|0;e=a[46707]|0}r[e>>0]=0;e=a[46706]|0;a[46707]=e;if(r[n>>0]|0)L2(A);return e|0}function XZ(A,e,i){A=A|0;e=e|0;i=i|0;yZ(A,e,0,i);A=RB(A)|0;while(1){if(!A)break;kv(e,97345)|0;XZ(A,e,i);A=XB(A)|0}return}function HZ(A){A=A|0;var e=0;e=A+1|0;A:do{if((r[A>>0]|0)==95){A=(r[e>>0]|0)+-100<<24>>24;switch(((A&255)>>>2|A<<6&255)<<24>>24){case 0:{if(!(A1(e,67695)|0)){A=1;break A}break}case 2:{if(!(A1(e,67701)|0)){A=1;break A}break}case 1:{if(!(A1(e,67708)|0)){A=1;break A}return(A1(e,67722)|0)==0|0}case 4:{if(!(A1(e,67715)|0)){A=1;break A}A=(A1(e,67730)|0)==0&1;break A}default:{A=0;break A}}A=0}else A=0}while(0);return A|0}function UZ(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0;t=k;k=k+16|0;f=t;do{if(A|0?r[A>>0]|0:0){l=yC(A)|0;if(!l){a[f>>2]=A;ao(0,67186,f)|0;break}kv(e,153599)|0;n=a[i>>2]|0;a[i>>2]=n+1;YZ(e,n);kv(e,67213)|0;n=l+8|0;A=0;f=0;while(1){if((f|0)>=(a[l>>2]|0))break;if(!A)A=1;else kv(e,97345)|0;xZ((a[n>>2]|0)+(f*80|0)|0,e,i);f=f+1|0}a[i>>2]=(a[i>>2]|0)+-1;kv(e,153599)|0;YZ(e,a[i>>2]|0);kv(e,97340)|0;WC(l)}}while(0);k=t;return}function xZ(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0.0,L=0.0,y=0.0;m=k;k=k+240|0;Z=m+224|0;I=m+216|0;C=m+208|0;E=m+200|0;v=m+192|0;g=m+184|0;B=m+176|0;d=m+152|0;h=m+136|0;o=m+128|0;w=m+112|0;u=m+104|0;b=m+96|0;c=m+88|0;t=m+72|0;l=m+48|0;G=m+40|0;n=m+8|0;f=m;r=a[i>>2]|0;a[i>>2]=r+1;YZ(e,r);kv(e,97374)|0;YZ(e,a[i>>2]|0);r=a[A>>2]|0;A:do{switch(r|0){case 1:case 0:{a[f>>2]=(r|0)==0?69:101;vv(e,67216,f);YZ(e,a[i>>2]|0);y=+s[A+16>>3];L=+s[A+24>>3];Q=+s[A+32>>3];s[n>>3]=+s[A+8>>3];s[n+8>>3]=y;s[n+16>>3]=L;s[n+24>>3]=Q;vv(e,67229,n);break}case 3:case 2:{a[G>>2]=(r|0)==2?80:112;vv(e,67216,G);YZ(e,a[i>>2]|0);TZ(e,A+8|0);break}case 5:case 4:{a[l>>2]=(r|0)==4?66:98;vv(e,67216,l);YZ(e,a[i>>2]|0);TZ(e,A+8|0);break}case 6:{vv(e,67264,m+56|0);YZ(e,a[i>>2]|0);TZ(e,A+8|0);break}case 7:{vv(e,67276,m+64|0);YZ(e,a[i>>2]|0);y=+s[A+16>>3];s[t>>3]=+s[A+8>>3];s[t+8>>3]=y;vv(e,67288,t);YZ(e,a[i>>2]|0);G=a[A+24>>2]|0;a[c>>2]=(G|0)==0?108:(G|0)==1?99:114;vv(e,67310,c);YZ(e,a[i>>2]|0);s[b>>3]=+s[A+32>>3];vv(e,67326,b);YZ(e,a[i>>2]|0);a[u>>2]=RZ(a[A+40>>2]|0,i)|0;vv(e,67343,u);break}case 9:case 8:{a[w>>2]=(r|0)==8?67:99;vv(e,67216,w);YZ(e,a[i>>2]|0);vv(e,67357,m+120|0);YZ(e,a[i>>2]|0);a[o>>2]=RZ(a[A+8>>2]|0,i)|0;vv(e,67374,o);break}case 13:case 14:{a[h>>2]=(r|0)==13?67:99;vv(e,67216,h);YZ(e,a[i>>2]|0);switch(a[A+8>>2]|0){case 0:{vv(e,67357,m+144|0);YZ(e,a[i>>2]|0);a[d>>2]=RZ(a[A+16>>2]|0,i)|0;vv(e,67374,d);break A}case 1:{vv(e,67389,m+160|0);YZ(e,a[i>>2]|0);jZ(e,A+16|0,i);break A}default:{vv(e,67408,m+168|0);YZ(e,a[i>>2]|0);PZ(e,A+16|0,i);break A}}}case 10:{vv(e,67427,B);YZ(e,a[i>>2]|0);s[g>>3]=+s[A+8>>3];vv(e,67439,g);YZ(e,a[i>>2]|0);a[v>>2]=RZ(a[A+16>>2]|0,i)|0;vv(e,67455,v);break}case 11:{vv(e,67469,E);YZ(e,a[i>>2]|0);a[C>>2]=RZ(a[A+8>>2]|0,i)|0;vv(e,67481,C);break}case 15:{vv(e,67496,I);YZ(e,a[i>>2]|0);a[Z>>2]=a[A+8>>2];vv(e,67508,Z);break}default:{}}}while(0);G=(a[i>>2]|0)+-1|0;a[i>>2]=G;YZ(e,G);kv(e,75357)|0;k=m;return}function TZ(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0.0;t=k;k=k+48|0;l=t+32|0;n=t+16|0;f=t+8|0;r=a[e>>2]|0;i=a[e+4>>2]|0;vv(A,67669,t);e=0;while(1){if((e|0)>=(r|0))break;if((e|0)>0)vv(A,100999,f);c=+s[i+(e*24|0)+8>>3];s[n>>3]=+s[i+(e*24|0)>>3];s[n+8>>3]=c;vv(A,67681,n);e=e+1|0}vv(A,67622,l);k=t;return}function jZ(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0.0,l=0;r=k;k=k+32|0;f=r+16|0;l=r;YZ(A,a[i>>2]|0);n=+s[e+8>>3];s[l>>3]=+s[e>>3];s[l+8>>3]=n;vv(A,67625,l);YZ(A,a[i>>2]|0);n=+s[e+24>>3];s[f>>3]=+s[e+16>>3];s[f+8>>3]=n;vv(A,67647,f);YZ(A,a[i>>2]|0);SZ(A,a[e+32>>2]|0,a[e+36>>2]|0,i);k=r;return}function PZ(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0.0,l=0.0,t=0;r=k;k=k+48|0;f=r+24|0;t=r;YZ(A,a[i>>2]|0);n=+s[e+8>>3];l=+s[e+16>>3];s[t>>3]=+s[e>>3];s[t+8>>3]=n;s[t+16>>3]=l;vv(A,67524,t);YZ(A,a[i>>2]|0);l=+s[e+32>>3];n=+s[e+40>>3];s[f>>3]=+s[e+24>>3];s[f+8>>3]=l;s[f+16>>3]=n;vv(A,67552,f);YZ(A,a[i>>2]|0);SZ(A,a[e+48>>2]|0,a[e+52>>2]|0,i);k=r;return}function SZ(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,b=0,u=0,w=0.0;b=k;k=k+48|0;t=b+32|0;l=b+16|0;n=b+8|0;vv(A,67580,b);f=0;while(1){if((f|0)>=(e|0))break;if((f|0)>0)vv(A,100999,n);w=+c[i+(f<<3)>>2];u=RZ(a[i+(f<<3)+4>>2]|0,r)|0;s[l>>3]=w;a[l+8>>2]=u;vv(A,67591,l);f=f+1|0}vv(A,67622,t);k=b;return}function OZ(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;n=k;k=k+16|0;f=n;r=y5[a[A>>2]&63](A,e,512)|0;if(r){if((a[r+12>>2]|0)!=(i|0)){a[f>>2]=e;ao(0,67768,f)|0}}else{f=y2(1,16)|0;a[f+8>>2]=b3(e)|0;a[f+12>>2]=i;y5[a[A>>2]&63](A,f,1)|0}k=n;return}function KZ(A,e,i){A=A|0;e=e|0;i=i|0;L2(a[e+8>>2]|0);L2(e);return}function _Z(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0;e=k;k=k+32|0;i=e+24|0;r=e+16|0;n=e;f=a[A+16>>2]|0;kv(A,68623)|0;c=a[a[A+12>>2]>>2]|0;t=a[c+4>>2]|0;l=a[c+8>>2]|0;a[n>>2]=a[c>>2];a[n+4>>2]=t;a[n+8>>2]=l;vv(A,68633,n);a[r>>2]=Vh(a[f+8>>2]|0)|0;vv(A,68668,r);a[i>>2]=U(a[A+168>>2]|0,a[A+164>>2]|0)|0;vv(A,68681,i);kv(A,68694)|0;kv(A,68704)|0;kv(A,68712)|0;kv(A,68720)|0;kv(A,68728)|0;kv(A,68736)|0;kv(A,68744)|0;kv(A,68748)|0;kv(A,68753)|0;k=e;return}function qZ(A){A=A|0;kv(A,68604)|0;return}function $Z(A){A=A|0;a[46710]=2;return}function AG(A){A=A|0;a[46710]=1;return}function eG(A){A=A|0;a[46710]=2;return}function iG(A){A=A|0;a[46710]=0;return}function rG(A){A=A|0;a[46710]=2;return}function fG(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0.0,l=0.0,t=0,c=0.0,b=0,u=0,w=0,o=0,h=0.0,d=0.0,B=0;o=k;k=k+80|0;w=o;b=a[(a[A+16>>2]|0)+16>>2]|0;u=a[46710]|0;f=a[i+4>>2]|0;n=+s[A+352>>3]*+s[f+16>>3];l=a[A+360>>2]|0?1.5707963267948966:0.0;t=a[i>>2]|0;c=n*.3333333333333333*+((P2(t)|0)>>>0);f=a[f+8>>2]|0;if(!f)f=-1;else f=a[f+20>>2]|0;B=r[i+48>>0]|0;d=+s[e>>3];h=+s[e+8>>3];i=kG(t)|0;a[w>>2]=4;a[w+4>>2]=B<<24>>24==108?0:B<<24>>24==114?2:1;a[w+8>>2]=b;a[w+12>>2]=u;a[w+16>>2]=0;a[w+20>>2]=f;s[w+24>>3]=n;s[w+32>>3]=l;a[w+40>>2]=6;s[w+48>>3]=n;s[w+56>>3]=c;a[w+64>>2]=~~(d+(d>=0.0?.5:-.5));a[w+68>>2]=~~(h+(h+-72.0>=0.0?-71.5:-72.5));a[w+72>>2]=i;vv(A,68549,w);k=o;return}function aG(A,e){A=A|0;e=e|0;var i=0,f=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;u=k;k=k+32|0;c=u;t=u+20|0;b=e+32|0;A:do{switch(a[b>>2]|0){case 5:{i=0;while(1){f=a[12724+(i<<2)>>2]|0;if((i|0)==8)break A;l=a[e>>2]|0;if((r[f>>0]|0)==(r[l>>0]|0)?(A1(f,l)|0)==0:0){s=10;break A}i=i+1|0}}case 1:{f=e+1|0;l=e+2|0;i=(wG(t,n[e>>0]|0,n[f>>0]|0,n[l>>0]|0)|0)+32|0;if(!(a[t>>2]|0))s=10;else{w=n[e>>0]|0;t=n[f>>0]|0;s=n[l>>0]|0;a[c>>2]=0;a[c+4>>2]=i;a[c+8>>2]=w;a[c+12>>2]=t;a[c+16>>2]=s;vv(A,68492,c);s=10}break}default:gA(138394,67889,163,67920)}}while(0);if((s|0)==10)a[e>>2]=i;a[b>>2]=6;k=u;return}function nG(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0.0,l=0.0,t=0,c=0,b=0.0,u=0.0,w=0.0,o=0,h=0,d=0,B=0,g=0,v=0;r=k;k=k+112|0;f=r+8|0;v=r+104|0;g=r;c=a[A+16>>2]|0;B=~~+s[c+152>>3];d=a[c+16>>2]|0;h=a[c+56>>2]|0;o=a[46710]|0;bG(c,v,g);u=+s[e>>3];c=~~(u+(u>=0.0?.5:-.5));b=+s[e+8>>3];t=~~(b+(b>=0.0?.5:-.5));l=+s[e+16>>3];u=l-u;n=+s[e+24>>3];b=n-b;e=a[v>>2]|0;w=+s[g>>3];a[f>>2]=1;a[f+4>>2]=1;a[f+8>>2]=e;a[f+12>>2]=B;a[f+16>>2]=d;a[f+20>>2]=h;a[f+24>>2]=o;a[f+28>>2]=0;a[f+32>>2]=i|0?20:-1;s[f+40>>3]=w;a[f+48>>2]=0;s[f+56>>3]=0.0;a[f+64>>2]=c;a[f+68>>2]=t;a[f+72>>2]=~~(u+(u>=0.0?.5:-.5));a[f+76>>2]=~~(b+(b>=0.0?.5:-.5));a[f+80>>2]=c;a[f+84>>2]=t;a[f+88>>2]=~~(l+(l>=0.0?.5:-.5));a[f+92>>2]=~~(n+(n>=0.0?.5:-.5));vv(A,68427,f);k=r;return}function lG(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0.0,t=0,c=0,b=0,u=0,w=0,o=0,h=0;f=k;k=k+96|0;n=f+8|0;w=f+80|0;o=f;h=a[A+16>>2]|0;u=~~+s[h+152>>3];b=a[h+16>>2]|0;c=a[h+56>>2]|0;t=a[46710]|0;bG(h,w,o);w=a[w>>2]|0;l=+s[o>>3];a[n>>2]=2;a[n+4>>2]=3;a[n+8>>2]=w;a[n+12>>2]=u;a[n+16>>2]=b;a[n+20>>2]=c;a[n+24>>2]=t;a[n+28>>2]=0;a[n+32>>2]=r|0?20:-1;s[n+40>>3]=l;a[n+48>>2]=0;a[n+52>>2]=0;a[n+56>>2]=0;a[n+60>>2]=0;a[n+64>>2]=0;a[n+68>>2]=i+1;vv(A,68331,n);uG(A,e,i,1);k=f;return}function tG(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0.0,W=0.0,z=0;L=k;k=k+192|0;Q=L+176|0;G=L+168|0;m=L+104|0;Z=L+96|0;l=L+88|0;v=L+180|0;E=L+80|0;C=L+16|0;I=L;f=A+16|0;r=a[f>>2]|0;h=~~+s[r+152>>3];d=a[r+16>>2]|0;B=a[46710]|0;if((i|0)<=3)gA(67882,67889,360,67909);g=Q2((i*140|0)+140|0)|0;bG(r,v,E);if(!n){w=4;t=0;c=-1}else{w=5;t=a[(a[f>>2]|0)+56>>2]|0;c=20}W=+s[e>>3];u=C+48|0;s[u>>3]=W;y=+s[e+8>>3];s[C+56>>3]=y;a[l>>2]=~~(W+(W>=0.0?.5:-.5));a[l+4>>2]=~~(y+(y>=0.0?.5:-.5));b=I+8|0;r=g+(S4(g,81099,l)|0)|0;o=1;n=0;while(1){l=n+3|0;if((l|0)>=(i|0))break;a[C>>2]=a[u>>2];a[C+4>>2]=a[u+4>>2];a[C+8>>2]=a[u+8>>2];a[C+12>>2]=a[u+12>>2];f=1;while(1){if((f|0)==4){f=1;break}z=f+n|0;s[C+(f<<4)>>3]=+s[e+(z<<4)>>3];s[C+(f<<4)+8>>3]=+s[e+(z<<4)+8>>3];f=f+1|0}while(1){if((f|0)==7)break;QR(I,C,3,+(f|0)*.16666666666666666,0,0);y=+s[I>>3];W=+s[b>>3];a[Z>>2]=~~(y+(y>=0.0?.5:-.5));a[Z+4>>2]=~~(W+(W>=0.0?.5:-.5));f=f+1|0;r=r+(S4(r,81099,Z)|0)|0}o=o+6|0;n=l}f=a[v>>2]|0;W=+s[E>>3];a[m>>2]=3;a[m+4>>2]=w;a[m+8>>2]=f;a[m+12>>2]=h;a[m+16>>2]=d;a[m+20>>2]=t;a[m+24>>2]=B;a[m+28>>2]=0;a[m+32>>2]=c;s[m+40>>3]=W;a[m+48>>2]=0;a[m+52>>2]=0;a[m+56>>2]=0;a[m+60>>2]=o;vv(A,68382,m);a[G>>2]=g;vv(A,81106,G);L2(g);f=o+-1|0;r=0;while(1){if((r|0)>=(o|0))break;a[Q>>2]=((r|0)%(f|0)|0|0)!=0&1;vv(A,81111,Q);r=r+1|0}kv(A,153599)|0;k=L;return}function cG(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0.0,l=0,t=0,c=0,b=0,u=0,w=0;r=k;k=k+96|0;f=r+8|0;b=r+80|0;u=r;w=a[A+16>>2]|0;c=~~+s[w+152>>3];t=a[w+16>>2]|0;l=a[46710]|0;bG(w,b,u);b=a[b>>2]|0;n=+s[u>>3];a[f>>2]=2;a[f+4>>2]=1;a[f+8>>2]=b;a[f+12>>2]=c;a[f+16>>2]=t;a[f+20>>2]=0;a[f+24>>2]=l;a[f+28>>2]=0;a[f+32>>2]=0;s[f+40>>3]=n;a[f+48>>2]=0;a[f+52>>2]=0;a[f+56>>2]=0;a[f+60>>2]=0;a[f+64>>2]=0;a[f+68>>2]=i;vv(A,68331,f);uG(A,e,i,0);k=r;return}function sG(A,e){A=A|0;e=e|0;var i=0,r=0;i=k;k=k+16|0;r=i;a[r>>2]=e;vv(A,68325,r);k=i;return}function bG(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0;switch(a[A+144>>2]|0){case 1:{r=10.0;A=1;break}case 2:{r=10.0;A=2;break}default:{r=0.0;A=0}}a[e>>2]=A;s[i>>3]=r;return}function uG(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0.0,b=0.0;t=k;k=k+16|0;l=t+8|0;n=t;f=0;while(1){if((f|0)>=(i|0))break;b=+s[e+(f<<4)>>3];c=+s[e+(f<<4)+8>>3];a[n>>2]=~~(b+(b>=0.0?.5:-.5));a[n+4>>2]=~~(c+(c>=0.0?.5:-.5));vv(A,81099,n);f=f+1|0}if(r|0){c=+s[e>>3];b=+s[e+8>>3];a[l>>2]=~~(c+(c>=0.0?.5:-.5));a[l+4>>2]=~~(b+(b>=0.0?.5:-.5));vv(A,81099,l)}kv(A,153599)|0;k=t;return}function wG(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;a[A>>2]=0;s=a[46711]|0;l=195075;n=0;t=-1;while(1){if((n|0)>=(s|0)){b=6;break}u=(f[190680+(n<<1)>>1]|0)-e|0;w=(f[191192+(n<<1)>>1]|0)-i|0;c=(f[191704+(n<<1)>>1]|0)-r|0;c=(U(w,w)|0)+(U(u,u)|0)+(U(c,c)|0)|0;if((c|0)<(l|0))if(!c)break;else{l=c;t=n}n=n+1|0}if((b|0)==6){a[46711]=s+1;if((s|0)==256)n=t;else{f[190680+(n<<1)>>1]=e;f[191192+(n<<1)>>1]=i;f[191704+(n<<1)>>1]=r;a[A>>2]=1}}return n|0}function kG(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0;t=k;k=k+16|0;l=t;e=a[46712]|0;if(!e){a[46713]=64;e=Q2(64)|0;a[46712]=e;i=0}else i=0;while(1){n=A+1|0;f=r[A>>0]|0;if(!(f<<24>>24))break;A=a[46713]|0;if((i|0)>(A+-8|0)){e=A<<1;a[46713]=e;e=W2(a[46712]|0,e)|0;a[46712]=e;e=e+i|0}if(f<<24>>24<=-1){r[e>>0]=92;a[l>>2]=f&255;S4(e+1|0,81224,l)|0;A=n;e=e+4|0;i=i+4|0;continue}if(f<<24>>24==92){r[e>>0]=92;i=i+1|0;e=e+1|0}r[e>>0]=f;A=n;e=e+1|0;i=i+1|0}r[e>>0]=0;k=t;return a[46712]|0}function oG(A){A=A|0;var e=0,i=0,f=0;i=a[A+16>>2]|0;switch(a[A+64>>2]|0){case 0:{kv(A,68220)|0;e=i+208|0;i=a[e>>2]|0;if(i|0?r[i>>0]|0:0){kv(A,68234)|0;kv(A,SF(a[e>>2]|0)|0)|0;kv(A,153599)|0}break}case 1:{e=i+208|0;f=a[e>>2]|0;if(f|0?r[f>>0]|0:0){kv(A,68234)|0;kv(A,SF(a[e>>2]|0)|0)|0;kv(A,102604)|0;kv(A,SF(Vh(a[i+8>>2]|0)|0)|0)|0;kv(A,153599)|0}break}case 3:{f=SF(Vh(a[i+8>>2]|0)|0)|0;kv(A,68243)|0;kv(A,f)|0;kv(A,68253)|0;kv(A,f)|0;kv(A,68208)|0;break}default:{}}return}function hG(A){A=A|0;var e=0;e=a[A+16>>2]|0;switch(a[A+64>>2]|0){case 2:{BG(A,a[e+264>>2]|0,a[e+272>>2]|0,a[e+268>>2]|0,a[e+208>>2]|0,a[e+228>>2]|0,a[e+244>>2]|0,a[e+212>>2]|0);break}case 3:{BG(A,a[e+264>>2]|0,a[e+272>>2]|0,a[e+268>>2]|0,a[e+208>>2]|0,a[e+228>>2]|0,a[e+244>>2]|0,a[e+212>>2]|0);kv(A,68212)|0;break}default:{}}return}function dG(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0;n=a[A+16>>2]|0;BG(A,a[n+264>>2]|0,a[n+272>>2]|0,a[n+268>>2]|0,e,i,r,f);return}function BG(A,e,i,f,n,l,t,c){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;l=l|0;t=t|0;c=c|0;var b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0.0;Z=k;k=k+128|0;I=Z+120|0;v=Z+112|0;g=Z+96|0;B=Z+80|0;d=Z+56|0;C=Z+48|0;h=Z+40|0;E=Z+24|0;o=Z;A:do{if((i|0)!=0&(f|0)!=0){b=f+10|0;if((a[46714]|0)<(f|0)){a[46714]=b;w=W2(a[46715]|0,b<<3)|0;a[46715]=w}else w=a[46715]|0;b=0;while(1){if((b|0)>=(f|0))break;G=+s[i+(b<<4)>>3];a[w+(b<<3)>>2]=~~(G+(G>=0.0?.5:-.5));G=+s[i+(b<<4)+8>>3];a[w+(b<<3)+4>>2]=~~(G+(G>=0.0?.5:-.5));b=b+1|0}u=A+64|0;b=a[u>>2]|0;i=(n|0)!=0;if(i&(b|0)==0){if(!(r[n>>0]|0))break;switch(e|0){case 0:{E=a[w>>2]|0;C=a[w+12>>2]|0;I=a[w+8>>2]|0;f=a[w+4>>2]|0;a[o>>2]=n;a[o+4>>2]=E;a[o+8>>2]=C;a[o+12>>2]=I;a[o+16>>2]=f;vv(A,67954,o);break A}case 1:{C=a[w>>2]|0;I=a[w+4>>2]|0;f=(a[w+8>>2]|0)-C|0;a[E>>2]=n;a[E+4>>2]=C;a[E+8>>2]=I;a[E+12>>2]=f;vv(A,67975,E);break A}case 2:{a[h>>2]=n;vv(A,67995,h);b=0;while(1){if((b|0)>=(f|0))break;E=a[46715]|0;I=a[E+(b<<3)+4>>2]|0;a[C>>2]=a[E+(b<<3)>>2];a[C+4>>2]=I;vv(A,68003,C);b=b+1|0}kv(A,153599)|0;break A}default:gA(138394,68010,63,68030)}}if(i&(b|0)==1){if(!(r[n>>0]|0))break;if(!e){C=a[w+12>>2]|0;I=a[w+8>>2]|0;f=a[w+4>>2]|0;a[d>>2]=a[w>>2];a[d+4>>2]=C;a[d+8>>2]=I;a[d+12>>2]=f;a[d+16>>2]=n;a[d+20>>2]=l;vv(A,68047,d);break}else gA(138394,68010,75,68030)}if((b&-2|0)==2){switch(e|0){case 1:{kv(A,68080)|0;break}case 0:{kv(A,68101)|0;break}case 2:{kv(A,68120)|0;break}default:gA(138394,68010,91,68030)}if(c|0?r[c>>0]|0:0){kv(A,73600)|0;kv(A,_F(c)|0)|0;kv(A,98744)|0}if(i?r[n>>0]|0:0){kv(A,68139)|0;kv(A,_F(n)|0)|0;kv(A,98744)|0}if(t|0?r[t>>0]|0:0){kv(A,74559)|0;kv(A,SF(t)|0)|0;kv(A,98744)|0}if(l|0?r[l>>0]|0:0){kv(A,68147)|0;kv(A,SF(l)|0)|0;kv(A,98744)|0}kv(A,68156)|0;kv(A,68164)|0;e:do{switch(e|0){case 1:{f=a[46715]|0;C=a[f>>2]|0;I=a[f+4>>2]|0;f=(a[f+8>>2]|0)-C|0;a[B>>2]=C;a[B+4>>2]=I;a[B+8>>2]=f;vv(A,68174,B);break}case 0:{E=a[46715]|0;C=a[E+12>>2]|0;I=a[E+8>>2]|0;f=a[E+4>>2]|0;a[g>>2]=a[E>>2];a[g+4>>2]=C;a[g+8>>2]=I;a[g+12>>2]=f;vv(A,68183,g);break}case 2:{C=a[46715]|0;b=a[C+4>>2]|0;a[v>>2]=a[C>>2];a[v+4>>2]=b;vv(A,68195,v);b=1;while(1){if((b|0)>=(f|0))break e;E=a[46715]|0;C=a[E+(b<<3)+4>>2]|0;a[I>>2]=a[E+(b<<3)>>2];a[I+4>>2]=C;vv(A,68201,I);b=b+1|0}}default:{}}}while(0);if((a[u>>2]|0)==3){kv(A,73424)|0;break}else{kv(A,68208)|0;break}}}}while(0);k=Z;return}function gG(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0;e=k;k=k+32|0;i=e+24|0;r=e+16|0;n=e;f=a[A+16>>2]|0;kv(A,68623)|0;c=a[a[A+12>>2]>>2]|0;t=a[c+4>>2]|0;l=a[c+8>>2]|0;a[n>>2]=a[c>>2];a[n+4>>2]=t;a[n+8>>2]=l;vv(A,68633,n);a[r>>2]=Vh(a[f+8>>2]|0)|0;vv(A,68668,r);a[i>>2]=U(a[A+168>>2]|0,a[A+164>>2]|0)|0;vv(A,68681,i);kv(A,68694)|0;kv(A,68704)|0;kv(A,68712)|0;kv(A,68720)|0;kv(A,68728)|0;kv(A,68736)|0;kv(A,68744)|0;kv(A,68748)|0;kv(A,68753)|0;k=e;return}function vG(A){A=A|0;kv(A,68604)|0;return}function EG(A){A=A|0;a[46716]=2;return}function CG(A){A=A|0;a[46716]=1;return}function IG(A){A=A|0;a[46716]=2;return}function ZG(A){A=A|0;a[46716]=0;return}function GG(A){A=A|0;a[46716]=2;return}function mG(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0.0,l=0.0,t=0,c=0,b=0,u=0,w=0.0,o=0.0,h=0;u=k;k=k+80|0;b=u;t=a[(a[A+16>>2]|0)+16>>2]|0;c=a[46716]|0;f=a[i+4>>2]|0;n=+s[A+352>>3]*+s[f+16>>3];l=a[A+360>>2]|0?1.5707963267948966:0.0;f=a[f+8>>2]|0;if(!f)f=-1;else f=a[f+20>>2]|0;h=r[i+48>>0]|0;o=+s[e>>3];w=+s[e+8>>3];i=VG(a[i>>2]|0)|0;a[b>>2]=4;a[b+4>>2]=h<<24>>24==108?0:h<<24>>24==114?2:1;a[b+8>>2]=t;a[b+12>>2]=c;a[b+16>>2]=0;a[b+20>>2]=f;s[b+24>>3]=n;s[b+32>>3]=l;a[b+40>>2]=4;s[b+48>>3]=0.0;s[b+56>>3]=0.0;a[b+64>>2]=~~(o+(o>=0.0?.5:-.5));a[b+68>>2]=~~(w+(w>=0.0?.5:-.5));a[b+72>>2]=i;vv(A,68549,b);k=u;return}function QG(A,e){A=A|0;e=e|0;var i=0,f=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;u=k;k=k+32|0;c=u;t=u+20|0;b=e+32|0;A:do{switch(a[b>>2]|0){case 5:{i=0;while(1){f=a[12724+(i<<2)>>2]|0;if((i|0)==8)break A;l=a[e>>2]|0;if((r[f>>0]|0)==(r[l>>0]|0)?(A1(f,l)|0)==0:0){s=10;break A}i=i+1|0}}case 1:{f=e+1|0;l=e+2|0;i=(FG(t,n[e>>0]|0,n[f>>0]|0,n[l>>0]|0)|0)+32|0;if(!(a[t>>2]|0))s=10;else{w=n[e>>0]|0;t=n[f>>0]|0;s=n[l>>0]|0;a[c>>2]=0;a[c+4>>2]=i;a[c+8>>2]=w;a[c+12>>2]=t;a[c+16>>2]=s;vv(A,68492,c);s=10}break}case 0:{i=0;s=10;break}default:gA(138394,68513,168,68532)}}while(0);if((s|0)==10)a[e>>2]=i;a[b>>2]=6;k=u;return}function LG(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0.0,l=0.0,t=0,c=0,b=0.0,u=0.0,w=0.0,o=0,h=0,d=0,B=0,g=0,v=0;r=k;k=k+112|0;f=r+8|0;v=r+104|0;g=r;c=a[A+16>>2]|0;B=~~+s[c+152>>3];d=a[c+16>>2]|0;h=a[c+56>>2]|0;o=a[46716]|0;DG(c,v,g);u=+s[e>>3];c=~~(u+(u>=0.0?.5:-.5));b=+s[e+8>>3];t=~~(b+(b>=0.0?.5:-.5));l=+s[e+16>>3];u=l-u;n=+s[e+24>>3];b=n-b;e=a[v>>2]|0;w=+s[g>>3];a[f>>2]=1;a[f+4>>2]=1;a[f+8>>2]=e;a[f+12>>2]=B;a[f+16>>2]=d;a[f+20>>2]=h;a[f+24>>2]=o;a[f+28>>2]=0;a[f+32>>2]=i|0?20:-1;s[f+40>>3]=w;a[f+48>>2]=0;s[f+56>>3]=0.0;a[f+64>>2]=c;a[f+68>>2]=t;a[f+72>>2]=~~(u+(u>=0.0?.5:-.5));a[f+76>>2]=~~(b+(b>=0.0?.5:-.5));a[f+80>>2]=c;a[f+84>>2]=t;a[f+88>>2]=~~(l+(l>=0.0?.5:-.5));a[f+92>>2]=~~(n+(n>=0.0?.5:-.5));vv(A,68427,f);k=r;return}function yG(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0.0,t=0,c=0,b=0,u=0,w=0,o=0,h=0;f=k;k=k+96|0;n=f+8|0;w=f+80|0;o=f;h=a[A+16>>2]|0;u=~~+s[h+152>>3];b=a[h+16>>2]|0;c=a[h+56>>2]|0;t=a[46716]|0;DG(h,w,o);w=a[w>>2]|0;l=+s[o>>3];a[n>>2]=2;a[n+4>>2]=3;a[n+8>>2]=w;a[n+12>>2]=u;a[n+16>>2]=b;a[n+20>>2]=c;a[n+24>>2]=t;a[n+28>>2]=0;a[n+32>>2]=r|0?20:-1;s[n+40>>3]=l;a[n+48>>2]=0;a[n+52>>2]=0;a[n+56>>2]=0;a[n+60>>2]=0;a[n+64>>2]=0;a[n+68>>2]=i+1;vv(A,68331,n);MG(A,e,i,1);k=f;return}function WG(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0.0,W=0.0,z=0;L=k;k=k+192|0;Q=L+176|0;G=L+168|0;m=L+104|0;Z=L+96|0;f=L+88|0;v=L+180|0;E=L+80|0;C=L+16|0;I=L;r=A+16|0;o=a[r>>2]|0;h=~~+s[o+152>>3];d=a[o+16>>2]|0;B=a[46716]|0;g=Q2((i*140|0)+140|0)|0;DG(o,v,E);if(!n){w=4;t=0;c=-1}else{w=5;t=a[(a[r>>2]|0)+56>>2]|0;c=20}W=+s[e>>3];u=C+48|0;s[u>>3]=W;y=+s[e+8>>3];s[C+56>>3]=y;a[f>>2]=~~(W+(W>=0.0?.5:-.5));a[f+4>>2]=~~(y+(y>=0.0?.5:-.5));b=I+8|0;r=g+(S4(g,81099,f)|0)|0;o=1;n=0;while(1){l=n+3|0;if((l|0)>=(i|0))break;a[C>>2]=a[u>>2];a[C+4>>2]=a[u+4>>2];a[C+8>>2]=a[u+8>>2];a[C+12>>2]=a[u+12>>2];f=1;while(1){if((f|0)==4){f=1;break}z=f+n|0;s[C+(f<<4)>>3]=+s[e+(z<<4)>>3];s[C+(f<<4)+8>>3]=+s[e+(z<<4)+8>>3];f=f+1|0}while(1){if((f|0)==7)break;QR(I,C,3,+(f|0)*.16666666666666666,0,0);y=+s[I>>3];W=+s[b>>3];a[Z>>2]=~~(y+(y>=0.0?.5:-.5));a[Z+4>>2]=~~(W+(W>=0.0?.5:-.5));f=f+1|0;r=r+(S4(r,81099,Z)|0)|0}o=o+6|0;n=l}f=a[v>>2]|0;W=+s[E>>3];a[m>>2]=3;a[m+4>>2]=w;a[m+8>>2]=f;a[m+12>>2]=h;a[m+16>>2]=d;a[m+20>>2]=t;a[m+24>>2]=B;a[m+28>>2]=0;a[m+32>>2]=c;s[m+40>>3]=W;a[m+48>>2]=0;a[m+52>>2]=0;a[m+56>>2]=0;a[m+60>>2]=o;vv(A,68382,m);a[G>>2]=g;vv(A,81106,G);L2(g);f=o+-1|0;r=0;while(1){if((r|0)>=(o|0))break;a[Q>>2]=((r|0)%(f|0)|0|0)!=0&1;vv(A,81111,Q);r=r+1|0}kv(A,153599)|0;k=L;return}function zG(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0.0,l=0,t=0,c=0,b=0,u=0,w=0;r=k;k=k+96|0;f=r+8|0;b=r+80|0;u=r;w=a[A+16>>2]|0;c=~~+s[w+152>>3];t=a[w+16>>2]|0;l=a[46716]|0;DG(w,b,u);b=a[b>>2]|0;n=+s[u>>3];a[f>>2]=2;a[f+4>>2]=1;a[f+8>>2]=b;a[f+12>>2]=c;a[f+16>>2]=t;a[f+20>>2]=0;a[f+24>>2]=l;a[f+28>>2]=0;a[f+32>>2]=0;s[f+40>>3]=n;a[f+48>>2]=0;a[f+52>>2]=0;a[f+56>>2]=0;a[f+60>>2]=0;a[f+64>>2]=0;a[f+68>>2]=i;vv(A,68331,f);MG(A,e,i,0);k=r;return}function YG(A,e){A=A|0;e=e|0;var i=0,r=0;i=k;k=k+16|0;r=i;a[r>>2]=e;vv(A,68325,r);k=i;return}function DG(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0;switch(a[A+144>>2]|0){case 1:{r=10.0;A=1;break}case 2:{r=10.0;A=2;break}default:{r=0.0;A=0}}a[e>>2]=A;s[i>>3]=r;return}function MG(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0.0,b=0.0;t=k;k=k+16|0;l=t+8|0;n=t;f=0;while(1){if((f|0)>=(i|0))break;b=+s[e+(f<<4)>>3];c=+s[e+(f<<4)+8>>3];a[n>>2]=~~(b+(b>=0.0?.5:-.5));a[n+4>>2]=~~(c+(c>=0.0?.5:-.5));vv(A,81099,n);f=f+1|0}if(r|0){c=+s[e>>3];b=+s[e+8>>3];a[l>>2]=~~(c+(c>=0.0?.5:-.5));a[l+4>>2]=~~(b+(b>=0.0?.5:-.5));vv(A,81099,l)}kv(A,153599)|0;k=t;return}function FG(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;a[A>>2]=0;s=a[46717]|0;l=195075;n=0;t=-1;while(1){if((n|0)>=(s|0)){b=6;break}u=(f[192216+(n<<1)>>1]|0)-e|0;w=(f[192728+(n<<1)>>1]|0)-i|0;c=(f[193240+(n<<1)>>1]|0)-r|0;c=(U(w,w)|0)+(U(u,u)|0)+(U(c,c)|0)|0;if((c|0)<(l|0))if(!c)break;else{l=c;t=n}n=n+1|0}if((b|0)==6){a[46717]=s+1;if((s|0)==256)n=t;else{f[192216+(n<<1)>>1]=e;f[192728+(n<<1)>>1]=i;f[193240+(n<<1)>>1]=r;a[A>>2]=1}}return n|0}function VG(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0;t=k;k=k+16|0;l=t;e=a[46718]|0;if(!e){a[46719]=64;e=Q2(64)|0;a[46718]=e;i=0}else i=0;while(1){n=A+1|0;f=r[A>>0]|0;if(!(f<<24>>24))break;A=a[46719]|0;if((i|0)>(A+-8|0)){e=A<<1;a[46719]=e;e=W2(a[46718]|0,e)|0;a[46718]=e;e=e+i|0}if(f<<24>>24<=-1){r[e>>0]=92;a[l>>2]=f&255;S4(e+1|0,81224,l)|0;A=n;e=e+4|0;i=i+4|0;continue}if(f<<24>>24==92){r[e>>0]=92;i=i+1|0;e=e+1|0}r[e>>0]=f;A=n;e=e+1|0;i=i+1|0}r[e>>0]=0;k=t;return a[46718]|0}function JG(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;i=k;k=k+16|0;e=i;kv(A,73332)|0;if((a[A+64>>2]|0)==2)kv(A,73347)|0;else kv(A,153599)|0;n=a[a[A+12>>2]>>2]|0;f=a[n+4>>2]|0;r=a[n+8>>2]|0;a[e>>2]=a[n>>2];a[e+4>>2]=f;a[e+8>>2]=r;vv(A,73358,e);k=i;return}function pG(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;n=k;k=k+32|0;f=n+8|0;r=n;kv(A,73286)|0;i=A+64|0;e=A+12|0;if((a[i>>2]|0)!=2){a[r>>2]=a[(a[e>>2]|0)+28>>2];vv(A,73297,r)}if((a[(a[e>>2]|0)+20>>2]|0)==0?(a[i>>2]|0)!=2:0){e=a[A+476>>2]|0;i=a[A+480>>2]|0;r=a[A+484>>2]|0;a[f>>2]=a[A+472>>2];a[f+4>>2]=e;a[f+8>>2]=i;a[f+12>>2]=r;vv(A,69666,f)}kv(A,73312)|0;kv(A,73325)|0;k=n;return}function NG(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0;s=k;k=k+32|0;c=s+24|0;f=s+8|0;t=s;n=a[A+16>>2]|0;r[193768]=0;i=A+12|0;l=n+8|0;if(!(a[(a[i>>2]|0)+28>>2]|0)){a[t>>2]=Vh(a[l>>2]|0)|0;vv(A,69597,t);e=A+64|0;if((a[e>>2]|0)==2)kv(A,69630)|0;else kv(A,69612)|0;do{if(!(a[(a[i>>2]|0)+20>>2]|0))if((a[e>>2]|0)==2){u=a[A+460>>2]|0;b=a[A+464>>2]|0;e=a[A+468>>2]|0;a[f>>2]=a[A+456>>2];a[f+4>>2]=u;a[f+8>>2]=b;a[f+12>>2]=e;vv(A,69666,f);break}else{kv(A,69642)|0;break}}while(0);kv(A,69696)|0;XJ(A,a[(a[i>>2]|0)+24>>2]|0,13e3);UJ(A);e=a[(a[i>>2]|0)+20>>2]|0;if(e|0){a[t>>2]=a[e>>2];a[t+4>>2]=0;XJ(A,0,t)}}a[46720]=(r[(a[(a[l>>2]|0)+16>>2]|0)+115>>0]|0)==1?1:-1;if(!(r[193768]|0)){kv(A,69716)|0;r[193768]=1}e=a[n+208>>2]|0;if(e|0){a[c>>2]=xJ(e,a[46720]|0)|0;vv(A,69729,c)}k=s;return}function RG(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0;e=k;k=k+16|0;f=e;a[f>>2]=i;a[f+4>>2]=r;vv(A,69581,f);k=e;return}function XG(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0.0,E=0.0,C=0.0;B=k;k=k+144|0;d=B+128|0;h=B+112|0;o=B+72|0;w=B+56|0;u=B+40|0;b=B+32|0;r=B+24|0;e=B+8|0;i=B;f=a[A+456>>2]|0;t=a[A+460>>2]|0;n=a[A+464>>2]|0;l=a[A+468>>2]|0;c=A+12|0;g=(a[(a[c>>2]|0)+28>>2]|0)+1|0;a[i>>2]=g;a[i+4>>2]=g;vv(A,69208,i);if(!(a[(a[c>>2]|0)+20>>2]|0)){a[e>>2]=f;a[e+4>>2]=t;a[e+8>>2]=n;a[e+12>>2]=l;vv(A,69225,e)}i=A+360|0;a[r>>2]=a[i>>2]|0?69259:69269;vv(A,69278,r);e=A+64|0;if((a[e>>2]|0)==1){a[b>>2]=n;a[b+4>>2]=l;vv(A,69303,b)}b=a[A+200>>2]|0;g=a[A+204>>2]|0;a[u>>2]=a[A+196>>2];a[u+4>>2]=b;a[u+8>>2]=g;vv(A,69342,u);if(!(a[(a[c>>2]|0)+20>>2]|0)){a[w>>2]=f;a[w+4>>2]=t;a[w+8>>2]=n-f;a[w+12>>2]=l-t;vv(A,69362,w)}C=+s[A+496>>3];g=a[i>>2]|0;E=+s[A+504>>3];v=+s[A+512>>3];s[o>>3]=+s[A+488>>3];s[o+8>>3]=C;a[o+16>>2]=g;s[o+24>>3]=E;s[o+32>>3]=v;vv(A,69402,o);if((a[e>>2]|0)==1){if((n|0)>14399|(l|0)>14399){g=a[(a[c>>2]|0)+16>>2]|0;a[h>>2]=n;a[h+4>>2]=l;a[h+8>>2]=14400;V5[g&63](69445,h)}a[d>>2]=f;a[d+4>>2]=t;a[d+8>>2]=n;a[d+12>>2]=l;vv(A,69540,d)}k=B;return}function HG(A){A=A|0;var e=0,i=0,r=0;r=k;k=k+16|0;i=r;e=A+12|0;if(a[(a[e>>2]|0)+20>>2]|0){kv(A,69132)|0;XJ(A,0,(a[(a[e>>2]|0)+20>>2]|0)+4|0)}kv(A,69149)|0;kv(A,69176)|0;a[i>>2]=a[(a[e>>2]|0)+28>>2];vv(A,69191,i);k=r;return}function UG(A){A=A|0;var e=0,i=0;e=k;k=k+16|0;i=e;a[i>>2]=Vh(a[(a[A+16>>2]|0)+8>>2]|0)|0;vv(A,69125,i);kv(A,69118)|0;k=e;return}function xG(A){A=A|0;kv(A,84552)|0;return}function TG(A){A=A|0;kv(A,69118)|0;return}function jG(A){A=A|0;kv(A,84552)|0;return}function PG(A){A=A|0;kv(A,69118)|0;return}function SG(A){A=A|0;kv(A,84552)|0;return}function OG(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0;r=k;k=k+16|0;i=r;if(e|0?(n=(a[A+16>>2]|0)+272|0,a[n>>2]|0):0){kv(A,69014)|0;Zv(A,a[n>>2]|0,2);kv(A,69025)|0;a[i>>2]=xJ(e,a[46720]|0)|0;vv(A,69029,i)}k=r;return}function KG(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0.0,l=0,t=0,c=0,b=0,u=0;b=k;k=k+32|0;t=b+8|0;c=b;f=a[A+16>>2]|0;if(!(+s[f+40>>3]<.5)){rm(A,f+16|0);l=i+4|0;Ev(A,+s[(a[l>>2]|0)+16>>3]);a[t>>2]=a[a[l>>2]>>2];vv(A,68973,t);l=xJ(a[i>>2]|0,a[46720]|0)|0;switch(r[i+48>>0]|0){case 114:{u=i+32|0;f=u;n=+s[u>>3];break}case 108:{f=i+32|0;n=0.0;break}default:{u=i+32|0;f=u;n=+s[u>>3]*.5}}s[e>>3]=+s[e>>3]-n;u=e+8|0;s[u>>3]=+s[u>>3]+ +s[i+24>>3];a[t>>2]=a[e>>2];a[t+4>>2]=a[e+4>>2];a[t+8>>2]=a[e+8>>2];a[t+12>>2]=a[e+12>>2];Iv(A,t);kv(A,68988)|0;Ev(A,+s[f>>3]);a[c>>2]=l;vv(A,68997,c)}k=b;return}function _G(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;n=k;k=k+32|0;f=n;a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];s[f+16>>3]=+s[e+16>>3]-+s[e>>3];s[f+24>>3]=+s[e+24>>3]-+s[e+8>>3];e=A+16|0;if(i|0?(r=a[e>>2]|0,+s[r+80>>3]>.5):0){rm(A,r+56|0);Zv(A,f,2);kv(A,68931)|0}if(+s[(a[e>>2]|0)+40>>3]>.5){fm(A);rm(A,(a[e>>2]|0)+16|0);Zv(A,f,2);kv(A,68951)|0}k=n;return}function qG(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0;t=k;k=k+16|0;l=t;n=A+16|0;if(r|0?(f=a[n>>2]|0,+s[f+80>>3]>.5):0){rm(A,f+56|0);kv(A,68852)|0;a[l>>2]=a[e>>2];a[l+4>>2]=a[e+4>>2];a[l+8>>2]=a[e+8>>2];a[l+12>>2]=a[e+12>>2];Iv(A,l);kv(A,68861)|0;r=1;while(1){if((r|0)>=(i|0))break;f=e+(r<<4)|0;a[l>>2]=a[f>>2];a[l+4>>2]=a[f+4>>2];a[l+8>>2]=a[f+8>>2];a[l+12>>2]=a[f+12>>2];Iv(A,l);kv(A,68870)|0;r=r+1|0}kv(A,68897)|0}if(+s[(a[n>>2]|0)+40>>3]>.5){fm(A);rm(A,(a[n>>2]|0)+16|0);kv(A,68852)|0;a[l>>2]=a[e>>2];a[l+4>>2]=a[e+4>>2];a[l+8>>2]=a[e+8>>2];a[l+12>>2]=a[e+12>>2];Iv(A,l);kv(A,68861)|0;r=1;while(1){if((r|0)>=(i|0))break;n=e+(r<<4)|0;a[l>>2]=a[n>>2];a[l+4>>2]=a[n+4>>2];a[l+8>>2]=a[n+8>>2];a[l+12>>2]=a[n+12>>2];Iv(A,l);kv(A,68870)|0;r=r+1|0}kv(A,68913)|0}k=t;return}function $G(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0;c=k;k=k+16|0;f=c;l=A+16|0;if(n|0?(t=a[l>>2]|0,+s[t+80>>3]>.5):0){rm(A,t+56|0);kv(A,68852)|0;a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];Iv(A,f);kv(A,68861)|0;r=1;while(1){if((r|0)>=(i|0))break;Zv(A,e+(r<<4)|0,3);kv(A,68887)|0;r=r+3|0}kv(A,68897)|0}if(+s[(a[l>>2]|0)+40>>3]>.5){fm(A);rm(A,(a[l>>2]|0)+16|0);kv(A,68852)|0;a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];Iv(A,f);kv(A,68861)|0;r=1;while(1){if((r|0)>=(i|0))break;Zv(A,e+(r<<4)|0,3);kv(A,68887)|0;r=r+3|0}kv(A,68879)|0}k=c;return}function Am(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0;n=k;k=k+16|0;f=n;r=A+16|0;if(+s[(a[r>>2]|0)+40>>3]>.5){fm(A);rm(A,(a[r>>2]|0)+16|0);kv(A,68852)|0;a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];Iv(A,f);kv(A,68861)|0;r=1;while(1){if((r|0)>=(i|0))break;l=e+(r<<4)|0;a[f>>2]=a[l>>2];a[f+4>>2]=a[l+4>>2];a[f+8>>2]=a[l+8>>2];a[f+12>>2]=a[l+12>>2];Iv(A,f);kv(A,68870)|0;r=r+1|0}kv(A,68879)|0}k=n;return}function em(A,e){A=A|0;e=e|0;kv(A,68849)|0;kv(A,e)|0;kv(A,153599)|0;return}function im(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,b=0,u=0;u=k;k=k+32|0;n=u+16|0;b=u+8|0;c=u;l=A+16|0;if(f|0?(t=a[l>>2]|0,+s[t+80>>3]>.5):0){rm(A,t+56|0);kv(A,84447)|0;Zv(A,i,r);kv(A,102604)|0;a[n>>2]=a[i>>2];a[n+4>>2]=a[i+4>>2];a[n+8>>2]=a[i+8>>2];a[n+12>>2]=a[i+12>>2];Iv(A,n);a[c>>2]=r;a[c+4>>2]=e;vv(A,68766,c)}if(+s[(a[l>>2]|0)+40>>3]>.5){fm(A);rm(A,(a[l>>2]|0)+16|0);kv(A,84447)|0;Zv(A,i,r);kv(A,102604)|0;a[n>>2]=a[i>>2];a[n+4>>2]=a[i+4>>2];a[n+8>>2]=a[i+8>>2];a[n+12>>2]=a[i+12>>2];Iv(A,n);a[b>>2]=r;a[b+4>>2]=e;vv(A,68782,b)}k=u;return}function rm(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0.0,l=0.0;f=k;k=k+32|0;r=f;if(e|0){switch(a[(a[A+16>>2]|0)+4>>2]|0){case 1:case 0:{i=111494;break}case 2:{i=111481;break}case 3:{i=111450;break}default:i=68818}l=+s[e+8>>3];n=+s[e+16>>3];s[r>>3]=+s[e>>3];s[r+8>>3]=l;s[r+16>>3]=n;a[r+24>>2]=i;vv(A,68825,r)}k=f;return}function fm(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,b=0;b=k;k=k+16|0;c=b+8|0;t=b;n=A+16|0;l=a[n>>2]|0;e=a[l+160>>2]|0;Ev(A,+s[l+152>>3]);kv(A,68799)|0;while(1){if(!e)break;l=e+4|0;f=a[e>>2]|0;if(!f)break;if(!(A1(f,111088)|0)){e=l;continue}else i=f;while(1){e=i+1|0;if(!(r[i>>0]|0))break;else i=e}A:while(1){if(!(r[e>>0]|0))break;a[t>>2]=e;vv(A,68814,t);while(1){i=e+1|0;if(!(r[e>>0]|0)){e=i;continue A}else e=i}}if(!(A1(f,134335)|0))s[(a[n>>2]|0)+152>>3]=0.0;a[c>>2]=f;vv(A,96670,c);e=l}k=b;return}function am(A){A=A|0;var e=0;kv(A,74838)|0;e=Ho(a[(a[A>>2]|0)+168>>2]|0,74894)|0;if(e|0?r[e>>0]|0:0){kv(A,74905)|0;kv(A,e)|0;kv(A,74929)|0}kv(A,74950)|0;kv(A,74998)|0;kv(A,75052)|0;e=A+12|0;kv(A,SF(a[a[a[e>>2]>>2]>>2]|0)|0)|0;kv(A,78181)|0;kv(A,SF(a[(a[a[e>>2]>>2]|0)+4>>2]|0)|0)|0;kv(A,78191)|0;kv(A,SF(a[(a[a[e>>2]>>2]|0)+8>>2]|0)|0)|0;kv(A,75434)|0;kv(A,75458)|0;return}function nm(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0.0,c=0.0,b=0.0;l=k;k=k+48|0;n=l+16|0;f=l+8|0;i=l;e=a[A+16>>2]|0;kv(A,74673)|0;e=e+8|0;if(r[(Vh(a[e>>2]|0)|0)>>0]|0){kv(A,75397)|0;kv(A,SF(Vh(a[e>>2]|0)|0)|0)|0}a[i>>2]=U(a[A+168>>2]|0,a[A+164>>2]|0)|0;vv(A,74678,i);i=a[A+452>>2]|0;a[f>>2]=a[A+448>>2];a[f+4>>2]=i;vv(A,74694,f);b=+s[A+392>>3];c=+s[A+400>>3];t=+s[A+408>>3];s[n>>3]=+s[A+384>>3];s[n+8>>3]=b;s[n+16>>3]=c;s[n+24>>3]=t;vv(A,74727,n);kv(A,74758)|0;kv(A,74794)|0;kv(A,76388)|0;k=l;return}function lm(A){A=A|0;kv(A,74665)|0;return}function tm(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;zm(A,e,0,101510,a[(a[A+16>>2]|0)+8>>2]|0);kv(A,76388)|0;return}function cm(A){A=A|0;kv(A,74513)|0;return}function sm(A){A=A|0;var e=0,i=0,f=0,n=0;i=k;k=k+16|0;f=i;n=a[A+16>>2]|0;e=n+8|0;zm(A,a[n+212>>2]|0,0,111494,a[e>>2]|0);kv(A,74617)|0;Ev(A,+s[A+488>>3]);kv(A,102604)|0;Ev(A,+s[A+496>>3]);a[f>>2]=0-(a[A+360>>2]|0);vv(A,74636,f);Ev(A,+s[A+504>>3]);kv(A,102604)|0;Ev(A,-+s[A+512>>3]);kv(A,74660)|0;if(r[(Vh(a[e>>2]|0)|0)>>0]|0){kv(A,74569)|0;kv(A,SF(Vh(a[e>>2]|0)|0)|0)|0;kv(A,74577)|0}k=i;return}function bm(A){A=A|0;kv(A,74513)|0;return}function um(A){A=A|0;var e=0,i=0;i=a[A+16>>2]|0;e=i+8|0;zm(A,a[i+212>>2]|0,0,108006,a[e>>2]|0);kv(A,76388)|0;kv(A,74569)|0;kv(A,SF(Vh(a[e>>2]|0)|0)|0)|0;kv(A,74577)|0;return}function wm(A){A=A|0;kv(A,74513)|0;return}function km(A){A=A|0;var e=0,i=0,r=0;i=a[A+16>>2]|0;e=a[A+160>>2]|0;if((e|0)>1)e=a[(a[(a[A>>2]|0)+308>>2]|0)+(e<<2)>>2]|0;else e=0;r=i+8|0;zm(A,a[i+212>>2]|0,e,111481,a[r>>2]|0);kv(A,76388)|0;kv(A,74569)|0;kv(A,SF(Vh(a[r>>2]|0)|0)|0)|0;kv(A,74577)|0;return}function om(A){A=A|0;kv(A,74513)|0;return}function hm(A){A=A|0;var e=0,i=0;i=a[A+16>>2]|0;e=i+8|0;zm(A,a[i+212>>2]|0,0,111450,a[e>>2]|0);kv(A,76388)|0;kv(A,74569)|0;e=PF(102095,a[e>>2]|0)|0;kv(A,SF(e)|0)|0;L2(e);kv(A,74577)|0;return}function dm(A){A=A|0;kv(A,74513)|0;return}function Bm(A,e,i,f,a){A=A|0;e=e|0;i=i|0;f=f|0;a=a|0;kv(A,74519)|0;if(a|0){kv(A,74522)|0;kv(A,SF(a)|0)|0;kv(A,98744)|0}kv(A,74412)|0;kv(A,76349)|0;if(e|0?r[e>>0]|0:0){kv(A,74530)|0;kv(A,e)|0;kv(A,98744)|0}if(i|0?r[i>>0]|0:0){kv(A,74544)|0;kv(A,OF(i,1)|0)|0;kv(A,98744)|0}if(f|0?r[f>>0]|0:0){kv(A,74559)|0;kv(A,SF(f)|0)|0;kv(A,98744)|0}kv(A,76388)|0;return}function gm(A){A=A|0;kv(A,76343)|0;kv(A,74513)|0;return}function vm(A,e,i){A=A|0;e=e|0;i=i|0;var l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0.0,D=0,M=0,F=0,V=0,J=0,p=0;p=k;k=k+176|0;J=p+160|0;V=p+152|0;z=p+136|0;F=p+128|0;W=p+120|0;y=p+112|0;L=p+104|0;Q=p+96|0;m=p+88|0;Z=p+80|0;C=p+72|0;E=p+64|0;v=p+56|0;g=p+48|0;l=p+40|0;h=p+32|0;B=p+24|0;d=p+16|0;o=p+8|0;w=p;M=a[A+16>>2]|0;kv(A,74044)|0;switch(r[i+48>>0]|0){case 108:{kv(A,74050)|0;break}case 114:{kv(A,74071)|0;break}default:kv(A,74090)|0}D=e+8|0;Y=+s[D>>3]+ +s[i+24>>3];s[D>>3]=Y;D=M+260|0;if(!(f[D>>1]&512)){kv(A,74112)|0;Ev(A,+s[e>>3]);kv(A,74117)|0;Ev(A,-Y);kv(A,98744)|0}I=i+4|0;e=a[I>>2]|0;u=a[e+8>>2]|0;if(u){switch(a[(a[(a[(a[A>>2]|0)+168>>2]|0)+16>>2]|0)+244>>2]|0){case 1:{b=u;e=u+16|0;l=u+8|0;break}case 2:{b=u+24|0;e=u+32|0;l=u+28|0;break}default:{b=u+4|0;e=u+16|0;l=u+8|0}}t=a[e>>2]|0;e=a[l>>2]|0;c=a[u+12>>2]|0;a[w>>2]=a[b>>2];vv(A,74123,w);l=a[u+24>>2]|0;if(l|0){a[o>>2]=l;vv(A,74140,o)}kv(A,98744)|0;if(e|0){a[d>>2]=e;vv(A,74144,d)}if(c|0){a[B>>2]=c;vv(A,74162,B)}if(!t)t=0;else{a[h>>2]=t;vv(A,74181,h)}}else{a[l>>2]=a[e>>2];vv(A,74198,l);t=0;e=0}l=a[I>>2]|0;if(l|0?(G=a[l+24>>2]|0,G&127|0):0){if(!((e|0)!=0|(G&1|0)==0))vv(A,74216,g);if(!((t|0)!=0|(G&2|0)==0))vv(A,74236,v);if(G&100|0){vv(A,74257,E);if(!(G&4))e=0;else{vv(A,105986,C);e=1}if(G&64){a[Z>>2]=e|0?100999:195059;vv(A,74276,Z);e=1}if(G&32|0){a[m>>2]=e|0?100999:195059;vv(A,74287,m)}vv(A,98744,Q)}if(G&8|0)vv(A,74302,L);if(G&16|0)vv(A,74326,y)}s[W>>3]=+s[(a[I>>2]|0)+16>>3];vv(A,74348,W);e=M+16|0;switch(a[M+48>>2]|0){case 5:{e=a[e>>2]|0;if(p1(e,137314)|0){a[F>>2]=e;vv(A,74366,F)}break}case 1:{W=n[e+1>>0]|0;F=n[e+2>>0]|0;a[z>>2]=n[e>>0];a[z+4>>2]=W;a[z+8>>2]=F;vv(A,74377,z);break}default:gA(138394,73558,486,74399)}kv(A,74412)|0;if(f[D>>1]&512){a[V>>2]=SF(a[M+212>>2]|0)|0;vv(A,74414,V);kv(A,74463)|0;Ev(A,-Y);kv(A,74481)|0}kv(A,OF(a[i>>2]|0,1)|0)|0;if(f[D>>1]&512)vv(A,74484,J);kv(A,74504)|0;k=p;return}function Em(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;switch(i|0){case 2:{r=Lm(A,e,2)|0;break}case 3:{r=ym(A)|0;break}default:r=0}kv(A,74008)|0;mm(A,i,r);kv(A,74017)|0;Ev(A,+s[e>>3]);kv(A,74023)|0;i=e+8|0;Ev(A,-+s[i>>3]);kv(A,74030)|0;Ev(A,+s[e+16>>3]-+s[e>>3]);kv(A,74037)|0;Ev(A,+s[e+24>>3]-+s[i>>3]);kv(A,73424)|0;return}function Cm(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0;switch(r|0){case 2:{f=Lm(A,e,i)|0;break}case 3:{f=ym(A)|0;break}default:f=0}kv(A,73999)|0;mm(A,r,f);kv(A,73414)|0;f=0;while(1){if((f|0)>=(i|0))break;Ev(A,+s[e+(f<<4)>>3]);kv(A,100999)|0;Ev(A,-+s[e+(f<<4)+8>>3]);kv(A,102604)|0;f=f+1|0}Ev(A,+s[e>>3]);kv(A,100999)|0;Ev(A,-+s[e+8>>3]);kv(A,73424)|0;return}function Im(A,e,i,r,n,l){A=A|0;e=e|0;i=i|0;r=r|0;n=n|0;l=l|0;n=a[A+16>>2]|0;switch(l|0){case 2:{r=Lm(A,e,i)|0;break}case 3:{r=ym(A)|0;break}default:r=0}kv(A,73594)|0;if(f[n+260>>1]&512){kv(A,73600)|0;kv(A,SF(a[n+212>>2]|0)|0)|0;kv(A,73606)|0}mm(A,l,r);kv(A,73611)|0;Wm(A,e,i);kv(A,73424)|0;return}function Zm(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;kv(A,73404)|0;mm(A,0,0);kv(A,73414)|0;r=0;while(1){if((r|0)>=(i|0))break;Ev(A,+s[e+(r<<4)>>3]);kv(A,100999)|0;Ev(A,-+s[e+(r<<4)+8>>3]);kv(A,102604)|0;r=r+1|0}kv(A,73424)|0;return}function Gm(A,e){A=A|0;e=e|0;kv(A,73398)|0;kv(A,SF(e)|0)|0;kv(A,75458)|0;return}function mm(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0;h=k;k=k+96|0;c=h+48|0;o=h+40|0;u=h+32|0;w=h+24|0;t=h+16|0;n=h+8|0;f=h;b=a[A+16>>2]|0;kv(A,73429)|0;A:do{switch(e|0){case 2:{a[f>>2]=i;vv(A,73437,f);break}case 3:{a[n>>2]=i;vv(A,73448,n);break}case 0:{kv(A,135709)|0;break}default:{e=b+56|0;f=c;n=e;l=f+40|0;do{a[f>>2]=a[n>>2];f=f+4|0;n=n+4|0}while((f|0)<(l|0));Qm(A,c);if((a[b+88>>2]|0)==1){e=r[e+3>>0]|0;switch(e<<24>>24){case-1:case 0:break A;default:{}}s[t>>3]=+(e&255)*.00392156862745098;vv(A,73459,t)}}}}while(0);kv(A,73478)|0;i=b+16|0;f=c;n=i;l=f+40|0;do{a[f>>2]=a[n>>2];f=f+4|0;n=n+4|0}while((f|0)<(l|0));Qm(A,c);e=b+152|0;if(+s[e>>3]!=1.0){kv(A,73489)|0;Ev(A,+s[e>>3])}switch(a[b+144>>2]|0){case 1:{a[w>>2]=73529;vv(A,73506,w);break}case 2:{a[u>>2]=73533;vv(A,73506,u);break}default:{}}A:do{if((a[b+48>>2]|0)==1){e=r[i+3>>0]|0;switch(e<<24>>24){case-1:case 0:break A;default:{}}s[o>>3]=+(e&255)*.00392156862745098;vv(A,73537,o)}}while(0);kv(A,98744)|0;k=h;return}function Qm(A,e){A=A|0;e=e|0;var i=0,f=0,l=0,t=0;f=k;k=k+16|0;i=f;A:do{switch(a[e+32>>2]|0){case 5:{kv(A,a[e>>2]|0)|0;break}case 1:if(!(r[e+3>>0]|0)){kv(A,137379)|0;break A}else{t=n[e+1>>0]|0;l=n[e+2>>0]|0;a[i>>2]=n[e>>0];a[i+4>>2]=t;a[i+8>>2]=l;vv(A,75714,i);break A}default:gA(138394,73558,117,73578)}}while(0);k=f;return}function Lm(A,e,i){A=A|0;e=e|0;i=i|0;var f=0.0,n=0,l=0,t=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0;g=k;k=k+112|0;w=g+64|0;d=g+56|0;u=g+48|0;b=g+40|0;n=g+32|0;t=g;h=a[46722]|0;a[46722]=h+1;o=a[A+16>>2]|0;f=+(a[o+136>>2]|0)*.017453292519943295;a[t>>2]=0;a[t+4>>2]=0;a[t+8>>2]=0;a[t+12>>2]=0;a[t+16>>2]=0;a[t+20>>2]=0;a[t+24>>2]=0;a[t+28>>2]=0;YX(e,t,i,f,0);a[w>>2]=h;vv(A,73831,w);kv(A,73896)|0;Ev(A,+s[t>>3]);kv(A,73901)|0;Ev(A,+s[t+8>>3]);kv(A,73908)|0;Ev(A,+s[t+16>>3]);kv(A,73915)|0;Ev(A,+s[t+24>>3]);kv(A,73922)|0;t=o+140|0;f=+c[t>>2];if(f>0.0){s[n>>3]=f+-.001;vv(A,73927,n)}else kv(A,73703)|0;e=o+56|0;i=w;n=e;l=i+40|0;do{a[i>>2]=a[n>>2];i=i+4|0;n=n+4|0}while((i|0)<(l|0));Qm(A,w);kv(A,73739)|0;A:do{if((a[o+88>>2]|0)==1){e=r[e+3>>0]|0;switch(e<<24>>24){case-1:case 0:{B=7;break A}default:{}}s[b>>3]=+(e&255)*.00392156862745098;vv(A,99612,b)}else B=7}while(0);if((B|0)==7)kv(A,73754)|0;kv(A,73757)|0;f=+c[t>>2];if(f>0.0){s[u>>3]=f;vv(A,73927,u)}else kv(A,73763)|0;e=o+96|0;i=w;n=e;l=i+40|0;do{a[i>>2]=a[n>>2];i=i+4|0;n=n+4|0}while((i|0)<(l|0));Qm(A,w);kv(A,73739)|0;A:do{if((a[o+128>>2]|0)==1){e=r[e+3>>0]|0;switch(e<<24>>24){case-1:case 0:{B=14;break A}default:{}}s[d>>3]=+(e&255)*.00392156862745098;vv(A,99612,d)}else B=14}while(0);if((B|0)==14)kv(A,73754)|0;kv(A,73967)|0;k=g;return h|0}function ym(A){A=A|0;var e=0,i=0.0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0.0;h=k;k=k+64|0;c=h+16|0;w=h+8|0;t=h;u=a[46721]|0;a[46721]=u+1;b=a[A+16>>2]|0;d=+(a[b+136>>2]|0)*.017453292519943295;i=d;if(d==0.0){f=50;e=50}else{f=~~((+D(+i)+1.0)*50.0);e=~~((1.0-+M(+i))*50.0)}a[c>>2]=u;a[c+4>>2]=f;a[c+8>>2]=e;vv(A,73619,c);kv(A,73703)|0;e=b+56|0;f=c;n=e;l=f+40|0;do{a[f>>2]=a[n>>2];f=f+4|0;n=n+4|0}while((f|0)<(l|0));Qm(A,c);kv(A,73739)|0;A:do{if((a[b+88>>2]|0)==1){e=r[e+3>>0]|0;switch(e<<24>>24){case-1:case 0:{o=6;break A}default:{}}s[t>>3]=+(e&255)*.00392156862745098;vv(A,99612,t)}else o=6}while(0);if((o|0)==6)kv(A,73754)|0;kv(A,73757)|0;kv(A,73763)|0;e=b+96|0;f=c;n=e;l=f+40|0;do{a[f>>2]=a[n>>2];f=f+4|0;n=n+4|0}while((f|0)<(l|0));Qm(A,c);kv(A,73739)|0;A:do{if((a[b+128>>2]|0)==1){e=r[e+3>>0]|0;switch(e<<24>>24){case-1:case 0:{o=10;break A}default:{}}s[w>>3]=+(e&255)*.00392156862745098;vv(A,99612,w)}else o=10}while(0);if((o|0)==10)kv(A,73754)|0;kv(A,73799)|0;k=h;return u|0}function Wm(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0;l=k;k=k+16|0;n=l;r=77;f=0;while(1){if((f|0)>=(i|0))break;a[n>>2]=r;vv(A,73616,n);Ev(A,+s[e+(f<<4)>>3]);kv(A,100999)|0;Ev(A,-+s[e+(f<<4)+8>>3]);r=(f|0)==0?67:32;f=f+1|0}k=l;return}function zm(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0,t=0,c=0;c=k;k=k+16|0;t=c+8|0;l=c;kv(A,74587)|0;kv(A,SF(e)|0)|0;if(i|0){a[l>>2]=SF(i)|0;vv(A,74595,l)}a[t>>2]=f;vv(A,74599,t);e=Ho(n,74611)|0;if(e|0?r[e>>0]|0:0){kv(A,102604)|0;kv(A,SF(e)|0)|0}kv(A,98744)|0;k=c;return}function Ym(A){A=A|0;var e=0;kv(A,75418)|0;e=A+12|0;kv(A,Hm(a[a[a[e>>2]>>2]>>2]|0)|0)|0;kv(A,78181)|0;kv(A,Hm(a[(a[a[e>>2]>>2]|0)+4>>2]|0)|0)|0;kv(A,78191)|0;kv(A,Hm(a[(a[a[e>>2]>>2]|0)+8>>2]|0)|0)|0;kv(A,75434)|0;return}function Dm(A){A=A|0;var e=0,i=0,f=0;f=k;k=k+16|0;i=f;e=a[A+16>>2]|0;kv(A,75395)|0;e=e+8|0;if(r[(Vh(a[e>>2]|0)|0)>>0]|0){kv(A,75397)|0;kv(A,Hm(Vh(a[e>>2]|0)|0)|0)|0}a[i>>2]=U(a[A+168>>2]|0,a[A+164>>2]|0)|0;vv(A,75406,i);a[46723]=0;k=f;return}function Mm(A){A=A|0;a[46723]=1;return}function Fm(A){A=A|0;a[46723]=-1;return}function Vm(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,b=0,u=0;u=k;k=k+48|0;l=u+8|0;b=u;f=a[A+16>>2]|0;if(a[f+144>>2]|0?(c=i+4|0,t=~~(+s[A+352>>3]*+s[(a[c>>2]|0)+16>>3]),t|0):0){Um(A);kv(A,75334)|0;n=e+8|0;s[n>>3]=+s[n>>3]-+(t|0)*.55;a[l>>2]=a[e>>2];a[l+4>>2]=a[e+4>>2];a[l+8>>2]=a[e+8>>2];a[l+12>>2]=a[e+12>>2];Iv(A,l);kv(A,75348)|0;kv(A,a[i>>2]|0)|0;kv(A,75357)|0;kv(A,75155)|0;n=l;e=f+16|0;f=n+40|0;do{a[n>>2]=a[e>>2];n=n+4|0;e=e+4|0}while((n|0)<(f|0));xm(A,l);kv(A,75359)|0;l=a[c>>2]|0;c=a[l+8>>2]|0;c=a[((c|0)==0?l:c+4|0)>>2]|0;kv(A,98744)|0;kv(A,c)|0;kv(A,98744)|0;a[b>>2]=t;vv(A,75368,b);switch(r[i+48>>0]|0){case 108:{kv(A,75373)|0;break}case 114:{kv(A,75384)|0;break}default:{}}Tm(A);kv(A,153599)|0}k=u;return}function Jm(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0.0,b=0.0,u=0.0;t=k;k=k+48|0;f=t;n=a[A+16>>2]|0;l=n+144|0;if(a[l>>2]|0){u=+s[e>>3];b=+s[e+24>>3];r=e+8|0;c=+s[r>>3];s[e>>3]=u-+s[e+16>>3]+u;s[r>>3]=c-b+c;Um(A);kv(A,75320)|0;Zv(A,e,2);kv(A,75155)|0;do{if(!i)if(!(a[46723]|0)){kv(A,97309)|0;break}else{kv(A,137198)|0;break}else{e=f;i=n+56|0;r=e+40|0;do{a[e>>2]=a[i>>2];e=e+4|0;i=i+4|0}while((e|0)<(r|0));xm(A,f)}}while(0);if((a[46723]|0)==1)a[46723]=0;kv(A,75266)|0;Ev(A,+s[n+152>>3]);kv(A,75309)|0;e=f;i=n+16|0;r=e+40|0;do{a[e>>2]=a[i>>2];e=e+4|0;i=i+4|0}while((e|0)<(r|0));xm(A,f);e=a[l>>2]|0;if((e|0)==1){kv(A,75163)|0;e=a[l>>2]|0}if((e|0)==2)kv(A,75172)|0;Tm(A);kv(A,153599)|0}k=t;return}function pm(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0;t=k;k=k+48|0;f=t;n=a[A+16>>2]|0;l=n+144|0;if(a[l>>2]|0){Um(A);kv(A,75292)|0;Zv(A,e,i);kv(A,75155)|0;do{if(!r)if(!(a[46723]|0)){kv(A,97309)|0;break}else{kv(A,137198)|0;break}else{e=f;i=n+56|0;r=e+40|0;do{a[e>>2]=a[i>>2];e=e+4|0;i=i+4|0}while((e|0)<(r|0));xm(A,f)}}while(0);if((a[46723]|0)==1)a[46723]=0;kv(A,75266)|0;Ev(A,+s[n+152>>3]);kv(A,75309)|0;e=f;i=n+16|0;r=e+40|0;do{a[e>>2]=a[i>>2];e=e+4|0;i=i+4|0}while((e|0)<(r|0));xm(A,f);e=a[l>>2]|0;if((e|0)==1){kv(A,75163)|0;e=a[l>>2]|0}if((e|0)==2)kv(A,75172)|0;Tm(A);kv(A,153599)|0}k=t;return}function Nm(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0,b=0;b=k;k=k+48|0;l=b;t=a[A+16>>2]|0;c=t+144|0;if(a[c>>2]|0){Um(A);kv(A,75141)|0;Zv(A,e,i);kv(A,75155)|0;r=l;f=t+16|0;n=r+40|0;do{a[r>>2]=a[f>>2];r=r+4|0;f=f+4|0}while((r|0)<(n|0));xm(A,l);kv(A,75266)|0;Ev(A,+s[t+152>>3]);r=a[c>>2]|0;if((r|0)==1){kv(A,75163)|0;r=a[c>>2]|0}if((r|0)==2)kv(A,75172)|0;kv(A,75275)|0;Tm(A);kv(A,153599)|0}k=b;return}function Rm(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0;t=k;k=k+48|0;n=t;r=a[A+16>>2]|0;l=r+144|0;if(a[l>>2]|0){Um(A);kv(A,75141)|0;Zv(A,e,i);kv(A,75155)|0;f=n;e=r+16|0;i=f+40|0;do{a[f>>2]=a[e>>2];f=f+4|0;e=e+4|0}while((f|0)<(i|0));xm(A,n);e=a[l>>2]|0;if((e|0)==1){kv(A,75163)|0;e=a[l>>2]|0}if((e|0)==2)kv(A,75172)|0;Tm(A);kv(A,153599)|0}k=t;return}function Xm(A,e){A=A|0;e=e|0;kv(A,75138)|0;kv(A,Hm(e)|0)|0;kv(A,153599)|0;return}function Hm(A){A=A|0;return A|0}function Um(A){A=A|0;if(!(r[A+144>>0]|0))kv(A,75263)|0;else kv(A,a[A+148>>2]|0)|0;return}function xm(A,e){A=A|0;e=e|0;var i=0,f=0,l=0,t=0;f=k;k=k+16|0;i=f;A:do{switch(a[e+32>>2]|0){case 5:{kv(A,a[e>>2]|0)|0;break}case 1:if(!(r[e+3>>0]|0)){kv(A,97309)|0;break A}else{t=n[e+1>>0]|0;l=n[e+2>>0]|0;a[i>>2]=n[e>>0];a[i+4>>2]=t;a[i+8>>2]=l;vv(A,75714,i);break A}default:gA(138394,75181,49,75245)}}while(0);k=f;return}function Tm(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0;l=k;k=k+16|0;n=l;f=a[A+16>>2]|0;switch(a[f+12>>2]|0){case 8:{e=1;i=111481;r=f+8|0;break}case 10:{e=0;i=111481;r=f+8|0;break}case 3:case 2:case 9:{e=1;i=111450;r=f+8|0;break}case 7:case 6:case 11:{e=0;i=111450;r=f+8|0;break}case 0:{e=1;i=111494;r=f+8|0;break}case 4:{e=0;i=75217;r=f+8|0;break}case 1:{e=1;i=111494;r=f+8|0;break}case 5:{e=0;i=111494;r=f+8|0;break}default:gA(138394,75181,106,75200)}f=a[(a[r>>2]|0)+8>>2]|0;a[n>>2]=e;a[n+4>>2]=i;a[n+8>>2]=f;vv(A,75229,n);k=l;return}function jm(A){A=A|0;var e=0;kv(A,78153)|0;kv(A,78161)|0;e=A+12|0;kv(A,rQ(a[a[a[e>>2]>>2]>>2]|0)|0)|0;kv(A,78181)|0;kv(A,rQ(a[(a[a[e>>2]>>2]|0)+4>>2]|0)|0)|0;kv(A,78191)|0;kv(A,rQ(a[(a[a[e>>2]>>2]|0)+8>>2]|0)|0)|0;kv(A,78194)|0;return}function Pm(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0;t=k;k=k+32|0;l=t+24|0;n=t+16|0;f=t+8|0;i=t;e=a[A+16>>2]|0;a[46727]=~~(+s[A+232>>3]-+s[A+216>>3]);a[46726]=~~(+s[A+224>>3]-+s[A+208>>3]);kv(A,76840)|0;kv(A,76847)|0;e=Vh(a[e+8>>2]|0)|0;if(r[e>>0]|0){kv(A,76916)|0;kv(A,rQ(e)|0)|0;kv(A,76924)|0}a[i>>2]=U(a[A+168>>2]|0,a[A+164>>2]|0)|0;vv(A,76933,i);kv(A,76953)|0;kv(A,76988)|0;kv(A,77016)|0;kv(A,77022)|0;kv(A,77065)|0;kv(A,77106)|0;kv(A,77125)|0;kv(A,77142)|0;kv(A,77190)|0;kv(A,77243)|0;kv(A,77319)|0;kv(A,77395)|0;kv(A,77404)|0;kv(A,77427)|0;kv(A,77454)|0;kv(A,77507)|0;kv(A,77529)|0;kv(A,77574)|0;kv(A,77586)|0;kv(A,77596)|0;kv(A,77622)|0;kv(A,77507)|0;kv(A,77674)|0;kv(A,77574)|0;kv(A,77586)|0;kv(A,77718)|0;kv(A,77427)|0;kv(A,77454)|0;kv(A,77507)|0;kv(A,77674)|0;kv(A,77574)|0;kv(A,77586)|0;kv(A,77596)|0;kv(A,77622)|0;kv(A,77507)|0;kv(A,77529)|0;kv(A,77574)|0;kv(A,77586)|0;kv(A,77731)|0;kv(A,77739)|0;kv(A,77745)|0;kv(A,77759)|0;kv(A,77767)|0;kv(A,77800)|0;i=(a[46727]|0)+10|0;a[f>>2]=a[46726];a[f+4>>2]=i;vv(A,77877,f);kv(A,77907)|0;kv(A,77916)|0;kv(A,77974)|0;kv(A,77984)|0;kv(A,78049)|0;f=a[46727]|0;a[n>>2]=a[46726];a[n+4>>2]=f;vv(A,78086,n);n=a[46727]|0;a[l>>2]=a[46726];a[l+4>>2]=n;vv(A,78114,l);k=t;return}function Sm(A){A=A|0;kv(A,76391)|0;kv(A,76403)|0;kv(A,76411)|0;kv(A,76474)|0;kv(A,76403)|0;kv(A,76519)|0;kv(A,76568)|0;kv(A,76622)|0;kv(A,76403)|0;kv(A,76722)|0;kv(A,76771)|0;kv(A,76403)|0;kv(A,76823)|0;return}function Om(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0,t=0,c=0;c=k;k=k+32|0;t=c+16|0;l=c+8|0;n=c;kv(A,76349)|0;if(e|0?r[e>>0]|0:0){a[n>>2]=rQ(e)|0;vv(A,76352,n)}if(i|0?r[i>>0]|0:0){a[l>>2]=rQ(i)|0;vv(A,76363,l)}if(f|0?r[f>>0]|0:0){a[t>>2]=rQ(f)|0;vv(A,76375,t)}kv(A,76388)|0;k=c;return}function Km(A){A=A|0;kv(A,76343)|0;return}function _m(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,l=0.0,t=0.0,c=0.0,b=0.0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0.0;m=k;k=k+112|0;Z=m+96|0;G=m+88|0;C=m+80|0;h=m+72|0;E=m+64|0;g=m+56|0;B=m+48|0;d=m+40|0;o=m+24|0;w=m+8|0;u=m;I=a[A+16>>2]|0;switch(r[i+48>>0]|0){case 108:{t=+s[e>>3];b=+s[i+32>>3];break}case 114:{b=+s[i+32>>3];t=+s[e>>3]-b;break}default:{b=+s[i+32>>3];t=+s[e>>3]-b*.5}}f=i+40|0;l=+s[f>>3];v=i+4|0;c=+s[(a[v>>2]|0)+16>>3];if(l>3]=l}Q=t+-8.0;c=+((a[46727]|0)>>>0)-+s[e+8>>3]-l+c*.2+(c<12.0?1.4:2.0);vv(A,76005,u);s[w>>3]=Q;s[w+8>>3]=c;vv(A,75942,w);s[o>>3]=t+8.0+b-Q;s[o+8>>3]=l;vv(A,75966,o);kv(A,76040)|0;kv(A,76074)|0;f=a[v>>2]|0;e=a[f+8>>2]|0;if(e){a[d>>2]=a[e+4>>2];vv(A,76164,d);f=a[e+8>>2]|0;if(f|0){a[B>>2]=f;vv(A,76183,B)}f=a[e+12>>2]|0;if(f|0){a[g>>2]=f;vv(A,76200,g)}f=a[e+16>>2]|0;if(f|0){a[E>>2]=f;vv(A,76218,E)}}else{a[h>>2]=a[f>>2];vv(A,76164,h)}s[C>>3]=+s[(a[v>>2]|0)+16>>3];vv(A,76234,C);f=I+16|0;switch(a[I+48>>2]|0){case 5:{f=a[f>>2]|0;if(p1(f,137314)|0){a[G>>2]=f;vv(A,76254,G)}break}case 1:{I=n[f+1>>0]|0;G=n[f+2>>0]|0;a[Z>>2]=n[f>>0];a[Z+4>>2]=I;a[Z+8>>2]=G;vv(A,76264,Z);break}default:gA(138394,75728,438,76285)}kv(A,76298)|0;kv(A,rQ(a[i>>2]|0)|0)|0;kv(A,76309)|0;kv(A,76332)|0;k=m;return}function qm(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0.0,l=0.0,t=0,c=0.0,b=0.0;r=k;k=k+32|0;f=r+16|0;t=r;kv(A,75906)|0;b=+s[e>>3];l=+s[e+16>>3]-b;c=+s[e+24>>3];n=c-+s[e+8>>3];c=+((a[46727]|0)>>>0)-c;s[t>>3]=b-l;s[t+8>>3]=c;vv(A,75942,t);s[f>>3]=l*2.0;s[f+8>>3]=n*2.0;vv(A,75966,f);lQ(A,i);kv(A,75788)|0;aQ(A);kv(A,75994)|0;k=r;return}function $m(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,n=0,l=0.0,t=0,c=0,b=0,u=0;b=k;k=k+48|0;c=b+24|0;t=b+8|0;n=b;kv(A,75511)|0;u=a[46727]|0;a[n>>2]=a[46726];a[n+4>>2]=u;vv(A,75764,n);lQ(A,r);kv(A,75788)|0;aQ(A);kv(A,75791)|0;n=i+-1|0;r=0;while(1){if((r|0)>=(i|0))break;l=+s[e+(r<<4)>>3];f=+((a[46727]|0)>>>0)-+s[e+(r<<4)+8>>3];if(!r){kv(A,75818)|0;s[t>>3]=l;s[t+8>>3]=f;vv(A,75884,t);kv(A,75895)|0}else{s[c>>3]=l;s[c+8>>3]=f;vv(A,75884,c)}if((r|0)==(n|0))kv(A,75898)|0;r=r+1|0}kv(A,75627)|0;k=b;return}function AQ(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0;f=k;k=k+16|0;r=f;kv(A,75511)|0;l=a[46727]|0;a[r>>2]=a[46726];a[r+4>>2]=l;vv(A,75764,r);lQ(A,n);kv(A,75788)|0;aQ(A);kv(A,75791)|0;tQ(A,e,i);kv(A,75804)|0;k=f;return}function eQ(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,b=0.0;c=k;k=k+48|0;t=c+24|0;l=c+8|0;f=c;kv(A,75511)|0;n=a[46727]|0;a[f>>2]=a[46726];a[f+4>>2]=n;vv(A,75548,f);kv(A,75588)|0;f=i+-1|0;n=e+8|0;r=0;while(1){if((r|0)>=(i|0))break;if(!r){kv(A,75600)|0;b=+((a[46727]|0)>>>0)-+s[n>>3];s[l>>3]=+s[e>>3];s[l+8>>3]=b;vv(A,75604,l);kv(A,75615)|0}else{b=+((a[46727]|0)>>>0)-+s[e+(r<<4)+8>>3];s[t>>3]=+s[e+(r<<4)>>3];s[t+8>>3]=b;vv(A,75604,t)}if((r|0)==(f|0))kv(A,75619)|0;r=r+1|0}kv(A,75623)|0;aQ(A);kv(A,75627)|0;k=c;return}function iQ(A,e){A=A|0;e=e|0;kv(A,75446)|0;kv(A,rQ(e)|0)|0;kv(A,75458)|0;return}function rQ(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0;v=k;k=k+16|0;i=v;e=a[46724]|0;if(!e){a[46725]=64;e=$F(64)|0;a[46724]=e}B=i+15|0;d=i+14|0;n=0;h=0;w=0;i=0;f=0;A:while(1){u=(w|0)!=0;s=n;o=A;c=i;e:while(1){if(!o){g=32;break A}i=r[o>>0]|0;if(!(i<<24>>24)){g=32;break A}A=a[46725]|0;if((h|0)>(A+-8|0)){e=A<<1;a[46725]=e;e=eV(a[46724]|0,e)|0;a[46724]=e;e=e+h|0;i=r[o>>0]|0}switch(i<<24>>24){case 60:{i=4;A=102153;g=26;break e}case 62:{i=4;A=102136;g=27;break e}case 38:{g=10;break e}case 45:{i=5;A=102147;t=c;break e}default:{}}if(u&i<<24>>24==32){g=12;break}switch(i<<24>>24){case 34:{i=6;A=102116;g=26;break e}case 39:{i=5;A=102141;g=27;break e}default:{}}if(i<<24>>24<0){t=127;A=0}else{i=1;A=o;g=26;break}while(1){n=t&255;l=i&255;if(n>>>0>=l>>>0)break;i=t&l&255;t=n>>>1;A=A+1|0}if((A|0)<=1){n=G6(c|0,f|0,6)|0;n=d6(n|0,L|0,i&255|0,0)|0;f=L;b=s+-1|0;if((s|0)>1){A=b;i=n}else{g=21;break}}else{A=A+-1|0;i=i&255;f=0}s=A;o=o+1|0;c=i}if((g|0)==10){g=0;A=(fQ(o)|0)==0;i=A?5:1;A=A?102130:o;t=c}else if((g|0)==12){g=0;A=(r[w>>0]|0)==32;i=A?6:1;A=A?102123:o;t=c}else if((g|0)==21){g=0;r[B>>0]=59;i=3;l=d;t=n;c=f;while(1){A=C6(t|0,c|0,10,0)|0;n=l+-1|0;r[l>>0]=A|48;A=t;t=E6(t|0,c|0,10,0)|0;f=c;c=L;w=i;i=i+1|0;if((w|0)>11){g=23;break A}if(!(f>>>0>0|(f|0)==0&A>>>0>9))break;else l=n}A=l+-2|0;r[n>>0]=35;r[A>>0]=38;s=b;f=c}else if((g|0)==26){g=0;t=c}else if((g|0)==27){g=0;t=c}l=e+i|0;n=i;while(1){if(!n)break;r[e>>0]=r[A>>0]|0;n=n+-1|0;A=A+1|0;e=e+1|0}n=s;A=o+1|0;h=i+h|0;w=o;e=l;i=t}if((g|0)==23){L3(75464,46,1,a[15712]|0)|0;PA(1)}else if((g|0)==32){r[e>>0]=0;k=v;return a[46724]|0}return 0}function fQ(A){A=A|0;var e=0,i=0;i=A+1|0;e=r[i>>0]|0;A:do{if(e<<24>>24==35){i=A+2|0;e=r[i>>0]|0;switch(e<<24>>24){case 88:case 120:break;default:{A=i;while(1){i=A+1|0;if((e+-48&255)>=10)break A;A=i;e=r[i>>0]|0}}}i=A+3|0;while(1){e=r[i>>0]|0;if((e+-48&255)>=10)switch(e<<24>>24){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:break A}i=i+1|0}}else while(1){A=i+1|0;if(((e&-33)+-65&255)>=26)break A;i=A;e=r[A>>0]|0}}while(0);return e<<24>>24==59|0}function aQ(A){A=A|0;var e=0.0,i=0,r=0,f=0,n=0,l=0,t=0,c=0;c=k;k=k+48|0;i=c+8|0;t=c;l=a[A+16>>2]|0;kv(A,75639)|0;r=i;f=l+16|0;n=r+40|0;do{a[r>>2]=a[f>>2];r=r+4|0;f=f+4|0}while((r|0)<(n|0));nQ(A,i);e=+s[l+152>>3];if(e!=1.0){s[t>>3]=e;vv(A,75657,t)}switch(a[l+144>>2]|0){case 1:{kv(A,75674)|0;break}case 2:{kv(A,75692)|0;break}default:{}}kv(A,75709)|0;k=c;return}function nQ(A,e){A=A|0;e=e|0;var i=0,f=0,l=0,t=0;f=k;k=k+16|0;i=f;A:do{switch(a[e+32>>2]|0){case 5:{kv(A,a[e>>2]|0)|0;break}case 1:if(!(r[e+3>>0]|0)){kv(A,135709)|0;break A}else{t=n[e+1>>0]|0;l=n[e+2>>0]|0;a[i>>2]=n[e>>0];a[i+4>>2]=t;a[i+8>>2]=l;vv(A,75714,i);break A}default:gA(138394,75728,94,75748)}}while(0);k=f;return}function lQ(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;n=k;k=k+48|0;f=n;if(!e)kv(A,75867)|0;else{i=a[A+16>>2]|0;kv(A,75837)|0;e=f;i=i+56|0;r=e+40|0;do{a[e>>2]=a[i>>2];e=e+4|0;i=i+4|0}while((e|0)<(r|0));nQ(A,f);kv(A,75864)|0}k=n;return}function tQ(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0.0,c=0.0;l=k;k=k+32|0;n=l;r=75818;f=0;while(1){if((f|0)>=(i|0))break;c=+s[e+(f<<4)>>3];t=+((a[46727]|0)>>>0)-+s[e+(f<<4)+8>>3];a[n>>2]=r;s[n+8>>3]=c;s[n+16>>3]=t;vv(A,75821,n);r=(f|0)==0?75834:195059;f=f+1|0}kv(A,98744)|0;k=l;return}function cQ(A){A=A|0;var e=0,i=0,r=0;e=k;k=k+16|0;i=e+8|0;r=e;kv(A,80451)|0;kv(A,80466)|0;kv(A,80505)|0;kv(A,80554)|0;a[r>>2]=137314;a[r+4>>2]=80642;vv(A,80623,r);a[i>>2]=137198;a[i+4>>2]=80648;vv(A,80623,i);k=e;return}function sQ(A){A=A|0;var e=0,i=0,r=0.0,f=0.0,n=0.0,l=0.0,t=0;e=k;k=k+64|0;i=e+8|0;t=e;a[t>>2]=Vh(a[(a[A+16>>2]|0)+8>>2]|0)|0;vv(A,79404,t);l=+s[A+368>>3]*.5*+s[A+488>>3];n=+s[A+376>>3]*.5*+s[A+496>>3];f=+p(+(l*2.0000000949949026e-03))*180.0*.6366197723675814;r=+p(+(n*2.0000000949949026e-03))*180.0*.6366197723675814;s[i>>3]=l;s[i+8>>3]=n;s[i+16>>3]=-500.0;s[i+24>>3]=l;s[i+32>>3]=n;s[i+40>>3]=0.0;s[i+48>>3]=(f>r?f:r)*1.2;vv(A,79426,i);kv(A,79573)|0;kv(A,80403)|0;k=e;return}function bQ(A){A=A|0;kv(A,79387)|0;return}function uQ(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0;f=k;k=k+16|0;n=f;a[n>>2]=e;a[n+4>>2]=i;a[n+8>>2]=r;vv(A,79357,n);c[46728]=+(U(i,-10)|0);k=f;return}function wQ(A){A=A|0;kv(A,79340)|0;return}function kQ(A){A=A|0;kv(A,79322)|0;return}function oQ(A){A=A|0;kv(A,79306)|0;return}function hQ(A){A=A|0;kv(A,79285)|0;c[46728]=+c[46728]+-2.0;return}function dQ(A){A=A|0;kv(A,79266)|0;return}function BQ(A){A=A|0;var e=0,i=0;e=k;k=k+16|0;i=e;a[i>>2]=Vh(a[(a[A+16>>2]|0)+8>>2]|0)|0;vv(A,79244,i);k=e;return}function gQ(A){A=A|0;kv(A,79228)|0;return}function vQ(A){A=A|0;kv(A,79210)|0;c[46728]=+c[46728]+-5.0;return}function EQ(A){A=A|0;kv(A,79194)|0;c[46728]=+c[46728]+5.0;return}function CQ(A,e,i){A=A|0;e=e|0;i=i|0;var f=0.0,n=0,l=0,t=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0.0,g=0.0,v=0.0;d=k;k=k+144|0;w=d+104|0;h=d+56|0;b=d+32|0;l=d+24|0;u=d;o=i+4|0;n=a[o>>2]|0;f=+s[n+16>>3];n=a[n>>2]|0;a[u>>2]=a[i>>2];s[u+8>>3]=f;a[u+16>>2]=n;vv(A,79040,u);c[46729]=+c[46728]+-9.0;switch(r[i+48>>0]|0){case 108:{f=+s[e>>3];break}case 114:{n=e;f=+s[e>>3]-+s[i+32>>3];t=5;break}default:{n=e;f=+s[e>>3]-+s[i+32>>3]*.5;t=5}}if((t|0)==5)s[n>>3]=f;v=+s[A+488>>3];g=(+s[A+504>>3]+f)*v;B=(+s[A+512>>3]+ +s[e+8>>3])*+s[A+496>>3];s[l>>3]=+s[(a[o>>2]|0)+16>>3]*v;u=LQ(A,79092,l)|0;f=+(a[A+360>>2]|0);s[b>>3]=0.0;s[b+8>>3]=0.0;s[b+16>>3]=f;n=LQ(A,78309,b)|0;f=+c[46729];s[w>>3]=g;s[w+8>>3]=B;s[w+16>>3]=f;e=LQ(A,78341,w)|0;l=w;t=(a[A+16>>2]|0)+16|0;b=l+40|0;do{a[l>>2]=a[t>>2];l=l+4|0;t=t+4|0}while((l|0)<(b|0));w=yQ(A,w,0.0)|0;i=a[i>>2]|0;a[h>>2]=a[a[o>>2]>>2];s[h+8>>3]=.25;s[h+16>>3]=0.0;a[h+24>>2]=i;a[h+28>>2]=79179;a[h+32>>2]=u;a[h+36>>2]=n;a[h+40>>2]=e;a[h+44>>2]=w;h=LQ(A,79104,h)|0;kv(A,h)|0;L2(h);L2(n);L2(w);L2(e);L2(u);k=d;return}function IQ(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0.0,l=0.0,t=0.0,b=0,u=0,w=0,o=0.0,h=0.0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0.0;G=k;k=k+240|0;I=G+192|0;Z=G+152|0;g=G+128|0;d=G+104|0;w=G+80|0;u=G+48|0;r=G+24|0;b=G;kv(A,78917)|0;c[46729]=+c[46728]+-6.0;n=+s[e>>3];l=+s[A+488>>3];o=(+s[A+504>>3]+n)*l;m=+s[e+8>>3];t=+s[A+496>>3];h=(+s[A+512>>3]+m)*t;l=(+s[e+16>>3]-n)*l;t=(+s[e+24>>3]-m)*t;B=A+16|0;m=t+l;n=+s[(a[B>>2]|0)+152>>3]/m*2.5;s[b>>3]=l;s[b+8>>3]=m*.25;s[b+16>>3]=t;e=LQ(A,78277,b)|0;b=A+360|0;m=+(a[b>>2]|0);s[r>>3]=90.0;s[r+8>>3]=0.0;s[r+16>>3]=m;r=LQ(A,78309,r)|0;m=+c[46729];s[I>>3]=o;s[I+8>>3]=h;s[I+16>>3]=m;f=LQ(A,78341,I)|0;v=I;E=(a[B>>2]|0)+16|0;C=v+40|0;do{a[v>>2]=a[E>>2];v=v+4|0;E=E+4|0}while((v|0)<(C|0));E=yQ(A,I,0.0)|0;s[u>>3]=1.0;s[u+8>>3]=n;a[u+16>>2]=e;a[u+20>>2]=r;a[u+24>>2]=f;a[u+28>>2]=E;C=LQ(A,78932,u)|0;kv(A,C)|0;L2(e);L2(r);L2(f);L2(E);L2(C);if(i|0){s[w>>3]=l;s[w+8>>3]=t;s[w+16>>3]=1.0;f=LQ(A,78277,w)|0;m=+(a[b>>2]|0);s[d>>3]=0.0;s[d+8>>3]=0.0;s[d+16>>3]=m;r=LQ(A,78309,d)|0;m=+c[46729];s[g>>3]=o;s[g+8>>3]=h;s[g+16>>3]=m;e=LQ(A,78341,g)|0;v=I;E=(a[B>>2]|0)+56|0;C=v+40|0;do{a[v>>2]=a[E>>2];v=v+4|0;E=E+4|0}while((v|0)<(C|0));I=yQ(A,I,0.0)|0;s[Z>>3]=0.0;s[Z+8>>3]=0.0;s[Z+16>>3]=0.0;a[Z+24>>2]=f;a[Z+28>>2]=r;a[Z+32>>2]=e;a[Z+36>>2]=I;Z=LQ(A,78978,Z)|0;kv(A,Z)|0;L2(f);L2(r);L2(e);L2(I);L2(Z)}k=G;return}function ZQ(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0.0,p=0,N=0.0;V=k;k=k+336|0;Q=V+296|0;F=V+288|0;M=V+272|0;D=V+264|0;Y=V+240|0;y=V+232|0;m=V+208|0;G=V+184|0;C=V+160|0;E=V+152|0;v=V+136|0;g=V+128|0;B=V+96|0;d=V+88|0;h=V+56|0;f=V+48|0;b=V+24|0;t=V;kv(A,78782)|0;c[46729]=+c[46728]+-2.0;w=A+488|0;o=A+496|0;J=+s[o>>3];s[t>>3]=+s[w>>3];s[t+8>>3]=J;s[t+16>>3]=1.0;t=LQ(A,78277,t)|0;Z=A+360|0;J=+(a[Z>>2]|0);s[b>>3]=0.0;s[b+8>>3]=0.0;s[b+16>>3]=J;b=LQ(A,78309,b)|0;J=+c[46729]+-2.0;s[Q>>3]=0.0;s[Q+8>>3]=0.0;s[Q+16>>3]=J;u=LQ(A,78341,Q)|0;L=A+16|0;n=Q;l=(a[L>>2]|0)+16|0;I=n+40|0;do{a[n>>2]=a[l>>2];n=n+4|0;l=l+4|0}while((n|0)<(I|0));l=yQ(A,Q,0.0)|0;a[f>>2]=78404;a[f+4>>2]=i+1;W=A+504|0;z=A+512|0;n=0;f=LQ(A,78373,f)|0;while(1){if((n|0)>=(i|0))break;N=+s[z>>3]+ +s[e+(n<<4)+8>>3];J=+s[(a[L>>2]|0)+152>>3];s[h>>3]=+s[W>>3]+ +s[e+(n<<4)>>3];s[h+8>>3]=N;s[h+16>>3]=0.0;s[h+24>>3]=J;p=LQ(A,78418,h)|0;a[d>>2]=f;a[d+4>>2]=p;I=LQ(A,78447,d)|0;L2(p);L2(f);n=n+1|0;f=I}J=+s[z>>3]+ +s[e+8>>3];N=+s[(a[L>>2]|0)+152>>3];s[B>>3]=+s[W>>3]+ +s[e>>3];s[B+8>>3]=J;s[B+16>>3]=0.0;s[B+24>>3]=N;I=LQ(A,78418,B)|0;a[g>>2]=f;a[g+4>>2]=I;p=LQ(A,78447,g)|0;L2(I);L2(f);a[v>>2]=t;a[v+4>>2]=b;a[v+8>>2]=u;a[v+12>>2]=l;I=LQ(A,78797,v)|0;a[E>>2]=p;a[E+4>>2]=I;p=LQ(A,78502,E)|0;L2(I);kv(A,p)|0;L2(t);L2(b);L2(u);L2(l);L2(p);if(r|0){N=+s[o>>3];s[C>>3]=+s[w>>3];s[C+8>>3]=N;s[C+16>>3]=1.0;u=LQ(A,78277,C)|0;N=+(a[Z>>2]|0);s[G>>3]=0.0;s[G+8>>3]=0.0;s[G+16>>3]=N;b=LQ(A,78309,G)|0;N=+c[46729]+-2.0;s[m>>3]=0.0;s[m+8>>3]=0.0;s[m+16>>3]=N;t=LQ(A,78341,m)|0;n=Q;l=(a[L>>2]|0)+56|0;I=n+40|0;do{a[n>>2]=a[l>>2];n=n+4|0;l=l+4|0}while((n|0)<(I|0));l=yQ(A,Q,.25)|0;a[y>>2]=i;n=0;f=LQ(A,78842,y)|0;while(1){if((n|0)>=(i|0))break;N=+s[z>>3]+ +s[e+(n<<4)+8>>3];s[Y>>3]=+s[W>>3]+ +s[e+(n<<4)>>3];s[Y+8>>3]=N;s[Y+16>>3]=0.0;y=LQ(A,78857,Y)|0;a[D>>2]=f;a[D+4>>2]=y;p=LQ(A,78879,D)|0;L2(y);L2(f);n=n+1|0;f=p}a[M>>2]=u;a[M+4>>2]=b;a[M+8>>2]=t;a[M+12>>2]=l;M=LQ(A,78889,M)|0;a[F>>2]=f;a[F+4>>2]=M;p=LQ(A,78502,F)|0;L2(M);kv(A,p)|0;L2(u);L2(b);L2(t);L2(l);L2(p)}k=V;return}function GQ(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0.0,y=0.0;Q=k;k=k+208|0;r=Q+160|0;m=Q+152|0;G=Q+136|0;Z=Q+128|0;I=Q+96|0;C=Q+88|0;E=Q+56|0;t=Q+48|0;B=Q+24|0;d=Q;kv(A,78709)|0;c[46729]=+c[46728]+-4.0;L=+s[A+496>>3];s[d>>3]=+s[A+488>>3];s[d+8>>3]=L;s[d+16>>3]=1.0;d=LQ(A,78277,d)|0;L=+(a[A+360>>2]|0);s[B>>3]=0.0;s[B+8>>3]=0.0;s[B+16>>3]=L;B=LQ(A,78309,B)|0;L=+c[46729]+-2.0;s[r>>3]=0.0;s[r+8>>3]=0.0;s[r+16>>3]=L;g=LQ(A,78341,r)|0;v=A+16|0;f=r;n=(a[v>>2]|0)+56|0;l=f+40|0;do{a[f>>2]=a[n>>2];f=f+4|0;n=n+4|0}while((f|0)<(l|0));u=yQ(A,r,0.0)|0;a[t>>2]=78723;a[t+4>>2]=i+2;w=A+504|0;o=A+512|0;h=i+-1|0;b=0;r=LQ(A,78373,t)|0;while(1){if((b|0)>=(i|0))break;f=e+(b<<4)|0;n=e+(b<<4)+8|0;y=+s[o>>3]+ +s[n>>3];L=+s[(a[v>>2]|0)+152>>3];s[E>>3]=+s[w>>3]+ +s[f>>3];s[E+8>>3]=y;s[E+16>>3]=0.0;s[E+24>>3]=L;t=LQ(A,78418,E)|0;a[C>>2]=r;a[C+4>>2]=t;l=LQ(A,78447,C)|0;L2(t);L2(r);if((b|0)==0|(b|0)==(h|0)){L=+s[o>>3]+ +s[n>>3];y=+s[(a[v>>2]|0)+152>>3];s[I>>3]=+s[w>>3]+ +s[f>>3];s[I+8>>3]=L;s[I+16>>3]=0.0;s[I+24>>3]=y;t=LQ(A,78418,I)|0;a[Z>>2]=l;a[Z+4>>2]=t;r=LQ(A,78447,Z)|0;L2(t);L2(l)}else r=l;b=b+1|0}a[G>>2]=d;a[G+4>>2]=B;a[G+8>>2]=g;a[G+12>>2]=u;e=LQ(A,78732,G)|0;a[m>>2]=r;a[m+4>>2]=e;i=LQ(A,78502,m)|0;L2(e);kv(A,i)|0;L2(d);L2(B);L2(g);L2(u);L2(i);k=Q;return}function mQ(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0.0,I=0,Z=0.0;E=k;k=k+160|0;r=E+120|0;v=E+112|0;g=E+96|0;B=E+88|0;d=E+56|0;b=E+48|0;u=E+24|0;h=E;kv(A,78261)|0;c[46729]=+c[46728]+-6.0;C=+s[A+496>>3];s[h>>3]=+s[A+488>>3];s[h+8>>3]=C;s[h+16>>3]=1.0;h=LQ(A,78277,h)|0;C=+(a[A+360>>2]|0);s[u>>3]=0.0;s[u+8>>3]=0.0;s[u+16>>3]=C;u=LQ(A,78309,u)|0;C=+c[46729];s[r>>3]=0.0;s[r+8>>3]=0.0;s[r+16>>3]=C;w=LQ(A,78341,r)|0;o=A+16|0;f=r;n=(a[o>>2]|0)+16|0;l=f+40|0;do{a[f>>2]=a[n>>2];f=f+4|0;n=n+4|0}while((f|0)<(l|0));n=yQ(A,r,0.0)|0;a[b>>2]=78404;a[b+4>>2]=i;l=A+504|0;t=A+512|0;f=0;r=LQ(A,78373,b)|0;while(1){if((f|0)>=(i|0))break;Z=+s[t>>3]+ +s[e+(f<<4)+8>>3];C=+s[(a[o>>2]|0)+152>>3];s[d>>3]=+s[l>>3]+ +s[e+(f<<4)>>3];s[d+8>>3]=Z;s[d+16>>3]=0.0;s[d+24>>3]=C;I=LQ(A,78418,d)|0;a[B>>2]=r;a[B+4>>2]=I;b=LQ(A,78447,B)|0;L2(I);L2(r);f=f+1|0;r=b}a[g>>2]=h;a[g+4>>2]=u;a[g+8>>2]=w;a[g+12>>2]=n;g=LQ(A,78456,g)|0;a[v>>2]=r;a[v+4>>2]=g;I=LQ(A,78502,v)|0;L2(g);kv(A,I)|0;L2(h);L2(u);L2(w);L2(n);L2(I);k=E;return}function QQ(A,e){A=A|0;e=e|0;var i=0,r=0;i=k;k=k+16|0;r=i;a[r>>2]=e;vv(A,78242,r);k=i;return}function LQ(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0;t=k;k=k+1056|0;l=t;r=t+24|0;f=t+8|0;a[f>>2]=i;n=k4(r,1024,e,f)|0;do{if((n|0)>=0)if((n|0)>1023){A=Q2(n+1|0)|0;a[f>>2]=i;O4(A,e,f)|0;break}else{A=b3(r)|0;break}else{A=a[(a[A+12>>2]|0)+16>>2]|0;a[l>>2]=e1(a[(N2()|0)>>2]|0)|0;V5[A&63](78687,l);A=b3(195059)|0}}while(0);k=t;return A|0}function yQ(A,e,i){A=A|0;e=e|0;i=+i;var r=0,f=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0.0,B=0.0;h=k;k=k+112|0;w=h+104|0;t=h+96|0;l=h+64|0;u=h+48|0;o=h+32|0;b=h+16|0;c=h;f=a[e+32>>2]|0;A:do{switch(f|0){case 5:{r=a[e>>2]|0;if(!(A1(r,136302)|0)){a[c>>2]=78524;s[c+8>>3]=i;r=LQ(A,78507,c)|0;break A}if(!(A1(r,133432)|0)){a[b>>2]=78528;s[b+8>>3]=i;r=LQ(A,78507,b)|0;break A}if(!(A1(r,131431)|0)){a[o>>2]=78534;s[o+8>>3]=i;r=LQ(A,78507,o)|0;break A}else{a[u>>2]=r;s[u+8>>3]=i;r=LQ(A,78507,u)|0;break A}}case 1:{B=+(n[e+1>>0]|0)*.00390625;d=+(n[e+2>>0]|0)*.00390625;s[l>>3]=+(n[e>>0]|0)*.00390625;s[l+8>>3]=B;s[l+16>>3]=d;s[l+24>>3]=i;r=LQ(A,78539,l)|0;break}default:{o=a[15712]|0;u=a[e>>2]|0;a[t>>2]=f;a[t+4>>2]=u;f3(o,78578,t)|0;gA(138394,78628,436,78648)}}}while(0);a[w>>2]=r;o=LQ(A,78665,w)|0;L2(r);k=h;return o|0}function WQ(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0;e=k;k=k+32|0;i=e+24|0;r=e+16|0;n=e;f=a[A+16>>2]|0;l=a[a[A+12>>2]>>2]|0;c=a[l>>2]|0;t=a[l+4>>2]|0;l=a[l+8>>2]|0;a[n>>2]=81094;a[n+4>>2]=c;a[n+8>>2]=t;a[n+12>>2]=l;vv(A,83704,n);f=Vh(a[f+8>>2]|0)|0;a[r>>2]=81094;a[r+4>>2]=f;vv(A,83736,r);a[i>>2]=81094;vv(A,83750,i);k=e;return}function zQ(A){A=A|0;var e=0,i=0;e=k;k=k+16|0;i=e;a[i>>2]=81094;vv(A,83652,i);k=e;return}function YQ(A){A=A|0;var e=0.0,i=0.0,r=0.0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0,U=0,x=0,T=0,j=0,P=0,S=0;S=k;k=k+304|0;P=S+296|0;j=S+288|0;T=S+272|0;U=S+264|0;H=S+256|0;X=S+248|0;R=S+240|0;N=S+232|0;p=S+224|0;J=S+216|0;V=S+208|0;F=S+200|0;M=S+192|0;D=S+184|0;z=S+176|0;W=S+168|0;y=S+160|0;L=S+152|0;m=S+144|0;G=S+136|0;Z=S+128|0;I=S+120|0;C=S+112|0;E=S+104|0;v=S+96|0;g=S+88|0;B=S+80|0;d=S+72|0;h=S+64|0;o=S+56|0;w=S+48|0;x=S+40|0;Q=S+24|0;u=S+16|0;b=S;n=a[A+456>>2]|0;l=a[A+460>>2]|0;t=a[A+464>>2]|0;c=a[A+468>>2]|0;f=A+360|0;A:do{if(a[4025]|0){switch(a[f>>2]|0){case 90:case 0:break A;default:{}}xQ();a[4025]=0}}while(0);r=(+(c|0)-+(l|0))*.013888888888888888;e=(+(t|0)-+(n|0))*.013888888888888888;c=(a[f>>2]|0)==90;i=c?r:e;r=c?e:r;s[b>>3]=i;s[b+8>>3]=r;vv(A,81281,b);a[u>>2]=81094;vv(A,81296,u);if(i>0.0){e=+t1(i);s[19214]=e;e=e+3.0-+(~~e|0)}else e=3.0;e=+Y(10.0,+e);s[19214]=e;s[Q>>3]=e;s[Q+8>>3]=e;vv(A,81465,Q);a[x>>2]=81094;vv(A,81500,x);a[w>>2]=81094;vv(A,81558,w);a[o>>2]=81094;vv(A,81618,o);a[h>>2]=81094;vv(A,81667,h);a[d>>2]=81094;vv(A,81706,d);a[B>>2]=81094;vv(A,81757,B);a[g>>2]=81094;vv(A,81819,g);a[v>>2]=81094;vv(A,81929,v);a[E>>2]=81094;vv(A,82020,E);a[C>>2]=81094;vv(A,82074,C);a[I>>2]=81094;vv(A,82143,I);vv(A,82179,Z);a[G>>2]=81094;vv(A,82304,G);a[m>>2]=81094;vv(A,82333,m);vv(A,82373,L);a[y>>2]=81094;vv(A,82466,y);a[W>>2]=81094;vv(A,82525,W);a[z>>2]=81094;vv(A,82606,z);vv(A,82676,D);a[M>>2]=81094;vv(A,82765,M);a[F>>2]=81094;vv(A,82870,F);a[V>>2]=81094;vv(A,82946,V);a[J>>2]=81094;vv(A,82985,J);a[p>>2]=81094;vv(A,83084,p);a[N>>2]=81094;vv(A,83130,N);vv(A,83219,R);a[X>>2]=81094;vv(A,83260,X);a[H>>2]=81094;vv(A,83343,H);a[U>>2]=81094;vv(A,83444,U);s[T>>3]=r;s[T+8>>3]=i;vv(A,83508,T);vv(A,83536,j);vv(A,83544,P);k=S;return}function DQ(A){A=A|0;var e=0;e=k;k=k+16|0;vv(A,81274,e);k=e;return}function MQ(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0.0,l=0.0,t=0.0,c=0,b=0,u=0.0,w=0,o=0,h=0,d=0;d=k;k=k+48|0;h=d+24|0;o=d+8|0;w=d;switch(r[i+48>>0]|0){case 108:{c=e;l=+s[i+32>>3];t=+s[e>>3];break}case 114:{l=+s[i+32>>3];n=l;f=5;break}default:{l=+s[i+32>>3];n=l*.5;f=5}}if((f|0)==5){t=+s[e>>3]-n;s[e>>3]=t;c=e}b=i+4|0;f=a[b>>2]|0;n=+s[f+16>>3];e=e+8|0;u=+s[e>>3]+n*.004629629629629629;s[e>>3]=u;l=t+l*.006944444444444444;s[c>>3]=l;f=a[f>>2]|0;do{if(f){e=a[46730]|0;if(e|0?(A1(e,f)|0)==0:0)break;a[w>>2]=HQ(f)|0;vv(A,81173,w);w=a[b>>2]|0;a[46730]=a[w>>2];n=+s[w+16>>3]}}while(0);f=~~n;f=(f|0)>1?f:1;if((f|0)!=(a[46731]|0)){t=+s[19214];a[o>>2]=f;s[o+8>>3]=t;vv(A,81181,o);a[46731]=f}a[h>>2]=UQ(a[i>>2]|0)|0;s[h+8>>3]=l;s[h+16>>3]=u;vv(A,81202,h);k=d;return}function FQ(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0.0,l=0.0,t=0.0,c=0.0;r=k;k=k+48|0;f=r;l=+s[e>>3];c=(+s[e+16>>3]-l)*.027777777777777776;n=+s[e+8>>3];t=(+s[e+24>>3]-n)*.027777777777777776;a[f>>2]=1;a[f+4>>2]=i|0?81115:195059;s[f+8>>3]=c;s[f+16>>3]=t;s[f+24>>3]=l*.013888888888888888;s[f+32>>3]=n*.013888888888888888;vv(A,81121,f);k=r;return}function VQ(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;r=k;k=k+16|0;RQ(a[A+16>>2]|0,r+8|0,r);XQ(A,e,i,1);k=r;return}function JQ(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0.0,E=0.0,C=0;g=k;k=k+128|0;B=g+112|0;h=g+104|0;o=g+96|0;r=g+88|0;u=g+16|0;w=g;c=a[A+16>>2]|0;t=Q2((i*140|0)+140|0)|0;RQ(c,g+116|0,g+80|0);E=+s[e>>3];c=u+48|0;s[c>>3]=E;v=+s[e+8>>3];s[u+56>>3]=v;a[r>>2]=~~(E+(E>=0.0?.5:-.5));a[r+4>>2]=~~(v+(v>=0.0?.5:-.5));l=w+8|0;r=t+(S4(t,81099,r)|0)|0;d=1;n=0;while(1){b=n+3|0;if((b|0)>=(i|0))break;a[u>>2]=a[c>>2];a[u+4>>2]=a[c+4>>2];a[u+8>>2]=a[c+8>>2];a[u+12>>2]=a[c+12>>2];f=1;while(1){if((f|0)==4){f=1;break}C=f+n|0;s[u+(f<<4)>>3]=+s[e+(C<<4)>>3];s[u+(f<<4)+8>>3]=+s[e+(C<<4)+8>>3];f=f+1|0}while(1){if((f|0)==7)break;QR(w,u,3,+(f|0)*.16666666666666666,0,0);v=+s[w>>3];E=+s[l>>3];a[o>>2]=~~(v+(v>=0.0?.5:-.5));a[o+4>>2]=~~(E+(E>=0.0?.5:-.5));f=f+1|0;r=r+(S4(r,81099,o)|0)|0}d=d+6|0;n=b}a[h>>2]=t;vv(A,81106,h);L2(t);f=d+-1|0;r=0;while(1){if((r|0)>=(d|0))break;a[B>>2]=((r|0)%(f|0)|0|0)!=0&1;vv(A,81111,B);r=r+1|0}kv(A,153599)|0;k=g;return}function pQ(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=k;k=k+16|0;RQ(a[A+16>>2]|0,r+8|0,r);XQ(A,e,i,0);k=r;return}function NQ(A,e){A=A|0;e=e|0;var i=0,r=0;i=k;k=k+16|0;r=i;a[r>>2]=81094;a[r+4>>2]=e;vv(A,81087,r);k=i;return}function RQ(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0;switch(a[A+144>>2]|0){case 1:{r=10.0;A=1;break}case 2:{r=10.0;A=2;break}default:{r=0.0;A=0}}a[e>>2]=A;s[i>>3]=r;return}function XQ(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0.0,b=0.0;t=k;k=k+16|0;l=t+8|0;n=t;f=0;while(1){if((f|0)>=(i|0))break;b=+s[e+(f<<4)>>3];c=+s[e+(f<<4)+8>>3];a[n>>2]=~~(b+(b>=0.0?.5:-.5));a[n+4>>2]=~~(c+(c>=0.0?.5:-.5));vv(A,81099,n);f=f+1|0}if(r|0){c=+s[e>>3];b=+s[e+8>>3];a[l>>2]=~~(c+(c>=0.0?.5:-.5));a[l+4>>2]=~~(b+(b>=0.0?.5:-.5));vv(A,81099,l)}kv(A,153599)|0;k=t;return}function HQ(A){A=A|0;var e=0,i=0,f=0,n=0,l=0;l=k;k=k+16|0;f=l;A:while(1){e=15828;while(1){i=a[e+4>>2]|0;if(!i)break;if(!(A1(i,A)|0)){n=6;break A}e=e+8|0}a[f>>2]=81255;a[f+4>>2]=A;ao(1,81229,f)|0;e=u3(A,45)|0;if(!e){e=81272;break}r[e>>0]=0}k=l;return e|0}function UQ(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0;t=k;k=k+16|0;l=t;e=a[46732]|0;if(!e){a[46733]=64;e=Q2(64)|0;a[46732]=e;i=0}else i=0;while(1){n=A+1|0;f=r[A>>0]|0;if(!(f<<24>>24))break;A=a[46733]|0;if((i|0)>(A+-8|0)){e=A<<1;a[46733]=e;e=W2(a[46732]|0,e)|0;a[46732]=e;e=e+i|0}if(f<<24>>24<=-1){r[e>>0]=92;a[l>>2]=f&255;S4(e+1|0,81224,l)|0;A=n;e=e+4|0;i=i+4|0;continue}if(f<<24>>24==92){r[e>>0]=92;i=i+1|0;e=e+1|0}r[e>>0]=f;A=n;e=e+1|0;i=i+1|0}r[e>>0]=0;k=t;return a[46732]|0}function xQ(){var A=0,e=0;A=k;k=k+16|0;e=A;a[e>>2]=81255;a[e+4>>2]=91269;ao(0,83634,e)|0;k=A;return}function TQ(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0.0,l=0.0,t=0,c=0;r=k;k=k+32|0;f=r+8|0;t=r;e=e+8|0;c=a[e>>2]|0;a[t>>2]=c;a[t+4>>2]=c;vv(A,84223,t);l=(+s[i>>3]+ +s[i+16>>3])*.5;n=(+s[i+8>>3]+ +s[i+24>>3])*.5;a[f>>2]=a[e>>2];s[f+8>>3]=l;s[f+16>>3]=n;vv(A,84265,f);k=r;return}function jQ(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0.0,l=0.0,t=0.0,c=0.0;r=k;k=k+48|0;f=r;l=+s[i>>3];c=+s[i+16>>3]-l;n=+s[i+24>>3];t=n-+s[i+8>>3];n=+(~~(+s[A+232>>3]-+s[A+216>>3])>>>0)-n;a[f>>2]=a[e+8>>2];s[f+8>>3]=c;s[f+16>>3]=t;s[f+24>>3]=l;s[f+32>>3]=n;vv(A,84310,f);kv(A,84402)|0;k=r;return}function PQ(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;return}function SQ(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,n=0.0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0.0;g=k;k=k+160|0;B=g+152|0;d=g+136|0;h=g+120|0;c=g+112|0;u=g+104|0;b=g+88|0;t=g+72|0;l=g+64|0;w=g;if(!A)gA(111282,84407,212,84426);if(!e)gA(111312,84407,213,84426);o=e+8|0;if(!(a[o>>2]|0))gA(111315,84407,214,84426);if(a[e+52>>2]|0){a[w>>2]=a[i>>2];a[w+4>>2]=a[i+4>>2];a[w+8>>2]=a[i+8>>2];a[w+12>>2]=a[i+12>>2];e=w+32|0;i=i+16|0;a[e>>2]=a[i>>2];a[e+4>>2]=a[i+4>>2];a[e+8>>2]=a[i+8>>2];a[e+12>>2]=a[i+12>>2];f=+s[w>>3];s[w+16>>3]=f;s[w+24>>3]=+s[w+40>>3];s[w+48>>3]=+s[e>>3];n=+s[w+8>>3];s[w+56>>3]=n;if(r<<24>>24){vv(A,84447,l);e=0;while(1){if((e|0)==4)break;v=+s[w+(e<<4)+8>>3];s[t>>3]=+s[w+(e<<4)>>3];s[t+8>>3]=v;vv(A,84450,t);e=e+1|0}s[b>>3]=f;s[b+8>>3]=n;vv(A,84450,b);b=a[o>>2]|0;a[u>>2]=4;a[u+4>>2]=b;vv(A,84457,u)}vv(A,84447,c);e=0;while(1){if((e|0)==4)break;v=+s[w+(e<<4)+8>>3];s[h>>3]=+s[w+(e<<4)>>3];s[h+8>>3]=v;vv(A,84450,h);e=e+1|0}s[d>>3]=f;s[d+8>>3]=n;vv(A,84450,d);d=a[o>>2]|0;a[B>>2]=4;a[B+4>>2]=d;vv(A,84472,B)}k=g;return}function OQ(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0.0;w=k;k=k+112|0;u=w+24|0;b=w+16|0;c=w;l=w+28|0;if(!A)gA(111282,84407,153,84488);if(!e)gA(111312,84407,154,84488);if(!(a[e+8>>2]|0))gA(111315,84407,155,84488);t=e+52|0;if(a[t>>2]|0){f=e+60|0;n=a[f>>2]|0;if((n|0)==100)n=18;else{F5[n&127](e);a[t>>2]=0;a[f>>2]=0;a[e+56>>2]=0;n=10}}else n=10;do{if((n|0)==10){if(!((Rv(e)|0)<<24>>24))break;f=t6(a[e+20>>2]|0)|0;if((a[e+24>>2]&-2|0)==6){D3(f,l)|0;l=a[l+36>>2]|0;a[e+56>>2]=l;f=T2(0,l,1,1,f,0)|0;a[t>>2]=f;r[e+16>>0]=1}else f=a[t>>2]|0;if(f|0)a[e+60>>2]=100;Xv(e);if(a[t>>2]|0)n=18}}while(0);if((n|0)==18){o=+s[i+8>>3]-+(a[e+36>>2]|0);s[c>>3]=+s[i>>3]-+(a[e+32>>2]|0);s[c+8>>3]=o;vv(A,84506,c);if(!(r[e+16>>0]|0)){a[b>>2]=a[e+12>>2];vv(A,84537,b)}else HJ(A,e);vv(A,84552,u)}k=w;return}function KQ(A){A=A|0;U2(a[A+52>>2]|0,a[A+56>>2]|0)|0;return}function _Q(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0;n=k;k=k+80|0;f=n+48|0;if(!A)gA(111282,84407,121,84562);r=a[A+16>>2]|0;if(!r)gA(99902,84407,123,84562);if(!e)gA(111312,84407,124,84562);i=e+8|0;if(!(a[i>>2]|0))gA(111315,84407,125,84562);if(!(a[r+8>>2]|0))gA(138879,84407,128,84562);else{vv(A,84582,n);vv(A,84591,n+8|0);vv(A,84618,n+16|0);vv(A,84643,n+24|0);vv(A,84672,n+32|0);vv(A,84700,n+40|0);a[f>>2]=a[i>>2];vv(A,84707,f);vv(A,84746,n+56|0);vv(A,111008,n+64|0);k=n;return}}function qQ(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,b=0.0;l=k;k=k+128|0;n=l+80|0;f=l;if(!A)gA(111282,84407,97,84751);if(!e)gA(111312,84407,98,84751);r=a[e+8>>2]|0;if(!r)gA(111315,84407,99,84751);else{b=+s[i>>3];t=~~(b+(b>=0.0?.5:-.5));b=+s[i+8>>3];e=~~(b+(b>=0.0?.5:-.5));b=+s[i+16>>3];c=~~(b+(b>=0.0?.5:-.5));b=+s[i+24>>3];i=~~(b+(b>=0.0?.5:-.5));a[f>>2]=2;a[f+4>>2]=5;a[f+8>>2]=0;a[f+12>>2]=0;a[f+16>>2]=0;a[f+20>>2]=-1;a[f+24>>2]=1;a[f+28>>2]=-1;a[f+32>>2]=0;s[f+40>>3]=0.0;a[f+48>>2]=0;a[f+52>>2]=0;a[f+56>>2]=0;a[f+60>>2]=0;a[f+64>>2]=0;a[f+68>>2]=5;a[f+72>>2]=0;a[f+76>>2]=r;vv(A,84770,f);a[n>>2]=t;a[n+4>>2]=e;a[n+8>>2]=t;a[n+12>>2]=i;a[n+16>>2]=c;a[n+20>>2]=i;a[n+24>>2]=c;a[n+28>>2]=e;a[n+32>>2]=t;a[n+36>>2]=e;vv(A,84828,n);k=l;return}}function $Q(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,n=0.0,l=0.0,t=0.0,c=0,b=0,u=0,w=0;w=k;k=k+96|0;u=w+56|0;b=w+32|0;c=w;l=+s[i>>3];t=+s[i+16>>3]-l;f=+s[i+24>>3];n=f-+s[i+8>>3];if(!A)gA(111282,84407,53,84860);if(!e)gA(111312,84407,54,84860);r=e+8|0;if(!(a[r>>2]|0))gA(111315,84407,55,84860);kv(A,84879)|0;kv(A,a[r>>2]|0)|0;r=A+360|0;f=-f;if(!(a[r>>2]|0)){s[u>>3]=t;s[u+8>>3]=n;s[u+16>>3]=l;s[u+24>>3]=f;vv(A,85008,u)}else{s[c>>3]=n;s[c+8>>3]=t;s[c+16>>3]=l;s[c+24>>3]=f;vv(A,84899,c);a[b>>2]=a[r>>2];s[b+8>>3]=l;s[b+16>>3]=f;vv(A,84978,b)}kv(A,85087)|0;k=w;return}function AL(A){A=A|0;var e=0,i=0;e=cd(A)|0;while(1){if(!e)break;eL(e);e=sd(A,e)|0}i=cd(A)|0;while(1){if(!i)break;e=Oo(A,i)|0;while(1){if(!e)break;iL(e);e=_o(A,e)|0}i=sd(A,i)|0}return}function eL(A){A=A|0;var e=0,i=0;Td(A,137447,304,1)|0;FR(A);DX(A,a[(a[(Id(A)|0)+16>>2]|0)+116>>2]&1);A=A+16|0;a[(a[A>>2]|0)+176>>2]=0;e=qF(20)|0;i=a[A>>2]|0;a[i+172>>2]=e;a[i+184>>2]=0;i=qF(20)|0;e=a[A>>2]|0;a[e+180>>2]=i;a[e+200>>2]=0;e=qF(12)|0;i=a[A>>2]|0;a[i+196>>2]=e;a[i+192>>2]=0;i=qF(12)|0;e=a[A>>2]|0;a[e+188>>2]=i;a[e+208>>2]=0;e=qF(12)|0;A=a[A>>2]|0;a[A+204>>2]=e;a[A+216>>2]=1;return}function iL(A){A=A|0;var e=0,i=0,n=0,l=0,t=0;Td(A,137460,176,1)|0;VR(A)|0;l=kR(A,a[47174]|0,1,0)|0;n=A+16|0;a[(a[n>>2]|0)+156>>2]=l;l=dR(a[((a[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0,a[47168]|0,195059)|0;t=dR(a[((a[A>>2]&3|0)==2?A:A+-48|0)+40>>2]|0,a[47168]|0,195059)|0;e=a[n>>2]|0;i=e+154|0;f[i>>1]=1;f[e+168>>1]=1;if((l|0)==(t|0)&(r[l>>0]|0)!=0){f[i>>1]=1e3;t=e+156|0;a[t>>2]=(a[t>>2]|0)*100}if(qY(A)|0){t=a[n>>2]|0;f[t+154>>1]=0;a[t+156>>2]=0}t=(kR(A,a[47187]|0,0,0)|0)&255;r[(a[n>>2]|0)+152>>0]=t;t=(kR(A,a[47175]|0,1,0)|0)&65535;f[(a[n>>2]|0)+170>>1]=t;return}function rL(A){A=A|0;var e=0,i=0;fL(a[(a[A+16>>2]|0)+192>>2]|0);i=cd(A)|0;while(1){if(!i)break;e=Oo(A,i)|0;while(1){if(!e)break;wX(e);e=_o(A,e)|0}aL(i);i=sd(A,i)|0}nL(A);return}function fL(A){A=A|0;var e=0,i=0,f=0,n=0;while(1){if(!A)break;f=A+16|0;n=a[(a[f>>2]|0)+164>>2]|0;lL(A);e=a[f>>2]|0;if((r[e+156>>0]|0)!=1){A=n;continue}i=a[e+180>>2]|0;if(i){L2(i);e=a[f>>2]|0}i=a[e+172>>2]|0;if(i){L2(i);e=a[f>>2]|0}L2(e);L2(A);A=n}return}function aL(A){A=A|0;var e=0,i=0,r=0;r=A+16|0;e=a[r>>2]|0;i=a[e+172>>2]|0;if(i){L2(i);e=a[r>>2]|0}i=a[e+180>>2]|0;if(i){L2(i);e=a[r>>2]|0}i=a[e+188>>2]|0;if(i){L2(i);e=a[r>>2]|0}i=a[e+196>>2]|0;if(i){L2(i);e=a[r>>2]|0}i=a[e+204>>2]|0;if(i){L2(i);e=a[r>>2]|0}TF(a[e+104>>2]|0);TF(a[(a[r>>2]|0)+108>>2]|0);e=a[(a[r>>2]|0)+8>>2]|0;if(e|0)F5[a[(a[e+4>>2]|0)+4>>2]&127](A);Pd(A,137447)|0;return}function nL(A){A=A|0;var e=0,i=0,r=0;e=RB(A)|0;while(1){if(!e)break;nL(e);e=XB(e)|0}if(Td(A,137483,0,1)|0){r=A+16|0;e=a[r>>2]|0;i=a[e+184>>2]|0;if(i){L2(i);e=a[r>>2]|0}i=a[e+268>>2]|0;if(i){L2(i);e=a[r>>2]|0}i=a[e+216>>2]|0;if(i){L2(i);e=a[r>>2]|0}do{if(a[e+196>>2]|0){i=f[e+236>>1]|0;while(1){if((i|0)>(f[e+238>>1]|0))break;L2(a[(a[e+196>>2]|0)+(i<<6)+12>>2]|0);i=i+1|0;e=a[r>>2]|0}i=a[e+196>>2]|0;if((f[e+236>>1]|0)==-1){L2(i+-64|0);break}else{L2(i);break}}}while(0);if((Zd(A)|0)!=(A|0)){TF(a[(a[r>>2]|0)+12>>2]|0);Pd(A,137483)|0}}return}function lL(A){A=A|0;var e=0,i=0,r=0;r=A+16|0;i=a[r>>2]|0;e=a[i+176>>2]|0;while(1){A=e+-1|0;if((e|0)<=0)break;e=a[(a[i+172>>2]|0)+(A<<2)>>2]|0;Cy(e);L2(a[e+16>>2]|0);L2(e);e=A;i=a[r>>2]|0}e=a[i+184>>2]|0;while(1){A=e+-1|0;if((e|0)<=0)break;e=a[(a[(a[r>>2]|0)+180>>2]|0)+(A<<2)>>2]|0;Cy(e);L2(a[e+16>>2]|0);L2(e);e=A}return}function tL(A){A=A|0;if(gh(A)|0)cL(A);VJ(A);return}function cL(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0;l=k;k=k+48|0;n=l+32|0;f=l;e=bC(A,-1,8)|0;i=uC(A,0,f)|0;sC(A,2,8,f)|0;i=(i|0)==0;r=(e|0)<0;if(r&i)sL(A);else{if(i)a[f+16>>2]=3;else e=r?8:e;a[f+8>>2]=e;a[f+20>>2]=0;r=YE(A,n,0)|0;e=a[n>>2]|0;do{if((e|0)==1){sL(A);e=0}else{if(a[(a[(a[A+16>>2]|0)+8>>2]|0)+84>>2]|0){sL(A);e=0;break}a[f+12>>2]=1;i=0;while(1){if((i|0)>=(e|0))break;e=a[r+(i<<2)>>2]|0;bL(e,A);sL(e);i=i+1|0;e=a[n>>2]|0}uL(A);cC(a[n>>2]|0,r,A,f)|0;wL(A);kL(a[n>>2]|0,r,A);e=0}}while(0);while(1){if((e|0)>=(a[n>>2]|0))break;f=r+(e<<2)|0;L2(a[(a[(a[f>>2]|0)+16>>2]|0)+8>>2]|0);nL(a[f>>2]|0);Cd(A,a[f>>2]|0)|0;e=e+1|0}L2(r)}k=l;return}function sL(A){A=A|0;var e=0,i=0,r=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0;b=k;k=k+48|0;s=b+40|0;i=b;t=kR(A,Yo(A,0,85102,0)|0,-1,1)|0;zX(A,10);e=_Y(A,i)|0;hL(A,A);AL(A);r=(t|0)==1;n=i+32|0;l=(t|0)==2;t=(t|0)==3;c=i+28|0;i=i+24|0;while(1){Jz(A,e);if(r){e=3;break}if(a[n>>2]|0){ao(0,85108,s)|0;a[i>>2]=0;e=0}Py(A,(e|0)!=0&1);if(l){e=7;break}KW(A,e);if(t){e=9;break}u=(a[c>>2]|0)+-1|0;a[c>>2]=u;if(!((u|0)!=0&(a[i>>2]|0)!=0)){e=11;break}}if((e|0)==3)dL(A,1);else if((e|0)==7)dL(A,2);else if((e|0)==9)dL(A,2);else if((e|0)==11){if(f[(a[A+16>>2]|0)+136>>1]&16)BL(A);zY(A);CL(A);if((vR(Ho(A,85199)|0)|0)<<24>>24)GD(A)}k=b;return}function bL(A,e){A=A|0;e=e|0;var i=0,f=0;Td(A,137483,280,1)|0;i=qF(96)|0;A=a[A+16>>2]|0;a[A+8>>2]=i;e=a[e+16>>2]|0;f=a[e+8>>2]|0;s[i>>3]=+s[f>>3];s[i+24>>3]=+s[f+24>>3];a[A+144>>2]=a[e+144>>2];r[A+115>>0]=r[e+115>>0]|0;a[A+116>>2]=a[e+116>>2];a[A+248>>2]=a[e+248>>2];a[A+252>>2]=a[e+252>>2];a[A+244>>2]=a[e+244>>2];return}function uL(A){A=A|0;var e=0,i=0,r=0;e=qF((gh(A)|0)<<4)|0;i=cd(A)|0;while(1){if(!i)break;r=a[i+16>>2]|0;a[r+132>>2]=e;s[e>>3]=+s[r+16>>3]*.013888888888888888;s[e+8>>3]=+s[r+24>>3]*.013888888888888888;e=e+16|0;i=sd(A,i)|0}return}function wL(A){A=A|0;var e=0,i=0,r=0,f=0;r=a[(a[(cd(A)|0)+16>>2]|0)+132>>2]|0;e=r;i=cd(A)|0;while(1){if(!i)break;f=a[i+16>>2]|0;a[f+132>>2]=0;s[f+16>>3]=+s[e>>3]*72.0;s[f+24>>3]=+s[e+8>>3]*72.0;e=e+16|0;i=sd(A,i)|0}L2(r);return}function kL(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0;r=0;f=0;while(1){if((r|0)>=(A|0))break;t=(a[(a[(a[e+(r<<2)>>2]|0)+16>>2]|0)+180>>2]|0)+f|0;r=r+1|0;f=t}t=i+16|0;a[(a[t>>2]|0)+180>>2]=f;n=qF((f<<2)+4|0)|0;a[(a[t>>2]|0)+184>>2]=n;n=0;r=1;while(1){if((n|0)>=(A|0))break;l=(a[e+(n<<2)>>2]|0)+16|0;f=1;while(1){i=a[l>>2]|0;if((f|0)>(a[i+180>>2]|0))break;i=zE(a[(a[i+184>>2]|0)+(f<<2)>>2]|0)|0;a[(a[(a[t>>2]|0)+184>>2]|0)+(r<<2)>>2]=i;oL(a[(a[(a[l>>2]|0)+184>>2]|0)+(f<<2)>>2]|0,i);f=f+1|0;r=r+1|0}n=n+1|0}return}function oL(A,e){A=A|0;e=e|0;var i=0,f=0,n=0;Td(e,137483,280,1)|0;n=e+16|0;e=(a[n>>2]|0)+16|0;f=A+16|0;A=(a[f>>2]|0)+16|0;a[e>>2]=a[A>>2];a[e+4>>2]=a[A+4>>2];a[e+8>>2]=a[A+8>>2];a[e+12>>2]=a[A+12>>2];a[e+16>>2]=a[A+16>>2];a[e+20>>2]=a[A+20>>2];a[e+24>>2]=a[A+24>>2];a[e+28>>2]=a[A+28>>2];A=a[f>>2]|0;e=a[n>>2]|0;r[e+275>>0]=r[A+275>>0]|0;e=e+48|0;A=A+48|0;i=e+64|0;do{a[e>>2]=a[A>>2];e=e+4|0;A=A+4|0}while((e|0)<(i|0));A=a[(a[f>>2]|0)+180>>2]|0;a[(a[n>>2]|0)+180>>2]=A;e=qF((A<<2)+4|0)|0;a[(a[n>>2]|0)+184>>2]=e;e=1;while(1){i=a[f>>2]|0;if((e|0)>(A|0))break;i=zE(a[(a[i+184>>2]|0)+(e<<2)>>2]|0)|0;a[(a[(a[n>>2]|0)+184>>2]|0)+(e<<2)>>2]=i;oL(a[(a[(a[f>>2]|0)+184>>2]|0)+(e<<2)>>2]|0,i);e=e+1|0}f=i+12|0;a[(a[n>>2]|0)+12>>2]=a[f>>2];a[f>>2]=0;return}function hL(A,e){A=A|0;e=e|0;if((Zd(A)|0)!=(A|0))Td(A,137483,280,1)|0;if((A|0)==(e|0))a[(a[(Zd(A)|0)+16>>2]|0)+188>>2]=A;A=RB(A)|0;while(1){if(!A)break;hL(A,e);A=XB(A)|0}return}function dL(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0;b=k;k=k+1040|0;s=b+8|0;c=b;r=b+16|0;f=Yo(A,1,87171,195059)|0;n=Yo(A,1,85242,195059)|0;l=(e|0)>0;i=(e|0)==1;e=cd(A)|0;while(1){if(!e)break;if(l?(t=e+16|0,a[c>>2]=a[(a[t>>2]|0)+232>>2],S4(r,137395,c)|0,Vo(e,f,r)|0,!i):0){a[s>>2]=a[(a[t>>2]|0)+236>>2];S4(r,137395,s)|0;Vo(e,n,r)|0}e=sd(A,e)|0}k=b;return}function BL(A){A=A|0;var e=0,i=0,r=0;i=NB(A,86675,0)|0;if(i|0){e=cd(i)|0;while(1){if(!e)break;r=sd(i,e)|0;Wy(A,e);gL(A,e);aL(e);Ed(A,e)|0;e=r}UB(A,i)|0}return}function gL(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0;c=a[(a[e+16>>2]|0)+232>>2]|0;t=A+16|0;A=a[(a[t>>2]|0)+196>>2]|0;i=a[A+(c<<6)>>2]|0;l=A+(c<<6)+4|0;n=0;r=0;while(1){if((r|0)>=(i|0)){f=7;break}f=a[(a[l>>2]|0)+(r<<2)>>2]|0;r=r+1|0;if((f|0)==(e|0)){f=4;break}else n=f}if((f|0)==4){while(1){if((r|0)>=(i|0))break;f=a[A+(c<<6)+4>>2]|0;a[f+(r+-1<<2)>>2]=a[f+(r<<2)>>2];f=a[(a[t>>2]|0)+196>>2]|0;r=r+1|0;i=a[f+(c<<6)>>2]|0;A=f;f=4}a[A+(c<<6)>>2]=i+-1}else if((f|0)==7?(n|0)!=(e|0):0)gA(85208,85215,248,85225);return}function vL(A){A=A|0;return a[(a[(Zd(A)|0)+16>>2]|0)+188>>2]|0}function EL(A,e){A=A|0;e=e|0;var i=0;i=r[A+28>>0]|0;if(r[e+28>>0]|0)if(i<<24>>24){i=~~(+s[A>>3]-+s[e>>3]);if(!i)i=~~(+s[A+8>>3]-+s[e+8>>3])}else i=-1;else i=i<<24>>24!=0&1;return i|0}function CL(A){A=A|0;IL(A,1);return}function IL(A,e){A=A|0;e=e|0;var i=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0.0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0,U=0,x=0,T=0,j=0,P=0,S=0,O=0,K=0,_=0,q=0.0;_=k;k=k+656|0;R=_+592|0;N=_+552|0;i=_+544|0;T=_+96|0;j=_;K=_+632|0;P=A+16|0;O=f[(a[P>>2]|0)+136>>1]&14;X=O&65535;H=T+16|0;a[H>>2]=_+368;U=j+16|0;a[U>>2]=_+192;do{if(O<<16>>16){x=O<<16>>16==4;do{if(x){ZL(A);if(!(r[(a[(a[A+60>>2]|0)+16>>2]|0)+113>>0]&1))m=9;else{ao(0,85248,i)|0;m=9}}else if(O<<16>>16==8){ZL(A);if(!(r[(a[(a[A+60>>2]|0)+16>>2]|0)+113>>0]&1)){ce(A,0);u=0;b=0;c=0;break}else{GL(A);ce(A,1);u=0;b=0;c=0;break}}else m=9}while(0);if((m|0)==9){ID(A);if(SJ()|0)break;S=qF(96)|0;V=a[(a[P>>2]|0)+248>>2]|0;a[K+8>>2]=(V|0)/4|0;a[K+12>>2]=V;c=qF(512)|0;z=K+4|0;a[z>>2]=0;a[K>>2]=0;t=a[P>>2]|0;L=f[t+236>>1]|0;y=0;J=0;p=c;W=c;b=c;u=c;w=c;D=0;M=0;A:while(1){if((L|0)>(f[t+238>>1]|0))break;o=a[t+196>>2]|0;l=a[o+(L<<6)>>2]|0;Y=l+y|0;n=a[o+(L<<6)+4>>2]|0;i=a[n>>2]|0;if(!i)i=D;else{q=+(D|0);i=a[i+16>>2]|0;Z=+s[i+16>>3]-+s[i+88>>3];i=~~(Z>q?q:Z)}if((l|0)!=0?(F=a[n+(l+-1<<2)>>2]|0,(F|0)!=0):0){Z=+(M|0);n=a[F+16>>2]|0;q=+s[n+96>>3]+ +s[n+16>>3];n=~~(q=(l|0))break;c=a[(a[i+(L<<6)+4>>2]|0)+(I<<2)>>2]|0;C=c+16|0;i=a[C>>2]|0;l=a[i+112>>2]|0;if(l){l=l+16|0;t=a[(a[l>>2]|0)+96>>2]|0;if(!t){m=21;break A}B=t+56|0;i=i+16|0;a[B>>2]=a[i>>2];a[B+4>>2]=a[i+4>>2];a[B+8>>2]=a[i+8>>2];a[B+12>>2]=a[i+12>>2];r[(a[(a[l>>2]|0)+96>>2]|0)+81>>0]=1;i=a[C>>2]|0}if((r[i+156>>0]|0)!=0?(m5[a[17300>>2]&63](c)|0)<<24>>24==0:0){h=g;i=d;t=v;c=E;l=w}else{B=0;h=g;t=v;c=E;m=25}e:do{if((m|0)==25){while(1){m=0;o=a[C>>2]|0;l=a[(a[o+180>>2]|0)+(B<<2)>>2]|0;if(!l)break;switch(r[(a[l+16>>2]|0)+112>>0]|0){case 6:case 4:{i=h;l=d;break}default:{mL(l,1,16,64);i=h+1|0;a[d+(h<<2)>>2]=l;if(!(i&127)){n=eV(n,(h<<2)+516|0)|0;l=n;t=n;c=n;u=n;w=n}else l=d}}B=B+1|0;h=i;d=l;m=25}i=a[o+188>>2]|0;i:do{if(!i)l=w;else{B=0;l=w;while(1){i=a[i+(B<<2)>>2]|0;if(!i)break i;mL(i,2,0,128);w=h+1|0;a[d+(h<<2)>>2]=i;if(!(w&127)){n=eV(l,(h<<2)+516|0)|0;i=n;t=n;c=n;u=n;l=n}else i=d;o=a[C>>2]|0;B=B+1|0;h=w;d=i;i=a[o+188>>2]|0}}}while(0);i=a[o+204>>2]|0;if(!i)i=d;else{if(!(r[o+156>>0]|0)){E=o+96|0;q=+s[E>>3];B=o+240|0;s[E>>3]=+s[B>>3];s[B>>3]=q;B=0;o=d}else{B=0;o=d}while(1){i=a[i+(B<<2)>>2]|0;if(!i){i=o;break e}mL(i,0,0,128);w=h+1|0;a[o+(h<<2)>>2]=i;if(!(w&127)){n=eV(u,(h<<2)+516|0)|0;i=n;t=n;c=n;u=n;l=n}else i=o;B=B+1|0;h=w;o=i;i=a[(a[C>>2]|0)+204>>2]|0}}}}while(0);v=a[P>>2]|0;C=a[v+196>>2]|0;I=I+1|0;g=h;d=i;h=v;v=t;E=c;w=l;l=a[C+(L<<6)>>2]|0;i=C}L=L+1|0;y=Y;J=g;p=d;W=v;t=h;b=E;c=n;D=Q;M=G}if((m|0)==21)gA(85316,85329,313,85342);a[K>>2]=D;a[z>>2]=M;K4(W,J,4,58);a[S+84>>2]=qF((y<<5)+11520|0)|0;a[K+16>>2]=qF(L<<5)|0;A:do{if(O<<16>>16==2){i=(a[P>>2]|0)+192|0;while(1){n=a[i>>2]|0;if(!n)break A;l=n+16|0;i=a[l>>2]|0;if((r[i+156>>0]|0)==1?(a[i+104>>2]|0)!=0:0){LL(n);i=a[l>>2]|0}i=i+164|0}}}while(0);G=j+48|0;m=j+-48|0;Q=T+48|0;L=T+-48|0;Z=+(V|0);I=0;A:while(1){if((I|0)>=(J|0))break;E=p+(I<<2)|0;d=a[E>>2]|0;B=yL(d)|0;g=d+16|0;n=a[g>>2]|0;if(!(r[n+44>>0]|0)){n=(r[n+84>>0]|0)==0?B:d;i=n;n=a[n+16>>2]|0}else i=d;l=i+16|0;if(a[n+164>>2]&32){n=a[H>>2]|0;W6(n|0,a[l>>2]|0,176)|0;u=T;w=i;o=u+48|0;do{a[u>>2]=a[w>>2];u=u+4|0;w=w+4|0}while((u|0)<(o|0));a[H>>2]=n;w=a[i>>2]&3;u=a[T>>2]&3;a[((u|0)==3?T:Q)+40>>2]=a[((w|0)==2?i:i+-48|0)+40>>2];a[((u|0)==2?T:L)+40>>2]=a[((w|0)==3?i:i+48|0)+40>>2];u=n+16|0;w=(a[l>>2]|0)+56|0;o=u+40|0;do{a[u>>2]=a[w>>2];u=u+4|0;w=w+4|0}while((u|0)<(o|0));u=n+56|0;w=(a[l>>2]|0)+16|0;o=u+40|0;do{a[u>>2]=a[w>>2];u=u+4|0;w=w+4|0}while((u|0)<(o|0));r[n+112>>0]=1;a[n+116>>2]=i;i=T}h=i+16|0;C=1;i=I;while(1){v=i+1|0;if((v|0)>=(J|0))break;t=p+(v<<2)|0;i=a[t>>2]|0;if((B|0)!=(yL(i)|0))break;if(!(r[(a[g>>2]|0)+113>>0]|0)){c=i+16|0;n=a[c>>2]|0;if(!(r[n+44>>0]|0)){n=(r[n+84>>0]|0)==0?B:i;i=n;n=a[n+16>>2]|0}l=i+16|0;if(a[n+164>>2]&32){n=a[U>>2]|0;W6(n|0,a[l>>2]|0,176)|0;u=j;w=i;o=u+48|0;do{a[u>>2]=a[w>>2];u=u+4|0;w=w+4|0}while((u|0)<(o|0));a[U>>2]=n;w=a[i>>2]&3;u=a[j>>2]&3;a[((u|0)==3?j:G)+40>>2]=a[((w|0)==2?i:i+-48|0)+40>>2];a[((u|0)==2?j:m)+40>>2]=a[((w|0)==3?i:i+48|0)+40>>2];u=n+16|0;w=(a[l>>2]|0)+56|0;o=u+40|0;do{a[u>>2]=a[w>>2];u=u+4|0;w=w+4|0}while((u|0)<(o|0));u=n+56|0;w=(a[l>>2]|0)+16|0;o=u+40|0;do{a[u>>2]=a[w>>2];u=u+4|0;w=w+4|0}while((u|0)<(o|0));r[n+112>>0]=1;a[n+116>>2]=i}l=a[h>>2]|0;i=n+16|0;u=N;w=l+16|0;o=u+40|0;do{a[u>>2]=a[w>>2];u=u+4|0;w=w+4|0}while((u|0)<(o|0));u=R;w=i;o=u+40|0;do{a[u>>2]=a[w>>2];u=u+4|0;w=w+4|0}while((u|0)<(o|0));if(EL(N,R)|0)break;i=n+56|0;u=N;w=l+56|0;o=u+40|0;do{a[u>>2]=a[w>>2];u=u+4|0;w=w+4|0}while((u|0)<(o|0));u=R;w=i;o=u+40|0;do{a[u>>2]=a[w>>2];u=u+4|0;w=w+4|0}while((u|0)<(o|0));if(EL(N,R)|0)break;V=a[g>>2]|0;if((a[V+164>>2]&15|0)==2?(a[V+96>>2]|0)!=(a[(a[c>>2]|0)+96>>2]|0):0)break;if(a[(a[(a[t>>2]|0)+16>>2]|0)+164>>2]&64|0)break}C=C+1|0;i=v}if(x){if((C|0)==1)i=R;else i=qF(C<<2)|0;a[i>>2]=yL(a[E>>2]|0)|0;n=1;while(1){if((n|0)>=(C|0))break;a[i+(n<<2)>>2]=a[E+(n<<2)>>2];n=n+1|0}fp(A,i,C,X,17296);if((C|0)>1)L2(i);I=v;continue}i=a[d>>2]&3;V=a[((i|0)==3?d:d+48|0)+40>>2]|0;i=a[((i|0)==2?d:d+-48|0)+40>>2]|0;n=a[V+16>>2]|0;l=a[n+232>>2]|0;if((V|0)!=(i|0))if((l|0)==(a[(a[i+16>>2]|0)+232>>2]|0)){WL(A,K,S,p,I,C,X);I=v;continue}else{zL(A,K,S,p,I,C,X);I=v;continue}i=a[P>>2]|0;do{if((l|0)==(f[i+238>>1]|0))if((l|0)>0){i=~~(+s[(a[(a[a[(a[i+196>>2]|0)+(l+-1<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+s[n+24>>3]);break}else{i=~~+s[n+80>>3];break}else if((l|0)==(f[i+236>>1]|0)){i=~~(+s[n+24>>3]-+s[(a[(a[a[(a[i+196>>2]|0)+(l+1<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]);break}else{i=a[i+196>>2]|0;q=+s[n+24>>3];V=~~(+s[(a[(a[a[i+(l+-1<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-q);i=~~(q-+s[(a[(a[a[i+(l+1<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]);i=(V|0)<(i|0)?V:i;break}}while(0);LN(S,p,I,C,Z,+((i|0)/2|0|0),17296);i=0;while(1){if((i|0)>=(C|0)){I=v;continue A}n=a[(a[(a[p+(i+I<<2)>>2]|0)+16>>2]|0)+96>>2]|0;if(n|0)HR(A,n);i=i+1|0}}i=(a[P>>2]|0)+192|0;while(1){n=a[i>>2]|0;if(!n)break;l=n+16|0;i=a[l>>2]|0;if((r[i+156>>0]|0)==1?(a[i+104>>2]|0)!=0:0){LL(n);HR(A,a[(a[l>>2]|0)+104>>2]|0);i=a[l>>2]|0}i=i+164|0}if(!e){u=S;c=S}else{YL(A);u=S;c=S}}A:do{if((a[47197]|0)!=0|(a[47198]|0)!=0?(a[47203]|0)!=0|(a[47202]|0)!=0:0){t=cd(A)|0;while(1){if(!t)break A;e:do{if(a[47197]|0){i=qo(A,t)|0;while(1){if(!i)break e;n=i+-48|0;l=(a[i>>2]&3|0)==2?i:n;if(a[(a[l+16>>2]|0)+100>>2]|0){VN(l,1)|0;HR(A,a[(a[((a[i>>2]&3|0)==2?i:n)+16>>2]|0)+100>>2]|0)}i=$o(A,i)|0}}}while(0);e:do{if(a[47198]|0){i=Oo(A,t)|0;while(1){if(!i)break e;n=i+16|0;if(a[(a[n>>2]|0)+104>>2]|0?VN(i,0)|0:0)HR(A,a[(a[n>>2]|0)+104>>2]|0);i=_o(A,i)|0}}}while(0);t=sd(A,t)|0}}}while(0);switch(O&15){case 4:case 8:break;default:{L2(b);L2(a[u+84>>2]|0);L2(c);L2(a[K+16>>2]|0);OJ()}}a[47138]=1;a[47139]=1}}while(0);k=_;return}function ZL(A){A=A|0;var e=0,i=0,r=0.0,f=0;e=cd(A)|0;while(1){if(!e)break;i=a[e+16>>2]|0;if(a[i+204>>2]|0){f=i+96|0;r=+s[f>>3];i=i+240|0;s[f>>3]=+s[i>>3];s[i>>3]=r}e=sd(A,e)|0}return}function GL(A){A=A|0;var e=0,i=0,f=0,n=0;e=(a[A+16>>2]|0)+192|0;A:while(1){f=a[e>>2]|0;if(!f){e=12;break}n=f+16|0;e=a[n>>2]|0;do{if((r[e+156>>0]|0)==1){i=a[e+112>>2]|0;if(!i){i=a[e+104>>2]|0;if(!i)break;LL(f);e=i}else{i=a[(a[i+16>>2]|0)+96>>2]|0;if(!i){e=6;break A}f=i+56|0;e=e+16|0;a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];r[i+81>>0]=1;e=i}HR(A,e);e=a[n>>2]|0}}while(0);e=e+164|0}if((e|0)==6)gA(85516,85329,234,85535);else if((e|0)==12)return}function mL(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0;do{if(!e){n=a[A>>2]&3;e=a[((n|0)==3?A:A+48|0)+40>>2]|0;n=a[((n|0)==2?A:A+-48|0)+40>>2]|0;if((e|0)!=(n|0)){e=(a[(a[e+16>>2]|0)+232>>2]|0)==(a[(a[n+16>>2]|0)+232>>2]|0)?2:1;break}e=a[A+16>>2]|0;if(!(r[e+44>>0]|0))e=(r[e+84>>0]|0)==0?8:4;else e=4}}while(0);A:do{if(!i)switch(e|0){case 1:{i=a[A>>2]&3;i=(a[(a[(a[((i|0)==3?A:A+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)<(a[(a[(a[((i|0)==2?A:A+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)?16:32;break A}case 2:{i=a[A>>2]&3;i=(a[(a[(a[((i|0)==3?A:A+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)<(a[(a[(a[((i|0)==2?A:A+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)?16:32;break A}default:{i=16;break A}}}while(0);a[(a[A+16>>2]|0)+164>>2]=e|f|i;return}function QL(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0;y=k;k=k+624|0;G=y+584|0;Z=y+544|0;B=y+368|0;i=y+192|0;g=y+96|0;E=y;v=g+16|0;a[v>>2]=B;C=E+16|0;a[C>>2]=i;L=a[A>>2]|0;Q=a[e>>2]|0;I=L+16|0;h=a[I>>2]|0;e=a[h+164>>2]|0;f=e&15;m=Q+16|0;A=a[m>>2]|0;n=a[A+164>>2]&15;do{if((n|0)==(f|0)){o=yL(L)|0;d=yL(Q)|0;u=a[o>>2]|0;n=u&3;f=a[(a[((n|0)==3?o:o+48|0)+40>>2]|0)+16>>2]|0;n=a[(a[((n|0)==2?o:o+-48|0)+40>>2]|0)+16>>2]|0;l=(a[f+232>>2]|0)-(a[n+232>>2]|0)|0;w=a[d>>2]|0;b=w&3;c=a[(a[((b|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0;b=a[(a[((b|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0;t=(a[c+232>>2]|0)-(a[b+232>>2]|0)|0;l=(l|0)>-1?l:0-l|0;t=(t|0)>-1?t:0-t|0;if((l|0)!=(t|0)){A=l-t|0;break}n=~~(+s[f+16>>3]-+s[n+16>>3]);n=(n|0)>-1?n:0-n|0;f=~~(+s[c+16>>3]-+s[b+16>>3]);f=(f|0)>-1?f:0-f|0;if((n|0)!=(f|0)){A=n-f|0;break}n=u>>>4;f=w>>>4;if((n|0)!=(f|0)){A=n-f|0;break}if(!(r[h+44>>0]|0)){e=(r[h+84>>0]|0)==0?o:L;n=e;e=a[(a[e+16>>2]|0)+164>>2]|0}else n=L;f=n+16|0;if(e&32){W6(B|0,a[f>>2]|0,176)|0;l=g;t=n;c=l+48|0;do{a[l>>2]=a[t>>2];l=l+4|0;t=t+4|0}while((l|0)<(c|0));a[v>>2]=B;t=a[n>>2]&3;l=a[g>>2]&3;a[((l|0)==3?g:g+48|0)+40>>2]=a[((t|0)==2?n:n+-48|0)+40>>2];a[((l|0)==2?g:g+-48|0)+40>>2]=a[((t|0)==3?n:n+48|0)+40>>2];l=B+16|0;t=(a[f>>2]|0)+56|0;c=l+40|0;do{a[l>>2]=a[t>>2];l=l+4|0;t=t+4|0}while((l|0)<(c|0));l=B+56|0;t=(a[f>>2]|0)+16|0;c=l+40|0;do{a[l>>2]=a[t>>2];l=l+4|0;t=t+4|0}while((l|0)<(c|0));r[B+112>>0]=1;a[B+116>>2]=n;n=g;A=a[m>>2]|0}if(!(r[A+44>>0]|0)){A=(r[A+84>>0]|0)==0?d:Q;f=A;A=a[A+16>>2]|0}else f=Q;e=f+16|0;if(!(a[A+164>>2]&32))i=A;else{W6(i|0,a[e>>2]|0,176)|0;l=E;t=f;c=l+48|0;do{a[l>>2]=a[t>>2];l=l+4|0;t=t+4|0}while((l|0)<(c|0));a[C>>2]=i;t=a[f>>2]&3;l=a[E>>2]&3;a[((l|0)==3?E:E+48|0)+40>>2]=a[((t|0)==2?f:f+-48|0)+40>>2];a[((l|0)==2?E:E+-48|0)+40>>2]=a[((t|0)==3?f:f+48|0)+40>>2];l=i+16|0;t=(a[e>>2]|0)+56|0;c=l+40|0;do{a[l>>2]=a[t>>2];l=l+4|0;t=t+4|0}while((l|0)<(c|0));l=i+56|0;t=(a[e>>2]|0)+16|0;c=l+40|0;do{a[l>>2]=a[t>>2];l=l+4|0;t=t+4|0}while((l|0)<(c|0));r[i+112>>0]=1;a[i+116>>2]=f}e=a[n+16>>2]|0;A=i+16|0;l=Z;t=e+16|0;c=l+40|0;do{a[l>>2]=a[t>>2];l=l+4|0;t=t+4|0}while((l|0)<(c|0));l=G;t=A;c=l+40|0;do{a[l>>2]=a[t>>2];l=l+4|0;t=t+4|0}while((l|0)<(c|0));A=EL(Z,G)|0;if(!A){A=i+56|0;l=Z;t=e+56|0;c=l+40|0;do{a[l>>2]=a[t>>2];l=l+4|0;t=t+4|0}while((l|0)<(c|0));l=G;t=A;c=l+40|0;do{a[l>>2]=a[t>>2];l=l+4|0;t=t+4|0}while((l|0)<(c|0));A=EL(Z,G)|0;if(!A){e=a[(a[I>>2]|0)+164>>2]&192;A=a[(a[m>>2]|0)+164>>2]&192;if((e|0)==(A|0)){A=((a[L>>2]|0)>>>4)-((a[Q>>2]|0)>>>4)|0;break}else{A=e-A|0;break}}}}else A=n-f|0}while(0);k=y;return A|0}function LL(A){A=A|0;var e=0,i=0,f=0,n=0.0,l=0.0;f=A+16|0;e=a[f>>2]|0;if(a[e+176>>2]|0){e=a[e+180>>2]|0;while(1){e=(a[e>>2]|0)+16|0;i=a[e>>2]|0;if(!(r[i+112>>0]|0))break;else e=i+116|0}i=a[i+96>>2]|0;n=+s[i+24>>3];l=+s[i+32>>3];i=(a[(a[(Id(A)|0)+16>>2]|0)+116>>2]&1|0)!=0;A=a[f>>2]|0;f=a[(a[e>>2]|0)+96>>2]|0;s[f+56>>3]=(i?l:n)*.5+ +s[A+16>>3];s[f+64>>3]=+s[A+24>>3];r[f+81>>0]=1}return}function yL(A){A=A|0;var e=0,i=0;while(1){e=a[A+16>>2]|0;i=a[e+172>>2]|0;if(!i)break;else A=i}while(1){e=a[e+116>>2]|0;if(!e)break;A=e;e=a[e+16>>2]|0}return A|0}function WL(A,e,i,f,n,l,t){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;l=l|0;t=t|0;var c=0,b=0.0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0.0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0.0,y=0.0,W=0.0,z=0.0,Y=0.0;Q=k;k=k+1712|0;I=Q+1664|0;B=Q+1488|0;g=Q+1392|0;m=Q+1696|0;Z=Q+696|0;G=Q;o=g+16|0;a[o>>2]=B;h=a[f+(n<<2)>>2]|0;d=h+16|0;c=a[d>>2]|0;v=r[c+113>>0]|0;if(a[c+164>>2]&32){W6(B|0,c|0,176)|0;c=g;u=h;w=c+48|0;do{a[c>>2]=a[u>>2];c=c+4|0;u=u+4|0}while((c|0)<(w|0));a[o>>2]=B;c=a[g>>2]&3;a[((c|0)==3?g:g+48|0)+40>>2]=a[((a[h>>2]&3|0)==2?h:h+-48|0)+40>>2];a[((c|0)==2?g:g+-48|0)+40>>2]=a[((a[h>>2]&3|0)==3?h:h+48|0)+40>>2];c=B+16|0;u=(a[d>>2]|0)+56|0;w=c+40|0;do{a[c>>2]=a[u>>2];c=c+4|0;u=u+4|0}while((c|0)<(w|0));c=B+56|0;u=(a[d>>2]|0)+16|0;w=c+40|0;do{a[c>>2]=a[u>>2];c=c+4|0;u=u+4|0}while((c|0)<(w|0));r[B+112>>0]=1;a[B+116>>2]=h;h=g}c=1;while(1){if((c|0)>=(l|0)){C=6;break}if(!(r[(a[(a[f+(c+n<<2)>>2]|0)+16>>2]|0)+113>>0]|0))c=c+1|0;else{C=7;break}}A:do{if((C|0)==6)if(!(v<<24>>24)){c=a[h+16>>2]|0;if(a[c+96>>2]|0){iy(A,e,i,h,t);break}if((t|0)==2){m=a[h>>2]&3;ry(a[((m|0)==3?h:h+48|0)+40>>2]|0,a[((m|0)==2?h:h+-48|0)+40>>2]|0,f,n,l,2);break}g=r[c+49>>0]|0;v=r[c+89>>0]|0;if(!(g<<24>>24==1&v<<24>>24!=4)?!(g<<24>>24!=4&v<<24>>24==1):0){o=a[h>>2]&3;w=a[((o|0)==3?h:h+48|0)+40>>2]|0;o=a[((o|0)==2?h:h+-48|0)+40>>2]|0;c=a[w+16>>2]|0;u=a[c+232>>2]|0;if((u|0)>0){v=a[(a[A+16>>2]|0)+196>>2]|0;g=u+~(r[(a[(a[A+60>>2]|0)+16>>2]|0)+113>>0]&1)|0;b=+s[(a[(a[a[v+(g<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+s[v+(g<<6)+16>>3]-+s[c+24>>3]-+s[v+(u<<6)+24>>3]}else b=+(a[(a[A+16>>2]|0)+252>>2]|0);L=+(l+1|0);E=+(a[e+12>>2]|0)/L;b=b/L;ay(A,e,i,w,h,Z,1);ay(A,e,i,o,h,G,0);B=Z+52|0;g=G+52|0;o=(t|0)==10;h=i+80|0;c=0;while(1){if((c|0)>=(l|0))break A;d=a[f+(c+n<<2)>>2]|0;w=a[B>>2]|0;u=w+-1|0;Y=+s[Z+56+(u<<5)>>3];z=+s[Z+56+(u<<5)+16>>3];W=+s[Z+56+(u<<5)+24>>3];s[19215]=Y;s[19216]=W;c=c+1|0;L=+(c|0);y=E*L;s[19217]=z+y;L=W+b*L;s[19218]=L;s[19219]=Y;s[19220]=L;u=(a[g>>2]|0)+-1|0;Y=+s[G+56+(u<<5)+16>>3];s[19221]=Y;s[19222]=L+b;W=+s[G+56+(u<<5)>>3];z=+s[G+56+(u<<5)+24>>3];s[19225]=Y;s[19224]=z;s[19223]=W-y;s[19226]=L;u=0;while(1){if((u|0)>=(w|0)){u=0;break}w=Z+56+(u<<5)|0;a[I>>2]=a[w>>2];a[I+4>>2]=a[w+4>>2];a[I+8>>2]=a[w+8>>2];a[I+12>>2]=a[w+12>>2];a[I+16>>2]=a[w+16>>2];a[I+20>>2]=a[w+20>>2];a[I+24>>2]=a[w+24>>2];a[I+28>>2]=a[w+28>>2];CN(i,I);u=u+1|0;w=a[B>>2]|0}while(1){if((u|0)==3)break;t=153720+(u<<5)|0;a[I>>2]=a[t>>2];a[I+4>>2]=a[t+4>>2];a[I+8>>2]=a[t+8>>2];a[I+12>>2]=a[t+12>>2];a[I+16>>2]=a[t+16>>2];a[I+20>>2]=a[t+20>>2];a[I+24>>2]=a[t+24>>2];a[I+28>>2]=a[t+28>>2];CN(i,I);u=u+1|0}w=a[g>>2]|0;while(1){u=w+-1|0;if((w|0)<=0)break;w=G+56+(u<<5)|0;a[I>>2]=a[w>>2];a[I+4>>2]=a[w+4>>2];a[I+8>>2]=a[w+8>>2];a[I+12>>2]=a[w+12>>2];a[I+16>>2]=a[w+16>>2];a[I+20>>2]=a[w+20>>2];a[I+24>>2]=a[w+24>>2];a[I+28>>2]=a[w+28>>2];CN(i,I);w=u}if(o)u=KJ(i,m)|0;else u=ip(i,m)|0;w=a[m>>2]|0;if(!w)break A;vN(d,a[((a[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0,u,w,17296);a[h>>2]=0}}fy(A,e,i,f,n,l,h,(t|0)==10&1)}else C=7}while(0);if((C|0)==7)ey(A,f,n,l,h,t);k=Q;return}function zL(A,e,i,f,n,l,t){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;l=l|0;t=t|0;var c=0,b=0.0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0,x=0,T=0,j=0,P=0,S=0,O=0,K=0,_=0,q=0,$=0,AA=0,eA=0,iA=0;eA=k;k=k+2576|0;x=eA+2528|0;q=eA+2568|0;c=eA+2352|0;u=eA+2176|0;g=eA+1904|0;K=eA+1808|0;$=eA+1712|0;T=eA+1016|0;j=eA+320|0;P=eA+256|0;O=eA+2564|0;_=eA+2560|0;G=eA+288|0;m=eA+224|0;J=eA+192|0;p=eA+160|0;N=eA+128|0;R=eA+96|0;X=eA+64|0;H=eA+32|0;S=eA;B=g+16|0;a[B>>2]=c;w=K+16|0;a[w>>2]=u;AA=$+16|0;a[AA>>2]=eA+2e3;if(!(a[46734]|0)){a[46734]=$F(32e3)|0;a[46735]=$F(32e3)|0;a[46736]=2e3;a[46737]=2e3}v=a[f+(n<<2)>>2]|0;V=a[v>>2]&3;o=v+48|0;h=v+-48|0;V=(a[(a[(a[((V|0)==3?v:o)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(a[(a[(a[((V|0)==2?v:h)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0;d=v+16|0;if((((V|0)>-1?V:0-V|0)|0)<=1){c=a[d>>2]|0;if(!(a[c+164>>2]&32)){V=v;u=0}else{u=a[B>>2]|0;W6(u|0,c|0,176)|0;C=g;I=v;Z=C+48|0;do{a[C>>2]=a[I>>2];C=C+4|0;I=I+4|0}while((C|0)<(Z|0));a[B>>2]=u;C=a[g>>2]&3;a[((C|0)==3?g:g+48|0)+40>>2]=a[((a[v>>2]&3|0)==2?v:h)+40>>2];a[((C|0)==2?g:g+-48|0)+40>>2]=a[((a[v>>2]&3|0)==3?v:o)+40>>2];C=u+16|0;I=(a[d>>2]|0)+56|0;Z=C+40|0;do{a[C>>2]=a[I>>2];C=C+4|0;I=I+4|0}while((C|0)<(Z|0));c=a[B>>2]|0;C=c+56|0;I=(a[d>>2]|0)+16|0;Z=C+40|0;do{a[C>>2]=a[I>>2];C=C+4|0;I=I+4|0}while((C|0)<(Z|0));r[c+112>>0]=1;u=0;F=12}}else{W6(c|0,a[d>>2]|0,176)|0;C=g;I=v;Z=C+48|0;do{a[C>>2]=a[I>>2];C=C+4|0;I=I+4|0}while((C|0)<(Z|0));C=g+48|0;I=o;Z=C+48|0;do{a[C>>2]=a[I>>2];C=C+4|0;I=I+4|0}while((C|0)<(Z|0));a[B>>2]=c;c=a[d>>2]|0;if(!(a[c+164>>2]&32)){W6(u|0,c|0,176)|0;C=K;I=v;Z=C+48|0;do{a[C>>2]=a[I>>2];C=C+4|0;I=I+4|0}while((C|0)<(Z|0));a[w>>2]=u;w=a[g>>2]|0;a[((w&3|0)==3?g:g+48|0)+40>>2]=a[((a[v>>2]&3|0)==3?v:o)+40>>2];C=K+48|0;I=o;Z=C+48|0;do{a[C>>2]=a[I>>2];C=C+4|0;I=I+4|0}while((C|0)<(Z|0))}else{u=a[w>>2]|0;W6(u|0,c|0,176)|0;C=K;I=v;Z=C+48|0;do{a[C>>2]=a[I>>2];C=C+4|0;I=I+4|0}while((C|0)<(Z|0));a[w>>2]=u;C=a[K>>2]&3;a[((C|0)==3?K:K+48|0)+40>>2]=a[((a[v>>2]&3|0)==2?v:h)+40>>2];a[((C|0)==2?K:K+-48|0)+40>>2]=a[((a[v>>2]&3|0)==3?v:o)+40>>2];C=u+16|0;I=(a[d>>2]|0)+56|0;Z=C+40|0;do{a[C>>2]=a[I>>2];C=C+4|0;I=I+4|0}while((C|0)<(Z|0));c=a[w>>2]|0;C=c+56|0;I=(a[d>>2]|0)+16|0;Z=C+40|0;do{a[C>>2]=a[I>>2];C=C+4|0;I=I+4|0}while((C|0)<(Z|0));r[c+112>>0]=1;a[c+116>>2]=v;w=a[g>>2]|0;a[((w&3|0)==3?g:g+48|0)+40>>2]=a[((a[v>>2]&3|0)==2?v:h)+40>>2];C=(a[B>>2]|0)+16|0;I=(a[d>>2]|0)+56|0;Z=C+40|0;do{a[C>>2]=a[I>>2];C=C+4|0;I=I+4|0}while((C|0)<(Z|0))}c=yL(v)|0;while(1){u=a[(a[c+16>>2]|0)+172>>2]|0;if(!u)break;else c=u}a[((w&3|0)==2?g:g+-48|0)+40>>2]=a[((a[c>>2]&3|0)==2?c:c+-48|0)+40>>2];c=a[B>>2]|0;r[c+84>>0]=0;r[c+112>>0]=1;u=c+56|0;a[u>>2]=0;a[u+4>>2]=0;a[u+8>>2]=0;a[u+12>>2]=0;u=1;F=12}if((F|0)==12){a[c+116>>2]=v;V=g}D=(t|0)==2;if(D?(E=FL(A,V,a[46734]|0,q)|0,a[_>>2]=E,(E|0)!=0):0)F=63;else F=15;A:do{if((F|0)==15){Y=(t|0)==10;a[_>>2]=0;w=a[V>>2]&3;c=a[((w|0)==3?V:V+48|0)+40>>2]|0;w=a[((w|0)==2?V:V+-48|0)+40>>2]|0;a[q>>2]=w;VL(G,A,e,c,0,V);a[T>>2]=a[G>>2];a[T+4>>2]=a[G+4>>2];a[T+8>>2]=a[G+8>>2];a[T+12>>2]=a[G+12>>2];a[T+16>>2]=a[G+16>>2];a[T+20>>2]=a[G+20>>2];a[T+24>>2]=a[G+24>>2];a[T+28>>2]=a[G+28>>2];a[P>>2]=a[G>>2];a[P+4>>2]=a[G+4>>2];a[P+8>>2]=a[G+8>>2];a[P+12>>2]=a[G+12>>2];a[P+16>>2]=a[G+16>>2];a[P+20>>2]=a[G+20>>2];IN(i,V,1,T,JL(c)|0);Q=T+52|0;M=(a[Q>>2]|0)+-1|0;y=P+24|0;s[y>>3]=+s[T+56+(M<<5)+24>>3];W=P+8|0;s[W>>3]=+s[T+56+(M<<5)+8>>3];M=a[c+16>>2]|0;z=A+16|0;b=+s[M+24>>3]-+s[(a[(a[z>>2]|0)+196>>2]|0)+(a[M+232>>2]<<6)+16>>3];a[x>>2]=a[P>>2];a[x+4>>2]=a[P+4>>2];a[x+8>>2]=a[P+8>>2];a[x+12>>2]=a[P+12>>2];a[x+16>>2]=a[P+16>>2];a[x+20>>2]=a[P+20>>2];a[x+24>>2]=a[P+24>>2];a[x+28>>2]=a[P+28>>2];pL(m,x,1,b);a[P>>2]=a[m>>2];a[P+4>>2]=a[m+4>>2];a[P+8>>2]=a[m+8>>2];a[P+12>>2]=a[m+12>>2];a[P+16>>2]=a[m+16>>2];a[P+20>>2]=a[m+20>>2];a[P+24>>2]=a[m+24>>2];a[P+28>>2]=a[m+28>>2];m=P+16|0;if(+s[P>>3]<+s[m>>3]?+s[W>>3]<+s[y>>3]:0){M=a[Q>>2]|0;a[Q>>2]=M+1;M=T+56+(M<<5)|0;a[M>>2]=a[P>>2];a[M+4>>2]=a[P+4>>2];a[M+8>>2]=a[P+8>>2];a[M+12>>2]=a[P+12>>2];a[M+16>>2]=a[P+16>>2];a[M+20>>2]=a[P+20>>2];a[M+24>>2]=a[P+24>>2];a[M+28>>2]=a[P+28>>2]}C=A+60|0;L=j+52|0;I=i+56|0;Z=i+69|0;t=i+16|0;G=i+29|0;M=V;h=0;d=-1;e:while(1){B=c;g=0;c=0;v=M;while(1){o=w;E=w;if((r[(a[o+16>>2]|0)+156>>0]|0)!=1)break e;if((m5[a[17300>>2]&63](o)|0)<<24>>24)break e;w=g|1;iA=153720+(g<<5)|0;NL(J,e,A,a[(a[B+16>>2]|0)+232>>2]|0);a[iA>>2]=a[J>>2];a[iA+4>>2]=a[J+4>>2];a[iA+8>>2]=a[J+8>>2];a[iA+12>>2]=a[J+12>>2];a[iA+16>>2]=a[J+16>>2];a[iA+20>>2]=a[J+20>>2];a[iA+24>>2]=a[J+24>>2];a[iA+28>>2]=a[J+28>>2];if(!c){h=RL(o)|0;c=(h|0)<((r[(a[(a[C>>2]|0)+16>>2]|0)+113>>0]<<1&2)+3&255|0);h=c?h:h+-2|0;d=c?d:1;c=(c^1)&1}if(!((c|0)==0|(d|0)>0))break;iA=153720+(w<<5)|0;VL(p,A,e,o,v,a[a[(a[o+16>>2]|0)+180>>2]>>2]|0);a[iA>>2]=a[p>>2];a[iA+4>>2]=a[p+4>>2];a[iA+8>>2]=a[p+8>>2];a[iA+12>>2]=a[p+12>>2];a[iA+16>>2]=a[p+16>>2];a[iA+20>>2]=a[p+20>>2];a[iA+24>>2]=a[p+24>>2];a[iA+28>>2]=a[p+28>>2];iA=a[a[(a[E+16>>2]|0)+180>>2]>>2]|0;w=a[iA>>2]&3;B=a[((w|0)==3?iA:iA+48|0)+40>>2]|0;w=a[((w|0)==2?iA:iA+-48|0)+40>>2]|0;a[q>>2]=w;g=g+2|0;d=d+-1|0;v=iA}VL(N,A,e,o,v,a[a[(a[o+16>>2]|0)+180>>2]>>2]|0);a[j>>2]=a[N>>2];a[j+4>>2]=a[N+4>>2];a[j+8>>2]=a[N+8>>2];a[j+12>>2]=a[N+12>>2];a[j+16>>2]=a[N+16>>2];a[j+20>>2]=a[N+20>>2];a[j+24>>2]=a[N+24>>2];a[j+28>>2]=a[N+28>>2];mN(i,v,1,j,JL(a[((a[v>>2]&3|0)==2?v:v+-48|0)+40>>2]|0)|0);iA=j+56+((a[L>>2]|0)+-1<<5)|0;g=a[E+16>>2]|0;b=+s[(a[(a[z>>2]|0)+196>>2]|0)+(a[g+232>>2]<<6)+24>>3]+ +s[g+24>>3];a[x>>2]=a[iA>>2];a[x+4>>2]=a[iA+4>>2];a[x+8>>2]=a[iA+8>>2];a[x+12>>2]=a[iA+12>>2];a[x+16>>2]=a[iA+16>>2];a[x+20>>2]=a[iA+20>>2];a[x+24>>2]=a[iA+24>>2];a[x+28>>2]=a[iA+28>>2];pL(P,x,4,b);if(+s[P>>3]<+s[m>>3]?+s[W>>3]<+s[y>>3]:0){iA=a[L>>2]|0;a[L>>2]=iA+1;iA=j+56+(iA<<5)|0;a[iA>>2]=a[P>>2];a[iA+4>>2]=a[P+4>>2];a[iA+8>>2]=a[P+8>>2];a[iA+12>>2]=a[P+12>>2];a[iA+16>>2]=a[P+16>>2];a[iA+20>>2]=a[P+20>>2];a[iA+24>>2]=a[P+24>>2];a[iA+28>>2]=a[P+28>>2]}s[I>>3]=1.5707963267948966;r[Z>>0]=1;XL(i,M,v,T,j,w);if(!Y){c=ip(i,O)|0;w=a[O>>2]|0;if(D&(w|0)>4){iA=c+16|0;a[iA>>2]=a[c>>2];a[iA+4>>2]=a[c+4>>2];a[iA+8>>2]=a[c+8>>2];a[iA+12>>2]=a[c+12>>2];iA=c+32|0;w=c+(w+-1<<4)|0;a[iA>>2]=a[w>>2];a[iA+4>>2]=a[w+4>>2];a[iA+8>>2]=a[w+8>>2];a[iA+12>>2]=a[w+12>>2];z6(c+48|0,w|0,16)|0;a[O>>2]=4;w=4}else F=33}else{c=KJ(i,O)|0;w=a[O>>2]|0;F=33}if((F|0)==33){F=0;if(!w)break A}v=a[_>>2]|0;o=v+w|0;if((o|0)>(a[46736]|0)){a[46736]=o<<1;g=eV(a[46734]|0,o<<5)|0;a[46734]=g;w=a[O>>2]|0}else g=a[46734]|0;B=0;o=v;while(1){if((B|0)>=(w|0))break;iA=g+(o<<4)|0;v=c+(B<<4)|0;a[iA>>2]=a[v>>2];a[iA+4>>2]=a[v+4>>2];a[iA+8>>2]=a[v+8>>2];a[iA+12>>2]=a[v+12>>2];B=B+1|0;o=o+1|0}a[_>>2]=o;w=HL(a[a[(a[E+16>>2]|0)+180>>2]>>2]|0,h,g,_)|0;UL(M,i);o=a[w>>2]&3;c=a[((o|0)==3?w:w+48|0)+40>>2]|0;o=a[((o|0)==2?w:w+-48|0)+40>>2]|0;a[q>>2]=o;M=c+16|0;VL(R,A,e,c,a[a[(a[M>>2]|0)+172>>2]>>2]|0,w);a[T>>2]=a[R>>2];a[T+4>>2]=a[R+4>>2];a[T+8>>2]=a[R+8>>2];a[T+12>>2]=a[R+12>>2];a[T+16>>2]=a[R+16>>2];a[T+20>>2]=a[R+20>>2];a[T+24>>2]=a[R+24>>2];a[T+28>>2]=a[R+28>>2];IN(i,w,1,T,JL(c)|0);iA=T+56+((a[Q>>2]|0)+-1<<5)|0;M=a[M>>2]|0;b=+s[M+24>>3]-+s[(a[(a[z>>2]|0)+196>>2]|0)+(a[M+232>>2]<<6)+16>>3];a[x>>2]=a[iA>>2];a[x+4>>2]=a[iA+4>>2];a[x+8>>2]=a[iA+8>>2];a[x+12>>2]=a[iA+12>>2];a[x+16>>2]=a[iA+16>>2];a[x+20>>2]=a[iA+20>>2];a[x+24>>2]=a[iA+24>>2];a[x+28>>2]=a[iA+28>>2];pL(P,x,1,b);if(+s[P>>3]<+s[m>>3]?+s[W>>3]<+s[y>>3]:0){iA=a[Q>>2]|0;a[Q>>2]=iA+1;iA=T+56+(iA<<5)|0;a[iA>>2]=a[P>>2];a[iA+4>>2]=a[P+4>>2];a[iA+8>>2]=a[P+8>>2];a[iA+12>>2]=a[P+12>>2];a[iA+16>>2]=a[P+16>>2];a[iA+20>>2]=a[P+20>>2];a[iA+24>>2]=a[P+24>>2];a[iA+28>>2]=a[P+28>>2]}s[t>>3]=-1.5707963267948966;r[G>>0]=1;M=w;w=o}c=g|1;d=153720+(g<<5)|0;NL(X,e,A,a[(a[B+16>>2]|0)+232>>2]|0);a[d>>2]=a[X>>2];a[d+4>>2]=a[X+4>>2];a[d+8>>2]=a[X+8>>2];a[d+12>>2]=a[X+12>>2];a[d+16>>2]=a[X+16>>2];a[d+20>>2]=a[X+20>>2];a[d+24>>2]=a[X+24>>2];a[d+28>>2]=a[X+28>>2];VL(H,A,e,o,v,0);a[j>>2]=a[H>>2];a[j+4>>2]=a[H+4>>2];a[j+8>>2]=a[H+8>>2];a[j+12>>2]=a[H+12>>2];a[j+16>>2]=a[H+16>>2];a[j+20>>2]=a[H+20>>2];a[j+24>>2]=a[H+24>>2];a[j+28>>2]=a[H+28>>2];a[P>>2]=a[H>>2];a[P+4>>2]=a[H+4>>2];a[P+8>>2]=a[H+8>>2];a[P+12>>2]=a[H+12>>2];a[P+16>>2]=a[H+16>>2];a[P+20>>2]=a[H+20>>2];a[P+24>>2]=a[H+24>>2];a[P+28>>2]=a[H+28>>2];d=(u|0)!=0;B=v+-48|0;mN(i,d?K:v,1,j,JL(a[((a[v>>2]&3|0)==2?v:B)+40>>2]|0)|0);iA=(a[L>>2]|0)+-1|0;s[y>>3]=+s[j+56+(iA<<5)+24>>3];s[W>>3]=+s[j+56+(iA<<5)+8>>3];iA=a[E+16>>2]|0;b=+s[(a[(a[z>>2]|0)+196>>2]|0)+(a[iA+232>>2]<<6)+24>>3]+ +s[iA+24>>3];a[x>>2]=a[P>>2];a[x+4>>2]=a[P+4>>2];a[x+8>>2]=a[P+8>>2];a[x+12>>2]=a[P+12>>2];a[x+16>>2]=a[P+16>>2];a[x+20>>2]=a[P+20>>2];a[x+24>>2]=a[P+24>>2];a[x+28>>2]=a[P+28>>2];pL(S,x,4,b);a[P>>2]=a[S>>2];a[P+4>>2]=a[S+4>>2];a[P+8>>2]=a[S+8>>2];a[P+12>>2]=a[S+12>>2];a[P+16>>2]=a[S+16>>2];a[P+20>>2]=a[S+20>>2];a[P+24>>2]=a[S+24>>2];a[P+28>>2]=a[S+28>>2];if(+s[P>>3]<+s[m>>3]?+s[W>>3]<+s[y>>3]:0){iA=a[L>>2]|0;a[L>>2]=iA+1;iA=j+56+(iA<<5)|0;a[iA>>2]=a[P>>2];a[iA+4>>2]=a[P+4>>2];a[iA+8>>2]=a[P+8>>2];a[iA+12>>2]=a[P+12>>2];a[iA+16>>2]=a[P+16>>2];a[iA+20>>2]=a[P+20>>2];a[iA+24>>2]=a[P+24>>2];a[iA+28>>2]=a[P+28>>2]}XL(i,M,v,T,j,c);if(Y)h=KJ(i,O)|0;else h=ip(i,O)|0;c=a[O>>2]|0;if(!(D&(c|0)>4)){if(!c)break}else{iA=h+16|0;a[iA>>2]=a[h>>2];a[iA+4>>2]=a[h+4>>2];a[iA+8>>2]=a[h+8>>2];a[iA+12>>2]=a[h+12>>2];iA=h+32|0;c=h+(c+-1<<4)|0;a[iA>>2]=a[c>>2];a[iA+4>>2]=a[c+4>>2];a[iA+8>>2]=a[c+8>>2];a[iA+12>>2]=a[c+12>>2];z6(h+48|0,c|0,16)|0;a[O>>2]=4;c=4}w=a[_>>2]|0;u=w+c|0;if((u|0)>(a[46736]|0)){a[46736]=u<<1;o=eV(a[46734]|0,u<<5)|0;a[46734]=o;c=a[O>>2]|0}else o=a[46734]|0;u=0;while(1){if((u|0)>=(c|0))break;iA=o+(w<<4)|0;O=h+(u<<4)|0;a[iA>>2]=a[O>>2];a[iA+4>>2]=a[O+4>>2];a[iA+8>>2]=a[O+8>>2];a[iA+12>>2]=a[O+12>>2];u=u+1|0;w=w+1|0}a[_>>2]=w;UL(M,i);if(d)c=(a[K>>2]&3|0)==2?K:K+-48|0;else c=(a[v>>2]&3|0)==2?v:B;a[q>>2]=a[c+40>>2];E=w;F=63}}while(0);A:do{if((F|0)==63){if((l|0)==1){vN(V,a[q>>2]|0,a[46734]|0,E,17296);break}g=e+12|0;v=E+-1|0;b=+((U(a[g>>2]|0,l+-1|0)|0)/2|0|0);u=a[46734]|0;c=1;while(1){if((c|0)>=(v|0))break;iA=u+(c<<4)|0;s[iA>>3]=+s[iA>>3]-b;c=c+1|0}c=a[46736]|0;if((c|0)>(a[46737]|0)){a[46737]=c;w=eV(a[46735]|0,c<<4)|0;a[46735]=w;u=a[46734]|0}else w=a[46735]|0;c=0;while(1){if((c|0)>=(E|0))break;iA=w+(c<<4)|0;e=u+(c<<4)|0;a[iA>>2]=a[e>>2];a[iA+4>>2]=a[e+4>>2];a[iA+8>>2]=a[e+8>>2];a[iA+12>>2]=a[e+12>>2];c=c+1|0}vN(V,a[q>>2]|0,w,E,17296);d=$+48|0;B=$+-48|0;h=1;while(1){if((h|0)>=(l|0))break A;w=a[f+(h+n<<2)>>2]|0;o=w+16|0;c=a[o>>2]|0;if(a[c+164>>2]&32){u=a[AA>>2]|0;W6(u|0,c|0,176)|0;C=$;I=w;Z=C+48|0;do{a[C>>2]=a[I>>2];C=C+4|0;I=I+4|0}while((C|0)<(Z|0));a[AA>>2]=u;C=a[$>>2]&3;a[((C|0)==3?$:d)+40>>2]=a[((a[w>>2]&3|0)==2?w:w+-48|0)+40>>2];a[((C|0)==2?$:B)+40>>2]=a[((a[w>>2]&3|0)==3?w:w+48|0)+40>>2];C=u+16|0;I=(a[o>>2]|0)+56|0;Z=C+40|0;do{a[C>>2]=a[I>>2];C=C+4|0;I=I+4|0}while((C|0)<(Z|0));c=a[AA>>2]|0;C=c+56|0;I=(a[o>>2]|0)+16|0;Z=C+40|0;do{a[C>>2]=a[I>>2];C=C+4|0;I=I+4|0}while((C|0)<(Z|0));r[c+112>>0]=1;a[c+116>>2]=w;w=$}o=a[46734]|0;c=1;while(1){if((c|0)>=(v|0))break;iA=o+(c<<4)|0;s[iA>>3]=+s[iA>>3]+ +(a[g>>2]|0);c=c+1|0}u=a[46735]|0;c=0;while(1){if((c|0)>=(E|0))break;iA=u+(c<<4)|0;q=o+(c<<4)|0;a[iA>>2]=a[q>>2];a[iA+4>>2]=a[q+4>>2];a[iA+8>>2]=a[q+8>>2];a[iA+12>>2]=a[q+12>>2];c=c+1|0}vN(w,a[((a[w>>2]&3|0)==2?w:w+-48|0)+40>>2]|0,u,E,17296);h=h+1|0}}}while(0);k=eA;return}function YL(A){A=A|0;var e=0,i=0,r=0;e=cd(A)|0;while(1){if(!e)break;i=Oo(A,e)|0;while(1){if(!i)break;if((m5[a[4324]&63](i)|0)<<24>>24?(r=a[(a[i+16>>2]|0)+8>>2]|0,r|0):0)DL(r);i=_o(A,i)|0}e=sd(A,e)|0}return}function DL(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;f=a[A+4>>2]|0;n=$F(f*48|0)|0;e=n;i=0;r=(a[A>>2]|0)+((f+-1|0)*48|0)|0;while(1){if((i|0)>=(f|0)){e=0;break}ML(r,e);e=e+48|0;i=i+1|0;r=r+-48|0}while(1){i=a[A>>2]|0;if((e|0)>=(f|0))break;L2(a[i+(e*48|0)>>2]|0);e=e+1|0}L2(i);a[A>>2]=n;return}function ML(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;n=a[A+4>>2]|0;l=$F(n<<4)|0;i=l;r=0;f=(a[A>>2]|0)+(n+-1<<4)|0;while(1){if((r|0)>=(n|0))break;a[i>>2]=a[f>>2];a[i+4>>2]=a[f+4>>2];a[i+8>>2]=a[f+8>>2];a[i+12>>2]=a[f+12>>2];i=i+16|0;r=r+1|0;f=f+-16|0}a[e>>2]=l;a[e+4>>2]=n;a[e+8>>2]=a[A+12>>2];a[e+12>>2]=a[A+8>>2];l=e+16|0;n=A+32|0;a[l>>2]=a[n>>2];a[l+4>>2]=a[n+4>>2];a[l+8>>2]=a[n+8>>2];a[l+12>>2]=a[n+12>>2];l=e+32|0;n=A+16|0;a[l>>2]=a[n>>2];a[l+4>>2]=a[n+4>>2];a[l+8>>2]=a[n+8>>2];a[l+12>>2]=a[n+12>>2];return}function FL(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0.0,t=0.0,c=0.0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0;I=k;k=k+96|0;h=I+80|0;B=I+64|0;d=I+48|0;v=I+32|0;E=I+16|0;C=I;b=e;while(1){g=b+16|0;n=a[g>>2]|0;if(!(r[n+112>>0]|0))break;b=a[n+116>>2]|0}n=a[b>>2]&3;w=a[((n|0)==2?b:b+-48|0)+40>>2]|0;n=a[((n|0)==3?b:b+48|0)+40>>2]|0;b=w+16|0;u=n+16|0;Z=(a[(a[b>>2]|0)+232>>2]|0)-(a[(a[u>>2]|0)+232>>2]|0)|0;switch(((Z|0)>-1?Z:0-Z|0)|0){case 1:{n=0;break}case 2:{if(!(r[(a[(a[A+60>>2]|0)+16>>2]|0)+113>>0]&1))o=6;else n=0;break}default:o=6}do{if((o|0)==6){if((a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)==(n|0)){a[f>>2]=w;Z=(a[u>>2]|0)+16|0;o=(a[g>>2]|0)+16|0;a[B>>2]=a[Z>>2];a[B+4>>2]=a[Z+4>>2];a[B+8>>2]=a[Z+8>>2];a[B+12>>2]=a[Z+12>>2];a[h>>2]=a[o>>2];a[h+4>>2]=a[o+4>>2];a[h+8>>2]=a[o+8>>2];a[h+12>>2]=a[o+12>>2];$L(v,B,h);o=(a[b>>2]|0)+16|0;Z=(a[g>>2]|0)+56|0;a[B>>2]=a[o>>2];a[B+4>>2]=a[o+4>>2];a[B+8>>2]=a[o+8>>2];a[B+12>>2]=a[o+12>>2];a[h>>2]=a[Z>>2];a[h+4>>2]=a[Z+4>>2];a[h+8>>2]=a[Z+8>>2];a[h+12>>2]=a[Z+12>>2];$L(E,B,h)}else{a[f>>2]=n;Z=(a[b>>2]|0)+16|0;o=(a[g>>2]|0)+56|0;a[B>>2]=a[Z>>2];a[B+4>>2]=a[Z+4>>2];a[B+8>>2]=a[Z+8>>2];a[B+12>>2]=a[Z+12>>2];a[h>>2]=a[o>>2];a[h+4>>2]=a[o+4>>2];a[h+8>>2]=a[o+8>>2];a[h+12>>2]=a[o+12>>2];$L(v,B,h);o=(a[u>>2]|0)+16|0;Z=(a[g>>2]|0)+16|0;a[B>>2]=a[o>>2];a[B+4>>2]=a[o+4>>2];a[B+8>>2]=a[o+8>>2];a[B+12>>2]=a[o+12>>2];a[h>>2]=a[Z>>2];a[h+4>>2]=a[Z+4>>2];a[h+8>>2]=a[Z+8>>2];a[h+12>>2]=a[Z+12>>2];$L(E,B,h)}n=a[(a[g>>2]|0)+96>>2]|0;if(!n){n=i+16|0;a[i>>2]=a[v>>2];a[i+4>>2]=a[v+4>>2];a[i+8>>2]=a[v+8>>2];a[i+12>>2]=a[v+12>>2];a[n>>2]=a[v>>2];a[n+4>>2]=a[v+4>>2];a[n+8>>2]=a[v+8>>2];a[n+12>>2]=a[v+12>>2];n=i+48|0;Z=i+32|0;a[Z>>2]=a[E>>2];a[Z+4>>2]=a[E+4>>2];a[Z+8>>2]=a[E+8>>2];a[Z+12>>2]=a[E+12>>2];a[n>>2]=a[E>>2];a[n+4>>2]=a[E+4>>2];a[n+8>>2]=a[E+8>>2];a[n+12>>2]=a[E+12>>2];n=4;break}t=+s[n+24>>3];l=+s[n+32>>3];o=(a[(a[(Id(w)|0)+16>>2]|0)+116>>2]&1|0)==0;c=o?l:t;Z=(a[(a[g>>2]|0)+96>>2]|0)+56|0;a[C>>2]=a[Z>>2];a[C+4>>2]=a[Z+4>>2];a[C+8>>2]=a[Z+8>>2];a[C+12>>2]=a[Z+12>>2];a[d>>2]=a[E>>2];a[d+4>>2]=a[E+4>>2];a[d+8>>2]=a[E+8>>2];a[d+12>>2]=a[E+12>>2];a[B>>2]=a[v>>2];a[B+4>>2]=a[v+4>>2];a[B+8>>2]=a[v+8>>2];a[B+12>>2]=a[v+12>>2];a[h>>2]=a[Z>>2];a[h+4>>2]=a[Z+4>>2];a[h+8>>2]=a[Z+8>>2];a[h+12>>2]=a[Z+12>>2];Z=(Ay(d,B,h)|0)==0;l=(o?t:l)*.5;t=+s[C>>3];if(Z){s[C>>3]=t-l;Z=C+8|0;s[Z>>3]=+s[Z>>3]+c*.5}else{s[C>>3]=t+l;Z=C+8|0;s[Z>>3]=+s[Z>>3]-c*.5}n=i+16|0;a[i>>2]=a[v>>2];a[i+4>>2]=a[v+4>>2];a[i+8>>2]=a[v+8>>2];a[i+12>>2]=a[v+12>>2];a[n>>2]=a[v>>2];a[n+4>>2]=a[v+4>>2];a[n+8>>2]=a[v+8>>2];a[n+12>>2]=a[v+12>>2];n=i+32|0;Z=i+48|0;v=i+64|0;a[v>>2]=a[C>>2];a[v+4>>2]=a[C+4>>2];a[v+8>>2]=a[C+8>>2];a[v+12>>2]=a[C+12>>2];a[Z>>2]=a[C>>2];a[Z+4>>2]=a[C+4>>2];a[Z+8>>2]=a[C+8>>2];a[Z+12>>2]=a[C+12>>2];a[n>>2]=a[C>>2];a[n+4>>2]=a[C+4>>2];a[n+8>>2]=a[C+8>>2];a[n+12>>2]=a[C+12>>2];n=i+80|0;Z=i+96|0;a[Z>>2]=a[E>>2];a[Z+4>>2]=a[E+4>>2];a[Z+8>>2]=a[E+8>>2];a[Z+12>>2]=a[E+12>>2];a[n>>2]=a[E>>2];a[n+4>>2]=a[E+4>>2];a[n+8>>2]=a[E+8>>2];a[n+12>>2]=a[E+12>>2];n=7}}while(0);k=I;return n|0}function VL(A,e,i,f,n,l){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;l=l|0;var t=0.0,c=0,b=0,u=0.0,w=0,k=0.0,o=0.0,h=0;h=a[f+16>>2]|0;o=+s[h+16>>3];t=o-+s[h+88>>3];u=t+-4.0;b=OL(e,f,n,l,-1)|0;if(!b){w=~~(t+(u>=0.0?-3.5:-4.5));c=a[i>>2]|0;c=(c|0)>(w|0)?w:c}else{c=KL(e,f,b)|0;do{if(!c){w=a[b+16>>2]|0;t=+s[w+240>>3]+ +s[w+16>>3];if(!(r[w+156>>0]|0)){t=+(a[(a[e+16>>2]|0)+248>>2]|0)*.5+t;break}else{t=t+ +(a[i+8>>2]|0);break}}else t=+s[(a[c+16>>2]|0)+32>>3]+ +(a[i+8>>2]|0)}while(0);k=t=0.0?.5:-.5))}k=+(c|0);w=(r[h+156>>0]|0)==1;if(w?(a[h+104>>2]|0)!=0:0)u=o+10.0;else u=o+4.0+ +s[h+96>>3];b=OL(e,f,n,l,1)|0;if(!b){f=~~(u+(u>=0.0?.5:-.5));c=a[i+4>>2]|0;c=(c|0)<(f|0)?f:c}else{c=KL(e,f,b)|0;do{if(!c){f=a[b+16>>2]|0;t=+s[f+16>>3]-+s[f+88>>3];if(!(r[f+156>>0]|0)){t=t-+(a[(a[e+16>>2]|0)+248>>2]|0)*.5;break}else{t=t-+(a[i+8>>2]|0);break}}else t=+s[(a[c+16>>2]|0)+16>>3]-+(a[i+8>>2]|0)}while(0);u=t>u?t:u;c=~~(u+(u>=0.0?.5:-.5))}t=+(c|0);if(w?(a[h+104>>2]|0)!=0:0){t=t-+s[h+96>>3];if(t>3];e=a[(a[e+16>>2]|0)+196>>2]|0;h=a[h+232>>2]|0;u=o-+s[e+(h<<6)+16>>3];o=+s[e+(h<<6)+24>>3]+o;s[A>>3]=k;s[A+8>>3]=u;s[A+16>>3]=t;s[A+24>>3]=o;return}function JL(A){A=A|0;A=a[A+16>>2]|0;if((r[A+156>>0]|0)==1)if((a[A+176>>2]|0)>1)A=1;else A=(a[A+184>>2]|0)>1&1;else A=0;return A|0}function pL(A,e,i,r){A=A|0;e=e|0;i=i|0;r=+r;var f=0,n=0;n=k;k=k+32|0;f=n;switch(i|0){case 1:{SL(f,+s[e>>3],r,+s[e+16>>3],+s[e+8>>3]);break}case 4:{SL(f,+s[e>>3],+s[e+24>>3],+s[e+16>>3],r);break}default:{}}a[A>>2]=a[f>>2];a[A+4>>2]=a[f+4>>2];a[A+8>>2]=a[f+8>>2];a[A+12>>2]=a[f+12>>2];a[A+16>>2]=a[f+16>>2];a[A+20>>2]=a[f+20>>2];a[A+24>>2]=a[f+24>>2];a[A+28>>2]=a[f+28>>2];k=n;return}function NL(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,n=0.0,l=0.0,t=0.0,c=0,b=0,u=0,w=0,k=0;b=a[e+16>>2]|0;c=b+(r<<5)|0;t=+s[c>>3];u=b+(r<<5)+8|0;n=+s[u>>3];w=b+(r<<5)+16|0;f=+s[w>>3];b=b+(r<<5)+24|0;l=+s[b>>3];if(t==f){i=a[(a[i+16>>2]|0)+196>>2]|0;k=r+1|0;t=+(a[e>>2]|0);n=+s[i+(k<<6)+24>>3]+ +s[(a[(a[a[i+(k<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];f=+(a[e+4>>2]|0);l=+s[(a[(a[a[i+(r<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+s[i+(r<<6)+16>>3];s[c>>3]=t;s[u>>3]=n;s[w>>3]=f;s[b>>3]=l}s[A>>3]=t;s[A+8>>3]=n;s[A+16>>3]=f;s[A+24>>3]=l;return}function RL(A){A=A|0;var e=0,i=0;A=a[A+16>>2]|0;i=A+16|0;e=0;while(1){A=a[a[A+180>>2]>>2]|0;A=a[(a[((a[A>>2]&3|0)==2?A:A+-48|0)+40>>2]|0)+16>>2]|0;if((r[A+156>>0]|0)!=1)break;if((a[A+184>>2]|0)!=1)break;if((a[A+176>>2]|0)!=1)break;if(+s[A+16>>3]!=+s[i>>3])break;e=e+1|0}return e|0}function XL(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0,s=0;s=k;k=k+32|0;c=s;l=TL(e,-1)|0;e=TL(e,1)|0;if(!((l|0)!=0?!(JN(l)|0):0))t=3;do{if((t|0)==3){if(e|0?(JN(e)|0)==0:0)break;l=jL(i,-1)|0;e=jL(i,1)|0;if(l|0?(JN(l)|0)==0:0)break;if(e|0?(JN(e)|0)==0:0)break;l=r+52|0;e=0;while(1){if((e|0)>=(a[l>>2]|0))break;i=r+56+(e<<5)|0;a[c>>2]=a[i>>2];a[c+4>>2]=a[i+4>>2];a[c+8>>2]=a[i+8>>2];a[c+12>>2]=a[i+12>>2];a[c+16>>2]=a[i+16>>2];a[c+20>>2]=a[i+20>>2];a[c+24>>2]=a[i+24>>2];a[c+28>>2]=a[i+28>>2];CN(A,c);e=e+1|0}l=a[A+80>>2]|0;t=n+-3|0;e=0;while(1){if((e|0)>=(n|0))break;r=153720+(e<<5)|0;a[c>>2]=a[r>>2];a[c+4>>2]=a[r+4>>2];a[c+8>>2]=a[r+8>>2];a[c+12>>2]=a[r+12>>2];a[c+16>>2]=a[r+16>>2];a[c+20>>2]=a[r+20>>2];a[c+24>>2]=a[r+24>>2];a[c+28>>2]=a[r+28>>2];CN(A,c);e=e+1|0}i=l+1|0;t=t+i|0;l=a[f+52>>2]|0;while(1){e=l+-1|0;if((l|0)<=0)break;l=f+56+(e<<5)|0;a[c>>2]=a[l>>2];a[c+4>>2]=a[l+4>>2];a[c+8>>2]=a[l+8>>2];a[c+12>>2]=a[l+12>>2];a[c+16>>2]=a[l+16>>2];a[c+20>>2]=a[l+20>>2];a[c+24>>2]=a[l+24>>2];a[c+28>>2]=a[l+28>>2];CN(A,c);l=e}PL(A,i,t)}}while(0);k=s;return}function HL(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0;f=a[r>>2]|0;while(1){if(!e)break;A=a[a[(a[(a[((a[A>>2]&3|0)==2?A:A+-48|0)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0;e=e+-1|0}a[r>>2]=f+1;n=i+(f<<4)|0;e=i+(f+-1<<4)|0;a[n>>2]=a[e>>2];a[n+4>>2]=a[e+4>>2];a[n+8>>2]=a[e+8>>2];a[n+12>>2]=a[e+12>>2];f=a[r>>2]|0;a[r>>2]=f+1;f=i+(f<<4)|0;a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];f=i+(a[r>>2]<<4)|0;r=(a[(a[((a[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0)+16>>2]|0)+16|0;a[f>>2]=a[r>>2];a[f+4>>2]=a[r+4>>2];a[f+8>>2]=a[r+8>>2];a[f+12>>2]=a[r+12>>2];return A|0}function UL(A,e){A=A|0;e=e|0;var i=0,f=0.0,n=0.0,l=0,t=0,c=0,b=0,u=0;u=e+84|0;b=e+80|0;i=0;e=A;A:while(1){t=a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0;c=t+16|0;if((r[(a[c>>2]|0)+156>>0]|0)!=1)break;if((m5[a[17300>>2]&63](t)|0)<<24>>24)break;e=a[b>>2]|0;while(1){if((i|0)>=(e|0))break A;if(!(+s[(a[u>>2]|0)+(i<<5)+8>>3]>+s[(a[c>>2]|0)+24>>3]))break;i=i+1|0}e=a[u>>2]|0;A=a[c>>2]|0;do{if(!(+s[e+(i<<5)+24>>3]<+s[A+24>>3])){n=+s[e+(i<<5)>>3];l=~~n;f=+s[e+(i<<5)+16>>3];if(!(a[A+104>>2]|0)){xL(t,l,~~((f+n)*.5),~~f);break}else{xL(t,l,~~f,~~(+s[A+96>>3]+f));break}}}while(0);e=a[a[(a[c>>2]|0)+180>>2]>>2]|0}return}function xL(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;A=a[A+16>>2]|0;s[A+16>>3]=+(i|0);s[A+88>>3]=+(i-e|0);s[A+96>>3]=+(r-i|0);return}function TL(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;l=a[A>>2]&3;t=a[(a[(a[((l|0)==3?A:A+48|0)+40>>2]|0)+16>>2]|0)+180>>2]|0;l=((l|0)==2?A:A+-48|0)+40|0;n=0;A=0;while(1){r=a[t+(n<<2)>>2]|0;if(!r)break;f=a[(a[(a[((a[r>>2]&3|0)==2?r:r+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;do{if((U(f-(a[(a[(a[l>>2]|0)+16>>2]|0)+236>>2]|0)|0,e)|0)>=1){i=a[r+16>>2]|0;if(!(a[i+8>>2]|0)){i=a[i+116>>2]|0;if(!i)break;if(!(a[(a[i+16>>2]|0)+8>>2]|0))break}if(A|0?(U((a[(a[(a[((a[A>>2]&3|0)==2?A:A+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-f|0,e)|0)<=0:0)break;A=r}}while(0);n=n+1|0}return A|0}function jL(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;l=a[A>>2]&3;t=a[(a[(a[((l|0)==2?A:A+-48|0)+40>>2]|0)+16>>2]|0)+172>>2]|0;l=((l|0)==3?A:A+48|0)+40|0;n=0;A=0;while(1){r=a[t+(n<<2)>>2]|0;if(!r)break;f=a[(a[(a[((a[r>>2]&3|0)==3?r:r+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;do{if((U(f-(a[(a[(a[l>>2]|0)+16>>2]|0)+236>>2]|0)|0,e)|0)>=1){i=a[r+16>>2]|0;if(!(a[i+8>>2]|0)){i=a[i+116>>2]|0;if(!i)break;if(!(a[(a[i+16>>2]|0)+8>>2]|0))break}if(A|0?(U((a[(a[(a[((a[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-f|0,e)|0)<=0:0)break;A=r}}while(0);n=n+1|0}return A|0}function PL(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0,n=0,l=0,t=0,c=0,b=0,u=0.0;b=A+84|0;l=e+-1|0;while(1){if((l|0)>(i|0))break;f=a[b>>2]|0;t=f+(l<<5)|0;r=+s[t>>3];if(!(l-e&1)){f=f+(l<<5)+16|0;u=+s[f>>3];n=~~((u+r)*.5);if(r>=u){s[t>>3]=+(n+-8|0);s[f>>3]=+(n+8|0)}}else{f=f+(l<<5)+16|0;u=+s[f>>3];n=~~((u+r)*.5);if(r+16.0>u){s[t>>3]=+(n+-8|0);s[f>>3]=+(n+8|0)}}l=l+1|0}c=(a[A+80>>2]|0)+-1|0;n=0;while(1){if((n|0)>=(c|0))break;l=a[b>>2]|0;f=l+(n<<5)|0;t=n+1|0;A=l+(t<<5)|0;if(!((n|0)<(e|0)|(n|0)>(i|0))?(n-e&1|0)==0:0){r=+s[f>>3]+16.0;f=l+(t<<5)+16|0;if(r>+s[f>>3])s[f>>3]=r;r=+s[l+(n<<5)+16>>3]+-16.0;if(!(r<+s[A>>3])){n=t;continue}s[A>>3]=r;n=t;continue}if(!((n|0)<(i|0)&(t|0)>=(e|0))){n=t;continue}if(t-e&1|0){n=t;continue}r=+s[l+(t<<5)+16>>3];if(+s[f>>3]+16.0>r)s[f>>3]=r+-16.0;f=l+(n<<5)+16|0;r=+s[A>>3];if(!(+s[f>>3]+-16.0>3]=r+16.0;n=t}return}function SL(A,e,i,r,f){A=A|0;e=+e;i=+i;r=+r;f=+f;s[A>>3]=e;s[A+8>>3]=i;s[A+16>>3]=r;s[A+24>>3]=f;return}function OL(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0,t=0,c=0,s=0;s=a[(a[A+16>>2]|0)+196>>2]|0;l=a[e+16>>2]|0;c=a[l+232>>2]|0;t=s+(c<<6)|0;c=s+(c<<6)+4|0;l=a[l+236>>2]|0;A:do{l=l+n|0;if((l|0)<=-1){A=0;break}if((l|0)>=(a[t>>2]|0)){A=0;break}A=a[(a[c>>2]|0)+(l<<2)>>2]|0;s=a[A+16>>2]|0;switch(r[s+156>>0]|0){case 0:break A;case 1:{if(a[s+104>>2]|0)break A;break}default:{}}}while((qL(A,e,i,f)|0)<<24>>24!=0);return A|0}function KL(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0;e=a[e+16>>2]|0;if(!(r[e+156>>0]|0)){t=a[e+212>>2]|0;l=t}else{t=a[(a[(a[a[e+180>>2]>>2]|0)+16>>2]|0)+116>>2]|0;n=a[t>>2]&3;l=a[(a[(a[((n|0)==2?t:t+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0;t=a[(a[(a[((n|0)==3?t:t+48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0}e=a[i+16>>2]|0;if(!(r[e+156>>0]|0)){i=a[e+212>>2]|0;i=(i|0)==(A|0)?0:i;return((i|0)==(l|0)|((i|0)==0|(i|0)==(t|0))?0:i)|0}f=a[(a[(a[a[e+180>>2]>>2]|0)+16>>2]|0)+116>>2]|0;n=a[f>>2]&3;e=a[(a[(a[((n|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0;e=(e|0)==(A|0)?0:e;if(!(!((e|0)==(l|0)|((e|0)==0|(e|0)==(t|0)))?(_L(e,i)|0)!=0:0)){e=a[(a[(a[((n|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0;e=(e|0)==(A|0)?0:e;if((e|0)==(l|0)|((e|0)==0|(e|0)==(t|0)))e=0;else{i=(_L(e,i)|0)==0;return(i?0:e)|0}}return e|0}function _L(A,e){A=A|0;e=e|0;var i=0,r=0.0,f=0.0;i=a[A+16>>2]|0;A=a[e+16>>2]|0;f=+s[A+16>>3];if((+s[i+16>>3]<=f?f<=+s[i+32>>3]:0)?(r=+s[A+24>>3],+s[i+24>>3]<=r):0)A=r<=+s[i+40>>3]&1;else A=0;return A|0}function qL(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0;t=a[A+16>>2]|0;c=(a[t+236>>2]|0)>(a[(a[e+16>>2]|0)+236>>2]|0);A:do{if((a[t+184>>2]|0)==1){e:do{if(f|0){l=0;A=a[a[t+180>>2]>>2]|0;while(1){if((l|0)>=2)break e;A=a[((a[A>>2]&3|0)==2?A:A+-48|0)+40>>2]|0;e=a[((a[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0;if((A|0)==(e|0))break e;n=a[A+16>>2]|0;A=a[e+16>>2]|0;if(c^(a[n+236>>2]|0)>(a[A+236>>2]|0)){A=1;break A}if((a[n+184>>2]|0)!=1)break e;if(!(r[n+156>>0]|0))break e;if((a[A+184>>2]|0)!=1)break e;if(!(r[A+156>>0]|0))break e;l=l+1|0;f=a[a[A+180>>2]>>2]|0;A=a[a[n+180>>2]>>2]|0}}}while(0);if(i|0?(a[t+176>>2]|0)==1:0){n=0;e=i;A=a[a[t+172>>2]>>2]|0;while(1){if((n|0)>=2){A=0;break A}A=a[((a[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0;e=a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0;if((A|0)==(e|0)){A=0;break A}f=a[A+16>>2]|0;A=a[e+16>>2]|0;if(c^(a[f+236>>2]|0)>(a[A+236>>2]|0)){A=1;break A}if((a[f+176>>2]|0)!=1){A=0;break A}if(!(r[f+156>>0]|0)){A=0;break A}if((a[A+176>>2]|0)!=1){A=0;break A}if(!(r[A+156>>0]|0)){A=0;break A}n=n+1|0;e=a[a[A+172>>2]>>2]|0;A=a[a[f+172>>2]>>2]|0}}else A=0}else A=0}while(0);return A|0}function $L(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0;r=+s[i+8>>3]+ +s[e+8>>3];s[A>>3]=+s[i>>3]+ +s[e>>3];s[A+8>>3]=r;return}function Ay(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0;r=+s[e+8>>3];f=+s[e>>3];return(~~((+s[i>>3]-f)*(+s[A+8>>3]-r)-(+s[A>>3]-f)*(+s[i+8>>3]-r))|0)>0|0}function ey(A,e,i,f,n,l){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;l=l|0;var t=0,c=0,b=0.0,u=0,w=0,o=0,h=0,d=0,B=0.0,g=0,v=0,E=0.0,C=0.0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0,U=0,x=0,T=0;U=k;k=k+256|0;y=U+232|0;L=U+216|0;X=U+88|0;R=U+80|0;V=U+64|0;J=U+200|0;p=U+184|0;N=U;W=U+168|0;z=U+152|0;Y=U+136|0;D=U+120|0;M=U+104|0;Q=a[n>>2]&3;F=a[((Q|0)==3?n:n+48|0)+40>>2]|0;Q=a[((Q|0)==2?n:n+-48|0)+40>>2]|0;do{if((bp(F)|0)!=2?(bp(Q)|0)!=2:0){n=0;t=0;c=0;while(1){if((c|0)>=(f|0))break;m=a[(a[e+(c+i<<2)>>2]|0)+16>>2]|0;n=n+((a[m+96>>2]|0)!=0&1)|0;if(!((r[m+44>>0]|0)==0?(r[m+84>>0]|0)==0:0))t=1;c=c+1|0}if(!t)if(!n){ry(F,Q,e,i,f,l);break}else{ty(F,Q,e,i,f,l,n);break}Z=qF(156)|0;G=cy(A,Z)|0;g=NB(G,85478,1)|0;Td(g,137483,280,1)|0;xo(g,87171,87185)|0;b=+s[(a[Q+16>>2]|0)+16>>3];B=+s[(a[F+16>>2]|0)+16>>3];m=A+16|0;h=(a[(a[m>>2]|0)+116>>2]&1|0)==0;d=h?Q:F;h=h?F:Q;g=sy(g,h)|0;v=sy(G,d)|0;n=0;o=0;while(1){if((o|0)>=(f|0))break;t=e+(o+i<<2)|0;while(1){w=a[t>>2]|0;u=w+16|0;t=a[u>>2]|0;if(!(r[t+112>>0]|0))break;else t=t+116|0}if((a[((a[w>>2]&3|0)==3?w:w+48|0)+40>>2]|0)==(h|0))c=by(G,g,v,w)|0;else c=by(G,v,g,w)|0;t=a[u>>2]|0;a[t+120>>2]=c;if(!n)if((r[t+44>>0]|0)==0?(r[t+84>>0]|0)==0:0){a[(a[c+16>>2]|0)+120>>2]=w;n=c}else n=0;o=o+1|0}if(!n)I=th(G,g,v,0,1)|0;else I=n;Vo(I,a[47174]|0,85482)|0;n=G+16|0;u=a[n>>2]|0;a[u+144>>2]=a[(a[m>>2]|0)+144>>2];a[u+188>>2]=G;zX(G,l);AL(G);Jz(G,0);Py(G,0);KW(G,0);h=h+16|0;l=a[h>>2]|0;u=a[d+16>>2]|0;d=g+16|0;w=a[d>>2]|0;o=w+16|0;E=+(~~b|0);C=+(~~((+s[(a[v+16>>2]|0)+16>>3]+ +s[o>>3])*.5)|0);b=+(~~B|0);B=+(~~((+s[l+16>>3]-+s[l+96>>3]+ +s[u+16>>3]+ +s[u+88>>3])*.5)|0);u=w+24|0;n=(a[n>>2]|0)+192|0;while(1){t=a[n>>2]|0;if(!t)break;do{if((t|0)!=(g|0)){n=a[t+16>>2]|0;c=n+24|0;if((t|0)==(v|0)){s[c>>3]=b;s[n+16>>3]=C;break}else{s[c>>3]=B;break}}else{s[u>>3]=E;s[o>>3]=C;n=w}}while(0);n=n+164|0}zY(G);IL(G,0);VJ(G);c=a[h>>2]|0;n=a[d>>2]|0;if(!(a[(a[m>>2]|0)+116>>2]&1)){t=n+16|0;b=+s[c+24>>3]-+s[n+24>>3]}else{t=n+24|0;b=+s[n+16>>3]+ +s[c+24>>3]}s[V>>3]=+s[c+16>>3]-+s[t>>3];s[V+8>>3]=b;l=N+16|0;g=N+32|0;v=N+48|0;d=0;while(1){if((d|0)>=(f|0))break;n=e+(d+i<<2)|0;while(1){t=a[n>>2]|0;h=t+16|0;n=a[h>>2]|0;if(!(r[n+112>>0]|0))break;else n=n+116|0}w=a[n+120>>2]|0;o=w+16|0;n=a[o>>2]|0;if(!((w|0)==(I|0)&(a[n+120>>2]|0)==0)){u=a[a[n+8>>2]>>2]|0;w=u+4|0;t=gN(t,a[w>>2]|0)|0;a[t+8>>2]=a[u+8>>2];n=t+16|0;c=u+16|0;x=a[(a[m>>2]|0)+116>>2]&1;a[L>>2]=a[c>>2];a[L+4>>2]=a[c+4>>2];a[L+8>>2]=a[c+8>>2];a[L+12>>2]=a[c+12>>2];a[y>>2]=a[V>>2];a[y+4>>2]=a[V+4>>2];a[y+8>>2]=a[V+8>>2];a[y+12>>2]=a[V+12>>2];uy(J,L,y,x);a[n>>2]=a[J>>2];a[n+4>>2]=a[J+4>>2];a[n+8>>2]=a[J+8>>2];a[n+12>>2]=a[J+12>>2];a[t+12>>2]=a[u+12>>2];n=t+32|0;x=u+32|0;c=a[(a[m>>2]|0)+116>>2]&1;a[L>>2]=a[x>>2];a[L+4>>2]=a[x+4>>2];a[L+8>>2]=a[x+8>>2];a[L+12>>2]=a[x+12>>2];a[y>>2]=a[V>>2];a[y+4>>2]=a[V+4>>2];a[y+8>>2]=a[V+8>>2];a[y+12>>2]=a[V+12>>2];uy(p,L,y,c);a[n>>2]=a[p>>2];a[n+4>>2]=a[p+4>>2];a[n+8>>2]=a[p+8>>2];a[n+12>>2]=a[p+12>>2];n=0;while(1){if((n|0)>=(a[w>>2]|0))break;c=(a[t>>2]|0)+(n<<4)|0;T=(a[u>>2]|0)+(n<<4)|0;x=a[(a[m>>2]|0)+116>>2]&1;a[L>>2]=a[T>>2];a[L+4>>2]=a[T+4>>2];a[L+8>>2]=a[T+8>>2];a[L+12>>2]=a[T+12>>2];a[y>>2]=a[V>>2];a[y+4>>2]=a[V+4>>2];a[y+8>>2]=a[V+8>>2];a[y+12>>2]=a[V+12>>2];uy(W,L,y,x);a[c>>2]=a[W>>2];a[c+4>>2]=a[W+4>>2];a[c+8>>2]=a[W+8>>2];a[c+12>>2]=a[W+12>>2];a[N>>2]=a[W>>2];a[N+4>>2]=a[W+4>>2];a[N+8>>2]=a[W+8>>2];a[N+12>>2]=a[W+12>>2];c=n+1|0;if((c|0)>=(a[w>>2]|0)){H=48;break}x=(a[t>>2]|0)+(c<<4)|0;c=(a[u>>2]|0)+(c<<4)|0;T=a[(a[m>>2]|0)+116>>2]&1;a[L>>2]=a[c>>2];a[L+4>>2]=a[c+4>>2];a[L+8>>2]=a[c+8>>2];a[L+12>>2]=a[c+12>>2];a[y>>2]=a[V>>2];a[y+4>>2]=a[V+4>>2];a[y+8>>2]=a[V+8>>2];a[y+12>>2]=a[V+12>>2];uy(z,L,y,T);a[x>>2]=a[z>>2];a[x+4>>2]=a[z+4>>2];a[x+8>>2]=a[z+8>>2];a[x+12>>2]=a[z+12>>2];a[l>>2]=a[z>>2];a[l+4>>2]=a[z+4>>2];a[l+8>>2]=a[z+8>>2];a[l+12>>2]=a[z+12>>2];x=n+2|0;T=(a[t>>2]|0)+(x<<4)|0;x=(a[u>>2]|0)+(x<<4)|0;c=a[(a[m>>2]|0)+116>>2]&1;a[L>>2]=a[x>>2];a[L+4>>2]=a[x+4>>2];a[L+8>>2]=a[x+8>>2];a[L+12>>2]=a[x+12>>2];a[y>>2]=a[V>>2];a[y+4>>2]=a[V+4>>2];a[y+8>>2]=a[V+8>>2];a[y+12>>2]=a[V+12>>2];uy(Y,L,y,c);a[T>>2]=a[Y>>2];a[T+4>>2]=a[Y+4>>2];a[T+8>>2]=a[Y+8>>2];a[T+12>>2]=a[Y+12>>2];a[g>>2]=a[Y>>2];a[g+4>>2]=a[Y+4>>2];a[g+8>>2]=a[Y+8>>2];a[g+12>>2]=a[Y+12>>2];T=n+3|0;c=(a[u>>2]|0)+(T<<4)|0;x=a[(a[m>>2]|0)+116>>2]&1;a[L>>2]=a[c>>2];a[L+4>>2]=a[c+4>>2];a[L+8>>2]=a[c+8>>2];a[L+12>>2]=a[c+12>>2];a[y>>2]=a[V>>2];a[y+4>>2]=a[V+4>>2];a[y+8>>2]=a[V+8>>2];a[y+12>>2]=a[V+12>>2];uy(D,L,y,x);a[v>>2]=a[D>>2];a[v+4>>2]=a[D+4>>2];a[v+8>>2]=a[D+8>>2];a[v+12>>2]=a[D+12>>2];bI((a[m>>2]|0)+16|0,N);n=T}if((H|0)==48)H=0;n=a[(a[h>>2]|0)+96>>2]|0;if(n|0){T=n+56|0;o=(a[(a[o>>2]|0)+96>>2]|0)+56|0;x=a[(a[m>>2]|0)+116>>2]&1;a[L>>2]=a[o>>2];a[L+4>>2]=a[o+4>>2];a[L+8>>2]=a[o+8>>2];a[L+12>>2]=a[o+12>>2];a[y>>2]=a[V>>2];a[y+4>>2]=a[V+4>>2];a[y+8>>2]=a[V+8>>2];a[y+12>>2]=a[V+12>>2];uy(M,L,y,x);a[T>>2]=a[M>>2];a[T+4>>2]=a[M+4>>2];a[T+8>>2]=a[M+8>>2];a[T+12>>2]=a[M+12>>2];T=a[(a[h>>2]|0)+96>>2]|0;r[T+81>>0]=1;HR(A,T)}}d=d+1|0}wy(G,Z)}else H=3}while(0);if((H|0)==3?(a[46738]|0)==0:0){a[46738]=1;ao(0,85355,R)|0;H=Vh(F)|0;x=(Ih(A)|0)!=0;T=Vh(Q)|0;a[X>>2]=H;a[X+4>>2]=x?137738:141747;a[X+8>>2]=T;ao(3,85461,X)|0}k=U;return}function iy(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0.0,Q=0.0,L=0.0,y=0.0,W=0.0;G=k;k=k+1600|0;v=G+1552|0;u=G+1536|0;g=G+840|0;E=G+144|0;C=G+1584|0;t=G+32|0;B=G+16|0;w=G;h=a[f>>2]&3;o=a[((h|0)==3?f:f+48|0)+40>>2]|0;I=f+-48|0;h=a[((h|0)==2?f:I)+40>>2]|0;d=f+16|0;c=a[d>>2]|0;l=a[c+172>>2]|0;while(1){b=a[(a[l+16>>2]|0)+172>>2]|0;if(!b)break;else l=b}c=(a[c+96>>2]|0)+56|0;l=(a[((a[l>>2]&3|0)==3?l:l+48|0)+40>>2]|0)+16|0;b=(a[l>>2]|0)+16|0;a[c>>2]=a[b>>2];a[c+4>>2]=a[b+4>>2];a[c+8>>2]=a[b+8>>2];a[c+12>>2]=a[b+12>>2];c=a[d>>2]|0;r[(a[c+96>>2]|0)+81>>0]=1;if((n|0)!=2){c=a[l>>2]|0;L=+s[c+16>>3];W=L-+s[c+88>>3];L=+s[c+96>>3]+L;Q=+s[c+24>>3];y=+s[c+80>>3]*.5+Q;c=a[(a[A+16>>2]|0)+196>>2]|0;b=a[o+16>>2]|0;t=a[b+232>>2]|0;Q=+(~~(+(~~(Q-+s[c+(t<<6)+16>>3]-+s[b+24>>3]+ +s[c+(t<<6)+24>>3])|0)*.16666666666666666)|0);Q=y-(Q<5.0?5.0:Q);ay(A,e,i,o,f,g,1);ay(A,e,i,h,f,E,0);t=g+52|0;c=a[t>>2]|0;b=c+-1|0;m=+s[g+56+(b<<5)>>3];s[19215]=m;s[19216]=+s[g+56+(b<<5)+24>>3];s[19217]=W;s[19218]=Q;s[19219]=m;s[19220]=Q;b=E+52|0;l=(a[b>>2]|0)+-1|0;m=+s[E+56+(l<<5)+16>>3];s[19221]=m;s[19222]=y;s[19223]=L;s[19226]=Q;s[19224]=+s[E+56+(l<<5)+24>>3];s[19225]=m;l=0;while(1){if((l|0)>=(c|0)){l=0;break}c=g+56+(l<<5)|0;a[v>>2]=a[c>>2];a[v+4>>2]=a[c+4>>2];a[v+8>>2]=a[c+8>>2];a[v+12>>2]=a[c+12>>2];a[v+16>>2]=a[c+16>>2];a[v+20>>2]=a[c+20>>2];a[v+24>>2]=a[c+24>>2];a[v+28>>2]=a[c+28>>2];CN(i,v);l=l+1|0;c=a[t>>2]|0}while(1){if((l|0)==3)break;g=153720+(l<<5)|0;a[v>>2]=a[g>>2];a[v+4>>2]=a[g+4>>2];a[v+8>>2]=a[g+8>>2];a[v+12>>2]=a[g+12>>2];a[v+16>>2]=a[g+16>>2];a[v+20>>2]=a[g+20>>2];a[v+24>>2]=a[g+24>>2];a[v+28>>2]=a[g+28>>2];CN(i,v);l=l+1|0}t=a[b>>2]|0;while(1){l=t+-1|0;if((t|0)<=0)break;t=E+56+(l<<5)|0;a[v>>2]=a[t>>2];a[v+4>>2]=a[t+4>>2];a[v+8>>2]=a[t+8>>2];a[v+12>>2]=a[t+12>>2];a[v+16>>2]=a[t+16>>2];a[v+20>>2]=a[t+20>>2];a[v+24>>2]=a[t+24>>2];a[v+28>>2]=a[t+28>>2];CN(i,v);t=l}if((n|0)==10)t=KJ(i,C)|0;else t=ip(i,C)|0;l=a[C>>2]|0;if(l|0)Z=17}else{l=(a[o+16>>2]|0)+16|0;E=c+16|0;a[u>>2]=a[l>>2];a[u+4>>2]=a[l+4>>2];a[u+8>>2]=a[l+8>>2];a[u+12>>2]=a[l+12>>2];a[v>>2]=a[E>>2];a[v+4>>2]=a[E+4>>2];a[v+8>>2]=a[E+8>>2];a[v+12>>2]=a[E+12>>2];$L(B,u,v);E=(a[h+16>>2]|0)+16|0;l=(a[d>>2]|0)+56|0;a[u>>2]=a[E>>2];a[u+4>>2]=a[E+4>>2];a[u+8>>2]=a[E+8>>2];a[u+12>>2]=a[E+12>>2];a[v>>2]=a[l>>2];a[v+4>>2]=a[l+4>>2];a[v+8>>2]=a[l+8>>2];a[v+12>>2]=a[l+12>>2];$L(w,u,v);l=a[(a[d>>2]|0)+96>>2]|0;y=+s[l+56>>3];W=+s[l+64>>3]-+s[l+32>>3]*.5;l=t+16|0;a[t>>2]=a[B>>2];a[t+4>>2]=a[B+4>>2];a[t+8>>2]=a[B+8>>2];a[t+12>>2]=a[B+12>>2];a[l>>2]=a[B>>2];a[l+4>>2]=a[B+4>>2];a[l+8>>2]=a[B+8>>2];a[l+12>>2]=a[B+12>>2];l=t+32|0;E=t+48|0;Z=t+64|0;s[t+64>>3]=y;s[t+72>>3]=W;a[E>>2]=a[Z>>2];a[E+4>>2]=a[Z+4>>2];a[E+8>>2]=a[Z+8>>2];a[E+12>>2]=a[Z+12>>2];a[l>>2]=a[Z>>2];a[l+4>>2]=a[Z+4>>2];a[l+8>>2]=a[Z+8>>2];a[l+12>>2]=a[Z+12>>2];l=t+80|0;Z=t+96|0;a[Z>>2]=a[w>>2];a[Z+4>>2]=a[w+4>>2];a[Z+8>>2]=a[w+8>>2];a[Z+12>>2]=a[w+12>>2];a[l>>2]=a[w>>2];a[l+4>>2]=a[w+4>>2];a[l+8>>2]=a[w+8>>2];a[l+12>>2]=a[w+12>>2];a[C>>2]=7;l=7;Z=17}if((Z|0)==17)vN(f,a[((a[f>>2]&3|0)==2?f:I)+40>>2]|0,t,l,17296);k=G;return}function ry(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0.0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0.0,B=0,g=0.0,v=0,E=0,C=0,I=0,Z=0,G=0.0,m=0.0,Q=0.0,L=0.0,y=0.0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0;N=k;k=k+352|0;I=N+336|0;C=N+320|0;J=N+128|0;v=N+304|0;Z=N+288|0;p=N+112|0;W=N+96|0;z=N+80|0;Y=N+64|0;D=N+48|0;M=N+32|0;F=N+16|0;V=N;A=A+16|0;h=(a[A>>2]|0)+16|0;E=(a[i+(r<<2)>>2]|0)+16|0;B=(a[E>>2]|0)+16|0;a[C>>2]=a[h>>2];a[C+4>>2]=a[h+4>>2];a[C+8>>2]=a[h+8>>2];a[C+12>>2]=a[h+12>>2];a[I>>2]=a[B>>2];a[I+4>>2]=a[B+4>>2];a[I+8>>2]=a[B+8>>2];a[I+12>>2]=a[B+12>>2];$L(v,C,I);L=+s[v>>3];y=+s[v+8>>3];v=(a[e+16>>2]|0)+16|0;E=(a[E>>2]|0)+56|0;a[C>>2]=a[v>>2];a[C+4>>2]=a[v+4>>2];a[C+8>>2]=a[v+8>>2];a[C+12>>2]=a[v+12>>2];a[I>>2]=a[E>>2];a[I+4>>2]=a[E+4>>2];a[I+8>>2]=a[E+8>>2];a[I+12>>2]=a[E+12>>2];$L(Z,C,I);m=+s[Z>>3];Q=+s[Z+8>>3];if((f|0)>1){G=+s[(a[A>>2]|0)+80>>3];l=G*.5;G=G/+(f+-1|0)}else{l=0.0;G=0.0}o=(n|8|0)==10;b=J+8|0;h=J+16|0;d=(m+L*2.0)*.3333333333333333;B=J+32|0;g=(m*2.0+L)*.3333333333333333;u=J+24|0;v=J+48|0;E=J+64|0;C=J+80|0;I=J+96|0;Z=J+112|0;c=J+128|0;w=J+136|0;l=y-l;e=0;while(1){if((e|0)>=(f|0))break;t=a[i+(e+r<<2)>>2]|0;s[J>>3]=L;s[b>>3]=y;if(o){ly(p,d,l);a[h>>2]=a[p>>2];a[h+4>>2]=a[p+4>>2];a[h+8>>2]=a[p+8>>2];a[h+12>>2]=a[p+12>>2];ly(W,g,l);a[B>>2]=a[W>>2];a[B+4>>2]=a[W+4>>2];a[B+8>>2]=a[W+8>>2];a[B+12>>2]=a[W+12>>2];A=4;n=3}else{s[h>>3]=L;s[u>>3]=y;ly(z,d,l);a[B>>2]=a[z>>2];a[B+4>>2]=a[z+4>>2];a[B+8>>2]=a[z+8>>2];a[B+12>>2]=a[z+12>>2];ly(Y,d,l);a[v>>2]=a[Y>>2];a[v+4>>2]=a[Y+4>>2];a[v+8>>2]=a[Y+8>>2];a[v+12>>2]=a[Y+12>>2];ly(D,d,l);a[E>>2]=a[D>>2];a[E+4>>2]=a[D+4>>2];a[E+8>>2]=a[D+8>>2];a[E+12>>2]=a[D+12>>2];ly(M,g,l);a[C>>2]=a[M>>2];a[C+4>>2]=a[M+4>>2];a[C+8>>2]=a[M+8>>2];a[C+12>>2]=a[M+12>>2];ly(F,g,l);a[I>>2]=a[F>>2];a[I+4>>2]=a[F+4>>2];a[I+8>>2]=a[F+8>>2];a[I+12>>2]=a[F+12>>2];ly(V,g,l);a[Z>>2]=a[V>>2];a[Z+4>>2]=a[V+4>>2];a[Z+8>>2]=a[V+8>>2];a[Z+12>>2]=a[V+12>>2];s[c>>3]=m;s[w>>3]=Q;A=10;n=9}s[J+(n<<4)>>3]=m;s[J+(n<<4)+8>>3]=Q;vN(t,a[((a[t>>2]&3|0)==2?t:t+-48|0)+40>>2]|0,J,A,17296);l=l+G;e=e+1|0}k=N;return}function fy(A,e,i,r,n,l,t,c){A=A|0;e=e|0;i=i|0;r=r|0;n=n|0;l=l|0;t=t|0;c=c|0;var b=0,u=0.0,w=0,o=0,h=0,d=0,B=0.0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0.0,m=0.0,Q=0.0,L=0.0,y=0.0;I=k;k=k+1440|0;g=I+1392|0;E=I+1424|0;C=I+696|0;v=I;d=a[t>>2]&3;h=a[((d|0)==3?t:t+48|0)+40>>2]|0;d=a[((d|0)==2?t:t+-48|0)+40>>2]|0;b=a[h+16>>2]|0;w=a[b+232>>2]|0;o=a[A+16>>2]|0;if((w|0)<(f[o+238>>1]|0)){Z=a[o+196>>2]|0;o=w+1|0;u=+s[b+24>>3]-+s[Z+(w<<6)+32>>3]-+s[(a[(a[a[Z+(o<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+s[Z+(o<<6)+40>>3]}else u=+(a[o+252>>2]|0);G=+(l+1|0);B=+(a[e+12>>2]|0)/G;u=u/G;ny(A,e,i,h,t,C,1);ny(A,e,i,d,t,v,0);d=C+52|0;t=v+52|0;A=(c|0)==0;e=i+80|0;b=0;while(1){if((b|0)>=(l|0))break;h=a[r+(b+n<<2)>>2]|0;o=a[d>>2]|0;w=o+-1|0;y=+s[C+56+(w<<5)>>3];Q=+s[C+56+(w<<5)+8>>3];L=+s[C+56+(w<<5)+16>>3];s[19215]=y;s[19218]=Q;b=b+1|0;G=+(b|0);m=B*G;s[19217]=L+m;G=Q-u*G;s[19216]=G;s[19219]=y;s[19222]=G;w=(a[t>>2]|0)+-1|0;y=+s[v+56+(w<<5)+16>>3];s[19221]=y;s[19220]=G-u;Q=+s[v+56+(w<<5)>>3];L=+s[v+56+(w<<5)+8>>3];s[19225]=y;s[19226]=L;s[19223]=Q-m;s[19224]=G;w=0;while(1){if((w|0)>=(o|0)){w=0;break}o=C+56+(w<<5)|0;a[g>>2]=a[o>>2];a[g+4>>2]=a[o+4>>2];a[g+8>>2]=a[o+8>>2];a[g+12>>2]=a[o+12>>2];a[g+16>>2]=a[o+16>>2];a[g+20>>2]=a[o+20>>2];a[g+24>>2]=a[o+24>>2];a[g+28>>2]=a[o+28>>2];CN(i,g);w=w+1|0;o=a[d>>2]|0}while(1){if((w|0)==3)break;Z=153720+(w<<5)|0;a[g>>2]=a[Z>>2];a[g+4>>2]=a[Z+4>>2];a[g+8>>2]=a[Z+8>>2];a[g+12>>2]=a[Z+12>>2];a[g+16>>2]=a[Z+16>>2];a[g+20>>2]=a[Z+20>>2];a[g+24>>2]=a[Z+24>>2];a[g+28>>2]=a[Z+28>>2];CN(i,g);w=w+1|0}o=a[t>>2]|0;while(1){w=o+-1|0;if((o|0)<=0)break;o=v+56+(w<<5)|0;a[g>>2]=a[o>>2];a[g+4>>2]=a[o+4>>2];a[g+8>>2]=a[o+8>>2];a[g+12>>2]=a[o+12>>2];a[g+16>>2]=a[o+16>>2];a[g+20>>2]=a[o+20>>2];a[g+24>>2]=a[o+24>>2];a[g+28>>2]=a[o+28>>2];CN(i,g);o=w}if(A)w=ip(i,E)|0;else w=KJ(i,E)|0;o=a[E>>2]|0;if(!o)break;vN(h,a[((a[h>>2]&3|0)==2?h:h+-48|0)+40>>2]|0,w,o,17296);a[e>>2]=0}k=I;return}function ay(A,e,i,r,f,n,l){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;var t=0,c=0,b=0,u=0,w=0,o=0.0;u=k;k=k+128|0;t=u+96|0;c=u+64|0;w=u+32|0;b=u;VL(w,A,e,r,0,f);a[n>>2]=a[w>>2];a[n+4>>2]=a[w+4>>2];a[n+8>>2]=a[w+8>>2];a[n+12>>2]=a[w+12>>2];a[n+16>>2]=a[w+16>>2];a[n+20>>2]=a[w+20>>2];a[n+24>>2]=a[w+24>>2];a[n+28>>2]=a[w+28>>2];a[c>>2]=a[w>>2];a[c+4>>2]=a[w+4>>2];a[c+8>>2]=a[w+8>>2];a[c+12>>2]=a[w+12>>2];a[c+16>>2]=a[w+16>>2];a[c+20>>2]=a[w+20>>2];a[c+24>>2]=a[w+24>>2];a[c+28>>2]=a[w+28>>2];a[n+48>>2]=4;if(!(l<<24>>24))mN(i,f,2,n,0);else IN(i,f,2,n,0);e=n+52|0;f=(a[e>>2]|0)+-1|0;w=c+24|0;s[w>>3]=+s[n+56+(f<<5)+24>>3];l=c+8|0;s[l>>3]=+s[n+56+(f<<5)+8>>3];r=a[r+16>>2]|0;o=+s[(a[(a[A+16>>2]|0)+196>>2]|0)+(a[r+232>>2]<<6)+24>>3]+ +s[r+24>>3];a[t>>2]=a[c>>2];a[t+4>>2]=a[c+4>>2];a[t+8>>2]=a[c+8>>2];a[t+12>>2]=a[c+12>>2];a[t+16>>2]=a[c+16>>2];a[t+20>>2]=a[c+20>>2];a[t+24>>2]=a[c+24>>2];a[t+28>>2]=a[c+28>>2];pL(b,t,4,o);a[c>>2]=a[b>>2];a[c+4>>2]=a[b+4>>2];a[c+8>>2]=a[b+8>>2];a[c+12>>2]=a[b+12>>2];a[c+16>>2]=a[b+16>>2];a[c+20>>2]=a[b+20>>2];a[c+24>>2]=a[b+24>>2];a[c+28>>2]=a[b+28>>2];if(+s[c>>3]<+s[c+16>>3]?+s[l>>3]<+s[w>>3]:0){w=a[e>>2]|0;a[e>>2]=w+1;w=n+56+(w<<5)|0;a[w>>2]=a[c>>2];a[w+4>>2]=a[c+4>>2];a[w+8>>2]=a[c+8>>2];a[w+12>>2]=a[c+12>>2];a[w+16>>2]=a[c+16>>2];a[w+20>>2]=a[c+20>>2];a[w+24>>2]=a[c+24>>2];a[w+28>>2]=a[c+28>>2]}k=u;return}function ny(A,e,i,r,f,n,l){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;var t=0,c=0,b=0,u=0,w=0,o=0.0;u=k;k=k+128|0;t=u+96|0;c=u+64|0;w=u+32|0;b=u;VL(w,A,e,r,0,f);a[n>>2]=a[w>>2];a[n+4>>2]=a[w+4>>2];a[n+8>>2]=a[w+8>>2];a[n+12>>2]=a[w+12>>2];a[n+16>>2]=a[w+16>>2];a[n+20>>2]=a[w+20>>2];a[n+24>>2]=a[w+24>>2];a[n+28>>2]=a[w+28>>2];a[c>>2]=a[w>>2];a[c+4>>2]=a[w+4>>2];a[c+8>>2]=a[w+8>>2];a[c+12>>2]=a[w+12>>2];a[c+16>>2]=a[w+16>>2];a[c+20>>2]=a[w+20>>2];a[c+24>>2]=a[w+24>>2];a[c+28>>2]=a[w+28>>2];a[n+48>>2]=1;if(!(l<<24>>24))mN(i,f,2,n,0);else IN(i,f,2,n,0);e=n+52|0;f=(a[e>>2]|0)+-1|0;w=c+24|0;s[w>>3]=+s[n+56+(f<<5)+24>>3];l=c+8|0;s[l>>3]=+s[n+56+(f<<5)+8>>3];r=a[r+16>>2]|0;o=+s[r+24>>3]-+s[(a[(a[A+16>>2]|0)+196>>2]|0)+(a[r+232>>2]<<6)+24>>3];a[t>>2]=a[c>>2];a[t+4>>2]=a[c+4>>2];a[t+8>>2]=a[c+8>>2];a[t+12>>2]=a[c+12>>2];a[t+16>>2]=a[c+16>>2];a[t+20>>2]=a[c+20>>2];a[t+24>>2]=a[c+24>>2];a[t+28>>2]=a[c+28>>2];pL(b,t,1,o);a[c>>2]=a[b>>2];a[c+4>>2]=a[b+4>>2];a[c+8>>2]=a[b+8>>2];a[c+12>>2]=a[b+12>>2];a[c+16>>2]=a[b+16>>2];a[c+20>>2]=a[b+20>>2];a[c+24>>2]=a[b+24>>2];a[c+28>>2]=a[b+28>>2];if(+s[c>>3]<+s[c+16>>3]?+s[l>>3]<+s[w>>3]:0){w=a[e>>2]|0;a[e>>2]=w+1;w=n+56+(w<<5)|0;a[w>>2]=a[c>>2];a[w+4>>2]=a[c+4>>2];a[w+8>>2]=a[c+8>>2];a[w+12>>2]=a[c+12>>2];a[w+16>>2]=a[c+16>>2];a[w+20>>2]=a[c+20>>2];a[w+24>>2]=a[c+24>>2];a[w+28>>2]=a[c+28>>2]}k=u;return}function ly(A,e,i){A=A|0;e=+e;i=+i;s[A>>3]=e;s[A+8>>3]=i;return}function ty(A,e,i,f,n,l,t){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;l=l|0;t=t|0;var c=0,b=0,u=0,w=0,o=0.0,h=0.0,d=0.0,B=0.0,g=0.0,v=0.0,E=0.0,C=0.0,I=0.0,Z=0,G=0,m=0.0,Q=0.0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0,U=0,x=0,T=0,j=0,P=0,S=0,O=0,K=0,_=0.0;K=k;k=k+288|0;U=K+256|0;H=K+240|0;X=K+224|0;P=K+280|0;S=K+272|0;O=K+32|0;x=K+16|0;T=K;b=K+208|0;u=K+192|0;w=a[i+(f<<2)>>2]|0;j=qF(n<<2)|0;c=0;while(1){if((c|0)>=(n|0))break;a[j+(c<<2)>>2]=a[i+(c+f<<2)>>2];c=c+1|0}K4(j,n,4,59);i=A+16|0;f=(a[i>>2]|0)+16|0;w=w+16|0;L=(a[w>>2]|0)+16|0;a[H>>2]=a[f>>2];a[H+4>>2]=a[f+4>>2];a[H+8>>2]=a[f+8>>2];a[H+12>>2]=a[f+12>>2];a[U>>2]=a[L>>2];a[U+4>>2]=a[L+4>>2];a[U+8>>2]=a[L+8>>2];a[U+12>>2]=a[L+12>>2];$L(b,H,U);a[x>>2]=a[b>>2];a[x+4>>2]=a[b+4>>2];a[x+8>>2]=a[b+8>>2];a[x+12>>2]=a[b+12>>2];L=e+16|0;f=(a[L>>2]|0)+16|0;w=(a[w>>2]|0)+56|0;a[H>>2]=a[f>>2];a[H+4>>2]=a[f+4>>2];a[H+8>>2]=a[f+8>>2];a[H+12>>2]=a[f+12>>2];a[U>>2]=a[w>>2];a[U+4>>2]=a[w+4>>2];a[U+8>>2]=a[w+8>>2];a[U+12>>2]=a[w+12>>2];$L(u,H,U);a[T>>2]=a[u>>2];a[T+4>>2]=a[u+4>>2];a[T+8>>2]=a[u+8>>2];a[T+12>>2]=a[u+12>>2];C=+s[(a[i>>2]|0)+96>>3]+ +s[x>>3];I=+s[T>>3]-+s[(a[L>>2]|0)+88>>3];v=I+C;E=v*.5;L=a[j>>2]|0;a[O>>2]=a[x>>2];a[O+4>>2]=a[x+4>>2];a[O+8>>2]=a[x+8>>2];a[O+12>>2]=a[x+12>>2];w=O+16|0;a[w>>2]=a[x>>2];a[w+4>>2]=a[x+4>>2];a[w+8>>2]=a[x+8>>2];a[w+12>>2]=a[x+12>>2];i=O+32|0;a[i>>2]=a[T>>2];a[i+4>>2]=a[T+4>>2];a[i+8>>2]=a[T+8>>2];a[i+12>>2]=a[T+12>>2];f=O+48|0;a[f>>2]=a[T>>2];a[f+4>>2]=a[T+4>>2];a[f+8>>2]=a[T+8>>2];a[f+12>>2]=a[T+12>>2];vN(L,a[((a[L>>2]&3|0)==2?L:L+-48|0)+40>>2]|0,O,4,17296);L=a[(a[L+16>>2]|0)+96>>2]|0;s[L+56>>3]=E;G=x+8|0;d=+s[G>>3];B=+s[L+32>>3];s[L+64>>3]=(B+6.0)*.5+d;r[L+81>>0]=1;d=d+3.0;Q=+s[L+24>>3];m=(v-Q)*.5;Q=(Q+v)*.5;L=O+24|0;y=O+40|0;W=O+56|0;z=O+64|0;Y=T+8|0;D=O+72|0;M=O+80|0;F=O+88|0;V=O+96|0;J=O+104|0;p=O+112|0;N=O+120|0;R=P+4|0;u=(l|0)==6&1;h=0.0;o=0.0;B=B+d;b=1;while(1){if((b|0)>=(t|0)){Z=6;break}e=a[j+(b<<2)>>2]|0;if(!(b&1)){a[O>>2]=a[x>>2];a[O+4>>2]=a[x+4>>2];a[O+8>>2]=a[x+8>>2];a[O+12>>2]=a[x+12>>2];s[w>>3]=m;s[L>>3]=+s[G>>3];s[i>>3]=m;s[y>>3]=B;s[f>>3]=Q;s[W>>3]=B;s[z>>3]=Q;g=+s[Y>>3];s[D>>3]=g;_=+s[T>>3];s[M>>3]=_;s[F>>3]=g;s[V>>3]=_;_=B+6.0;s[J>>3]=_;s[p>>3]=+s[x>>3];s[N>>3]=_;B=+s[(a[(a[e+16>>2]|0)+96>>2]|0)+32>>3];g=_+B*.5;B=_+B}else{c=e+16|0;A=a[(a[c>>2]|0)+96>>2]|0;if((b|0)==1){o=+s[A+24>>3];h=(o+v)*.5;o=(v-o)*.5}d=d+-6.0-+s[A+32>>3];a[O>>2]=a[x>>2];a[O+4>>2]=a[x+4>>2];a[O+8>>2]=a[x+8>>2];a[O+12>>2]=a[x+12>>2];s[w>>3]=+s[x>>3];g=d+-6.0;s[L>>3]=g;s[i>>3]=+s[T>>3];s[y>>3]=g;a[f>>2]=a[T>>2];a[f+4>>2]=a[T+4>>2];a[f+8>>2]=a[T+8>>2];a[f+12>>2]=a[T+12>>2];s[z>>3]=h;s[D>>3]=+s[Y>>3];s[M>>3]=h;s[F>>3]=d;s[V>>3]=o;s[J>>3]=d;s[p>>3]=o;s[N>>3]=+s[G>>3];g=+s[(a[(a[c>>2]|0)+96>>2]|0)+32>>3]*.5+d}a[R>>2]=8;a[P>>2]=O;a[X>>2]=a[x>>2];a[X+4>>2]=a[x+4>>2];a[X+8>>2]=a[x+8>>2];a[X+12>>2]=a[x+12>>2];a[H>>2]=a[T>>2];a[H+4>>2]=a[T+4>>2];a[H+8>>2]=a[T+8>>2];a[H+12>>2]=a[T+12>>2];a[U>>2]=a[P>>2];a[U+4>>2]=a[P+4>>2];c=jJ(X,H,U,S,u)|0;A=a[S>>2]|0;if(!A)break;l=a[(a[e+16>>2]|0)+96>>2]|0;s[l+56>>3]=E;s[l+64>>3]=g;r[l+81>>0]=1;vN(e,a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,c,A,17296);b=b+1|0}A:do{if((Z|0)==6){E=(I+C*2.0)*.3333333333333333;v=(I*2.0+C)*.3333333333333333;while(1){if((b|0)>=(n|0))break;e=a[j+(b<<2)>>2]|0;if(!(b&1)){a[O>>2]=a[x>>2];a[O+4>>2]=a[x+4>>2];a[O+8>>2]=a[x+8>>2];a[O+12>>2]=a[x+12>>2];s[w>>3]=m;s[L>>3]=+s[G>>3];s[i>>3]=m;s[y>>3]=B;s[f>>3]=Q;s[W>>3]=B;s[z>>3]=Q;g=+s[Y>>3];s[D>>3]=g;_=+s[T>>3];s[M>>3]=_;s[F>>3]=g;s[V>>3]=_;_=B+6.0;s[J>>3]=_;s[p>>3]=+s[x>>3];B=_;g=o;o=_}else{Z=(b|0)==1;g=Z?E:o;h=Z?v:h;o=d+-6.0;a[O>>2]=a[x>>2];a[O+4>>2]=a[x+4>>2];a[O+8>>2]=a[x+8>>2];a[O+12>>2]=a[x+12>>2];s[w>>3]=+s[x>>3];d=d+-12.0;s[L>>3]=d;s[i>>3]=+s[T>>3];s[y>>3]=d;a[f>>2]=a[T>>2];a[f+4>>2]=a[T+4>>2];a[f+8>>2]=a[T+8>>2];a[f+12>>2]=a[T+12>>2];s[z>>3]=h;s[D>>3]=+s[Y>>3];s[M>>3]=h;s[F>>3]=o;s[V>>3]=g;s[J>>3]=o;s[p>>3]=g;d=o;o=+s[G>>3]}s[N>>3]=o;a[R>>2]=8;a[P>>2]=O;a[X>>2]=a[x>>2];a[X+4>>2]=a[x+4>>2];a[X+8>>2]=a[x+8>>2];a[X+12>>2]=a[x+12>>2];a[H>>2]=a[T>>2];a[H+4>>2]=a[T+4>>2];a[H+8>>2]=a[T+8>>2];a[H+12>>2]=a[T+12>>2];a[U>>2]=a[P>>2];a[U+4>>2]=a[P+4>>2];c=jJ(X,H,U,S,u)|0;A=a[S>>2]|0;if(!A)break A;vN(e,a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,c,A,17296);b=b+1|0;o=g}L2(j)}}while(0);k=K;return}function cy(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0;n=k;k=k+16|0;f=n;t=(Ih(A)|0)==0;t=t?18592:18584;r[f>>0]=r[t>>0]|0;r[f+1>>0]=r[t+1>>0]|0;r[f+2>>0]=r[t+2>>0]|0;r[f+3>>0]=r[t+3>>0]|0;f=kh(85493,f,0)|0;Td(f,137483,280,1)|0;Yo(f,0,87171,195059)|0;t=qF(96)|0;i=a[f+16>>2]|0;a[i+8>>2]=t;l=a[A+16>>2]|0;c=a[l+8>>2]|0;s[t>>3]=+s[c>>3];s[t+24>>3]=+s[c+24>>3];r[i+115>>0]=r[l+115>>0]|0;a[i+116>>2]=a[l+116>>2]&1^1;a[i+248>>2]=a[l+248>>2];a[i+252>>2]=a[l+252>>2];i=Jo(Zd(A)|0,1,0)|0;while(1){if(!i)break;Yo(f,1,a[i+8>>2]|0,a[i+12>>2]|0)|0;i=Jo(Zd(A)|0,1,i)|0}i=Jo(Zd(A)|0,2,0)|0;while(1){if(!i)break;Yo(f,2,a[i+8>>2]|0,a[i+12>>2]|0)|0;i=Jo(Zd(A)|0,2,i)|0}if(!(Yo(f,2,111464,0)|0))Yo(f,2,111464,195059)|0;if(!(Yo(f,2,111455,0)|0))Yo(f,2,111455,195059)|0;ky(f,e);k=n;return f|0}function sy(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;r=k;k=k+16|0;i=r;A=gd(A,Vh(e)|0,1)|0;Td(A,137447,304,1)|0;jo(e,A)|0;if((bp(e)|0)==2){f=e+16|0;e=$F((P2(a[a[(a[f>>2]|0)+104>>2]>>2]|0)|0)+3|0)|0;a[i>>2]=a[a[(a[f>>2]|0)+104>>2]>>2];S4(e,85488,i)|0;xo(A,108224,e)|0}k=r;return A|0}function by(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;i=th(A,e,i,0,1)|0;Td(i,137460,176,1)|0;jo(r,i)|0;return i|0}function uy(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0.0;l=k;k=k+32|0;n=l+16|0;f=l;if(r|0){t=+s[e>>3];r=e+8|0;s[e>>3]=+s[r>>3];s[r>>3]=-t}a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];a[n>>2]=a[i>>2];a[n+4>>2]=a[i+4>>2];a[n+8>>2]=a[i+8>>2];a[n+12>>2]=a[i+12>>2];$L(A,f,n);k=l;return}function wy(A,e){A=A|0;e=e|0;a[47189]=a[e>>2];a[47193]=a[e+4>>2];a[47194]=a[e+8>>2];a[47174]=a[e+12>>2];a[47175]=a[e+16>>2];a[47181]=a[e+20>>2];a[47180]=a[e+24>>2];a[47179]=a[e+28>>2];a[47205]=a[e+32>>2];a[47197]=a[e+36>>2];a[47182]=a[e+40>>2];a[47192]=a[e+44>>2];a[47201]=a[e+48>>2];a[47200]=a[e+52>>2];a[47199]=a[e+56>>2];a[47204]=a[e+60>>2];a[47198]=a[e+64>>2];a[47183]=a[e+68>>2];a[47145]=a[e+72>>2];a[47146]=a[e+76>>2];a[47147]=a[e+80>>2];a[47157]=a[e+84>>2];a[47150]=a[e+88>>2];a[47151]=a[e+92>>2];a[47152]=a[e+96>>2];a[47154]=a[e+100>>2];a[47155]=a[e+104>>2];a[47158]=a[e+108>>2];a[47161]=a[e+112>>2];a[47159]=a[e+116>>2];a[47160]=a[e+120>>2];a[47163]=a[e+124>>2];a[47162]=a[e+128>>2];a[47164]=a[e+132>>2];a[47165]=a[e+136>>2];a[47156]=a[e+140>>2];a[47168]=a[e+144>>2];a[47140]=a[e+148>>2];a[47138]=a[e+152>>2];L2(e);rL(A);Bh(A)|0;return}function ky(A,e){A=A|0;e=e|0;a[e>>2]=a[47189];a[e+4>>2]=a[47193];a[e+8>>2]=a[47194];a[e+12>>2]=a[47174];a[e+16>>2]=a[47175];a[e+20>>2]=a[47181];a[e+24>>2]=a[47180];a[e+28>>2]=a[47179];a[e+32>>2]=a[47205];a[e+36>>2]=a[47197];a[e+40>>2]=a[47182];a[e+44>>2]=a[47192];a[e+48>>2]=a[47201];a[e+52>>2]=a[47200];a[e+56>>2]=a[47199];a[e+60>>2]=a[47204];a[e+64>>2]=a[47198];a[e+68>>2]=a[47183];a[e+72>>2]=a[47145];a[e+76>>2]=a[47146];a[e+80>>2]=a[47147];a[e+84>>2]=a[47157];a[e+88>>2]=a[47150];a[e+92>>2]=a[47151];a[e+96>>2]=a[47152];a[e+100>>2]=a[47154];a[e+104>>2]=a[47155];a[e+108>>2]=a[47158];a[e+112>>2]=a[47161];a[e+116>>2]=a[47159];a[e+120>>2]=a[47160];a[e+124>>2]=a[47163];a[e+128>>2]=a[47162];a[e+132>>2]=a[47164];a[e+136>>2]=a[47165];a[e+140>>2]=a[47156];a[e+144>>2]=a[47168];a[e+152>>2]=a[47138];a[e+148>>2]=a[47140];a[47189]=0;a[47193]=Yo(A,2,87412,0)|0;a[47194]=Yo(A,2,87421,0)|0;e=Yo(A,2,101541,0)|0;a[47174]=e;if(!e)a[47174]=Yo(A,2,101541,195059)|0;a[47175]=0;a[47181]=0;a[47180]=Yo(A,2,101437,0)|0;a[47179]=Yo(A,2,101428,0)|0;a[47205]=Yo(A,2,101717,0)|0;a[47197]=0;a[47182]=Yo(A,2,108224,0)|0;a[47192]=Yo(A,2,85498,0)|0;a[47201]=0;a[47200]=Yo(A,2,101617,0)|0;a[47199]=Yo(A,2,101603,0)|0;a[47204]=Yo(A,2,101708,0)|0;a[47198]=0;a[47183]=0;a[47145]=Yo(A,1,141048,0)|0;a[47146]=Yo(A,1,141116,0)|0;a[47147]=Yo(A,1,108230,0)|0;a[47157]=0;a[47150]=Yo(A,1,101428,0)|0;a[47151]=Yo(A,1,101437,0)|0;a[47152]=0;a[47154]=Yo(A,1,108224,0)|0;a[47155]=0;a[47158]=0;a[47161]=Yo(A,1,101409,0)|0;a[47159]=Yo(A,1,141076,0)|0;a[47160]=Yo(A,1,101472,0)|0;a[47163]=Yo(A,1,101484,0)|0;a[47162]=Yo(A,1,101348,0)|0;a[47164]=Yo(A,1,101489,0)|0;a[47165]=Yo(A,1,85510,0)|0;a[47156]=0;a[47168]=0;a[47140]=Yo(A,0,101409,0)|0;return}function oy(A,e){A=A|0;e=e|0;var i=0,r=0.0,f=0.0,n=0.0,l=0.0;i=a[(a[(a[A>>2]|0)+16>>2]|0)+96>>2]|0;A=a[(a[(a[e>>2]|0)+16>>2]|0)+96>>2]|0;e=(A|0)!=0;if(i)if(e?(f=+s[i+24>>3],l=+s[i+32>>3],r=+s[A+24>>3],n=+s[A+32>>3],!(f>r)):0)if(!(fn)A=-1;else A=l>2]|0)+116>>2]|0;if(!e)break;else A=e}e=a[A>>2]&3;i=a[(a[((e|0)==2?A:A+-48|0)+40>>2]|0)+16>>2]|0;r=a[i+232>>2]|0;A=a[(a[((e|0)==3?A:A+48|0)+40>>2]|0)+16>>2]|0;e=a[A+232>>2]|0;if((r|0)<=(e|0))if((r|0)<(e|0))A=1;else A=(a[i+236>>2]|0)<(a[A+236>>2]|0)&1;else A=0;return A|0}function dy(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;i=k;k=k+16|0;r=i+8|0;f=i;l=(a[A+16>>2]|0)+180|0;n=(a[e+16>>2]|0)+172|0;a[f>>2]=a[l>>2];a[f+4>>2]=a[l+4>>2];a[r>>2]=a[n>>2];a[r+4>>2]=a[n+4>>2];e=By(A,f,e,r)|0;k=i;return e|0}function By(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0;f=a[e+4>>2]|0;A:do{if((f|0)>0?(n=a[r+4>>2]|0,(n|0)>0):0)if((f|0)<(n|0)){f=a[e>>2]|0;r=0;while(1){e=a[f+(r<<2)>>2]|0;if(!e){e=0;break A}if((a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)==(i|0))break;else r=r+1|0}}else{f=a[r>>2]|0;r=0;while(1){e=a[f+(r<<2)>>2]|0;if(!e){e=0;break A}if((a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)==(A|0))break;else r=r+1|0}}else e=0}while(0);return e|0}function gy(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;i=k;k=k+16|0;r=i+8|0;f=i;l=(a[A+16>>2]|0)+188|0;n=(a[e+16>>2]|0)+196|0;a[f>>2]=a[l>>2];a[f+4>>2]=a[l+4>>2];a[r>>2]=a[n>>2];a[r+4>>2]=a[n+4>>2];e=By(A,f,e,r)|0;k=i;return e|0}function vy(A){A=A|0;var e=0,i=0,r=0,f=0;r=A+48|0;i=a[(a[((a[A>>2]&3|0)==3?A:r)+40>>2]|0)+16>>2]|0;e=a[i+180>>2]|0;if(!e)e=$F((a[i+184>>2]<<2)+8|0)|0;else e=eV(e,(a[i+184>>2]<<2)+8|0)|0;a[(a[(a[((a[A>>2]&3|0)==3?A:r)+40>>2]|0)+16>>2]|0)+180>>2]=e;f=a[(a[((a[A>>2]&3|0)==3?A:r)+40>>2]|0)+16>>2]|0;i=a[f+180>>2]|0;f=f+184|0;e=a[f>>2]|0;a[f>>2]=e+1;a[i+(e<<2)>>2]=A;r=a[(a[((a[A>>2]&3|0)==3?A:r)+40>>2]|0)+16>>2]|0;a[(a[r+180>>2]|0)+(a[r+184>>2]<<2)>>2]=0;r=A+-48|0;e=a[(a[((a[A>>2]&3|0)==2?A:r)+40>>2]|0)+16>>2]|0;i=a[e+172>>2]|0;if(!i)e=$F((a[e+176>>2]<<2)+8|0)|0;else e=eV(i,(a[e+176>>2]<<2)+8|0)|0;a[(a[(a[((a[A>>2]&3|0)==2?A:r)+40>>2]|0)+16>>2]|0)+172>>2]=e;e=a[(a[((a[A>>2]&3|0)==2?A:r)+40>>2]|0)+16>>2]|0;i=a[e+172>>2]|0;e=e+176|0;f=a[e>>2]|0;a[e>>2]=f+1;a[i+(f<<2)>>2]=A;f=a[(a[((a[A>>2]&3|0)==2?A:r)+40>>2]|0)+16>>2]|0;a[(a[f+172>>2]|0)+(a[f+176>>2]<<2)>>2]=0;return A|0}function Ey(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;r=A+4|0;f=a[r>>2]|0;i=0;while(1){if((i|0)>=(f|0))break;n=a[A>>2]|0;l=n+(i<<2)|0;if((a[l>>2]|0)==(e|0)){t=4;break}else i=i+1|0}if((t|0)==4){t=f+-1|0;a[r>>2]=t;a[l>>2]=a[n+(t<<2)>>2];a[(a[A>>2]|0)+(t<<2)>>2]=0}return}function Cy(A){A=A|0;if(!A)gA(85551,85561,117,85570);else{Ey((a[(a[((a[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0)+16>>2]|0)+180|0,A);Ey((a[(a[((a[A>>2]&3|0)==2?A:A+-48|0)+40>>2]|0)+16>>2]|0)+172|0,A);return}}function Iy(A){A=A|0;var e=0,i=0,r=0,f=0;r=A+48|0;i=a[(a[((a[A>>2]&3|0)==3?A:r)+40>>2]|0)+16>>2]|0;e=a[i+204>>2]|0;if(!e)e=$F((a[i+208>>2]<<2)+8|0)|0;else e=eV(e,(a[i+208>>2]<<2)+8|0)|0;a[(a[(a[((a[A>>2]&3|0)==3?A:r)+40>>2]|0)+16>>2]|0)+204>>2]=e;f=a[(a[((a[A>>2]&3|0)==3?A:r)+40>>2]|0)+16>>2]|0;e=a[f+204>>2]|0;f=f+208|0;i=a[f>>2]|0;a[f>>2]=i+1;a[e+(i<<2)>>2]=A;r=a[(a[((a[A>>2]&3|0)==3?A:r)+40>>2]|0)+16>>2]|0;a[(a[r+204>>2]|0)+(a[r+208>>2]<<2)>>2]=0;return}function Zy(A){A=A|0;Gy(A,(a[(a[((a[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0)+16>>2]|0)+204|0);return}function Gy(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;l=e+4|0;r=a[l>>2]|0;f=a[e>>2]|0;i=0;while(1){if((i|0)>=(r|0)){n=4;break}if((a[f+(i<<2)>>2]|0)==(A|0))break;else i=i+1|0}if((n|0)==4){if(!f)i=$F((r<<2)+8|0)|0;else i=eV(f,(r<<2)+8|0)|0;a[e>>2]=i;f=a[l>>2]|0;n=f+1|0;a[l>>2]=n;a[i+(f<<2)>>2]=A;a[(a[e>>2]|0)+(n<<2)>>2]=0}return}function my(A,e,i){A=A|0;e=e|0;i=i|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;w=qF(96)|0;n=w+48|0;a[n>>2]=a[n>>2]|3;a[w>>2]=a[w>>2]&-4|2;l=qF(176)|0;u=w+16|0;a[u>>2]=l;a[((a[w>>2]&3|0)==3?w:n)+40>>2]=A;c=w+-48|0;a[((a[w>>2]&3|0)==2?w:c)+40>>2]=e;r[l+112>>0]=1;if(!i){a[l+156>>2]=1;f[l+154>>1]=1;f[l+168>>1]=1;f[l+170>>1]=1}else{a[w>>2]=a[w>>2]&15|a[i>>2]&-16;a[n>>2]=a[n>>2]&15|a[i>>2]&-16;b=i+16|0;t=a[b>>2]|0;f[l+168>>1]=f[t+168>>1]|0;f[l+154>>1]=f[t+154>>1]|0;a[l+156>>2]=a[t+156>>2];f[l+170>>1]=f[t+170>>1]|0;A=a[((a[w>>2]&3|0)==3?w:n)+40>>2]|0;e=a[i>>2]&3;s=i+48|0;if((A|0)!=(a[((e|0)==3?i:s)+40>>2]|0)){n=i+-48|0;if((A|0)==(a[((e|0)==2?i:n)+40>>2]|0)){l=l+16|0;A=t+56|0;e=l+40|0;do{a[l>>2]=a[A>>2];l=l+4|0;A=A+4|0}while((l|0)<(e|0))}}else{l=l+16|0;A=t+16|0;e=l+40|0;do{a[l>>2]=a[A>>2];l=l+4|0;A=A+4|0}while((l|0)<(e|0));n=i+-48|0}A=a[((a[w>>2]&3|0)==2?w:c)+40>>2]|0;e=a[i>>2]&3;if((A|0)!=(a[((e|0)==2?i:n)+40>>2]|0)){if((A|0)==(a[((e|0)==3?i:s)+40>>2]|0)){l=(a[u>>2]|0)+56|0;A=(a[b>>2]|0)+16|0;e=l+40|0;do{a[l>>2]=a[A>>2];l=l+4|0;A=A+4|0}while((l|0)<(e|0))}}else{l=(a[u>>2]|0)+56|0;A=(a[b>>2]|0)+56|0;e=l+40|0;do{a[l>>2]=a[A>>2];l=l+4|0;A=A+4|0}while((l|0)<(e|0))}A=(a[b>>2]|0)+172|0;if(!(a[A>>2]|0))a[A>>2]=w;a[(a[u>>2]|0)+116>>2]=i}return w|0}function Qy(A,e,i){A=A|0;e=e|0;i=i|0;return vy(my(A,e,i)|0)|0}function Ly(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;A=(a[A+16>>2]|0)+192|0;f=a[A>>2]|0;i=a[e+16>>2]|0;a[i+164>>2]=f;r=f;if(f|0)a[(a[r+16>>2]|0)+168>>2]=e;a[A>>2]=e;a[i+168>>2]=0;if((r|0)==(e|0))gA(85587,85561,215,85603);else return}function yy(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;if((A|0)==(e|0))gA(85613,85561,220,85620);f=a[e+16>>2]|0;i=f+164|0;if(a[i>>2]|0)gA(85633,85561,221,85620);r=(a[A+16>>2]|0)+164|0;a[i>>2]=a[r>>2];i=a[r>>2]|0;if(i|0)a[(a[i+16>>2]|0)+168>>2]=e;a[f+168>>2]=A;a[r>>2]=e;return}function Wy(A,e){A=A|0;e=e|0;var i=0,r=0;if(!(zy(A,e)|0))gA(85652,85561,231,85673);e=a[e+16>>2]|0;i=a[e+164>>2]|0;r=i;e=e+168|0;if(i|0)a[(a[i+16>>2]|0)+168>>2]=a[e>>2];e=a[e>>2]|0;if(!e)a[(a[A+16>>2]|0)+192>>2]=r;else a[(a[e+16>>2]|0)+164>>2]=r;return}function zy(A,e){A=A|0;e=e|0;A=(a[A+16>>2]|0)+192|0;while(1){A=a[A>>2]|0;if((A|0)==0|(A|0)==(e|0))break;A=(a[A+16>>2]|0)+164|0}return A|0}function Yy(A){A=A|0;var e=0,i=0,f=0,n=0;e=qF(64)|0;a[e>>2]=a[e>>2]&-4|1;i=e+16|0;a[i>>2]=qF(304)|0;a[e+24>>2]=Zd(A)|0;n=a[i>>2]|0;r[n+156>>0]=1;s[n+96>>3]=1.0;s[n+88>>3]=1.0;s[n+80>>3]=1.0;a[n+216>>2]=1;a[n+176>>2]=0;n=qF(20)|0;f=a[i>>2]|0;a[f+172>>2]=n;a[f+184>>2]=0;f=qF(20)|0;a[(a[i>>2]|0)+180>>2]=f;Ly(A,e);A=(a[A+16>>2]|0)+232|0;a[A>>2]=(a[A>>2]|0)+1;return e|0}function Dy(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0;n=e+48|0;i=a[(a[((a[e>>2]&3|0)==3?e:n)+40>>2]|0)+16>>2]|0;f=a[i+188>>2]|0;if(!f)i=$F((a[i+192>>2]<<2)+8|0)|0;else i=eV(f,(a[i+192>>2]<<2)+8|0)|0;a[(a[(a[((a[e>>2]&3|0)==3?e:n)+40>>2]|0)+16>>2]|0)+188>>2]=i;l=a[(a[((a[e>>2]&3|0)==3?e:n)+40>>2]|0)+16>>2]|0;f=a[l+188>>2]|0;l=l+192|0;i=a[l>>2]|0;a[l>>2]=i+1;a[f+(i<<2)>>2]=e;n=a[(a[((a[e>>2]&3|0)==3?e:n)+40>>2]|0)+16>>2]|0;a[(a[n+188>>2]|0)+(a[n+192>>2]<<2)>>2]=0;n=e+-48|0;i=a[(a[((a[e>>2]&3|0)==2?e:n)+40>>2]|0)+16>>2]|0;f=a[i+196>>2]|0;if(!f)i=$F((a[i+200>>2]<<2)+8|0)|0;else i=eV(f,(a[i+200>>2]<<2)+8|0)|0;a[(a[(a[((a[e>>2]&3|0)==2?e:n)+40>>2]|0)+16>>2]|0)+196>>2]=i;i=a[(a[((a[e>>2]&3|0)==2?e:n)+40>>2]|0)+16>>2]|0;f=a[i+196>>2]|0;i=i+200|0;l=a[i>>2]|0;a[i>>2]=l+1;a[f+(l<<2)>>2]=e;l=a[(a[((a[e>>2]&3|0)==2?e:n)+40>>2]|0)+16>>2]|0;a[(a[l+196>>2]|0)+(a[l+200>>2]<<2)>>2]=0;r[(a[A+16>>2]|0)+240>>0]=1;r[(a[(vL(A)|0)+16>>2]|0)+240>>0]=1;return}function My(A){A=A|0;var e=0,i=0;if(!A)gA(85551,85561,269,85690);e=a[(a[A+16>>2]|0)+116>>2]|0;if(e|0?(i=(a[e+16>>2]|0)+172|0,(a[i>>2]|0)==(A|0)):0)a[i>>2]=0;Ey((a[(a[((a[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0)+16>>2]|0)+188|0,A);Ey((a[(a[((a[A>>2]&3|0)==2?A:A+-48|0)+40>>2]|0)+16>>2]|0)+196|0,A);return}function Fy(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;f=k;k=k+16|0;i=(a[A+16>>2]|0)+172|0;r=a[i>>2]|0;do{if((r|0)!=(e|0))if(!r){a[i>>2]=e;Vy(A,e);break}else gA(87593,85561,340,85728);else ao(0,85707,f)|0}while(0);k=f;return}function Vy(A,e){A=A|0;e=e|0;var i=0,r=0,n=0,t=0;i=(a[e+16>>2]|0)+170|0;t=a[A+16>>2]|0;A=f[t+170>>1]|0;if((l[i>>1]|0)<(A&65535))f[i>>1]=A;r=t+168|0;n=t+154|0;i=t+156|0;A=e;while(1){if(!A)break;e=a[A+16>>2]|0;t=e+168|0;f[t>>1]=(l[t>>1]|0)+(l[r>>1]|0);t=e+154|0;f[t>>1]=(l[t>>1]|0)+(l[n>>1]|0);t=e+156|0;a[t>>2]=(a[t>>2]|0)+(a[i>>2]|0);A=a[e+172>>2]|0}return}function Jy(A){A=A|0;var e=0,i=0,n=0,l=0;i=A+16|0;e=a[(a[i>>2]|0)+172>>2]|0;A:while(1){if(!e)break;py(e,A);l=a[e+16>>2]|0;n=a[l+172>>2]|0;if(!(f[l+168>>1]|0))Ny(e);while(1){if((r[(a[e+16>>2]|0)+112>>0]|0)!=1){e=n;continue A}e=a[(a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0;if((r[e+156>>0]|0)!=1){e=n;continue A}if((a[e+184>>2]|0)!=1){e=n;continue A}e=a[a[e+180>>2]>>2]|0;py(e,A)}}a[(a[i>>2]|0)+172>>2]=0;return}function py(A,e){A=A|0;e=e|0;var i=0;i=a[e+16>>2]|0;e=a[A+16>>2]|0;A=e+168|0;f[A>>1]=(l[A>>1]|0)-(l[i+168>>1]|0);A=e+154|0;f[A>>1]=(l[A>>1]|0)-(l[i+154>>1]|0);e=e+156|0;a[e>>2]=(a[e>>2]|0)-(a[i+156>>2]|0);return}function Ny(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;if(!A)gA(85551,85561,128,85741);n=A+48|0;i=0;while(1){e=a[A>>2]|0;r=(a[(a[((e&3|0)==3?A:n)+40>>2]|0)+16>>2]|0)+180|0;f=a[(a[r>>2]|0)+(i<<2)>>2]|0;if(!f)break;if((f|0)==(A|0))Ey(r,A);i=i+1|0}n=A+-48|0;f=0;while(1){i=(a[(a[((e&3|0)==2?A:n)+40>>2]|0)+16>>2]|0)+172|0;r=a[(a[i>>2]|0)+(f<<2)>>2]|0;if(!r)break;if((r|0)==(A|0)){Ey(i,A);e=a[A>>2]|0}f=f+1|0}return}function Ry(A){A=A|0;var e=0,i=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0;o=k;k=k+1040|0;u=o+1032|0;w=o;b=o+8|0;s=A+16|0;A=a[s>>2]|0;c=f[A+236>>1]|0;while(1){if((c|0)>(f[A+238>>1]|0))break;t=a[A+196>>2]|0;l=t+(c<<6)|0;t=t+(c<<6)+4|0;n=0;A=0;while(1){if((n|0)>=(a[l>>2]|0))break;e=a[(a[t>>2]|0)+(n<<2)>>2]|0;i=e+16|0;if(a[(a[i>>2]|0)+112>>2]|0){if(!A){r[u>>0]=r[18588]|0;r[u+1>>0]=r[18589]|0;r[u+2>>0]=r[18590]|0;r[u+3>>0]=r[18591]|0;A=kh(85763,u,0)|0}a[w>>2]=n;S4(b,137395,w)|0;g=gd(A,b,1)|0;Td(g,91164,24,1)|0;h=a[(a[i>>2]|0)+180>>2]|0;d=a[h>>2]|0;d=a[(a[(a[((a[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;h=a[h+4>>2]|0;h=a[(a[(a[((a[h>>2]&3|0)==2?h:h+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;B=(d|0)>(h|0);i=a[g+16>>2]|0;a[i+12>>2]=B?h:d;a[i+16>>2]=B?d:h;a[i+20>>2]=e}n=n+1|0}if(A|0){if((gh(A)|0)>1)Xy(A,l);Bh(A)|0}c=c+1|0;A=a[s>>2]|0}k=o;return}function Xy(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0;i=0;l=cd(A)|0;A:while(1){if(!l)break;t=sd(A,l)|0;c=l+16|0;n=t;while(1){if(!n){l=t;continue A}f=a[n+16>>2]|0;r=a[c>>2]|0;if((a[f+16>>2]|0)>(a[r+12>>2]|0)){if((a[r+16>>2]|0)<=(a[f+12>>2]|0))th(A,l,n,0,1)|0}else{th(A,n,l,0,1)|0;i=1}n=sd(A,n)|0}}do{if(i|0){l=NB(A,85766,1)|0;c=qF((gh(A)|0)<<2)|0;t=qF((gh(A)|0)<<2)|0;f=e+4|0;r=cd(A)|0;A:while(1){if(!r){i=23;break}if((a[(a[r+16>>2]|0)+8>>2]|0)==0?Eh(A,r,1,1)|0:0){e:do{if(Hy(A,r,l,t)|0){n=gh(l)|0;if((Uy(A,l,c)|0)!=(n|0)){i=17;break A}K4(t,n,4,60);i=0;while(1){if((i|0)>=(n|0))break e;e=t+(i<<2)|0;s=a[c+(i<<2)>>2]|0;a[(a[s+16>>2]|0)+236>>2]=a[e>>2];a[(a[f>>2]|0)+(a[e>>2]<<2)>>2]=s;i=i+1|0}}}while(0);Ty(l)}r=sd(A,r)|0}if((i|0)==17)gA(85771,85781,265,85792);else if((i|0)==23){L2(c);break}}}while(0);return}function Hy(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0;l=a[e+16>>2]|0;a[l+8>>2]=1;l=a[(a[(a[l+20>>2]|0)+16>>2]|0)+236>>2]|0;a[r+((gh(i)|0)<<2)>>2]=l;kd(i,e,1)|0;l=Oo(A,e)|0;f=0;while(1){if(!l)break;c=a[l>>2]&3;n=a[((c|0)==2?l:l+-48|0)+40>>2]|0;t=a[n+16>>2]|0;f=f+((a[(a[(a[t+20>>2]|0)+16>>2]|0)+236>>2]|0)>(a[(a[(a[(a[(a[((c|0)==3?l:l+48|0)+40>>2]|0)+16>>2]|0)+20>>2]|0)+16>>2]|0)+236>>2]|0)&1)|0;if(!(a[t+8>>2]|0))f=(Hy(A,n,i,r)|0)+f|0;l=_o(A,l)|0}l=qo(A,e)|0;while(1){if(!l)break;t=a[l>>2]&3;n=a[((t|0)==3?l:l+48|0)+40>>2]|0;c=a[n+16>>2]|0;f=f+((a[(a[(a[(a[(a[((t|0)==2?l:l+-48|0)+40>>2]|0)+16>>2]|0)+20>>2]|0)+16>>2]|0)+236>>2]|0)>(a[(a[(a[c+20>>2]|0)+16>>2]|0)+236>>2]|0)&1)|0;if(!(a[c+8>>2]|0))f=(Hy(A,n,i,r)|0)+f|0;l=$o(A,l)|0}return f|0}function Uy(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;f=0;while(1){r=jy(A,e)|0;if(!r)break;a[i+(f<<2)>>2]=a[(a[r+16>>2]|0)+20>>2];Ed(e,r)|0;r=Oo(A,r)|0;while(1){if(!r)break;n=_o(A,r)|0;bh(A,r)|0;r=n}f=f+1|0}return f|0}function xy(A,e){A=A|0;e=e|0;return(a[A>>2]|0)-(a[e>>2]|0)|0}function Ty(A){A=A|0;var e=0,i=0;e=cd(A)|0;while(1){if(!e)break;i=sd(A,e)|0;Ed(A,e)|0;e=i}return}function jy(A,e){A=A|0;e=e|0;var i=0;i=cd(e)|0;while(1){if(!i){i=0;break}if(!(Eh(A,i,1,0)|0))break;i=sd(e,i)|0}return i|0}function Py(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0;Sy(A);t=A+16|0;f=0;i=0;while(1){if((f|0)>=(a[(a[t>>2]|0)+220>>2]|0))break;Oy(A,f);f=f+1|0;i=(Ky(A,0,e)|0)+i|0}_y(A);l=1;while(1){f=a[t>>2]|0;n=a[f+180>>2]|0;if((l|0)>(n|0))break;n=(qy(a[(a[f+184>>2]|0)+(l<<2)>>2]|0,e)|0)+i|0;l=l+1|0;i=n}do{if((n|0)>0){f=Ho(A,85806)|0;if(f|0?(vR(f)|0)<<24>>24==0:0)break;ID(A);r[193769]=1;i=Ky(A,2,e)|0}}while(0);$y(A,i);return}function Sy(A){A=A|0;var e=0;if(0){}r[193769]=0;a[46741]=A;e=((vh(vL(A)|0)|0)<<2)+4|0;a[46740]=qF(e)|0;a[46739]=qF(e)|0;UW(A);e=A+16|0;if(f[(a[e>>2]|0)+136>>1]&16)xW(A);fD(A);jD(A,1);TW(A);nW(A);e=a[e>>2]|0;a[46742]=f[e+236>>1];a[46743]=f[e+238>>1];return}function Oy(A,e){A=A|0;e=e|0;var i=0,r=0,n=0;A=a[A+16>>2]|0;a[A+192>>2]=a[(a[A+216>>2]|0)+(e<<2)>>2];A:do{if((e|0)>0){e=f[A+238>>1]|0;i=A+196|0;A=f[A+236>>1]|0;while(1){if((A|0)>(e|0))break A;r=a[i>>2]|0;n=r+(A<<6)+4|0;r=r+(A<<6)|0;a[n>>2]=(a[n>>2]|0)+(a[r>>2]<<2);a[r>>2]=0;A=A+1|0}}}while(0);return}function Ky(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0;w=k;k=k+32|0;u=w;if((e|0)>1){r=CW(0)|0;IW(A)}else r=2147483647;b=a[15712]|0;c=e;f=0;e=r;while(1){if((c|0)>=3)break;f=a[47136]|0;if((c|0)==2)if((r|0)>(e|0)){GW(A);r=e}else r=e;else{r=(f|0)<4?f:4;if((vL(A)|0)==(A|0))ZW(A,c);if(!c)lW(A);tW(A);n=CW(0)|0;if((n|0)>(e|0)){f=r;r=n}else{IW(A);f=r;r=n;e=n}}n=0;t=0;while(1){if((t|0)>=(f|0))break;if(0){}l=n+1|0;if((r|0)==0|(n|0)>=(a[46744]|0))break;mW(A,t);r=CW(0)|0;if((r|0)>(e|0))n=l;else{IW(A);n=+s[23215]*+(e|0)>+(r|0)?0:l;e=r}t=t+1|0}if(!r){r=0;break}else c=c+1|0}if((r|0)>(e|0))GW(A);if((e|0)>0){QW(A,0);r=CW(0)|0}else r=e;A:do{if(i|0){e=0;while(1){if((e|0)>=(f|0))break A;LW(A);e=e+1|0}}}while(0);k=w;return r|0}function _y(A){A=A|0;var e=0,i=0,r=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0;o=k;k=k+16|0;u=o;EW(A);s=A+16|0;e=a[s>>2]|0;b=a[15712]|0;c=f[e+236>>1]|0;while(1){if((c|0)>(f[e+238>>1]|0))break;i=a[e+196>>2]|0;r=a[i+(c<<6)+8>>2]|0;a[i+(c<<6)>>2]=r;n=a[i+(c<<6)+12>>2]|0;a[i+(c<<6)+4>>2]=n;t=0;while(1){if((t|0)>=(r|0))break;l=a[n+(t<<2)>>2]|0;if(!l){w=6;break}a[(a[l+16>>2]|0)+236>>2]=t;t=t+1|0}if((w|0)==6){w=0;if(0){}a[i+(c<<6)>>2]=t}c=c+1|0}k=o;return}function qy(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;dD(A);nW(A);lW(A);tW(A);f=A+16|0;i=Ky(A,2,e)|0;r=1;while(1){n=a[f>>2]|0;if((r|0)>(a[n+180>>2]|0))break;i=(qy(a[(a[n+184>>2]|0)+(r<<2)>>2]|0,e)|0)+i|0;r=r+1|0}cW(A);return i|0}function $y(A,e){A=A|0;e=e|0;var i=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0.0;o=k;k=k+16|0;w=o;i=a[46739]|0;if(i|0){L2(i);a[46739]=0}i=a[46740]|0;if(i|0){L2(i);a[46740]=0}u=A+16|0;i=1;while(1){n=a[u>>2]|0;if((i|0)>(a[n+180>>2]|0))break;AW(a[(a[n+184>>2]|0)+(i<<2)>>2]|0);i=i+1|0}b=f[n+236>>1]|0;i=n;while(1){if((b|0)>(f[i+238>>1]|0))break;else s=0;while(1){i=a[i+196>>2]|0;if((s|0)>=(a[i+(b<<6)>>2]|0))break;c=(a[(a[i+(b<<6)+4>>2]|0)+(s<<2)>>2]|0)+16|0;i=a[c>>2]|0;a[i+236>>2]=s;i=a[i+188>>2]|0;A:do{if(i|0){n=0;while(1){l=a[i+(n<<2)>>2]|0;if(!l)break A;t=l+16|0;if((r[(a[t>>2]|0)+112>>0]|0)==4){My(l);L2(a[t>>2]|0);L2(l);n=n+-1|0;i=a[(a[c>>2]|0)+188>>2]|0}n=n+1|0}}}while(0);s=s+1|0;i=a[u>>2]|0}eW(a[i+(b<<6)+56>>2]|0);b=b+1|0;i=a[u>>2]|0}if(0){}k=o;return}function AW(A){A=A|0;var e=0,i=0,r=0,n=0,l=0,t=0,c=0,s=0;n=A+16|0;e=1;while(1){r=a[n>>2]|0;if((e|0)>(a[r+180>>2]|0))break;AW(a[(a[r+184>>2]|0)+(e<<2)>>2]|0);e=e+1|0}A:do{if(a[r+268>>2]|0){i=f[r+236>>1]|0;e=r;while(1){if((i|0)>(f[e+238>>1]|0))break A;c=a[(a[e+268>>2]|0)+(i<<2)>>2]|0;t=iW(A,c,-1)|0;c=iW(A,c,1)|0;a[(a[(a[n>>2]|0)+268>>2]|0)+(i<<2)>>2]=t;s=a[(a[(a[(vL(A)|0)+16>>2]|0)+196>>2]|0)+(i<<6)+4>>2]|0;t=a[(a[t+16>>2]|0)+236>>2]|0;r=a[n>>2]|0;l=a[r+196>>2]|0;a[l+(i<<6)+4>>2]=s+(t<<2);a[l+(i<<6)>>2]=(a[(a[c+16>>2]|0)+236>>2]|0)+1-t;i=i+1|0;e=r}}}while(0);return}function eW(A){A=A|0;if(A|0){L2(a[A+8>>2]|0);L2(A)}return}function iW(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;r=e;while(1){e=rW(e,i)|0;if(!e)break;if(fW(A,e)|0){r=e;continue}f=(aW(A,e)|0)==0;r=f?r:e}return r|0}function rW(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;if(!A)gA(85856,85781,1023,85858);if((e|0)<0){A=a[A+16>>2]|0;r=a[A+236>>2]|0;if((r|0)>0){A=(a[(a[(a[46741]|0)+16>>2]|0)+196>>2]|0)+(a[A+232>>2]<<6)+4|0;i=r+-1|0;f=7}else n=0}else{A=a[A+16>>2]|0;r=a[A+236>>2]|0;A=(a[(a[(a[46741]|0)+16>>2]|0)+196>>2]|0)+(a[A+232>>2]<<6)+4|0;i=r+1|0;f=7}if((f|0)==7){A=a[(a[A>>2]|0)+(i<<2)>>2]|0;if(A)if((U((a[(a[A+16>>2]|0)+236>>2]|0)-r|0,e)|0)>0)n=A;else gA(85867,85781,1029,85858);else n=0}return n|0}function fW(A,e){A=A|0;e=e|0;if(!(r[(a[e+16>>2]|0)+156>>0]|0))A=(Dd(A,e)|0)!=0&1;else A=0;return A|0}function aW(A,e){A=A|0;e=e|0;var i=0,f=0;e=a[e+16>>2]|0;if(((r[e+156>>0]|0)==1?(a[e+176>>2]|0)==1:0)?(a[e+184>>2]|0)==1:0){e=a[e+180>>2]|0;while(1){e=a[e>>2]|0;i=a[e+16>>2]|0;if(!(r[i+112>>0]|0))break;else e=i+116|0}if(Dd(A,e)|0)e=1;else f=7}else f=7;if((f|0)==7)e=0;return e|0}function nW(A){A=A|0;var e=0,i=0,f=0;f=k;k=k+16|0;i=f;e=a[47140]|0;A:do{if((e|0)!=0|(a[47161]|0)!=0){e=dR(A,e,0)|0;if(e|0){switch(r[e>>0]|0){case 0:break A;case 111:{if(!(A1(e,86069)|0)){hW(A,1);break A}break}case 105:{if(!(A1(e,98735)|0)){hW(A,0);break A}break}default:{}}a[i>>2]=e;ao(1,86073,i)|0;break}e=RB(A)|0;while(1){if(!e)break;if(!(eY(e)|0))nW(e);e=XB(e)|0}if(a[47161]|0)dW(A)}}while(0);k=f;return}function lW(A){A=A|0;var e=0,i=0,n=0,l=0,t=0,c=0,s=0;s=A+16|0;e=a[s>>2]|0;c=f[e+236>>1]|0;while(1){if((c|0)>(f[e+238>>1]|0))break;else{i=0;t=0}while(1){n=a[e+196>>2]|0;l=a[n+(c<<6)>>2]|0;if((t|0)>=(l|0))break;n=a[(a[(a[n+(c<<6)+4>>2]|0)+(t<<2)>>2]|0)+16>>2]|0;r[n+158>>0]=0;r[n+157>>0]=0;a[n+284>>2]=t;if((i|0)==0&(a[n+192>>2]|0)>0){i=kW(l,l)|0;e=a[s>>2]|0;a[(a[e+196>>2]|0)+(c<<6)+56>>2]=i;i=1}t=t+1|0}A:do{if(i){t=0;i=l;while(1){if((t|0)>=(i|0))break A;l=a[(a[n+(c<<6)+4>>2]|0)+(t<<2)>>2]|0;if(!(r[(a[l+16>>2]|0)+157>>0]|0)){oW(A,l);e=a[s>>2]|0;i=a[e+196>>2]|0;n=i;i=a[i+(c<<6)>>2]|0}t=t+1|0}}}while(0);c=c+1|0}return}function tW(A){A=A|0;var e=0,i=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0;B=A+16|0;e=a[B>>2]|0;if(r[e+240>>0]|0){l=0;d=f[e+236>>1]|0;h=0;t=0;A:while(1){if((d|0)>(f[e+238>>1]|0))break;i=a[e+196>>2]|0;n=a[i+(d<<6)>>2]|0;if(!n){n=h;i=t}else{i=a[i+(d<<6)+4>>2]|0;k=a[(a[(a[i>>2]|0)+16>>2]|0)+236>>2]|0;e=0;while(1){if((e|0)>=(n|0))break;r[(a[(a[i+(e<<2)>>2]|0)+16>>2]|0)+157>>0]=0;e=e+1|0}e=(e<<2)+4|0;if(!l)o=$F(e)|0;else o=eV(t,e)|0;u=0;w=0;while(1){e=a[B>>2]|0;i=a[e+196>>2]|0;n=a[i+(d<<6)>>2]|0;if((n|0)<=(w|0))break;c=a[(a[i+(d<<6)+4>>2]|0)+(((a[e+116>>2]&1|0)==0?n+~w|0:w)<<2)>>2]|0;b=c+16|0;e=0;s=0;while(1){t=a[b>>2]|0;if((e|0)>=(a[t+200>>2]|0)){i=0;n=0;e=t;break}t=s+((sW(A,a[(a[t+196>>2]|0)+(e<<2)>>2]|0)|0)!=0&1)|0;e=e+1|0;s=t}while(1){if((n|0)>=(a[e+192>>2]|0))break;t=i+((sW(A,a[(a[e+188>>2]|0)+(n<<2)>>2]|0)|0)!=0&1)|0;i=t;n=n+1|0;e=a[b>>2]|0}if(i|s)if((s|0)==0&(r[e+157>>0]|0)==0)e=(bW(A,c,o+(u<<2)|0,d)|0)+u|0;else e=u;else{a[o+(u<<2)>>2]=c;e=u+1|0}u=e;w=w+1|0}e:do{if(u){i:do{if(!(a[e+116>>2]&1)){i=o;e=o+(u<<2)|0;while(1){e=e+-4|0;if(i>>>0>=e>>>0){n=0;break i}w=a[i>>2]|0;a[i>>2]=a[e>>2];a[e>>2]=w;i=i+4|0}}else n=0}while(0);while(1){e=a[B>>2]|0;t=a[e+196>>2]|0;i=a[t+(d<<6)>>2]|0;if((n|0)>=(i|0)){u=0;n=t;break}w=a[o+(n<<2)>>2]|0;a[(a[t+(d<<6)+4>>2]|0)+(n<<2)>>2]=w;a[(a[w+16>>2]|0)+236>>2]=n+k;n=n+1|0}while(1){if((u|0)>=(i|0))break e;b=(a[(a[n+(d<<6)+4>>2]|0)+(u<<2)>>2]|0)+16|0;t=a[(a[b>>2]|0)+188>>2]|0;if(t){s=0;i=t;while(1){n=a[i+(s<<2)>>2]|0;e=a[B>>2]|0;if(!n)break;c=a[n>>2]&3;t=a[(a[(a[((c|0)==2?n:n+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;c=a[(a[(a[((c|0)==3?n:n+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;if(!(a[e+116>>2]&1))if((t|0)<(c|0))g=36;else e=s;else if((t|0)>(c|0))g=36;else e=s;if((g|0)==36){g=0;if(sW(A,n)|0){g=37;break A}My(n);uW(A,n);e=s+-1|0;i=a[(a[b>>2]|0)+188>>2]|0}s=e+1|0}i=a[e+196>>2]|0;n=i;i=a[i+(d<<6)>>2]|0}u=u+1|0}}}while(0);r[(a[(a[(a[46741]|0)+16>>2]|0)+196>>2]|0)+(d<<6)+49>>0]=0;l=o;n=o;i=o}d=d+1|0;h=n;t=i}if((g|0)==37)gA(85915,85781,1561,85954);if(l|0)L2(h)}return}function cW(A){A=A|0;var e=0,i=0;i=A+16|0;A=a[i>>2]|0;A:do{if(a[A+268>>2]|0){e=f[A+236>>1]|0;while(1){if((e|0)>(f[A+238>>1]|0))break A;a[(a[A+268>>2]|0)+(e<<2)>>2]=a[a[(a[A+196>>2]|0)+(e<<6)+4>>2]>>2];e=e+1|0;A=a[i>>2]|0}}}while(0);return}function sW(A,e){A=A|0;e=e|0;if((a[(a[e+16>>2]|0)+156>>2]|0)!=0?(wW(A,a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)|0)!=0:0)A=(wW(A,a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)|0)!=0&1;else A=0;return A|0}function bW(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0;b=e+16|0;n=a[b>>2]|0;r[n+157>>0]=1;A:do{if((a[n+192>>2]|0)>0){l=0;c=0;while(1){t=a[(a[n+188>>2]|0)+(c<<2)>>2]|0;if(!t)break A;if((sW(A,t)|0)!=0?(s=a[((a[t>>2]&3|0)==2?t:t+-48|0)+40>>2]|0,(r[(a[s+16>>2]|0)+157>>0]|0)==0):0)l=(bW(A,s,i+(l<<2)|0,f)|0)+l|0;c=c+1|0;n=a[b>>2]|0}}else l=0}while(0);if((a[n+232>>2]|0)==(f|0)){a[i+(l<<2)>>2]=e;return l+1|0}else gA(85967,85781,1490,85983);return 0}function uW(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0;t=a[e>>2]&3;c=a[((t|0)==2?e:e+-48|0)+40>>2]|0;f=a[(a[c+16>>2]|0)+188>>2]|0;A:do{if(!f){i=e+48|0;u=15}else{b=e+48|0;n=((t|0)==3?e:b)+40|0;i=0;while(1){l=a[f+(i<<2)>>2]|0;if(!l){i=b;u=15;break A}if((a[((a[l>>2]&3|0)==2?l:l+-48|0)+40>>2]|0)==(a[n>>2]|0))break;else i=i+1|0}Fy(e,l);i=(a[e+16>>2]|0)+172|0;if(!(a[i>>2]|0))a[i>>2]=l;i=a[l+16>>2]|0;if((r[i+112>>0]|0)==4?(s=i+116|0,(a[s>>2]|0)==0):0)a[s>>2]=e;i=a[(a[((a[e>>2]&3|0)==3?e:b)+40>>2]|0)+16>>2]|0;f=a[i+204>>2]|0;if(!f)i=$F((a[i+208>>2]<<2)+8|0)|0;else i=eV(f,(a[i+208>>2]<<2)+8|0)|0;a[(a[(a[((a[e>>2]&3|0)==3?e:b)+40>>2]|0)+16>>2]|0)+204>>2]=i;t=a[(a[((a[e>>2]&3|0)==3?e:b)+40>>2]|0)+16>>2]|0;c=a[t+204>>2]|0;t=t+208|0;s=a[t>>2]|0;a[t>>2]=s+1;a[c+(s<<2)>>2]=e;e=a[(a[((a[e>>2]&3|0)==3?e:b)+40>>2]|0)+16>>2]|0;a[(a[e+204>>2]|0)+(a[e+208>>2]<<2)>>2]=0}}while(0);if((u|0)==15){u=my(c,a[((t|0)==3?e:i)+40>>2]|0,e)|0;b=a[e+16>>2]|0;e=a[u+16>>2]|0;r[e+112>>0]=(r[b+112>>0]|0)==4?4:3;a[e+96>>2]=a[b+96>>2];Dy(A,u)}return}function wW(A,e){A=A|0;e=e|0;var i=0;i=fW(A,e)|0;return aW(A,e)|0|i|0}function kW(A,e){A=A|0;e=e|0;var i=0;i=qF(12)|0;a[i>>2]=A;a[i+4>>2]=e;a[i+8>>2]=qF(U(e,A)|0)|0;return i|0}function oW(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0;k=e+16|0;b=a[k>>2]|0;s=a[(a[(a[A+16>>2]|0)+196>>2]|0)+(a[b+232>>2]<<6)+56>>2]|0;r[b+157>>0]=1;r[b+158>>0]=1;b=(a[(a[(vL(A)|0)+16>>2]|0)+180>>2]|0)>0;i=a[k>>2]|0;f=a[i+188>>2]|0;A:do{if(f){u=s+4|0;w=s+8|0;e=0;e:while(1){c=a[f+(e<<2)>>2]|0;if(!c){o=i;break A}if(b){if((Dd(A,a[((a[c>>2]&3|0)==3?c:c+48|0)+40>>2]|0)|0)!=0?(Dd(A,a[((a[c>>2]&3|0)==2?c:c+-48|0)+40>>2]|0)|0)!=0:0)h=7}else h=7;do{if((h|0)==7){h=0;l=c+16|0;if(a[(a[l>>2]|0)+156>>2]|0){i=a[c>>2]&3;n=c+-48|0;d=a[(a[((i|0)==2?c:n)+40>>2]|0)+16>>2]|0;t=a[d+284>>2]|0;f=(t|0)<(a[s>>2]|0);if((r[d+158>>0]|0)==1){if(!f){h=10;break e}i=a[(a[(a[((i|0)==3?c:c+48|0)+40>>2]|0)+16>>2]|0)+284>>2]|0;f=a[u>>2]|0;if((i|0)>=(f|0)){h=12;break e}r[(a[w>>2]|0)+((U(f,t)|0)+i)>>0]=1;My(c);e=e+-1|0;if((r[(a[l>>2]|0)+112>>0]|0)==4)break;uW(A,c);break}else{if(!f){h=16;break e}i=a[(a[(a[((i|0)==3?c:c+48|0)+40>>2]|0)+16>>2]|0)+284>>2]|0;f=a[u>>2]|0;if((i|0)>=(f|0)){h=18;break e}r[(a[w>>2]|0)+((U(f,i)|0)+t)>>0]=1;i=a[((a[c>>2]&3|0)==2?c:n)+40>>2]|0;if(r[(a[i+16>>2]|0)+157>>0]|0)break;oW(A,i);break}}}}while(0);f=a[k>>2]|0;e=e+1|0;i=f;f=a[f+188>>2]|0}if((h|0)==10)gA(85993,85781,1251,86025);else if((h|0)==12)gA(86037,85781,1252,86025);else if((h|0)==16)gA(85993,85781,1260,86025);else if((h|0)==18)gA(86037,85781,1261,86025)}else o=i}while(0);r[o+158>>0]=0;return}function hW(A,e){A=A|0;e=e|0;var i=0;i=cd(A)|0;while(1){if(!i)break;BW(A,i,e);i=sd(A,i)|0}return}function dW(A){A=A|0;var e=0,i=0,f=0,n=0,l=0;n=k;k=k+16|0;f=n;e=cd(A)|0;while(1){if(!e)break;i=dR(e,a[47161]|0,0)|0;A:do{if(i|0){switch(r[i>>0]|0){case 0:break A;case 111:{if(!(A1(i,86069)|0)){BW(A,e,1);break A}break}case 105:{if(!(A1(i,98735)|0)){BW(A,e,0);break A}break}default:{}}l=Vh(e)|0;a[f>>2]=i;a[f+4>>2]=l;ao(1,86104,f)|0}}while(0);e=sd(A,e)|0}k=n;return}function BW(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0;c=a[46740]|0;l=e+16|0;f=a[l>>2]|0;A:do{if(!(a[f+212>>2]|0)){t=(i|0)!=0;e:do{if(t){n=0;e=0;i=f;while(1){f=a[(a[i+180>>2]|0)+(n<<2)>>2]|0;if(!f)break e;if(!(gW(f)|0)){a[c+(e<<2)>>2]=f;e=e+1|0;i=a[l>>2]|0}n=n+1|0}}else{n=0;e=0;i=f;while(1){f=a[(a[i+172>>2]|0)+(n<<2)>>2]|0;if(!f)break e;if(!(gW(f)|0)){a[c+(e<<2)>>2]=f;e=e+1|0;i=a[l>>2]|0}n=n+1|0}}}while(0);if((e|0)>=2){a[c+(e<<2)>>2]=0;K4(c,e,4,61);l=t?2:3;n=t?-1:1;f=1;while(1){e=a[c+(f<<2)>>2]|0;if(!e)break A;i=a[c+(f+-1<<2)>>2]|0;i=a[((a[i>>2]&3|0)==(l|0)?i:i+(n*48|0)|0)+40>>2]|0;e=a[((a[e>>2]&3|0)==(l|0)?e:e+(n*48|0)|0)+40>>2]|0;if(gy(i,e)|0)break A;t=my(i,e,0)|0;r[(a[t+16>>2]|0)+112>>0]=4;Dy(A,t);f=f+1|0}}}}while(0);return}function gW(A){A=A|0;var e=0;while(1){e=a[(a[A+16>>2]|0)+116>>2]|0;if(!e)break;else A=e}e=a[A>>2]&3;return(a[(a[(a[((e|0)==3?A:A+48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0)!=(a[(a[(a[((e|0)==2?A:A+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0)|0}function vW(A,e){A=A|0;e=e|0;return((a[a[A>>2]>>2]|0)>>>4)-((a[a[e>>2]>>2]|0)>>>4)|0}function EW(A){A=A|0;var e=0,i=0,r=0,n=0,l=0,t=0,c=0;r=a[A+16>>2]|0;n=r+220|0;l=a[n>>2]|0;if((l|0)>=2){t=r+216|0;A=0;i=0;while(1){if((i|0)>=(l|0))break;e=a[(a[t>>2]|0)+(i<<2)>>2]|0;if(A|0)a[(a[A+16>>2]|0)+164>>2]=e;c=a[e+16>>2]|0;a[c+168>>2]=A;A=e;e=c;while(1){e=a[e+164>>2]|0;if(!e)break;A=e;e=a[e+16>>2]|0}i=i+1|0}a[n>>2]=1;a[r+192>>2]=a[a[r+216>>2]>>2];f[r+236>>1]=a[46742];f[r+238>>1]=a[46743]}return}function CW(A){A=A|0;var e=0,i=0,n=0,l=0,t=0,c=0;t=a[46741]|0;c=t+16|0;i=a[c>>2]|0;n=0;l=f[i+236>>1]|0;while(1){if((l|0)>=(f[i+238>>1]|0))break;A=a[i+196>>2]|0;if(!(r[A+(l<<6)+49>>0]|0)){e=XW(t,l)|0;A=a[c>>2]|0;i=a[A+196>>2]|0;a[i+(l<<6)+52>>2]=e;r[i+(l<<6)+49>>0]=1}else{e=a[A+(l<<6)+52>>2]|0;A=i}n=e+n|0;l=l+1|0;i=A}return n|0}function IW(A){A=A|0;var e=0,i=0,r=0,n=0,l=0,t=0;A=a[A+16>>2]|0;n=f[A+238>>1]|0;l=A+196|0;A=f[A+236>>1]|0;while(1){if((A|0)>(n|0))break;r=a[l>>2]|0;i=a[r+(A<<6)>>2]|0;r=r+(A<<6)+4|0;e=0;while(1){if((e|0)>=(i|0))break;t=a[(a[(a[r>>2]|0)+(e<<2)>>2]|0)+16>>2]|0;s[t+16>>3]=+(a[t+236>>2]|0);e=e+1|0}A=A+1|0}return}function ZW(A,e){A=A|0;e=e|0;var i=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0;d=k;k=k+16|0;b=d;u=A+16|0;w=sR(a[(a[u>>2]|0)+232>>2]|0)|0;c=a[u>>2]|0;i=c+192|0;n=i;while(1){n=a[n>>2]|0;if(!n)break;n=a[n+16>>2]|0;r[n+157>>0]=0;n=n+164|0}l=f[c+238>>1]|0;t=c+196|0;n=f[c+236>>1]|0;while(1){if((n|0)>(l|0))break;a[(a[t>>2]|0)+(n<<6)>>2]=0;n=n+1|0}t=(e|0)==0;while(1){n=a[i>>2]|0;if(!n)break;l=n+16|0;i=a[l>>2]|0;if((a[a[(t?i+172|0:i+180|0)>>2]>>2]|0)==0?(s=i+157|0,(r[s>>0]|0)==0):0){r[s>>0]=1;uR(w,n);while(1){i=wR(w)|0;if(!i)break;if((r[(a[i+16>>2]|0)+159>>0]|0)==7){CD(A,i,e,w);continue}else{NW(A,i);RW(w,i,e);continue}}i=a[l>>2]|0}i=i+164|0}if(wR(w)|0)ao(1,86312,b)|0;i=a[u>>2]|0;c=f[i+236>>1]|0;while(1){if((c|0)>(f[i+238>>1]|0))break;r[(a[(a[(a[46741]|0)+16>>2]|0)+196>>2]|0)+(c<<6)+49>>0]=0;if((a[i+116>>2]&1|0)!=0?(o=a[i+196>>2]|0,h=a[o+(c<<6)>>2]|0,(h|0)>0):0){n=a[o+(c<<6)+4>>2]|0;l=h+-1|0;t=(l|0)/2|0;i=0;while(1){if((i|0)>(t|0))break;DW(a[n+(i<<2)>>2]|0,a[n+(l-i<<2)>>2]|0);i=i+1|0}i=a[u>>2]|0}c=c+1|0}if((vL(A)|0)==(A|0)?(CW(0)|0)>0:0)QW(A,0);bR(w);k=d;return}function GW(A){A=A|0;var e=0,i=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,k=0;w=A+16|0;A=a[w>>2]|0;i=f[A+236>>1]|0;e=f[A+238>>1]|0;b=e<<16>>16;u=A+196|0;n=i;while(1){if((n|0)>(b|0))break;c=a[u>>2]|0;t=a[c+(n<<6)>>2]|0;c=c+(n<<6)+4|0;l=0;while(1){if((l|0)>=(t|0))break;k=a[(a[(a[c>>2]|0)+(l<<2)>>2]|0)+16>>2]|0;a[k+236>>2]=~~+s[k+16>>3];l=l+1|0}n=n+1|0}while(1){if((i|0)>(e<<16>>16|0))break;r[(a[(a[(a[46741]|0)+16>>2]|0)+196>>2]|0)+(i<<6)+49>>0]=0;k=a[A+196>>2]|0;K4(a[k+(i<<6)+4>>2]|0,a[k+(i<<6)>>2]|0,4,62);k=a[w>>2]|0;i=i+1|0;e=f[k+238>>1]|0;A=k}return}function mW(A,e){A=A|0;e=e|0;var i=0,r=0,n=0;n=((e|0)%4|0|0)<2&1;i=a[A+16>>2]|0;if(!(e&1)){e=f[i+236>>1]|0;r=1;i=f[i+238>>1]|0;e=(e<<16>>16<=(f[(a[(a[46741]|0)+16>>2]|0)+236>>1]|0)&1)+(e<<16>>16)|0}else{e=f[i+238>>1]|0;r=-1;i=f[i+236>>1]|0;e=((e<<16>>16>=(f[(a[(a[46741]|0)+16>>2]|0)+238>>1]|0))<<31>>31)+(e<<16>>16)|0}i=r+i|0;while(1){if((e|0)==(i|0))break;VW(A,e,n,(FW(A,e,e-r|0)|0)&255);e=e+r|0}QW(A,n^1);return}function QW(A,e){A=A|0;e=e|0;var i=0,n=0,l=0,t=0,c=0,s=0;s=A+16|0;n=a[s>>2]|0;t=f[n+236>>1]|0;c=f[n+238>>1]|0;l=n+196|0;i=t<<16>>16;while(1){if((i|0)>(c|0)){l=t;break}r[(a[l>>2]|0)+(i<<6)+48>>0]=1;i=i+1|0}while(1){i=0;l=l<<16>>16;while(1){if((l|0)>(f[n+238>>1]|0))break;if(r[(a[n+196>>2]|0)+(l<<6)+48>>0]|0){i=(MW(A,l,e)|0)+i|0;n=a[s>>2]|0}l=l+1|0}if((i|0)<=0)break;l=f[n+236>>1]|0}return}function LW(A){A=A|0;var e=0,i=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0;k=A+16|0;e=a[k>>2]|0;w=f[e+238>>1]|0;A:while(1){if((w|0)<(f[e+236>>1]|0)){e=16;break}i=a[e+196>>2]|0;r[i+(w<<6)+48>>0]=0;o=(w|0)>0;h=w+1|0;n=0;e:while(1){b=(a[i+(w<<6)>>2]|0)+-1|0;u=i+(w<<6)+4|0;s=i+(h<<6)|0;while(1){if((n|0)>=(b|0))break e;c=a[u>>2]|0;t=a[c+(n<<2)>>2]|0;n=n+1|0;c=a[c+(n<<2)>>2]|0;if((a[(a[t+16>>2]|0)+236>>2]|0)>=(a[(a[c+16>>2]|0)+236>>2]|0)){e=7;break A}if(yW(A,t,c)|0)continue;if(o){i=WW(t,c)|0;l=WW(c,t)|0}else{i=0;l=0}if((a[s>>2]|0)>0){i=(zW(t,c)|0)+i|0;l=(zW(c,t)|0)+l|0}if((l|0)<=(i|0))break}YW(A,w,t,c);e=a[k>>2]|0;i=a[e+196>>2]|0}w=w+-1|0}if((e|0)==7)gA(86263,85781,721,86289);else if((e|0)==16)return}function yW(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0;c=a[e+16>>2]|0;t=a[c+212>>2]|0;f=a[i+16>>2]|0;n=a[f+212>>2]|0;l=(t|0)!=(n|0);do{if(!(r[193769]|0))if((n|0)==0|((t|0)==0|l^1))s=9;else{if((r[c+159>>0]|0)==7?(r[c+156>>0]|0)==1:0){A=0;break}if((r[f+159>>0]|0)==7?(r[f+156>>0]|0)==1:0){A=0;break}A=1}else if(l)A=1;else s=9}while(0);if((s|0)==9){f=a[A+16>>2]|0;A=a[(a[f+196>>2]|0)+(a[c+232>>2]<<6)+56>>2]|0;if(!A)A=0;else{c=(a[f+116>>2]&1|0)==0;s=U(a[A+4>>2]|0,a[(a[(c?e:i)+16>>2]|0)+284>>2]|0)|0;A=r[(a[A+8>>2]|0)+((a[(a[(c?i:e)+16>>2]|0)+284>>2]|0)+s)>>0]|0}}return A|0}function WW(A,e){A=A|0;e=e|0;var i=0,r=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0;b=A+16|0;t=a[(a[e+16>>2]|0)+172>>2]|0;e=0;while(1){A=a[t>>2]|0;if(!A)break;l=a[A+16>>2]|0;c=f[l+154>>1]|0;n=a[(a[(a[((a[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;l=l+16|0;r=a[(a[b>>2]|0)+172>>2]|0;A=e;while(1){e=a[r>>2]|0;if(!e)break;i=(a[(a[(a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-n|0;if((i|0)<=0){if((i|0)==0?(u=a[e+16>>2]|0,+s[u+16>>3]>+s[l>>3]):0){e=u;w=9}}else{e=a[e+16>>2]|0;w=9}if((w|0)==9){w=0;A=(U(f[e+154>>1]|0,c)|0)+A|0}r=r+4|0}t=t+4|0;e=A}return e|0}function zW(A,e){A=A|0;e=e|0;var i=0,r=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0;b=A+16|0;t=a[(a[e+16>>2]|0)+180>>2]|0;e=0;while(1){A=a[t>>2]|0;if(!A)break;l=a[A+16>>2]|0;c=f[l+154>>1]|0;n=a[(a[(a[((a[A>>2]&3|0)==2?A:A+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;l=l+56|0;r=a[(a[b>>2]|0)+180>>2]|0;A=e;while(1){e=a[r>>2]|0;if(!e)break;i=(a[(a[(a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-n|0;if((i|0)<=0){if((i|0)==0?(u=a[e+16>>2]|0,+s[u+56>>3]>+s[l>>3]):0){e=u;w=9}}else{e=a[e+16>>2]|0;w=9}if((w|0)==9){w=0;A=(U(f[e+154>>1]|0,c)|0)+A|0}r=r+4|0}t=t+4|0;e=A}return e|0}function YW(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0;t=r[(a[i+16>>2]|0)+156>>0]|0;if(t<<24>>24!=(r[(a[f+16>>2]|0)+156>>0]|0)){c=A+16|0;b=a[(a[c>>2]|0)+196>>2]|0;s=a[b+(e<<6)>>2]|0;b=b+(e<<6)+4|0;A=0;n=0;l=0;while(1){if((A|0)>=(s|0))break;k=(r[(a[(a[(a[b>>2]|0)+(A<<2)>>2]|0)+16>>2]|0)+156>>0]|0)==0;A=A+1|0;n=n+(k&1)|0;l=l+((k^1)&1)|0}t=t<<24>>24==0;l=(n|0)<(l|0)?t?i:f:t?f:i;t=0;A=0;while(1){if((A|0)>=(s|0))break;t=(a[(a[b>>2]|0)+(A<<2)>>2]|0)==(l|0)?A:t;A=A+1|0}k=(r[(a[l+16>>2]|0)+156>>0]|0)==0&1;w=0;n=t;while(1){A=n+-1|0;if((n|0)<=0){u=0;A=t;break}if((r[(a[(a[(a[b>>2]|0)+(A<<2)>>2]|0)+16>>2]|0)+156>>0]|0)!=(k|0)){u=0;A=t;break}w=w+1|0;n=A}while(1){A=A+1|0;if((A|0)>=(s|0))break;if((r[(a[(a[(a[b>>2]|0)+(A<<2)>>2]|0)+16>>2]|0)+156>>0]|0)!=(k|0))break;u=u+1|0}DW(i,f);c=a[(a[c>>2]|0)+196>>2]|0;s=a[c+(e<<6)>>2]|0;c=c+(e<<6)+4|0;A=0;while(1){if((A|0)>=(s|0)){l=0;n=t;break}t=(a[(a[c>>2]|0)+(A<<2)>>2]|0)==(l|0)?A:t;A=A+1|0}while(1){A=n+-1|0;if((n|0)<=0){n=0;A=t;break}if((r[(a[(a[(a[c>>2]|0)+(A<<2)>>2]|0)+16>>2]|0)+156>>0]|0)!=(k|0)){n=0;A=t;break}l=l+1|0;n=A}while(1){A=A+1|0;if((A|0)>=(s|0))break;if((r[(a[(a[(a[c>>2]|0)+(A<<2)>>2]|0)+16>>2]|0)+156>>0]|0)!=(k|0))break;n=n+1|0}e=l-n|0;k=w-u|0;if((((e|0)>-1?e:0-e|0)|0)>(((k|0)>-1?k:0-k|0)|0))DW(i,f)}return}function DW(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;f=a[A+16>>2]|0;r=a[f+232>>2]|0;f=f+236|0;i=a[f>>2]|0;n=e+16|0;l=a[(a[n>>2]|0)+236>>2]|0;a[f>>2]=l;f=(a[46741]|0)+16|0;a[(a[(a[(a[f>>2]|0)+196>>2]|0)+(r<<6)+4>>2]|0)+(l<<2)>>2]=A;a[(a[n>>2]|0)+236>>2]=i;a[(a[(a[(a[f>>2]|0)+196>>2]|0)+(r<<6)+4>>2]|0)+(i<<2)>>2]=e;return}function MW(A,e,i){A=A|0;e=e|0;i=i|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0;h=A+16|0;w=a[(a[h>>2]|0)+196>>2]|0;r[w+(e<<6)+48>>0]=0;d=(e|0)>0;B=e+1|0;k=(i|0)!=0;o=e+-1|0;n=0;t=0;i=w;A:while(1){b=(a[i+(e<<6)>>2]|0)+-1|0;u=i+(e<<6)+4|0;l=i+(B<<6)|0;w=n;while(1){if((w|0)>=(b|0)){i=17;break A}s=a[u>>2]|0;c=a[s+(w<<2)>>2]|0;w=w+1|0;s=a[s+(w<<2)>>2]|0;if((a[(a[c+16>>2]|0)+236>>2]|0)>=(a[(a[s+16>>2]|0)+236>>2]|0)){i=5;break A}if(yW(A,c,s)|0)continue;if(d){i=WW(c,s)|0;n=WW(s,c)|0}else{i=0;n=0}if((a[l>>2]|0)>0){i=(zW(c,s)|0)+i|0;n=(zW(s,c)|0)+n|0}if((i|0)>(n|0))break;if((i|0)==(n|0)&(k&(i|0)>0)){i=n;break}}DW(c,s);t=i-n+t|0;n=a[(a[(a[46741]|0)+16>>2]|0)+196>>2]|0;r[n+(e<<6)+49>>0]=0;l=a[h>>2]|0;i=a[l+196>>2]|0;r[i+(e<<6)+48>>0]=1;if((f[l+236>>1]|0)<(e|0)){r[n+(o<<6)+49>>0]=0;r[i+(o<<6)+48>>0]=1}if((f[l+238>>1]|0)<=(e|0)){n=w;continue}r[n+(B<<6)+49>>0]=0;r[i+(B<<6)+48>>0]=1;n=w}if((i|0)==5)gA(86263,85781,770,86297);else if((i|0)==17)return t|0;return 0}function FW(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,l=0.0,t=0,c=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0;o=a[46739]|0;h=A+16|0;A=a[(a[h>>2]|0)+196>>2]|0;d=a[A+(e<<6)+4>>2]|0;w=(i|0)>(e|0);k=o+4|0;u=0;while(1){i=a[A+(e<<6)>>2]|0;if((u|0)>=(i|0)){A=0;t=0;break}b=(a[d+(u<<2)>>2]|0)+16|0;A=a[b>>2]|0;A:do{if(w){c=a[A+180>>2]|0;A=0;t=0;while(1){i=a[c+(t<<2)>>2]|0;if(!i)break A;r=a[i+16>>2]|0;if((f[r+154>>1]|0)>0){a[o+(A<<2)>>2]=a[(a[(a[((a[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]<<8|n[r+88>>0];A=A+1|0}t=t+1|0}}else{c=a[A+172>>2]|0;t=0;A=0;while(1){i=a[c+(t<<2)>>2]|0;if(!i)break A;r=a[i+16>>2]|0;if((f[r+154>>1]|0)>0){a[o+(A<<2)>>2]=a[(a[(a[((a[i>>2]&3|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+236>>2]<<8|n[r+48>>0];A=A+1|0}t=t+1|0}}}while(0);A:do{switch(A|0){case 0:{l=-1.0;break}case 1:{l=+(a[o>>2]|0);break}case 2:{l=+(((a[k>>2]|0)+(a[o>>2]|0)|0)/2|0|0);break}default:{K4(o,A,4,60);i=(A|0)/2|0;if(A&1|0){l=+(a[o+(i<<2)>>2]|0);break A}t=a[o+(i<<2)>>2]|0;r=(a[o+(A+-1<<2)>>2]|0)-t|0;A=a[o+(i+-1<<2)>>2]|0;i=A-(a[o>>2]|0)|0;if((i|0)==(r|0)){l=+((A+t|0)/2|0|0);break A}else{l=+(((U(i,t)|0)+(U(A,r)|0)|0)/(i+r|0)|0|0);break A}}}}while(0);s[(a[b>>2]|0)+240>>3]=l;u=u+1|0;A=a[(a[h>>2]|0)+196>>2]|0}while(1){if((t|0)>=(i|0))break;r=a[d+(t<<2)>>2]|0;o=a[r+16>>2]|0;if((a[o+184>>2]|0)==0?(a[o+176>>2]|0)==0:0){A=(JW(r)|0|A&255)&255;i=a[(a[(a[h>>2]|0)+196>>2]|0)+(e<<6)>>2]|0}t=t+1|0}return A|0}function VW(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,b=0,u=0.0,w=0,k=0,o=0,h=0,d=0,B=0;k=a[(a[A+16>>2]|0)+196>>2]|0;B=a[k+(e<<6)+4>>2]|0;k=a[k+(e<<6)>>2]|0;h=(i|0)!=0;o=(f|i|0)==0;f=0;i=k;k=B+(k<<2)|0;while(1){w=i+-1|0;if((i|0)>0)i=B;else break;A:while(1){e:while(1){if(i>>>0>=k>>>0)break A;while(1){if(i>>>0>=k>>>0)break A;b=a[i>>2]|0;u=+s[(a[b+16>>2]|0)+240>>3];if(!(u<0.0))break;i=i+4|0}c=0;while(1){n=c<<24>>24==0;while(1){i=i+4|0;if(i>>>0>=k>>>0)break A;if(n){n=11;break}l=a[i>>2]|0;if(!(a[(a[l+16>>2]|0)+212>>2]|0)){n=13;break}}if((n|0)==11){l=a[i>>2]|0;t=l}else if((n|0)==13)t=l;if(yW(A,b,t)|0)continue e;n=a[l+16>>2]|0;if(+s[n+240>>3]>=0.0)break;c=(a[n+212>>2]|0)==0?c:1}n=~~u;c=~~+s[(a[l+16>>2]|0)+240>>3];if((n|0)>(c|0)|h&(n|0)==(c|0))break}DW(b,t);f=f+1|0}i=w;k=o?k+-4|0:k}if(f|0?(d=a[(a[(a[46741]|0)+16>>2]|0)+196>>2]|0,r[d+(e<<6)+49>>0]=0,(e|0)>0):0)r[d+(e+-1<<6)+49>>0]=0;return}function JW(A){A=A|0;var e=0.0,i=0,r=0,f=0,n=0;n=a[A+16>>2]|0;if((a[n+200>>2]|0)>0){f=a[n+196>>2]|0;A=a[f>>2]|0;A=a[((a[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0;i=1;while(1){r=a[f+(i<<2)>>2]|0;if(!r)break;r=a[((a[r>>2]&3|0)==3?r:r+48|0)+40>>2]|0;A=(a[(a[r+16>>2]|0)+236>>2]|0)>(a[(a[A+16>>2]|0)+236>>2]|0)?r:A;i=i+1|0}e=+s[(a[A+16>>2]|0)+240>>3];if(!(e>=0.0))A=1;else{s[n+240>>3]=e+1.0;A=0}}else if((a[n+192>>2]|0)>0){r=a[n+188>>2]|0;i=a[r>>2]|0;A=1;i=a[((a[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0;while(1){f=a[r+(A<<2)>>2]|0;if(!f)break;f=a[((a[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0;A=A+1|0;i=(a[(a[f+16>>2]|0)+236>>2]|0)<(a[(a[i+16>>2]|0)+236>>2]|0)?f:i}e=+s[(a[i+16>>2]|0)+240>>3];if(e>0.0){s[n+240>>3]=e+-1.0;A=0}else A=1}else A=1;return A|0}function pW(A,e){A=A|0;e=e|0;return(a[(a[(a[A>>2]|0)+16>>2]|0)+236>>2]|0)-(a[(a[(a[e>>2]|0)+16>>2]|0)+236>>2]|0)|0}function NW(A,e){A=A|0;e=e|0;var i=0,r=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0;o=k;k=k+96|0;w=o+64|0;u=o+48|0;l=o+24|0;r=o;c=e+16|0;s=a[(a[c>>2]|0)+232>>2]|0;b=A+16|0;i=a[(a[b>>2]|0)+196>>2]|0;t=a[i+(s<<6)>>2]|0;do{if((a[i+(s<<6)+8>>2]|0)>=1){a[(a[i+(s<<6)+4>>2]|0)+(t<<2)>>2]=e;a[(a[c>>2]|0)+236>>2]=t;A=a[b>>2]|0;r=a[A+196>>2]|0;i=r+(s<<6)|0;n=a[i>>2]|0;a[i>>2]=n+1;if((n|0)>=(a[r+(s<<6)+8>>2]|0))gA(86377,85781,1346,86413);n=a[(a[(a[(a[46741]|0)+16>>2]|0)+196>>2]|0)+(s<<6)+8>>2]|0;if((t|0)>(n|0)){b=Vh(e)|0;u=a[(a[c>>2]|0)+236>>2]|0;w=a[(a[(a[(a[46741]|0)+16>>2]|0)+196>>2]|0)+(s<<6)+8>>2]|0;a[l>>2]=1359;a[l+4>>2]=b;a[l+8>>2]=u;a[l+12>>2]=s;a[l+16>>2]=w;ao(1,86429,l)|0;break}i=f[A+236>>1]|0;A=f[A+238>>1]|0;if((s|0)<(i|0)|(s|0)>(A<<16>>16|0)){a[u>>2]=1364;a[u+4>>2]=s;a[u+8>>2]=i;a[u+12>>2]=A<<16>>16;ao(1,86502,u)|0;break}if(((a[r+(s<<6)+4>>2]|0)+(t<<2)|0)>>>0>((a[r+(s<<6)+12>>2]|0)+(n<<2)|0)>>>0){t=Vh(e)|0;u=a[(a[b>>2]|0)+196>>2]|0;b=(a[u+(s<<6)+4>>2]|0)+(a[(a[c>>2]|0)+236>>2]<<2)|0;u=(a[u+(s<<6)+12>>2]|0)+(a[(a[(a[(a[46741]|0)+16>>2]|0)+196>>2]|0)+(s<<6)+8>>2]<<2)|0;a[w>>2]=1370;a[w+4>>2]=s;a[w+8>>2]=t;a[w+12>>2]=b;a[w+16>>2]=s;a[w+20>>2]=s;a[w+24>>2]=u;ao(1,86563,w)|0}}else{u=Vh(A)|0;w=Vh(e)|0;a[r>>2]=1339;a[r+4>>2]=u;a[r+8>>2]=w;a[r+12>>2]=s;a[r+16>>2]=t;ao(1,86322,r)|0}}while(0);k=o;return}function RW(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0;l=e+16|0;A:do{if(!i){n=0;while(1){e=a[l>>2]|0;if((n|0)>=(a[e+184>>2]|0))break A;e=a[(a[e+180>>2]|0)+(n<<2)>>2]|0;i=e+-48|0;f=(a[(a[((a[e>>2]&3|0)==2?e:i)+40>>2]|0)+16>>2]|0)+157|0;if(!(r[f>>0]|0)){r[f>>0]=1;uR(A,a[((a[e>>2]&3|0)==2?e:i)+40>>2]|0)}n=n+1|0}}else{n=0;while(1){e=a[l>>2]|0;if((n|0)>=(a[e+176>>2]|0))break A;e=a[(a[e+172>>2]|0)+(n<<2)>>2]|0;i=e+48|0;f=(a[(a[((a[e>>2]&3|0)==3?e:i)+40>>2]|0)+16>>2]|0)+157|0;if(!(r[f>>0]|0)){r[f>>0]=1;uR(A,a[((a[e>>2]&3|0)==3?e:i)+40>>2]|0)}n=n+1|0}}}while(0);return}function XW(A,e){A=A|0;e=e|0;var i=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0;E=k;k=k+16|0;v=E;n=A+16|0;i=a[(a[n>>2]|0)+196>>2]|0;B=a[i+(e<<6)+4>>2]|0;g=e+1|0;A=a[(a[(a[(a[46741]|0)+16>>2]|0)+196>>2]|0)+(g<<6)>>2]|0;if((a[46745]|0)>(A|0))h=a[46746]|0;else{A=A+1|0;a[46745]=A;i=a[46746]|0;if(!i)A=$F(A<<2)|0;else A=eV(i,A<<2)|0;a[46746]=A;i=a[(a[n>>2]|0)+196>>2]|0;h=A}d=i+(g<<6)|0;A=0;while(1){if((A|0)>=(a[d>>2]|0))break;a[h+(A<<2)>>2]=0;A=A+1|0}o=i+(e<<6)|0;w=0;l=0;A=0;c=h;while(1){s=a[o>>2]|0;if((w|0)>=(s|0))break;u=a[(a[(a[B+(w<<2)>>2]|0)+16>>2]|0)+180>>2]|0;A:do{if((l|0)>0){b=0;while(1){n=a[u+(b<<2)>>2]|0;if(!n)break A;s=n+16|0;t=a[(a[(a[((a[n>>2]&3|0)==2?n:n+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;while(1){n=t+1|0;if((t|0)>=(l|0))break;t=n;A=(U(a[c+(n<<2)>>2]|0,f[(a[s>>2]|0)+154>>1]|0)|0)+A|0}b=b+1|0}}}while(0);t=0;while(1){n=a[u+(t<<2)>>2]|0;if(!n)break;c=a[(a[(a[((a[n>>2]&3|0)==2?n:n+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;b=h+(c<<2)|0;a[b>>2]=(a[b>>2]|0)+(f[(a[n+16>>2]|0)+154>>1]|0);l=(c|0)>(l|0)?c:l;t=t+1|0;c=h}w=w+1|0}t=i+(e<<6)+4|0;l=0;while(1){if((l|0)>=(s|0))break;n=a[(a[(a[t>>2]|0)+(l<<2)>>2]|0)+16>>2]|0;if(r[n+145>>0]|0){e=n+180|0;a[v>>2]=a[e>>2];a[v+4>>2]=a[e+4>>2];A=(HW(v,1)|0)+A|0}l=l+1|0}t=a[d>>2]|0;l=i+(g<<6)+4|0;n=0;while(1){if((n|0)>=(t|0))break;i=a[(a[(a[l>>2]|0)+(n<<2)>>2]|0)+16>>2]|0;if(r[i+145>>0]|0){g=i+172|0;a[v>>2]=a[g>>2];a[v+4>>2]=a[g+4>>2];A=(HW(v,-1)|0)+A|0}n=n+1|0}k=E;return A|0}function HW(A,e){A=A|0;e=e|0;var i=0,r=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0;w=(e|0)<1;b=a[A>>2]|0;e=0;A=0;A:while(1){u=a[b+(e<<2)>>2]|0;if(!u)break;e=e+1|0;if(w){t=u+48|0;c=u+16|0;l=e;while(1){i=a[b+(l<<2)>>2]|0;if(!i)continue A;r=a[i+16>>2]|0;n=a[c>>2]|0;if((+s[r+56>>3]-+s[n+56>>3])*+((a[(a[(a[((a[i>>2]&3|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-(a[(a[(a[((a[u>>2]&3|0)==3?u:t)+40>>2]|0)+16>>2]|0)+236>>2]|0)|0)<0.0)A=(U(f[r+154>>1]|0,f[n+154>>1]|0)|0)+A|0;l=l+1|0}}else{t=u+-48|0;c=u+16|0;l=e;while(1){i=a[b+(l<<2)>>2]|0;if(!i)continue A;r=a[i+16>>2]|0;n=a[c>>2]|0;if((+s[r+16>>3]-+s[n+16>>3])*+((a[(a[(a[((a[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-(a[(a[(a[((a[u>>2]&3|0)==2?u:t)+40>>2]|0)+16>>2]|0)+236>>2]|0)|0)<0.0)A=(U(f[r+154>>1]|0,f[n+154>>1]|0)|0)+A|0;l=l+1|0}}}return A|0}function UW(A){A=A|0;var e=0.0,i=0.0;a[46744]=8;a[47136]=24;s[23215]=.995;A=Ho(A,86685)|0;if(A|0?(e=+$3(A),e>0.0):0){i=e*+(a[46744]|0);a[46744]=~~(i>1.0?i:1.0);e=e*+(a[47136]|0);a[47136]=~~(e>1.0?e:1.0)}return}function xW(A){A=A|0;var e=0,i=0;i=(f[(a[A+16>>2]|0)+238>>1]|0)+2|0;e=qF(i<<2)|0;jW(A,e,i,0)|0;L2(e);return}function TW(A){A=A|0;var e=0,i=0,r=0,n=0,l=0,t=0,c=0,s=0;l=A+16|0;t=qF((f[(a[l>>2]|0)+238>>1]<<2)+8|0)|0;n=cd(A)|0;while(1){if(!n)break;r=t+(a[(a[n+16>>2]|0)+232>>2]<<2)|0;a[r>>2]=(a[r>>2]|0)+1;r=Oo(A,n)|0;while(1){if(!r)break;c=a[r>>2]&3;e=a[(a[(a[((c|0)==3?r:r+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;c=a[(a[(a[((c|0)==2?r:r+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;s=(e|0)>(c|0);i=s?e:c;e=s?c:e;while(1){e=e+1|0;if((e|0)>=(i|0))break;s=t+(e<<2)|0;a[s>>2]=(a[s>>2]|0)+1}r=_o(A,r)|0}n=sd(A,n)|0}r=qF((f[(a[l>>2]|0)+238>>1]<<6)+128|0)|0;i=a[l>>2]|0;a[i+196>>2]=r;e=f[i+236>>1]|0;while(1){if((e|0)>(f[i+238>>1]|0))break;c=t+(e<<2)|0;i=a[c>>2]|0;a[r+(e<<6)>>2]=i;a[r+(e<<6)+8>>2]=i;c=qF((a[c>>2]<<2)+4|0)|0;i=a[l>>2]|0;s=a[i+196>>2]|0;a[s+(e<<6)+4>>2]=c;a[s+(e<<6)+12>>2]=c;e=e+1|0;r=s}L2(t);return}function jW(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var n=0,l=0,t=0,c=0,b=0,u=0;u=A+16|0;l=1;while(1){n=a[u>>2]|0;if((l|0)>(a[n+180>>2]|0))break;b=jW(a[(a[n+184>>2]|0)+(l<<2)>>2]|0,e,i,r)|0;l=l+1|0;r=b}A:do{if((vL(A)|0)!=(A|0)){Y6(e|0,0,i<<2|0)|0;n=cd(A)|0;while(1){if(!n)break;c=n+16|0;a[e+(a[(a[c>>2]|0)+232>>2]<<2)>>2]=1;l=Oo(A,n)|0;while(1){if(!l)break;b=l+-48|0;t=a[(a[c>>2]|0)+232>>2]|0;while(1){i=t+1|0;if((t|0)>=(a[(a[(a[((a[l>>2]&3|0)==2?l:b)+40>>2]|0)+16>>2]|0)+232>>2]|0))break;a[e+(i<<2)>>2]=1;t=i}l=_o(A,l)|0}n=sd(A,n)|0}n=a[u>>2]|0;l=f[n+236>>1]|0;while(1){if((l|0)>(f[n+238>>1]|0))break A;if(!(a[e+(l<<2)>>2]|0)){if(!r)r=NB(vL(A)|0,86675,1)|0;n=gd(r,0,1)|0;Td(n,137447,304,1)|0;b=n+16|0;t=a[b>>2]|0;a[t+232>>2]=l;s[t+96>>3]=.5;s[t+88>>3]=.5;s[t+80>>3]=1.0;a[t+216>>2]=1;a[t+176>>2]=0;t=qF(20)|0;c=a[b>>2]|0;a[c+172>>2]=t;a[c+184>>2]=0;c=qF(20)|0;a[(a[b>>2]|0)+180>>2]=c;kd(A,n,1)|0;n=a[u>>2]|0}l=l+1|0}}}while(0);return r|0}function PW(A){A=A|0;var e=0,i=0;cW(A);e=A+16|0;A=1;while(1){i=a[e>>2]|0;if((A|0)>(a[i+180>>2]|0))break;PW(a[(a[i+184>>2]|0)+(A<<2)>>2]|0);A=A+1|0}return}function SW(A){A=A|0;var e=0,i=0;e=a[A>>2]&3;i=OW(a[((e|0)==3?A:A+48|0)+40>>2]|0)|0;e=a[17308+(i*12|0)+((OW(a[((e|0)==2?A:A+-48|0)+40>>2]|0)|0)<<2)>>2]|0;A=(a[A+16>>2]|0)+156|0;a[A>>2]=U(a[A>>2]|0,e)|0;return}function OW(A){A=A|0;A=a[A+16>>2]|0;if((r[A+156>>0]|0)==1)A=2;else A=(r[A+160>>0]|0)<2&1;return A|0}function KW(A,e){A=A|0;e=e|0;if(a[(a[A+16>>2]|0)+192>>2]|0){ID(A);_W(A);if(r[194954]|0)JD(A);qW(A);if(eM(A)|0)_W(A);$W(A);if(JV(A,2,Az(A)|0)|0?(ez(A),JV(A,2,Az(A)|0)|0):0)gA(86693,86721,134,86732);iz(A);rz(A,e);fz(A)}return}function _W(A){A=A|0;var e=0,i=0,n=0,l=0,t=0.0,c=0.0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0.0,G=0.0;E=A+16|0;e=a[E>>2]|0;C=a[e+196>>2]|0;g=f[e+236>>1]|0;while(1){if((g|0)>(f[e+238>>1]|0))break;w=C+(g<<6)|0;k=C+(g<<6)+4|0;o=C+(g<<6)+40|0;h=C+(g<<6)+24|0;d=C+(g<<6)+32|0;B=C+(g<<6)+16|0;u=0;while(1){if((u|0)>=(a[w>>2]|0))break;b=(a[(a[k>>2]|0)+(u<<2)>>2]|0)+16|0;e=a[b>>2]|0;t=+s[e+80>>3]*.5;l=a[e+204>>2]|0;A:do{if(l){n=0;while(1){i=a[l+(n<<2)>>2]|0;if(!i)break A;I=a[i>>2]&3;if((a[((I|0)==3?i:i+48|0)+40>>2]|0)==(a[((I|0)==2?i:i+-48|0)+40>>2]|0)?(v=a[(a[i+16>>2]|0)+96>>2]|0,(v|0)!=0):0){c=+s[v+32>>3]*.5;t=t>c?t:c}n=n+1|0}}}while(0);if(+s[o>>3]>3]=t;s[o>>3]=t}if(+s[d>>3]>3]=t;s[d>>3]=t}i=a[e+212>>2]|0;if(i|0){if((i|0)==(A|0))n=0;else{n=kR(i,a[47144]|0,8,0)|0;e=a[b>>2]|0}l=a[e+232>>2]|0;i=a[i+16>>2]|0;e=i+128|0;t=t+ +(n|0);if((l|0)==(f[i+236>>1]|0)){c=+s[e>>3];s[e>>3]=c>t?c:t}e=i+120|0;if((l|0)==(f[i+238>>1]|0)){c=+s[e>>3];s[e>>3]=c>t?c:t}}u=u+1|0}g=g+1|0;e=a[E>>2]|0}u=zz(A)|0;n=a[E>>2]|0;e=f[n+238>>1]|0;s[(a[(a[a[C+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]=+s[C+(e<<6)+16>>3];i=f[n+236>>1]|0;l=n+252|0;c=0.0;while(1){b=e+-1|0;if((e|0)<=(i|0))break;Z=+s[C+(b<<6)+32>>3]+ +s[C+(e<<6)+40>>3]+ +(a[l>>2]|0);t=+s[C+(e<<6)+24>>3]+8.0+ +s[C+(b<<6)+16>>3];t=Z>t?Z:t;if((a[C+(b<<6)>>2]|0)>0)s[(a[(a[a[C+(b<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]=+s[(a[(a[a[C+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]+t;c=c>t?c:t;e=b}A:do{if((u|0)!=0?(a[n+116>>2]&1|0)!=0:0){Yz(A,0);n=a[E>>2]|0;if(r[n+276>>0]|0){e=f[n+238>>1]|0;i=f[n+236>>1]|0;t=+s[(a[(a[a[C+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];c=0.0;while(1){l=e+-1|0;if((e|0)<=(i|0))break A;G=+s[(a[(a[a[C+(l<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];Z=G-t;t=G;c=c>Z?c:Z;e=l}}}}while(0);A:do{if(r[n+276>>0]|0){l=f[n+236>>1]|0;i=f[n+238>>1]|0;while(1){e=i+-1|0;if((i|0)<=(l|0))break A;if((a[C+(e<<6)>>2]|0)<=0){i=e;continue}s[(a[(a[a[C+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]=+s[(a[(a[a[C+(i<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]+c;i=e}}}while(0);e=n+192|0;while(1){e=a[e>>2]|0;if(!e)break;e=a[e+16>>2]|0;s[e+24>>3]=+s[(a[(a[a[C+(a[e+232>>2]<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];e=e+164|0}return}function qW(A){A=A|0;var e=0,i=0,r=0;Qz(A);e=(a[A+16>>2]|0)+192|0;while(1){e=a[e>>2]|0;if(!e)break;r=e+16|0;e=a[r>>2]|0;i=a[e+224>>2]|0;if(i){Lz(A,i);e=a[r>>2]|0}i=a[e+228>>2]|0;if(!i)i=e;else{Lz(A,i);i=a[r>>2]|0}r=a[i+204>>2]|0;if(r|0){e=0;while(1)if(!(a[r+(e<<2)>>2]|0))break;else e=e+1|0}e=i+164|0}return}function $W(A){A=A|0;wz(A);kz(A);oz(A);hz(A);dz(A);return}function Az(A){A=A|0;var e=0,i=0.0;e=Ho(A,86921)|0;if(!e)A=2147483647;else{i=+$3(e);A=~~(i*+(gh(A)|0))}return A|0}function ez(A){A=A|0;var e=0,i=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0;d=A+16|0;e=a[d>>2]|0;h=f[e+236>>1]|0;while(1){o=f[e+238>>1]|0;if((h|0)>(o|0)){B=19;break}w=a[e+196>>2]|0;k=w+(h<<6)|0;u=a[k>>2]|0;w=w+(h<<6)+4|0;b=0;i=0;A:while(1){if((b|0)>=(u|0)){B=14;break}i=a[(a[w>>2]|0)+(b<<2)>>2]|0;l=a[i+16>>2]|0;t=a[l+256>>2]|0;e:do{if(t|0){n=0;while(1){c=a[t+(n<<2)>>2]|0;if(!c)break e;s=a[c>>2]&3;if((a[(a[(a[((s|0)==2?c:c+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(h|0))break A;if((a[(a[(a[((s|0)==3?c:c+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(h|0))break A;else n=n+1|0}}}while(0);l=a[l+248>>2]|0;e:do{if(l|0){n=0;while(1){t=a[l+(n<<2)>>2]|0;if(!t)break e;c=a[t>>2]&3;if((a[(a[(a[((c|0)==3?t:t+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(h|0))break A;if((a[(a[(a[((c|0)==2?t:t+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(h|0))break A;else n=n+1|0}}}while(0);b=b+1|0}if((B|0)==14){B=0;if(i){i=a[a[w>>2]>>2]|0;e=a[a[k+(((h|0)<(o|0)?1:-1)<<6)+4>>2]>>2]|0;if(!e){B=16;break}k=Yy(A)|0;o=k+16|0;r[(a[o>>2]|0)+156>>0]=2;bz(k,i,0.0,0)|0;bz(k,e,0.0,0)|0;a[(a[o>>2]|0)+232>>2]=a[(a[((a[(a[i+16>>2]|0)+232>>2]|0)<(a[(a[e+16>>2]|0)+232>>2]|0)?i:e)+16>>2]|0)+232>>2];e=a[d>>2]|0}}h=h+1|0}if((B|0)==16)gA(86829,86721,111,86832);else if((B|0)==19)return}function iz(A){A=A|0;var e=0,i=0,r=0,n=0,l=0,t=0,c=0;A=a[A+16>>2]|0;l=a[A+196>>2]|0;i=f[A+238>>1]|0;A=f[A+236>>1]|0;while(1){if((A|0)>(i|0))break;r=a[l+(A<<6)>>2]|0;n=l+(A<<6)+4|0;e=0;while(1){if((e|0)>=(r|0))break;c=a[(a[(a[n>>2]|0)+(e<<2)>>2]|0)+16>>2]|0;t=c+232|0;s[c+16>>3]=+(a[t>>2]|0);a[t>>2]=A;e=e+1|0}A=A+1|0}return}function rz(A,e){A=A|0;e=e|0;var i=0,r=0.0,n=0,l=0.0,t=0,c=0,b=0.0,u=0,w=0,k=0,o=0;az(A,A);n=A+16|0;c=a[n>>2]|0;A:do{if((f[c+238>>1]|0)>0?(t=a[c+8>>2]|0,i=a[t+84>>2]|0,i|0):0){k=~~(+s[c+32>>3]-+s[c+16>>3]);u=~~(+s[c+40>>3]-+s[c+24>>3]);o=(a[c+116>>2]&1|0)==0;w=o?u:k;u=o?k:u;if((i|0)==4){i=nz(A)|0;c=a[n>>2]|0;t=a[c+8>>2]|0}else i=(i|0)==2&1;e:do{if(!(i<<24>>24)){switch(a[t+84>>2]|0){case 5:{r=+s[t+64>>3];if(r<=0.0)break A;l=r/+s[c+32>>3];b=+s[t+72>>3]/+s[c+40>>3];r=l1.0&b>1.0){b=r;break e}else break A}case 1:break;default:break A}l=+s[t+16>>3];r=+(w|0)/+(u|0);if(r>3];if(r<=0.0)break A;l=r/+(u|0);r=+s[t+72>>3]/+(w|0);if(l<1.0|r<1.0)if(l>2]&1|0)==0;l=i?r:b;r=i?b:r;i=c+192|0;while(1){i=a[i>>2]|0;if(!i)break;i=a[i+16>>2]|0;o=i+16|0;b=+s[o>>3]*r;s[o>>3]=+(~~(b+(b>=0.0?.5:-.5))|0);o=i+24|0;b=+s[o>>3]*l;s[o>>3]=+(~~(b+(b>=0.0?.5:-.5))|0);i=i+164|0}lz(A,r,l)}}while(0);if(e|0)tz(A,e);return}function fz(A){A=A|0;var e=0,i=0,f=0,n=0,l=0;l=A+16|0;A=(a[l>>2]|0)+192|0;while(1){A=a[A>>2]|0;if(!A)break;n=A+16|0;e=0;while(1){A=a[n>>2]|0;f=a[A+180>>2]|0;i=a[f+(e<<2)>>2]|0;if(!i)break;L2(a[i+16>>2]|0);L2(i);e=e+1|0}if(f){L2(f);A=a[n>>2]|0}e=a[A+172>>2]|0;if(e){L2(e);A=a[n>>2]|0}f=A+256|0;i=a[f+4>>2]|0;A=A+180|0;a[A>>2]=a[f>>2];a[A+4>>2]=i;A=a[n>>2]|0;i=A+248|0;f=a[i+4>>2]|0;A=A+172|0;a[A>>2]=a[i>>2];a[A+4>>2]=f;A=(a[n>>2]|0)+164|0}A=0;e=a[(a[l>>2]|0)+192>>2]|0;A:while(1){n=(A|0)==0;f=A+16|0;A=e;while(1){if(!A)break A;i=a[A+16>>2]|0;e=a[i+164>>2]|0;if((r[i+156>>0]|0)!=2)continue A;if(n)a[(a[l>>2]|0)+192>>2]=e;else a[(a[f>>2]|0)+164>>2]=e;L2(i);L2(A);A=e}}a[(a[(a[(a[l>>2]|0)+192>>2]|0)+16>>2]|0)+168>>2]=0;return}function az(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;r=A+16|0;i=1;while(1){f=a[r>>2]|0;if((i|0)>(a[f+180>>2]|0))break;az(a[(a[f+184>>2]|0)+(i<<2)>>2]|0,e);i=i+1|0}sz(A,e);return}function nz(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0.0,c=0.0,b=0,u=0.0,w=0.0,o=0.0,h=0.0,d=0,B=0,g=0;B=k;k=k+80|0;r=B+64|0;i=B+48|0;f=B+16|0;b=B;d=B+32|0;A=A+16|0;e=a[(a[A>>2]|0)+8>>2]|0;g=e+48|0;a[f>>2]=a[g>>2];a[f+4>>2]=a[g+4>>2];a[f+8>>2]=a[g+8>>2];a[f+12>>2]=a[g+12>>2];if((!(+s[f>>3]<.001)?(n=f+8|0,!(+s[n>>3]<.001)):0)?(l=e+32|0,a[b>>2]=a[l>>2],a[b+4>>2]=a[l+4>>2],a[b+8>>2]=a[l+8>>2],a[b+12>>2]=a[l+12>>2],a[i>>2]=a[f>>2],a[i+4>>2]=a[f+4>>2],a[i+8>>2]=a[f+8>>2],a[i+12>>2]=a[f+12>>2],a[r>>2]=a[l>>2],a[r+4>>2]=a[l+4>>2],a[r+8>>2]=a[l+8>>2],a[r+12>>2]=a[l+12>>2],cz(d,i,r),a[f>>2]=a[d>>2],a[f+4>>2]=a[d+4>>2],a[f+8>>2]=a[d+8>>2],a[f+12>>2]=a[d+12>>2],a[i>>2]=a[d>>2],a[i+4>>2]=a[d+4>>2],a[i+8>>2]=a[d+8>>2],a[i+12>>2]=a[d+12>>2],a[r>>2]=a[b>>2],a[r+4>>2]=a[b+4>>2],a[r+8>>2]=a[b+8>>2],a[r+12>>2]=a[b+12>>2],cz(f,i,r),l=a[A>>2]|0,t=+s[l+32>>3],c=+s[l+40>>3],u=+s[f>>3],w=u/t,o=+s[n>>3],h=o/c,!(w>=1.0&h>=1.0)):0){w=w.5?w:.5;h=+H(+(w*c/o))*o/c;o=+H(+(w*t/u))*u/t*t;A=a[l+8>>2]|0;s[A+64>>3]=o;s[A+72>>3]=h*c;A=1}else A=0;k=B;return A|0}function lz(A,e,i){A=A|0;e=+e;i=+i;var r=0,f=0;r=A+16|0;A=1;while(1){f=a[r>>2]|0;if((A|0)>(a[f+180>>2]|0))break;lz(a[(a[f+184>>2]|0)+(A<<2)>>2]|0,e,i);A=A+1|0}r=f+16|0;s[r>>3]=+s[r>>3]*e;r=f+24|0;s[r>>3]=+s[r>>3]*i;r=f+32|0;s[r>>3]=+s[r>>3]*e;f=f+40|0;s[f>>3]=+s[f>>3]*i;return}function tz(A,e){A=A|0;e=e|0;var i=0.0,r=0.0,f=0,n=0,l=0.0,t=0,c=0,b=0,u=0;b=k;k=k+32|0;t=b+24|0;n=b+16|0;f=b;u=a[A+16>>2]|0;r=+s[u+32>>3]-+s[u+16>>3];i=+s[u+40>>3]-+s[u+24>>3];l=r/i;if(0){}i=+s[e>>3];do{if(!(l>i*1.1)){A=e+24|0;if(!(l<=i*.8)){a[A>>2]=0;c=9;break}a[A>>2]=-1;if(0){}}else{a[e+24>>2]=~~(i*+((a[e+20>>2]|0)-(a[e+16>>2]|0)|0)/l);c=9}}while(0);if((c|0)==9?0:0){u=a[15712]|0;a[t>>2]=a[e+24>>2];f3(u,86815,t)|0}k=b;return}function cz(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0;r=+s[e+8>>3]-+s[i+8>>3];s[A>>3]=+s[e>>3]-+s[i>>3];s[A+8>>3]=r;return}function sz(A,e){A=A|0;e=e|0;var i=0,n=0.0,l=0.0,t=0,c=0,b=0,u=0.0,w=0,k=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0.0;B=(vL(A)|0)==(A|0);E=A+16|0;C=a[E>>2]|0;A:do{if(B){i=f[C+236>>1]|0;A=f[C+238>>1]|0;h=A<<16>>16;d=C+196|0;B=C+196|0;o=i<<16>>16;l=-2147483647.0;n=2147483647.0;while(1){if((o|0)>(h|0))break;t=a[d>>2]|0;k=a[t+(o<<6)>>2]|0;if((k|0)!=0?(g=a[t+(o<<6)+4>>2]|0,v=a[g>>2]|0,(v|0)!=0):0){b=1;t=v;while(1){t=a[t+16>>2]|0;c=r[t+156>>0]|0;if(!((b|0)<(k|0)&c<<24>>24!=0))break;t=a[g+(b<<2)>>2]|0;b=b+1|0}if(!(c<<24>>24)){u=+s[t+16>>3]-+s[t+88>>3];w=n>2]|0)+(o<<6)+4>>2]|0;c=k+-2|0;t=k+-1|0;while(1){t=a[(a[b+(t<<2)>>2]|0)+16>>2]|0;if(!(r[t+156>>0]|0))break;else{t=c;c=c+-1|0}}I=+s[t+96>>3]+ +s[t+16>>3];l=l>I?l:I;n=w?n:u}}o=o+1|0}c=a[C+180>>2]|0;b=C+184|0;t=1;while(1){if((t|0)>(c|0))break A;v=a[(a[(a[b>>2]|0)+(t<<2)>>2]|0)+16>>2]|0;I=+s[v+16>>3]+-8.0;u=+s[v+32>>3]+8.0;t=t+1|0;l=l>u?l:u;n=n>2]|0)+16>>2]|0)+232>>2]|0);n=+(a[(a[(a[C+256>>2]|0)+16>>2]|0)+232>>2]|0);i=f[C+236>>1]|0;A=f[C+238>>1]|0}}while(0);e=a[(a[e+16>>2]|0)+196>>2]|0;u=+s[(a[(a[a[e+(A<<16>>16<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+s[C+120>>3];I=+s[C+128>>3]+ +s[(a[(a[a[e+(i<<16>>16<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];s[C+16>>3]=n;s[C+24>>3]=u;e=a[E>>2]|0;s[e+32>>3]=l;s[e+40>>3]=I;return}function bz(A,e,i,r){A=A|0;e=e|0;i=+i;r=r|0;var n=0,l=0,t=0,c=0;t=qF(96)|0;c=t+48|0;a[c>>2]=a[c>>2]|3;a[t>>2]=a[t>>2]&-4|2;n=qF(176)|0;l=t+16|0;a[l>>2]=n;a[((a[t>>2]&3|0)==3?t:c)+40>>2]=A;a[((a[t>>2]&3|0)==2?t:t+-48|0)+40>>2]=e;if(i>65535.0){uz(i);i=65535.0;n=a[l>>2]|0}f[n+170>>1]=~~(i+(i>=0.0?.5:-.5));a[n+156>>2]=r;vy(t)|0;return t|0}function uz(A){A=+A;var e=0,i=0;e=k;k=k+16|0;i=e;s[i>>3]=A;a[i+8>>2]=65535;ao(1,86845,i)|0;k=e;return}function wz(A){A=A|0;var e=0,i=0,r=0,f=0;A=(a[A+16>>2]|0)+192|0;while(1){A=a[A>>2]|0;if(!A)break;f=A+16|0;r=a[f>>2]|0;A=r+172|0;i=a[A+4>>2]|0;r=r+248|0;a[r>>2]=a[A>>2];a[r+4>>2]=i;r=a[f>>2]|0;i=r+180|0;A=a[i+4>>2]|0;r=r+256|0;a[r>>2]=a[i>>2];a[r+4>>2]=A;r=a[f>>2]|0;A=a[r+180>>2]|0;i=0;while(1)if(!(a[A+(i<<2)>>2]|0))break;else i=i+1|0;e=a[r+172>>2]|0;A=0;while(1)if(!(a[e+(A<<2)>>2]|0))break;else A=A+1|0;a[r+176>>2]=0;A=qF((A+i<<2)+16|0)|0;r=a[f>>2]|0;a[r+172>>2]=A;a[r+184>>2]=0;r=qF(16)|0;A=a[f>>2]|0;a[A+180>>2]=r;A=A+164|0}return}function kz(A){A=A|0;var e=0,i=0,n=0.0,t=0,c=0,b=0,u=0,w=0,o=0.0,h=0,d=0,B=0,g=0.0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0.0,Q=0.0;G=k;k=k+16|0;C=G;I=A+16|0;v=a[I>>2]|0;Z=a[v+196>>2]|0;A=(r[(a[(a[A+60>>2]|0)+16>>2]|0)+113>>0]&1)!=0;E=a[v+248>>2]|0;a[C>>2]=E;a[C+4>>2]=A?5:E;E=f[v+236>>1]|0;A=v;while(1){if((E|0)>(f[A+238>>1]|0))break;d=Z+(E<<6)+4|0;a[(a[(a[a[d>>2]>>2]|0)+16>>2]|0)+232>>2]=0;B=Z+(E<<6)|0;g=+(a[C+((E&1)<<2)>>2]|0);o=0.0;c=0;A:while(1){if((c|0)>=(a[B>>2]|0))break;e=a[d>>2]|0;b=a[e+(c<<2)>>2]|0;v=b+16|0;A=a[v>>2]|0;n=+s[A+96>>3];s[A+240>>3]=n;if((a[A+208>>2]|0)>0){t=0;e=0;while(1){i=a[(a[A+204>>2]|0)+(t<<2)>>2]|0;if(!i)break;h=a[i>>2]&3;if((a[((h|0)==3?i:i+48|0)+40>>2]|0)==(a[((h|0)==2?i:i+-48|0)+40>>2]|0)){e=(QN(i)|0)+e|0;A=a[v>>2]|0}t=t+1|0}h=A+96|0;n=+s[h>>3]+ +(e|0);s[h>>3]=n;e=a[d>>2]|0}h=c+1|0;e=a[e+(h<<2)>>2]|0;if(e){w=e+16|0;n=n+g+ +s[(a[w>>2]|0)+88>>3];bz(b,e,n,0)|0;A=~~(n+o);a[(a[w>>2]|0)+232>>2]=A;o=+(A|0);A=a[v>>2]|0}e=a[A+112>>2]|0;if(e){t=a[A+256>>2]|0;c=a[t>>2]|0;t=a[t+4>>2]|0;A=(a[(a[(a[((a[c>>2]&3|0)==2?c:c+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)>(a[(a[(a[((a[t>>2]&3|0)==2?t:t+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0);i=A?t:c;t=A?c:t;c=e+16|0;A=a[c>>2]|0;n=+((U(a[(a[I>>2]|0)+248>>2]|0,l[A+170>>1]|0)|0)/2|0|0);w=a[i>>2]&3;e=a[((w|0)==2?i:i+-48|0)+40>>2]|0;i=a[((w|0)==3?i:i+48|0)+40>>2]|0;if(!(Gz(i,e)|0))bz(e,i,+(~~(+s[(a[e+16>>2]|0)+96>>3]+n+ +s[(a[i+16>>2]|0)+88>>3])|0),a[A+156>>2]|0)|0;A=a[t>>2]&3;e=a[((A|0)==3?t:t+48|0)+40>>2]|0;A=a[((A|0)==2?t:t+-48|0)+40>>2]|0;if(!(Gz(A,e)|0)){bz(e,A,+(~~(+s[(a[e+16>>2]|0)+96>>3]+n+ +s[(a[A+16>>2]|0)+88>>3])|0),a[(a[c>>2]|0)+156>>2]|0)|0;w=0}else w=0}else w=0;while(1){A=a[v>>2]|0;if((w|0)>=(a[A+192>>2]|0)){c=h;continue A}b=a[(a[A+188>>2]|0)+(w<<2)>>2]|0;c=a[b>>2]&3;i=a[((c|0)==3?b:b+48|0)+40>>2]|0;c=a[((c|0)==2?b:b+-48|0)+40>>2]|0;t=(a[(a[i+16>>2]|0)+236>>2]|0)<(a[(a[c+16>>2]|0)+236>>2]|0);e=t?i:c;i=t?c:i;n=+s[(a[i+16>>2]|0)+88>>3]+ +s[(a[e+16>>2]|0)+96>>3];c=b+16|0;t=~~(n+ +(U(a[(a[I>>2]|0)+248>>2]|0,l[(a[c>>2]|0)+170>>1]|0)|0));u=dy(e,i)|0;if(!u){A=a[c>>2]|0;if(!(a[A+96>>2]|0))bz(e,i,+(t|0),a[A+156>>2]|0)|0}else{m=+(t|0);A=a[c>>2]|0;Q=+s[A+136>>3];n=n+ +(a[(a[I>>2]|0)+248>>2]|0)+ +(~~(Q+(Q>=0.0?.5:-.5))|0);e=~~(n65535){uz(+(e|0));e=65535;A=a[c>>2]|0}c=a[u+16>>2]|0;t=c+170|0;i=l[t>>1]|0;f[t>>1]=(e|0)<(i|0)?i:e;c=c+156|0;a[c>>2]=a[(a[((a[c>>2]|0)>(a[A+156>>2]|0)?u:b)+16>>2]|0)+156>>2]}w=w+1|0}}E=E+1|0;A=a[I>>2]|0}k=G;return}function oz(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0;e=(a[A+16>>2]|0)+192|0;while(1){e=a[e>>2]|0;if(!e)break;n=e+16|0;e=a[n>>2]|0;i=a[e+256>>2]|0;A:do{if(i){f=0;while(1){i=a[i+(f<<2)>>2]|0;if(!i)break A;w=Yy(A)|0;e=w+16|0;r[(a[e>>2]|0)+156>>0]=2;b=i+16|0;c=a[b>>2]|0;l=~~(+s[c+56>>3]-+s[c+16>>3]);u=(l|0)>0;t=u?0:0-l|0;l=u?l:0;u=i+48|0;bz(w,a[((a[i>>2]&3|0)==3?i:u)+40>>2]|0,+(l+1|0),a[c+156>>2]|0)|0;c=i+-48|0;bz(w,a[((a[i>>2]&3|0)==2?i:c)+40>>2]|0,+(t+1|0),a[(a[b>>2]|0)+156>>2]|0)|0;b=a[i>>2]&3;l=(a[(a[(a[((b|0)==3?i:u)+40>>2]|0)+16>>2]|0)+232>>2]|0)-l|0;i=(a[(a[(a[((b|0)==2?i:c)+40>>2]|0)+16>>2]|0)+232>>2]|0)-t|0;a[(a[e>>2]|0)+232>>2]=((l|0)<(i|0)?l:i)+-1;e=a[n>>2]|0;f=f+1|0;i=a[e+256>>2]|0}}}while(0);e=e+164|0}return}function hz(A){A=A|0;if((a[(a[A+16>>2]|0)+180>>2]|0)>0){vz(A);Ez(A);Cz(A);Iz(A)}return}function dz(A){A=A|0;var e=0.0,i=0.0,r=0,f=0;r=A+16|0;f=a[(a[r>>2]|0)+8>>2]|0;if((a[f+84>>2]|0)==3?(e=+s[f+64>>3],i=+s[f+72>>3],!(i*e<=1.0)):0){Bz(A);f=a[r>>2]|0;i=(a[f+116>>2]&1|0)==0?e:i;bz(a[f+256>>2]|0,a[f+260>>2]|0,i<65535.0?i:65535.0,1e3)|0}return}function Bz(A){A=A|0;var e=0,i=0,r=0.0,n=0,l=0,t=0,c=0,b=0,u=0;u=k;k=k+16|0;b=u;i=kR(A,a[47144]|0,8,0)|0;gz(A);l=A+16|0;n=a[l>>2]|0;t=a[n+256>>2]|0;c=a[n+260>>2]|0;r=+(i|0);i=f[n+236>>1]|0;while(1){if((i|0)>(f[n+238>>1]|0))break;e=a[n+196>>2]|0;do{if(a[e+(i<<6)>>2]|0){e=a[a[e+(i<<6)+4>>2]>>2]|0;if(!e){a[b>>2]=Vh(A)|0;a[b+4>>2]=i;ao(1,86929,b)|0;break}else{bz(t,e,+s[(a[e+16>>2]|0)+88>>3]+r+ +s[n+96>>3],0)|0;n=a[l>>2]|0;e=a[n+196>>2]|0;e=a[(a[e+(i<<6)+4>>2]|0)+((a[e+(i<<6)>>2]|0)+-1<<2)>>2]|0;bz(e,c,+s[(a[e+16>>2]|0)+96>>3]+r+ +s[n+64>>3],0)|0;break}}}while(0);i=i+1|0;n=a[l>>2]|0}k=u;return}function gz(A){A=A|0;var e=0,i=0,f=0;e=A+16|0;if(!(a[(a[e>>2]|0)+256>>2]|0)){f=Yy(vL(A)|0)|0;r[(a[f+16>>2]|0)+156>>0]=2;i=Yy(vL(A)|0)|0;r[(a[i+16>>2]|0)+156>>0]=2;if((a[(a[e>>2]|0)+12>>2]|0?(vL(A)|0)!=(A|0):0)?(a[(a[(Zd(A)|0)+16>>2]|0)+116>>2]&1|0)==0:0){A=a[e>>2]|0;bz(f,i,+(~~+s[A+48+((+s[A+48>>3]>+s[A+80>>3]?0:2)<<4)>>3]|0),0)|0}e=a[e>>2]|0;a[e+256>>2]=f;a[e+260>>2]=i}return}function vz(A){A=A|0;var e=0,i=0;do{if((vL(A)|0)!=(A|0)){Bz(A);A=A+16|0;e=a[A>>2]|0;e=dy(a[e+256>>2]|0,a[e+260>>2]|0)|0;if(!e){i=a[A>>2]|0;bz(a[i+256>>2]|0,a[i+260>>2]|0,1.0,128)|0;break}else{i=(a[e+16>>2]|0)+156|0;a[i>>2]=(a[i>>2]|0)+128;break}}else A=A+16|0}while(0);e=1;while(1){i=a[A>>2]|0;if((e|0)>(a[i+180>>2]|0))break;vz(a[(a[i+184>>2]|0)+(e<<2)>>2]|0);e=e+1|0}return}function Ez(A){A=A|0;var e=0,i=0,n=0,l=0,t=0,c=0,b=0,u=0.0,w=0,k=0;c=kR(A,a[47144]|0,8,0)|0;k=A+16|0;e=a[k>>2]|0;u=+(c|0);c=f[e+236>>1]|0;while(1){if((c|0)>(f[e+238>>1]|0)){i=1;break}e=a[e+196>>2]|0;A:do{if(a[e+(c<<6)>>2]|0?(b=a[a[e+(c<<6)+4>>2]>>2]|0,b|0):0){l=b+16|0;i=a[(a[l>>2]|0)+236>>2]|0;while(1){if((i|0)<=0)break;i=i+-1|0;t=a[(a[(a[(a[(vL(A)|0)+16>>2]|0)+196>>2]|0)+(c<<6)+4>>2]|0)+(i<<2)>>2]|0;n=t+16|0;e=a[n>>2]|0;if(!(r[e+156>>0]|0)){w=10;break}if(Zz(A,t)|0){w=9;break}}if((w|0)==9){e=a[n>>2]|0;w=10}if((w|0)==10){w=0;bz(t,a[(a[k>>2]|0)+256>>2]|0,+s[e+96>>3]+u,0)|0}i=(a[(a[(a[k>>2]|0)+196>>2]|0)+(c<<6)>>2]|0)+(a[(a[l>>2]|0)+236>>2]|0)|0;while(1){if((i|0)>=(a[(a[(a[(vL(A)|0)+16>>2]|0)+196>>2]|0)+(c<<6)>>2]|0))break A;l=a[(a[(a[(a[(vL(A)|0)+16>>2]|0)+196>>2]|0)+(c<<6)+4>>2]|0)+(i<<2)>>2]|0;n=l+16|0;e=a[n>>2]|0;if(!(r[e+156>>0]|0))break;if(!(Zz(A,l)|0))i=i+1|0;else{w=15;break}}if((w|0)==15){w=0;e=a[n>>2]|0}bz(a[(a[k>>2]|0)+260>>2]|0,l,+s[e+88>>3]+u,0)|0}}while(0);c=c+1|0;e=a[k>>2]|0}while(1){if((i|0)>(a[e+180>>2]|0))break;Ez(a[(a[e+184>>2]|0)+(i<<2)>>2]|0);i=i+1|0;e=a[k>>2]|0}return}function Cz(A){A=A|0;var e=0,i=0.0,r=0,f=0,n=0;r=kR(A,a[47144]|0,8,0)|0;gz(A);e=A+16|0;i=+(r|0);A=1;while(1){r=a[e>>2]|0;if((A|0)>(a[r+180>>2]|0))break;r=a[(a[r+184>>2]|0)+(A<<2)>>2]|0;gz(r);f=a[e>>2]|0;n=r+16|0;bz(a[f+256>>2]|0,a[(a[n>>2]|0)+256>>2]|0,+s[f+96>>3]+i,0)|0;f=a[e>>2]|0;bz(a[(a[n>>2]|0)+260>>2]|0,a[f+260>>2]|0,+s[f+64>>3]+i,0)|0;Cz(r);A=A+1|0}return}function Iz(A){A=A|0;var e=0,i=0,r=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0.0,w=0,k=0;e=kR(A,a[47144]|0,8,0)|0;w=A+16|0;A=1;while(1){r=a[w>>2]|0;i=a[r+180>>2]|0;if((A|0)>(i|0))break;gz(a[(a[r+184>>2]|0)+(A<<2)>>2]|0);A=A+1|0}u=+(e|0);b=1;A=i;e=r;while(1){if((b|0)>(A|0))break;s=b+1|0;c=s;while(1){i=a[e+184>>2]|0;r=a[i+(b<<2)>>2]|0;if((c|0)>(A|0))break;i=a[i+(c<<2)>>2]|0;n=(f[(a[r+16>>2]|0)+236>>1]|0)>(f[(a[i+16>>2]|0)+236>>1]|0);t=n?i:r;i=n?r:i;r=a[t+16>>2]|0;n=a[i+16>>2]|0;k=f[n+236>>1]|0;l=k<<16>>16;if((f[r+238>>1]|0)>=k<<16>>16){A=(a[(a[(a[a[(a[r+196>>2]|0)+(l<<6)+4>>2]>>2]|0)+16>>2]|0)+236>>2]|0)<(a[(a[(a[a[(a[n+196>>2]|0)+(l<<6)+4>>2]>>2]|0)+16>>2]|0)+236>>2]|0);bz(a[(a[(A?t:i)+16>>2]|0)+260>>2]|0,a[(a[(A?i:t)+16>>2]|0)+256>>2]|0,u,0)|0;A=a[w>>2]|0;e=A;A=a[A+180>>2]|0}c=c+1|0}Iz(r);e=a[w>>2]|0;b=s;A=a[e+180>>2]|0}return}function Zz(A,e){A=A|0;e=e|0;var i=0;e=a[e+16>>2]|0;if((r[e+156>>0]|0)==1){e=a[a[e+256>>2]>>2]|0;while(1){i=a[(a[e+16>>2]|0)+116>>2]|0;if(!i)break;else e=i}if(!(Dd(A,a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)|0))e=(Dd(A,a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)|0)==0&1;else e=0}else e=0;return e|0}function Gz(A,e){A=A|0;e=e|0;return mz(A,e)|0}function mz(A,e){A=A|0;e=e|0;var i=0,r=0;A:do{if((A|0)==(e|0))A=1;else{i=a[(a[A+16>>2]|0)+180>>2]|0;A=0;while(1){r=a[i+(A<<2)>>2]|0;if(!r){A=0;break A}if(!(mz(a[((a[r>>2]&3|0)==2?r:r+-48|0)+40>>2]|0,e)|0))A=A+1|0;else{A=1;break}}}}while(0);return A|0}function Qz(A){A=A|0;var e=0,i=0,n=0,l=0,t=0,c=0,s=0;s=A+16|0;A=a[s>>2]|0;c=f[A+236>>1]|0;while(1){if((c|0)>(f[A+238>>1]|0))break;l=a[A+196>>2]|0;n=a[l+(c<<6)>>2]|0;l=l+(c<<6)+4|0;t=0;i=0;while(1){if((i|0)>=(n|0))break;e=a[(a[(a[l>>2]|0)+(i<<2)>>2]|0)+16>>2]|0;a[e+236>>2]=t;if((r[e+159>>0]|0)==6)e=a[e+216>>2]|0;else e=1;t=e+t|0;i=i+1|0}if((t|0)>(n|0)){A=a[l>>2]|0;if(!A)A=$F((t<<2)+4|0)|0;else A=eV(A,(t<<2)+4|0)|0;i=a[(a[s>>2]|0)+196>>2]|0;a[i+(c<<6)+4>>2]=A;e=a[i+(c<<6)>>2]|0;while(1){A=e+-1|0;if((e|0)<=0)break;l=a[i+(c<<6)+4>>2]|0;e=a[l+(A<<2)>>2]|0;a[l+(a[(a[e+16>>2]|0)+236>>2]<<2)>>2]=e;e=A;i=a[(a[s>>2]|0)+196>>2]|0}a[i+(c<<6)>>2]=t;a[(a[i+(c<<6)+4>>2]|0)+(t<<2)>>2]=0;A=a[s>>2]|0}c=c+1|0}return}function Lz(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0;w=k;k=k+48|0;u=w+32|0;b=w+8|0;i=w+24|0;c=w+16|0;t=w;r=e+16|0;f=a[r>>2]|0;A:do{if((a[f+216>>2]|0)>=2){a[b>>2]=~~(+s[f+16>>3]-+s[f+88>>3]);a[b+4>>2]=~~+s[f+24>>3];a[u>>2]=a[b>>2];a[u+4>>2]=a[b+4>>2];yz(i,e,u);n=i;l=a[n+4>>2]|0;i=b;a[i>>2]=a[n>>2];a[i+4>>2]=l;i=a[r>>2]|0;if((a[i+184>>2]|0)>0){t=a[a[i+180>>2]>>2]|0;i=(a[i+236>>2]|0)+1|0;t=qo(A,a[((a[t>>2]&3|0)==2?t:t+-48|0)+40>>2]|0)|0;while(1){if(!t)break A;l=(a[t>>2]&3|0)==2?t:t+-48|0;r=l+48|0;f=a[((a[l>>2]&3|0)==3?l:r)+40>>2]|0;if((f|0)!=(e|0)?(CR(f)|0)==(e|0):0){f=a[((a[l>>2]&3|0)==3?l:r)+40>>2]|0;a[u>>2]=a[b>>2];a[u+4>>2]=a[b+4>>2];Wz(c,A,f,u,i);f=c;r=a[f+4>>2]|0;n=b;a[n>>2]=a[f>>2];a[n+4>>2]=r;Jy(l);n=l+-48|0;r=a[(a[((a[l>>2]&3|0)==2?l:n)+40>>2]|0)+16>>2]|0;f=a[r+172>>2]|0;if(!f)r=$F((a[r+176>>2]<<2)+8|0)|0;else r=eV(f,(a[r+176>>2]<<2)+8|0)|0;a[(a[(a[((a[l>>2]&3|0)==2?l:n)+40>>2]|0)+16>>2]|0)+172>>2]=r;o=a[(a[((a[l>>2]&3|0)==2?l:n)+40>>2]|0)+16>>2]|0;r=a[o+172>>2]|0;o=o+176|0;f=a[o>>2]|0;a[o>>2]=f+1;a[r+(f<<2)>>2]=l;l=a[(a[((a[l>>2]&3|0)==2?l:n)+40>>2]|0)+16>>2]|0;a[(a[l+172>>2]|0)+(a[l+176>>2]<<2)>>2]=0;i=i+1|0}t=$o(A,t)|0}}else{l=a[a[i+172>>2]>>2]|0;i=(a[i+236>>2]|0)+1|0;l=Oo(A,a[((a[l>>2]&3|0)==3?l:l+48|0)+40>>2]|0)|0;while(1){if(!l)break A;r=l+-48|0;f=a[((a[l>>2]&3|0)==2?l:r)+40>>2]|0;if((f|0)!=(e|0)?(CR(f)|0)==(e|0):0){f=a[((a[l>>2]&3|0)==2?l:r)+40>>2]|0;a[u>>2]=a[b>>2];a[u+4>>2]=a[b+4>>2];Wz(t,A,f,u,i);f=t;r=a[f+4>>2]|0;n=b;a[n>>2]=a[f>>2];a[n+4>>2]=r;Jy(l);n=l+48|0;r=a[(a[((a[l>>2]&3|0)==3?l:n)+40>>2]|0)+16>>2]|0;f=a[r+180>>2]|0;if(!f)r=$F((a[r+184>>2]<<2)+8|0)|0;else r=eV(f,(a[r+184>>2]<<2)+8|0)|0;a[(a[(a[((a[l>>2]&3|0)==3?l:n)+40>>2]|0)+16>>2]|0)+180>>2]=r;f=a[(a[((a[l>>2]&3|0)==3?l:n)+40>>2]|0)+16>>2]|0;c=a[f+180>>2]|0;f=f+184|0;o=a[f>>2]|0;a[f>>2]=o+1;a[c+(o<<2)>>2]=l;o=a[(a[((a[l>>2]&3|0)==3?l:n)+40>>2]|0)+16>>2]|0;a[(a[o+180>>2]|0)+(a[o+184>>2]<<2)>>2]=0;i=i+1|0}l=_o(A,l)|0}}}}while(0);k=w;return}function yz(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0.0;DX(e,a[(a[(Id(e)|0)+16>>2]|0)+116>>2]&1);r=a[e+16>>2]|0;s[r+24>>3]=+(a[i+4>>2]|0);f=+s[r+88>>3]+ +(a[i>>2]|0);s[r+16>>3]=f;f=f+ +s[r+96>>3];a[i>>2]=~~(f+ +(a[(a[(Id(e)|0)+16>>2]|0)+248>>2]|0));r=i;e=a[r+4>>2]|0;i=A;a[i>>2]=a[r>>2];a[i+4>>2]=e;return}function Wz(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0;t=k;k=k+16|0;l=t;e=vL(e)|0;n=CR(i)|0;if((n|0)!=(i|0))yy(n,i);c=a[i+16>>2]|0;a[c+236>>2]=f;n=a[(a[n+16>>2]|0)+232>>2]|0;a[c+232>>2]=n;a[(a[(a[(a[e+16>>2]|0)+196>>2]|0)+(n<<6)+4>>2]|0)+(f<<2)>>2]=i;a[l>>2]=a[r>>2];a[l+4>>2]=a[r+4>>2];yz(A,i,l);k=t;return}function zz(A){A=A|0;var e=0.0,i=0.0,r=0,n=0,l=0,t=0.0,c=0,b=0,u=0,w=0.0;u=a[(a[(vL(A)|0)+16>>2]|0)+196>>2]|0;if((vL(A)|0)==(A|0))t=8.0;else t=+(kR(A,a[47144]|0,8,0)|0);b=A+16|0;n=a[b>>2]|0;r=0;c=1;i=+s[n+120>>3];e=+s[n+128>>3];while(1){if((c|0)>(a[n+180>>2]|0))break;l=a[(a[n+184>>2]|0)+(c<<2)>>2]|0;r=zz(l)|0|r;l=a[l+16>>2]|0;n=a[b>>2]|0;if((f[l+238>>1]|0)==(f[n+238>>1]|0)){w=+s[l+120>>3]+t;i=i>w?i:w}if((f[l+236>>1]|0)==(f[n+236>>1]|0)){w=+s[l+128>>3]+t;e=e>w?e:w}c=c+1|0}if((vL(A)|0)!=(A|0)?(a[(a[b>>2]|0)+12>>2]|0)!=0:0)if(!(a[(a[(Zd(A)|0)+16>>2]|0)+116>>2]&1)){c=a[b>>2]|0;r=1;i=+s[c+56>>3]+i;e=+s[c+88>>3]+e}else r=1;c=a[b>>2]|0;s[c+120>>3]=i;s[c+128>>3]=e;if((vL(A)|0)!=(A|0)){b=a[b>>2]|0;A=u+(f[b+236>>1]<<6)+24|0;w=+s[A>>3];s[A>>3]=w>e?w:e;u=u+(f[b+238>>1]<<6)+16|0;w=+s[u>>3];s[u>>3]=w>i?w:i}return r|0}function Yz(A,e){A=A|0;e=e|0;var i=0,r=0.0,n=0.0,l=0,t=0,c=0.0,b=0,u=0,w=0,k=0,o=0.0,h=0.0;k=a[(a[(vL(A)|0)+16>>2]|0)+196>>2]|0;if((vL(A)|0)==(A|0))i=0;else i=kR(A,a[47144]|0,8,0)|0;b=A+16|0;l=a[b>>2]|0;u=i+e|0;c=+(i|0);t=1;r=+s[l+128>>3];n=+s[l+120>>3];i=l;while(1){if((t|0)>(a[i+180>>2]|0))break;l=a[(a[i+184>>2]|0)+(t<<2)>>2]|0;Yz(l,u);l=a[l+16>>2]|0;i=a[b>>2]|0;if((f[l+238>>1]|0)==(f[i+238>>1]|0)){h=+s[l+120>>3]+c;n=n>h?n:h}if((f[l+236>>1]|0)==(f[i+236>>1]|0)){h=+s[l+128>>3]+c;r=r>h?r:h}t=t+1|0}s[i+120>>3]=n;s[i+128>>3]=r;if(((vL(A)|0)!=(A|0)?(w=a[b>>2]|0,a[w+12>>2]|0):0)?(o=-n-r+ +s[w+48+((+s[w+104>>3]>+s[w+72>>3]?3:1)<<4)+8>>3]-+s[(a[(a[a[k+(f[w+236>>1]<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]+ +s[(a[(a[a[k+(f[w+238>>1]<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3],o>0.0):0)Dz(A,~~o,e);if((vL(A)|0)!=(A|0)){w=a[b>>2]|0;u=k+(f[w+236>>1]<<6)+24|0;h=+s[u>>3];o=+s[w+128>>3];s[u>>3]=h>o?h:o;k=k+(f[w+238>>1]<<6)+16|0;o=+s[k>>3];h=+s[w+120>>3];s[k>>3]=o>h?o:h}return}function Dz(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,n=0.0,l=0.0,t=0.0,c=0,b=0,u=0,w=0.0,k=0.0,o=0,h=0,d=0;c=a[(vL(A)|0)+16>>2]|0;h=a[c+196>>2]|0;o=a[A+16>>2]|0;A=f[o+238>>1]|0;r=f[o+236>>1]|0;b=(e+1|0)/2|0;u=o+120|0;w=+s[u>>3];k=+(b|0);l=+(i|0);i=~~(k+l+w-+s[h+(A<<6)+16>>3]);if((i|0)>0){n=+(i|0);while(1){if((A|0)<(r|0))break;if((a[h+(A<<6)>>2]|0)>0){d=(a[(a[a[h+(A<<6)+4>>2]>>2]|0)+16>>2]|0)+24|0;s[d>>3]=+s[d>>3]+n}A=A+-1|0}t=+s[o+128>>3];A=i;n=t+ +(e-b|0)}else{t=+s[o+128>>3];A=e-b|0;n=t}A=~~(+(A|0)+l+n-+s[h+(r<<6)+24>>3]);A:do{if((A|0)>0){i=f[c+236>>1]|0;n=+(A|0);while(1){A=r+-1|0;if((r|0)<=(i|0))break A;if((a[h+(A<<6)>>2]|0)<=0){r=A;continue}r=(a[(a[a[h+(A<<6)+4>>2]>>2]|0)+16>>2]|0)+24|0;s[r>>3]=+s[r>>3]+n;r=A}}}while(0);s[o+128>>3]=t+ +(e-b|0);s[u>>3]=w+k;return}function Mz(A,e){A=A|0;e=e|0;var i=0,f=0;i=a[A+16>>2]|0;f=r[i+84>>0]|0;A=a[e+16>>2]|0;do{if(f<<24>>24==(r[A+84>>0]|0)){if(+s[i+56>>3]==+s[A+56>>3]){if(!(f<<24>>24==0?1:+s[i+64>>3]==+s[A+64>>3])){A=0;break}}else if(f<<24>>24){A=0;break}if(+s[i+16>>3]==+s[A+16>>3]?+s[i+24>>3]==+s[A+24>>3]:0){A=1;break}A=(r[i+44>>0]|0)==0&1}else A=0}while(0);return A|0}function Fz(A){A=A|0;var e=0,i=0,r=0,n=0,l=0,t=0;t=A+16|0;e=a[t>>2]|0;f[e+236>>1]=32767;f[e+238>>1]=-1;e=0;l=cd(A)|0;while(1){i=a[t>>2]|0;if(!l)break;r=i+238|0;n=a[(a[l+16>>2]|0)+232>>2]|0;if((n|0)>(f[r>>1]|0))f[r>>1]=n;i=i+236|0;if((n|0)<(f[i>>1]|0))f[i>>1]=n;if(!e)e=l;else e=(n|0)<(a[(a[e+16>>2]|0)+232>>2]|0)?l:e;l=sd(A,l)|0}a[i+264>>2]=e;return}function Vz(A){A=A|0;var e=0,i=0,r=0,f=0,n=0.0;e=Ho(A,86974)|0;if(!e)e=2147483647;else{n=+$3(e);e=~~(n*+(gh(A)|0))}r=A+16|0;i=0;while(1){f=a[r>>2]|0;if((i|0)>=(a[f+220>>2]|0))break;a[f+192>>2]=a[(a[f+216>>2]|0)+(i<<2)>>2];JV(A,(a[f+180>>2]|0)==0&1,e)|0;i=i+1|0}return}function Jz(A,e){A=A|0;e=e|0;var i=0,r=0,n=0;r=k;k=k+16|0;i=r;if(!(Ho(A,86983)|0))Nz(A,e);else{n=(a[A+16>>2]|0)+136|0;f[n>>1]=f[n>>1]|16;pz(A,e)}if(0){}k=r;return}function pz(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0.0;t=k;k=k+16|0;l=t;a[46747]=0;r[l>>0]=r[18588]|0;r[l+1>>0]=r[18589]|0;r[l+2>>0]=r[18590]|0;r[l+3>>0]=r[18591]|0;l=kh(87201,l,0)|0;Td(l,87230,280,1)|0;zd(l,17404,17344);Rz(A);i=Ho(A,86974)|0;if(!i)f=2147483647;else{c=+$3(i);f=~~(c*+(gh(A)|0))}iY(A,0);rY(A,l);fY(A,l);aY(A,l,0,0);nY(l);n=lY(l)|0;tY(l);if(e|0){KY(l);pY(l)}i=Ho(A,102586)|0;if(!i)i=-1;else i=q3(i)|0;iV(l,1,f,i)|0;cY(A,l,n);Bh(l)|0;k=t;return}function Nz(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;n=k;k=k+32|0;f=n+16|0;r=n+8|0;i=n;Rz(A);do{if(!e){Xz(A,A);$Y(A);Hz(i,A);l=i;i=a[l+4>>2]|0;e=r;a[e>>2]=a[l>>2];a[e+4>>2]=i;jD(A,0);e=0}else{KY(A);pY(A);Xz(A,A);$Y(A);Hz(i,A);t=i;i=a[t+4>>2]|0;l=r;a[l>>2]=a[t>>2];a[l+4>>2]=i;jD(A,0);l=a[A+16>>2]|0;if((a[l+220>>2]|0)<=1?(a[l+180>>2]|0)<=0:0)break;a[e+32>>2]=1;e=0}}while(0);FY(A);a[f>>2]=a[r>>2];a[f+4>>2]=a[r+4>>2];if(Uz(A,f)|0)jD(A,0);if(!e)Vz(A);else NY(A,e);xz(A,e);Tz(A);k=n;return}function Rz(A){A=A|0;var e=0,i=0,n=0;if(r[(a[(a[A+60>>2]|0)+16>>2]|0)+113>>0]&1){i=cd(A)|0;while(1){if(!i)break;e=Oo(A,i)|0;while(1){if(!e)break;n=(a[e+16>>2]|0)+170|0;f[n>>1]=(l[n>>1]|0)<<1;e=_o(A,e)|0}i=sd(A,i)|0}n=(a[A+16>>2]|0)+252|0;a[n>>2]=((a[n>>2]|0)+1|0)/2|0}return}function Xz(A,e){A=A|0;e=e|0;var i=0;e=RB(e)|0;while(1){if(!e)break;i=$z(e)|0;do{if(i)if((i|0)==7&(a[47135]|0)==100){Oz(A,e);break}else{AY(A,e,i);break}else Xz(A,e)}while(0);e=XB(e)|0}return}function Hz(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0;t=e+16|0;i=a[t>>2]|0;e=a[i+228>>2]|0;i=a[i+224>>2]|0;f=(i|0)==0;if(!e)if(f){c=0;s=0}else n=4;else if(f)n=5;else n=4;if((n|0)==4){e=CR(i)|0;i=a[t>>2]|0;a[i+224>>2]=e;e=a[i+228>>2]|0;if(!e){l=0;e=i;n=12}else n=5}do{if((n|0)==5){e=CR(e)|0;i=a[t>>2]|0;a[i+228>>2]=e;if(e){i=e+16|0;e=a[i>>2]|0;f=(r[e+159>>0]|0)==5&1;while(1){e=a[a[e+180>>2]>>2]|0;if(!e){n=11;break}l=a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0;if((l|0)!=(CR(l)|0)){n=9;break}MY(e);e=a[i>>2]|0}if((n|0)==9)gA(87094,87034,346,87126);else if((n|0)==11){l=f;e=a[t>>2]|0;n=12;break}}else{l=0;e=i;n=12}}}while(0);A:do{if((n|0)==12){e=a[e+224>>2]|0;if(!e){c=0;s=l}else{i=e+16|0;e=a[i>>2]|0;f=(r[e+159>>0]|0)==3&1;while(1){e=a[a[e+172>>2]>>2]|0;if(!e){c=f;s=l;break A}t=a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0;if((t|0)!=(CR(t)|0))break;MY(e);e=a[i>>2]|0}gA(87139,87034,353,87126)}}}while(0);a[A>>2]=c;a[A+4>>2]=s;return}function Uz(A,e){A=A|0;e=e|0;var i=0,r=0,n=0,l=0,t=0,c=0,s=0,b=0;c=A+16|0;t=a[c>>2]|0;if((a[t+228>>2]|0)==0?(a[t+224>>2]|0)==0:0)e=0;else i=3;A:do{if((i|0)==3){n=cd(A)|0;t=e+4|0;l=a[e>>2]&65535;e=0;while(1){if(!n)break A;if((n|0)==(CR(n)|0)){r=n+16|0;i=a[r>>2]|0;if((a[i+184>>2]|0)==0?(s=a[(a[c>>2]|0)+228>>2]|0,!((s|0)==0|(n|0)==(s|0))):0){e=Qy(n,s,0)|0;i=a[e+16>>2]|0;f[i+170>>1]=a[t>>2];a[i+156>>2]=0;i=a[r>>2]|0}if((a[i+176>>2]|0)==0?(b=a[(a[c>>2]|0)+224>>2]|0,!((b|0)==0|(n|0)==(b|0))):0){e=Qy(b,n,0)|0;r=a[e+16>>2]|0;f[r+170>>1]=l;a[r+156>>2]=0}}n=sd(A,n)|0}}}while(0);return(e|0)!=0|0}function xz(A,e){A=A|0;e=e|0;var i=0,n=0,l=0,t=0,c=0,s=0;n=cd(A)|0;s=A+16|0;i=a[s>>2]|0;A:do{if(n){f[i+236>>1]=32767;f[i+238>>1]=-1;c=(e|0)==0;while(1){if(!n)break;i=CR(n)|0;t=a[n+16>>2]|0;e=a[t+232>>2]|0;do{if((i|0)!=(n|0)){if(!c)if(!e)e=0;else break;e=e+(a[(a[i+16>>2]|0)+232>>2]|0)|0;a[t+232>>2]=e}}while(0);i=a[s>>2]|0;l=i+238|0;if((e|0)>(f[l>>1]|0))f[l>>1]=e;i=i+236|0;if((e|0)<(f[i>>1]|0))f[i>>1]=e;switch(r[t+159>>0]|0){case 6:case 0:break;default:ZR(n)}n=sd(A,n)|0}if((vL(A)|0)==(A|0)){if((a[47135]|0)==100)e=1;else{Sz(A);break}while(1){i=a[s>>2]|0;if((e|0)>(a[i+180>>2]|0))break A;Pz(a[(a[i+184>>2]|0)+(e<<2)>>2]|0);e=e+1|0}}}else{f[i+238>>1]=0;f[i+236>>1]=0}}while(0);return}function Tz(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0;c=A+16|0;i=0;while(1){e=a[c>>2]|0;if((i|0)>=(a[e+220>>2]|0))break;t=a[(a[e+216>>2]|0)+(i<<2)>>2]|0;a[e+192>>2]=t;e=t;while(1){if(!e)break;t=e+16|0;jz((a[t>>2]|0)+172|0);jz((a[t>>2]|0)+180|0);t=a[t>>2]|0;r[t+157>>0]=0;e=a[t+164>>2]|0}i=i+1|0}t=cd(A)|0;while(1){if(!t)break;l=Oo(A,t)|0;while(1){if(!l)break;f=l+16|0;e=a[f>>2]|0;n=a[e+172>>2]|0;if((n|0)!=0?(s=n+16|0,(l|0)==(a[(a[s>>2]|0)+116>>2]|0)):0){e=cd(A)|0;while(1){if(!e)break;i=Oo(A,e)|0;while(1){if(!i)break;if((l|0)!=(i|0)?(b=(a[i+16>>2]|0)+172|0,u=a[b>>2]|0,(u|0)!=0&(n|0)==(u|0)):0)a[b>>2]=0;i=_o(A,i)|0}e=sd(A,e)|0}L2(a[s>>2]|0);L2(n);e=a[f>>2]|0}a[e+172>>2]=0;l=_o(A,l)|0}t=sd(A,t)|0}L2(a[(a[c>>2]|0)+216>>2]|0);u=a[c>>2]|0;a[u+216>>2]=0;a[u+220>>2]=0;return}function jz(A){A=A|0;var e=0,i=0;i=A+4|0;e=a[i>>2]|0;while(1){if((e|0)<=-1)break;a[(a[A>>2]|0)+(e<<2)>>2]=0;e=e+-1|0}a[i>>2]=0;return}function Pz(A){A=A|0;var e=0,i=0,r=0;e=A+16|0;i=a[e>>2]|0;r=a[(a[(a[i+264>>2]|0)+16>>2]|0)+232>>2]|0;A=i+236|0;f[A>>1]=r+(l[A>>1]|0);A=i+238|0;f[A>>1]=r+(l[A>>1]|0);A=1;while(1){if((A|0)>(a[i+180>>2]|0))break;Pz(a[(a[i+184>>2]|0)+(A<<2)>>2]|0);A=A+1|0;i=a[e>>2]|0}return}function Sz(A){A=A|0;var e=0;e=RB(vL(A)|0)|0;while(1){if(!e)break;if((r[(a[e+16>>2]|0)+274>>0]|0)==7)Oz(A,e);e=XB(e)|0}return}function Oz(A,e){A=A|0;e=e|0;var i=0;i=(a[e+16>>2]|0)+200|0;do{if((a[i>>2]|0)==0?(a[i>>2]=A,Kz(A,e),cd(e)|0):0){_z(A,e);if((a[47135]|0)==100){Nz(e,0);qz(e);break}else{Fz(e);break}}}while(0);return}function Kz(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0;l=A+16|0;n=cd(e)|0;while(1){if(!n)break;t=sd(e,n)|0;c=n+16|0;if(!(r[(a[c>>2]|0)+159>>0]|0))f=1;else{Cd(e,n)|0;n=t;continue}while(1){i=a[l>>2]|0;A=a[i+180>>2]|0;if((f|0)>=(A|0))break;if(Dd(a[(a[i+184>>2]|0)+(f<<2)>>2]|0,n)|0){s=7;break}f=f+1|0}if((s|0)==7){s=0;A=a[(a[l>>2]|0)+180>>2]|0}if((f|0)<(A|0))Cd(e,n)|0;a[(a[c>>2]|0)+212>>2]=0;n=t}i=cd(e)|0;while(1){if(!i)break;A=Oo(vL(e)|0,i)|0;while(1){if(!A)break;if(Dd(e,a[((a[A>>2]&3|0)==2?A:A+-48|0)+40>>2]|0)|0)uh(e,A,1)|0;A=_o(vL(e)|0,A)|0}i=sd(e,i)|0}return}function _z(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;r=A+16|0;i=a[r>>2]|0;n=i+180|0;A=a[n>>2]|0;f=A+1|0;a[n>>2]=f;i=a[i+184>>2]|0;if(!i)A=qF((A<<2)+8|0)|0;else A=AV(i,A+2|0,4,f)|0;a[(a[r>>2]|0)+184>>2]=A;a[A+(f<<2)>>2]=e;JF(e);return}function qz(A){A=A|0;var e=0,i=0,f=0,n=0,l=0;n=a[A+16>>2]|0;e=n+192|0;l=0;while(1){e=a[e>>2]|0;if(!e)break;f=a[e+16>>2]|0;if(!(a[f+232>>2]|0))i=(r[f+156>>0]|0)==0?e:l;else i=l;e=f+164|0;l=i}if(!l)gA(87019,87034,238,87041);a[n+264>>2]=l;e=cd(A)|0;while(1){if(!e){e=13;break}i=e+16|0;if(!((e|0)==(l|0)?1:(a[(a[i>>2]|0)+216>>2]|0)<2)){e=11;break}IR(e,l)|0;r[(a[i>>2]|0)+159>>0]=7;e=sd(A,e)|0}if((e|0)==11)gA(87056,87034,242,87041);else if((e|0)==13)return}function $z(A){A=A|0;var e=0;if(!(eY(A)|0)){e=YR(Ho(A,87171)|0,17356,17380)|0;r[(a[A+16>>2]|0)+274>>0]=e;A=e}else A=7;return A|0}function AY(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0;n=cd(e)|0;A:do{if(n|0){c=i&255;t=n+16|0;f=n;l=c;while(1){r[(a[f+16>>2]|0)+159>>0]=l;f=sd(e,f)|0;if(!f)break;IR(n,f)|0;l=r[(a[t>>2]|0)+159>>0]|0}switch(i|0){case 3:case 2:{A=A+16|0;f=a[A>>2]|0;l=a[f+224>>2]|0;if(l){n=IR(l,n)|0;f=a[A>>2]|0}a[f+224>>2]=n;break}case 5:case 4:{A=A+16|0;f=a[A>>2]|0;l=a[f+228>>2]|0;if(l){n=IR(l,n)|0;f=a[A>>2]|0}a[f+228>>2]=n;break}default:break A}switch(i|0){case 3:{f=f+224|0;break}case 5:{f=f+228|0;break}default:break A}r[(a[(a[f>>2]|0)+16>>2]|0)+159>>0]=c}}while(0);return}function eY(A){A=A|0;return(Z1(Vh(A)|0,108006,7)|0)==0|0}function iY(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0;b=k;k=k+16|0;n=b;if(!(IY(A)|0)){do{if(SR(A)|0)if(!e){a[(a[A+16>>2]|0)+204>>2]=0;e=A;break}else{a[(a[A+16>>2]|0)+204>>2]=(a[(a[e+16>>2]|0)+204>>2]|0)+1;ZY(A,e);e=A;break}}while(0);i=RB(A)|0;while(1){if(!i)break;iY(i,e);i=XB(i)|0}A:do{if(SR(A)|0){i=cd(A)|0;while(1){if(!i)break A;f=(a[i+16>>2]|0)+212|0;if(!(a[f>>2]|0))a[f>>2]=A;i=sd(A,i)|0}}}while(0);switch(GY(A)|0){case 3:{e=e+16|0;r[(a[e>>2]|0)+241>>0]=1;s=19;break}case 2:{e=e+16|0;s=19;break}case 5:{e=e+16|0;r[(a[e>>2]|0)+242>>0]=1;s=21;break}case 4:{e=e+16|0;s=21;break}case 1:{mY(A)|0;break}case 6:break;default:{i=Vh(A)|0;f=Ho(A,87171)|0;a[n>>2]=i;a[n+4>>2]=f;ao(0,87354,n)|0}}if((s|0)==19){s=mY(A)|0;s=QY(s,a[(a[e>>2]|0)+208>>2]|0)|0;a[(a[e>>2]|0)+208>>2]=s}else if((s|0)==21){s=mY(A)|0;s=QY(s,a[(a[e>>2]|0)+212>>2]|0)|0;a[(a[e>>2]|0)+212>>2]=s}if((SR(A)|0?(l=A+16|0,t=a[l>>2]|0,c=a[t+208>>2]|0,c|0):0)?(c|0)==(a[t+212>>2]|0):0){c=mY(A)|0;s=a[l>>2]|0;a[s+208>>2]=c;a[s+212>>2]=c}}k=b;return}function rY(A,e){A=A|0;e=e|0;var i=0,r=0;a[46747]=0;i=cd(A)|0;while(1){if(!i)break;if((sY(i)|0)==(i|0)){r=wY(e,Vh(i)|0)|0;a[(a[i+16>>2]|0)+148>>2]=r}i=sd(A,i)|0}i=cd(A)|0;while(1){if(!i)break;e=i+16|0;if(!(a[(a[e>>2]|0)+148>>2]|0)){r=a[(a[(sY(i)|0)+16>>2]|0)+148>>2]|0;a[(a[e>>2]|0)+148>>2]=r}i=sd(A,i)|0}return}function fY(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0;l=cd(A)|0;while(1){if(!l)break;i=a[(a[l+16>>2]|0)+148>>2]|0;t=Oo(A,l)|0;while(1){if(!t)break;do{if((BY(t)|0)==0?(c=t+-48|0,s=a[(a[(sY(a[((a[t>>2]&3|0)==2?t:c)+40>>2]|0)|0)+16>>2]|0)+148>>2]|0,(i|0)!=(s|0)):0){f=a[t>>2]&3;n=t+48|0;r=((f|0)==3?t:n)+40|0;f=a[(a[(a[((f|0)==2?t:c)+40>>2]|0)+16>>2]|0)+212>>2]|0;if(!(gY(t)|0)){if((dY(a[(a[(a[r>>2]|0)+16>>2]|0)+212>>2]|0)|0)==0?(dY(f)|0)==0:0){vY(e,i,s,t);break}EY(e,i,s,t);break}else{f=sY(a[r>>2]|0)|0;r=a[t>>2]&3;if((f|0)!=(a[(a[(a[(a[(a[((r|0)==3?t:n)+40>>2]|0)+16>>2]|0)+212>>2]|0)+16>>2]|0)+212>>2]|0)?(n=sY(a[((r|0)==2?t:c)+40>>2]|0)|0,(n|0)!=(a[(a[(a[(a[(a[((a[t>>2]&3|0)==2?t:c)+40>>2]|0)+16>>2]|0)+212>>2]|0)+16>>2]|0)+208>>2]|0)):0)r=s;else{r=i;i=s}vY(e,i,r,t);break}}}while(0);t=_o(A,t)|0}l=sd(A,l)|0}return}function aY(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0;if((SR(A)|0)!=0?(dY(A)|0)!=0:0){n=cd(A)|0;while(1){if(!n)break;if(!(qo(A,n)|0)){f=a[(a[(sY(n)|0)+16>>2]|0)+148>>2]|0;if(!i)i=wY(e,87252)|0;th(e,i,f,0,1)|0}if(!(Oo(A,n)|0)){f=a[(a[(sY(n)|0)+16>>2]|0)+148>>2]|0;if(!r)r=wY(e,87257)|0;th(e,f,r,0,1)|0}n=sd(A,n)|0}if((r|0)!=0&(i|0)!=0){hY(th(e,i,r,0,1)|0,0,1e3);f=i}else f=i}else f=i;i=RB(A)|0;while(1){if(!i)break;aY(i,e,f,r);i=XB(i)|0}return}function nY(A){A=A|0;var e=0,i=0;e=cd(A)|0;while(1){if(!e)break;i=a[e+16>>2]|0;r[i+158>>0]=0;r[i+157>>0]=0;e=sd(A,e)|0}e=cd(A)|0;while(1){if(!e)break;kY(A,e);e=sd(A,e)|0}return}function lY(A){A=A|0;var e=0,i=0,r=0,f=0;e=cd(A)|0;while(1){if(!e)break;a[(a[e+16>>2]|0)+128>>2]=0;e=sd(A,e)|0}e=0;r=cd(A)|0;while(1){if(!r)break;i=e+1|0;if(!(a[(a[r+16>>2]|0)+128>>2]|0)){uY(A,r,i);e=i}r=sd(A,r)|0}A:do{if((e|0)>1){f=wY(A,87246)|0;i=1;r=cd(A)|0;while(1){if(!r)break A;if((a[(a[r+16>>2]|0)+128>>2]|0)==(i|0)){th(A,f,r,0,1)|0;i=i+1|0}r=sd(A,r)|0}}}while(0);return e|0}function tY(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0;n=cd(A)|0;while(1){if(!n)break;l=n+16|0;f=Oo(A,n)|0;while(1){if(!f)break;e=a[l>>2]|0;i=a[e+180>>2]|0;if(!i)e=$F((a[e+184>>2]<<2)+8|0)|0;else e=eV(i,(a[e+184>>2]<<2)+8|0)|0;i=a[l>>2]|0;a[i+180>>2]=e;i=i+184|0;r=a[i>>2]|0;a[i>>2]=r+1;a[e+(r<<2)>>2]=f;r=a[l>>2]|0;a[(a[r+180>>2]|0)+(a[r+184>>2]<<2)>>2]=0;r=f+-48|0;e=a[(a[((a[f>>2]&3|0)==2?f:r)+40>>2]|0)+16>>2]|0;i=a[e+172>>2]|0;if(!i)e=$F((a[e+176>>2]<<2)+8|0)|0;else e=eV(i,(a[e+176>>2]<<2)+8|0)|0;a[(a[(a[((a[f>>2]&3|0)==2?f:r)+40>>2]|0)+16>>2]|0)+172>>2]=e;t=a[(a[((a[f>>2]&3|0)==2?f:r)+40>>2]|0)+16>>2]|0;e=a[t+172>>2]|0;t=t+176|0;i=a[t>>2]|0;a[t>>2]=i+1;a[e+(i<<2)>>2]=f;r=a[(a[((a[f>>2]&3|0)==2?f:r)+40>>2]|0)+16>>2]|0;a[(a[r+172>>2]|0)+(a[r+176>>2]<<2)>>2]=0;f=_o(A,f)|0}n=sd(A,n)|0}return}function cY(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,n=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0;w=A+16|0;k=a[w>>2]|0;f[k+236>>1]=32767;f[k+238>>1]=-1;A:do{if((i|0)>1){n=qF((i<<2)+4|0)|0;r=i+1|0;i=1;while(1){if((i|0)==(r|0)){u=n;k=n;break A}a[n+(i<<2)>>2]=32767;i=i+1|0}}else{u=0;k=0}}while(0);t=(u|0)==0;n=cd(A)|0;while(1){if(!n)break;c=a[(a[(a[(sY(n)|0)+16>>2]|0)+148>>2]|0)+16>>2]|0;s=a[c+232>>2]|0;b=a[n+16>>2]|0;a[b+232>>2]=s;i=a[w>>2]|0;r=i+238|0;if((s|0)>(f[r>>1]|0))f[r>>1]=s;i=i+236|0;if((s|0)<(f[i>>1]|0))f[i>>1]=s;if(!t){c=a[c+128>>2]|0;a[b+128>>2]=c;b=u+(c<<2)|0;c=a[b>>2]|0;a[b>>2]=(c|0)<(s|0)?c:s}n=sd(A,n)|0}c=(u|0)!=0;A:do{if(!c){u=f[(a[w>>2]|0)+236>>1]|0;r=u<<16>>16;if(u<<16>>16>0){i=cd(A)|0;while(1){if(!i)break;u=(a[i+16>>2]|0)+232|0;a[u>>2]=(a[u>>2]|0)-r;i=sd(A,i)|0}i=a[w>>2]|0;w=i+236|0;f[w>>1]=(l[w>>1]|0)-r;i=i+238|0;f[i>>1]=(l[i>>1]|0)-r;i=0}else i=0}else{i=cd(A)|0;while(1){if(!i){i=1;break A}b=a[i+16>>2]|0;w=b+232|0;a[w>>2]=(a[w>>2]|0)-(a[u+(a[b+128>>2]<<2)>>2]|0);i=sd(A,i)|0}}}while(0);bY(A,i);t=cd(e)|0;while(1){if(!t)break;r=t+16|0;i=a[r>>2]|0;n=a[i+172>>2]|0;if(n){L2(n);i=a[r>>2]|0}i=a[i+180>>2]|0;if(i|0)L2(i);t=sd(e,t)|0}L2(a[(a[(cd(A)|0)+16>>2]|0)+112>>2]|0);i=cd(A)|0;while(1){if(!i)break;a[(a[i+16>>2]|0)+112>>2]=0;i=sd(A,i)|0}if(c)L2(k);return}function sY(A){A=A|0;var e=0,i=0,r=0;e=A+16|0;i=(a[e>>2]|0)+152|0;r=a[i>>2]|0;if(r){if((r|0)!=(A|0)){r=sY(r)|0;a[(a[e>>2]|0)+152>>2]=r;return r|0}}else a[i>>2]=A;return A|0}function bY(A,e){A=A|0;e=e|0;var i=0,r=0,n=0,l=0,t=0;t=A+16|0;i=1;while(1){r=a[t>>2]|0;if((i|0)>(a[r+180>>2]|0))break;bY(a[(a[r+184>>2]|0)+(i<<2)>>2]|0,0);i=i+1|0}if((e|0)!=0|(a[r+200>>2]|0)!=0){f[r+236>>1]=32767;f[r+238>>1]=-1;i=0;l=cd(A)|0;while(1){if(!l)break;n=a[(a[l+16>>2]|0)+232>>2]|0;e=a[t>>2]|0;r=e+238|0;if((n|0)>(f[r>>1]|0))f[r>>1]=n;e=e+236|0;if((n|0)<(f[e>>1]|0)){f[e>>1]=n;i=l}l=sd(A,l)|0}a[(a[t>>2]|0)+264>>2]=i}return}function uY(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=(a[e+16>>2]|0)+128|0;A:do{if(!(a[r>>2]|0)){a[r>>2]=i;r=Oo(A,e)|0;while(1){if(!r)break;uY(A,a[((a[r>>2]&3|0)==2?r:r+-48|0)+40>>2]|0,i);r=_o(A,r)|0}r=qo(A,e)|0;while(1){if(!r)break A;uY(A,a[((a[r>>2]&3|0)==3?r:r+48|0)+40>>2]|0,i);r=$o(A,r)|0}}}while(0);return}function wY(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;f=gd(A,e,1)|0;e=f+16|0;a[(a[e>>2]|0)+176>>2]=0;r=qF(20)|0;i=a[e>>2]|0;a[i+172>>2]=r;a[i+184>>2]=0;i=qF(20)|0;e=a[e>>2]|0;a[e+180>>2]=i;i=a[46747]|0;r=e+168|0;if(!i){a[r>>2]=0;a[(a[A+16>>2]|0)+192>>2]=f}else{a[r>>2]=i;a[(a[i+16>>2]|0)+164>>2]=f}a[46747]=f;a[e+164>>2]=0;return f|0}function kY(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0;l=e+16|0;i=a[l>>2]|0;f=i+157|0;if(!(r[f>>0]|0)){r[f>>0]=1;r[i+158>>0]=1;e=Oo(A,e)|0;while(1){if(!e)break;i=_o(A,e)|0;f=a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0;n=a[f+16>>2]|0;if(r[n+158>>0]|0){oY(A,e);e=i;continue}if(r[n+157>>0]|0){e=i;continue}kY(A,f);e=i}r[(a[l>>2]|0)+158>>0]=0}return}function oY(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;i=a[e>>2]&3;f=e+-48|0;r=e+48|0;i=th(A,a[((i|0)==2?e:f)+40>>2]|0,a[((i|0)==3?e:r)+40>>2]|0,0,0)|0;if(!i){i=a[e>>2]&3;i=th(A,a[((i|0)==2?e:f)+40>>2]|0,a[((i|0)==3?e:r)+40>>2]|0,0,1)|0}f=a[e+16>>2]|0;hY(i,l[f+170>>1]|0,a[f+156>>2]|0);Cd(A,e)|0;return}function hY(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,n=0;A=a[A+16>>2]|0;r=A+170|0;n=l[r>>1]|0;f[r>>1]=(n|0)>(e|0)?n:e;e=A+156|0;a[e>>2]=(a[e>>2]|0)+i;return}function dY(A){A=A|0;return(ER(Ho(A,87262)|0,0)|0)&255|0}function BY(A){A=A|0;var e=0,i=0;e=a[47189]|0;if((((e|0)!=0?(i=Uo(A,e)|0,(i|0)!=0):0)?(r[i>>0]|0)!=0:0)?(vR(i)|0)<<24>>24==0:0)A=1;else A=0;return A|0}function gY(A){A=A|0;var e=0,i=0;i=a[A>>2]&3;e=a[(a[(a[((i|0)==3?A:A+48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0;A=a[(a[(a[((i|0)==2?A:A+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0;if((e|0)==(A|0))return 1;else{i=CY(e,A)|0;return((i|0)==(e|0)|(i|0)==(A|0))&1|0}return 0}function vY(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,t=0,c=0;c=k;k=k+16|0;n=c;f=th(A,e,i,0,0)|0;if(!f){f=th(A,i,e,0,0)|0;if(!f){f=th(A,e,i,0,1)|0;if(!f){e=Vh(e)|0;r=Vh(i)|0;a[n>>2]=e;a[n+4>>2]=r;ao(1,87279,n)|0}else t=4}else t=4}else t=4;if((t|0)==4){t=a[r+16>>2]|0;hY(f,l[t+170>>1]|0,a[t+156>>2]|0)}k=c;return}function EY(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var n=0,t=0,c=0,s=0,b=0,u=0;b=k;k=k+112|0;c=b;t=b+4|0;n=qo(A,e)|0;while(1){if(!n){s=6;break}u=Oo(A,a[((a[n>>2]&3|0)==3?n:n+48|0)+40>>2]|0)|0;if(u|0?(a[((a[u>>2]&3|0)==2?u:u+-48|0)+40>>2]|0)==(i|0):0)break;n=$o(A,n)|0}if((s|0)==6){u=a[46748]|0;a[46748]=u+1;a[c>>2]=u;S4(t,87270,c)|0;t=wY(A,t)|0;u=th(A,t,e,0,1)|0;t=th(A,t,i,0,1)|0;i=a[r+16>>2]|0;s=i+156|0;u=(a[u+16>>2]|0)+156|0;a[u>>2]=(a[u>>2]|0)+((a[s>>2]|0)*1e3|0);u=a[t+16>>2]|0;c=u+170|0;f[c>>1]=f[(a[((l[c>>1]|0)>(l[i+170>>1]|0)?t:r)+16>>2]|0)+170>>1]|0;u=u+156|0;a[u>>2]=(a[u>>2]|0)+(a[s>>2]|0)}k=b;return}function CY(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;A:while(1){r=A+16|0;while(1){if((A|0)==(e|0))break A;f=a[r>>2]|0;i=a[e+16>>2]|0;if((a[f+204>>2]|0)>=(a[i+204>>2]|0))break;e=a[i+200>>2]|0}A=a[f+200>>2]|0}return A|0}function IY(A){A=A|0;return(cd(A)|0)==0|0}function ZY(A,e){A=A|0;e=e|0;a[(a[A+16>>2]|0)+200>>2]=e;_z(e,A);Kz(e,A);return}function GY(A){A=A|0;var e=0;A=Ho(A,87171)|0;if((A|0)!=0?(r[A>>0]|0)!=0:0)if(A1(A,87181)|0)if(A1(A,87185)|0)if(A1(A,87192)|0)if(A1(A,87196)|0)if(!(A1(A,87176)|0))A=1;else e=8;else A=5;else A=4;else A=3;else A=2;else e=8;if((e|0)==8)A=6;return A|0}function mY(A){A=A|0;var e=0,i=0;i=cd(A)|0;A:do{if(!i)e=0;else{e=sY(i)|0;while(1){i=sd(A,i)|0;if(!i)break A;QY(e,i)|0}}}while(0);return e|0}function QY(A,e){A=A|0;e=e|0;if(e){A=sY(A)|0;a[(a[(sY(e)|0)+16>>2]|0)+152>>2]=A}return A|0}function LY(A,e,i){A=A|0;e=e|0;i=i|0;Td(e,87230,a[i>>2]|0,1)|0;return}function yY(A,e,i){A=A|0;e=e|0;i=i|0;Td(e,87397,a[i+4>>2]|0,1)|0;return}function WY(A,e,i){A=A|0;e=e|0;i=i|0;Td(e,87382,a[i+8>>2]|0,1)|0;return}function zY(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0;o=k;k=k+240|0;b=o+120|0;u=o;a[47193]=Yo(A,2,87412,0)|0;s=Yo(A,2,87421,0)|0;a[47194]=s;A:do{if((s|0)!=0|(a[47193]|0)!=0){s=cd(A)|0;while(1){if(!s)break A;c=0;e=0;t=Ah(A,s)|0;while(1){if(!t){f=0;break}i=a[t>>2]|0;n=i&3;f=a[((n|0)==2?t:t+-48|0)+40>>2]|0;l=t+48|0;e:do{if((f|0)!=(a[((n|0)==3?t:l)+40>>2]|0)){n=a[47193]|0;do{if((f|0)==(s|0)&(n|0)!=0){f=Uo(t,n)|0;if(!(r[f>>0]|0)){i=a[t>>2]|0;break}else{i=c;e=YY(b,e,s,t,f)|0;break e}}}while(0);f=a[47194]|0;if((f|0?(a[((i&3|0)==3?t:l)+40>>2]|0)==(s|0):0)?(w=Uo(t,f)|0,(r[w>>0]|0)!=0):0)i=YY(u,c,s,t,w)|0;else i=c}else i=c}while(0);c=i;t=eh(A,t,s)|0}while(1){if((f|0)>=(e|0)){i=0;break}i=b+(f*24|0)+4|0;if((a[b+(f*24|0)+8>>2]|0)>1)DY(s,i);i=a[i>>2]|0;if(i|0)L2(i);f=f+1|0}while(1){if((i|0)>=(c|0))break;e=u+(i*24|0)+4|0;if((a[u+(i*24|0)+8>>2]|0)>1)DY(s,e);e=a[e>>2]|0;if(e|0)L2(e);i=i+1|0}s=sd(A,s)|0}}}while(0);k=o;return}function YY(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0.0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0;o=k;k=k+16|0;c=o;b=o+12|0;u=o+8|0;w=0;while(1){if((w|0)>=(e|0)){t=10;break}t=a[A+(w*24|0)>>2]|0;if((r[t>>0]|0)==(r[n>>0]|0)?(A1(t,n)|0)==0:0){t=5;break}w=w+1|0}do{if((t|0)==5){c=A+(w*24|0)+4|0;t=a[c>>2]|0;if(!t){t=A+(w*24|0)+8|0;n=t;t=$F((a[t>>2]<<2)+8|0)|0}else{h=A+(w*24|0)+8|0;n=h;t=eV(t,(a[h>>2]<<2)+8|0)|0}a[c>>2]=t;d=a[n>>2]|0;h=d+1|0;a[n>>2]=h;a[t+(d<<2)>>2]=f;a[(a[c>>2]|0)+(h<<2)>>2]=0;t=13}else if((t|0)==10)if((e|0)>4){d=Vh(i)|0;a[c>>2]=5;a[c+4>>2]=d;ao(1,87430,c)|0;break}else{B=A+(w*24|0)+8|0;a[B>>2]=0;c=qF(8)|0;d=A+(w*24|0)+4|0;a[d>>2]=c;h=a[B>>2]|0;t=h+1|0;a[B>>2]=t;a[c+(h<<2)>>2]=f;a[(a[d>>2]|0)+(t<<2)>>2]=0;a[A+(w*24|0)>>2]=n;a[A+(w*24|0)+12>>2]=0;s[A+(w*24|0)+16>>3]=0.0;e=e+1|0;t=13;break}}while(0);if((t|0)==13){DC(f,b,u);t=(a[((a[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0)==(i|0)?a[u>>2]|0:a[b>>2]|0;if(t){d=A+(w*24|0)+12|0;B=a[d>>2]|0;a[d>>2]=B+1;if(!B)l=+JC(f,t);else l=0.0;s[A+(w*24|0)+16>>3]=l}}k=o;return e|0}function DY(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0.0,c=0.0,b=0.0,u=0,w=0.0,o=0.0,h=0.0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0.0;I=k;k=k+80|0;g=I+68|0;v=I+64|0;d=I;E=e+4|0;u=a[E>>2]|0;C=A+16|0;l=0;o=0.0;h=0.0;while(1){if((l|0)>=(u|0))break;f=a[(a[e>>2]|0)+(l<<2)>>2]|0;n=a[f>>2]&3;i=a[((n|0)==2?f:f+-48|0)+40>>2]|0;if((i|0)==(A|0))i=a[((n|0)==3?f:f+48|0)+40>>2]|0;n=a[i+16>>2]|0;B=a[C>>2]|0;c=+s[n+16>>3]-+s[B+16>>3];b=+s[n+24>>3]-+s[B+24>>3];w=+g1(c,b);l=l+1|0;o=c/w+o;h=b/w+h}t=+g1(o,h);B=a[C>>2]|0;c=+s[B+16>>3];b=+s[B+24>>3];Z=+s[B+96>>3]+ +s[B+88>>3];w=+s[B+80>>3];B=Z>w+ +(a[(a[(Id(A)|0)+16>>2]|0)+252>>2]|0);i=a[C>>2]|0;if(B)w=+s[i+96>>3]+ +s[i+88>>3];else{w=+s[i+80>>3];w=w+ +(a[(a[(Id(A)|0)+16>>2]|0)+252>>2]|0);i=a[C>>2]|0}Z=+s[i+16>>3]+w*(o/t);t=+s[i+24>>3]+w*(h/t);s[d>>3]=c;u=d+8|0;s[u>>3]=b;s[d+16>>3]=(Z+c*2.0)*.3333333333333333;s[d+24>>3]=(t+b*2.0)*.3333333333333333;s[d+32>>3]=(Z*2.0+c)*.3333333333333333;s[d+40>>3]=(t*2.0+b)*.3333333333333333;s[d+48>>3]=Z;s[d+56>>3]=t;dN(A,d);B=a[C>>2]|0;t=+s[d>>3]-+s[B+16>>3];c=+s[u>>3]-+s[B+24>>3];t=+(~~(t+(t>=0.0?.5:-.5))|0);c=+(~~(c+(c>=0.0?.5:-.5))|0);Z=+s[B+88>>3];B=~~((Z+t)*256.0/(+s[B+96>>3]+Z))&255;d=0;while(1){if((d|0)>=(a[E>>2]|0))break;u=a[(a[e>>2]|0)+(d<<2)>>2]|0;DC(u,g,v);while(1){if(!u)break;else n=u;while(1){if(!n){l=u;break}i=a[n>>2]|0;l=n+-48|0;if((a[((i&3|0)==2?n:l)+40>>2]|0)==(A|0)){i=a[n+16>>2]|0;s[i+56>>3]=t;s[i+64>>3]=c;s[i+72>>3]=0.0;a[i+80>>2]=0;r[i+84>>0]=1;r[i+85>>0]=0;r[i+86>>0]=0;r[i+87>>0]=0;r[i+88>>0]=B;r[i+89>>0]=0;a[i+92>>2]=0;i=a[n>>2]|0}f=n+16|0;if((a[((i&3|0)==3?n:n+48|0)+40>>2]|0)==(A|0)){i=a[f>>2]|0;s[i+16>>3]=t;s[i+24>>3]=c;s[i+32>>3]=0.0;a[i+40>>2]=0;r[i+44>>0]=1;r[i+45>>0]=0;r[i+46>>0]=0;r[i+47>>0]=0;r[i+48>>0]=B;r[i+49>>0]=0;a[i+52>>2]=0}if((r[(a[f>>2]|0)+112>>0]|0)!=1){n=0;continue}i=a[(a[((a[n>>2]&3|0)==2?n:l)+40>>2]|0)+16>>2]|0;if((r[i+156>>0]|0)!=1){n=0;continue}if((a[i+184>>2]|0)!=1){n=0;continue}n=a[a[i+180>>2]>>2]|0}while(1){if(!l)break;i=a[l>>2]|0;if((a[((i&3|0)==2?l:l+-48|0)+40>>2]|0)==(A|0)){i=a[l+16>>2]|0;s[i+56>>3]=t;s[i+64>>3]=c;s[i+72>>3]=0.0;a[i+80>>2]=0;r[i+84>>0]=1;r[i+85>>0]=0;r[i+86>>0]=0;r[i+87>>0]=0;r[i+88>>0]=B;r[i+89>>0]=0;a[i+92>>2]=0;i=a[l>>2]|0}f=l+48|0;n=l+16|0;if((a[((i&3|0)==3?l:f)+40>>2]|0)==(A|0)){i=a[n>>2]|0;s[i+16>>3]=t;s[i+24>>3]=c;s[i+32>>3]=0.0;a[i+40>>2]=0;r[i+44>>0]=1;r[i+45>>0]=0;r[i+46>>0]=0;r[i+47>>0]=0;r[i+48>>0]=B;r[i+49>>0]=0;a[i+52>>2]=0}if((r[(a[n>>2]|0)+112>>0]|0)!=1){l=0;continue}i=a[(a[((a[l>>2]&3|0)==3?l:f)+40>>2]|0)+16>>2]|0;if((r[i+156>>0]|0)!=1){l=0;continue}if((a[i+176>>2]|0)!=1){l=0;continue}l=a[a[i+172>>2]>>2]|0}u=a[(a[u+16>>2]|0)+172>>2]|0}d=d+1|0}r[(a[C>>2]|0)+145>>0]=1;k=I;return}function MY(A){A=A|0;var e=0,i=0,r=0;Cy(A);e=a[A>>2]&3;i=A+-48|0;r=A+48|0;e=dy(a[((e|0)==2?A:i)+40>>2]|0,a[((e|0)==3?A:r)+40>>2]|0)|0;if(!e){e=a[A>>2]&3;Qy(a[((e|0)==2?A:i)+40>>2]|0,a[((e|0)==3?A:r)+40>>2]|0,A)|0}else Fy(A,e);return}function FY(A){A=A|0;var e=0,i=0,f=0,n=0;f=A+16|0;i=0;while(1){A=a[f>>2]|0;if((i|0)>=(a[A+220>>2]|0))break;e=a[(a[A+216>>2]|0)+(i<<2)>>2]|0;a[A+192>>2]=e;A=e;e=A;while(1){if(!e)break;n=a[e+16>>2]|0;r[n+157>>0]=0;e=a[n+164>>2]|0}while(1){if(!A)break;VY(A);A=a[(a[A+16>>2]|0)+164>>2]|0}i=i+1|0}return}function VY(A){A=A|0;var e=0,i=0,f=0,n=0;n=A+16|0;e=a[n>>2]|0;A=e+157|0;if(!(r[A>>0]|0)){r[A>>0]=1;r[e+158>>0]=1;A=0;while(1){f=a[(a[e+180>>2]|0)+(A<<2)>>2]|0;if(!f)break;e=a[((a[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0;i=a[e+16>>2]|0;if(!(r[i+158>>0]|0)){if(!(r[i+157>>0]|0))VY(e)}else{MY(f);A=A+-1|0}A=A+1|0;e=a[n>>2]|0}r[e+158>>0]=0}return}function JY(A){A|0;var e=0,i=0,r=0,f=0,n=0,l=0;cd(A)|0;0;while(1){if(!r)break;Oo(A,r)|0;while(1){if(!i)break;a[i>>2]&3;a[(a[(a[((n|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;a[(a[(a[((n|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;l-n|0;_o(A,i)|0;((l|0)==(n|0)?0:((f|0)>-1?f:0-f|0)+-1|0)+e|0}sd(A,r)|0}return e|0}function pY(A){A=A|0;var e=0,i=0,f=0,n=0;i=cd(A)|0;while(1){if(!i)break;n=a[i+16>>2]|0;f=a[n+176>>2]|0;n=n+172|0;e=0;while(1){if((e|0)>=(f|0))break;r[(a[(a[(a[n>>2]|0)+(e<<2)>>2]|0)+16>>2]|0)+112>>0]=0;e=e+1|0}i=sd(A,i)|0}return}function NY(A,e){A=A|0;e=e|0;var i=0,r=0.0,f=0.0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0;h=k;k=k+16|0;w=h;t=a[e+24>>2]|0;RY(A);c=(t|0)==-1;b=e+8|0;l=c^1;u=a[15712]|0;f=1797693134862315708145274.0e284;n=0;while(1){if(!(c|(n|0)<(t|0)))break;i=cd(A)|0;while(1){if(!i)break;a[(a[i+16>>2]|0)+232>>2]=0;i=sd(A,i)|0}Vz(A);r=+XY(A);s[b>>3]=r;if(0){}if(!(!(r<=+s[e>>3])&(!(f<=r)|l))){o=9;break}HY(A);f=r;n=n+1|0}if((o|0)==9){o=e+20|0;a[e+16>>2]=a[o>>2];a[o>>2]=n}Vz(A);UY(A);xY();s[b>>3]=+XY(A);k=h;return}function RY(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0.0,u=0.0,w=0;a[46752]=$F((gh(A)|0)*24|0)|0;a[46751]=0;e=cd(A)|0;while(1){if(!e)break;a[(a[e+16>>2]|0)+120>>2]=-1;e=sd(A,e)|0}l=cd(A)|0;while(1){if(!l)break;t=l+16|0;do{if(!(a[(a[t>>2]|0)+216>>2]|0)){f=qF(4)|0;n=a[46752]|0;c=a[46751]|0;a[n+(c*24|0)>>2]=f;a[f>>2]=l;a[n+(c*24|0)+4>>2]=1;t=a[t>>2]|0;s[n+(c*24|0)+8>>3]=+s[t+32>>3];s[n+(c*24|0)+16>>3]=+s[t+40>>3];a[t+120>>2]=c;a[46751]=c+1}else{n=CR(l)|0;c=n+16|0;e=a[c>>2]|0;i=a[e+120>>2]|0;if((i|0)>-1){n=a[46752]|0;f=a[n+(i*24|0)>>2]|0;r=n+(i*24|0)+4|0;c=a[r>>2]|0;a[r>>2]=c+1;a[f+(c<<2)>>2]=l;c=a[t>>2]|0;t=n+(i*24|0)+8|0;s[t>>3]=+s[t>>3]+ +s[c+32>>3];t=n+(i*24|0)+16|0;b=+s[t>>3];u=+s[c+40>>3];s[t>>3]=b>2]=i;break}i=qF(a[e+216>>2]<<2)|0;r=a[46752]|0;f=a[46751]|0;e=r+(f*24|0)|0;a[e>>2]=i;a[i>>2]=n;if((n|0)==(l|0)){s[r+(f*24|0)+8>>3]=+s[(a[c>>2]|0)+32>>3];i=1;e=l}else{a[(a[e>>2]|0)+4>>2]=l;w=a[c>>2]|0;e=a[t>>2]|0;s[r+(f*24|0)+8>>3]=+s[e+32>>3]+ +s[w+32>>3];i=2;e=+s[w+40>>3]<+s[e+40>>3]?l:n}a[r+(f*24|0)+4>>2]=i;s[r+(f*24|0)+16>>3]=+s[(a[e+16>>2]|0)+40>>3];a[(a[c>>2]|0)+120>>2]=f;a[(a[t>>2]|0)+120>>2]=f;a[46751]=f+1}}while(0);l=sd(A,l)|0}return}function XY(A){A=A|0;var e=0.0,i=0.0,r=0,f=0,n=0,l=0.0,t=0.0;UY(A);n=a[46749]|0;r=a[A+16>>2]|0;e=+(U(a[r+252>>2]|0,n+-1|0)|0);f=a[46750]|0;r=r+248|0;A=0;i=0.0;while(1){if((A|0)>=(n|0))break;l=+s[f+(A*40|0)+24>>3]+ +(U(a[r>>2]|0,a[f+(A*40|0)+16>>2]|0)|0);t=+s[f+(A*40|0)+32>>3]+e;A=A+1|0;e=t;i=i=(gh(A)|0))break;a[(a[46753]|0)+(e<<2)>>2]=e;e=e+1|0}UY(A);TY(A);jY(A);return}function UY(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0.0,c=0,b=0;a[46749]=0;e=a[46750]|0;if(e|0){r=0;while(1){if((r|0)>=(a[46751]|0))break;i=a[e+(r*40|0)+4>>2]|0;if(i){L2(i);e=a[46750]|0}i=a[e+(r*40|0)+8>>2]|0;if(i){L2(i);e=a[46750]|0}r=r+1|0}L2(e)}a[46750]=qF((a[46751]|0)*40|0)|0;e=0;while(1){i=a[46751]|0;if((e|0)>=(i|0))break;c=qF(i<<2)|0;a[(a[46750]|0)+(e*40|0)+4>>2]=c;c=qF(a[46751]<<2)|0;b=a[46750]|0;a[b+(e*40|0)+8>>2]=c;a[b+(e*40|0)>>2]=e;a[b+(e*40|0)+12>>2]=0;a[b+(e*40|0)+16>>2]=0;b=b+(e*40|0)+24|0;a[b>>2]=0;a[b+4>>2]=0;a[b+8>>2]=0;a[b+12>>2]=0;e=e+1|0}r=cd(A)|0;while(1){if(!r)break;i=Oo(A,r)|0;while(1){if(!i)break;l=a[i>>2]|0;f=i+-48|0;n=a[46750]|0;e=a[(a[(a[((l&3|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;while(1){e=e+1|0;if((e|0)>=(a[(a[(a[((l&3|0)==2?i:f)+40>>2]|0)+16>>2]|0)+232>>2]|0))break;l=n+(e*40|0)+16|0;a[l>>2]=(a[l>>2]|0)+1;l=a[i>>2]|0}i=_o(A,i)|0}r=sd(A,r)|0}l=a[46751]|0;c=a[46752]|0;b=a[46750]|0;i=A+16|0;e=0;while(1){if((e|0)>=(l|0))break;r=(a[a[c+(e*24|0)>>2]>>2]|0)+16|0;f=a[(a[r>>2]|0)+232>>2]|0;if((f|0)>=(a[46749]|0))a[46749]=f+1;n=b+(f*40|0)+24|0;t=+s[n>>3];s[n>>3]=t+ +s[c+(e*24|0)+8>>3]*72.0+(t>0.0?+(a[(a[i>>2]|0)+248>>2]|0):0.0);n=b+(f*40|0)+32|0;t=+s[c+(e*24|0)+16>>3]*72.0;if(+s[n>>3]>3]=t;a[(a[b+(f*40|0)+4>>2]|0)+(a[b+(f*40|0)+12>>2]<<2)>>2]=c+(e*24|0);A=b+((a[(a[r>>2]|0)+232>>2]|0)*40|0)+12|0;a[A>>2]=(a[A>>2]|0)+1;e=e+1|0}return}function xY(){var A=0,e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0;s=a[46749]|0;b=a[46750]|0;c=0;e=0;A=0;while(1){if((c|0)>=(s|0))break;i=b+(c*40|0)|0;t=a[b+(c*40|0)+12>>2]|0;r=(e|0)==0;A:do{if(t)if(!r){if((a[i>>2]|0)>(A|0)){f=b+(c*40|0)+4|0;i=0;while(1){if((i|0)>=(t|0))break A;n=a[(a[f>>2]|0)+(i<<2)>>2]|0;l=a[n+4>>2]|0;r=0;while(1){if((r|0)>=(l|0))break;u=(a[(a[(a[n>>2]|0)+(r<<2)>>2]|0)+16>>2]|0)+232|0;a[u>>2]=(a[u>>2]|0)-e;r=r+1|0}i=i+1|0}}}else e=0;else{if(r)A=a[i>>2]|0;e=e+1|0}}while(0);c=c+1|0}return}function TY(A){A=A|0;var e=0;e=a[46753]|0;K4(e,gh(A)|0,4,63);return}function jY(A){A=A|0;var e=0.0,i=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0.0,w=0,k=0,o=0,h=0,d=0.0,B=0;t=a[46749]|0;c=a[46750]|0;n=a[46753]|0;l=0;while(1){if((l|0)>=(t|0)){i=0;e=0.0;break}i=a[n+(l<<2)>>2]|0;f=l+1|0;if((a[c+(i*40|0)+12>>2]|0)<2)l=f;else{b=4;break}}if((b|0)==4)if((t|0)>(f|0))e=+s[c+((a[n+(f<<2)>>2]|0)*40|0)+24>>3];else e=0.0;A:do{if((l|0)!=(t|0)){K4(a[c+(i*40|0)+4>>2]|0,a[c+(i*40|0)+12>>2]|0,4,64);n=a[46750]|0;d=+s[n+(i*40|0)+24>>3];d=!(e<=d*.25)&!(e>=d*.75)?e:d*.5;B=a[n+(i*40|0)+12>>2]|0;h=A+16|0;w=0;k=0;e=0.0;f=0;o=0;while(1){if((o|0)>=(f+B|0))break A;do{if(!(a[(a[n+(i*40|0)+8>>2]|0)+(o<<2)>>2]|0)){b=a[(a[n+(i*40|0)+4>>2]|0)+(o<<2)>>2]|0;A=b+8|0;u=+s[A>>3]*72.0+e+(e>0.0?+(a[(a[h>>2]|0)+248>>2]|0):0.0);l=(k|0)!=0;if(!(l&!(u<=d))){t=l?w:b;l=l?k:1;e=u;break}t=w+4|0;c=b+4|0;l=0;while(1){if((l|0)<(a[t>>2]|0))n=0;else break;while(1){if((n|0)>=(a[c>>2]|0))break;r[(a[(Qy(a[(a[w>>2]|0)+(l<<2)>>2]|0,a[(a[b>>2]|0)+(n<<2)>>2]|0,0)|0)+16>>2]|0)+112>>0]=1;n=n+1|0}l=l+1|0}n=a[46750]|0;a[(a[n+(i*40|0)+8>>2]|0)+(o<<2)>>2]=1;t=n+(i*40|0)+12|0;a[t>>2]=(a[t>>2]|0)+-1;t=n+(i*40|0)+16|0;a[t>>2]=(a[t>>2]|0)+1;t=n+(i*40|0)+24|0;s[t>>3]=+s[A>>3]*-72.0-+(a[(a[h>>2]|0)+248>>2]|0)+ +s[t>>3];t=w;l=k}else{t=w;l=k;f=f+1|0}}while(0);w=t;k=l;o=o+1|0}}}while(0);return}function PY(A,e){A=A|0;e=e|0;A=SY(a[A>>2]|0)|0;e=SY(a[e>>2]|0)|0;return((e|0)<(A|0)&1)-((e|0)>(A|0)&1)|0}function SY(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;f=A+4|0;i=0;e=0;while(1){if((i|0)>=(a[f>>2]|0))break;r=a[(a[A>>2]|0)+(i<<2)>>2]|0;n=Id(r)|0;r=Oo(n,r)|0;while(1){if(!r)break;r=_o(n,r)|0;e=e+1|0}i=i+1|0}return e|0}function OY(A,e){A=A|0;e=e|0;var i=0.0,r=0.0,f=0;f=a[46750]|0;r=+s[f+((a[e>>2]|0)*40|0)+24>>3];i=+s[f+((a[A>>2]|0)*40|0)+24>>3];return(r>i&1)-(r>2]|0)+216>>2]=0;e=sd(A,e)|0}return}function _Y(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;n=k;k=k+32|0;f=n+16|0;r=n+8|0;i=n+20|0;a[i>>2]=5;A=Ho(A,99605)|0;if(A|0?(a[r>>2]=n,a[r+4>>2]=i,(J3(A,87497,r)|0)>=1):0)ao(0,87504,f)|0;a[e+24>>2]=0;a[e+32>>2]=0;k=n;return 0}function qY(A){A=A|0;var e=0,i=0;e=a[47189]|0;if((((e|0)!=0?(i=Uo(A,e)|0,(i|0)!=0):0)?(r[i>>0]|0)!=0:0)?(vR(i)|0)<<24>>24==0:0)A=1;else A=0;return A|0}function $Y(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0;vD(A);e=cd(A)|0;while(1){if(!e)break;i=Oo(A,e)|0;while(1){if(!i)break;do{if(((a[(a[i+16>>2]|0)+172>>2]|0)==0?(qY(i)|0)==0:0)?(r=i+48|0,f=CR(a[((a[i>>2]&3|0)==3?i:r)+40>>2]|0)|0,n=i+-48|0,l=CR(a[((a[i>>2]&3|0)==2?i:n)+40>>2]|0)|0,(f|0)!=(l|0)):0){if((a[(a[f+16>>2]|0)+212>>2]|0)==0?(a[(a[l+16>>2]|0)+212>>2]|0)==0:0){t=dy(f,l)|0;if(!t){Qy(f,l,i)|0;break}else{Fy(i,t);break}}t=a[i>>2]&3;AD(A,a[((t|0)==3?i:r)+40>>2]|0,a[((t|0)==2?i:n)+40>>2]|0,i)}}while(0);i=_o(A,i)|0}e=sd(A,e)|0}return}function AD(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,t=0,c=0,s=0;c=a[f>>2]&3;n=a[(a[((c|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0;t=a[n+212>>2]|0;if(!t)s=0;else s=(a[n+232>>2]|0)-(a[(a[(a[(a[t+16>>2]|0)+264>>2]|0)+16>>2]|0)+232>>2]|0)|0;n=a[(a[((c|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0;t=a[n+212>>2]|0;if(!t)n=0;else n=(a[(a[(a[(a[t+16>>2]|0)+264>>2]|0)+16>>2]|0)+232>>2]|0)-(a[n+232>>2]|0)|0;c=f+16|0;s=n+s+(l[(a[c>>2]|0)+170>>1]|0)|0;A=Yy(A)|0;r[(a[A+16>>2]|0)+156>>0]=2;t=CR(e)|0;e=CR(i)|0;i=bz(A,t,(s|0)>0?0.0:+(0-s|0),(a[(a[c>>2]|0)+156>>2]|0)*10|0)|0;a[(a[(bz(A,e,+(((s|0)>0?s:0)|0),a[(a[c>>2]|0)+156>>2]|0)|0)+16>>2]|0)+116>>2]=f;a[(a[i+16>>2]|0)+116>>2]=f;return}function eD(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var n=0,t=0,c=0,s=0;c=a[e>>2]&3;t=(c|0)==3?e:e+48|0;c=(c|0)==2?e:e+-48|0;c=a[(a[(a[((a[(a[(a[t+40>>2]|0)+16>>2]|0)+232>>2]|0)>(a[(a[(a[c+40>>2]|0)+16>>2]|0)+232>>2]|0)?t:c)+40>>2]|0)+16>>2]|0)+232>>2]|0;t=e+16|0;e=(a[t>>2]|0)+172|0;if(a[e>>2]|0)gA(87593,87615,148,87624);a[e>>2]=i;n=(r|0)==0;do{e=a[t>>2]|0;if(n)r=a[i+16>>2]|0;else{r=a[i+16>>2]|0;s=r+168|0;f[s>>1]=(l[s>>1]|0)+(l[e+168>>1]|0)}s=r+154|0;f[s>>1]=(l[s>>1]|0)+(l[e+154>>1]|0);r=r+156|0;a[r>>2]=(a[r>>2]|0)+(a[e+156>>2]|0);e=i+-48|0;r=a[((a[i>>2]&3|0)==2?i:e)+40>>2]|0;if((a[(a[r+16>>2]|0)+232>>2]|0)==(c|0))break;iD(A,r);i=a[a[(a[(a[((a[i>>2]&3|0)==2?i:e)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}while((i|0)!=0);return}function iD(A,e){A=A|0;e=e|0;var i=0.0;i=+((a[(a[A+16>>2]|0)+248>>2]|0)/2|0|0);e=a[e+16>>2]|0;A=e+88|0;s[A>>3]=+s[A>>3]+i;e=e+96|0;s[e>>3]=+s[e>>3]+i;return}function rD(A,e){A=A|0;e=e|0;var i=0,r=0;if(((((A|0)!=0&(e|0)!=0?(r=a[A>>2]&3,i=a[e>>2]&3,(a[((r|0)==3?A:A+48|0)+40>>2]|0)==(a[((i|0)==3?e:e+48|0)+40>>2]|0)):0)?(a[((r|0)==2?A:A+-48|0)+40>>2]|0)==(a[((i|0)==2?e:e+-48|0)+40>>2]|0):0)?(a[(a[A+16>>2]|0)+96>>2]|0)==(a[(a[e+16>>2]|0)+96>>2]|0):0)?(Mz(A,e)|0)!=0:0)A=1;else A=0;return A|0}function fD(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0;d=A+16|0;e=a[d>>2]|0;a[e+192>>2]=0;a[e+232>>2]=0;vD(A);e=1;while(1){i=a[d>>2]|0;if((e|0)>(a[i+180>>2]|0))break;ED(A,a[(a[i+184>>2]|0)+(e<<2)>>2]|0);e=e+1|0}l=cd(A)|0;while(1){if(!l)break;n=Oo(A,l)|0;while(1){if(!n)break;e=a[n>>2]|0;i=(a[(a[((e&3|0)==2?n:n+-48|0)+40>>2]|0)+16>>2]|0)+160|0;f=r[i>>0]|0;if(f<<24>>24<3){r[i>>0]=f+1<<24>>24;e=a[n>>2]|0}e=(a[(a[((e&3|0)==3?n:n+48|0)+40>>2]|0)+16>>2]|0)+160|0;i=r[e>>0]|0;if(i<<24>>24<3)r[e>>0]=i+1<<24>>24;n=_o(A,n)|0}l=sd(A,l)|0}u=cd(A)|0;while(1){if(!u)break;if((a[(a[u+16>>2]|0)+212>>2]|0)==0?(u|0)==(CR(u)|0):0){Ly(A,u);b=(a[d>>2]|0)+232|0;a[b>>2]=(a[b>>2]|0)+1}e=0;b=Oo(A,u)|0;while(1){if(!b)break;s=b+16|0;l=a[s>>2]|0;A:do{if(!(a[l+172>>2]|0)){if(aD(b)|0){if(!(rD(e,b)|0)){nD(A,b);e=b;break}i=a[(a[e+16>>2]|0)+172>>2]|0;if(i|0){eD(A,b,i,0);Iy(b);break}s=a[b>>2]&3;if((a[(a[(a[((s|0)==3?b:b+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)!=(a[(a[(a[((s|0)==2?b:b+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0))break;Fy(b,e);Iy(b);break}if(e){t=a[b>>2]&3;i=b+48|0;f=a[((t|0)==3?b:i)+40>>2]|0;n=a[e>>2]&3;if((f|0)==(a[((n|0)==3?e:e+48|0)+40>>2]|0)?(w=a[((t|0)==2?b:b+-48|0)+40>>2]|0,(w|0)==(a[((n|0)==2?e:e+-48|0)+40>>2]|0)):0){if((a[(a[f+16>>2]|0)+232>>2]|0)==(a[(a[w+16>>2]|0)+232>>2]|0)){Fy(b,e);Iy(b);break}if(((a[l+96>>2]|0)==0?(k=e+16|0,(a[(a[k>>2]|0)+96>>2]|0)==0):0)?(Mz(b,e)|0)!=0:0)if(!(r[194954]|0)){eD(A,b,a[(a[k>>2]|0)+172>>2]|0,1);Iy(b);break}else{r[(a[s>>2]|0)+112>>0]=6;break}else t=i}else t=i}else t=b+48|0;l=a[b>>2]&3;i=a[((l|0)==3?b:t)+40>>2]|0;c=b+-48|0;if((i|0)==(a[((l|0)==2?b:c)+40>>2]|0)){Iy(b);e=b;break}i=CR(i)|0;f=CR(a[((a[b>>2]&3|0)==2?b:c)+40>>2]|0)|0;l=a[b>>2]&3;if((a[((l|0)==3?b:t)+40>>2]|0)==(i|0)?(a[((l|0)==2?b:c)+40>>2]|0)==(f|0):0){n=a[(a[i+16>>2]|0)+232>>2]|0;l=a[(a[f+16>>2]|0)+232>>2]|0;if((n|0)==(l|0)){Dy(A,b);e=b;break}if((l|0)>(n|0)){lD(A,i,f,b);e=b;break}i=th(A,f,i,0,0)|0;do{if(i|0?(o=a[i>>2]&3,h=a[((o|0)==2?i:i+-48|0)+40>>2]|0,(h|0)!=(a[((a[b>>2]&3|0)==2?b:c)+40>>2]|0)):0){f=i+16|0;if(!(a[(a[f>>2]|0)+172>>2]|0))lD(A,a[((o|0)==3?i:i+48|0)+40>>2]|0,h,i);if((a[(a[s>>2]|0)+96>>2]|0)==0?(a[(a[f>>2]|0)+96>>2]|0)==0:0){if(!(Mz(b,i)|0))break;if(!(r[194954]|0)){Iy(b);eD(A,b,a[(a[f>>2]|0)+172>>2]|0,1);break A}else{r[(a[s>>2]|0)+112>>0]=6;r[(a[f>>2]|0)+153>>0]=1;break A}}}}while(0);e=a[b>>2]&3;lD(A,a[((e|0)==2?b:c)+40>>2]|0,a[((e|0)==3?b:t)+40>>2]|0,b);e=b}}else e=b}while(0);b=_o(A,b)|0}u=sd(A,u)|0}if((vL(A)|0)!=(A|0)){e=a[(a[d>>2]|0)+216>>2]|0;if(!e)e=$F(4)|0;else e=eV(e,4)|0;d=a[d>>2]|0;a[d+216>>2]=e;a[e>>2]=a[d+192>>2]}return}function aD(A){A=A|0;var e=0;e=a[A>>2]&3;if((r[(a[(a[((e|0)==3?A:A+48|0)+40>>2]|0)+16>>2]|0)+159>>0]|0)==7)A=1;else A=(r[(a[(a[((e|0)==2?A:A+-48|0)+40>>2]|0)+16>>2]|0)+159>>0]|0)==7&1;return A|0}function nD(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0;f=sD(a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)|0;n=sD(a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)|0;t=(a[(a[f+16>>2]|0)+232>>2]|0)>(a[(a[n+16>>2]|0)+232>>2]|0);i=t?f:n;f=t?n:f;n=f+16|0;t=i+16|0;A:do{if((a[(a[n>>2]|0)+212>>2]|0)!=(a[(a[t>>2]|0)+212>>2]|0)){l=dy(f,i)|0;if(l|0){eD(A,e,l,1);break}if((a[(a[n>>2]|0)+232>>2]|0)!=(a[(a[t>>2]|0)+232>>2]|0)){lD(A,f,i,e);i=(a[e+16>>2]|0)+172|0;while(1){i=a[i>>2]|0;if(!i)break A;f=i+-48|0;if((a[(a[(a[((a[i>>2]&3|0)==2?i:f)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(a[(a[t>>2]|0)+232>>2]|0))break A;r[(a[i+16>>2]|0)+112>>0]=5;i=a[(a[(a[((a[i>>2]&3|0)==2?i:f)+40>>2]|0)+16>>2]|0)+180>>2]|0}}}}while(0);return}function lD(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,s=0;s=r+16|0;f=a[s>>2]|0;if(!(a[f+96>>2]|0))c=-1;else c=((a[(a[i+16>>2]|0)+232>>2]|0)+(a[(a[e+16>>2]|0)+232>>2]|0)|0)/2|0;if(a[f+172>>2]|0)gA(87636,87615,89,87661);t=i+16|0;l=a[(a[e+16>>2]|0)+232>>2]|0;while(1){n=l+1|0;f=a[(a[t>>2]|0)+232>>2]|0;if((l|0)>=(f|0))break;if((n|0)<(f|0)){if((n|0)==(c|0))f=tD(A,r)|0;else f=cD(A)|0;a[(a[f+16>>2]|0)+232>>2]=n}else f=i;SW(Qy(e,f,r)|0);l=n;e=f}if(!(a[(a[s>>2]|0)+172>>2]|0))gA(87672,87615,103,87661);else return}function tD(A,e){A=A|0;e=e|0;var i=0.0,f=0.0,n=0,l=0,t=0.0;l=e+16|0;n=a[(a[l>>2]|0)+96>>2]|0;i=+s[n+24>>3];f=+s[n+32>>3];n=Yy(A)|0;e=n+16|0;a[(a[e>>2]|0)+104>>2]=a[(a[l>>2]|0)+96>>2];t=+(a[(a[(Zd(n)|0)+16>>2]|0)+248>>2]|0);s[(a[e>>2]|0)+88>>3]=t;if(!(r[(a[l>>2]|0)+114>>0]|0)){A=(a[(a[(Zd(A)|0)+16>>2]|0)+116>>2]&1|0)==0;l=a[e>>2]|0;s[l+80>>3]=A?f:i;s[l+96>>3]=A?i:f}return n|0}function cD(A){A=A|0;var e=0;e=Yy(A)|0;iD(A,e);return e|0}function sD(A){A=A|0;var e=0;e=a[A+16>>2]|0;if((r[e+159>>0]|0)==7)A=a[(a[(a[(a[e+212>>2]|0)+16>>2]|0)+268>>2]|0)+(a[e+232>>2]<<2)>>2]|0;else A=CR(A)|0;return A|0}function bD(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0;c=vL(A)|0;l=cd(A)|0;while(1){if(!l)break;e=Ah(c,l)|0;t=0;while(1){if(!e)break;b=eh(c,e,l)|0;if(Dd(A,e)|0){s=t;e=b;t=s;continue}s=(a[e>>2]&3|0)==2?e:e+-48|0;u=(rD(t,s)|0)==0;r=a[s>>2]&3;e=a[((r|0)==3?s:s+48|0)+40>>2]|0;i=a[(a[e+16>>2]|0)+232>>2]|0;r=a[((r|0)==2?s:s+-48|0)+40>>2]|0;f=a[(a[r+16>>2]|0)+232>>2]|0;n=(i|0)==(f|0);if(!u){a[(a[s+16>>2]|0)+172>>2]=n?t:0;e=a[(a[t+16>>2]|0)+172>>2]|0;if(!e){u=t;e=b;t=u;continue}eD(A,s,e,0);Zy(s);u=t;e=b;t=u;continue}if(!n)if((f|0)>(i|0)){uD(e,r,s);e=b;t=s;continue}else{uD(r,e,s);e=b;t=s;continue}e=gy(e,r)|0;if(!e){Dy(c,s);e=b;t=s;continue}if((s|0)==(e|0)){u=t;e=b;t=u;continue}Zy(s);if(a[(a[s+16>>2]|0)+172>>2]|0){u=t;e=b;t=u;continue}Fy(s,e);u=t;e=b;t=u}l=sd(A,l)|0}return}function uD(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;f=wD(A)|0;r=wD(e)|0;kD(f,r,i,a[(a[i+16>>2]|0)+172>>2]|0,(f|0)==(A|0)&(r|0)==(e|0)?1:5);return}function wD(A){A=A|0;var e=0,i=0,f=0;e=a[A+16>>2]|0;i=a[e+212>>2]|0;if((i|0)!=0?(f=a[i+16>>2]|0,(r[f+272>>0]|0)==0):0)A=a[(a[f+268>>2]|0)+(a[e+232>>2]<<2)>>2]|0;return A|0}function kD(A,e,i,n,l){A=A|0;e=e|0;i=i|0;n=n|0;l=l|0;var t=0,c=0,s=0,b=0,u=0,w=0,k=0;w=A+16|0;s=a[(a[w>>2]|0)+232>>2]|0;k=e+16|0;t=a[(a[k>>2]|0)+232>>2]|0;if((t|0)<=(s|0))gA(87697,87725,81,87735);u=a[n>>2]&3;if(!((a[((u|0)==3?n:n+48|0)+40>>2]|0)==(A|0)?(a[((u|0)==2?n:n+-48|0)+40>>2]|0)==(e|0):0))b=5;A:do{if((b|0)==5){if((f[(a[n+16>>2]|0)+168>>1]|0)>1){a[(a[i+16>>2]|0)+172>>2]=0;if(((t-s|0)==1?(c=dy(A,e)|0,c|0):0)?Mz(i,c)|0:0){Fy(i,c);if(r[(a[w>>2]|0)+156>>0]|0)break;if(r[(a[k>>2]|0)+156>>0]|0)break;Iy(i);break}u=l&255;l=A;b=a[(a[w>>2]|0)+232>>2]|0;while(1){t=a[(a[k>>2]|0)+232>>2]|0;if((b|0)>=(t|0))break A;if((b|0)<(t+-1|0)){t=vL(A)|0;c=n+-48|0;t=oD(t,a[((a[n>>2]&3|0)==2?n:c)+40>>2]|0)|0;s=n}else{t=e;c=n+-48|0;s=n}r[(a[(Qy(l,t,i)|0)+16>>2]|0)+112>>0]=u;w=(a[n+16>>2]|0)+168|0;f[w>>1]=(f[w>>1]|0)+-1<<16>>16;l=t;b=b+1|0;n=a[a[(a[(a[((a[s>>2]&3|0)==2?n:c)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}}do{if((t-s|0)==1){n=dy(A,e)|0;if(n|0?Mz(i,n)|0:0){a[(a[i+16>>2]|0)+172>>2]=n;u=a[n+16>>2]|0;r[u+112>>0]=l;u=u+168|0;f[u>>1]=(f[u>>1]|0)+1<<16>>16;if(r[(a[w>>2]|0)+156>>0]|0)break;if(r[(a[k>>2]|0)+156>>0]|0)break;Iy(i);break}a[(a[i+16>>2]|0)+172>>2]=0;n=Qy(A,e,i)|0;r[(a[n+16>>2]|0)+112>>0]=l}}while(0);t=a[(a[k>>2]|0)+232>>2]|0;if((t-(a[(a[w>>2]|0)+232>>2]|0)|0)>1){if((a[((a[n>>2]&3|0)==3?n:n+48|0)+40>>2]|0)==(A|0))b=t;else{w=i+16|0;a[(a[w>>2]|0)+172>>2]=0;b=Qy(A,a[((a[n>>2]&3|0)==2?n:n+-48|0)+40>>2]|0,i)|0;a[(a[w>>2]|0)+172>>2]=b;Cy(n);n=b;b=a[(a[k>>2]|0)+232>>2]|0}while(1){t=a[n>>2]&3;c=a[((t|0)==2?n:n+-48|0)+40>>2]|0;s=a[c+16>>2]|0;if((a[s+232>>2]|0)==(b|0))break;n=a[a[s+180>>2]>>2]|0}if((c|0)!=(e|0)){r[(a[(Qy(a[((t|0)==3?n:n+48|0)+40>>2]|0,e,i)|0)+16>>2]|0)+112>>0]=l;Cy(n)}}}}while(0);return}function oD(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;i=e+16|0;e=a[i>>2]|0;r=a[e+232>>2]|0;hD(A,r,a[e+236>>2]|0,2);e=Yy(A)|0;i=a[i>>2]|0;f=a[e+16>>2]|0;s[f+88>>3]=+s[i+88>>3];s[f+96>>3]=+s[i+96>>3];a[f+232>>2]=a[i+232>>2];i=(a[i+236>>2]|0)+1|0;a[f+236>>2]=i;a[(a[(a[(a[A+16>>2]|0)+196>>2]|0)+(r<<6)+4>>2]|0)+(i<<2)>>2]=e;return e|0}function hD(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0;l=A+16|0;f=a[(a[l>>2]|0)+196>>2]|0;t=a[f+(e<<6)+4>>2]|0;A:do{if((r|0)<1){i=i-r|0;while(1){n=i+1|0;A=a[f+(e<<6)>>2]|0;if((n|0)>=(A|0))break;A=a[t+(n<<2)>>2]|0;f=i+r|0;a[(a[A+16>>2]|0)+236>>2]=f;a[t+(f<<2)>>2]=A;i=n;f=a[(a[l>>2]|0)+196>>2]|0}n=r+-1|0;i=n+A|0;while(1){if((i|0)>=(A|0))break A;a[t+(i<<2)>>2]=0;f=a[(a[l>>2]|0)+196>>2]|0;i=i+1|0;A=a[f+(e<<6)>>2]|0}}else{n=r+-1|0;A=a[f+(e<<6)>>2]|0;while(1){A=A+-1|0;if((A|0)<=(i|0))break;c=a[t+(A<<2)>>2]|0;f=n+A|0;a[(a[c+16>>2]|0)+236>>2]=f;a[t+(f<<2)>>2]=c}f=r+i|0;A=i;while(1){A=A+1|0;if((A|0)>=(f|0))break;a[t+(A<<2)>>2]=0}A=a[(a[l>>2]|0)+196>>2]|0;f=A;A=a[A+(e<<6)>>2]|0}}while(0);a[f+(e<<6)>>2]=n+A;return}function dD(A){A=A|0;var e=0;fD(A);e=a[A+16>>2]|0;a[e+220>>2]=1;a[a[e+216>>2]>>2]=a[e+192>>2];TW(A);ZW(A,0);BD(A);bD(A);gD(A);return}function BD(A){A=A|0;var e=0,i=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0;s=vL(A)|0;b=A+16|0;i=a[b>>2]|0;c=f[i+236>>1]|0;e=c<<16>>16;u=s+16|0;if(c<<16>>16>0)r[(a[(a[u>>2]|0)+196>>2]|0)+(e+-1<<6)+49>>0]=0;c=e;while(1){if((c|0)>(f[i+238>>1]|0))break;t=a[(a[(a[(a[i+268>>2]|0)+(c<<2)>>2]|0)+16>>2]|0)+236>>2]|0;hD(s,c,t,a[(a[i+196>>2]|0)+(c<<6)>>2]|0);n=0;l=t;while(1){i=a[b>>2]|0;e=a[i+196>>2]|0;if((n|0)>=(a[e+(c<<6)>>2]|0))break;e=a[(a[e+(c<<6)+4>>2]|0)+(n<<2)>>2]|0;a[(a[(a[(a[u>>2]|0)+196>>2]|0)+(c<<6)+4>>2]|0)+(l<<2)>>2]=e;i=a[e+16>>2]|0;a[i+236>>2]=l;if((r[i+156>>0]|0)==1)a[e+24>>2]=Zd(s)|0;Wy(A,e);Ly(s,e);i=(a[u>>2]|0)+232|0;a[i>>2]=(a[i>>2]|0)+1;n=n+1|0;l=l+1|0}l=a[(a[u>>2]|0)+196>>2]|0;a[e+(c<<6)+4>>2]=(a[l+(c<<6)+4>>2]|0)+(t<<2);r[l+(c<<6)+49>>0]=0;c=c+1|0}e=a[u>>2]|0;if((c|0)<(f[e+238>>1]|0))r[(a[e+196>>2]|0)+(c<<6)+49>>0]=0;r[i+272>>0]=1;return}function gD(A){A=A|0;var e=0,i=0,r=0,n=0,l=0,t=0;t=A+16|0;e=a[t>>2]|0;l=f[e+236>>1]|0;while(1){if((l|0)>(f[e+238>>1]|0))break;r=a[(a[e+268>>2]|0)+(l<<2)>>2]|0;n=r+16|0;while(1){e=a[n>>2]|0;i=a[a[e+180>>2]>>2]|0;if(!i)break;Cy(i)}while(1){e=a[a[e+172>>2]>>2]|0;if(!e)break;Cy(e);e=a[n>>2]|0}Wy(vL(A)|0,r);a[(a[(a[t>>2]|0)+268>>2]|0)+(l<<2)>>2]=0;l=l+1|0;e=a[t>>2]|0}return}function vD(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;w=k;k=k+16|0;u=w;f=cd(A)|0;while(1){if(!f)break;i=f+16|0;e=a[i>>2]|0;if((r[e+159>>0]|0)==7){ZR(f);e=a[i>>2]|0}a[e+212>>2]=0;f=sd(A,f)|0}b=A+16|0;s=1;while(1){e=a[b>>2]|0;if((s|0)>(a[e+180>>2]|0))break;l=a[(a[e+184>>2]|0)+(s<<2)>>2]|0;t=l+16|0;e=cd(l)|0;A:while(1){if(!e)break;c=sd(l,e)|0;i=e+16|0;if(r[(a[i>>2]|0)+159>>0]|0){f=Vh(e)|0;n=Vh(A)|0;a[u>>2]=f;a[u+4>>2]=n;ao(0,87744,u)|0;Cd(l,e)|0;e=c;continue}GR(e,a[(a[t>>2]|0)+264>>2]|0);n=a[i>>2]|0;a[n+212>>2]=l;r[n+159>>0]=7;n=Oo(l,e)|0;while(1){if(!n){e=c;continue A}e=a[(a[n+16>>2]|0)+172>>2]|0;e:do{if(e|0)do{i=e+-48|0;f=a[(a[((a[e>>2]&3|0)==2?e:i)+40>>2]|0)+16>>2]|0;if((r[f+156>>0]|0)!=1)break e;a[f+212>>2]=l;e=a[a[(a[(a[((a[e>>2]&3|0)==2?e:i)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}while((e|0)!=0)}while(0);n=_o(l,n)|0}}s=s+1|0}k=w;return}function ED(A,e){A=A|0;e=e|0;var i=0,n=0,l=0,t=0,c=0,s=0;s=e+16|0;n=qF((f[(a[s>>2]|0)+238>>1]<<2)+8|0)|0;i=a[s>>2]|0;a[i+268>>2]=n;n=0;l=f[i+236>>1]|0;while(1){if((l|0)>(f[i+238>>1]|0))break;i=Yy(A)|0;a[(a[(a[s>>2]|0)+268>>2]|0)+(l<<2)>>2]=i;c=a[i+16>>2]|0;a[c+232>>2]=l;r[c+159>>0]=7;a[c+212>>2]=e;if(n|0){c=(a[(Qy(n,i,0)|0)+16>>2]|0)+154|0;f[c>>1]=(f[c>>1]|0)*1e3}n=i;l=l+1|0;i=a[s>>2]|0}c=cd(e)|0;while(1){i=a[s>>2]|0;if(!c)break;l=(a[(a[i+268>>2]|0)+(a[(a[c+16>>2]|0)+232>>2]<<2)>>2]|0)+16|0;i=(a[l>>2]|0)+216|0;a[i>>2]=(a[i>>2]|0)+1;i=Oo(e,c)|0;while(1){if(!i)break;t=a[i>>2]|0;A=i+-48|0;n=a[(a[(a[((t&3|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;while(1){if((n|0)>=(a[(a[(a[((t&3|0)==2?i:A)+40>>2]|0)+16>>2]|0)+232>>2]|0))break;t=(a[(a[a[(a[l>>2]|0)+180>>2]>>2]|0)+16>>2]|0)+168|0;f[t>>1]=(f[t>>1]|0)+1<<16>>16;n=n+1|0;t=a[i>>2]|0}i=_o(e,i)|0}c=sd(e,c)|0}A=f[i+238>>1]|0;t=i+268|0;i=f[i+236>>1]|0;while(1){if((i|0)>(A|0))break;n=(a[(a[(a[t>>2]|0)+(i<<2)>>2]|0)+16>>2]|0)+216|0;l=a[n>>2]|0;if((l|0)>1)a[n>>2]=l+-1;i=i+1|0}return}function CD(A,e,i,n){A=A|0;e=e|0;i=i|0;n=n|0;var l=0,t=0,c=0,s=0;s=(a[(a[e+16>>2]|0)+212>>2]|0)+16|0;e=a[s>>2]|0;c=i+1|0;if((c|0)!=(r[e+273>>0]|0)){t=f[e+236>>1]|0;while(1){l=f[e+238>>1]|0;if((t|0)>(l<<16>>16|0))break;NW(A,a[(a[e+268>>2]|0)+(t<<2)>>2]|0);t=t+1|0;e=a[s>>2]|0}t=f[e+236>>1]|0;while(1){if((t|0)>(l<<16>>16|0))break;RW(n,a[(a[e+268>>2]|0)+(t<<2)>>2]|0,i);A=a[s>>2]|0;t=t+1|0;l=f[A+238>>1]|0;e=A}r[e+273>>0]=c}return}function ID(A){A=A|0;var e=0,i=0,f=0,n=0,l=0;l=cd(A)|0;while(1){if(!l)break;a[(a[l+16>>2]|0)+212>>2]=0;n=Oo(A,l)|0;while(1){if(!n)break;e=a[(a[n+16>>2]|0)+172>>2]|0;A:do{if(e|0)do{i=e+-48|0;f=a[(a[((a[e>>2]&3|0)==2?e:i)+40>>2]|0)+16>>2]|0;if((r[f+156>>0]|0)!=1)break A;a[f+212>>2]=0;e=a[a[(a[(a[((a[e>>2]&3|0)==2?e:i)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}while((e|0)!=0)}while(0);n=_o(A,n)|0}l=sd(A,l)|0}ZD(A);return}function ZD(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0;i=A+16|0;e=1;while(1){f=a[i>>2]|0;if((e|0)>(a[f+180>>2]|0))break;ZD(a[(a[f+184>>2]|0)+(e<<2)>>2]|0);e=e+1|0}t=cd(A)|0;while(1){if(!t)break;e=(a[t+16>>2]|0)+212|0;if(!(a[e>>2]|0))a[e>>2]=A;l=Oo(A,t)|0;while(1){if(!l)break;e=a[(a[l+16>>2]|0)+172>>2]|0;A:do{if(e|0)do{i=a[e>>2]|0;n=e+-48|0;f=a[(a[((i&3|0)==2?e:n)+40>>2]|0)+16>>2]|0;if((r[f+156>>0]|0)!=1)break A;f=f+212|0;if(!(a[f>>2]|0)){a[f>>2]=A;i=a[e>>2]|0}e=a[a[(a[(a[((i&3|0)==2?e:n)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}while((e|0)!=0)}while(0);l=_o(A,l)|0}t=sd(A,t)|0}return}function GD(A){A=A|0;var e=0,i=0,r=0;r=_R(A)|0;i=cd(A)|0;while(1){if(!i)break;e=Oo(A,i)|0;while(1){if(!e)break;mD(e,r);e=_o(A,e)|0}i=sd(A,i)|0}Hk(r)|0;return}function mD(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0;p=k;k=k+320|0;D=p+296|0;Y=p+280|0;I=p+136|0;C=p+120|0;u=p+104|0;t=p+88|0;f=p+80|0;W=p+16|0;G=p;c=p+264|0;s=p+248|0;b=p+232|0;w=p+216|0;m=p+200|0;Q=p+184|0;Z=p+168|0;y=p+152|0;n=QD(Ho(A,87798)|0,e)|0;h=QD(Ho(A,87804)|0,e)|0;d=(h|0)!=0;e=(n|0)!=0;do{if(e|d?(J=A+16|0,r=a[(a[J>>2]|0)+8>>2]|0,r|0):0){if((a[r+4>>2]|0)>1){V=Vh(a[((a[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0)|0;J=Vh(a[((a[A>>2]&3|0)==2?A:A+-48|0)+40>>2]|0)|0;a[f>>2]=V;a[f+4>>2]=J;ao(0,87810,f)|0;break}M=a[r>>2]|0;r=a[M+4>>2]|0;o=a[A>>2]&3;B=A+-48|0;g=a[((o|0)==2?A:B)+40>>2]|0;v=A+48|0;o=a[((o|0)==3?A:v)+40>>2]|0;F=$F(48)|0;E=M+12|0;a[F+12>>2]=a[E>>2];L=M+8|0;a[F+8>>2]=a[L>>2];do{if(e){l=(a[n+16>>2]|0)+16|0;n=(a[g+16>>2]|0)+16|0;a[D>>2]=a[n>>2];a[D+4>>2]=a[n+4>>2];a[D+8>>2]=a[n+8>>2];a[D+12>>2]=a[n+12>>2];if(!(LD(D,l)|0)){w=Vh(a[((a[A>>2]&3|0)==3?A:v)+40>>2]|0)|0;z=Vh(a[((a[A>>2]&3|0)==2?A:B)+40>>2]|0)|0;V=Ho(A,87798)|0;a[t>>2]=w;a[t+4>>2]=z;a[t+8>>2]=V;ao(0,87851,t)|0;V=26;break}e=a[M>>2]|0;a[D>>2]=a[e>>2];a[D+4>>2]=a[e+4>>2];a[D+8>>2]=a[e+8>>2];a[D+12>>2]=a[e+12>>2];if(LD(D,l)|0){z=(a[o+16>>2]|0)+16|0;a[D>>2]=a[z>>2];a[D+4>>2]=a[z+4>>2];a[D+8>>2]=a[z+8>>2];a[D+12>>2]=a[z+12>>2];if(LD(D,l)|0){w=Vh(a[((a[A>>2]&3|0)==3?A:v)+40>>2]|0)|0;z=Vh(a[((a[A>>2]&3|0)==2?A:B)+40>>2]|0)|0;V=Ho(A,87798)|0;a[u>>2]=w;a[u+4>>2]=z;a[u+8>>2]=V;ao(0,87894,u)|0;V=26;break}if(!(a[L>>2]|0))gA(87936,87947,369,87958);w=M+16|0;a[Y>>2]=a[e>>2];a[Y+4>>2]=a[e+4>>2];a[Y+8>>2]=a[e+8>>2];a[Y+12>>2]=a[e+12>>2];a[D>>2]=a[w>>2];a[D+4>>2]=a[w+4>>2];a[D+8>>2]=a[w+8>>2];a[D+12>>2]=a[w+12>>2];yD(G,Y,D,l);z=(a[M>>2]|0)+48|0;a[z>>2]=a[G>>2];a[z+4>>2]=a[G+4>>2];a[z+8>>2]=a[G+8>>2];a[z+12>>2]=a[G+12>>2];z=(a[M>>2]|0)+16|0;a[Y>>2]=a[G>>2];a[Y+4>>2]=a[G+4>>2];a[Y+8>>2]=a[G+8>>2];a[Y+12>>2]=a[G+12>>2];a[D>>2]=a[w>>2];a[D+4>>2]=a[w+4>>2];a[D+8>>2]=a[w+8>>2];a[D+12>>2]=a[w+12>>2];WD(c,Y,D);a[z>>2]=a[c>>2];a[z+4>>2]=a[c+4>>2];a[z+8>>2]=a[c+8>>2];a[z+12>>2]=a[c+12>>2];z=a[M>>2]|0;e=z+16|0;a[Y>>2]=a[e>>2];a[Y+4>>2]=a[e+4>>2];a[Y+8>>2]=a[e+8>>2];a[Y+12>>2]=a[e+12>>2];a[D>>2]=a[w>>2];a[D+4>>2]=a[w+4>>2];a[D+8>>2]=a[w+8>>2];a[D+12>>2]=a[w+12>>2];WD(s,Y,D);a[z>>2]=a[s>>2];a[z+4>>2]=a[s+4>>2];a[z+8>>2]=a[s+8>>2];a[z+12>>2]=a[s+12>>2];z=a[M>>2]|0;e=z+32|0;z=z+16|0;a[Y>>2]=a[z>>2];a[Y+4>>2]=a[z+4>>2];a[Y+8>>2]=a[z+8>>2];a[Y+12>>2]=a[z+12>>2];a[D>>2]=a[G>>2];a[D+4>>2]=a[G+4>>2];a[D+8>>2]=a[G+8>>2];a[D+12>>2]=a[G+12>>2];WD(b,Y,D);a[e>>2]=a[b>>2];a[e+4>>2]=a[b+4>>2];a[e+8>>2]=a[b+8>>2];a[e+12>>2]=a[b+12>>2];e=a[E>>2]|0;if(!e){z=3;break}z=(jC(A,a[M>>2]|0,0,0,F,e)|0)+3|0;break}n=r+-1|0;e=0;while(1){if((e|0)>=(n|0))break;if(zD((a[M>>2]|0)+(e<<4)|0,l)|0)break;e=e+3|0}r=a[E>>2]|0;f=(r|0)!=0;if((e|0)==(n|0))if(f){z=F+32|0;b=M+32|0;u=(a[M>>2]|0)+(n<<4)|0;a[Y>>2]=a[b>>2];a[Y+4>>2]=a[b+4>>2];a[Y+8>>2]=a[b+8>>2];a[Y+12>>2]=a[b+12>>2];a[D>>2]=a[u>>2];a[D+4>>2]=a[u+4>>2];a[D+8>>2]=a[u+8>>2];a[D+12>>2]=a[u+12>>2];yD(w,Y,D,l);a[z>>2]=a[w>>2];a[z+4>>2]=a[w+4>>2];a[z+8>>2]=a[w+8>>2];a[z+12>>2]=a[w+12>>2];z=n;break}else gA(87975,87947,387,87958);else{if(f)e=jC(A,a[M>>2]|0,0,e,F,r)|0;z=e+3|0;break}}else V=26}while(0);if((V|0)==26){e=r+-1|0;if(!(a[E>>2]|0))z=e;else{z=F+32|0;w=M+32|0;a[z>>2]=a[w>>2];a[z+4>>2]=a[w+4>>2];a[z+8>>2]=a[w+8>>2];a[z+12>>2]=a[w+12>>2];z=e}}do{if(d){f=(a[h+16>>2]|0)+16|0;d=(a[o+16>>2]|0)+16|0;a[D>>2]=a[d>>2];a[D+4>>2]=a[d+4>>2];a[D+8>>2]=a[d+8>>2];a[D+12>>2]=a[d+12>>2];if(!(LD(D,f)|0)){Y=Vh(a[((a[A>>2]&3|0)==3?A:v)+40>>2]|0)|0;D=Vh(a[((a[A>>2]&3|0)==2?A:B)+40>>2]|0)|0;V=Ho(A,87804)|0;a[C>>2]=Y;a[C+4>>2]=D;a[C+8>>2]=V;ao(0,87986,C)|0;V=52;break}e=(a[M>>2]|0)+(z<<4)|0;a[D>>2]=a[e>>2];a[D+4>>2]=a[e+4>>2];a[D+8>>2]=a[e+8>>2];a[D+12>>2]=a[e+12>>2];if(LD(D,f)|0){W=(a[g+16>>2]|0)+16|0;a[D>>2]=a[W>>2];a[D+4>>2]=a[W+4>>2];a[D+8>>2]=a[W+8>>2];a[D+12>>2]=a[W+12>>2];if(LD(D,f)|0){Y=Vh(a[((a[A>>2]&3|0)==3?A:v)+40>>2]|0)|0;D=Vh(a[((a[A>>2]&3|0)==2?A:B)+40>>2]|0)|0;V=Ho(A,87804)|0;a[I>>2]=Y;a[I+4>>2]=D;a[I+8>>2]=V;ao(0,88029,I)|0;V=52;break}if(!(a[E>>2]|0))gA(87975,87947,429,87958);I=F+32|0;a[Y>>2]=a[e>>2];a[Y+4>>2]=a[e+4>>2];a[Y+8>>2]=a[e+8>>2];a[Y+12>>2]=a[e+12>>2];a[D>>2]=a[I>>2];a[D+4>>2]=a[I+4>>2];a[D+8>>2]=a[I+8>>2];a[D+12>>2]=a[I+12>>2];yD(G,Y,D,f);i=z+-3|0;W=(a[M>>2]|0)+(i<<4)|0;a[W>>2]=a[G>>2];a[W+4>>2]=a[G+4>>2];a[W+8>>2]=a[G+8>>2];a[W+12>>2]=a[G+12>>2];W=z+-1|0;e=(a[M>>2]|0)+(W<<4)|0;a[Y>>2]=a[G>>2];a[Y+4>>2]=a[G+4>>2];a[Y+8>>2]=a[G+8>>2];a[Y+12>>2]=a[G+12>>2];a[D>>2]=a[I>>2];a[D+4>>2]=a[I+4>>2];a[D+8>>2]=a[I+8>>2];a[D+12>>2]=a[I+12>>2];WD(m,Y,D);a[e>>2]=a[m>>2];a[e+4>>2]=a[m+4>>2];a[e+8>>2]=a[m+8>>2];a[e+12>>2]=a[m+12>>2];e=a[M>>2]|0;y=e+(z<<4)|0;e=e+(W<<4)|0;a[Y>>2]=a[e>>2];a[Y+4>>2]=a[e+4>>2];a[Y+8>>2]=a[e+8>>2];a[Y+12>>2]=a[e+12>>2];a[D>>2]=a[I>>2];a[D+4>>2]=a[I+4>>2];a[D+8>>2]=a[I+8>>2];a[D+12>>2]=a[I+12>>2];WD(Q,Y,D);a[y>>2]=a[Q>>2];a[y+4>>2]=a[Q+4>>2];a[y+8>>2]=a[Q+8>>2];a[y+12>>2]=a[Q+12>>2];y=a[M>>2]|0;e=y+(z+-2<<4)|0;W=y+(W<<4)|0;a[Y>>2]=a[W>>2];a[Y+4>>2]=a[W+4>>2];a[Y+8>>2]=a[W+8>>2];a[Y+12>>2]=a[W+12>>2];a[D>>2]=a[G>>2];a[D+4>>2]=a[G+4>>2];a[D+8>>2]=a[G+8>>2];a[D+12>>2]=a[G+12>>2];WD(Z,Y,D);a[e>>2]=a[Z>>2];a[e+4>>2]=a[Z+4>>2];a[e+8>>2]=a[Z+8>>2];a[e+12>>2]=a[Z+12>>2];e=a[L>>2]|0;if(!e)break;i=SC(A,a[M>>2]|0,i,i,F,e)|0;break}r=z;while(1){if((r|0)>0)e=0;else break;while(1){if((e|0)==4)break;Q=W+(e<<4)|0;m=(a[M>>2]|0)+(r-e<<4)|0;a[Q>>2]=a[m>>2];a[Q+4>>2]=a[m+4>>2];a[Q+8>>2]=a[m+8>>2];a[Q+12>>2]=a[m+12>>2];e=e+1|0}if(zD(W,f)|0){e=0;V=43;break}r=r+-3|0}A:do{if((V|0)==43)while(1){V=0;if((e|0)==4)break A;V=(a[M>>2]|0)+(r-e<<4)|0;Q=W+(e<<4)|0;a[V>>2]=a[Q>>2];a[V+4>>2]=a[Q+4>>2];a[V+8>>2]=a[Q+8>>2];a[V+12>>2]=a[Q+12>>2];e=e+1|0;V=43}}while(0);if(r|0){i=r+-3|0;e=a[L>>2]|0;if(!e)break;i=SC(A,a[M>>2]|0,i,z+-3|0,F,e)|0;break}if(!(a[L>>2]|0))gA(87936,87947,452,87958);else{i=F+16|0;W=M+16|0;A=a[M>>2]|0;a[Y>>2]=a[W>>2];a[Y+4>>2]=a[W+4>>2];a[Y+8>>2]=a[W+8>>2];a[Y+12>>2]=a[W+12>>2];a[D>>2]=a[A>>2];a[D+4>>2]=a[A+4>>2];a[D+8>>2]=a[A+8>>2];a[D+12>>2]=a[A+12>>2];yD(y,Y,D,f);a[i>>2]=a[y>>2];a[i+4>>2]=a[y+4>>2];a[i+8>>2]=a[y+8>>2];a[i+12>>2]=a[y+12>>2];i=0;break}}else V=52}while(0);if((V|0)==52)if(!(a[L>>2]|0))i=0;else{i=F+16|0;V=M+16|0;a[i>>2]=a[V>>2];a[i+4>>2]=a[V+4>>2];a[i+8>>2]=a[V+8>>2];a[i+12>>2]=a[V+12>>2];i=0}e=z-i+1|0;r=F+4|0;a[r>>2]=e;a[F>>2]=$F(e<<4)|0;e=0;while(1){if((e|0)>=(a[r>>2]|0))break;V=(a[F>>2]|0)+(e<<4)|0;A=(a[M>>2]|0)+(i<<4)|0;a[V>>2]=a[A>>2];a[V+4>>2]=a[A+4>>2];a[V+8>>2]=a[A+8>>2];a[V+12>>2]=a[A+12>>2];i=i+1|0;e=e+1|0}L2(a[M>>2]|0);L2(M);a[a[(a[J>>2]|0)+8>>2]>>2]=F}}while(0);k=p;return}function QD(A,e){A=A|0;e=e|0;var i=0,f=0;f=k;k=k+16|0;i=f;if((A|0)!=0?(r[A>>0]|0)!=0:0){e=$R(e,A)|0;if(!e){a[i>>2]=A;ao(0,88149,i)|0;e=0}}else e=0;k=f;return e|0}function LD(A,e){A=A|0;e=e|0;var i=0.0,r=0.0;r=+s[A>>3];if((+s[e>>3]<=r?r<=+s[e+16>>3]:0)?(i=+s[A+8>>3],+s[e+8>>3]<=i):0)A=i<=+s[e+24>>3]&1;else A=0;return A|0}function yD(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,n=0.0,l=0,t=0.0,c=0.0,b=0.0,u=0,w=0.0,o=0.0,h=0.0,d=0.0,B=0.0,g=0.0,v=0,E=0,C=0,I=0,Z=0.0,G=0,m=0,Q=0,L=0;L=k;k=k+464|0;u=L+48|0;Q=L+32|0;v=L+16|0;E=L;C=L+364|0;I=L+264|0;G=L+164|0;m=L+64|0;h=+s[e>>3];d=+s[e+8>>3];B=+s[i>>3];g=+s[i+8>>3];a[v>>2]=a[r>>2];a[v+4>>2]=a[r+4>>2];a[v+8>>2]=a[r+8>>2];a[v+12>>2]=a[r+12>>2];r=r+16|0;a[E>>2]=a[r>>2];a[E+4>>2]=a[r+4>>2];a[E+8>>2]=a[r+8>>2];a[E+12>>2]=a[r+12>>2];c=+s[v>>3];if((B=+s[v+8>>3]):0)?f<=+s[E+8>>3]:0){w=f;o=c}else l=4;do{if((l|0)==4){t=+s[E>>3];if(B>t){n=d+ +(~~((t-h)*(d-g)/(h-B))|0);f=+s[v+8>>3];if(n>=f?n<=+s[E+8>>3]:0){w=n;o=t;break}}else f=+s[v+8>>3];if(g=c)|!(b<=t))):0){w=f;o=b;break}f=+s[E+8>>3];if(g>f?(Z=h+ +(~~((f-d)*(h-B)/(d-g))|0),!(!(Z>=c)|!(Z<=t))):0){w=f;o=Z;break}a[u>>2]=a[e>>2];a[u+4>>2]=a[e+4>>2];a[u+8>>2]=a[e+8>>2];a[u+12>>2]=a[e+12>>2];C=VD(u,C)|0;a[u>>2]=a[i>>2];a[u+4>>2]=a[i+4>>2];a[u+8>>2]=a[i+8>>2];a[u+12>>2]=a[i+12>>2];I=VD(u,I)|0;a[u>>2]=a[v>>2];a[u+4>>2]=a[v+4>>2];a[u+8>>2]=a[v+8>>2];a[u+12>>2]=a[v+12>>2];G=VD(u,G)|0;a[u>>2]=a[E>>2];a[u+4>>2]=a[E+4>>2];a[u+8>>2]=a[E+8>>2];a[u+12>>2]=a[E+12>>2];m=VD(u,m)|0;a[Q>>2]=C;a[Q+4>>2]=I;a[Q+8>>2]=G;a[Q+12>>2]=m;ao(1,88071,Q)|0;gA(138394,87947,78,88123)}}while(0);s[A>>3]=o;s[A+8>>3]=w;k=L;return}function WD(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0;r=(+s[i+8>>3]+ +s[e+8>>3])*.5;s[A>>3]=(+s[i>>3]+ +s[e>>3])*.5;s[A+8>>3]=r;return}function zD(A,e){A=A|0;e=e|0;var i=0.0,r=0,f=0.0,n=0,l=0,t=0,c=0,b=0;b=k;k=k+80|0;t=b+16|0;c=b;r=0;while(1){if((r|0)==4)break;l=t+(r<<4)|0;n=A+(r<<4)|0;a[l>>2]=a[n>>2];a[l+4>>2]=a[n+4>>2];a[l+8>>2]=a[n+8>>2];a[l+12>>2]=a[n+12>>2];r=r+1|0}r=e+8|0;l=e+24|0;i=+YD(A,0.0,1.0,+s[e>>3],+s[r>>3],+s[l>>3]);if(i>=0.0&i<2.0)QR(c,t,3,i,A,0);else i=2.0;n=e+16|0;f=+YD(A,0.0,i>1.0?1.0:i,+s[n>>3],+s[r>>3],+s[l>>3]);if(f>=0.0&f1.0?1.0:i,+s[r>>3],+s[e>>3],+s[n>>3]);if(f>=0.0&f1.0?1.0:i,+s[l>>3],+s[e>>3],+s[n>>3]);if(f>=0.0&f>3]-r))<=.005){e=+s[A+56>>3];e=!(e>=f)|!(e<=a)?-1.0:i;break A}break}default:{}}QR(l,A,3,.5,t,c);n=(i+e)*.5;e=+YD(t,e,n,r,f,a);if(!(e>=0.0))e=+YD(c,n,i,r,f,a)}}while(0);k=b;return+e}function DD(A,e,i,r,f,a){A=A|0;e=+e;i=+i;r=+r;f=+f;a=+a;var n=0.0,l=0,t=0,c=0,b=0;b=k;k=k+144|0;t=b+80|0;c=b+16|0;l=b;A:do{if(!(e==i)){switch(MD(A,r)|0){case 0:{e=-1.0;break A}case 1:{if(+W(+(+s[A+56>>3]-r))<=.005){e=+s[A+48>>3];e=!(e>=f)|!(e<=a)?-1.0:i;break A}break}default:{}}QR(l,A,3,.5,t,c);n=(i+e)*.5;e=+DD(t,e,n,r,f,a);if(!(e>=0.0))e=+DD(c,n,i,r,f,a)}}while(0);k=b;return+e}function MD(A,e){A=A|0;e=+e;var i=0,r=0,f=0,a=0.0,n=0,l=0;a=+s[A+8>>3];f=ae&1;i=1;r=f;f=(f|0)==0&1;while(1){if((i|0)==4)break;a=+s[A+(i<<4)+8>>3];l=ae&1;n=f+((r|0)!=0&(l|0)!=(r|0)&1)|0;i=i+1|0;r=l;f=n}return f|0}function FD(A,e){A=A|0;e=+e;var i=0,r=0,f=0,a=0.0,n=0,l=0;a=+s[A>>3];f=ae&1;i=1;r=f;f=(f|0)==0&1;while(1){if((i|0)==4)break;a=+s[A+(i<<4)>>3];l=ae&1;n=f+((r|0)!=0&(l|0)!=(r|0)&1)|0;i=i+1|0;r=l;f=n}return f|0}function VD(A,e){A=A|0;e=e|0;var i=0,r=0,f=0.0;i=k;k=k+16|0;r=i;f=+s[A+8>>3];s[r>>3]=+s[A>>3];s[r+8>>3]=f;S4(e,88137,r)|0;k=i;return e|0}function JD(A){A=A|0;var e=0,i=0,r=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,g=0,v=0,E=0;E=k;k=k+16|0;h=E;v=4;g=Q2(40)|0;a[g>>2]=0;o=A+16|0;i=a[o>>2]|0;A:do{if(((f[i+238>>1]|0)-(f[i+236>>1]|0)|0)>=2){b=1;e=i;i=a[i+196>>2]|0;e:while(1){u=b+1|0;if(!(a[i+(u<<6)>>2]|0)){w=15;break}else s=0;while(1){l=a[i+(b<<6)>>2]|0;if((s|0)>=(l|0)){b=u;continue e}c=a[(a[i+(b<<6)+4>>2]|0)+(s<<2)>>2]|0;d=0;e=iA(20,c|0)|0;r=d;d=0;if((r|0)!=0&(B|0)!=0){n=y6(a[r>>2]|0,g|0,v|0)|0;if(!n)fe(r|0,B|0);L=B}else n=-1;if((n|0)==1){e=L;break e}if(e<<24>>24){t=s;e=l;while(1){n=t+1|0;if((n|0)>=(e|0))break;d=0;e=rA(65,c|0,a[(a[i+(b<<6)+4>>2]|0)+(n<<2)>>2]|0)|0;i=d;d=0;if((i|0)!=0&(B|0)!=0){r=y6(a[i>>2]|0,g|0,v|0)|0;if(!r)fe(i|0,B|0);L=B}else r=-1;if((r|0)==1){e=L;break e}if(!(e<<24>>24))break;e=a[(a[o>>2]|0)+196>>2]|0;t=n;i=e;e=a[e+(b<<6)>>2]|0}if((n-s|0)>1){d=0;hA(6,A|0,b|0,s|0,t|0,1);e=d;d=0;if((e|0)!=0&(B|0)!=0){i=y6(a[e>>2]|0,g|0,v|0)|0;if(!i)fe(e|0,B|0);L=B}else i=-1;if((i|0)==1){e=L;break e}}}i=a[o>>2]|0;s=s+1|0;e=i;i=a[i+196>>2]|0}}e:do{if((w|0)==15){while(1){if((b|0)>0)s=0;else break;while(1){i=a[e+196>>2]|0;l=a[i+(b<<6)>>2]|0;if((s|0)>=(l|0))break;c=a[(a[i+(b<<6)+4>>2]|0)+(s<<2)>>2]|0;d=0;e=iA(21,c|0)|0;r=d;d=0;if((r|0)!=0&(B|0)!=0){n=y6(a[r>>2]|0,g|0,v|0)|0;if(!n)fe(r|0,B|0);L=B}else n=-1;if((n|0)==1){e=L;break e}if(e<<24>>24){t=s;e=l;while(1){n=t+1|0;if((n|0)>=(e|0))break;d=0;e=rA(66,c|0,a[(a[i+(b<<6)+4>>2]|0)+(n<<2)>>2]|0)|0;i=d;d=0;if((i|0)!=0&(B|0)!=0){r=y6(a[i>>2]|0,g|0,v|0)|0;if(!r)fe(i|0,B|0);L=B}else r=-1;if((r|0)==1){e=L;break e}if(!(e<<24>>24))break;e=a[(a[o>>2]|0)+196>>2]|0;t=n;i=e;e=a[e+(b<<6)>>2]|0}if((n-s|0)>1){d=0;hA(6,A|0,b|0,s|0,t|0,0);e=d;d=0;if((e|0)!=0&(B|0)!=0){i=y6(a[e>>2]|0,g|0,v|0)|0;if(!i)fe(e|0,B|0);L=B}else i=-1;if((i|0)==1){e=L;break e}}}s=s+1|0;e=a[o>>2]|0}b=b+-1|0;w=15}g=L6(187016,1,g|0,v|0)|0;v=L;d=0;e=d;d=0;if((e|0)!=0&(B|0)!=0){i=y6(a[e>>2]|0,g|0,v|0)|0;if(!i)fe(e|0,B|0);L=B}else i=-1;if((i|0)==1)e=L;else e=0}}while(0);e:while(1){if(e){d=0;aA(20,3,88177,h|0)|0;e=d;d=0;if((e|0)!=0&(B|0)!=0){i=y6(a[e>>2]|0,g|0,v|0)|0;if(!i)fe(e|0,B|0);L=B}else i=-1;if((i|0)==1){e=L;continue}else break}else r=1;while(1){e=a[o>>2]|0;if((r|0)>(a[e+180>>2]|0))break A;d=0;bA(101,a[(a[e+184>>2]|0)+(r<<2)>>2]|0);e=d;d=0;if((e|0)!=0&(B|0)!=0){i=y6(a[e>>2]|0,g|0,v|0)|0;if(!i)fe(e|0,B|0);L=B}else i=-1;if((i|0)==1){e=L;continue e}r=r+1|0}}}}while(0);L2(g|0);k=E;return}function pD(A){A=A|0;A=a[A+16>>2]|0;if(((r[A+156>>0]|0)==1?(a[A+176>>2]|0)==1:0)?(a[A+184>>2]|0)==1:0)A=(a[A+104>>2]|0)==0&1;else A=0;return A|0}function ND(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;t=k;k=k+80|0;l=t+40|0;n=t;r=a[a[(a[A+16>>2]|0)+172>>2]>>2]|0;A=a[a[(a[e+16>>2]|0)+172>>2]>>2]|0;if(((pD(e)|0)<<24>>24!=0?(a[((a[r>>2]&3|0)==3?r:r+48|0)+40>>2]|0)==(a[((a[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0):0)?(TD(r,A)|0)<<24>>24!=0:0){i=(a[A+16>>2]|0)+16|0;f=n;A=(a[r+16>>2]|0)+16|0;e=f+40|0;do{a[f>>2]=a[A>>2];f=f+4|0;A=A+4|0}while((f|0)<(e|0));f=l;A=i;e=f+40|0;do{a[f>>2]=a[A>>2];f=f+4|0;A=A+4|0}while((f|0)<(e|0));A=(EL(n,l)|0)==0&1}else A=0;k=t;return A|0}function RD(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0;g=A+16|0;h=a[(a[(a[(a[g>>2]|0)+196>>2]|0)+(e<<6)+4>>2]|0)+(i<<2)>>2]|0;o=i+1|0;u=(f|0)==1;w=h+16|0;b=o;while(1){if((b|0)>(r|0)){n=r;B=o;break}k=a[(a[(a[(a[g>>2]|0)+196>>2]|0)+(e<<6)+4>>2]|0)+(b<<2)>>2]|0;s=k+16|0;A:do{if(u)while(1){i=a[s>>2]|0;c=a[a[i+180>>2]>>2]|0;if(!c)break A;l=a[(a[w>>2]|0)+180>>2]|0;t=c+-48|0;f=0;while(1){i=a[l+(f<<2)>>2]|0;if(!i){d=8;break}if((a[((a[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0)==(a[((a[c>>2]&3|0)==2?c:t)+40>>2]|0))break;else f=f+1|0}if((d|0)==8){d=0;i=Qy(h,a[((a[c>>2]&3|0)==2?c:t)+40>>2]|0,c)|0}while(1){f=a[a[(a[s>>2]|0)+172>>2]>>2]|0;if(!f)break;Fy(f,i);Cy(f)}Cy(c)}else while(1){i=a[s>>2]|0;c=a[a[i+172>>2]>>2]|0;if(!c)break A;l=a[(a[w>>2]|0)+172>>2]|0;t=c+48|0;f=0;while(1){i=a[l+(f<<2)>>2]|0;if(!i){d=17;break}if((a[((a[i>>2]&3|0)==3?i:i+48|0)+40>>2]|0)==(a[((a[c>>2]&3|0)==3?c:t)+40>>2]|0))break;else f=f+1|0}if((d|0)==17){d=0;i=Qy(a[((a[c>>2]&3|0)==3?c:t)+40>>2]|0,h,c)|0}while(1){f=a[a[(a[s>>2]|0)+180>>2]>>2]|0;if(!f)break;Fy(f,i);Cy(f)}Cy(c)}}while(0);if((a[i+176>>2]|0)!=(0-(a[i+184>>2]|0)|0)){d=23;break}Wy(A,k);b=b+1|0}if((d|0)==23)gA(88313,88357,115,88364);while(1){n=n+1|0;i=a[(a[g>>2]|0)+196>>2]|0;f=i+(e<<6)|0;if((n|0)>=(a[f>>2]|0))break;r=a[i+(e<<6)+4>>2]|0;d=a[r+(n<<2)>>2]|0;a[r+(B<<2)>>2]=d;a[(a[d+16>>2]|0)+236>>2]=B;B=B+1|0}a[f>>2]=B;a[(a[i+(e<<6)+4>>2]|0)+(B<<2)>>2]=0;return}function XD(A){A=A|0;A=a[A+16>>2]|0;if(((r[A+156>>0]|0)==1?(a[A+184>>2]|0)==1:0)?(a[A+176>>2]|0)==1:0)A=(a[A+104>>2]|0)==0&1;else A=0;return A|0}function HD(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;t=k;k=k+80|0;l=t+40|0;n=t;r=a[a[(a[A+16>>2]|0)+180>>2]>>2]|0;A=a[a[(a[e+16>>2]|0)+180>>2]>>2]|0;if(((XD(e)|0)<<24>>24!=0?(a[((a[r>>2]&3|0)==2?r:r+-48|0)+40>>2]|0)==(a[((a[A>>2]&3|0)==2?A:A+-48|0)+40>>2]|0):0)?(TD(r,A)|0)<<24>>24!=0:0){i=(a[A+16>>2]|0)+56|0;f=n;A=(a[r+16>>2]|0)+56|0;e=f+40|0;do{a[f>>2]=a[A>>2];f=f+4|0;A=A+4|0}while((f|0)<(e|0));f=l;A=i;e=f+40|0;do{a[f>>2]=a[A>>2];f=f+4|0;A=A+4|0}while((f|0)<(e|0));A=(EL(n,l)|0)==0&1}else A=0;k=t;return A|0}function UD(A){A=A|0;var e=0,i=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0;d=k;k=k+32|0;o=d+16|0;w=d;b=A+16|0;i=a[b>>2]|0;e=f[i+236>>1]|0;while(1){if((e|0)>(f[i+238>>1]|0))break;a[(a[i+268>>2]|0)+(e<<2)>>2]=0;e=e+1|0;i=a[b>>2]|0}Fz(A);c=cd(A)|0;while(1){if(!c)break;xD(A,c);t=Oo(A,c)|0;while(1){if(!t)break;else i=t;while(1){e=a[(a[i+16>>2]|0)+172>>2]|0;if(!e)break;else i=e}l=t+-48|0;while(1){e=i+-48|0;n=a[((a[i>>2]&3|0)==2?i:e)+40>>2]|0;if((a[(a[n+16>>2]|0)+232>>2]|0)>=(a[(a[(a[((a[t>>2]&3|0)==2?t:l)+40>>2]|0)+16>>2]|0)+232>>2]|0))break;xD(A,n);i=a[a[(a[(a[((a[i>>2]&3|0)==2?i:e)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}t=_o(A,t)|0}c=sd(A,c)|0}e=a[b>>2]|0;t=f[e+236>>1]|0;while(1){if((t|0)>(f[e+238>>1]|0)){s=1;u=e;break}e=a[(a[e+268>>2]|0)+(t<<2)>>2]|0;c=a[(a[(a[(vL(A)|0)+16>>2]|0)+196>>2]|0)+(t<<6)+4>>2]|0;i=e+16|0;if((a[c+(a[(a[i>>2]|0)+236>>2]<<2)>>2]|0)!=(e|0)){h=17;break}l=a[(a[(a[(vL(A)|0)+16>>2]|0)+196>>2]|0)+(t<<6)+4>>2]|0;e=a[b>>2]|0;i=a[e+196>>2]|0;a[i+(t<<6)+4>>2]=l+(a[(a[(a[(a[e+268>>2]|0)+(t<<2)>>2]|0)+16>>2]|0)+236>>2]<<2);e=-1;l=0;A:while(1){if((l|0)>=(a[i+(t<<6)>>2]|0))break;i=a[(a[i+(t<<6)+4>>2]|0)+(l<<2)>>2]|0;if(!i)break;n=a[i+16>>2]|0;e:do{if(!(r[n+156>>0]|0))if(!(Dd(A,i)|0))break A;else e=l;else{i=a[a[n+172>>2]>>2]|0;while(1){if(!i)break e;n=a[(a[i+16>>2]|0)+116>>2]|0;if(!n)break;else i=n}if(Dd(A,a[((a[i>>2]&3|0)==3?i:i+48|0)+40>>2]|0)|0){c=(Dd(A,a[((a[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0)|0)==0;e=c?e:l}}}while(0);l=l+1|0;i=a[(a[b>>2]|0)+196>>2]|0}if((e|0)==-1){a[o>>2]=Vh(A)|0;a[o+4>>2]=t;ao(0,88277,o)|0}c=a[b>>2]|0;a[(a[c+196>>2]|0)+(t<<6)>>2]=e+1;t=t+1|0;e=c}if((h|0)==17){o=Vh(e)|0;h=a[(a[i>>2]|0)+236>>2]|0;a[w>>2]=o;a[w+4>>2]=h;a[w+8>>2]=t;ao(1,88219,w)|0;fe(187016,1)}while(1){if((s|0)>(a[u+180>>2]|0))break;UD(a[(a[u+184>>2]|0)+(s<<2)>>2]|0);s=s+1|0;u=a[b>>2]|0}k=d;return}function xD(A,e){A=A|0;e=e|0;var i=0,r=0;i=a[e+16>>2]|0;A=(a[(a[A+16>>2]|0)+268>>2]|0)+(a[i+232>>2]<<2)|0;r=a[A>>2]|0;if(!((r|0)!=0?(a[(a[r+16>>2]|0)+236>>2]|0)<=(a[i+236>>2]|0):0))a[A>>2]=e;return}function TD(A,e){A=A|0;e=e|0;var i=0,f=0;while(1){f=a[A+16>>2]|0;if(!(r[f+112>>0]|0))break;A=a[f+116>>2]|0}while(1){i=a[e+16>>2]|0;if(!(r[i+112>>0]|0))break;e=a[i+116>>2]|0}if((r[f+153>>0]|0)==0?(r[i+153>>0]|0)==0:0){f=a[e>>2]&3;i=a[A>>2]&3;A=(U((a[(a[(a[((i|0)==3?A:A+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(a[(a[(a[((i|0)==2?A:A+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0,(a[(a[(a[((f|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(a[(a[(a[((f|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0)|0)>0&1}else A=0;return A|0}function jD(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0;s=k;k=k+544|0;c=s+528|0;PD(c,s+512|0,s);i=(r[193770]|0)+1<<24>>24;r[193770]=i<<24>>24==0?1:i;i=a[A+16>>2]|0;a[i+220>>2]=0;a[i+232>>2]=0;i=(e|0)>0;e=cd(A)|0;while(1){if(!e)break;if(i?(l=a[e+16>>2]|0,t=a[l+212>>2]|0,(t|0)!=0):0){n=a[(a[(a[t+16>>2]|0)+268>>2]|0)+(a[l+232>>2]<<2)>>2]|0;f=7}else f=6;if((f|0)==6?(f=0,(e|0)==(CR(e)|0)):0){n=e;f=7}if((f|0)==7?(0,(r[(a[n+16>>2]|0)+157>>0]|0)!=(r[193770]|0)):0){SD(A);OD(c,A,n);KD(A)}e=sd(A,e)|0}_D(c);k=s;return}function PD(A,e,i){A=A|0;e=e|0;i=i|0;a[e>>2]=i;a[e+4>>2]=i+512;a[e+12>>2]=0;a[e+8>>2]=0;a[A>>2]=e;a[A+4>>2]=e;a[A+8>>2]=i;return}function SD(A){A=A|0;a[(a[A+16>>2]|0)+192>>2]=0;a[46793]=0;return}function OD(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0;h=k;k=k+32|0;o=h;qD(A,i);s=o+8|0;b=o+16|0;u=o+24|0;A:while(1){w=$D(A)|0;if(!w)break;i=w+16|0;if((r[(a[i>>2]|0)+157>>0]|0)==(r[193770]|0))continue;AM(e,w);l=a[i>>2]|0;n=l+180|0;c=a[n+4>>2]|0;t=o;a[t>>2]=a[n>>2];a[t+4>>2]=c;t=l+172|0;c=a[t+4>>2]|0;n=s;a[n>>2]=a[t>>2];a[n+4>>2]=c;n=l+188|0;c=a[n+4>>2]|0;t=b;a[t>>2]=a[n>>2];a[t+4>>2]=c;l=l+196|0;t=a[l+4>>2]|0;c=u;a[c>>2]=a[l>>2];a[c+4>>2]=t;c=3;while(1){if((c|0)<=-1)continue A;i=a[o+(c<<3)>>2]|0;e:do{if(i|0){t=(a[o+(c<<3)+4>>2]|0)+-1|0;l=i+(t<<2)|0;while(1){if((t|0)<=-1)break e;f=a[l>>2]|0;n=a[f>>2]&3;i=a[((n|0)==2?f:f+-48|0)+40>>2]|0;if((i|0)==(w|0))i=a[((n|0)==3?f:f+48|0)+40>>2]|0;if((r[(a[i+16>>2]|0)+157>>0]|0)!=(r[193770]|0)?(i|0)==(CR(i)|0):0)qD(A,i);l=l+-4|0;t=t+-1|0}}}while(0);c=c+-1|0}}k=h;return}function KD(A){A=A|0;var e=0,i=0,r=0,f=0;i=A+16|0;e=a[i>>2]|0;f=e+220|0;r=a[f>>2]|0;A=r+1|0;a[f>>2]=A;e=a[e+216>>2]|0;if(!e)A=$F(A<<2)|0;else A=eV(e,A<<2)|0;f=a[i>>2]|0;a[f+216>>2]=A;a[A+(r<<2)>>2]=a[f+192>>2];return}function _D(A){A=A|0;var e=0;A=a[(a[A>>2]|0)+12>>2]|0;while(1){if(!A)break;e=a[A+12>>2]|0;L2(a[A>>2]|0);L2(A);A=e}return}function qD(A,e){A=A|0;e=e|0;var i=0,f=0,l=0,t=0,c=0,s=0;s=k;k=k+16|0;l=s+8|0;f=s;c=A+8|0;i=a[c>>2]|0;t=A+4|0;A=a[t>>2]|0;if((i|0)==(a[A+4>>2]|0)){i=a[A+12>>2]|0;if(!i){i=qF(16)|0;if(!i)ao(1,98969,f)|0;a[i+8>>2]=a[t>>2];a[i+12>>2]=0;A=qF(4e6)|0;a[i>>2]=A;if(!A){ao(1,88377,l)|0;A=a[i>>2]|0}a[i+4>>2]=A+4e6;a[(a[t>>2]|0)+12>>2]=i}a[t>>2]=i;i=a[i>>2]|0;a[c>>2]=i}r[(a[e+16>>2]|0)+157>>0]=(n[193770]|0)+1;a[c>>2]=i+4;a[i>>2]=e;k=s;return}function $D(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;f=A+8|0;e=a[f>>2]|0;i=A+4|0;r=a[i>>2]|0;if((e|0)==(a[r>>2]|0))if((r|0)==(a[A>>2]|0))e=0;else{e=a[r+8>>2]|0;a[i>>2]=e;e=a[e+4>>2]|0;a[f>>2]=e;n=4}else n=4;if((n|0)==4){e=e+-4|0;a[f>>2]=e;e=a[e>>2]|0}return e|0}function AM(A,e){A=A|0;e=e|0;var i=0,f=0,n=0;f=a[A+16>>2]|0;n=f+232|0;a[n>>2]=(a[n>>2]|0)+1;n=a[e+16>>2]|0;r[n+157>>0]=r[193770]|0;A=a[46793]|0;i=n+168|0;if(!A){a[i>>2]=0;a[f+192>>2]=e}else{a[i>>2]=A;a[(a[A+16>>2]|0)+164>>2]=e}a[46793]=e;a[n+164>>2]=0;return}function eM(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0.0,k=0.0;u=A+16|0;e=(a[u>>2]|0)+192|0;while(1){e=a[e>>2]|0;if(!e)break;n=e+16|0;e=a[n>>2]|0;i=a[e+188>>2]|0;A:do{if(!i)f=0;else{f=0;while(1){i=a[i+(f<<2)>>2]|0;if(!i){f=0;break A}iM(i);e=a[n>>2]|0;f=f+1|0;i=a[e+188>>2]|0}}}while(0);while(1){if((f|0)>=(a[e+208>>2]|0))break;i=a[(a[e+204>>2]|0)+(f<<2)>>2]|0;b=a[i>>2]&3;if((a[(a[(a[((b|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)==(a[(a[(a[((b|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)){iM(i);e=a[n>>2]|0}f=f+1|0}e=e+164|0}b=a[u>>2]|0;e=a[b+196>>2]|0;if(!((a[e+56>>2]|0)==0?(a[b+180>>2]|0)<=0:0))l=13;A:do{if((l|0)==13){l=a[e+4>>2]|0;n=0;e:while(1){e=a[l+(n<<2)>>2]|0;if(!e)break A;i=a[(a[e+16>>2]|0)+196>>2]|0;e=0;while(1){f=a[i+(e<<2)>>2]|0;if(!f)break;b=a[f+16>>2]|0;if(a[b+96>>2]|0?(r[b+113>>0]|0)==0:0)break e;e=e+1|0}n=n+1|0}rM(A)}}while(0);PW(A);i=0;e=(a[u>>2]|0)+192|0;while(1){e=a[e>>2]|0;if(!e)break;b=e+16|0;e=a[b>>2]|0;f=a[e+188>>2]|0;A:do{if(f){c=0;while(1){n=a[f+(c<<2)>>2]|0;if(!n){c=0;break}l=a[n+16>>2]|0;t=a[l+96>>2]|0;do{if(t)if(!(r[l+113>>0]|0)){fM(n);f=a[b>>2]|0;i=1;e=f;f=a[f+188>>2]|0;break}else{s[l+136>>3]=+s[((a[(a[u>>2]|0)+116>>2]&1|0)==0?t+24|0:t+32|0)>>3];break}}while(0);c=c+1|0}while(1){if((c|0)>=(a[e+208>>2]|0))break A;l=a[(a[e+204>>2]|0)+(c<<2)>>2]|0;t=a[l>>2]&3;n=a[((t|0)==3?l:l+48|0)+40>>2]|0;t=a[((t|0)==2?l:l+-48|0)+40>>2]|0;do{if(!((n|0)==(t|0)?1:(a[(a[n+16>>2]|0)+232>>2]|0)!=(a[(a[t+16>>2]|0)+232>>2]|0))){f=l;do{t=a[f+16>>2]|0;f=a[t+172>>2]|0}while((f|0)!=0);f=r[t+113>>0]|0;n=a[l+16>>2]|0;r[n+113>>0]=f;n=a[n+96>>2]|0;if(n)if(!(f<<24>>24)){fM(l);i=1;e=a[b>>2]|0;break}else{k=+s[((a[(a[u>>2]|0)+116>>2]&1|0)==0?n+24|0:n+32|0)>>3];t=t+136|0;w=+s[t>>3];s[t>>3]=k>w?k:w;break}}}while(0);c=c+1|0}}}while(0);e=e+164|0}if(i|0){Ry(A);AW(A)}return i|0}function iM(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0;e=a[A>>2]&3;t=a[((e|0)==3?A:A+48|0)+40>>2]|0;f=t+16|0;n=a[(a[f>>2]|0)+236>>2]|0;e=a[(a[(a[((e|0)==2?A:A+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;l=(n|0)<(e|0);i=l?e:n;t=a[(a[(vL(t)|0)+16>>2]|0)+196>>2]|0;f=t+(a[(a[f>>2]|0)+232>>2]<<6)+4|0;e=l?n:e;A:while(1){e=e+1|0;if((e|0)>=(i|0))break;n=a[(a[(a[f>>2]|0)+(e<<2)>>2]|0)+16>>2]|0;switch(r[n+156>>0]|0){case 0:break A;case 1:break;default:continue A}if(a[n+104>>2]|0)break}if((e|0)==(i|0))do{t=a[A+16>>2]|0;r[t+113>>0]=1;A=a[t+172>>2]|0}while((A|0)!=0);return}function rM(A){A=A|0;var e=0,i=0,r=0,n=0;n=A+16|0;A=a[n>>2]|0;if(f[A+236>>1]|0)gA(88434,88417,190,88453);e=(f[A+238>>1]|0)+3|0;A=a[A+196>>2]|0;if(!A)A=$F(e<<6)|0;else A=eV(A,e<<6)|0;e=A+64|0;A=a[n>>2]|0;a[A+196>>2]=e;A=f[A+238>>1]|0;while(1){if((A|0)<=-1)break;r=A+-1|0;i=e+(A<<6)|0;A=e+(r<<6)|0;e=i+64|0;do{a[i>>2]=a[A>>2];i=i+4|0;A=A+4|0}while((i|0)<(e|0));A=r;e=a[(a[n>>2]|0)+196>>2]|0}a[e+(A<<6)+8>>2]=0;a[e+(A<<6)>>2]=0;i=qF(8)|0;n=a[n>>2]|0;r=a[n+196>>2]|0;a[r+(A<<6)+12>>2]=i;a[r+(A<<6)+4>>2]=i;a[r+(A<<6)+56>>2]=0;s[r+(A<<6)+24>>3]=1.0;s[r+(A<<6)+16>>3]=1.0;s[r+(A<<6)+40>>3]=1.0;s[r+(A<<6)+32>>3]=1.0;n=n+236|0;f[n>>1]=(f[n>>1]|0)+-1<<16>>16;return}function fM(A){A=A|0;var e=0,i=0,f=0.0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,k=0,o=0.0,h=0.0,d=0.0;t=A+16|0;if(a[(a[t>>2]|0)+96>>2]|0){u=A+48|0;c=vL(a[((a[A>>2]&3|0)==3?A:u)+40>>2]|0)|0;e=a[(a[(a[((a[A>>2]&3|0)==3?A:u)+40>>2]|0)+16>>2]|0)+232>>2]|0;b=MX(c,A)|0;w=c+16|0;i=a[w>>2]|0;n=a[i+196>>2]|0;k=e+-1|0;l=a[a[n+(k<<6)+4>>2]>>2]|0;if(!l)f=+s[n+(e<<6)+24>>3]+ +s[(a[(a[a[n+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]+ +(a[i+252>>2]|0);else f=+s[(a[l+16>>2]|0)+24>>3]-+s[n+(k<<6)+16>>3];e=FX(c,k,b)|0;c=a[(a[t>>2]|0)+96>>2]|0;h=+s[c+24>>3];o=+s[c+32>>3];t=(a[(a[w>>2]|0)+116>>2]&1|0)==0;d=t?o:h;n=e+16|0;i=a[n>>2]|0;s[i+80>>3]=d;b=~~(d*.5);o=(t?h:o)*.5;s[i+96>>3]=o;s[i+88>>3]=o;a[i+104>>2]=c;s[i+24>>3]=+(b+~~f|0);i=Qy(e,a[((a[A>>2]&3|0)==3?A:u)+40>>2]|0,A)|0;i=a[i+16>>2]|0;s[i+16>>3]=-+s[(a[n>>2]|0)+88>>3];s[i+56>>3]=+s[(a[(a[((a[A>>2]&3|0)==3?A:u)+40>>2]|0)+16>>2]|0)+96>>3];r[i+112>>0]=4;i=A+-48|0;e=Qy(e,a[((a[A>>2]&3|0)==2?A:i)+40>>2]|0,A)|0;n=a[n>>2]|0;e=a[e+16>>2]|0;s[e+16>>3]=+s[n+96>>3];s[e+56>>3]=+s[(a[(a[((a[A>>2]&3|0)==2?A:i)+40>>2]|0)+16>>2]|0)+88>>3];r[e+112>>0]=4;e=a[(a[w>>2]|0)+196>>2]|0;i=e+(k<<6)+16|0;f=+(b|0);if(+s[i>>3]>3]=f;e=e+(k<<6)+24|0;if(+s[e>>3]>3]=f;a[n+112>>2]=A}return}function aM(A,e,i){A=A|0;e=e|0;i=i|0;var n=0,t=0,c=0,b=0.0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0;m=k;k=k+160|0;Z=m+24|0;C=m+20|0;E=m+16|0;w=m;o=m+32|0;I=a[A+152>>2]|0;a[Z>>2]=0;a[C>>2]=0;a[E>>2]=0;G=AI(A)|0;a[G+4>>2]=3;a[G+8>>2]=e;a[G+12>>2]=9;g=e+16|0;u=a[(a[g>>2]|0)+96>>2]|0;if((u|0?(r[u+82>>0]|0)==0:0)?(ER(Ho(e,100105)|0,0)|0)<<24>>24:0){u=G+260|0;f[u>>1]=f[u>>1]|512}if(i|0?a[(a[g>>2]|0)+8>>2]|0:0)rr(A,i);i=a[47206]|0;if((i|0?(n=Uo(e,i)|0,n|0):0)?r[n>>0]|0:0)ur(A,+oR(e,a[47206]|0,1.0,0.0));do{if(I&16777216|0){i=e+48|0;if((l[(a[(Id(a[((a[e>>2]&3|0)==3?e:i)+40>>2]|0)|0)+16>>2]|0)+178>>1]|0)>2){b=+s[(a[(a[(a[((a[e>>2]&3|0)==3?e:i)+40>>2]|0)+16>>2]|0)+132>>2]|0)+16>>3]*72.0;s[G+176>>3]=+(~~(b+(b>=0.0?.5:-.5))|0);b=+s[(a[(a[(a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+132>>2]|0)+16>>3]*72.0;s[G+184>>3]=+(~~(b+(b>=0.0?.5:-.5))|0);break}else{u=G+176|0;a[u>>2]=0;a[u+4>>2]=0;a[u+8>>2]=0;a[u+12>>2]=0;break}}}while(0);if(I&32768|0){u=a[g>>2]|0;i=a[u+96>>2]|0;if(!i)i=a[G+192>>2]|0;else{i=a[i>>2]|0;a[G+192>>2]=i}n=G+196|0;a[n>>2]=i;c=G+204|0;a[c>>2]=i;t=G+200|0;a[t>>2]=i;i=a[u+108>>2]|0;if(i|0)a[n>>2]=a[i>>2];i=a[u+104>>2]|0;if(i|0)a[t>>2]=a[i>>2];i=a[u+100>>2]|0;if(i|0)a[c>>2]=a[i>>2]}if(!(I&65536))t=0;else{co(w,128,o);a[G+212>>2]=PF(rI(A,e,w)|0,e)|0;wo(w);i=Ho(e,141055)|0;if((i|0)!=0?(r[i>>0]|0)!=0:0)h=31;else{i=Ho(e,111477)|0;if((i|0)!=0?(r[i>>0]|0)!=0:0)h=31;else n=0}if((h|0)==31)n=PF(i,e)|0;i=Ho(e,100118)|0;if((i|0)!=0?(r[i>>0]|0)!=0:0)h=36;else h=34;do{if((h|0)==34){i=Ho(e,100127)|0;if(i|0?r[i>>0]|0:0){h=36;break}if(n|0){i=b3(n)|0;h=39}}}while(0);if((h|0)==36){i=PF(i,e)|0;h=39}if((h|0)==39)a[G+208>>2]=i;i=Ho(e,100135)|0;if((i|0)!=0?(r[i>>0]|0)!=0:0)h=44;else h=42;do{if((h|0)==42){i=Ho(e,100145)|0;if(i|0?r[i>>0]|0:0){h=44;break}if(n|0){i=b3(n)|0;h=47}}}while(0);if((h|0)==44){i=PF(i,e)|0;h=47}if((h|0)==47)a[G+216>>2]=i;i=Ho(e,100154)|0;if((i|0)!=0?(r[i>>0]|0)!=0:0)h=52;else h=50;do{if((h|0)==50){i=Ho(e,100163)|0;if(i|0?r[i>>0]|0:0){h=52;break}if(n|0)a[G+220>>2]=b3(n)|0}}while(0);if((h|0)==52){a[G+220>>2]=PF(i,e)|0;h=G+260|0;f[h>>1]=f[h>>1]|128}i=Ho(e,100171)|0;if((i|0)!=0?(r[i>>0]|0)!=0:0)h=59;else h=57;do{if((h|0)==57){i=Ho(e,100180)|0;if(i|0?r[i>>0]|0:0){h=59;break}if(n|0)a[G+224>>2]=b3(n)|0}}while(0);if((h|0)==59){a[G+224>>2]=PF(i,e)|0;h=G+260|0;f[h>>1]=f[h>>1]|256}t=n}do{if(I&8388608){i=Ho(e,141088)|0;if((i|0)!=0?(r[i>>0]|0)!=0:0)n=PF(i,e)|0;else n=0;i=Ho(e,100188)|0;if((i|0)!=0?(r[i>>0]|0)!=0:0){h=G+260|0;f[h>>1]=f[h>>1]|64;i=PF(i,e)|0;h=72}else h=70;if((h|0)==70?n|0:0){i=b3(n)|0;h=72}if((h|0)==72)a[G+244>>2]=i;i=Ho(e,100199)|0;if((i|0)!=0?(r[i>>0]|0)!=0:0){i=PF(i,e)|0;h=78}else h=76;if((h|0)==76?n|0:0){i=b3(n)|0;h=78}if((h|0)==78)a[G+248>>2]=i;i=Ho(e,100211)|0;if((i|0)!=0?(r[i>>0]|0)!=0:0){a[G+252>>2]=PF(i,e)|0;o=G+260|0;f[o>>1]=f[o>>1]|16}else h=82;if((h|0)==82?n|0:0)a[G+252>>2]=b3(n)|0;i=Ho(e,100222)|0;if(i|0?r[i>>0]|0:0){h=G+260|0;f[h>>1]=f[h>>1]|32;a[G+256>>2]=PF(i,e)|0;break}if(n)a[G+256>>2]=b3(n)|0;else n=0}else n=0}while(0);do{if(I&4194304|0){i=Ho(e,141101)|0;if((i|0)!=0?(r[i>>0]|0)!=0:0)h=94;else h=92;do{if((h|0)==92){i=Ho(e,100233)|0;if(i|0?r[i>>0]|0:0){h=94;break}i=a[G+192>>2]|0;if(i|0)a[G+228>>2]=b3(i)|0}}while(0);if((h|0)==94){o=mM(i,e)|0;a[G+228>>2]=PF(o,e)|0;L2(o);o=G+260|0;f[o>>1]=f[o>>1]|1}i=Ho(e,100245)|0;if((i|0)!=0?(r[i>>0]|0)!=0:0){o=mM(i,e)|0;a[G+232>>2]=PF(o,e)|0;L2(o);o=G+260|0;f[o>>1]=f[o>>1]|8}else h=100;if((h|0)==100?(d=a[G+192>>2]|0,d|0):0)a[G+232>>2]=b3(d)|0;i=Ho(e,100258)|0;if((i|0)!=0?(r[i>>0]|0)!=0:0){d=mM(i,e)|0;a[G+236>>2]=PF(d,e)|0;L2(d);d=G+260|0;f[d>>1]=f[d>>1]|2}else h=105;if((h|0)==105?(B=a[G+200>>2]|0,B|0):0)a[G+236>>2]=b3(B)|0;i=Ho(e,100270)|0;if(i|0?r[i>>0]|0:0){B=mM(i,e)|0;a[G+240>>2]=PF(B,e)|0;L2(B);B=G+260|0;f[B>>1]=f[B>>1]|4;break}i=a[G+204>>2]|0;if(i|0)a[G+240>>2]=b3(i)|0}}while(0);L2(t);L2(n);do{if(I&4259840|0?(v=a[(a[g>>2]|0)+8>>2]|0,v|0):0){if(!(a[G+208>>2]|0)){if((I&524288|0)==0|(a[G+228>>2]|0)==0)break}else if(!(I&524288))break;b=+s[(a[A+16>>2]|0)+152>>3]*.5;b=b>2.0?b:2.0;n=a[v+4>>2]|0;i=0;while(1){if((i|0)>=(n|0))break;QM(Z,C,E,(a[v>>2]|0)+(i*48|0)|0,b);i=i+1|0}t=a[E>>2]|0;a[G+276>>2]=t;c=a[C>>2]|0;a[G+280>>2]=c;if(!(I&8192)){i=0;n=0;while(1){if((n|0)>=(t|0))break;i=(a[c+(n<<2)>>2]|0)+i|0;n=n+1|0}Z=a[Z>>2]|0;zi(A,Z,Z,i)|0;i=Z}else i=a[Z>>2]|0;a[G+284>>2]=i;a[G+264>>2]=2;a[G+272>>2]=i;a[G+268>>2]=a[c>>2]}}while(0);ji(A,e);i=a[G+208>>2]|0;if(!((i|0)==0?!(f[G+260>>1]&1):0))Si(A,i,a[G+228>>2]|0,a[G+244>>2]|0,a[G+212>>2]|0);k=m;return}function nM(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0.0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0.0,N=0.0,R=0,X=0,H=0,U=0,x=0;X=k;k=k+240|0;J=X+224|0;V=X+208|0;I=X+128|0;C=X+112|0;R=X+64|0;L=X+48|0;y=X+32|0;W=X+16|0;z=X;Y=X+192|0;D=X+176|0;Z=X+160|0;Q=X+144|0;a[W>>2]=0;a[W+4>>2]=0;a[W+8>>2]=0;a[W+12>>2]=0;p=+s[(a[A+16>>2]|0)+152>>3];mf(Ho(e,100032)|0);F=e+16|0;A:do{if(a[(a[F>>2]|0)+8>>2]|0){N=+oR(e,a[47188]|0,1.0,0.0);c=dR(e,a[47176]|0,195059)|0;E=(i|0)!=0;e:do{if(E){f=i;while(1){l=f;f=f+4|0;l=a[l>>2]|0;if(!l){w=0;break e}if((r[l>>0]|0)!=116)continue;if(!(A1(l,111117)|0)){w=1;break}}}else w=0}while(0);t=c;h=0;l=0;e:while(1){switch(r[t>>0]|0){case 0:break e;case 58:{f=h+1|0;break}case 59:{f=h;l=l+1|0;break}default:f=h}t=t+1|0;h=f}u=(h|0)!=0;if((l|0)!=0&u)if(!(kM(A,e,i,c,h+1|0,N,p)|0))break;else b=137314;else b=c;f=n[(a[F>>2]|0)+115>>0]|0;if(!(f&1))if(!(f&2))if(!(f&8))if(!(f&4)){l=b;t=BR(e,a[47177]|0,b)|0}else{t=106296;f=106288;c=188712;l=188712;o=18}else{t=106280;f=106272;c=188712;l=188712;o=18}else{t=106264;f=106256;c=188712;l=188712;o=18}else{t=106248;f=106240;c=188712;l=188712;o=18}if((o|0)==18){l=a[l>>2]|0;l=BR(e,l,oM(b,f)|0)|0;f=BR(e,a[c>>2]|0,t)|0;if((l|0)==(b|0)){l=b;t=f}else{$i(A,l);t=f}}if((t|0)!=(b|0))er(A,t);if(w<<24>>24){l=(r[l>>0]|0)==0?137314:l;f=(r[t>>0]|0)==0?137314:t;$i(A,137379);er(A,l);v=R;d=a[a[(a[F>>2]|0)+8>>2]>>2]|0;B=v+48|0;do{a[v>>2]=a[d>>2];v=v+4|0;d=d+4|0}while((v|0)<(B|0));F=HN(R,hM(e)|0,p,0,0)|0;ar(A,a[F+8>>2]|0,a[F>>2]|0,1);dM(F);$i(A,l);if((f|0)!=(l|0))er(A,f);f=a[R+8>>2]|0;if(f|0){M=R+16|0;F=a[R>>2]|0;a[V>>2]=a[M>>2];a[V+4>>2]=a[M+4>>2];a[V+8>>2]=a[M+8>>2];a[V+12>>2]=a[M+12>>2];a[J>>2]=a[F>>2];a[J+4>>2]=a[F+4>>2];a[J+8>>2]=a[F+8>>2];a[J+12>>2]=a[F+12>>2];_C(A,2,V,J,N,p,f)}f=a[R+12>>2]|0;if(!f)break;F=R+32|0;R=(a[R>>2]|0)+((a[R+4>>2]|0)+-1<<4)|0;a[V>>2]=a[F>>2];a[V+4>>2]=a[F+4>>2];a[V+8>>2]=a[F+8>>2];a[V+12>>2]=a[F+12>>2];a[J>>2]=a[R>>2];a[J+4>>2]=a[R+4>>2];a[J+8>>2]=a[R+8>>2];a[J+12>>2]=a[R+12>>2];_C(A,3,V,J,N,p,f);break}f=a[F>>2]|0;if(!u){do{if(!(r[f+115>>0]&3)){if(r[l>>0]|0){$i(A,l);er(A,t);break}$i(A,137314);if(!(r[t>>0]|0)){er(A,137314);break}else{er(A,t);break}}}while(0);c=A+152|0;b=R+4|0;u=R+8|0;w=R+12|0;o=R+32|0;h=R+16|0;t=0;while(1){f=a[(a[F>>2]|0)+8>>2]|0;if((t|0)>=(a[f+4>>2]|0))break A;v=R;d=(a[f>>2]|0)+(t*48|0)|0;B=v+48|0;do{a[v>>2]=a[d>>2];v=v+4|0;d=d+4|0}while((v|0)<(B|0));f=a[R>>2]|0;l=a[b>>2]|0;do{if(!(a[c>>2]&16384)){lr(A,f,l,0,0,0);f=a[u>>2]|0;if(f|0){M=a[R>>2]|0;a[V>>2]=a[h>>2];a[V+4>>2]=a[h+4>>2];a[V+8>>2]=a[h+8>>2];a[V+12>>2]=a[h+12>>2];a[J>>2]=a[M>>2];a[J+4>>2]=a[M+4>>2];a[J+8>>2]=a[M+8>>2];a[J+12>>2]=a[M+12>>2];_C(A,2,V,J,N,p,f)}f=a[w>>2]|0;if(f|0){M=(a[R>>2]|0)+((a[b>>2]|0)+-1<<4)|0;a[V>>2]=a[o>>2];a[V+4>>2]=a[o+4>>2];a[V+8>>2]=a[o+8>>2];a[V+12>>2]=a[o+12>>2];a[J>>2]=a[M>>2];a[J+4>>2]=a[M+4>>2];a[J+8>>2]=a[M+8>>2];a[J+12>>2]=a[M+12>>2];_C(A,3,V,J,N,p,f)}if((a[(a[(a[F>>2]|0)+8>>2]|0)+4>>2]|0)>1){if(!(a[u>>2]|0)){if(!(E&(a[w>>2]|0)!=0))break}else if(!E)break;rr(A,i)}}else lr(A,f,l,a[u>>2]|0,a[w>>2]|0,0)}while(0);t=t+1|0}}M=a[(a[f+8>>2]|0)+4>>2]|0;m=M*48|0;G=Q2(m)|0;m=Q2(m)|0;g=+(h+2|0)*.5;E=R+4|0;o=L+8|0;h=y+8|0;e=W+8|0;i=z+8|0;w=0;while(1){if((w|0)>=(M|0))break;v=R;d=(a[a[(a[F>>2]|0)+8>>2]>>2]|0)+(w*48|0)|0;B=v+48|0;do{a[v>>2]=a[d>>2];v=v+4|0;d=d+4|0}while((v|0)<(B|0));f=a[E>>2]|0;a[G+(w*48|0)+4>>2]=f;a[m+(w*48|0)+4>>2]=f;u=f<<4;b=Q2(u)|0;a[G+(w*48|0)>>2]=b;u=Q2(u)|0;a[m+(w*48|0)>>2]=u;c=a[R>>2]|0;a[z>>2]=a[c>>2];a[z+4>>2]=a[c+4>>2];a[z+8>>2]=a[c+8>>2];a[z+12>>2]=a[c+12>>2];c=0;while(1){if((c|0)>=(f+-1|0))break;a[L>>2]=a[z>>2];a[L+4>>2]=a[z+4>>2];a[L+8>>2]=a[z+8>>2];a[L+12>>2]=a[z+12>>2];f=c+1|0;t=(a[R>>2]|0)+(f<<4)|0;a[y>>2]=a[t>>2];a[y+4>>2]=a[t+4>>2];a[y+8>>2]=a[t+8>>2];a[y+12>>2]=a[t+12>>2];t=b+(c<<4)|0;if(!c){a[V>>2]=a[L>>2];a[V+4>>2]=a[L+4>>2];a[V+8>>2]=a[L+8>>2];a[V+12>>2]=a[L+12>>2];a[J>>2]=a[y>>2];a[J+4>>2]=a[y+4>>2];a[J+8>>2]=a[y+8>>2];a[J+12>>2]=a[y+12>>2];BM(Y,V,J);a[t>>2]=a[Y>>2];a[t+4>>2]=a[Y+4>>2];a[t+8>>2]=a[Y+8>>2];a[t+12>>2]=a[Y+12>>2]}else{a[V>>2]=a[W>>2];a[V+4>>2]=a[W+4>>2];a[V+8>>2]=a[W+8>>2];a[V+12>>2]=a[W+12>>2];a[J>>2]=a[y>>2];a[J+4>>2]=a[y+4>>2];a[J+8>>2]=a[y+8>>2];a[J+12>>2]=a[y+12>>2];BM(D,V,J);a[t>>2]=a[D>>2];a[t+4>>2]=a[D+4>>2];a[t+8>>2]=a[D+8>>2];a[t+12>>2]=a[D+12>>2]}U=a[R>>2]|0;B=c+2|0;x=U+(B<<4)|0;a[W>>2]=a[x>>2];a[W+4>>2]=a[x+4>>2];a[W+8>>2]=a[x+8>>2];a[W+12>>2]=a[x+12>>2];v=c+3|0;U=U+(v<<4)|0;a[z>>2]=a[U>>2];a[z+4>>2]=a[U+4>>2];a[z+8>>2]=a[U+8>>2];a[z+12>>2]=a[U+12>>2];H=b+(f<<4)|0;d=b+(B<<4)|0;a[C>>2]=a[L>>2];a[C+4>>2]=a[L+4>>2];a[C+8>>2]=a[L+8>>2];a[C+12>>2]=a[L+12>>2];a[I>>2]=a[y>>2];a[I+4>>2]=a[y+4>>2];a[I+8>>2]=a[y+8>>2];a[I+12>>2]=a[y+12>>2];a[V>>2]=a[x>>2];a[V+4>>2]=a[x+4>>2];a[V+8>>2]=a[x+8>>2];a[V+12>>2]=a[x+12>>2];a[J>>2]=a[U>>2];a[J+4>>2]=a[U+4>>2];a[J+8>>2]=a[U+8>>2];a[J+12>>2]=a[U+12>>2];gM(Z,C,I,V,J);a[d>>2]=a[Z>>2];a[d+4>>2]=a[Z+4>>2];a[d+8>>2]=a[Z+8>>2];a[d+12>>2]=a[Z+12>>2];a[H>>2]=a[Z>>2];a[H+4>>2]=a[Z+4>>2];a[H+8>>2]=a[Z+8>>2];a[H+12>>2]=a[Z+12>>2];s[u+(c<<4)>>3]=+s[L>>3]-+s[t>>3]*g;s[u+(c<<4)+8>>3]=+s[o>>3]-+s[b+(c<<4)+8>>3]*g;s[u+(f<<4)>>3]=+s[y>>3]-+s[H>>3]*g;s[u+(f<<4)+8>>3]=+s[h>>3]-+s[b+(f<<4)+8>>3]*g;s[u+(B<<4)>>3]=+s[W>>3]-+s[d>>3]*g;s[u+(B<<4)+8>>3]=+s[e>>3]-+s[b+(B<<4)+8>>3]*g;c=v;f=a[E>>2]|0}x=b+(c<<4)|0;a[V>>2]=a[W>>2];a[V+4>>2]=a[W+4>>2];a[V+8>>2]=a[W+8>>2];a[V+12>>2]=a[W+12>>2];a[J>>2]=a[z>>2];a[J+4>>2]=a[z+4>>2];a[J+8>>2]=a[z+8>>2];a[J+12>>2]=a[z+12>>2];BM(Q,V,J);a[x>>2]=a[Q>>2];a[x+4>>2]=a[Q+4>>2];a[x+8>>2]=a[Q+8>>2];a[x+12>>2]=a[Q+12>>2];s[u+(c<<4)>>3]=+s[z>>3]-+s[x>>3]*g;s[u+(c<<4)+8>>3]=+s[i>>3]-+s[b+(c<<4)+8>>3]*g;w=w+1|0}B=b3(l)|0;i=0;d=l;f=l;t=l;l=B;while(1){l=t3(l,107984)|0;if(!l)break;e=(r[l>>0]|0)==0?137314:l;if((e|0)!=(t|0))if(!(r[(a[F>>2]|0)+115>>0]&3)){$i(A,e);er(A,e);t=e}else t=e;b=(i|0)==0;u=i>>>0<2;l=0;while(1){if((l|0)>=(M|0))break;w=a[m+(l*48|0)>>2]|0;o=a[G+(l*48|0)>>2]|0;h=a[m+(l*48|0)+4>>2]|0;c=0;while(1){if((c|0)>=(h|0))break;x=w+(c<<4)|0;s[x>>3]=+s[x>>3]+ +s[o+(c<<4)>>3];x=w+(c<<4)+8|0;s[x>>3]=+s[x>>3]+ +s[o+(c<<4)+8>>3];c=c+1|0}lr(A,w,h,0,0,0);l=l+1|0}i=i+1|0;d=b?e:d;f=u?e:f;l=0}l=a[R+8>>2]|0;if(!l)l=0;else{if(f){if(!(r[(a[F>>2]|0)+115>>0]&3)){$i(A,f);er(A,f)}}else f=0;U=R+16|0;x=a[R>>2]|0;a[V>>2]=a[U>>2];a[V+4>>2]=a[U+4>>2];a[V+8>>2]=a[U+8>>2];a[V+12>>2]=a[U+12>>2];a[J>>2]=a[x>>2];a[J+4>>2]=a[x+4>>2];a[J+8>>2]=a[x+8>>2];a[J+12>>2]=a[x+12>>2];_C(A,2,V,J,N,p,l);l=f}t=R+12|0;f=a[t>>2]|0;if(f|0){if((l|0)!=(d|0)?(r[(a[F>>2]|0)+115>>0]&3)==0:0){$i(A,d);er(A,d);f=a[t>>2]|0}U=R+32|0;x=(a[R>>2]|0)+((a[E>>2]|0)+-1<<4)|0;a[V>>2]=a[U>>2];a[V+4>>2]=a[U+4>>2];a[V+8>>2]=a[U+8>>2];a[V+12>>2]=a[U+12>>2];a[J>>2]=a[x>>2];a[J+4>>2]=a[x+4>>2];a[J+8>>2]=a[x+8>>2];a[J+12>>2]=a[x+12>>2];_C(A,3,V,J,N,p,f)}L2(B);f=0;while(1){if((f|0)>=(M|0))break;L2(a[G+(f*48|0)>>2]|0);L2(a[m+(f*48|0)>>2]|0);f=f+1|0}L2(G);L2(m)}}while(0);k=X;return}function lM(A){A=A|0;var e=0,i=0,r=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0;I=k;k=k+64|0;d=I+48|0;v=I+32|0;g=I+16|0;B=I;C=a[A+16>>2]|0;E=a[C+8>>2]|0;h=C+208|0;if(!((a[h>>2]|0)==0?!(f[C+260>>1]&1):0))e=3;A:do{if((e|0)==3?(Oi(A),o=C+276|0,i=a[o>>2]|0,i|0):0){l=C+280|0;e=a[l>>2]|0;t=C+268|0;c=C+284|0;s=C+272|0;b=C+228|0;u=C+244|0;w=C+212|0;r=a[e>>2]|0;n=1;while(1){if((n|0)>=(i|0))break A;a[t>>2]=a[e+(n<<2)>>2];a[s>>2]=(a[c>>2]|0)+(r<<4);Si(A,a[h>>2]|0,a[b>>2]|0,a[u>>2]|0,a[w>>2]|0);Oi(A);Z=a[l>>2]|0;r=(a[Z+(n<<2)>>2]|0)+r|0;n=n+1|0;i=a[o>>2]|0;e=Z}}}while(0);a[C+268>>2]=0;a[C+272>>2]=0;h=E+16|0;e=a[h>>2]|0;i=a[e+8>>2]|0;if(!i)r=C+260|0;else{o=a[i>>2]|0;e=a[o>>2]|0;Z=a[o+8>>2]|0;w=o+16|0;a[g>>2]=a[w>>2];a[g+4>>2]=a[w+4>>2];a[g+8>>2]=a[w+8>>2];a[g+12>>2]=a[w+12>>2];o=o+32|0;a[B>>2]=a[o>>2];a[B+4>>2]=a[o+4>>2];a[B+8>>2]=a[o+8>>2];a[B+12>>2]=a[o+12>>2];if(!Z){a[v>>2]=a[e>>2];a[v+4>>2]=a[e+4>>2];a[v+8>>2]=a[e+8>>2];a[v+12>>2]=a[e+12>>2]}else{a[v>>2]=a[g>>2];a[v+4>>2]=a[g+4>>2];a[v+8>>2]=a[g+8>>2];a[v+12>>2]=a[g+12>>2]}r=C+260|0;o=f[r>>1]|0;w=a[C+220>>2]|0;a[d>>2]=a[v>>2];a[d+4>>2]=a[v+4>>2];a[d+8>>2]=a[v+8>>2];a[d+12>>2]=a[v+12>>2];tM(A,d,(o<<8&65535)<<16>>16>>15&255,w,(o<<14&65535)<<16>>16>>15&255);o=a[(a[h>>2]|0)+8>>2]|0;w=a[o>>2]|0;o=(a[o+4>>2]|0)+-1|0;e=a[w+(o*48|0)>>2]|0;i=a[w+(o*48|0)+4>>2]|0;Z=a[w+(o*48|0)+12>>2]|0;u=w+(o*48|0)+16|0;a[g>>2]=a[u>>2];a[g+4>>2]=a[u+4>>2];a[g+8>>2]=a[u+8>>2];a[g+12>>2]=a[u+12>>2];g=w+(o*48|0)+32|0;a[B>>2]=a[g>>2];a[B+4>>2]=a[g+4>>2];a[B+8>>2]=a[g+8>>2];a[B+12>>2]=a[g+12>>2];if(!Z){Z=e+(i+-1<<4)|0;a[v>>2]=a[Z>>2];a[v+4>>2]=a[Z+4>>2];a[v+8>>2]=a[Z+8>>2];a[v+12>>2]=a[Z+12>>2]}else{a[v>>2]=a[B>>2];a[v+4>>2]=a[B+4>>2];a[v+8>>2]=a[B+8>>2];a[v+12>>2]=a[B+12>>2]}e=f[r>>1]|0;Z=a[C+224>>2]|0;a[d>>2]=a[v>>2];a[d+4>>2]=a[v+4>>2];a[d+8>>2]=a[v+8>>2];a[d+12>>2]=a[v+12>>2];tM(A,d,(e<<7&65535)<<16>>16>>15&255,Z,(e<<13&65535)<<16>>16>>15&255);e=a[h>>2]|0}i=a[e+96>>2]|0;n=(f[r>>1]<<12&65535)<<16>>16>>15<<16>>16;b=C+216|0;l=a[b>>2]|0;u=C+232|0;t=a[u>>2]|0;w=C+248|0;c=a[w>>2]|0;o=C+212|0;s=a[o>>2]|0;if(!((vR(dR(E,a[47186]|0,137308)|0)|0)<<24>>24))e=0;else e=a[(a[h>>2]|0)+8>>2]|0;cM(A,i,11,n,l,t,c,s,e);c=a[(a[h>>2]|0)+108>>2]|0;s=(f[r>>1]<<12&65535)<<16>>16>>15<<16>>16;t=a[b>>2]|0;l=a[u>>2]|0;i=a[w>>2]|0;n=a[o>>2]|0;if(!((vR(dR(E,a[47186]|0,137308)|0)|0)<<24>>24))e=0;else e=a[(a[h>>2]|0)+8>>2]|0;cM(A,c,11,s,t,l,i,n,e);cM(A,a[(a[h>>2]|0)+100>>2]|0,7,(f[r>>1]<<13&65535)<<16>>16>>15<<16>>16,a[C+224>>2]|0,a[C+240>>2]|0,a[C+256>>2]|0,a[o>>2]|0,0);cM(A,a[(a[h>>2]|0)+104>>2]|0,6,(f[r>>1]<<14&65535)<<16>>16>>15<<16>>16,a[C+220>>2]|0,a[C+236>>2]|0,a[C+252>>2]|0,a[o>>2]|0,0);Pi(A);eI(A);k=I;return}function tM(A,e,i,r,n){A=A|0;e=e|0;i=i|0;r=r|0;n=n|0;var l=0,t=0,c=0;c=k;k=k+16|0;l=c;t=a[A+16>>2]|0;if(!(i<<24>>24))r=a[t+208>>2]|0;if(!(n<<24>>24==0?(r|0)==0?(f[t+260>>1]&1)==0:0:0)){a[l>>2]=a[e>>2];a[l+4>>2]=a[e+4>>2];a[l+8>>2]=a[e+8>>2];a[l+12>>2]=a[e+12>>2];wM(A,l)}k=c;return}function cM(A,e,i,f,n,l,t,c,s){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;l=l|0;t=t|0;c=c|0;s=s|0;var b=0,u=0,w=0,o=0,h=0,d=0;d=k;k=k+16|0;w=d;h=a[A+152>>2]|0;if(e|0?r[e+81>>0]|0:0){if(!c)u=0;else{u=qF((P2(c)|0)+11|0)|0;switch(i|0){case 11:{b=108224;break}case 7:{b=101583;break}case 6:{b=101593;break}default:gA(138394,99906,2730,100044)}a[w>>2]=c;a[w+4>>2]=b;S4(u,100060,w)|0}w=A+16|0;c=(a[w>>2]|0)+12|0;o=a[c>>2]|0;a[c>>2]=i;c=(f|0)!=0|(n|0)!=0;b=(h&4|0)==0;if(c&b){sM(A,e);Si(A,n,l,t,u)}jF(A,i,e);if(s|0)bM(A,e,s);if(c){if(!b){sM(A,e);Si(A,n,l,t,u)}Oi(A)}L2(u);a[(a[w>>2]|0)+12>>2]=o}k=d;return}function sM(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;i=a[A+16>>2]|0;r=a[A+152>>2]|0;if(r&4259840|0){f=r&131072;l=f>>>16^2;a[i+264>>2]=l;t=i+268|0;a[t>>2]=l+2;l=i+272|0;L2(a[l>>2]|0);i=qF(a[t>>2]<<4)|0;a[l>>2]=i;l=e+56|0;t=e+24|0;s[i>>3]=+s[l>>3]-+s[t>>3]*.5;n=e+64|0;e=e+32|0;s[i+8>>3]=+s[n>>3]-+s[e>>3]*.5;s[i+16>>3]=+s[t>>3]*.5+ +s[l>>3];s[i+24>>3]=+s[e>>3]*.5+ +s[n>>3];if(!(r&8192))zi(A,i,i,2)|0;if(!f)mF(i)}return}function bM(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0.0;w=k;k=k+96|0;n=w+80|0;l=w+32|0;t=w+16|0;c=w;f=a[e>>2]|0;while(1){b=r[f>>0]|0;if(!(b<<24>>24))break;if(!(m1(b&255)|0)){u=4;break}else f=f+1|0}if((u|0)==4){o=+s[e+24>>3];b=e+56|0;uM(l,+s[b>>3]+o*.5,+s[e+64>>3]-+s[e+32>>3]*.5);u=l+16|0;uM(t,+s[l>>3]-o,+s[l+8>>3]);a[u>>2]=a[t>>2];a[u+4>>2]=a[t+4>>2];a[u+8>>2]=a[t+8>>2];a[u+12>>2]=a[t+12>>2];u=l+32|0;a[n>>2]=a[b>>2];a[n+4>>2]=a[b+4>>2];a[n+8>>2]=a[b+8>>2];a[n+12>>2]=a[b+12>>2];DR(c,i,n);a[u>>2]=a[c>>2];a[u+4>>2]=a[c+4>>2];a[u+8>>2]=a[c+8>>2];a[u+12>>2]=a[c+12>>2];rr(A,a[(a[A>>2]|0)+336>>2]|0);$i(A,a[e+8>>2]|0);tr(A,l,3)}k=w;return}function uM(A,e,i){A=A|0;e=+e;i=+i;s[A>>3]=e;s[A+8>>3]=i;return}function wM(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0.0,l=0.0,t=0,c=0;i=a[A+16>>2]|0;r=a[A+152>>2]|0;if(r&4259840|0){f=r&131072;t=f>>>16^2;a[i+264>>2]=t;c=i+268|0;a[c>>2]=t+2;t=i+272|0;L2(a[t>>2]|0);i=qF(a[c>>2]<<4)|0;a[t>>2]=i;l=+s[e>>3];s[i>>3]=l+-3.0;n=+s[e+8>>3];s[i+8>>3]=n+-3.0;s[i+16>>3]=l+3.0;s[i+24>>3]=n+3.0;if(!(r&8192))zi(A,i,i,2)|0;if(!f)mF(i)}return}function kM(A,e,i,r,f,n,l){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=+n;l=+l;var t=0,s=0,b=0.0,u=0.0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0;F=k;k=k+256|0;y=F+224|0;L=F+208|0;t=F+192|0;z=F+144|0;Y=F+96|0;D=F+48|0;W=F;s=F+240|0;r=nI(r,f,s)|0;if((r|0)>1){G=e+48|0;m=Id(a[((a[e>>2]&3|0)==3?e:G)+40>>2]|0)|0;G=Vh(a[((a[e>>2]&3|0)==3?e:G)+40>>2]|0)|0;m=(Ih(m)|0)!=0;Q=Vh(a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)|0;a[t>>2]=G;a[t+4>>2]=m?100079:100084;a[t+8>>2]=Q;ao(3,100089,t)|0;if((r|0)==2)r=1;else M=4}else if((r|0)==1)r=1;else M=4;if((M|0)==4){Q=e+16|0;d=a[s>>2]|0;B=d+8|0;g=D+4|0;v=z+8|0;E=z+12|0;C=(i|0)!=0;h=(i|0)==0;I=z+32|0;Z=z+4|0;G=z+16|0;m=W+4|0;r=0;o=0;while(1){f=a[(a[Q>>2]|0)+8>>2]|0;if((o|0)>=(a[f+4>>2]|0))break;t=z;f=(a[f>>2]|0)+(o*48|0)|0;e=t+48|0;do{a[t>>2]=a[f>>2];t=t+4|0;f=f+4|0}while((t|0)<(e|0));e=1;b=1.0;w=a[B>>2]|0;A:while(1){f=a[w>>2]|0;if(!f)break;s=w+4|0;u=+c[s>>2];do{if(u<1.0e-05&u>-1.0e-05)f=e;else{$i(A,f);u=+c[s>>2];b=b-u;r=a[w>>2]|0;if(e|0){ZM(z,u,D,W);s=a[D>>2]|0;lr(A,s,a[g>>2]|0,0,0,0);L2(s);if(b<1.0e-05&b>-1.0e-05){M=11;break A}else{f=0;break}}if(b<1.0e-05&b>-1.0e-05){M=13;break A}t=Y;f=W;e=t+48|0;do{a[t>>2]=a[f>>2];t=t+4|0;f=f+4|0}while((t|0)<(e|0));u=+c[s>>2];ZM(Y,u/(b+u),D,W);L2(a[Y>>2]|0);f=a[D>>2]|0;lr(A,f,a[g>>2]|0,0,0,0);L2(f);f=0}}while(0);e=f;w=w+12|0}if((M|0)==11){M=0;L2(a[W>>2]|0)}else if((M|0)==13){M=0;w=a[W>>2]|0;lr(A,w,a[m>>2]|0,0,0,0);L2(w)}if(a[v>>2]|0){$i(A,a[a[B>>2]>>2]|0);er(A,a[a[B>>2]>>2]|0);s=a[z>>2]|0;w=a[v>>2]|0;a[L>>2]=a[G>>2];a[L+4>>2]=a[G+4>>2];a[L+8>>2]=a[G+8>>2];a[L+12>>2]=a[G+12>>2];a[y>>2]=a[s>>2];a[y+4>>2]=a[s+4>>2];a[y+8>>2]=a[s+8>>2];a[y+12>>2]=a[s+12>>2];_C(A,2,L,y,n,l,w)}if(a[E>>2]|0){$i(A,r);er(A,r);s=(a[z>>2]|0)+((a[Z>>2]|0)+-1<<4)|0;w=a[E>>2]|0;a[L>>2]=a[I>>2];a[L+4>>2]=a[I+4>>2];a[L+8>>2]=a[I+8>>2];a[L+12>>2]=a[I+12>>2];a[y>>2]=a[s>>2];a[y+4>>2]=a[s+4>>2];a[y+8>>2]=a[s+8>>2];a[y+12>>2]=a[s+12>>2];_C(A,3,L,y,n,l,w)}do{if((a[(a[(a[Q>>2]|0)+8>>2]|0)+4>>2]|0)>1){if(!(a[v>>2]|0)){if(!(C&(a[E>>2]|0)!=0))break}else if(h)break;rr(A,i)}}while(0);o=o+1|0}lI(d);r=0}k=F;return r|0}function oM(A,e){A=A|0;e=e|0;var i=0,f=0;i=1;A:while(1){switch(r[A>>0]|0){case 0:break A;case 58:{i=i+1|0;break}default:{}}A=A+1|0}f=U((P2(e)|0)+1|0,i)|0;A=f+10|0;if((a[47121]|0)<(f|0)){a[47121]=A;A=W2(a[47122]|0,A)|0;a[47122]=A}else A=a[47122]|0;$1(A,e)|0;while(1){i=i+-1|0;A=a[47122]|0;if(!i)break;f=A+(P2(A)|0)|0;r[f>>0]=58;r[f+1>>0]=0;w3(A,e)|0}return A|0}function hM(A){A=A|0;var e=0,i=0;e=a[47184]|0;A:do{if(!e)i=7;else{e=Uo(A,e)|0;switch(r[e>>0]|0){case 110:if(!(A1(e,135709)|0)){e=1;break A}else{i=7;break A}case 102:if(!(A1(e,100066)|0)){e=2;break A}else{i=7;break A}case 98:{if(!(A1(e,100074)|0)){e=3;break A}if(!(A1(e,111221)|0)){e=4;break A}else{i=7;break A}}default:{i=7;break A}}}}while(0);if((i|0)==7){e=(Ih(Id(a[((a[A>>2]&3|0)==2?A:A+-48|0)+40>>2]|0)|0)|0)!=0;e=e?2:1}return e|0}function dM(A){A=A|0;if(A|0){L2(a[A+8>>2]|0);L2(A)}return}function BM(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0,a=0.0;f=+s[e>>3]-+s[i>>3];a=+s[e+8>>3]-+s[i+8>>3];r=2.0/+z(+(f*f+.0001+a*a));s[A>>3]=r*a;s[A+8>>3]=-(f*r);return}function gM(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var a=0.0,n=0.0,l=0.0,t=0.0;n=+s[i>>3]-+s[r>>3];l=+s[i+8>>3]-+s[r+8>>3];a=+z(+(l*l+n*n));if(a<.0001){t=+s[e>>3]-+s[f>>3];a=+s[e+8>>3]-+s[f+8>>3];l=a;n=t;a=+z(+(t*t+.0001+a*a))}t=2.0/a;s[A>>3]=l*t;s[A+8>>3]=-(t*n);return}function vM(A,e,i){A=+A;e=+e;i=+i;return+(i*.5*(1.0-A/e))}function EM(A,e,i){A=+A;e=+e;i=+i;return+(i*.5)}function CM(A,e,i){A=+A;e=+e;i=+i;return+(i*.5*(A/e))}function IM(A,e,i){A=+A;e=+e;i=+i;e=A/e;return+((!(e<=.5)?1.0-e:e)*i)}function ZM(A,e,i,r){A=A|0;e=+e;i=i|0;r=r|0;var f=0.0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0.0,d=0,B=0;o=k;k=k+16|0;w=o;u=a[A+4>>2]|0;t=(u+-1|0)/3|0;if((u+-4|0)>>>0<3){a[i+4>>2]=4;a[i>>2]=qF(64)|0;a[r+4>>2]=4;u=qF(64)|0;a[r>>2]=u;QR(w,a[A>>2]|0,3,e,a[i>>2]|0,u)}else{u=qF(t<<3)|0;n=0;l=a[A>>2]|0;f=0.0;while(1){if((n|0)>=(t|0))break;h=+GM(l);s[u+(n<<3)>>3]=h;n=n+1|0;l=l+48|0;f=h+f}e=f*e;b=0;f=0.0;while(1){if((t|0)<=(b|0))break;f=+s[u+(b<<3)>>3]+f;if(f>=e)break;b=b+1|0}c=b*3|0;n=c+4|0;l=i+4|0;a[l>>2]=n;a[i>>2]=qF(n<<4)|0;n=((t-b|0)*3|0)+1|0;t=r+4|0;a[t>>2]=n;a[r>>2]=qF(n<<4)|0;n=0;while(1){if((n|0)>=(a[l>>2]|0))break;d=(a[i>>2]|0)+(n<<4)|0;B=(a[A>>2]|0)+(n<<4)|0;a[d>>2]=a[B>>2];a[d+4>>2]=a[B+4>>2];a[d+8>>2]=a[B+8>>2];a[d+12>>2]=a[B+12>>2];n=n+1|0}n=n+-4|0;l=0;while(1){if((l|0)>=(a[t>>2]|0))break;B=(a[r>>2]|0)+(l<<4)|0;d=(a[A>>2]|0)+(n<<4)|0;a[B>>2]=a[d>>2];a[B+4>>2]=a[d+4>>2];a[B+8>>2]=a[d+8>>2];a[B+12>>2]=a[d+12>>2];n=n+1|0;l=l+1|0}h=+s[u+(b<<3)>>3];QR(w,(a[A>>2]|0)+(c<<4)|0,3,(e-f+h)/h,(a[i>>2]|0)+(c<<4)|0,a[r>>2]|0);L2(u)}k=o;return}function GM(A){A=A|0;var e=0.0,i=0.0,r=0.0,f=0.0,a=0.0;f=+s[A+16>>3];r=+s[A>>3]-f;a=+s[A+24>>3];e=+s[A+8>>3]-a;r=+z(+(e*e+r*r));e=+s[A+32>>3];f=f-e;i=+s[A+40>>3];a=a-i;r=+z(+(a*a+f*f))+r;e=e-+s[A+48>>3];i=i-+s[A+56>>3];return+(r+ +z(+(i*i+e*e)))}function mM(A,e){A=A|0;e=e|0;e=Zd(e)|0;if((r[(a[e+16>>2]|0)+115>>0]|0)==1)e=EX(A)|0;else e=BX(A,e)|0;return DM(e)|0}function QM(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=+f;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0;h=k;k=k+1664|0;b=h+1600|0;u=h+800|0;w=h;o=$F(24)|0;a[o+16>>2]=1;c=((a[r+4>>2]|0)+-1|0)/3|0;l=0;t=o;while(1){if((l|0)>=(c|0))break;s=l*3|0;n=0;while(1){if((n|0)==4)break;d=b+(n<<4)|0;B=(a[r>>2]|0)+(n+s<<4)|0;a[d>>2]=a[B>>2];a[d+4>>2]=a[B+4>>2];a[d+8>>2]=a[B+8>>2];a[d+12>>2]=a[B+12>>2];n=n+1|0}l=l+1|0;t=LM(b,t)|0}n=0;l=0;t=o;while(1){if(!t){l=o;n=o;break}c=a[t+16>>2]|0;s=u+(n<<4)|0;r=w+(n<<4)|0;yM(l,t,c,s,r,f);n=n+1|0;if(!((n|0)==50|(c|0)==0)){l=t;t=c;continue}WM(A,e,i,n,u,w);a[u>>2]=a[s>>2];a[u+4>>2]=a[s+4>>2];a[u+8>>2]=a[s+8>>2];a[u+12>>2]=a[s+12>>2];a[w>>2]=a[r>>2];a[w+4>>2]=a[r+4>>2];a[w+8>>2]=a[r+8>>2];a[w+12>>2]=a[r+12>>2];l=t;n=1;t=c}while(1){if(!l)break;B=a[l+16>>2]|0;L2(n);l=B;n=B}k=h;return}function LM(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;n=k;k=k+144|0;f=n+128|0;i=n+64|0;r=n;if(!(uI(A)|0)){QR(f,A,3,.5,i,r);i=LM(r,LM(i,e)|0)|0}else{i=e+16|0;if((a[i>>2]|0)==1){a[i>>2]=0;a[e>>2]=a[A>>2];a[e+4>>2]=a[A+4>>2];a[e+8>>2]=a[A+8>>2];a[e+12>>2]=a[A+12>>2]}i=A+48|0;a[f>>2]=a[i>>2];a[f+4>>2]=a[i+4>>2];a[f+8>>2]=a[i+8>>2];a[f+12>>2]=a[i+12>>2];i=YM(f,e)|0}k=n;return i|0}function yM(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=+n;var l=0.0,t=0.0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0.0,g=0.0;d=k;k=k+96|0;u=d+80|0;b=d+64|0;c=d+48|0;w=d+32|0;o=d+16|0;h=d;a[w>>2]=a[e>>2];a[w+4>>2]=a[e+4>>2];a[w+8>>2]=a[e+8>>2];a[w+12>>2]=a[e+12>>2];do{if(A){a[o>>2]=a[A>>2];a[o+4>>2]=a[A+4>>2];a[o+8>>2]=a[A+8>>2];a[o+12>>2]=a[A+12>>2];if(!i){l=+s[w>>3];s[h>>3]=l*2.0-+s[o>>3];t=+s[w+8>>3];s[h+8>>3]=t*2.0-+s[o+8>>3];break}else{a[h>>2]=a[i>>2];a[h+4>>2]=a[i+4>>2];a[h+8>>2]=a[i+8>>2];a[h+12>>2]=a[i+12>>2];l=+s[w>>3];t=+s[w+8>>3];break}}else{a[h>>2]=a[i>>2];a[h+4>>2]=a[i+4>>2];a[h+8>>2]=a[i+8>>2];a[h+12>>2]=a[i+12>>2];l=+s[w>>3];s[o>>3]=l*2.0-+s[h>>3];t=+s[w+8>>3];s[o+8>>3]=t*2.0-+s[h+8>>3]}}while(0);a[c>>2]=a[o>>2];a[c+4>>2]=a[o+4>>2];a[c+8>>2]=a[o+8>>2];a[c+12>>2]=a[o+12>>2];a[b>>2]=a[w>>2];a[b+4>>2]=a[w+4>>2];a[b+8>>2]=a[w+8>>2];a[b+12>>2]=a[w+12>>2];a[u>>2]=a[h>>2];a[u+4>>2]=a[h+4>>2];a[u+8>>2]=a[h+8>>2];a[u+12>>2]=a[h+12>>2];g=+zM(c,b,u);B=+D(+g)*n;n=+M(+g)*n;s[r>>3]=l+B;s[r+8>>3]=t+n;s[f>>3]=l-B;s[f+8>>3]=t-n;k=d;return}function WM(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0,s=0,b=0;t=r<<1;c=a[i>>2]|0;l=0;s=0;while(1){if((l|0)>=(c|0))break;b=(a[(a[e>>2]|0)+(l<<2)>>2]|0)+s|0;l=l+1|0;s=b}b=c+1|0;a[i>>2]=b;b=eV(a[e>>2]|0,b<<2)|0;a[e>>2]=b;a[b+(l<<2)>>2]=t;a[A>>2]=eV(a[A>>2]|0,s+t<<4)|0;e=t+-1+s|0;l=0;while(1){if((l|0)>=(r|0))break;b=(a[A>>2]|0)+(l+s<<4)|0;c=f+(l<<4)|0;a[b>>2]=a[c>>2];a[b+4>>2]=a[c+4>>2];a[b+8>>2]=a[c+8>>2];a[b+12>>2]=a[c+12>>2];b=(a[A>>2]|0)+(e-l<<4)|0;c=n+(l<<4)|0;a[b>>2]=a[c>>2];a[b+4>>2]=a[c+4>>2];a[b+8>>2]=a[c+8>>2];a[b+12>>2]=a[c+12>>2];l=l+1|0}return}function zM(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0,a=0.0;a=+s[e+8>>3];r=+s[e>>3];f=+N(+(+s[i+8>>3]-a),+(+s[i>>3]-r));r=+N(+(+s[A+8>>3]-a),+(+s[A>>3]-r));f=f-r;return+((f>0.0?f+-6.283185307179586:f)*.5+r)}function YM(A,e){A=A|0;e=e|0;var i=0;i=$F(24)|0;a[i+16>>2]=0;a[i>>2]=a[A>>2];a[i+4>>2]=a[A+4>>2];a[i+8>>2]=a[A+8>>2];a[i+12>>2]=a[A+12>>2];a[e+16>>2]=i;return i|0}function DM(A){A=A|0;var e=0,i=0,f=0,a=0,n=0;e=A;a=A;A:while(1){f=0;while(1){i=e;e=e+1|0;i=r[i>>0]|0;if(!(i<<24>>24))break A;if(f<<24>>24){n=5;break}if(i<<24>>24!=92)break;else f=1}e:do{if((n|0)==5){n=0;switch(i<<24>>24|0){case 114:{i=13;break e}case 108:case 110:{i=10;break e}default:break e}}}while(0);r[a>>0]=i;a=a+1|0}r[a>>0]=0;return A|0}function MM(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0;i=a[A>>2]|0;while(1){n=r[i>>0]|0;if(!(n<<24>>24)){f=0;break}f=n<<24>>24;if(!(n<<24>>24==44|(m1(f)|0)!=0)){l=5;break}i=i+1|0}A:do{if((l|0)==5){switch(f|0){case 0:{f=0;break A}case 41:case 40:{i=i+1|0;break A}default:{}}l=e+4|0;t=e+8|0;while(1){if((FM(n<<24>>24)|0)<<24>>24){f=1;break A}f=a[l>>2]|0;if(f>>>0>=(a[t>>2]|0)>>>0){so(e,1)|0;f=a[l>>2]|0}a[l>>2]=f+1;r[f>>0]=n;f=i+1|0;i=f;n=r[f>>0]|0}}}while(0);a[A>>2]=i;return f|0}function FM(A){A=A|0;switch(A|0){case 0:case 44:case 41:case 40:{A=1;break}default:A=0}return A|0}function VM(A,e){A=A|0;e=e|0;return JM(a[A>>2]|0,a[A+160>>2]|0,a[A+156>>2]|0,e)|0}function JM(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;w=k;k=k+160|0;s=w+20|0;b=w+16|0;u=w;a[s>>2]=0;a[b>>2]=0;co(u,128,w+24|0);uo(u,f)|0;n=u+4|0;f=a[n>>2]|0;if(f>>>0>=(a[u+8>>2]|0)>>>0){so(u,1)|0;f=a[n>>2]|0}r[f>>0]=0;l=a[u>>2]|0;a[n>>2]=l;t=A+300|0;c=A+296|0;f=0;n=l;A:while(1){if(f){f=1;break}f=s3(n,a[t>>2]|0,s)|0;if(!f){f=0;break}n=s3(f,a[c>>2]|0,b)|0;l=(n|0)!=0;if(l)f=s3(0,a[c>>2]|0,b)|0;else f=0;switch(((f|0)!=0&1)+(l&1)&3){case 2:{n=pM(A,n,0)|0;f=pM(A,f,i)|0;l=(n|0)>(f|0);f=(f&n|0)>-1&(((l?n:f)|0)>=(e|0)&((l?f:n)|0)<=(e|0));n=0;continue A}case 1:{f=(pM(A,n,e)|0)==(e|0);n=0;continue A}default:{f=0;n=0;continue A}}}wo(u);k=w;return f|0}function pM(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0;l=r[e>>0]|0;if(!(l<<24>>24==97?(A1(e,100396)|0)==0:0))f=3;A:do{if((f|0)==3){if((NM(e)|0)<<24>>24){i=q3(e)|0;break}n=a[A+308>>2]|0;if(!n)i=-1;else{A=a[A+312>>2]|0;i=1;while(1){if((i|0)>(A|0)){i=-1;break A}f=a[n+(i<<2)>>2]|0;if(l<<24>>24==(r[f>>0]|0)?(A1(e,f)|0)==0:0)break A;i=i+1|0}}}}while(0);return i|0}function NM(A){A=A|0;var e=0;while(1){e=r[A>>0]|0;if(!(e<<24>>24)){A=1;break}if(((e&255)+-48|0)>>>0<10)A=A+1|0;else{A=0;break}}return A|0}function RM(A,e){A=A|0;e=e|0;if((+s[A+16>>3]>=+s[e>>3]?+s[e+16>>3]>=+s[A>>3]:0)?+s[A+24>>3]>=+s[e+8>>3]:0)A=+s[e+24>>3]>=+s[A+8>>3]&1;else A=0;return A|0}function XM(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0;A:do{if((a[A+156>>2]|0)>=2?(f=dR(i,a[47167]|0,195059)|0,(VM(A,f)|0)<<24>>24==0):0)if(!(r[f>>0]|0))if(!(Ah(e,i)|0))f=1;else{f=Ah(e,i)|0;while(1){if(!f){f=0;break A}n=dR(f,a[47190]|0,195059)|0;if(!(r[n>>0]|0)){f=1;break A}if((VM(A,n)|0)<<24>>24){f=1;break A}f=eh(e,f,i)|0}}else f=0;else f=1}while(0);return f|0}function HM(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;i=k;k=k+64|0;r=i+32|0;f=i;A=(a[A+16>>2]|0)+48|0;a[f>>2]=a[A>>2];a[f+4>>2]=a[A+4>>2];a[f+8>>2]=a[A+8>>2];a[f+12>>2]=a[A+12>>2];a[f+16>>2]=a[A+16>>2];a[f+20>>2]=a[A+20>>2];a[f+24>>2]=a[A+24>>2];a[f+28>>2]=a[A+28>>2];a[r>>2]=a[e>>2];a[r+4>>2]=a[e+4>>2];a[r+8>>2]=a[e+8>>2];a[r+12>>2]=a[e+12>>2];a[r+16>>2]=a[e+16>>2];a[r+20>>2]=a[e+20>>2];a[r+24>>2]=a[e+24>>2];a[r+28>>2]=a[e+28>>2];e=(RM(f,r)|0)&255;k=i;return e|0}function UM(A,e){A=A|0;e=e|0;var i=0.0,r=0,n=0,t=0,c=0,b=0,u=0,w=0,k=0,o=0,h=0.0,d=0,B=0,g=0,v=0.0,E=0.0;d=a[A+152>>2]|0;B=AI(A)|0;a[B+4>>2]=2;a[B+8>>2]=e;a[B+12>>2]=8;if(d&16777216|0){if((l[(a[(Id(e)|0)+16>>2]|0)+178>>1]|0)>2){i=+s[(a[(a[e+16>>2]|0)+132>>2]|0)+16>>3]*72.0;i=+(~~(i+(i>=0.0?.5:-.5))|0)}else i=0.0;s[B+168>>3]=i}c=e+16|0;TM(A,a[(a[c>>2]|0)+104>>2]|0,e);do{if(d&4259840|0){if((a[B+208>>2]|0)==0?(f[B+260>>1]&1)==0:0)break;o=bp(e)|0;b=a[c>>2]|0;i=+s[b+16>>3];h=+s[b+24>>3];b=jM(e)|0;A:do{if((o|2|0)==3){w=a[(a[c>>2]|0)+12>>2]|0;if(!((PM(w)|0)<<24>>24))r=0;else r=(a[w+4>>2]|b|0)!=0;if(!((d&524288|0)==0|((w|0)==0|r))){n=w+8|0;k=a[n>>2]|0;k=(k|0)<3?1:k;t=w+4|0;u=a[t>>2]|0;u=(u|0)>1?u:1;o=a[w+44>>2]|0;r=Ho(e,102705)|0;if(!r)r=0;else r=q3(r)|0;r=(r+-4|0)>>>0>56?20:r;if(!(a[t>>2]|b)){a[B+264>>2]=0;n=qF(32)|0;r=a[c>>2]|0;E=+s[r+88>>3];s[n>>3]=i-E;v=+s[r+80>>3]*.5;s[n+8>>3]=h-v;s[n+16>>3]=E+i;s[n+24>>3]=v+h;r=2;break}n=a[n>>2]|0;if(((n|0)<3?+s[w+32>>3]==0.0:0)?+s[w+24>>3]==0.0:0){n=B+264|0;if(a[w>>2]|0){a[n>>2]=1;n=qF(32)|0;s[n>>3]=i;s[n+8>>3]=h;r=(u<<1)+-1|0;s[n+16>>3]=+s[o+(r<<4)>>3]+i;s[n+24>>3]=+s[o+(r<<4)+8>>3]+h;r=2;break}a[n>>2]=2;n=(u<<1)+-1|0;n=SM(+s[o+(n<<4)>>3],+s[o+(n<<4)+8>>3],r)|0;t=0;while(1){if((t|0)>=(r|0))break A;o=n+(t<<4)|0;s[o>>3]=+s[o>>3]+i;o=n+(t<<4)+8|0;s[o>>3]=+s[o>>3]+h;t=t+1|0}}u=U(n,u+-1|0)|0;a[B+264>>2]=2;if((n|0)<(r|0)){n=qF(k<<4)|0;r=0;while(1){if((r|0)>=(k|0)){r=k;break A}w=r+u|0;s[n+(r<<4)>>3]=+s[o+(w<<4)>>3]+i;s[n+(r<<4)+8>>3]=+s[o+(w<<4)+8>>3]+h;r=r+1|0}}else{b=(n|0)/(r|0)|0;n=qF(r<<4)|0;t=0;c=0;while(1){if((t|0)>=(r|0))break A;k=c+u|0;s[n+(t<<4)>>3]=+s[o+(k<<4)>>3]+i;s[n+(t<<4)+8>>3]=+s[o+(k<<4)+8>>3]+h;t=t+1|0;c=c+b|0}}}else g=31}else g=31}while(0);if((g|0)==31){a[B+264>>2]=0;n=qF(32)|0;r=a[c>>2]|0;s[n>>3]=i-+s[r+88>>3];E=+s[r+80>>3]*.5;s[n+8>>3]=h-E;s[n+16>>3]=+s[r+96>>3]+i;s[n+24>>3]=E+h;r=2}if(!(d&8192))zi(A,n,n,r)|0;a[B+272>>2]=n;a[B+268>>2]=r}}while(0);mf(Ho(e,100032)|0);xi(A,e);return}function xM(A){A=A|0;Ti(A);eI(A);return}function TM(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0;b=k;k=k+144|0;c=b;f=Ho(i,141055)|0;t=Ho(i,141101)|0;s=Ho(i,141088)|0;co(c,128,b+16|0);if(!e)l=0;else l=a[e>>2]|0;if(!((f|0)!=0?(r[f>>0]|0)!=0:0))f=Ho(i,111477)|0;n=rI(A,i,c)|0;if(!t)e=0;else e=mM(t,i)|0;iI(A,l,f,e,s,n,i)|0;L2(e);wo(c);k=b;return}function jM(A){A=A|0;var e=0,i=0;A=BR(A,a[47157]|0,195059)|0;A:do{if(!(r[A>>0]|0))A=0;else{XI(A)|0;A=0;e=188228;while(1){i=a[e>>2]|0;if(!i)break A;i=(A1(i,111101)|0)==0;A=i?1:A;e=e+4|0}}}while(0);return A|0}function PM(A){A=A|0;var e=0.0;if(((a[A+8>>2]|0)==4?(e=+s[A+16>>3],((~~(e+(e>=0.0?.5:-.5))|0)%90|0|0)==0):0)?+s[A+24>>3]==0.0:0)A=+s[A+32>>3]==0.0&1;else A=0;return A|0}function SM(A,e,i){A=+A;e=+e;i=i|0;var r=0.0,f=0,a=0.0,n=0;a=6.283185307179586/+(i|0);n=qF(i<<4)|0;r=0.0;f=0;while(1){if((f|0)>=(i|0))break;s[n+(f<<4)>>3]=+D(+r)*A;s[n+(f<<4)+8>>3]=+M(+r)*e;r=r+a;f=f+1|0}return n|0}function OM(A,e){A=A|0;e=e|0;var i=0;A:do{if((a[A+156>>2]|0)>=2?(i=dR(e,Yo(e,0,101510,0)|0,195059)|0,(VM(A,i)|0)<<24>>24==0):0)if(!(r[i>>0]|0)){i=cd(e)|0;while(1){if(!i){i=0;break A}if((XM(A,e,i)|0)<<24>>24){i=1;break A}i=sd(e,i)|0}}else i=0;else i=1}while(0);return i|0}function KM(A,e){A=A|0;e=e|0;var i=0;i=AI(A)|0;a[i+4>>2]=1;a[i+8>>2]=e;a[i+12>>2]=1;TM(A,a[(a[e+16>>2]|0)+12>>2]|0,e);pi(A,e);return}function _M(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0;A=Ho(A,141082)|0;A:do{if((A|0)!=0?(r[A>>0]|0)!=0:0){XI(A)|0;i=188228;A=0;while(1){while(1){f=a[i>>2]|0;if(!f){i=188228;break A}if(!(A1(f,111101)|0)){n=10;break}if(!(A1(f,106334)|0)){f=i;n=12;break}if(!(A1(f,106341)|0)){f=i;n=14;break}if(!(A1(f,106316)|0)){f=i;n=16;break}i=i+4|0}if((n|0)==10){i=i+4|0;A=A|1;continue}else if((n|0)==12){while(1){l=f;f=f+4|0;n=a[f>>2]|0;a[l>>2]=n;if(!n)break;else n=12}A=A|3;continue}else if((n|0)==14){while(1){n=f;f=f+4|0;l=a[f>>2]|0;a[n>>2]=l;if(!l)break;else n=14}A=A|64;continue}else if((n|0)==16){while(1){n=f;f=f+4|0;l=a[f>>2]|0;a[n>>2]=l;if(!l)break;else n=16}A=A|4;continue}}}else{i=0;A=0}}while(0);a[e>>2]=A;return i|0}function qM(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,s=0,b=0;s=k;k=k+16|0;l=s;t=s+4|0;a[t>>2]=0;b=(nI(A,0,t)|0)==0;t=a[t>>2]|0;if((b?(f=a[t>>2]|0,(f|0)>=2):0)?(n=t+8|0,(a[a[n>>2]>>2]|0)!=0):0){if((f|0)>2)ao(0,100415,l)|0;b=$F((P2(A)|0)+1|0)|0;a[e>>2]=b;$1(b,a[a[n>>2]>>2]|0)|0;if(!(a[(a[n>>2]|0)+12>>2]|0))a[e+4>>2]=0;else{b=a[e>>2]|0;b=b+((P2(b)|0)+1)|0;a[e+4>>2]=b;$1(b,a[(a[n>>2]|0)+12>>2]|0)|0}A=a[n>>2]|0;do{if(!(r[A+8>>0]|0))if(!(r[A+20>>0]|0)){c[i>>2]=0.0;break}else{c[i>>2]=1.0-+c[A+16>>2];break}else a[i>>2]=a[A+4>>2]}while(0);lI(t);A=1}else{a[e>>2]=0;lI(t);A=0}k=s;return A|0}function $M(A,e){A=A|0;e=e|0;Ni(A,e);eI(A);return}function AF(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0.0,b=0.0,u=0,w=0.0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0;I=k;k=k+96|0;o=I+48|0;B=I+16|0;C=I+8|0;E=I;g=I+80|0;a[g>>2]=1e3;f=$F(16e3)|0;v=A+256|0;r=1;l=1;n=0;h=0;d=a[e+8>>2]|0;while(1){if((h|0)>=(a[e>>2]|0))break;i=a[d>>2]|0;A:do{switch(i|0){case 1:case 0:{u=d+80|0;a[B>>2]=a[u>>2];a[B+4>>2]=a[u+4>>2];a[B+8>>2]=a[u+8>>2];a[B+12>>2]=a[u+12>>2];a[B+16>>2]=a[u+16>>2];a[B+20>>2]=a[u+20>>2];a[B+24>>2]=a[u+24>>2];a[B+28>>2]=a[u+28>>2];a[o>>2]=a[v>>2];a[o+4>>2]=a[v+4>>2];a[o+8>>2]=a[v+8>>2];a[o+12>>2]=a[v+12>>2];a[o+16>>2]=a[v+16>>2];a[o+20>>2]=a[v+20>>2];a[o+24>>2]=a[v+24>>2];a[o+28>>2]=a[v+28>>2];if(!(RM(B,o)|0))i=l;else{G=d+8|0;m=d+24|0;s[f>>3]=+s[G>>3]-+s[m>>3];u=d+16|0;Z=d+32|0;s[f+8>>3]=+s[u>>3]-+s[Z>>3];s[f+16>>3]=+s[m>>3]+ +s[G>>3];s[f+24>>3]=+s[Z>>3]+ +s[u>>3];fr(A,f,2,(i|0)==0?l:0);i=l}break}case 3:case 2:{m=d+80|0;a[B>>2]=a[m>>2];a[B+4>>2]=a[m+4>>2];a[B+8>>2]=a[m+8>>2];a[B+12>>2]=a[m+12>>2];a[B+16>>2]=a[m+16>>2];a[B+20>>2]=a[m+20>>2];a[B+24>>2]=a[m+24>>2];a[B+28>>2]=a[m+28>>2];a[o>>2]=a[v>>2];a[o+4>>2]=a[v+4>>2];a[o+8>>2]=a[v+8>>2];a[o+12>>2]=a[v+12>>2];a[o+16>>2]=a[v+16>>2];a[o+20>>2]=a[v+20>>2];a[o+24>>2]=a[v+24>>2];a[o+28>>2]=a[v+28>>2];if(!(RM(B,o)|0))i=l;else{i=d+8|0;f=eF(f,g,a[i+4>>2]|0,a[i>>2]|0)|0;ar(A,f,a[i>>2]|0,(a[d>>2]|0)==2?l:0);i=l}break}case 5:case 4:{m=d+80|0;a[B>>2]=a[m>>2];a[B+4>>2]=a[m+4>>2];a[B+8>>2]=a[m+8>>2];a[B+12>>2]=a[m+12>>2];a[B+16>>2]=a[m+16>>2];a[B+20>>2]=a[m+20>>2];a[B+24>>2]=a[m+24>>2];a[B+28>>2]=a[m+28>>2];a[o>>2]=a[v>>2];a[o+4>>2]=a[v+4>>2];a[o+8>>2]=a[v+8>>2];a[o+12>>2]=a[v+12>>2];a[o+16>>2]=a[v+16>>2];a[o+20>>2]=a[v+20>>2];a[o+24>>2]=a[v+24>>2];a[o+28>>2]=a[v+28>>2];if(!(RM(B,o)|0))i=l;else{i=d+8|0;f=eF(f,g,a[i+4>>2]|0,a[i>>2]|0)|0;lr(A,f,a[i>>2]|0,0,0,(a[d>>2]|0)==4?l&255:0);i=l}break}case 6:{m=d+80|0;a[B>>2]=a[m>>2];a[B+4>>2]=a[m+4>>2];a[B+8>>2]=a[m+8>>2];a[B+12>>2]=a[m+12>>2];a[B+16>>2]=a[m+16>>2];a[B+20>>2]=a[m+20>>2];a[B+24>>2]=a[m+24>>2];a[B+28>>2]=a[m+28>>2];a[o>>2]=a[v>>2];a[o+4>>2]=a[v+4>>2];a[o+8>>2]=a[v+8>>2];a[o+12>>2]=a[v+12>>2];a[o+16>>2]=a[v+16>>2];a[o+20>>2]=a[v+20>>2];a[o+24>>2]=a[v+24>>2];a[o+28>>2]=a[v+28>>2];if(!(RM(B,o)|0))i=l;else{i=d+8|0;f=eF(f,g,a[i+4>>2]|0,a[i>>2]|0)|0;tr(A,f,a[i>>2]|0);i=l}break}case 7:{m=d+80|0;a[B>>2]=a[m>>2];a[B+4>>2]=a[m+4>>2];a[B+8>>2]=a[m+8>>2];a[B+12>>2]=a[m+12>>2];a[B+16>>2]=a[m+16>>2];a[B+20>>2]=a[m+20>>2];a[B+24>>2]=a[m+24>>2];a[B+28>>2]=a[m+28>>2];a[o>>2]=a[v>>2];a[o+4>>2]=a[v+4>>2];a[o+8>>2]=a[v+8>>2];a[o+12>>2]=a[v+12>>2];a[o+16>>2]=a[v+16>>2];a[o+20>>2]=a[v+20>>2];a[o+24>>2]=a[v+24>>2];a[o+28>>2]=a[v+28>>2];if(!(RM(B,o)|0))i=l;else{s[f>>3]=+s[d+8>>3];s[f+8>>3]=+s[d+16>>3];i=a[d+112>>2]|0;a[o>>2]=a[f>>2];a[o+4>>2]=a[f+4>>2];a[o+8>>2]=a[f+8>>2];a[o+12>>2]=a[f+12>>2];qi(A,o,i);i=l}break}case 8:{er(A,a[d+8>>2]|0);i=1;break}case 9:{$i(A,a[d+8>>2]|0);i=1;break}case 13:{if((a[d+8>>2]|0)!=2){i=d+16|0;G=a[i+36>>2]|0;m=a[G+12>>2]|0;w=+c[G+8>>2];i=~~(+N(+(+s[d+40>>3]-+s[d+24>>3]),+(+s[d+32>>3]-+s[i>>3]))*57.29577951308232);er(A,a[G+4>>2]|0);ir(A,m,i,w);i=2;break A}m=a[d+68>>2]|0;l=a[m+4>>2]|0;u=a[m+12>>2]|0;w=+c[m+8>>2];t=+s[d+40>>3];b=+s[d+16>>3];if(t==b?+s[d+48>>3]==+s[d+24>>3]:0)i=0;else i=~~(+V(+((b-t)/+s[d+32>>3]))*57.29577951308232);er(A,l);ir(A,u,i,w);i=3;break}case 14:{ao(0,100481,E)|0;i=l;break}case 12:{if(!r){r=0;i=l}else{ao(0,100521,C)|0;r=0;i=l}break}case 11:{XI(a[d+8>>2]|0)|0;rr(A,188228);n=188228;i=l;break}default:i=l}}while(0);l=i;h=h+1|0;d=d+120|0}if(n|0)rr(A,a[(a[A>>2]|0)+336>>2]|0);L2(f);k=I;return}function eF(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0;n=a[e>>2]|0;f=n<<1;f=(f|0)>(r|0)?f:r;if((n|0)<(r|0)){A=eV(A,f<<4)|0;a[e>>2]=f}e=0;while(1){if((e|0)>=(r|0))break;s[A+(e<<4)>>3]=+s[i+(e*24|0)>>3];s[A+(e<<4)+8>>3]=+s[i+(e*24|0)+8>>3];e=e+1|0}return A|0}function iF(A,e){A=A|0;e=e|0;var i=0;i=a[e>>2]|0;a[A>>2]=a[e+4>>2];a[A+4>>2]=i;return}function rF(A,e){A=A|0;e=e|0;var i=0,f=0,n=0;n=e+16|0;f=1;while(1){e=a[n>>2]|0;if((f|0)>(a[e+180>>2]|0))break;i=a[(a[e+184>>2]|0)+(f<<2)>>2]|0;rF(A,i);e=Ho(i,140823)|0;if(e|0?r[e>>0]|0:0)$i(A,e);e=Ho(i,137729)|0;if(e|0?r[e>>0]|0:0)$i(A,e);e=Ho(i,140977)|0;if(e|0?r[e>>0]|0:0)$i(A,e);e=Ho(i,101418)|0;if(e|0?r[e>>0]|0:0)er(A,e);e=Ho(i,101446)|0;if(e|0?r[e>>0]|0:0)$i(A,e);f=f+1|0}return}function fF(A){A=A|0;var e=0,i=0,r=0;e=a[47127]|0;if(!e){e=jk(20628,a[4581]|0)|0;a[47127]=e}if(!(y5[a[e>>2]&63](e,A,4)|0)){i=a[47127]|0;r=a[i>>2]|0;e=b3(A)|0;y5[r&63](i,e,1)|0;e=1}else e=0;return e|0}function aF(A,e,i){A=A|0;e=e|0;i=i|0;L2(e);return}function nF(A){A=A|0;var e=0;e=a[47128]|0;if(!A){if((e|0)>0?(e=e+-1|0,a[47128]=e,(e|0)==0):0){D4(1,a[47129]|0)|0;L2(a[47129]|0)}}else{a[47128]=e+1;if(!e){a[47129]=b3(D4(1,0)|0)|0;D4(1,153563)|0}}return}function lF(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0.0;v=k;k=k+96|0;d=v+72|0;h=v+56|0;o=v+48|0;g=v+32|0;B=v+24|0;r=v+8|0;i=v;if(0){}do{if((Td(e,137483,0,1)|0)!=0?(w=e+16|0,(a[(a[w>>2]|0)+8>>2]|0)!=0):0){tF(e);cF(A,e);sF(A,e);nF(1);t=A+56|0;c=A+184|0;b=A+192|0;u=A+28|0;l=Wv(A)|0;A:while(1){if(!l){n=33;break}i=a[t>>2]|0;if(!i){a[l+20>>2]=0;i=0}else{a[l+20>>2]=a[i+8>>2];i=a[i+12>>2]|0}a[l+24>>2]=i;a[l+12>>2]=A;a[l+28>>2]=a[c>>2];a[l+620>>2]=25764;a[l+624>>2]=14;if(!(a[(a[w>>2]|0)+8>>2]|0)){n=13;break}r=l+52|0;n=Qi(l,a[r>>2]|0)|0;a[l+56>>2]=n;switch(n|0){case 999:{n=16;break A}case 21:{i=1;break}case 24:{i=520;break}default:i=bF(e)|0}f=l+152|0;a[f>>2]=a[f>>2]|i;i=a[b>>2]|0;do{if(!i)n=24;else{if(a[i+152>>2]&32|0?(A1(a[r>>2]|0,a[i+52>>2]|0)|0)==0:0){i=a[47130]|0;if(!i){n=27;break}a[i+8>>2]=l;a[l+36>>2]=a[i+36>>2];n=29;break}yi(i);a[b>>2]=0;a[u>>2]=0;n=24}}while(0);if((n|0)==24){a[47130]=0;n=27}if((n|0)==27?(n=0,(Li(l)|0)==0):0){a[b>>2]=l;n=29}if((n|0)==29){a[l+8>>2]=0;a[l+104>>2]=25876;uF(l);wF(l);kF(l,e);oF(l,e);hF(l,e);if(!(a[f>>2]&128))BI(l,e);a[47130]=l}l=zv(A)|0}if((n|0)==13){ao(1,100679,B)|0;nF(0);if(true){i=-1;break}i=a[15712]|0;B=Vh(e)|0;E=+cR();a[g>>2]=B;s[g+8>>3]=E;f3(i,100650,g)|0;i=-1;break}else if((n|0)==16){a[o>>2]=a[r>>2];ao(1,100700,o)|0;nF(0);if(true){i=-1;break}i=a[15712]|0;g=Vh(e)|0;E=+cR();a[h>>2]=g;s[h+8>>3]=E;f3(i,100650,h)|0;i=-1;break}else if((n|0)==33){nF(0);if(true){i=0;break}i=a[15712]|0;g=Vh(e)|0;E=+cR();a[d>>2]=g;s[d+8>>3]=E;f3(i,100650,d)|0;i=0;break}}else n=5}while(0);if((n|0)==5){ao(1,100602,i)|0;if(true)i=-1;else{}}k=v;return i|0}function tF(A){A=A|0;var e=0;e=cd(A)|0;while(1){if(!e)break;EF(A,e);e=sd(A,e)|0}return}function cF(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0.0;w=k;k=k+32|0;c=w+24|0;f=w+16|0;t=w+8|0;u=w;a[A+168>>2]=e;n=A+293|0;r[n>>0]=0;i=Ho(e,105496)|0;if(i|0?(a[f>>2]=t,a[f+4>>2]=u,l=J3(i,105503,f)|0,(l|0)>0):0){o=+s[t>>3]*72.0;i=A+208|0;s[i>>3]=o;s[A+200>>3]=o;if((l|0)!=1)s[i>>3]=+s[u>>3]*72.0;r[n>>0]=1}f=A+292|0;r[f>>0]=0;i=Ho(e,101102)|0;if(i|0?(a[c>>2]=t,a[c+4>>2]=u,b=J3(i,105503,c)|0,(b|0)>0):0){o=+s[t>>3]*72.0;i=A+224|0;s[i>>3]=o;s[A+216>>3]=o;if((b|0)!=1)s[i>>3]=+s[u>>3]*72.0;r[f>>0]=1}i=A+294|0;r[i>>0]=0;f=A+232|0;n=e+16|0;u=(a[(a[n>>2]|0)+8>>2]|0)+48|0;a[f>>2]=a[u>>2];a[f+4>>2]=a[u+4>>2];a[f+8>>2]=a[u+8>>2];a[f+12>>2]=a[u+12>>2];f=a[(a[n>>2]|0)+8>>2]|0;if(+s[f+48>>3]>.001?+s[f+56>>3]>.001:0)r[i>>0]=1;a[A+288>>2]=r[f+81>>0]|0?90:0;i=A+196|0;a[i>>2]=101106;f=Ho(e,101109)|0;if(f|0?r[f>>0]|0:0)a[i>>2]=f;u=A+256|0;b=(a[n>>2]|0)+16|0;a[u>>2]=a[b>>2];a[u+4>>2]=a[b+4>>2];a[u+8>>2]=a[b+8>>2];a[u+12>>2]=a[b+12>>2];a[u+16>>2]=a[b+16>>2];a[u+20>>2]=a[b+20>>2];a[u+24>>2]=a[b+24>>2];a[u+28>>2]=a[b+28>>2];a[47141]=Yo(e,0,101472,0)|0;a[47142]=Yo(e,0,101463,0)|0;a[A+320>>2]=BR(0,a[47151]|0,107994)|0;s[A+328>>3]=+oR(0,a[47150]|0,14.0,1.0);a[A+336>>2]=20664;a[A+188>>2]=Vh(e)|0;k=w;return}function sF(A,e){A=A|0;e=e|0;var i=0,f=0,n=0;i=A+304|0;f=a[i>>2]|0;if(f|0){L2(f);a[i>>2]=0}f=A+308|0;i=a[f>>2]|0;if(i|0){L2(i);a[f>>2]=0}n=A+316|0;i=a[n>>2]|0;if(i|0){L2(i);a[n>>2]=0}i=Ho(e,100853)|0;if(i){a[A+312>>2]=gF(A,e,i)|0;i=Ho(e,100860)|0;if(i|0?r[i>>0]|0:0)a[n>>2]=vF(A,i)|0}else{a[f>>2]=0;a[A+312>>2]=1}return}function bF(A){A=A|0;A=Ho(A,100821)|0;A:do{if(!A)A=0;else switch(r[A>>0]|0){case 110:{if(!(A1(A+1|0,100833)|0))A=1;else{A=0;break A}break}case 101:{if(!(A1(A+1|0,100843)|0))A=16;else{A=0;break A}break}default:{A=0;break A}}}while(0);return A|0}function uF(A){A=A|0;var e=0.0,i=0;i=a[A>>2]|0;if(!(r[i+292>>0]|0)){if((a[A+56>>2]|0)==300)e=+s[(a[A+68>>2]|0)+8>>3];else e=4.0;s[A+248>>3]=e;s[A+240>>3]=e}else{A=A+240|0;i=i+216|0;a[A>>2]=a[i>>2];a[A+4>>2]=a[i+4>>2];a[A+8>>2]=a[i+8>>2];a[A+12>>2]=a[i+12>>2]}return}function wF(A){A=A|0;var e=0;e=a[A>>2]|0;A:do{if(!(r[e+293>>0]|0))switch(a[A+56>>2]|0){case 300:{e=A+416|0;A=(a[A+84>>2]|0)+8|0;a[e>>2]=a[A>>2];a[e+4>>2]=a[A+4>>2];a[e+8>>2]=a[A+8>>2];a[e+12>>2]=a[A+12>>2];break A}case 30:case 21:case 22:case 4:case 3:case 2:{s[A+424>>3]=36.0;s[A+416>>3]=36.0;break A}default:{e=A+416|0;a[e>>2]=0;a[e+4>>2]=0;a[e+8>>2]=0;a[e+12>>2]=0;break A}}else{A=A+416|0;e=e+200|0;a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2]}}while(0);return}function kF(A,e){A=A|0;e=e|0;var i=0.0,f=0;f=a[(a[A>>2]|0)+192>>2]|0;i=+s[(a[(a[e+16>>2]|0)+8>>2]|0)+24>>3];do{if(!(i!=0.0)){if(f|0?r[f+128>>0]|0:0){A=A+432|0;f=f+112|0;a[A>>2]=a[f>>2];a[A+4>>2]=a[f+4>>2];a[A+8>>2]=a[f+8>>2];a[A+12>>2]=a[f+12>>2];break}e=A+432|0;if((a[A+56>>2]|0)==300){A=(a[A+84>>2]|0)+40|0;a[e>>2]=a[A>>2];a[e+4>>2]=a[A+4>>2];a[e+8>>2]=a[A+8>>2];a[e+12>>2]=a[A+12>>2];break}else{s[A+440>>3]=96.0;s[e>>3]=96.0;break}}else{s[A+440>>3]=i;s[A+432>>3]=i}}while(0);return}function oF(A,e){A=A|0;e=e|0;var i=0.0,f=0.0,n=0,l=0.0,t=0.0,c=0.0,b=0,u=0,w=0.0,o=0.0,h=0.0,d=0.0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0;m=k;k=k+112|0;g=m+80|0;v=m+56|0;B=m+40|0;E=m+32|0;C=m+24|0;I=m+16|0;Z=m+8|0;G=m;b=a[A>>2]|0;w=+s[b+272>>3];h=+s[b+280>>3];o=+s[b+256>>3];d=+s[b+264>>3];f=+s[A+240>>3];i=o-f;s[A+208>>3]=i;l=+s[A+248>>3];t=d-l;s[A+216>>3]=t;f=f+w;s[A+224>>3]=f;l=l+h;s[A+232>>3]=l;i=f-i;t=l-t;s[I>>3]=1.0;n=a[(a[e+16>>2]|0)+8>>2]|0;l=+s[n+64>>3];do{if(l>.001?(c=+s[n+72>>3],c>.001):0){i=i==0.0?l:i;f=t==0.0?c:t;if(!(lf&(l>i&(r[n+80>>0]|0)!=0)):0){c=i;t=f;l=1.0;break}u=l/i>3]=l;c=i;t=f}else{c=i;l=1.0}}while(0);f=(o+w)*.5;s[Z>>3]=f;i=(d+h)*.5;s[G>>3]=i;a[A+360>>2]=a[b+288>>2];c=l*c;s[E>>3]=c;t=l*t;s[C>>3]=t;n=Ho(e,100752)|0;if(n){b=Q2((P2(n)|0)+1|0)|0;u=Q2((P2(n)|0)+1|0)|0;a[B>>2]=E;a[B+4>>2]=C;a[B+8>>2]=I;a[B+12>>2]=b;do{if((J3(n,100761,B)|0)==4){n=gd(a[e+60>>2]|0,b,0)|0;if(n|0){v=a[n+16>>2]|0;s[Z>>3]=+s[v+16>>3];s[G>>3]=+s[v+24>>3]}}else{a[v>>2]=E;a[v+4>>2]=C;a[v+8>>2]=I;a[v+12>>2]=b;a[v+16>>2]=u;if((J3(n,100781,v)|0)!=4){a[g>>2]=E;a[g+4>>2]=C;a[g+8>>2]=I;a[g+12>>2]=Z;a[g+16>>2]=G;J3(n,100801,g)|0;break}n=gd(a[e+60>>2]|0,b,0)|0;if(n|0){v=a[n+16>>2]|0;s[Z>>3]=+s[v+16>>3];s[G>>3]=+s[v+24>>3]}}}while(0);L2(b);L2(u);c=+s[E>>3];t=+s[C>>3];l=+s[I>>3];f=+s[Z>>3];i=+s[G>>3]}s[A+368>>3]=c;s[A+376>>3]=t;s[A+352>>3]=l;s[A+336>>3]=f;s[A+344>>3]=i;k=m;return}function hF(A,e){A=A|0;e=e|0;var i=0,f=0,n=0.0,l=0.0,t=0,c=0.0,b=0.0,u=0.0,w=0.0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0.0,R=0.0,X=0.0;p=k;k=k+224|0;F=p+200|0;G=p+168|0;W=p+144|0;M=p+120|0;z=p+96|0;Y=p+64|0;i=p+184|0;E=p+176|0;C=p+160|0;Z=p+136|0;I=p+112|0;m=p+80|0;Q=p+48|0;L=p+32|0;y=p+16|0;V=p+8|0;J=p;v=a[A>>2]|0;a[Y>>2]=0;a[Y+4>>2]=0;a[Y+8>>2]=0;a[Y+12>>2]=0;D=A+368|0;a[M>>2]=a[D>>2];a[M+4>>2]=a[D+4>>2];a[M+8>>2]=a[D+8>>2];a[M+12>>2]=a[D+12>>2];D=A+360|0;if(a[D>>2]|0){a[F>>2]=a[M>>2];a[F+4>>2]=a[M+4>>2];a[F+8>>2]=a[M+8>>2];a[F+12>>2]=a[M+12>>2];dF(i,F);a[M>>2]=a[i>>2];a[M+4>>2]=a[i+4>>2];a[M+8>>2]=a[i+8>>2];a[M+12>>2]=a[i+12>>2]}g=A+416|0;a[z>>2]=a[g>>2];a[z+4>>2]=a[g+4>>2];a[z+8>>2]=a[g+8>>2];a[z+12>>2]=a[g+12>>2];if((r[v+294>>0]|0)!=0?(a[A+152>>2]&32|0)!=0:0){l=+s[v+232>>3]-+s[z>>3]*2.0;s[W>>3]=l;c=+s[v+240>>3]-+s[z+8>>3]*2.0;o=W+8|0;s[o>>3]=c;if(!(l<.0001)){w=+s[M>>3];i=~~(w/l);f=A+164|0;a[f>>2]=i;if(w-l*+(i|0)>.0001){i=i+1|0;a[f>>2]=i}}else{a[A+164>>2]=1;i=1}if(!(c<.0001)){n=+s[M+8>>3];f=~~(n/c);t=A+168|0;a[t>>2]=f;if(n-c*+(f|0)>.0001){f=f+1|0;a[t>>2]=f}}else{a[A+168>>2]=1;f=1;n=+s[M+8>>3]}a[A+204>>2]=U(f,i)|0;w=+s[(+s[M>>3]>3];s[M>>3]=w;i=o;f=M;b=+s[(n>3];n=w;t=21}else{if(a[A+68>>2]|0){i=a[A+84>>2]|0;l=+s[i+24>>3]-+s[z>>3]*2.0;l=l<0.0?0.0:l;s[W>>3]=l;w=+s[i+32>>3]-+s[z+8>>3]*2.0;i=W+8|0;s[i>>3]=w;if(w<0.0){f=W;t=17}else i=W}else{s[W+8>>3]=0.0;f=W;i=W;t=17}if((t|0)==17){s[i>>3]=0.0;i=f;l=+s[f>>3]}a[A+204>>2]=1;a[A+168>>2]=1;a[A+164>>2]=1;n=+s[M>>3];if(l>3]=n;l=n}i=W+8|0;c=+s[i>>3];b=+s[M+8>>3];if(c>3]=b;d=i;b=+s[i>>3]}u=+s[z>>3];B=A+432|0;c=+s[B>>3]*.013888888888888888*(u*2.0+l);a[A+448>>2]=~~(c+(c>=0.0?.5:-.5));h=z+8|0;c=+s[h>>3];g=A+440|0;w=+s[g>>3]*.013888888888888888*(c*2.0+b);a[A+452>>2]=~~(w+(w>=0.0?.5:-.5));t=A+188|0;o=A+180|0;i=A+172|0;f=v+196|0;a[i>>2]=0;a[i+4>>2]=0;a[i+8>>2]=0;a[i+12>>2]=0;a[i+16>>2]=0;a[i+20>>2]=0;BF(E,A,r[a[f>>2]>>0]|0);v=E;E=a[v+4>>2]|0;i=o;a[i>>2]=a[v>>2];a[i+4>>2]=E;BF(C,A,r[(a[f>>2]|0)+1>>0]|0);i=C;C=a[i>>2]|0;i=a[i+4>>2]|0;E=t;a[E>>2]=C;a[E+4>>2]=i;C=(a[o>>2]|0)+C|0;if(!((((C|0)>-1?C:0-C|0)|0)==1?(C=(a[A+184>>2]|0)+i|0,(((C|0)>-1?C:0-C|0)|0)==1):0)){BF(Z,A,66);E=Z;Z=a[E+4>>2]|0;C=o;a[C>>2]=a[E>>2];a[C+4>>2]=Z;BF(I,A,76);C=I;I=a[C+4>>2]|0;Z=t;a[Z>>2]=a[C>>2];a[Z+4>>2]=I;a[G>>2]=a[f>>2];ao(0,100732,G)|0}if(r[(a[(a[e+16>>2]|0)+8>>2]|0)+82>>0]|0){if(l>n){b=(l-n)*.5;s[Y>>3]=b}else b=0.0;l=+s[d>>3];w=+s[M+8>>3];if(l>w){l=(l-w)*.5;s[Y+8>>3]=l}else l=0.0}else{l=0.0;b=0.0}if(!(a[D>>2]|0))t=1;else{a[F>>2]=a[M>>2];a[F+4>>2]=a[M+4>>2];a[F+8>>2]=a[M+8>>2];a[F+12>>2]=a[M+12>>2];dF(m,F);a[M>>2]=a[m>>2];a[M+4>>2]=a[m+4>>2];a[M+8>>2]=a[m+8>>2];a[M+12>>2]=a[m+12>>2];a[F>>2]=a[W>>2];a[F+4>>2]=a[W+4>>2];a[F+8>>2]=a[W+8>>2];a[F+12>>2]=a[W+12>>2];dF(Q,F);a[W>>2]=a[Q>>2];a[W+4>>2]=a[Q+4>>2];a[W+8>>2]=a[Q+8>>2];a[W+12>>2]=a[Q+12>>2];a[F>>2]=a[z>>2];a[F+4>>2]=a[z+4>>2];a[F+8>>2]=a[z+8>>2];a[F+12>>2]=a[z+12>>2];dF(L,F);a[z>>2]=a[L>>2];a[z+4>>2]=a[L+4>>2];a[z+8>>2]=a[L+8>>2];a[z+12>>2]=a[L+12>>2];a[F>>2]=a[Y>>2];a[F+4>>2]=a[Y+4>>2];a[F+8>>2]=a[Y+8>>2];a[F+12>>2]=a[Y+12>>2];dF(y,F);a[Y>>2]=a[y>>2];a[Y+4>>2]=a[y+4>>2];a[Y+8>>2]=a[y+8>>2];a[Y+12>>2]=a[y+12>>2];u=+s[z>>3];b=+s[Y>>3];c=+s[h>>3];l=+s[Y+8>>3];n=+s[M>>3];t=(a[D>>2]|0)==0}w=b+u;s[A+384>>3]=w;R=l+c;s[A+392>>3]=R;N=b+u+n;s[A+400>>3]=N;X=+s[M+8>>3];u=l+c+X;s[A+408>>3]=u;b=+s[A+352>>3];s[A+320>>3]=n/b;s[A+328>>3]=X/b;b=+s[B>>3];w=w*.013888888888888888*b;f=A+456|0;a[f>>2]=~~(w+(w>=0.0?.5:-.5));w=+s[g>>3];c=R*.013888888888888888*w;a[A+460>>2]=~~(c+(c>=0.0?.5:-.5));b=N*.013888888888888888*b;i=A+464|0;a[i>>2]=~~(b+(b>=0.0?.5:-.5));w=u*.013888888888888888*w;a[A+468>>2]=~~(w+(w>=0.0?.5:-.5));if(!t){a[F>>2]=a[f>>2];a[F+4>>2]=a[f+4>>2];iF(V,F);M=V;V=a[M+4>>2]|0;A=f;a[A>>2]=a[M>>2];a[A+4>>2]=V;a[F>>2]=a[i>>2];a[F+4>>2]=a[i+4>>2];iF(J,F);A=J;V=a[A+4>>2]|0;J=i;a[J>>2]=a[A>>2];a[J+4>>2]=V}k=p;return}function dF(A,e){A=A|0;e=e|0;var i=0.0;i=+s[e>>3];s[A>>3]=+s[e+8>>3];s[A+8>>3]=i;return}function BF(A,e,i){A=A|0;e=e|0;i=i|0;i=(i<<24>>24)+-66|0;switch(i>>>1|i<<31|0){case 9:{a[e+176>>2]=(a[e+168>>2]|0)+-1;e=0;i=-1;break}case 0:{e=0;i=1;break}case 5:{e=1;i=0;break}case 8:{a[e+172>>2]=(a[e+164>>2]|0)+-1;e=-1;i=0;break}default:{e=0;i=0}}a[A>>2]=e;a[A+4>>2]=i;return}function gF(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0;c=k;k=k+16|0;n=c;f=Ho(e,100973)|0;t=A+296|0;a[t>>2]=(f|0)==0?100982:f;e=Ho(e,100986)|0;f=A+300|0;e=(e|0)==0?100999:e;a[f>>2]=e;e=k3(a[t>>2]|0,e)|0;if(e|0){a[n>>2]=r[e>>0];ao(0,101001,n)|0;a[f>>2]=195059}e=b3(i)|0;a[A+304>>2]=e;l=A+308|0;f=0;A=0;while(1){i=t3(e,a[t>>2]|0)|0;if(!i)break;n=A+1|0;if((A|0)<(f|0))e=a[l>>2]|0;else{f=f+128|0;e=a[l>>2]|0;if(!e)e=$F(f<<2)|0;else e=eV(e,f<<2)|0;a[l>>2]=e}a[e+(n<<2)>>2]=i;A=n;e=0}if(A|0){t=eV(a[l>>2]|0,(A<<2)+8|0)|0;a[l>>2]=t;a[t>>2]=0;a[(a[l>>2]|0)+(A+1<<2)>>2]=0}k=c;return A|0}function vF(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0;s=k;k=k+16|0;c=s;t=A+312|0;i=$F((a[t>>2]<<2)+8|0)|0;r=0;l=1;while(1){n=a[t>>2]|0;if((l|0)>(n|0))break;f=r+1|0;if((JM(A,l,n,e)|0)<<24>>24){a[i+(f<<2)>>2]=l;r=f}l=l+1|0}if(!r){a[c>>2]=e;ao(0,100872,c)|0;L2(i);i=0}else{a[i>>2]=r;a[i+(r+1<<2)>>2]=(a[t>>2]|0)+1}k=s;return i|0}function EF(A,e){A=A|0;e=e|0;var i=0,r=0.0,f=0.0,n=0.0;i=a[e+16>>2]|0;n=+s[i+16>>3];s[i+48>>3]=n-+s[i+88>>3];r=+s[i+24>>3];f=+s[i+80>>3]*.5;s[i+56>>3]=r-f;s[i+64>>3]=+s[i+96>>3]+n;s[i+72>>3]=f+r;e=Oo(A,e)|0;while(1){if(!e)break;CF(e);e=_o(A,e)|0}return}function CF(A){A=A|0;A=a[(a[A+16>>2]|0)+8>>2]|0;if(A|0)IF(A);return}function IF(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0;L=k;k=k+240|0;E=L+192|0;v=L+176|0;C=L+64|0;I=L+32|0;Z=L;G=L+144|0;m=L+112|0;Q=A+4|0;if((a[Q>>2]|0)<=0)gA(101140,99906,3994,101154);e=a[A>>2]|0;i=C;r=e;f=i+48|0;do{a[i>>2]=a[r>>2];i=i+4|0;r=r+4|0}while((i|0)<(f|0));i=E;r=e;f=i+48|0;do{a[i>>2]=a[r>>2];i=i+4|0;r=r+4|0}while((i|0)<(f|0));ZF(I,E);l=I+8|0;t=Z+8|0;c=I+16|0;b=Z+16|0;u=I+24|0;w=Z+24|0;o=C+8|0;h=C+12|0;d=C+32|0;B=C+4|0;g=C+16|0;n=0;while(1){if((n|0)>=(a[Q>>2]|0))break;if((n|0)>0){e=(a[A>>2]|0)+(n*48|0)|0;i=C;r=e;f=i+48|0;do{a[i>>2]=a[r>>2];i=i+4|0;r=r+4|0}while((i|0)<(f|0));i=E;r=e;f=i+48|0;do{a[i>>2]=a[r>>2];i=i+4|0;r=r+4|0}while((i|0)<(f|0));ZF(Z,E);s[I>>3]=+s[(+s[I>>3]<+s[Z>>3]?I:Z)>>3];s[l>>3]=+s[(+s[l>>3]<+s[t>>3]?I:Z)+8>>3];s[c>>3]=+s[(+s[c>>3]>+s[b>>3]?I:Z)+16>>3];s[u>>3]=+s[(+s[u>>3]>+s[w>>3]?I:Z)+24>>3]}e=a[o>>2]|0;if(e|0){f=a[C>>2]|0;a[v>>2]=a[g>>2];a[v+4>>2]=a[g+4>>2];a[v+8>>2]=a[g+8>>2];a[v+12>>2]=a[g+12>>2];a[E>>2]=a[f>>2];a[E+4>>2]=a[f+4>>2];a[E+8>>2]=a[f+8>>2];a[E+12>>2]=a[f+12>>2];KC(G,v,E,1.0,e);a[Z>>2]=a[G>>2];a[Z+4>>2]=a[G+4>>2];a[Z+8>>2]=a[G+8>>2];a[Z+12>>2]=a[G+12>>2];a[Z+16>>2]=a[G+16>>2];a[Z+20>>2]=a[G+20>>2];a[Z+24>>2]=a[G+24>>2];a[Z+28>>2]=a[G+28>>2];s[I>>3]=+s[(+s[I>>3]<+s[Z>>3]?I:Z)>>3];s[l>>3]=+s[(+s[l>>3]<+s[t>>3]?I:Z)+8>>3];s[c>>3]=+s[(+s[c>>3]>+s[b>>3]?I:Z)+16>>3];s[u>>3]=+s[(+s[u>>3]>+s[w>>3]?I:Z)+24>>3]}e=a[h>>2]|0;if(e|0){f=(a[C>>2]|0)+((a[B>>2]|0)+-1<<4)|0;a[v>>2]=a[d>>2];a[v+4>>2]=a[d+4>>2];a[v+8>>2]=a[d+8>>2];a[v+12>>2]=a[d+12>>2];a[E>>2]=a[f>>2];a[E+4>>2]=a[f+4>>2];a[E+8>>2]=a[f+8>>2];a[E+12>>2]=a[f+12>>2];KC(m,v,E,1.0,e);a[Z>>2]=a[m>>2];a[Z+4>>2]=a[m+4>>2];a[Z+8>>2]=a[m+8>>2];a[Z+12>>2]=a[m+12>>2];a[Z+16>>2]=a[m+16>>2];a[Z+20>>2]=a[m+20>>2];a[Z+24>>2]=a[m+24>>2];a[Z+28>>2]=a[m+28>>2];s[I>>3]=+s[(+s[I>>3]<+s[Z>>3]?I:Z)>>3];s[l>>3]=+s[(+s[l>>3]<+s[t>>3]?I:Z)+8>>3];s[c>>3]=+s[(+s[c>>3]>+s[b>>3]?I:Z)+16>>3];s[u>>3]=+s[(+s[u>>3]>+s[w>>3]?I:Z)+24>>3]}n=n+1|0}Q=A+8|0;a[Q>>2]=a[I>>2];a[Q+4>>2]=a[I+4>>2];a[Q+8>>2]=a[I+8>>2];a[Q+12>>2]=a[I+12>>2];a[Q+16>>2]=a[I+16>>2];a[Q+20>>2]=a[I+20>>2];a[Q+24>>2]=a[I+24>>2];a[Q+28>>2]=a[I+28>>2];k=L;return}function ZF(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0.0,o=0.0,h=0.0,d=0.0,B=0.0,g=0;u=k;k=k+48|0;l=u+32|0;t=u;c=a[e+4>>2]|0;if((c|0)<=0)gA(101170,99906,3968,101182);if(((c>>>0)%3|0|0)!=1)gA(101192,99906,3969,101182);b=t+16|0;i=a[e>>2]|0;a[b>>2]=a[i>>2];a[b+4>>2]=a[i+4>>2];a[b+8>>2]=a[i+8>>2];a[b+12>>2]=a[i+12>>2];a[t>>2]=a[i>>2];a[t+4>>2]=a[i+4>>2];a[t+8>>2]=a[i+8>>2];a[t+12>>2]=a[i+12>>2];r=l+8|0;f=t+8|0;n=t+24|0;e=1;while(1){if((e|0)>=(c|0))break;o=+s[i+(e<<4)+8>>3];g=e+1|0;w=+s[i+(g<<4)+8>>3];d=(+s[i+(g<<4)>>3]+ +s[i+(e<<4)>>3])*.5;s[l>>3]=d;o=(w+o)*.5;s[r>>3]=o;w=+s[(+s[t>>3]>3];s[t>>3]=w;B=+s[(+s[f>>3]>3];s[f>>3]=B;d=+s[(+s[b>>3]>d?b:l)>>3];s[b>>3]=d;o=+s[(+s[n>>3]>o?b:l)+8>>3];s[n>>3]=o;g=i+(e+2<<4)|0;a[l>>2]=a[g>>2];a[l+4>>2]=a[g+4>>2];a[l+8>>2]=a[g+8>>2];a[l+12>>2]=a[g+12>>2];h=+s[l>>3];s[t>>3]=+s[(w>3];w=+s[r>>3];s[f>>3]=+s[(B>3];s[b>>3]=+s[(d>h?b:l)>>3];s[n>>3]=+s[(o>w?b:l)+8>>3];e=e+3|0}a[A>>2]=a[t>>2];a[A+4>>2]=a[t+4>>2];a[A+8>>2]=a[t+8>>2];a[A+12>>2]=a[t+12>>2];a[A+16>>2]=a[t+16>>2];a[A+20>>2]=a[t+20>>2];a[A+24>>2]=a[t+24>>2];a[A+28>>2]=a[t+28>>2];k=u;return}function GF(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0.0,a=0.0,n=0.0,l=0,t=0.0,c=0,b=0,u=0.0,w=0.0,k=0.0,o=0.0,h=0.0,d=0.0;h=+s[A>>3];d=+s[i>>3];c=!(h>=d);if((!c?h<=+s[i+16>>3]:0)?(f=+s[A+8>>3],f>=+s[i+8>>3]):0)l=f<=+s[i+24>>3];else l=0;f=+s[e>>3];if((f>=d?f<=+s[i+16>>3]:0)?(a=+s[e+8>>3],a>=+s[i+8>>3]):0){r=a<=+s[i+24>>3];if(!(l^r))if(l&r)r=1;else b=11;else r=0}else if(l)r=0;else b=11;A:do{if((b|0)==11){o=+s[A+8>>3];do{if(h==f){d=+s[i+8>>3];if(!(c|o>=d^+s[e+8>>3]>=d^1)?h<=+s[i+16>>3]:0){r=0;break A}}else{t=+s[e+8>>3];if(o==t){if(!(h>=d^f>=d))break;if(!(o>=+s[i+8>>3]))break;if(!(o<=+s[i+24>>3]))break;else{r=0;break A}}k=(t-o)/(f-h);b=h>3];if(!(!(d>=n)|!(d<=f)|!(a>=u))?a<=+s[i+24>>3]:0){r=0;break A}w=+s[i+16>>3];a=(w-d)*k+a;if(a>=u?!(!(w<=f)|(w>=n?!(a<=+s[i+24>>3]):1)):0){r=0;break A}b=o=d?!(!(u<=a)|(!(u>=n)|!(f<=w))):0){r=0;break A}o=+s[i+24>>3];h=(o-u)/k+f;if(h>=d?!(!(o<=a)|(!(o>=n)|!(h<=w))):0){r=0;break A}}}while(0);r=-1}}while(0);return r|0}function mF(A){A=A|0;var e=0,i=0.0;e=A+16|0;i=+s[e>>3];s[A+32>>3]=i;s[A+48>>3]=i;s[A+40>>3]=+s[A+24>>3];s[A+56>>3]=+s[A+8>>3];s[e>>3]=+s[A>>3];return}function QF(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0,n=0.0,l=0.0;if((a[47131]|0)!=(i|0)){E1(+(i|0)*.15915494309189535,186328,186336);a[47131]=i}n=+s[e>>3];r=+s[23292];f=+s[e+8>>3];l=+s[23291];s[A>>3]=r*n-l*f;s[A+8>>3]=l*n+f*r;return}function LF(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0,n=0.0,l=0,t=0,c=0;c=k;k=k+16|0;f=c;r=+s[e>>3];l=e+8|0;n=+s[l>>3];A:do{switch(i|0){case 0:{t=11;break}case 90:{s[e>>3]=n;r=-r;t=10;break}case 180:{r=-n;t=10;break}case 270:{s[e>>3]=n;t=10;break}default:{if((i|0)<0){a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];yF(A,f,0-i|0);break A}if((i|0)>360){a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];LF(A,f,(i>>>0)%360|0);break A}else{a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];QF(A,f,i);break A}}}}while(0);if((t|0)==10){s[l>>3]=r;t=11}if((t|0)==11){a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2]}k=c;return}function yF(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0,n=0.0,l=0,t=0,c=0;c=k;k=k+16|0;f=c;r=+s[e>>3];l=e+8|0;n=+s[l>>3];A:do{switch(i|0){case 0:{t=11;break}case 90:{s[e>>3]=-n;t=10;break}case 180:{r=-n;t=10;break}case 270:{s[e>>3]=n;t=10;break}default:{if((i|0)<0){a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];LF(A,f,0-i|0);break A}if((i|0)>360){a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];yF(A,f,(i>>>0)%360|0);break A}else{a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];QF(A,f,360-i|0);break A}}}}while(0);if((t|0)==10){s[l>>3]=r;t=11}if((t|0)==11){a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2]}k=c;return}function WF(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0,a=0.0,n=0.0;n=+s[i>>3];r=+s[i+8>>3];a=r+ +s[e>>3];f=n+ +s[e+24>>3];r=r+ +s[e+16>>3];s[A>>3]=n+ +s[e+8>>3];s[A+8>>3]=a;s[A+16>>3]=f;s[A+24>>3]=r;return}function zF(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0,a=0.0,n=0.0;a=+s[A>>3];r=+s[e>>3]-a;n=+s[A+8>>3];f=+s[e+8>>3]-n;a=(+s[i+8>>3]-n)*r-(+s[i>>3]-a)*f;a=a*a;return+(a<1.0e-10?0.0:a/(f*f+r*r))}function YF(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;n=k;k=k+16|0;f=n+8|0;r=n;A=Ho(A,e)|0;if(A|0?(a[f>>2]=r,(J3(A,101209,f)|0)>0):0)s[i>>3]=+s[r>>3];k=n;return}function DF(A,e){A=A|0;e=e|0;var i=0,f=0.0,n=0,l=0,t=0,c=0,b=0,u=0;u=k;k=k+16|0;n=u+8|0;l=u;i=qF(96)|0;b=A+16|0;a[(a[b>>2]|0)+8>>2]=i;i=Ho(A,101213)|0;if(!i){i=SA(101222)|0;if(i|0)c=3}else c=3;if((c|0)==3)ae(101234,i|0,1)|0;i=(MF(A)|0)&255;r[(a[b>>2]|0)+115>>0]=i;if(true?(i=Ho(A,101245)|0,a[47133]=i,(i|0)==0):undefined)a[47133]=a[47132];f=+oR(A,Yo(A,0,101255,0)|0,0.0,0.0);s[a[(a[b>>2]|0)+8>>2]>>3]=f;i=Ho(A,101263)|0;A:do{if(!i)i=0;else{switch(r[i>>0]|0){case 76:{if(!(A1(i,101271)|0)){i=1;break A}break}case 66:{if(!(A1(i,101274)|0)){i=2;break A}break}case 82:{i=(A1(i,101277)|0)==0;i=i?3:0;break A}default:{i=0;break A}}i=0}}while(0);a[(a[b>>2]|0)+116>>2]=i<<2|(e<<24>>24==0?0:i);f=+oR(A,Yo(A,0,101280,0)|0,.25,.02);s[l>>3]=f;f=f*72.0;a[(a[b>>2]|0)+248>>2]=~~(f+(f>=0.0?.5:-.5));i=dR(A,Yo(A,0,101288,0)|0,0)|0;if(i){a[n>>2]=l;if(J3(i,101209,n)|0){f=+s[l>>3];if(f<.02){s[l>>3]=.02;f=.02}}else{s[l>>3]=.5;f=.5}if(N4(i,101296)|0)r[(a[b>>2]|0)+276>>0]=1}else{s[l>>3]=.5;f=.5}f=f*72.0;a[(a[b>>2]|0)+252>>2]=~~(f+(f>=0.0?.5:-.5));l=(kR(A,Yo(A,0,101304,0)|0,0,0)|0)&255;r[(a[b>>2]|0)+243>>0]=l;l=YR(dR(A,Yo(A,0,101314,0)|0,0)|0,20676,20692)|0;a[(a[b>>2]|0)+244>>2]=l;FF(A);l=VF(A,101324,(a[(a[b>>2]|0)+8>>2]|0)+64|0)|0;i=a[(a[b>>2]|0)+8>>2]|0;r[i+80>>0]=l;VF(A,101329,i+48|0)|0;i=vR(Ho(A,101334)|0)|0;r[(a[(a[b>>2]|0)+8>>2]|0)+82>>0]=i;i=Ho(A,101341)|0;do{if(!i){i=Ho(A,101348)|0;if(i|0){i=(r[i>>0]|32)<<24>>24==108&1;c=27;break}i=Ho(A,101360)|0;if(i|0){i=vR(i)|0;c=27}}else{i=(q3(i)|0)==90&1;c=27}}while(0);if((c|0)==27)r[(a[(a[b>>2]|0)+8>>2]|0)+81>>0]=i;a[47135]=YR(Ho(A,101370)|0,20708,20724)|0;r[194954]=vR(Ho(A,101382)|0)|0;a[47138]=0;a[47139]=0;s[(a[(a[b>>2]|0)+8>>2]|0)+24>>3]=0.0;i=Ho(A,101394)|0;if((i|0)!=0?(r[i>>0]|0)!=0:0)c=32;else c=30;if(((c|0)==30?(t=Ho(A,101398)|0,t|0):0)?r[t>>0]|0:0){i=t;c=32}if((c|0)==32){f=+$3(i);s[(a[(a[b>>2]|0)+8>>2]|0)+24>>3]=f}JF(A);s[23295]=1.e+37;a[47140]=Yo(A,0,101409,0)|0;a[47143]=Yo(A,0,141034,0)|0;a[47144]=Yo(A,0,105496,0)|0;a[47145]=Yo(A,1,141048,0)|0;a[47146]=Yo(A,1,141116,0)|0;a[47147]=Yo(A,1,108230,0)|0;a[47148]=Yo(A,1,140823,0)|0;a[47149]=Yo(A,1,101418,0)|0;a[47157]=Yo(A,1,141082,0)|0;a[47150]=Yo(A,1,101428,0)|0;a[47151]=Yo(A,1,101437,0)|0;a[47152]=Yo(A,1,101446,0)|0;c=Yo(A,1,108224,0)|0;a[47154]=c;if(!c)a[47154]=Yo(A,1,108224,105493)|0;a[47155]=Yo(A,1,101456,0)|0;a[47158]=Yo(A,1,101304,0)|0;a[47172]=Yo(A,1,101463,0)|0;a[47161]=Yo(A,1,101409,0)|0;a[47153]=Yo(A,1,105496,0)|0;a[47159]=Yo(A,1,141076,0)|0;a[47160]=Yo(A,1,101472,0)|0;a[47163]=Yo(A,1,101484,0)|0;a[47162]=Yo(A,1,101348,0)|0;a[47164]=Yo(A,1,101489,0)|0;a[47165]=Yo(A,1,141024,0)|0;a[47166]=Yo(A,1,137297,0)|0;a[47156]=Yo(A,1,101500,0)|0;a[47167]=Yo(A,1,101510,0)|0;a[47168]=Yo(A,1,101516,0)|0;a[47169]=Yo(A,1,101522,0)|0;a[47170]=Yo(A,1,101530,0)|0;a[47171]=Yo(A,1,101539,0)|0;a[47173]=Yo(A,1,141034,0)|0;a[47174]=Yo(A,2,101541,0)|0;a[47176]=Yo(A,2,140823,0)|0;a[47177]=Yo(A,2,101418,0)|0;a[47179]=Yo(A,2,101428,0)|0;a[47180]=Yo(A,2,101437,0)|0;a[47181]=Yo(A,2,101446,0)|0;a[47182]=Yo(A,2,108224,0)|0;a[47183]=Yo(A,2,101456,0)|0;a[47192]=Yo(A,2,101548,0)|0;a[47184]=Yo(A,2,101559,0)|0;a[47195]=Yo(A,2,101563,0)|0;a[47196]=Yo(A,2,101573,0)|0;a[47197]=Yo(A,2,101583,0)|0;a[47198]=Yo(A,2,101593,0)|0;a[47199]=Yo(A,2,101603,0)|0;a[47200]=Yo(A,2,101617,0)|0;a[47201]=Yo(A,2,101631,0)|0;a[47202]=Yo(A,2,101646,0)|0;a[47203]=Yo(A,2,101660,0)|0;a[47175]=Yo(A,2,101671,0)|0;a[47187]=Yo(A,2,101304,0)|0;a[47185]=Yo(A,2,141082,0)|0;a[47186]=Yo(A,2,101678,0)|0;a[47188]=Yo(A,2,101687,0)|0;a[47189]=Yo(A,2,101697,0)|0;a[47190]=Yo(A,2,101510,0)|0;a[47191]=Yo(A,2,101522,0)|0;a[47204]=Yo(A,2,101708,0)|0;a[47205]=Yo(A,2,101717,0)|0;a[47206]=Yo(A,2,101463,0)|0;i=$C(A)|0;a[(a[(a[b>>2]|0)+8>>2]|0)+88>>2]=i;i=Ho(A,141060)|0;if(i|0?r[i>>0]|0:0){A=PF(i,A)|0;a[(a[(a[b>>2]|0)+8>>2]|0)+92>>2]=A}k=u;return}function MF(A){A=A|0;var e=0,i=0;i=k;k=k+16|0;e=i;A=BR(A,Yo(A,0,101807,0)|0,101815)|0;if(((((((p1(A,101821)|0)!=0?(p1(A,101829)|0)!=0:0)?(p1(A,101836)|0)!=0:0)?(p1(A,101839)|0)!=0:0)?(p1(A,101850)|0)!=0:0)?(p1(A,101861)|0)!=0:0)?(p1(A,101871)|0)!=0:0)if((p1(A,101882)|0)!=0?(p1(A,101888)|0)!=0:0)if((p1(A,101815)|0)!=0?(p1(A,101893)|0)!=0:0){a[e>>2]=A;ao(0,101898,e)|0;A=0}else A=0;else A=2;else A=1;k=i;return A|0}function FF(A){A=A|0;var e=0.0,i=0,f=0;i=Ho(A,101765)|0;A:do{if(i|0?(f=r[i>>0]|0,f<<24>>24):0)switch(f<<24>>24|0){case 97:{if(f<<24>>24!=97)break A;if(A1(i,101771)|0)break A;a[(a[(a[A+16>>2]|0)+8>>2]|0)+84>>2]=4;break A}case 99:{if(f<<24>>24!=99)break A;if(A1(i,101776)|0)break A;a[(a[(a[A+16>>2]|0)+8>>2]|0)+84>>2]=3;break A}case 101:{if(f<<24>>24!=101)break A;if(A1(i,101785)|0)break A;a[(a[(a[A+16>>2]|0)+8>>2]|0)+84>>2]=5;break A}case 102:{if(f<<24>>24!=102)break A;if(A1(i,101792)|0)break A;a[(a[(a[A+16>>2]|0)+8>>2]|0)+84>>2]=2;break A}default:{e=+$3(i);if(!(e>0.0))break A;A=a[(a[A+16>>2]|0)+8>>2]|0;a[A+84>>2]=1;s[A+16>>3]=e;break A}}}while(0);return}function VF(A,e,i){A=A|0;e=e|0;i=i|0;var f=0.0,n=0.0,l=0,t=0,c=0,b=0,u=0,w=0;w=k;k=k+48|0;b=w+32|0;l=w+16|0;c=w+8|0;t=w;u=w+40|0;r[u>>0]=0;A=Ho(A,e)|0;do{if(A){a[l>>2]=c;a[l+4>>2]=t;a[l+8>>2]=u;l=(J3(A,101749,l)|0)>1;n=+s[c>>3];f=+s[t>>3];if(l&n>0.0&f>0.0){n=n*72.0;s[i>>3]=+(~~(n+(n>=0.0?.5:-.5))|0);n=f*72.0;s[i+8>>3]=+(~~(n+(n>=0.0?.5:-.5))|0);A=(r[u>>0]|0)==33;break}r[u>>0]=0;a[b>>2]=c;a[b+4>>2]=u;b=(J3(A,101759,b)|0)>0;f=+s[c>>3];if(b&f>0.0){n=f*72.0;n=+(~~(n+(n>=0.0?.5:-.5))|0);s[i>>3]=n;s[i+8>>3]=n;A=(r[u>>0]|0)==33}else A=0}else A=0}while(0);k=w;return A&1|0}function JF(A){A=A|0;var e=0,i=0,f=0.0,n=0.0,l=0;e=Ho(A,108224)|0;do{if(e|0?r[e>>0]|0:0){i=(a[(a[A+60>>2]|0)+16>>2]|0)+113|0;r[i>>0]=r[i>>0]|8;i=(tB(e)|0)!=0;n=+oR(A,Yo(A,0,101428,0)|0,14.0,1.0);l=BR(A,Yo(A,0,101437,0)|0,107994)|0;e=HF(A,e,i?2:0,n,l,BR(A,Yo(A,0,101446,0)|0,137314)|0)|0;l=A+16|0;a[(a[l>>2]|0)+12>>2]=e;e=Ho(A,105628)|0;i=(e|0)!=0;do{if((Zd(A)|0)==(A|0)){if(i?(r[e>>0]|0)==116:0){e=1;break}e=0}else{if(i?(r[e>>0]|0)==98:0){e=0;break}e=1}}while(0);i=Ho(A,101726)|0;A:do{if(i)switch(r[i>>0]|0){case 108:{e=e|2;break A}case 114:{e=e|4;break A}default:break A}}while(0);r[(a[l>>2]|0)+275>>0]=e;if((Zd(A)|0)!=(A|0)){e=a[(a[l>>2]|0)+12>>2]|0;f=+s[e+24>>3]+16.0;n=+s[e+32>>3]+8.0;A=(a[(a[(Zd(A)|0)+16>>2]|0)+116>>2]&1|0)==0;e=a[l>>2]|0;i=r[e+275>>0]<<1&2;if(A){A=i&255;s[e+48+(A<<4)>>3]=f;s[e+48+(A<<4)+8>>3]=n;break}else{A=(i^3)&255;s[e+48+(A<<4)>>3]=n;s[e+48+(A<<4)+8>>3]=f;break}}}}while(0);return}function pF(A){A=A|0;var e=0,i=0,r=0;r=A+16|0;i=a[r>>2]|0;e=a[i+8>>2]|0;do{if(!e)e=i;else{i=a[e+88>>2]|0;if(i){WC(i);i=a[r>>2]|0;e=a[i+8>>2]|0;if(!e){e=i;break}}L2(a[e+92>>2]|0);e=a[r>>2]|0}}while(0);L2(a[e+8>>2]|0);r=a[r>>2]|0;a[r+8>>2]=0;TF(a[r+12>>2]|0);_d(A,0,137483);return}function NF(A){A=A|0;var e=0,i=0;i=k;k=k+16|0;e=i;switch(A|0){case 0:{A=101971;break}case 1:{A=101839;break}case 2:{A=101977;break}default:{a[e>>2]=A;ao(1,101941,e)|0;A=101971}}k=i;return A|0}function RF(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0;f=a[e>>2]|0;b=e+24|0;a[b>>2]=0;a[b+4>>2]=0;a[b+8>>2]=0;a[b+12>>2]=0;if(r[f>>0]|0){t=$F((P2(f)|0)+1|0)|0;r[t>>0]=0;c=e+12|0;i=t;A:while(1){e:while(1){l=f+1|0;n=r[f>>0]|0;if(!(n<<24>>24))break A;if(!(n<<24>>24==-1|((n&255)<161|(a[c>>2]|0)!=2))){r[i>>0]=n;l=r[l>>0]|0;n=i+2|0;r[i+1>>0]=l;if(!(l<<24>>24)){i=n;break A}else{i=n;f=f+2|0;continue}}switch(n<<24>>24){case 92:break e;case 10:{s=12;break e}default:{}}r[i>>0]=n;i=i+1|0;f=l}if((s|0)==12){s=0;f=i+1|0;r[i>>0]=0;XF(A,e,t,110);i=f;t=f;f=l;continue}n=r[l>>0]|0;switch(n<<24>>24|0){case 114:case 108:case 110:{n=i+1|0;r[i>>0]=0;XF(A,e,t,r[l>>0]|0);i=n;break}default:{r[i>>0]=n;i=i+1|0;n=t}}t=n;f=(r[l>>0]|0)==0?l:f+2|0}if((t|0)!=(i|0)){r[i>>0]=0;XF(A,e,t,110)}e=e+40|0;a[e>>2]=a[b>>2];a[e+4>>2]=a[b+4>>2];a[e+8>>2]=a[b+8>>2];a[e+12>>2]=a[b+12>>2]}return}function XF(A,e,i,n){A=A|0;e=e|0;i=i|0;n=n|0;var l=0.0,t=0.0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0;B=k;k=k+32|0;h=B+16|0;o=B;d=e+76|0;c=f[d>>1]|0;w=e+72|0;b=a[w>>2]|0;if(!b)u=qF((c*56|0)+112|0)|0;else u=AV(b,c+2|0,56,c+1|0)|0;a[w>>2]=u;c=f[d>>1]|0;b=u+(c*56|0)|0;a[b>>2]=i;r[u+(c*56|0)+48>>0]=n;if((i|0)!=0?(r[i>>0]|0)!=0:0){a[46594]=a[e+4>>2];s[23299]=+s[e+16>>3];n=a[A+144>>2]|0;a[u+(c*56|0)+4>>2]=y5[a[n>>2]&63](n,186376,1)|0;AR(o,A,b);t=+s[o>>3];s[h>>3]=t;l=+s[o+8>>3]}else{s[h>>3]=0.0;l=+(~~(+s[e+16>>3]*1.2)|0);s[u+(c*56|0)+40>>3]=l;t=0.0}f[d>>1]=(f[d>>1]|0)+1<<16>>16;d=e+24|0;s[d>>3]=+s[(+s[d>>3]>t?d:h)>>3];d=e+32|0;s[d>>3]=+s[d>>3]+l;k=B;return}function HF(A,e,i,f,l,t){A=A|0;e=e|0;i=i|0;f=+f;l=l|0;t=t|0;var c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0;v=k;k=k+32|0;d=v+16|0;h=v+8|0;o=v;g=qF(88)|0;switch(Md(A)|0){case 0:{b=0;B=a[A+60>>2]|0;u=A;w=0;break}case 1:{b=0;B=Zd(Id(A)|0)|0;u=0;w=A;break}case 2:{b=A;B=Zd(Id(a[((a[A>>2]&3|0)==2?A:A+-48|0)+40>>2]|0)|0)|0;u=0;w=0;break}default:{b=0;B=0;u=0;w=0}}a[g+4>>2]=l;a[g+8>>2]=t;s[g+16>>3]=f;c=B+16|0;t=g+12|0;a[t>>2]=n[(a[c>>2]|0)+115>>0];A:do{if(i&4){a[g>>2]=b3(e)|0;if(i&2|0)r[g+82>>0]=1}else switch(i|0){case 2:{a[g>>2]=b3(e)|0;r[g+82>>0]=1;if(!(va(A,g)|0))break A;switch(Md(A)|0){case 0:{a[o>>2]=Vh(u)|0;ao(3,101983,o)|0;break A}case 1:{a[h>>2]=Vh(w)|0;ao(3,102005,h)|0;break A}case 2:{o=Vh(a[((a[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0;h=(Ih(B)|0)!=0;B=Vh(a[((a[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0;a[d>>2]=o;a[d+4>>2]=h?137738:141747;a[d+8>>2]=B;ao(3,102026,d)|0;break A}default:break A}}case 0:{l=UF(e,A,0)|0;a[g>>2]=l;if((a[t>>2]|0)==1)l=EX(l)|0;else l=BX(l,B)|0;L2(a[g>>2]|0);a[g>>2]=l;RF(a[(a[c>>2]|0)+144>>2]|0,g);break A}default:gA(102053,102069,166,102078)}}while(0);k=v;return g|0}function UF(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0;switch(Md(e)|0){case 0:{t=Vh(e)|0;n=P2(t)|0;f=a[(a[e+16>>2]|0)+12>>2]|0;if(f){f=a[f>>2]|0;if(!A){E=0;g=2;v=2;B=2;l=2;Z=102101;u=102098;c=105493;k=195059;h=195059;o=0;d=0;w=2;C=f;I=102095}else{E=0;g=2;v=2;B=2;l=2;Z=102101;u=102098;c=105493;k=195059;h=195059;o=0;d=0;w=P2(f)|0;C=f;I=102095}}else{E=0;g=2;v=2;B=2;l=2;Z=102101;u=102098;c=105493;k=195059;h=195059;o=0;d=0;w=2;C=102089;I=102095}break}case 1:{t=Vh(Id(e)|0)|0;n=P2(t)|0;c=Vh(e)|0;l=P2(c)|0;f=a[(a[e+16>>2]|0)+104>>2]|0;if(f){f=a[f>>2]|0;if(!A){E=0;g=2;v=2;B=2;Z=102101;u=102098;k=195059;h=195059;o=0;d=0;w=2;C=f;I=102095}else{E=0;g=2;v=2;B=2;Z=102101;u=102098;k=195059;h=195059;o=0;d=0;w=P2(f)|0;C=f;I=102095}}else{E=0;g=2;v=2;B=2;Z=102101;u=102098;k=195059;h=195059;o=0;d=0;w=2;C=102089;I=102095}break}case 2:{l=e+48|0;t=Vh(Zd(Id(a[((a[e>>2]&3|0)==3?e:l)+40>>2]|0)|0)|0)|0;n=P2(t)|0;b=Vh(a[((a[e>>2]&3|0)==3?e:l)+40>>2]|0)|0;s=P2(b)|0;f=e+16|0;h=a[(a[f>>2]|0)+52>>2]|0;if(!h)d=0;else d=P2(h)|0;u=Vh(a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)|0;f=a[f>>2]|0;k=a[f+92>>2]|0;if(!k)o=0;else o=P2(k)|0;c=P2(u)|0;f=a[f+96>>2]|0;if(f){f=a[f>>2]|0;if(!A)w=2;else w=P2(f)|0}else{w=2;f=102089}I=(Ih(Zd(Id(a[((a[e>>2]&3|0)==3?e:l)+40>>2]|0)|0)|0)|0)==0;E=1;g=s;v=c;B=s+2+(d|0?d+1|0:0)+c+(o|0?o+1|0:0)|0;l=2;Z=b;c=105493;C=f;I=I?141747:137738;break}default:{E=0;g=2;v=2;B=2;l=2;n=2;Z=102101;u=102098;c=105493;t=102092;k=195059;h=195059;o=0;d=0;w=2;C=102089;I=102095}}i=(i|0)==0;b=0;f=A;A:while(1){e=f+1|0;e:do{switch(r[f>>0]|0){case 0:break A;case 92:{f=f+2|0;switch(r[e>>0]|0){case 78:{s=l;break e}case 71:{s=n;break e}case 69:{s=B;break e}case 72:{s=v;break e}case 84:{s=g;break e}case 76:{s=w;break e}case 92:{if(!i){s=1;break e}break}default:{}}s=2;break}default:{s=1;f=e}}}while(0);b=b+s|0}B=$F(b+1|0)|0;w=(E|0)==0;b=(d|0)==0;e=(o|0)==0;f=B;n=A;A:while(1){s=n+1|0;l=r[n>>0]|0;switch(l<<24>>24){case 0:break A;case 92:break;default:{r[f>>0]=l;f=f+1|0;n=s;continue A}}l=n+2|0;n=r[s>>0]|0;switch(n<<24>>24|0){case 71:{n=t;while(1){A=r[n>>0]|0;r[f>>0]=A;if(!(A<<24>>24)){n=l;continue A}n=n+1|0;f=f+1|0}}case 78:{n=c;while(1){A=r[n>>0]|0;r[f>>0]=A;if(!(A<<24>>24)){n=l;continue A}n=n+1|0;f=f+1|0}}case 69:{if(w){n=l;continue A}else n=Z;while(1){A=r[n>>0]|0;r[f>>0]=A;if(!(A<<24>>24))break;n=n+1|0;f=f+1|0}if(b)n=I;else{r[f>>0]=58;n=h;while(1){f=f+1|0;A=r[n>>0]|0;r[f>>0]=A;if(!(A<<24>>24)){n=I;break}else n=n+1|0}}while(1){A=r[n>>0]|0;r[f>>0]=A;if(!(A<<24>>24)){n=u;break}n=n+1|0;f=f+1|0}while(1){A=r[n>>0]|0;r[f>>0]=A;if(!(A<<24>>24))break;n=n+1|0;f=f+1|0}if(e){n=l;continue A}r[f>>0]=58;n=k;while(1){f=f+1|0;A=r[n>>0]|0;r[f>>0]=A;if(!(A<<24>>24)){n=l;continue A}else n=n+1|0}}case 84:{n=Z;while(1){A=r[n>>0]|0;r[f>>0]=A;if(!(A<<24>>24)){n=l;continue A}n=n+1|0;f=f+1|0}}case 72:{n=u;while(1){A=r[n>>0]|0;r[f>>0]=A;if(!(A<<24>>24)){n=l;continue A}f=f+1|0;n=n+1|0}}case 76:{n=C;while(1){A=r[n>>0]|0;r[f>>0]=A;if(!(A<<24>>24)){n=l;continue A}f=f+1|0;n=n+1|0}}case 92:{if(!i){r[f>>0]=92;f=f+1|0;n=l;continue A}break}default:{}}r[f>>0]=92;r[f+1>>0]=n;f=f+2|0;n=l}r[f>>0]=0;return B|0}function xF(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;if(A|0){i=A;r=0;while(1){if((r|0)>=(e|0))break;if(!r)L2(a[i>>2]|0);n=a[i+8>>2]|0;if(n|0?(f=a[i+12>>2]|0,f|0):0)F5[f&127](n);i=i+56|0;r=r+1|0}L2(A)}return}function TF(A){A=A|0;var e=0;if(A|0){L2(a[A>>2]|0);e=A+72|0;if(r[A+82>>0]|0){e=a[e>>2]|0;if(e|0)aa(e,1)}else xF(a[e>>2]|0,f[A+76>>1]|0);L2(A)}return}function jF(A,e,i){A=A|0;e=e|0;i=i|0;var n=0.0,l=0,t=0.0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0;v=k;k=k+32|0;h=v+16|0;d=v;c=a[A+16>>2]|0;B=c+12|0;g=a[B>>2]|0;a[B>>2]=e;if(!(r[i+82>>0]|0)){o=i+76|0;if((f[o>>1]|0)>=1){Ki(A,0);$i(A,a[i+8>>2]|0);switch(r[i+80>>0]|0){case 116:{t=+s[i+64>>3];n=+s[i+48>>3]*.5+t;break}case 98:{t=+s[i+64>>3];n=+s[i+48>>3]*-.5+t+ +s[i+32>>3];break}default:{t=+s[i+64>>3];n=+s[i+32>>3]*.5+t}}n=n-+s[i+16>>3];w=d+8|0;s[w>>3]=n;if(f[c+260>>1]&512)s[w>>3]=n-t;b=i+72|0;u=i+56|0;l=i+40|0;e=0;while(1){if((e|0)>=(f[o>>1]|0))break;c=a[b>>2]|0;switch(r[c+(e*56|0)+48>>0]|0){case 108:{n=+s[u>>3]-+s[l>>3]*.5;break}case 114:{n=+s[l>>3]*.5+ +s[u>>3];break}default:n=+s[u>>3]}s[d>>3]=n;a[h>>2]=a[d>>2];a[h+4>>2]=a[d+4>>2];a[h+8>>2]=a[d+8>>2];a[h+12>>2]=a[d+12>>2];qi(A,h,c+(e*56|0)|0);s[w>>3]=+s[w>>3]-+s[(a[b>>2]|0)+(e*56|0)+40>>3];e=e+1|0}_i(A);l=18}}else{pf(A,a[i+72>>2]|0,i);l=18}if((l|0)==18)a[B>>2]=g;k=v;return}function PF(A,e){A=A|0;e=e|0;return UF(A,e,1)|0}function SF(A){A=A|0;return OF(A,0)|0}function OF(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0;i=a[47207]|0;if(!i){a[47208]=64;i=$F(64)|0;a[47207]=i}c=e<<24>>24==0;t=0;f=0;l=A;while(1){if(!l)break;e=r[l>>0]|0;if(!(e<<24>>24))break;A=a[47208]|0;if((t|0)>(A+-8|0)){i=A<<1;a[47208]=i;i=eV(a[47207]|0,i)|0;a[47207]=i;i=i+t|0;e=r[l>>0]|0}A:do{switch(e<<24>>24){case 38:{if(c?(KF(l)|0)!=0:0)s=18;else{f=5;e=102130}break}case 60:{f=4;e=102153;break}case 62:{f=4;e=102136;break}case 45:{f=5;e=102147;break}default:{if((f|0)!=0&e<<24>>24==32)if((r[f>>0]|0)==32){f=6;e=102123;break A}else{s=18;break A}switch(e<<24>>24){case 34:{f=6;e=102116;break A}case 39:{f=5;e=102141;break A}case 10:if(c){s=18;break A}else{f=5;e=102110;break A}default:{s=18;break A}}}}}while(0);if((s|0)==18){s=0;e=c|e<<24>>24!=13;f=e?1:5;e=e?l:102104}n=i+f|0;A=f;while(1){if(!A)break;r[i>>0]=r[e>>0]|0;A=A+-1|0;e=e+1|0;i=i+1|0}A=l;t=f+t|0;i=n;l=l+1|0;f=A}r[i>>0]=0;return a[47207]|0}function KF(A){A=A|0;var e=0,i=0;i=A+1|0;e=r[i>>0]|0;A:do{if(e<<24>>24==35){i=A+2|0;e=r[i>>0]|0;switch(e<<24>>24){case 88:case 120:break;default:{A=i;while(1){i=A+1|0;if((e+-48&255)>=10)break A;A=i;e=r[i>>0]|0}}}i=A+3|0;while(1){e=r[i>>0]|0;if((e+-48&255)>=10)switch(e<<24>>24){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:break A}i=i+1|0}}else while(1){A=i+1|0;if(((e&-33)+-65&255)>=26)break A;i=A;e=r[A>>0]|0}}while(0);return e<<24>>24==59|0}function _F(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0;e=a[47209]|0;if(!e){a[47210]=64;e=$F(64)|0;a[47209]=e;t=0}else t=0;while(1){if(!A)break;i=r[A>>0]|0;if(!(i<<24>>24))break;f=a[47210]|0;if((t|0)>(f+-8|0)){e=f<<1;a[47210]=e;e=eV(a[47209]|0,e)|0;a[47209]=e;e=e+t|0;i=r[A>>0]|0}switch(i<<24>>24){case 38:{if(!(KF(A)|0)){n=5;i=102130}else c=12;break}case 60:{n=4;i=102153;break}case 62:{n=4;i=102136;break}case 34:{n=6;i=102116;break}case 39:{n=5;i=102141;break}default:c=12}if((c|0)==12){c=0;n=1;i=A}l=e+n|0;f=n;while(1){if(!f)break;r[e>>0]=r[i>>0]|0;f=f+-1|0;i=i+1|0;e=e+1|0}t=n+t|0;e=l;A=A+1|0}r[e>>0]=0;return a[47209]|0}function qF(A){A=A|0;var e=0;if(!A)A=0;else{e=$F(A)|0;Y6(e|0,0,A|0)|0;A=e}return A|0}function $F(A){A=A|0;if(A){A=Q2(A)|0;if(!A){L3(111740,14,1,a[15712]|0)|0;A=0}}else A=0;return A|0}function AV(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;A=W2(A,U(i,e)|0)|0;if(!((e|0)!=0&(A|0)==0)){if(e>>>0>r>>>0)Y6(A+(U(r,i)|0)|0,0,U(e-r|0,i)|0)|0}else L3(111740,14,1,a[15712]|0)|0;return A|0}function eV(A,e){A=A|0;e=e|0;A=W2(A,e)|0;if((e|0)!=0&(A|0)==0)L3(111740,14,1,a[15712]|0)|0;return A|0}function iV(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0.0,b=0,u=0,w=0,o=0,h=0,g=0,v=0;v=k;k=k+80|0;o=v+40|0;w=v+32|0;u=v+24|0;b=v;h=4;g=Q2(40)|0;a[g>>2]=0;f=v+68|0;n=v+64|0;if(0){}else t=6;do{if((t|0)==6){d=0;f=iA(27,A|0)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,g|0,h|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)!=1){if(!f){d=0;sA(2);f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,g|0,h|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){f=L;t=15;break}}if((i|0)<1){d=0;sA(3);f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,g|0,h|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){f=L;t=15;break}f=0;break}else{a[47211]=(r|0)>-1?r:30;g=L6(188848,1,g|0,h|0)|0;h=L;d=0;f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,g|0,h|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){f=L;t=15;break}f=0;t=15;break}}else{f=L;t=15}}}while(0);A:do{if((t|0)==15){e:while(1){if(f|0){f=2;break A}d=0;sA(4);f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,g|0,h|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){f=L;t=15;continue}A=a[15712]|0;b=0;while(1){d=0;t=eA(2)|0;f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,g|0,h|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){f=L;t=15;continue e}if(!t)break;d=0;f=iA(28,t|0)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,g|0,h|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)==1){f=L;t=15;continue e}d=0;uA(25,t|0,f|0);f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,g|0,h|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){f=L;t=15;continue e}b=b+1|0;do{if(((b|0)%100|0|0)==0&0!=0){f=(b|0)%1e3|0;if((f|0)==100){d=0;rA(93,102202,A|0)|0;f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,g|0,h|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){f=L;t=15;continue e}d=0;a[u>>2]=b;aA(32,A|0,102220,u|0)|0;f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,g|0,h|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){f=L;t=15;continue e}break}d=0;a[w>>2]=b;aA(32,A|0,102220,w|0)|0;n=d;d=0;if((n|0)!=0&(B|0)!=0){l=y6(a[n>>2]|0,g|0,h|0)|0;if(!l)fe(n|0,B|0);L=B}else l=-1;if((l|0)==1){f=L;t=15;continue e}if(!f){d=0;rA(94,10,A|0)|0;f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,g|0,h|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){f=L;t=15;continue e}}}}while(0);if((b|0)>=(i|0))break}switch(e|0){case 1:{d=0;sA(5);f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,g|0,h|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){f=L;t=15;continue e}break}case 2:{d=0;sA(6);f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,g|0,h|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){f=L;t=15;continue e}break}default:{d=0;sA(7);f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,g|0,h|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){f=L;t=15;continue e}d=0;sA(3);f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,g|0,h|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){f=L;t=15;continue e}}}if(true){f=0;break A}if((b|0)>99){d=0;rA(94,10,A|0)|0;f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,g|0,h|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){f=L;t=15;continue}}f=a[47251]|0;n=a[47252]|0;d=0;c=+q(1);l=d;d=0;if((l|0)!=0&(B|0)!=0){t=y6(a[l>>2]|0,g|0,h|0)|0;if(!t)fe(l|0,B|0);L=B}else t=-1;if((t|0)==1){f=L;t=15;continue}d=0;a[o>>2]=102202;a[o+4>>2]=f;a[o+8>>2]=n;a[o+12>>2]=b;s[o+16>>3]=c;aA(32,A|0,102224,o|0)|0;f=d;d=0;if((f|0)!=0&(B|0)!=0){n=y6(a[f>>2]|0,g|0,h|0)|0;if(!n)fe(f|0,B|0);L=B}else n=-1;if((n|0)==1){f=L;t=15}else break}f=0}}while(0);L2(g|0);k=v;return f|0}function rV(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0;A=(a[A+16>>2]|0)+192|0;r=0;l=0;while(1){A=a[A>>2]|0;if(!A)break;n=a[A+16>>2]|0;f=a[n+180>>2]|0;A=0;while(1){if(!(a[f+(A<<2)>>2]|0))break;A=A+1|0;r=r+1|0}A=n+164|0;l=l+1|0}a[e>>2]=l;a[i>>2]=r;return}function fV(A){A=A|0;var e=0,i=0,f=0,n=0,t=0,c=0,s=0,b=0;a[47254]=A;a[47261]=0;a[47252]=0;a[47251]=0;t=A+16|0;A=(a[t>>2]|0)+192|0;n=0;i=0;while(1){A=a[A>>2]|0;if(!A)break;f=a[A+16>>2]|0;r[f+157>>0]=0;n=n+1|0;a[47251]=n;e=a[f+180>>2]|0;A=0;while(1){if(!(a[e+(A<<2)>>2]|0))break;s=i+1|0;a[47252]=s;A=A+1|0;i=s}A=f+164|0}A=a[47262]|0;if(!A)A=$F(n<<2)|0;else A=eV(A,n<<2)|0;a[47262]=A;a[47263]=0;A=a[47256]|0;if(!A)A=$F(a[47251]<<2)|0;else A=eV(A,a[47251]<<2)|0;a[47256]=A;a[47255]=0;e=1;A=(a[t>>2]|0)+192|0;while(1){A=a[A>>2]|0;if(!A)break;s=A+16|0;t=a[s>>2]|0;c=t+292|0;a[c>>2]=0;t=a[t+172>>2]|0;n=e;f=0;A=0;while(1){e=a[t+(f<<2)>>2]|0;if(!e)break;i=A+1|0;a[c>>2]=i;A=a[e+16>>2]|0;a[A+160>>2]=0;a[A+164>>2]=-1;if(!n)A=0;else{b=a[e>>2]&3;A=((a[(a[(a[((b|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(a[(a[(a[((b|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0)<(l[A+170>>1]|0|0)?0:n}n=A;f=f+1|0;A=i}A=qF((f<<2)+4|0)|0;e=a[s>>2]|0;a[e+264>>2]=A;a[e+268>>2]=0;e=a[e+180>>2]|0;A=0;do{b=A;A=A+1|0}while((a[e+(b<<2)>>2]|0)!=0);e=qF(A<<2)|0;A=a[s>>2]|0;a[A+272>>2]=e;a[A+276>>2]=0;e=n;A=A+164|0}return e|0}function aV(){var A=0,e=0,i=0,r=0,f=0,n=0,t=0,c=0,s=0,b=0,u=0,w=0;w=k;k=k+16|0;u=w+8|0;s=w;b=sR(a[47251]|0)|0;A=(a[(a[47254]|0)+16>>2]|0)+192|0;while(1){e=a[A>>2]|0;if(!e){c=0;break}i=e+16|0;A=a[i>>2]|0;if(!(a[A+292>>2]|0)){uR(b,e);A=a[i>>2]|0}A=A+164|0}while(1){A=wR(b)|0;if(!A)break;t=A+16|0;A=a[t>>2]|0;r=A+232|0;a[r>>2]=0;i=a[A+172>>2]|0;e=0;n=0;while(1){f=a[i+(e<<2)>>2]|0;if(!f){r=0;break}f=(a[(a[(a[((a[f>>2]&3|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)+(l[(a[f+16>>2]|0)+170>>1]|0)|0;f=(n|0)>(f|0)?n:f;a[r>>2]=f;e=e+1|0;n=f}while(1){e=a[(a[A+180>>2]|0)+(r<<2)>>2]|0;if(!e)break;i=e+-48|0;f=(a[(a[((a[e>>2]&3|0)==2?e:i)+40>>2]|0)+16>>2]|0)+292|0;n=a[f>>2]|0;a[f>>2]=n+-1;if((n|0)<2){uR(b,a[((a[e>>2]&3|0)==2?e:i)+40>>2]|0);A=a[t>>2]|0}r=r+1|0}c=c+1|0}A:do{if((c|0)!=(a[47251]|0)){ao(1,102556,s)|0;A=(a[(a[47254]|0)+16>>2]|0)+192|0;while(1){e=a[A>>2]|0;if(!e)break A;i=e+16|0;A=a[i>>2]|0;if(a[A+292>>2]|0){s=Vh(e)|0;A=a[(a[i>>2]|0)+292>>2]|0;a[u>>2]=s;a[u+4>>2]=A;ao(3,102578,u)|0;A=a[i>>2]|0}A=A+164|0}}}while(0);bR(b);k=w;return}function nV(){var A=0,e=0,i=0;A=(a[(a[47254]|0)+16>>2]|0)+192|0;while(1){A=a[A>>2]|0;if(!A)break;i=A+16|0;A=a[i>>2]|0;e=a[A+264>>2]|0;if(e){L2(e);A=a[i>>2]|0}e=a[A+272>>2]|0;if(e){L2(e);A=a[i>>2]|0}r[A+157>>0]=0;A=A+164|0}return}function lV(){var A=0,e=0,i=0,r=0,f=0;A=(a[(a[47254]|0)+16>>2]|0)+192|0;while(1){A=a[A>>2]|0;if(!A)break;A=a[A+16>>2]|0;a[A+280>>2]=0;A=A+164|0}f=qF(a[47251]<<2)|0;r=0;A=(a[(a[47254]|0)+16>>2]|0)+192|0;while(1){e=a[A>>2]|0;if(!e)break;i=e+16|0;A=a[i>>2]|0;if(!(a[A+280>>2]|0)){a[f+(r<<2)>>2]=vV(e)|0;e=r+1|0;A=a[i>>2]|0}else e=r;r=e;A=A+164|0}A=EV(f,r)|0;while(1){if((CV(A)|0)<=1)break;mV(A,a[(GV(ZV(IV(A)|0)|0)|0)+8>>2]|0)}L2(A);A=0;while(1){if((A|0)>=(r|0))break;L2(a[f+(A<<2)>>2]|0);A=A+1|0}L2(f);if((a[47255]|0)==((a[47251]|0)+-1|0)){QV();return}else gA(102301,102331,523,102336)}function tV(){var A=0,e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0;t=a[47261]|0;f=a[47255]|0;c=a[47256]|0;s=a[47211]|0;e=0;A=0;n=t;while(1){if((n|0)>=(f|0)){l=8;break}r=a[c+(n<<2)>>2]|0;i=a[(a[r+16>>2]|0)+160>>2]|0;if((i|0)<0){if(!A)A=r;else A=(a[(a[A+16>>2]|0)+160>>2]|0)>(i|0)?r:A;e=e+1|0;if((e|0)>=(s|0))break}r=n+1|0;a[47261]=r;n=r}if((l|0)==8)if((t|0)>0){f=0;while(1){if((f|0)>=(t|0))break;i=a[c+(f<<2)>>2]|0;r=a[(a[i+16>>2]|0)+160>>2]|0;if((r|0)<0){if(!A)A=i;else A=(a[(a[A+16>>2]|0)+160>>2]|0)>(r|0)?i:A;e=e+1|0;if((e|0)>=(s|0))break}f=f+1|0}a[47261]=f}return A|0}function cV(A){A=A|0;var e=0,i=0;e=a[A>>2]&3;i=a[((e|0)==3?A:A+48|0)+40>>2]|0;A=a[((e|0)==2?A:A+-48|0)+40>>2]|0;e=(a[(a[i+16>>2]|0)+288>>2]|0)<(a[(a[A+16>>2]|0)+288>>2]|0);A=e?i:A;a[47257]=0;a[47258]=2147483647;i=a[A+16>>2]|0;a[47259]=a[i+284>>2];a[47260]=a[i+288>>2];if(e)gV(A);else BV(A);return a[47257]|0}function sV(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,t=0,c=0,s=0,b=0,u=0,w=0;w=k;k=k+16|0;u=w;f=a[e>>2]&3;b=e+-48|0;c=e+48|0;s=e+16|0;f=(a[(a[(a[((f|0)==2?e:b)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(a[(a[(a[((f|0)==3?e:c)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(l[(a[s>>2]|0)+170>>1]|0)|0;do{if((f|0)>0){i=a[A>>2]&3;n=a[((i|0)==3?A:A+48|0)+40>>2]|0;t=a[n+16>>2]|0;if(((a[t+276>>2]|0)+(a[t+268>>2]|0)|0)==1){kV(n,f);break}i=a[((i|0)==2?A:A+-48|0)+40>>2]|0;r=a[i+16>>2]|0;if(((a[r+276>>2]|0)+(a[r+268>>2]|0)|0)==1){kV(i,0-f|0);break}if((a[t+288>>2]|0)<(a[r+288>>2]|0)){kV(n,f);break}else{kV(i,0-f|0);break}}}while(0);i=A+16|0;r=a[(a[i>>2]|0)+160>>2]|0;f=a[e>>2]&3;f=oV(a[((f|0)==3?e:c)+40>>2]|0,a[((f|0)==2?e:b)+40>>2]|0,r,1)|0;t=a[e>>2]&3;if((oV(a[((t|0)==2?e:b)+40>>2]|0,a[((t|0)==3?e:c)+40>>2]|0,r,0)|0)==(f|0)){a[(a[s>>2]|0)+160>>2]=0-r;a[(a[i>>2]|0)+160>>2]=0;hV(A,e);u=a[f+16>>2]|0;dV(f,a[u+280>>2]|0,a[u+284>>2]|0)|0;k=w;return}else{ao(1,102262,u)|0;fe(188848,1)}}function bV(){var A=0,e=0,i=0,f=0,n=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0;wV();u=qF((a[47253]<<2)+4|0)|0;e=a[47253]|0;A=0;while(1){if((A|0)>(e|0))break;a[u+(A<<2)>>2]=0;A=A+1|0}A=(a[(a[47254]|0)+16>>2]|0)+192|0;e=A;while(1){e=a[e>>2]|0;if(!e)break;e=a[e+16>>2]|0;if(!(r[e+156>>0]|0)){b=u+(a[e+232>>2]<<2)|0;a[b>>2]=(a[b>>2]|0)+1}e=e+164|0}while(1){A=a[A>>2]|0;if(!A)break;b=A+16|0;A=a[b>>2]|0;if(!(r[A+156>>0]|0)){n=a[47253]|0;i=a[A+172>>2]|0;s=0;c=0;e=0;while(1){f=a[i+(e<<2)>>2]|0;if(!f)break;w=a[f+16>>2]|0;t=(a[(a[(a[((a[f>>2]&3|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)+(l[w+170>>1]|0)|0;s=(a[w+156>>2]|0)+s|0;c=(c|0)>(t|0)?c:t;e=e+1|0}f=a[A+180>>2]|0;t=0;e=0;while(1){i=a[f+(e<<2)>>2]|0;if(!i)break;k=a[i+16>>2]|0;w=(a[(a[(a[((a[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(l[k+170>>1]|0)|0;t=(a[k+156>>2]|0)+t|0;n=(n|0)<(w|0)?n:w;e=e+1|0}e=(c|0)>0?c:0;if((s|0)==(t|0)){f=e;i=e;while(1){e=i+1|0;if((i|0)>=(n|0))break;f=(a[u+(e<<2)>>2]|0)<(a[u+(f<<2)>>2]|0)?e:f;i=e}k=A+232|0;w=u+(a[k>>2]<<2)|0;a[w>>2]=(a[w>>2]|0)+-1;w=u+(f<<2)|0;a[w>>2]=(a[w>>2]|0)+1;a[k>>2]=f}e=a[A+264>>2]|0;if(e){L2(e);A=a[b>>2]|0}e=a[A+272>>2]|0;if(e){L2(e);A=a[b>>2]|0}r[A+157>>0]=0}A=A+164|0}L2(u);return}function uV(){var A=0,e=0,i=0,r=0,f=0,n=0;e=0;while(1){if((e|0)>=(a[47255]|0))break;A=a[(a[47256]|0)+(e<<2)>>2]|0;do{if(((a[(a[A+16>>2]|0)+160>>2]|0)==0?(i=cV(A)|0,i|0):0)?(r=a[i>>2]&3,r=(a[(a[(a[((r|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(a[(a[(a[((r|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(l[(a[i+16>>2]|0)+170>>1]|0)|0,(r|0)>=2):0){n=a[A>>2]&3;f=a[((n|0)==3?A:A+48|0)+40>>2]|0;A=a[((n|0)==2?A:A+-48|0)+40>>2]|0;if((a[(a[f+16>>2]|0)+288>>2]|0)<(a[(a[A+16>>2]|0)+288>>2]|0)){kV(f,r>>>1);break}else{kV(A,(r|0)/-2|0);break}}}while(0);e=e+1|0}nV();return}function wV(){var A=0,e=0,i=0,f=0,n=0,l=0,t=0,c=0;t=k;k=k+16|0;l=t;a[l>>2]=0;a[l>>2]=2147483647;a[47253]=-2147483647;A=(a[(a[47254]|0)+16>>2]|0)+192|0;i=A;n=2147483647;f=-2147483647;while(1){e=a[i>>2]|0;if(!e)break;i=a[e+16>>2]|0;if(!(r[i+156>>0]|0)){c=a[i+232>>2]|0;e=(n|0)<(c|0)?n:c;a[l>>2]=e;f=(f|0)>(c|0)?f:c;a[47253]=f}else e=n;i=i+164|0;n=e}if(n|0){while(1){A=a[A>>2]|0;if(!A)break;A=a[A+16>>2]|0;c=A+232|0;a[c>>2]=(a[c>>2]|0)-n;A=A+164|0}a[47253]=f-n;a[l>>2]=0}k=t;return}function kV(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;f=A+16|0;A=a[f>>2]|0;r=A+232|0;a[r>>2]=(a[r>>2]|0)-e;r=0;while(1){i=a[(a[A+272>>2]|0)+(r<<2)>>2]|0;if(!i){r=0;break}if((i|0)!=(a[A+280>>2]|0)){kV(a[((a[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0,e);A=a[f>>2]|0}r=r+1|0}while(1){i=a[(a[A+264>>2]|0)+(r<<2)>>2]|0;if(!i)break;if((i|0)!=(a[A+280>>2]|0)){kV(a[((a[i>>2]&3|0)==3?i:i+48|0)+40>>2]|0,e);A=a[f>>2]|0}r=r+1|0}return}function oV(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0;n=(r|0)==0&1;l=0-i|0;f=a[(a[e+16>>2]|0)+288>>2]|0;e=A;while(1){A=a[e+16>>2]|0;if((a[A+284>>2]|0)<=(f|0)?(f|0)<=(a[A+288>>2]|0):0)break;A=a[A+280>>2]|0;t=A+48|0;c=(a[A+16>>2]|0)+160|0;a[c>>2]=(((e|0)==(a[((a[A>>2]&3|0)==3?A:t)+40>>2]|0)?r:n)|0?i:l)+(a[c>>2]|0);c=a[A>>2]&3;t=a[((c|0)==3?A:t)+40>>2]|0;A=a[((c|0)==2?A:A+-48|0)+40>>2]|0;e=(a[(a[t+16>>2]|0)+288>>2]|0)>(a[(a[A+16>>2]|0)+288>>2]|0)?t:A}return e|0}function hV(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0;t=A+16|0;r=(a[t>>2]|0)+164|0;a[(a[e+16>>2]|0)+164>>2]=a[r>>2];a[(a[47256]|0)+(a[r>>2]<<2)>>2]=e;a[(a[t>>2]|0)+164>>2]=-1;t=(a[((a[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0)+16|0;r=a[t>>2]|0;n=r+276|0;f=a[n>>2]|0;c=f+-1|0;a[n>>2]=c;n=r+272|0;l=0;while(1){if((l|0)>=(f|0)){s=3;break}i=a[n>>2]|0;if((a[i+(l<<2)>>2]|0)==(A|0))break;l=l+1|0}if((s|0)==3)i=a[r+272>>2]|0;a[i+(l<<2)>>2]=a[i+(c<<2)>>2];a[(a[(a[t>>2]|0)+272>>2]|0)+(c<<2)>>2]=0;t=(a[((a[A>>2]&3|0)==2?A:A+-48|0)+40>>2]|0)+16|0;r=a[t>>2]|0;n=r+268|0;f=a[n>>2]|0;c=f+-1|0;a[n>>2]=c;n=r+264|0;l=0;while(1){if((l|0)>=(f|0)){s=8;break}i=a[n>>2]|0;if((a[i+(l<<2)>>2]|0)==(A|0))break;l=l+1|0}if((s|0)==8)i=a[r+264>>2]|0;a[i+(l<<2)>>2]=a[i+(c<<2)>>2];a[(a[(a[t>>2]|0)+264>>2]|0)+(c<<2)>>2]=0;s=(a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)+16|0;A=a[s>>2]|0;c=a[A+272>>2]|0;A=A+276|0;t=a[A>>2]|0;a[A>>2]=t+1;a[c+(t<<2)>>2]=e;s=a[s>>2]|0;a[(a[s+272>>2]|0)+(a[s+276>>2]<<2)>>2]=0;s=(a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)+16|0;t=a[s>>2]|0;c=a[t+264>>2]|0;t=t+268|0;A=a[t>>2]|0;a[t>>2]=A+1;a[c+(A<<2)>>2]=e;s=a[s>>2]|0;a[(a[s+264>>2]|0)+(a[s+268>>2]<<2)>>2]=0;return}function dV(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;n=A+16|0;A=a[n>>2]|0;a[A+280>>2]=e;a[A+284>>2]=i;f=0;while(1){r=a[(a[A+272>>2]|0)+(f<<2)>>2]|0;if(!r){f=0;break}if((r|0)!=(e|0)){i=dV(a[((a[r>>2]&3|0)==2?r:r+-48|0)+40>>2]|0,r,i)|0;A=a[n>>2]|0}f=f+1|0}while(1){r=a[(a[A+264>>2]|0)+(f<<2)>>2]|0;if(!r)break;if((r|0)!=(e|0)){i=dV(a[((a[r>>2]&3|0)==3?r:r+48|0)+40>>2]|0,r,i)|0;A=a[n>>2]|0}f=f+1|0}a[A+288>>2]=i;return i+1|0}function BV(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,t=0,c=0;t=A+16|0;f=0;while(1){A=a[t>>2]|0;i=a[(a[A+180>>2]|0)+(f<<2)>>2]|0;if(!i){i=0;break}r=a[i+16>>2]|0;if((a[r+164>>2]|0)<0){A=a[i>>2]&3;e=a[(a[((A|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0;c=a[e+288>>2]|0;if((a[47259]|0)>(c|0)|(c|0)>(a[47260]|0)?(n=(a[e+232>>2]|0)-(a[(a[(a[((A|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(l[r+170>>1]|0)|0,(n|0)<(a[47258]|0)|(a[47257]|0)==0):0){a[47257]=i;a[47258]=n}}else{e=a[((a[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0;if((a[(a[e+16>>2]|0)+288>>2]|0)<(a[A+288>>2]|0))BV(e)}f=f+1|0}while(1){e=a[(a[A+264>>2]|0)+(i<<2)>>2]|0;if(!((e|0)!=0&(a[47258]|0)>0))break;e=a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0;if((a[(a[e+16>>2]|0)+288>>2]|0)<(a[A+288>>2]|0)){BV(e);A=a[t>>2]|0}i=i+1|0}return}function gV(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,t=0,c=0;t=A+16|0;f=0;while(1){A=a[t>>2]|0;i=a[(a[A+172>>2]|0)+(f<<2)>>2]|0;if(!i){i=0;break}r=a[i+16>>2]|0;if((a[r+164>>2]|0)<0){A=a[i>>2]&3;e=a[(a[((A|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0;c=a[e+288>>2]|0;if((a[47259]|0)>(c|0)|(c|0)>(a[47260]|0)?(n=(a[(a[(a[((A|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(a[e+232>>2]|0)-(l[r+170>>1]|0)|0,(n|0)<(a[47258]|0)|(a[47257]|0)==0):0){a[47257]=i;a[47258]=n}}else{e=a[((a[i>>2]&3|0)==3?i:i+48|0)+40>>2]|0;if((a[(a[e+16>>2]|0)+288>>2]|0)<(a[A+288>>2]|0))gV(e)}f=f+1|0}while(1){e=a[(a[A+272>>2]|0)+(i<<2)>>2]|0;if(!((e|0)!=0&(a[47258]|0)>0))break;e=a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0;if((a[(a[e+16>>2]|0)+288>>2]|0)<(a[A+288>>2]|0)){gV(e);A=a[t>>2]|0}i=i+1|0}return}function vV(A){A=A|0;var e=0;e=qF(16)|0;a[e>>2]=A;a[e+4>>2]=VV(A,e)|0;a[e+12>>2]=e;return e|0}function EV(A,e){A=A|0;e=e|0;var i=0,r=0;r=qF(8)|0;a[r>>2]=A;a[r+4>>2]=e;i=0;while(1){if((i|0)>=(e|0))break;a[(a[A+(i<<2)>>2]|0)+8>>2]=i;i=i+1|0}i=(e|0)/2|0;while(1){if((i|0)<=-1)break;mV(r,i);i=i+-1|0}return r|0}function CV(A){A=A|0;return a[A+4>>2]|0}function IV(A){A=A|0;var e=0,i=0,r=0,f=0;f=a[A>>2]|0;e=a[f>>2]|0;a[e+8>>2]=-1;i=A+4|0;r=(a[i>>2]|0)+-1|0;a[f>>2]=a[f+(r<<2)>>2];f=a[A>>2]|0;a[(a[f>>2]|0)+8>>2]=0;a[f+(r<<2)>>2]=e;a[i>>2]=r;mV(A,0);return e|0}function ZV(A){A=A|0;return FV(a[A>>2]|0,0,0)|0}function GV(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,t=0;e=A+16|0;if((a[(a[e>>2]|0)+164>>2]|0)>-1)gA(102350,102331,463,102364);f=A+48|0;i=zV(a[((a[A>>2]&3|0)==3?A:f)+40>>2]|0)|0;t=A+-48|0;r=zV(a[((a[A>>2]&3|0)==2?A:t)+40>>2]|0)|0;n=a[A>>2]&3;e=(a[(a[(a[((n|0)==2?A:t)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(a[(a[(a[((n|0)==3?A:f)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(l[(a[e>>2]|0)+170>>1]|0)|0;if((a[i+8>>2]|0)==-1)YV(a[i>>2]|0,0,e);else YV(a[r>>2]|0,0,0-e|0);DV(A);return MV(i,r)|0}function mV(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;l=a[A>>2]|0;n=a[A+4>>2]|0;while(1){A=e<<1;f=A+2|0;A=A|1;if(!((A|0)<(n|0)?(a[(a[l+(A<<2)>>2]|0)+4>>2]|0)<(a[(a[l+(e<<2)>>2]|0)+4>>2]|0):0))A=e;if((f|0)>=(n|0))break;i=l+(f<<2)|0;r=a[i>>2]|0;if((f|0)==(e|0)?1:(a[r+4>>2]|0)>=(a[(a[l+(A<<2)>>2]|0)+4>>2]|0))break;t=l+(e<<2)|0;A=a[t>>2]|0;a[t>>2]=r;a[i>>2]=A;a[(a[t>>2]|0)+8>>2]=e;a[A+8>>2]=f;e=f}return}function QV(){dV(a[(a[(a[47254]|0)+16>>2]|0)+192>>2]|0,0,1)|0;LV(a[(a[(a[47254]|0)+16>>2]|0)+192>>2]|0,0);return}function LV(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;f=A+16|0;i=0;while(1){A=a[f>>2]|0;r=a[(a[A+272>>2]|0)+(i<<2)>>2]|0;if(!r){r=0;break}if((r|0)!=(e|0))LV(a[((a[r>>2]&3|0)==2?r:r+-48|0)+40>>2]|0,r);i=i+1|0}while(1){i=a[(a[A+264>>2]|0)+(r<<2)>>2]|0;if(!i)break;if((i|0)!=(e|0)){LV(a[((a[i>>2]&3|0)==3?i:i+48|0)+40>>2]|0,i);A=a[f>>2]|0}r=r+1|0}if(e|0)yV(e);return}function yV(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0;e=a[A>>2]&3;i=a[((e|0)==3?A:A+48|0)+40>>2]|0;r=a[i+16>>2]|0;if((a[r+280>>2]|0)==(A|0))t=1;else{r=a[((e|0)==2?A:A+-48|0)+40>>2]|0;t=-1;i=r;r=a[r+16>>2]|0}n=a[r+180>>2]|0;e=0;f=0;while(1){l=a[n+(f<<2)>>2]|0;if(!l)break;e=(WV(l,i,t)|0)+e|0;f=f+1|0}n=a[r+172>>2]|0;r=0;while(1){f=a[n+(r<<2)>>2]|0;if(!f)break;e=(WV(f,i,t)|0)+e|0;r=r+1|0}a[(a[A+16>>2]|0)+160>>2]=e;return}function WV(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0;l=a[A>>2]&3;t=(l|0)==3?A:A+48|0;r=a[t+40>>2]|0;if((r|0)==(e|0))r=a[((l|0)==2?A:A+-48|0)+40>>2]|0;n=a[e+16>>2]|0;f=a[(a[r+16>>2]|0)+288>>2]|0;if((a[n+284>>2]|0)<=(f|0)?(f|0)<=(a[n+288>>2]|0):0){f=a[A+16>>2]|0;if((a[f+164>>2]|0)>-1)r=a[f+160>>2]|0;else r=0;n=1;r=r-(a[f+156>>2]|0)|0}else{n=0;r=a[(a[A+16>>2]|0)+156>>2]|0}t=(a[((i|0)>0?(l|0)==2?A:A+-48|0:t)+40>>2]|0)==(e|0)?1:-1;return(((n?t:0-t|0)|0)<0?0-r|0:r)|0}function zV(A){A=A|0;var e=0,i=0;A=a[(a[A+16>>2]|0)+280>>2]|0;while(1){e=A+12|0;i=a[e>>2]|0;if(!((i|0)!=(A|0)&(i|0)!=0))break;A=a[i+12>>2]|0;if(!A){A=i;continue}a[e>>2]=A}return A|0}function YV(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0;l=A+16|0;r=a[l>>2]|0;n=r+232|0;a[n>>2]=(a[n>>2]|0)+i;n=0;while(1){f=a[(a[r+264>>2]|0)+(n<<2)>>2]|0;if(!f){n=0;break}f=a[((a[f>>2]&3|0)==3?f:f+48|0)+40>>2]|0;if((f|0)!=(e|0)){YV(f,A,i);r=a[l>>2]|0}n=n+1|0}while(1){f=a[(a[r+272>>2]|0)+(n<<2)>>2]|0;if(!f)break;f=a[((a[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0;if((f|0)!=(e|0)){YV(f,A,i);r=a[l>>2]|0}n=n+1|0}return}function DV(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0;l=k;k=k+32|0;e=(a[A+16>>2]|0)+164|0;if((a[e>>2]|0)>-1){ao(1,102453,l)|0;fe(188848,1)}n=a[47255]|0;a[e>>2]=n;e=a[47256]|0;a[47255]=n+1;a[e+(n<<2)>>2]=A;e=a[A>>2]|0;n=A+48|0;i=a[((e&3|0)==3?A:n)+40>>2]|0;if(!(r[(a[i+16>>2]|0)+157>>0]|0)){f=a[47262]|0;e=a[47263]|0;a[47263]=e+1;a[f+(e<<2)>>2]=i;e=a[A>>2]|0}f=A+-48|0;i=a[((e&3|0)==2?A:f)+40>>2]|0;if(!(r[(a[i+16>>2]|0)+157>>0]|0)){t=a[47262]|0;e=a[47263]|0;a[47263]=e+1;a[t+(e<<2)>>2]=i;e=a[A>>2]|0}t=(a[((e&3|0)==3?A:n)+40>>2]|0)+16|0;e=a[t>>2]|0;r[e+157>>0]=1;i=a[e+272>>2]|0;e=e+276|0;n=a[e>>2]|0;a[e>>2]=n+1;a[i+(n<<2)>>2]=A;n=a[t>>2]|0;a[(a[n+272>>2]|0)+(a[n+276>>2]<<2)>>2]=0;t=a[t>>2]|0;if(!(a[(a[t+180>>2]|0)+((a[t+276>>2]|0)+-1<<2)>>2]|0)){ao(1,102487,l+8|0)|0;fe(188848,1)}t=(a[((a[A>>2]&3|0)==2?A:f)+40>>2]|0)+16|0;i=a[t>>2]|0;r[i+157>>0]=1;f=a[i+264>>2]|0;i=i+268|0;n=a[i>>2]|0;a[i>>2]=n+1;a[f+(n<<2)>>2]=A;A=a[t>>2]|0;a[(a[A+264>>2]|0)+(a[A+268>>2]<<2)>>2]=0;t=a[t>>2]|0;if(!(a[(a[t+172>>2]|0)+((a[t+268>>2]|0)+-1<<2)>>2]|0)){ao(1,102522,l+16|0)|0;fe(188848,1)}else{k=l;return}}function MV(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0;while(1){n=A+12|0;i=a[n>>2]|0;if((i|0)==0|(i|0)==(A|0))break;else A=i}while(1){f=e+12|0;i=a[f>>2]|0;if((i|0)==0|(i|0)==(e|0))break;else e=i}if((A|0)!=(e|0)){r=a[A+8>>2]|0;i=a[e+8>>2]|0;do{if((r|0)>-1)if((i|0)==-1)l=A;else c=10;else if((i|0)>-1)if((r|0)==-1){l=e;break}else{c=10;break}else gA(102376,102331,327,102423)}while(0);if((c|0)==10)l=(a[e+4>>2]|0)<(a[A+4>>2]|0)?A:e;a[f>>2]=l;a[n>>2]=l;a[l+4>>2]=(a[e+4>>2]|0)+(a[A+4>>2]|0);if((a[l+8>>2]|0)>-1)t=l;else gA(102434,102331,335,102423)}else t=A;return t|0}function FV(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,t=0,c=0,s=0,b=0,u=0;b=zV(A)|0;if(i){s=a[i>>2]&3;if(((a[(a[(a[((s|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(a[(a[(a[((s|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0)!=(l[(a[i+16>>2]|0)+170>>1]|0|0))r=3}else{i=0;r=3}A:do{if((r|0)==3){s=A+16|0;c=0;while(1){r=a[s>>2]|0;t=a[(a[r+180>>2]|0)+(c<<2)>>2]|0;if(!t){c=0;break}r=t+16|0;f=t+-48|0;n=a[((a[t>>2]&3|0)==2?t:f)+40>>2]|0;do{if((a[(a[r>>2]|0)+164>>2]|0)>-1){if((n|0)!=(e|0))i=FV(n,A,i)|0}else if((zV(n)|0)!=(b|0)){if(i|0?(u=a[t>>2]&3,n=a[i>>2]&3,((a[(a[(a[((u|0)==2?t:f)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(a[(a[(a[((u|0)==3?t:t+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(l[(a[r>>2]|0)+170>>1]|0)|0)>=((a[(a[(a[((n|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(a[(a[(a[((n|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(l[(a[i+16>>2]|0)+170>>1]|0)|0)):0)break;i=t}}while(0);c=c+1|0}while(1){r=a[(a[r+172>>2]|0)+(c<<2)>>2]|0;if(!r)break A;f=r+16|0;n=r+48|0;t=a[((a[r>>2]&3|0)==3?r:n)+40>>2]|0;do{if((a[(a[f>>2]|0)+164>>2]|0)>-1){if((t|0)!=(e|0))i=FV(t,A,i)|0}else if((zV(t)|0)!=(b|0)){if(i|0?(t=a[r>>2]&3,u=a[i>>2]&3,((a[(a[(a[((t|0)==2?r:r+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(a[(a[(a[((t|0)==3?r:n)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(l[(a[f>>2]|0)+170>>1]|0)|0)>=((a[(a[(a[((u|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(a[(a[(a[((u|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(l[(a[i+16>>2]|0)+170>>1]|0)|0)):0)break;i=r}}while(0);c=c+1|0;r=a[s>>2]|0}}}while(0);return i|0}function VV(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0;b=A+16|0;i=a[b>>2]|0;a[i+280>>2]=e;A=1;n=0;while(1){f=a[(a[i+172>>2]|0)+(n<<2)>>2]|0;if(!f){n=0;break}r=a[f+16>>2]|0;if(((a[r+164>>2]|0)<=-1?(t=a[f>>2]&3,c=f+48|0,s=a[(a[((t|0)==3?f:c)+40>>2]|0)+16>>2]|0,(a[s+280>>2]|0)==0):0)?((a[(a[(a[((t|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(a[s+232>>2]|0)|0)==(l[r+170>>1]|0|0):0){DV(f);A=(VV(a[((a[f>>2]&3|0)==3?f:c)+40>>2]|0,e)|0)+A|0;i=a[b>>2]|0}n=n+1|0}while(1){r=a[(a[i+180>>2]|0)+(n<<2)>>2]|0;if(!r)break;f=a[r+16>>2]|0;if(((a[f+164>>2]|0)<=-1?(u=a[r>>2]&3,w=r+-48|0,k=a[(a[((u|0)==2?r:w)+40>>2]|0)+16>>2]|0,(a[k+280>>2]|0)==0):0)?((a[k+232>>2]|0)-(a[(a[(a[((u|0)==3?r:r+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0)==(l[f+170>>1]|0|0):0){DV(r);A=(VV(a[((a[r>>2]&3|0)==2?r:w)+40>>2]|0,e)|0)+A|0;i=a[b>>2]|0}n=n+1|0}return A|0}function JV(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=Ho(A,102586)|0;if(!r)r=30;else r=q3(r)|0;return iV(A,e,i,r)|0}function pV(A){A=+A;return+(true?A:undefined)}function NV(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0.0,g=0.0,v=0;d=k;k=k+16|0;h=d;a[47264]=a[(a[(a[e+64>>2]|0)+8>>2]|0)+4>>2];RV(e);l=a[e+16>>2]|0;g=+s[l+32>>3];B=+s[l+40>>3];XV(i,102597,+s[A+352>>3]);XV(i,102604,g*.013888888888888888);XV(i,102604,B*.013888888888888888);HV(i);l=cd(e)|0;while(1){if(!l)break;n=l+16|0;if(!(r[(a[n>>2]|0)+118>>0]|0)){UV(i,102606,$B(Vh(l)|0)|0);o=(a[n>>2]|0)+16|0;a[h>>2]=a[o>>2];a[h+4>>2]=a[o+4>>2];a[h+8>>2]=a[o+8>>2];a[h+12>>2]=a[o+12>>2];xV(i,h);if(!(r[(a[(a[n>>2]|0)+104>>2]|0)+82>>0]|0)){A=Id(l)|0;A=TV(A,a[a[(a[n>>2]|0)+104>>2]>>2]|0)|0}else A=$B(Uo(l,a[47154]|0)|0)|0;XV(i,102604,+s[(a[n>>2]|0)+32>>3]);XV(i,102604,+s[(a[n>>2]|0)+40>>3]);UV(i,102604,A);UV(i,102604,BR(l,a[47157]|0,111067)|0);UV(i,102604,a[a[(a[n>>2]|0)+8>>2]>>2]|0);UV(i,102604,BR(l,a[47148]|0,137314)|0);A=BR(l,a[47149]|0,195059)|0;if(!(r[A>>0]|0))A=BR(l,a[47148]|0,134800)|0;UV(i,102604,A);HV(i)}l=sd(e,l)|0}w=f<<24>>24==0;u=cd(e)|0;while(1){if(!u)break;b=Oo(e,u)|0;while(1){if(!b)break;if(w){f=195059;t=195059}else{t=Ho(b,111455)|0;f=Ho(b,111464)|0;f=f|0?f:195059;t=t|0?t:195059}o=b+16|0;A=a[o>>2]|0;c=a[A+8>>2]|0;A:do{if(c){l=a[c+4>>2]|0;A=0;n=0;while(1){if((A|0)>=(l|0))break;v=(a[(a[c>>2]|0)+(A*48|0)+4>>2]|0)+n|0;A=A+1|0;n=v}UV(i,0,111450);jV(i,a[((a[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0,t);jV(i,a[((a[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0,f);PV(i,n);f=0;while(1){A=a[o>>2]|0;n=a[A+8>>2]|0;if((f|0)>=(a[n+4>>2]|0))break A;l=a[n>>2]|0;n=a[l+(f*48|0)>>2]|0;l=a[l+(f*48|0)+4>>2]|0;A=0;while(1){if((A|0)>=(l|0))break;v=n+(A<<4)|0;a[h>>2]=a[v>>2];a[h+4>>2]=a[v+4>>2];a[h+8>>2]=a[v+8>>2];a[h+12>>2]=a[v+12>>2];xV(i,h);A=A+1|0}f=f+1|0}}}while(0);if(a[A+96>>2]|0){v=Id(a[((a[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0;UV(i,102604,TV(v,a[a[(a[o>>2]|0)+96>>2]>>2]|0)|0);v=(a[(a[o>>2]|0)+96>>2]|0)+56|0;a[h>>2]=a[v>>2];a[h+4>>2]=a[v+4>>2];a[h+8>>2]=a[v+8>>2];a[h+12>>2]=a[v+12>>2];xV(i,h)}UV(i,102604,BR(b,a[47185]|0,111067)|0);UV(i,102604,BR(b,a[47176]|0,137314)|0);HV(i);b=_o(e,b)|0}u=sd(e,u)|0}SV(102612,i);k=d;return}function RV(A){A=A|0;var e=0.0;if(0){}return}function XV(A,e,i){A=A|0;e=e|0;i=+i;var r=0,f=0,a=0;a=k;k=k+1040|0;f=a;r=a+8|0;if(e|0)SV(e,A);s[f>>3]=i;S4(r,102618,f)|0;SV(r,A);k=a;return}function HV(A){A=A|0;r[194955]=10;Q5[a[47264]&127](A,194955)|0;return}function UV(A,e,i){A=A|0;e=e|0;i=i|0;if(e|0)SV(e,A);SV(i,A);return}function xV(A,e){A=A|0;e=e|0;var i=0.0;XV(A,102604,+s[e>>3]*.013888888888888888);if(true)i=+s[e+8>>3];else{}XV(A,102604,i*.013888888888888888);return}function TV(A,e){A=A|0;e=e|0;var i=0;i=aB(A,e)|0;e=$B(i)|0;lB(A,i)|0;return e|0}function jV(A,e,i){A=A|0;e=e|0;i=i|0;var f=0;if(!(r[(a[e+16>>2]|0)+118>>0]|0))e=$B(Vh(e)|0)|0;else{f=Id(e)|0;e=TV(f,(G1(Vh(e)|0,58)|0)+1|0)|0}UV(A,102604,e);if(i|0?r[i>>0]|0:0)UV(A,107984,$B(i)|0);return}function PV(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;i=k;k=k+1040|0;f=i;r=i+8|0;SV(102604,A);a[f>>2]=e;S4(r,137395,f)|0;SV(r,A);k=i;return}function SV(A,e){A=A|0;e=e|0;Q5[a[47264]&127](e,A)|0;return}function OV(A,e,i){A=A|0;e=e|0;i=i|0;var n=0,t=0,c=0,b=0.0,u=0,w=0.0,o=0,h=0.0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0,U=0,x=0,T=0,j=0,P=0,S=0,O=0,K=0;K=k;k=k+2288|0;S=K+208|0;P=K+192|0;j=K+176|0;T=K+160|0;x=K+144|0;U=K+128|0;X=K+112|0;R=K+96|0;N=K+80|0;p=K+64|0;J=K+56|0;V=K+48|0;O=K+32|0;H=K+24|0;F=K;W=K+1264|0;z=K+224|0;Y=A+16|0;L=(l[(a[Y>>2]|0)+178>>1]|0)>2;nF(1);RV(A);co(z,1024,K+240|0);oX(A,1,102623,195059)|0;oX(A,1,102627,195059)|0;a[47146]=oX(A,1,141116,195059)|0;a[47145]=oX(A,1,141048,195059)|0;oX(A,2,102623,195059)|0;n=r[(a[Y>>2]|0)+113>>0]|0;if(n&16){oX(A,1,102633,195059)|0;n=r[(a[Y>>2]|0)+113>>0]|0}if(n&1){oX(A,2,102637,195059)|0;n=r[(a[Y>>2]|0)+113>>0]|0}if(n&32){oX(A,2,102633,195059)|0;n=r[(a[Y>>2]|0)+113>>0]|0}if(n&2){oX(A,2,102640,195059)|0;n=r[(a[Y>>2]|0)+113>>0]|0}if(n&4){oX(A,2,102648,195059)|0;n=r[(a[Y>>2]|0)+113>>0]|0}if(!(n&8)){E=0;C=0;I=0}else{I=oX(A,0,102637,195059)|0;C=oX(A,0,102656,195059)|0;E=oX(A,0,102663,195059)|0}G=oX(A,0,102671,195059)|0;m=z+4|0;Q=z+8|0;v=0;n=0;Z=cd(A)|0;while(1){if(!Z)break;g=Z+16|0;c=a[g>>2]|0;w=+s[c+16>>3];t=0==0;if(L){if(t)b=+s[c+24>>3];else b=+s[23301]-+s[c+24>>3];h=+s[(a[c+132>>2]|0)+16>>3]*72.0;s[F>>3]=w;s[F+8>>3]=b;s[F+16>>3]=h;S4(W,102674,F)|0;uo(z,W)|0;t=3;while(1){if((t|0)>=(l[(a[Y>>2]|0)+178>>1]|0))break;s[H>>3]=+s[(a[(a[g>>2]|0)+132>>2]|0)+(t<<3)>>3]*72.0;S4(W,102689,H)|0;uo(z,W)|0;t=t+1|0}t=a[m>>2]|0;if(t>>>0>=(a[Q>>2]|0)>>>0){so(z,1)|0;t=a[m>>2]|0}r[t>>0]=0;B=a[z>>2]|0;a[m>>2]=B;xo(Z,102623,B)|0;B=Z}else{if(t)b=+s[c+24>>3];else b=+s[23301]-+s[c+24>>3];s[O>>3]=w;s[O+8>>3]=b;S4(W,102695,O)|0;xo(Z,102623,W)|0;B=Z}s[V>>3]=+s[(a[g>>2]|0)+80>>3]*.013888888888888888;S4(W,102618,V)|0;Vo(B,a[47145]|0,W)|0;t=a[g>>2]|0;s[J>>3]=(+s[t+96>>3]+ +s[t+88>>3])*.013888888888888888;S4(W,102618,J)|0;Vo(B,a[47146]|0,W)|0;t=a[g>>2]|0;c=a[t+108>>2]|0;if((c|0)!=0?(r[c+81>>0]|0)!=0:0){h=+s[c+64>>3];h=true?h:undefined;s[p>>3]=+s[c+56>>3];s[p+8>>3]=h;S4(W,102695,p)|0;xo(B,102633,W)|0;t=a[g>>2]|0}if(A1(a[a[t+8>>2]>>2]|0,106220)|0){if(a[47170]|0?(Zp(Z)|0)<<24>>24:0){c=a[(a[g>>2]|0)+12>>2]|0;d=c+8|0;t=a[d>>2]|0;if((t|0)<3){t=Ho(B,102705)|0;if(!t)t=8;else t=q3(t)|0;t=(t|0)<3?8:t}o=c+44|0;h=1.0/+(t|0);u=0;while(1){if((u|0)>=(t|0))break;if((u|0)>0){c=a[m>>2]|0;if(c>>>0>=(a[Q>>2]|0)>>>0){so(z,1)|0;c=a[m>>2]|0}a[m>>2]=c+1;r[c>>0]=32}if((a[d>>2]|0)>2){c=a[o>>2]|0;if(true)b=+s[c+(u<<4)+8>>3]*.013888888888888888;else{}s[N>>3]=+s[c+(u<<4)>>3]*.013888888888888888;s[N+8>>3]=b;S4(W,102718,N)|0}else{c=a[g>>2]|0;b=h*+(u|0)*6.283185307179586;w=+s[c+32>>3]*.5*+D(+b);if(true)b=+s[c+40>>3]*.5*+M(+b);else{}s[R>>3]=w;s[R+8>>3]=b;S4(W,102718,R)|0}uo(z,W)|0;u=u+1|0}c=a[47170]|0;t=a[m>>2]|0;if(t>>>0>=(a[Q>>2]|0)>>>0){so(z,1)|0;t=a[m>>2]|0}r[t>>0]=0;g=a[z>>2]|0;a[m>>2]=g;Vo(B,c,g)|0}}else{KV(Z,a[t+12>>2]|0,z);ko(z)|0;t=a[m>>2]|0;if(t>>>0>=(a[Q>>2]|0)>>>0){so(z,1)|0;t=a[m>>2]|0}r[t>>0]=0;g=a[z>>2]|0;a[m>>2]=g;xo(B,102627,g)|0}A:do{if((a[47138]|0)>0){g=Oo(A,Z)|0;t=v;while(1){if(!g)break A;B=g+16|0;c=a[B>>2]|0;do{if((r[c+112>>0]|0)!=6?(y=a[c+8>>2]|0,(y|0)!=0):0){d=0;c=y;while(1){if((d|0)>=(a[c+4>>2]|0))break;if((d|0)>0){c=a[m>>2]|0;if(c>>>0>=(a[Q>>2]|0)>>>0){so(z,1)|0;c=a[m>>2]|0}a[m>>2]=c+1;r[c>>0]=59;c=a[(a[B>>2]|0)+8>>2]|0}c=a[c>>2]|0;if(a[c+(d*48|0)+8>>2]|0){if(true)b=+s[c+(d*48|0)+24>>3];else{}s[X>>3]=+s[c+(d*48|0)+16>>3];s[X+8>>3]=b;S4(W,102728,X)|0;uo(z,W)|0;n=1;c=a[a[(a[B>>2]|0)+8>>2]>>2]|0}if(a[c+(d*48|0)+12>>2]|0){if(true)b=+s[c+(d*48|0)+40>>3];else{}s[U>>3]=+s[c+(d*48|0)+32>>3];s[U+8>>3]=b;S4(W,102741,U)|0;uo(z,W)|0;t=1}o=0;while(1){c=a[(a[B>>2]|0)+8>>2]|0;u=a[c>>2]|0;if((o|0)>=(a[u+(d*48|0)+4>>2]|0))break;if((o|0)>0){c=a[m>>2]|0;if(c>>>0>=(a[Q>>2]|0)>>>0){so(z,1)|0;c=a[m>>2]|0}a[m>>2]=c+1;r[c>>0]=32;c=a[a[(a[B>>2]|0)+8>>2]>>2]|0}else c=u;v=a[c+(d*48|0)>>2]|0;h=+s[v+(o<<4)+8>>3];h=true?h:undefined;s[x>>3]=+s[v+(o<<4)>>3];s[x+8>>3]=h;S4(W,102695,x)|0;uo(z,W)|0;o=o+1|0}d=d+1|0}c=a[m>>2]|0;if(c>>>0>=(a[Q>>2]|0)>>>0){so(z,1)|0;c=a[m>>2]|0}r[c>>0]=0;c=a[z>>2]|0;a[m>>2]=c;xo(g,102623,c)|0;c=a[B>>2]|0;u=a[c+96>>2]|0;if(u){h=+s[u+64>>3];h=true?h:undefined;s[T>>3]=+s[u+56>>3];s[T+8>>3]=h;S4(W,102695,T)|0;xo(g,102637,W)|0;c=a[B>>2]|0}u=a[c+108>>2]|0;do{if(u){if(!(r[u+81>>0]|0))break;h=+s[u+64>>3];h=true?h:undefined;s[j>>3]=+s[u+56>>3];s[j+8>>3]=h;S4(W,102695,j)|0;xo(g,102633,W)|0;c=a[B>>2]|0}}while(0);u=a[c+100>>2]|0;if(u){h=+s[u+64>>3];h=true?h:undefined;s[P>>3]=+s[u+56>>3];s[P+8>>3]=h;S4(W,102695,P)|0;xo(g,102640,W)|0;c=a[B>>2]|0}c=a[c+104>>2]|0;if(!c)break;h=+s[c+64>>3];h=true?h:undefined;s[S>>3]=+s[c+56>>3];s[S+8>>3]=h;S4(W,102695,S)|0;xo(g,102648,W)|0}}while(0);g=_o(A,g)|0}}else t=v}while(0);v=t;Z=sd(A,Z)|0}_V(A,G,I,C,E);wo(z);if(f[(a[Y>>2]|0)+136>>1]&1)cX(A);a[e>>2]=n;a[i>>2]=v;nF(0);k=K;return}function KV(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0.0,n=0.0,l=0.0,t=0,c=0,b=0,u=0,w=0.0;u=k;k=k+1056|0;c=u;t=u+32|0;b=e+48|0;if(!(a[b>>2]|0)){r=a[A+16>>2]|0;l=+s[r+16>>3];if(true){n=+s[r+24>>3];f=n+ +s[e+24>>3];n=n+ +s[e+40>>3]}else{}w=l+ +s[e+32>>3];s[c>>3]=l+ +s[e+16>>3];s[c+8>>3]=f;s[c+16>>3]=w;s[c+24>>3]=n;S4(t,102779,c)|0;uo(i,t)|0}e=e+56|0;r=0;while(1){if((r|0)>=(a[b>>2]|0))break;KV(A,a[(a[e>>2]|0)+(r<<2)>>2]|0,i);r=r+1|0}k=u;return}function _V(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0,t=0,c=0.0,b=0.0,u=0,w=0,o=0,h=0,d=0,B=0,g=0.0;B=k;k=k+1088|0;w=B+56|0;h=B+48|0;o=B+32|0;t=B;u=B+64|0;d=A+16|0;l=a[d>>2]|0;if(true){c=+s[l+24>>3];b=+s[l+40>>3]}else{}g=+s[l+32>>3];s[t>>3]=+s[l+16>>3];s[t+8>>3]=c;s[t+16>>3]=g;s[t+24>>3]=b;S4(u,102754,t)|0;Vo(A,e,u)|0;l=a[(a[d>>2]|0)+12>>2]|0;if((l|0)!=0?(r[a[l>>2]>>0]|0)!=0:0){g=+s[l+64>>3];g=true?g:undefined;s[o>>3]=+s[l+56>>3];s[o+8>>3]=g;S4(u,102695,o)|0;Vo(A,i,u)|0;l=a[(a[d>>2]|0)+12>>2]|0;g=+s[l+32>>3];s[h>>3]=+s[l+24>>3]*.013888888888888888;S4(u,102774,h)|0;Vo(A,f,u)|0;s[w>>3]=g*.013888888888888888;S4(u,102774,w)|0;Vo(A,n,u)|0;l=1}else l=1;while(1){t=a[d>>2]|0;if((l|0)>(a[t+180>>2]|0))break;_V(a[(a[t+184>>2]|0)+(l<<2)>>2]|0,e,i,f,n);l=l+1|0}k=B;return}function qV(A){A=A|0;var e=0;e=k;k=k+16|0;OV(A,e,e+4|0);k=e;return}function $V(){return jk(20740,a[4581]|0)|0}function AJ(A,e,i){A=A|0;e=e|0;i=i|0;L2(e);return}function eJ(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;A=a[e>>2]|0;r=a[i>>2]|0;if((A|0)<=(r|0))if((A|0)<(r|0))A=-1;else{e=a[e+4>>2]|0;i=a[i+4>>2]|0;return((e|0)>(i|0)?1:((e|0)<(i|0))<<31>>31)|0}else A=1;return A|0}function iJ(A){A=A|0;Hk(A)|0;return}function rJ(A,e){A=A|0;e=e|0;var i=0,r=0;i=k;k=k+16|0;r=i;a[r>>2]=a[e>>2];a[r+4>>2]=a[e+4>>2];e=fJ(r)|0;if((y5[a[A>>2]&63](A,e,1)|0)!=(e|0))L2(e);k=i;return}function fJ(A){A=A|0;var e=0,i=0,r=0;e=qF(16)|0;r=A;i=a[r+4>>2]|0;A=e+8|0;a[A>>2]=a[r>>2];a[A+4>>2]=i;return e|0}function aJ(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;r=k;k=k+16|0;f=r+8|0;n=r;a[n>>2]=e;a[n+4>>2]=i;a[f>>2]=a[n>>2];a[f+4>>2]=a[n+4>>2];e=fJ(f)|0;if((y5[a[A>>2]&63](A,e,1)|0)!=(e|0))L2(e);k=r;return}function nJ(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;i=k;k=k+16|0;r=i;n=e;f=a[n+4>>2]|0;e=r+8|0;a[e>>2]=a[n>>2];a[e+4>>2]=f;e=(y5[a[A>>2]&63](A,r,4)|0)!=0&1;k=i;return e|0}function lJ(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;r=k;k=k+16|0;f=r;a[f+8>>2]=e;a[f+12>>2]=i;i=(y5[a[A>>2]&63](A,f,4)|0)!=0&1;k=r;return i|0}function tJ(A){A=A|0;return Sk(A)|0}function cJ(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;i=qF((Sk(A)|0)<<3)|0;e=i;A=xk(A)|0;while(1){if(!A)break;n=A+8|0;f=a[n+4>>2]|0;r=e;a[r>>2]=a[n>>2];a[r+4>>2]=f;e=e+8|0;A=a[A>>2]|0}return i|0}function sJ(){var A=0,e=0,i=0,r=0;A=$F(40)|0;e=A;i=20776;r=e+36|0;do{a[e>>2]=a[i>>2];e=e+4|0;i=i+4|0}while((e|0)<(r|0));a[A+36>>2]=0;return jk(A,a[4581]|0)|0}function bJ(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;i=i+36|0;A=a[i>>2]|0;if(!A)A=$F(20)|0;else a[i>>2]=a[A>>2];f=e+8|0;r=a[f+4>>2]|0;i=A+8|0;a[i>>2]=a[f>>2];a[i+4>>2]=r;a[A+16>>2]=a[e+16>>2];return A|0}function uJ(A,e,i){A=A|0;e=e|0;i=i|0;i=i+36|0;a[e>>2]=a[i>>2];a[i>>2]=e;return}function wJ(A){A=A|0;y5[a[A>>2]&63](A,0,64)|0;return}function kJ(A){A=A|0;var e=0,i=0;e=a[A+4>>2]|0;Hk(A)|0;A=a[e+36>>2]|0;while(1){if(!A)break;i=a[A>>2]|0;L2(A);A=i}L2(e);return}function oJ(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0;f=k;k=k+32|0;n=f;a[n+8>>2]=e;a[n+12>>2]=i;a[n+16>>2]=r;r=a[(y5[a[A>>2]&63](A,n,1)|0)+16>>2]|0;k=f;return r|0}function hJ(A,e){A=A|0;e=e|0;var i=0,r=0.0,f=0.0,n=0.0,l=0.0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0;g=k;k=k+160|0;h=g+144|0;i=g+48|0;t=g+128|0;c=g+112|0;b=g+96|0;u=g+80|0;w=g+32|0;o=g+16|0;d=g;B=A+16|0;A=a[B>>2]|0;r=+s[A+16>>3];f=+s[A+24>>3];n=+s[A+32>>3];l=+s[A+40>>3];if((e+-1|0)>>>0<2){dJ(t,r,l);a[h>>2]=a[t>>2];a[h+4>>2]=a[t+4>>2];a[h+8>>2]=a[t+8>>2];a[h+12>>2]=a[t+12>>2];BJ(i,h);o=i+16|0;dJ(c,n,f);a[h>>2]=a[c>>2];a[h+4>>2]=a[c+4>>2];a[h+8>>2]=a[c+8>>2];a[h+12>>2]=a[c+12>>2];BJ(b,h);a[o>>2]=a[b>>2];a[o+4>>2]=a[b+4>>2];a[o+8>>2]=a[b+8>>2];a[o+12>>2]=a[b+12>>2]}else{dJ(u,r,f);a[h>>2]=a[u>>2];a[h+4>>2]=a[u+4>>2];a[h+8>>2]=a[u+8>>2];a[h+12>>2]=a[u+12>>2];BJ(i,h);u=i+16|0;dJ(w,n,l);a[h>>2]=a[w>>2];a[h+4>>2]=a[w+4>>2];a[h+8>>2]=a[w+8>>2];a[h+12>>2]=a[w+12>>2];BJ(o,h);a[u>>2]=a[o>>2];a[u+4>>2]=a[o+4>>2];a[u+8>>2]=a[o+8>>2];a[u+12>>2]=a[o+12>>2]}A=(a[B>>2]|0)+16|0;a[A>>2]=a[i>>2];a[A+4>>2]=a[i+4>>2];a[A+8>>2]=a[i+8>>2];a[A+12>>2]=a[i+12>>2];a[A+16>>2]=a[i+16>>2];a[A+20>>2]=a[i+20>>2];a[A+24>>2]=a[i+24>>2];a[A+28>>2]=a[i+28>>2];A=a[(a[B>>2]|0)+12>>2]|0;if(!A)A=1;else{A=A+56|0;a[h>>2]=a[A>>2];a[h+4>>2]=a[A+4>>2];a[h+8>>2]=a[A+8>>2];a[h+12>>2]=a[A+12>>2];BJ(d,h);a[A>>2]=a[d>>2];a[A+4>>2]=a[d+4>>2];a[A+8>>2]=a[d+8>>2];a[A+12>>2]=a[d+12>>2];A=1}while(1){i=a[B>>2]|0;if((A|0)>(a[i+180>>2]|0))break;hJ(a[(a[i+184>>2]|0)+(A<<2)>>2]|0,e);A=A+1|0}k=g;return}function dJ(A,e,i){A=A|0;e=+e;i=+i;s[A>>3]=e;s[A+8>>3]=i;return}function BJ(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;i=k;k=k+32|0;n=i+16|0;r=i;f=(a[47265]|0)*90|0;a[n>>2]=a[e>>2];a[n+4>>2]=a[e+4>>2];a[n+8>>2]=a[e+8>>2];a[n+12>>2]=a[e+12>>2];yF(r,n,f);a[e>>2]=a[r>>2];a[e+4>>2]=a[r+4>>2];a[e+8>>2]=a[r+8>>2];a[e+12>>2]=a[r+12>>2];s[e>>3]=+s[e>>3]-+s[23303];r=e+8|0;s[r>>3]=+s[r>>3]-+s[23304];a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2];k=i;return}function gJ(A,e){A=A|0;e=e|0;var i=0,f=0.0,n=0,l=0,t=0.0,c=0.0,b=0,u=0.0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0;C=k;k=k+1168|0;B=C+144|0;E=C+96|0;v=C+64|0;g=C+48|0;w=C+32|0;o=C+16|0;h=C;a[g>>2]=0;a[g+4>>2]=0;a[g+8>>2]=0;a[g+12>>2]=0;d=A+16|0;b=a[(a[d>>2]|0)+116>>2]|0;a[47265]=b&3;b=b&1;r[194957]=b;if(!(b<<24>>24))EJ(A);else vJ(A);CJ(A);b=a[d>>2]|0;i=a[b+12>>2]|0;do{if(i|0?(r[i+81>>0]|0)==0:0){n=i+24|0;a[g>>2]=a[n>>2];a[g+4>>2]=a[n+4>>2];a[g+8>>2]=a[n+8>>2];a[g+12>>2]=a[n+12>>2];u=+s[g>>3]+16.0;s[g>>3]=u;n=g+8|0;f=+s[n>>3]+8.0;s[n>>3]=f;n=(r[b+275>>0]&1)!=0;if(r[194957]|0){if(n){l=b+32|0;s[l>>3]=+s[l>>3]+f}else{l=b+16|0;s[l>>3]=+s[l>>3]-f}n=b+40|0;f=+s[n>>3];l=b+24|0;t=+s[l>>3];c=f-t;if(!(u>c))break;u=(u-c)*.5;s[l>>3]=t-u;s[n>>3]=f+u;break}l=(a[47265]|0)==0;do{if(n)if(l){l=b+40|0;s[l>>3]=+s[l>>3]+f;break}else{l=b+24|0;s[l>>3]=+s[l>>3]-f;break}else if(l){l=b+24|0;s[l>>3]=+s[l>>3]-f;break}else{l=b+40|0;s[l>>3]=+s[l>>3]+f;break}}while(0);n=b+32|0;f=+s[n>>3];l=b+16|0;t=+s[l>>3];c=f-t;if(u>c){u=(u-c)*.5;s[l>>3]=t-u;s[n>>3]=f+u}}}while(0);if(e){switch(a[47265]|0){case 0:{h=b+16|0;a[46606]=a[h>>2];a[46607]=a[h+4>>2];a[46608]=a[h+8>>2];a[46609]=a[h+12>>2];break}case 1:{dJ(w,-+s[b+40>>3],+s[b+16>>3]);a[46606]=a[w>>2];a[46607]=a[w+4>>2];a[46608]=a[w+8>>2];a[46609]=a[w+12>>2];break}case 2:{dJ(o,+s[b+16>>3],-+s[b+40>>3]);a[46606]=a[o>>2];a[46607]=a[o+4>>2];a[46608]=a[o+8>>2];a[46609]=a[o+12>>2];break}case 3:{dJ(h,+s[b+24>>3],+s[b+16>>3]);a[46606]=a[h>>2];a[46607]=a[h+4>>2];a[46608]=a[h+8>>2];a[46609]=a[h+12>>2];break}default:{}}IJ(A);i=a[(a[d>>2]|0)+12>>2]|0}if(i|0?(r[i+81>>0]|0)==0:0){a[B>>2]=a[g>>2];a[B+4>>2]=a[g+4>>2];a[B+8>>2]=a[g+8>>2];a[B+12>>2]=a[g+12>>2];ZJ(A,B)}if(true){k=C;return}if(!(r[194957]|0)){u=+s[23304];c=+s[23303];s[E>>3]=u;s[E+8>>3]=c;s[E+16>>3]=u;s[E+24>>3]=c;s[E+32>>3]=-c;s[E+40>>3]=-u;S4(B,103015,E)|0}else{c=+s[23303];u=+s[23304];s[v>>3]=c;s[v+8>>3]=u;s[v+16>>3]=c;s[v+24>>3]=u;S4(B,102800,v)|0}b3(B)|0;re()}function vJ(A){A=A|0;var e=0,i=0.0,f=0.0,n=0,l=0,t=0;t=A+16|0;if(((Zd(A)|0)!=(A|0)?(n=a[t>>2]|0,l=a[n+12>>2]|0,(l|0)!=0):0)?(r[l+81>>0]|0)==0:0){e=r[n+275>>0]|0;if(!(e&1)){f=+s[n+16>>3]+ +s[n+96>>3]*.5;A=n+104|0}else{f=+s[n+32>>3]-+s[n+64>>3]*.5;A=n+72|0}i=+s[A>>3];A=e<<24>>24;do{if(!(A&4))if(!(A&2)){i=(+s[n+40>>3]+ +s[n+24>>3])*.5;break}else{i=+s[n+40>>3]-i*.5;break}else i=+s[n+24>>3]+i*.5}while(0);s[l+56>>3]=f;s[l+64>>3]=i;r[(a[(a[t>>2]|0)+12>>2]|0)+81>>0]=1;A=1}else A=1;while(1){e=a[t>>2]|0;if((A|0)>(a[e+180>>2]|0))break;vJ(a[(a[e+184>>2]|0)+(A<<2)>>2]|0);A=A+1|0}return}function EJ(A){A=A|0;var e=0,i=0.0,f=0.0,n=0.0,l=0,t=0,c=0;c=A+16|0;if(((Zd(A)|0)!=(A|0)?(l=a[c>>2]|0,t=a[l+12>>2]|0,(t|0)!=0):0)?(r[t+81>>0]|0)==0:0){e=r[l+275>>0]|0;if(!(e&1)){n=+s[l+24>>3]+ +s[l+56>>3]*.5;A=l+48|0}else{n=+s[l+40>>3]-+s[l+88>>3]*.5;A=l+80|0}f=+s[A>>3];A=e<<24>>24;do{if(!(A&4)){i=+s[l+16>>3];if(!(A&2)){i=(+s[l+32>>3]+i)*.5;break}else{i=i+f*.5;break}}else i=+s[l+32>>3]-f*.5}while(0);s[t+56>>3]=i;s[t+64>>3]=n;r[(a[(a[c>>2]|0)+12>>2]|0)+81>>0]=1;A=1}else A=1;while(1){e=a[c>>2]|0;if((A|0)>(a[e+180>>2]|0))break;EJ(a[(a[e+184>>2]|0)+(A<<2)>>2]|0);A=A+1|0}return}function CJ(A){A=A|0;var e=0,i=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0,U=0,x=0;x=k;k=k+544|0;J=x+504|0;U=x+416|0;H=x+376|0;V=x+352|0;F=x+312|0;M=x+288|0;D=x+248|0;p=x+200|0;Q=x+152|0;R=x+96|0;o=x+488|0;L=x+456|0;y=x+424|0;W=x+384|0;z=x+360|0;Y=x+320|0;C=x+296|0;I=x+256|0;Z=x+232|0;G=x+168|0;m=x+136|0;e=x+56|0;N=x+16|0;X=x;w=A+16|0;v=a[w>>2]|0;i=f[v+136>>1]&14;v=n[v+113>>0]|0;if(!((v&54|0)==0?(v&1|0)==0|(a[47139]|0)!=0:0)){v=i<<16>>16==0;u=cd(A)|0;l=0;c=0;t=0;while(1){if(!u)break;i=a[(a[u+16>>2]|0)+108>>2]|0;do{if(i)if(!(r[i+81>>0]|0)){t=t+1|0;break}else{l=l+1|0;break}}while(0);b=Oo(A,u)|0;i=c;while(1){if(!b)break;s=a[b+16>>2]|0;c=a[s+108>>2]|0;do{if(c){if(r[c+81>>0]|0){l=l+1|0;break}if(!v)i=i+((a[s+8>>2]|0)!=0&1)|0}}while(0);c=a[s+100>>2]|0;do{if(c){if(r[c+81>>0]|0){l=l+1|0;break}if(!v)i=i+((a[s+8>>2]|0)!=0&1)|0}}while(0);c=a[s+104>>2]|0;do{if(c){if(r[c+81>>0]|0){l=l+1|0;break}if(!v)i=i+((a[s+8>>2]|0)!=0&1)|0}}while(0);c=a[s+96>>2]|0;do{if(c){if(r[c+81>>0]|0){l=l+1|0;break}if(!v)i=i+((a[s+8>>2]|0)!=0&1)|0}}while(0);b=_o(A,b)|0}u=sd(A,u)|0;c=i}if(!(r[(a[w>>2]|0)+113>>0]&8))w=0;else w=mJ(A)|0;g=c+t|0;if(g|0){h=l+c+w+(gh(A)|0)|0;d=qF(h*40|0)|0;B=qF(g*40|0)|0;dJ(p,2147483647.0,2147483647.0);i=p+16|0;dJ(o,-2147483647.0,-2147483647.0);a[i>>2]=a[o>>2];a[i+4>>2]=a[o+4>>2];a[i+8>>2]=a[o+8>>2];a[i+12>>2]=a[o+12>>2];i=B;t=d;u=cd(A)|0;while(1){if(!u)break;a[J>>2]=a[p>>2];a[J+4>>2]=a[p+4>>2];a[J+8>>2]=a[p+8>>2];a[J+12>>2]=a[p+12>>2];a[J+16>>2]=a[p+16>>2];a[J+20>>2]=a[p+20>>2];a[J+24>>2]=a[p+24>>2];a[J+28>>2]=a[p+28>>2];QJ(L,u,t,J);a[p>>2]=a[L>>2];a[p+4>>2]=a[L+4>>2];a[p+8>>2]=a[L+8>>2];a[p+12>>2]=a[L+12>>2];a[p+16>>2]=a[L+16>>2];a[p+20>>2]=a[L+20>>2];a[p+24>>2]=a[L+24>>2];a[p+28>>2]=a[L+28>>2];l=a[(a[u+16>>2]|0)+108>>2]|0;do{if(l)if(!(r[l+81>>0]|0)){a[J>>2]=a[Q>>2];a[J+4>>2]=a[Q+4>>2];a[J+8>>2]=a[Q+8>>2];a[J+12>>2]=a[Q+12>>2];yJ(l,t,i,0,J);i=i+40|0;break}else{t=t+40|0;a[J>>2]=a[p>>2];a[J+4>>2]=a[p+4>>2];a[J+8>>2]=a[p+8>>2];a[J+12>>2]=a[p+12>>2];a[J+16>>2]=a[p+16>>2];a[J+20>>2]=a[p+20>>2];a[J+24>>2]=a[p+24>>2];a[J+28>>2]=a[p+28>>2];LJ(y,l,t,J);a[p>>2]=a[y>>2];a[p+4>>2]=a[y+4>>2];a[p+8>>2]=a[y+8>>2];a[p+12>>2]=a[y+12>>2];a[p+16>>2]=a[y+16>>2];a[p+20>>2]=a[y+20>>2];a[p+24>>2]=a[y+24>>2];a[p+28>>2]=a[y+28>>2];break}}while(0);b=Oo(A,u)|0;t=t+40|0;while(1){if(!b)break;s=b+16|0;l=a[s>>2]|0;c=a[l+96>>2]|0;A:do{if(!c)E=52;else{do{if(!(r[c+81>>0]|0)){if(!v?a[l+8>>2]|0:0){pN(z,A,b);a[J>>2]=a[z>>2];a[J+4>>2]=a[z+4>>2];a[J+8>>2]=a[z+8>>2];a[J+12>>2]=a[z+12>>2];yJ(c,t,i,1,J);i=i+40|0;break}a[D>>2]=a[c>>2];ao(0,103827,D)|0;break A}else{a[J>>2]=a[p>>2];a[J+4>>2]=a[p+4>>2];a[J+8>>2]=a[p+8>>2];a[J+12>>2]=a[p+12>>2];a[J+16>>2]=a[p+16>>2];a[J+20>>2]=a[p+20>>2];a[J+24>>2]=a[p+24>>2];a[J+28>>2]=a[p+28>>2];LJ(W,c,t,J);a[p>>2]=a[W>>2];a[p+4>>2]=a[W+4>>2];a[p+8>>2]=a[W+8>>2];a[p+12>>2]=a[W+12>>2];a[p+16>>2]=a[W+16>>2];a[p+20>>2]=a[W+20>>2];a[p+24>>2]=a[W+24>>2];a[p+28>>2]=a[W+28>>2]}}while(0);t=t+40|0;l=a[s>>2]|0;E=52}}while(0);A:do{if((E|0)==52){E=0;c=a[l+104>>2]|0;if(c){do{if(!(r[c+81>>0]|0)){if(!v?a[l+8>>2]|0:0){WJ(C,b);a[J>>2]=a[C>>2];a[J+4>>2]=a[C+4>>2];a[J+8>>2]=a[C+8>>2];a[J+12>>2]=a[C+12>>2];yJ(c,t,i,1,J);i=i+40|0;break}a[M>>2]=a[c>>2];ao(0,103862,M)|0;break A}else{a[J>>2]=a[p>>2];a[J+4>>2]=a[p+4>>2];a[J+8>>2]=a[p+8>>2];a[J+12>>2]=a[p+12>>2];a[J+16>>2]=a[p+16>>2];a[J+20>>2]=a[p+20>>2];a[J+24>>2]=a[p+24>>2];a[J+28>>2]=a[p+28>>2];LJ(Y,c,t,J);a[p>>2]=a[Y>>2];a[p+4>>2]=a[Y+4>>2];a[p+8>>2]=a[Y+8>>2];a[p+12>>2]=a[Y+12>>2];a[p+16>>2]=a[Y+16>>2];a[p+20>>2]=a[Y+20>>2];a[p+24>>2]=a[Y+24>>2];a[p+28>>2]=a[Y+28>>2]}}while(0);t=t+40|0;l=a[s>>2]|0}c=a[l+100>>2]|0;if(c){do{if(!(r[c+81>>0]|0)){if(!v?a[l+8>>2]|0:0){zJ(Z,b);a[J>>2]=a[Z>>2];a[J+4>>2]=a[Z+4>>2];a[J+8>>2]=a[Z+8>>2];a[J+12>>2]=a[Z+12>>2];yJ(c,t,i,1,J);i=i+40|0;break}a[F>>2]=a[c>>2];ao(0,103902,F)|0;break A}else{a[J>>2]=a[p>>2];a[J+4>>2]=a[p+4>>2];a[J+8>>2]=a[p+8>>2];a[J+12>>2]=a[p+12>>2];a[J+16>>2]=a[p+16>>2];a[J+20>>2]=a[p+20>>2];a[J+24>>2]=a[p+24>>2];a[J+28>>2]=a[p+28>>2];LJ(I,c,t,J);a[p>>2]=a[I>>2];a[p+4>>2]=a[I+4>>2];a[p+8>>2]=a[I+8>>2];a[p+12>>2]=a[I+12>>2];a[p+16>>2]=a[I+16>>2];a[p+20>>2]=a[I+20>>2];a[p+24>>2]=a[I+24>>2];a[p+28>>2]=a[I+28>>2]}}while(0);t=t+40|0;l=a[s>>2]|0}c=a[l+108>>2]|0;if(c){do{if(!(r[c+81>>0]|0)){if(!v?a[l+8>>2]|0:0){pN(m,A,b);a[J>>2]=a[m>>2];a[J+4>>2]=a[m+4>>2];a[J+8>>2]=a[m+8>>2];a[J+12>>2]=a[m+12>>2];yJ(c,t,i,1,J);i=i+40|0;break}a[V>>2]=a[c>>2];ao(0,103942,V)|0;break A}else{a[J>>2]=a[p>>2];a[J+4>>2]=a[p+4>>2];a[J+8>>2]=a[p+8>>2];a[J+12>>2]=a[p+12>>2];a[J+16>>2]=a[p+16>>2];a[J+20>>2]=a[p+20>>2];a[J+24>>2]=a[p+24>>2];a[J+28>>2]=a[p+28>>2];LJ(G,c,t,J);a[p>>2]=a[G>>2];a[p+4>>2]=a[G+4>>2];a[p+8>>2]=a[G+8>>2];a[p+12>>2]=a[G+12>>2];a[p+16>>2]=a[G+16>>2];a[p+20>>2]=a[G+20>>2];a[p+24>>2]=a[G+24>>2];a[p+28>>2]=a[G+28>>2]}}while(0);t=t+40|0}}}while(0);b=_o(A,b)|0}u=sd(A,u)|0}if(w|0){a[e>>2]=a[p>>2];a[e+4>>2]=a[p+4>>2];a[e+8>>2]=a[p+8>>2];a[e+12>>2]=a[p+12>>2];a[e+16>>2]=a[p+16>>2];a[e+20>>2]=a[p+20>>2];a[e+24>>2]=a[p+24>>2];a[e+28>>2]=a[p+28>>2];a[e+32>>2]=t;l=J;i=l+40|0;do{a[l>>2]=a[e>>2];l=l+4|0;e=e+4|0}while((l|0)<(i|0));YJ(N,A,J);a[p>>2]=a[N>>2];a[p+4>>2]=a[N+4>>2];a[p+8>>2]=a[N+8>>2];a[p+12>>2]=a[N+12>>2];a[p+16>>2]=a[N+16>>2];a[p+20>>2]=a[N+20>>2];a[p+24>>2]=a[N+24>>2];a[p+28>>2]=a[N+28>>2]}r[R+32>>0]=gR(A,Yo(A,0,103978,0)|0,1)|0;a[R>>2]=a[p>>2];a[R+4>>2]=a[p+4>>2];a[R+8>>2]=a[p+8>>2];a[R+12>>2]=a[p+12>>2];a[R+16>>2]=a[p+16>>2];a[R+20>>2]=a[p+20>>2];a[R+24>>2]=a[p+24>>2];a[R+28>>2]=a[p+28>>2];$r(d,h,B,g,R)|0;if(0){}e=0;i=0;l=B;while(1){if((i|0)>=(g|0))break;if(r[l+36>>0]|0){R=a[l+32>>2]|0;r[R+81>>0]=1;N=R+56|0;MJ(X,l);a[N>>2]=a[X>>2];a[N+4>>2]=a[X+4>>2];a[N+8>>2]=a[X+8>>2];a[N+12>>2]=a[X+12>>2];HR(A,R);e=e+1|0}i=i+1|0;l=l+40|0}if(true){if((e|0)!=(g|0)){a[U>>2]=e;a[U+4>>2]=g;ao(0,104023,U)|0}}else{}L2(d);L2(B)}}k=x;return}function IJ(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0;l=k;k=k+48|0;r=l+32|0;f=l+16|0;n=l;if(+s[23303]!=0.0|+s[23304]!=0.0|(a[47265]|0)!=0){i=cd(A)|0;while(1){if(!i)break;if(a[47265]|0)DX(i,0);e=i+16|0;t=(a[e>>2]|0)+16|0;a[r>>2]=a[t>>2];a[r+4>>2]=a[t+4>>2];a[r+8>>2]=a[t+8>>2];a[r+12>>2]=a[t+12>>2];BJ(f,r);a[t>>2]=a[f>>2];a[t+4>>2]=a[f+4>>2];a[t+8>>2]=a[f+8>>2];a[t+12>>2]=a[f+12>>2];e=a[(a[e>>2]|0)+108>>2]|0;if(e|0){t=e+56|0;a[r>>2]=a[t>>2];a[r+4>>2]=a[t+4>>2];a[r+8>>2]=a[t+8>>2];a[r+12>>2]=a[t+12>>2];BJ(n,r);a[t>>2]=a[n>>2];a[t+4>>2]=a[n+4>>2];a[t+8>>2]=a[n+8>>2];a[t+12>>2]=a[n+12>>2]}A:do{if((a[47138]|0)==1){e=Oo(A,i)|0;while(1){if(!e)break A;GJ(e);e=_o(A,e)|0}}}while(0);i=sd(A,i)|0}hJ(A,a[(a[A+16>>2]|0)+116>>2]&3)}k=l;return}function ZJ(A,e){A=A|0;e=e|0;var i=0.0,f=0.0,n=0,l=0,t=0;l=A+16|0;t=a[l>>2]|0;n=r[t+275>>0]|0;A=n<<24>>24;do{if(!(A&4)){i=+s[t+16>>3];if(!(A&2)){f=(+s[t+32>>3]+i)*.5;break}else{f=+s[e>>3]*.5+i;break}}else f=+s[t+32>>3]-+s[e>>3]*.5}while(0);if(!(n&1))i=+s[e+8>>3]*.5+ +s[t+24>>3];else i=+s[t+40>>3]-+s[e+8>>3]*.5;t=a[t+12>>2]|0;s[t+56>>3]=f;s[t+64>>3]=i;r[(a[(a[l>>2]|0)+12>>2]|0)+81>>0]=1;return}function GJ(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0;B=k;k=k+144|0;h=B+120|0;i=B+16|0;t=B+104|0;c=B+88|0;s=B+72|0;b=B+56|0;u=B+40|0;w=B+24|0;d=B;o=A+16|0;e=a[o>>2]|0;f=a[e+8>>2]|0;if(!f){if((r[194954]|0)==0?(r[e+112>>0]|0)!=6:0){h=Vh(a[((a[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0)|0;d=Vh(a[((a[A>>2]&3|0)==2?A:A+-48|0)+40>>2]|0)|0;a[i>>2]=h;a[i+4>>2]=d;ao(1,103810,i)|0}}else{l=0;A=f;while(1){if((l|0)>=(a[A+4>>2]|0))break;n=a[A>>2]|0;A=a[n+(l*48|0)>>2]|0;i=a[n+(l*48|0)+4>>2]|0;f=a[n+(l*48|0)+8>>2]|0;n=a[n+(l*48|0)+12>>2]|0;e=0;while(1){if((e|0)>=(i|0))break;g=A+(e<<4)|0;a[h>>2]=a[g>>2];a[h+4>>2]=a[g+4>>2];a[h+8>>2]=a[g+8>>2];a[h+12>>2]=a[g+12>>2];BJ(t,h);a[g>>2]=a[t>>2];a[g+4>>2]=a[t+4>>2];a[g+8>>2]=a[t+8>>2];a[g+12>>2]=a[t+12>>2];e=e+1|0}if(f|0){g=(a[a[(a[o>>2]|0)+8>>2]>>2]|0)+(l*48|0)+16|0;a[h>>2]=a[g>>2];a[h+4>>2]=a[g+4>>2];a[h+8>>2]=a[g+8>>2];a[h+12>>2]=a[g+12>>2];BJ(c,h);a[g>>2]=a[c>>2];a[g+4>>2]=a[c+4>>2];a[g+8>>2]=a[c+8>>2];a[g+12>>2]=a[c+12>>2]}if(n|0){g=(a[a[(a[o>>2]|0)+8>>2]>>2]|0)+(l*48|0)+32|0;a[h>>2]=a[g>>2];a[h+4>>2]=a[g+4>>2];a[h+8>>2]=a[g+8>>2];a[h+12>>2]=a[g+12>>2];BJ(s,h);a[g>>2]=a[s>>2];a[g+4>>2]=a[s+4>>2];a[g+8>>2]=a[s+8>>2];a[g+12>>2]=a[s+12>>2]}e=a[o>>2]|0;l=l+1|0;A=a[e+8>>2]|0}A=a[e+96>>2]|0;if(A){e=A+56|0;a[h>>2]=a[e>>2];a[h+4>>2]=a[e+4>>2];a[h+8>>2]=a[e+8>>2];a[h+12>>2]=a[e+12>>2];BJ(b,h);a[e>>2]=a[b>>2];a[e+4>>2]=a[b+4>>2];a[e+8>>2]=a[b+8>>2];a[e+12>>2]=a[b+12>>2];e=a[o>>2]|0}A=a[e+108>>2]|0;if(A){e=A+56|0;a[h>>2]=a[e>>2];a[h+4>>2]=a[e+4>>2];a[h+8>>2]=a[e+8>>2];a[h+12>>2]=a[e+12>>2];BJ(u,h);a[e>>2]=a[u>>2];a[e+4>>2]=a[u+4>>2];a[e+8>>2]=a[u+8>>2];a[e+12>>2]=a[u+12>>2];e=a[o>>2]|0}A=a[e+100>>2]|0;if(A){e=A+56|0;a[h>>2]=a[e>>2];a[h+4>>2]=a[e+4>>2];a[h+8>>2]=a[e+8>>2];a[h+12>>2]=a[e+12>>2];BJ(w,h);a[e>>2]=a[w>>2];a[e+4>>2]=a[w+4>>2];a[e+8>>2]=a[w+8>>2];a[e+12>>2]=a[w+12>>2];e=a[o>>2]|0}e=a[e+104>>2]|0;if(e|0){g=e+56|0;a[h>>2]=a[g>>2];a[h+4>>2]=a[g+4>>2];a[h+8>>2]=a[g+8>>2];a[h+12>>2]=a[g+12>>2];BJ(d,h);a[g>>2]=a[d>>2];a[g+4>>2]=a[d+4>>2];a[g+8>>2]=a[d+8>>2];a[g+12>>2]=a[d+12>>2]}}k=B;return}function mJ(A){A=A|0;var e=0,i=0,f=0;f=A+16|0;if((Zd(A)|0)!=(A|0)?(e=a[(a[f>>2]|0)+12>>2]|0,(e|0)!=0):0){i=1;A=(r[e+81>>0]|0)!=0&1}else{i=1;A=0}while(1){e=a[f>>2]|0;if((i|0)>(a[e+180>>2]|0))break;e=(mJ(a[(a[e+184>>2]|0)+(i<<2)>>2]|0)|0)+A|0;i=i+1|0;A=e}return A|0}function QJ(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0.0,c=0.0,b=0,u=0;n=k;k=k+32|0;l=n;u=(r[194957]|0)==0;e=e+16|0;b=a[e>>2]|0;c=+s[(u?b+32|0:b+40|0)>>3];s[i+16>>3]=c*72.0;t=+s[(u?b+40|0:b+32|0)>>3];s[i+24>>3]=t*72.0;e=(a[e>>2]|0)+16|0;a[i>>2]=a[e>>2];a[i+4>>2]=a[e+4>>2];a[i+8>>2]=a[e+8>>2];a[i+12>>2]=a[e+12>>2];s[i>>3]=+s[i>>3]-c*36.0;e=i+8|0;s[e>>3]=+s[e>>3]-t*36.0;a[l>>2]=a[f>>2];a[l+4>>2]=a[f+4>>2];a[l+8>>2]=a[f+8>>2];a[l+12>>2]=a[f+12>>2];a[l+16>>2]=a[f+16>>2];a[l+20>>2]=a[f+20>>2];a[l+24>>2]=a[f+24>>2];a[l+28>>2]=a[f+28>>2];FJ(A,i,l);k=n;return}function LJ(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0.0,c=0.0,b=0,u=0;n=k;k=k+32|0;l=n;u=(r[194957]|0)==0;b=e+24|0;c=+s[(u?b:e+32|0)>>3];s[i+16>>3]=c;t=+s[(u?e+32|0:b)>>3];s[i+24>>3]=t;e=e+56|0;a[i>>2]=a[e>>2];a[i+4>>2]=a[e+4>>2];a[i+8>>2]=a[e+8>>2];a[i+12>>2]=a[e+12>>2];s[i>>3]=+s[i>>3]-c*.5;e=i+8|0;s[e>>3]=+s[e>>3]-t*.5;a[l>>2]=a[f>>2];a[l+4>>2]=a[f+4>>2];a[l+8>>2]=a[f+8>>2];a[l+12>>2]=a[f+12>>2];a[l+16>>2]=a[f+16>>2];a[l+20>>2]=a[f+20>>2];a[l+24>>2]=a[f+24>>2];a[l+28>>2]=a[f+28>>2];FJ(A,i,l);k=n;return}function yJ(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;if(f|0){f=e+16|0;a[f>>2]=0;a[f+4>>2]=0;a[f+8>>2]=0;a[f+12>>2]=0;a[e>>2]=a[n>>2];a[e+4>>2]=a[n+4>>2];a[e+8>>2]=a[n+8>>2];a[e+12>>2]=a[n+12>>2]}if(!(r[194957]|0)){n=A+24|0;a[i>>2]=a[n>>2];a[i+4>>2]=a[n+4>>2];a[i+8>>2]=a[n+8>>2];a[i+12>>2]=a[n+12>>2]}else{s[i>>3]=+s[A+32>>3];s[i+8>>3]=+s[A+24>>3]}a[i+32>>2]=A;r[i+36>>0]=0;a[e+32>>2]=i;return}function WJ(A,e){A=A|0;e=e|0;e=JN(e)|0;do{if(e){e=a[e>>2]|0;if(!(a[e+8>>2]|0)){e=a[e>>2]|0;a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2];break}else{e=e+16|0;a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2];break}}else{a[A>>2]=0;a[A+4>>2]=0;a[A+8>>2]=0;a[A+12>>2]=0}}while(0);return}function zJ(A,e){A=A|0;e=e|0;var i=0;e=JN(e)|0;do{if(e){i=a[e>>2]|0;e=(a[e+4>>2]|0)+-1|0;if(!(a[i+(e*48|0)+12>>2]|0)){i=(a[i+(e*48|0)>>2]|0)+((a[i+(e*48|0)+4>>2]|0)+-1<<4)|0;a[A>>2]=a[i>>2];a[A+4>>2]=a[i+4>>2];a[A+8>>2]=a[i+8>>2];a[A+12>>2]=a[i+12>>2];break}else{i=i+(e*48|0)+32|0;a[A>>2]=a[i>>2];a[A+4>>2]=a[i+4>>2];a[A+8>>2]=a[i+8>>2];a[A+12>>2]=a[i+12>>2];break}}else{a[A>>2]=0;a[A+4>>2]=0;a[A+8>>2]=0;a[A+12>>2]=0}}while(0);return}function YJ(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0;h=k;k=k+112|0;s=h+72|0;u=h+32|0;w=h;o=e+16|0;c=1;while(1){f=a[o>>2]|0;if((c|0)>(a[f+180>>2]|0))break;f=a[(a[f+184>>2]|0)+(c<<2)>>2]|0;n=s;l=i;t=n+40|0;do{a[n>>2]=a[l>>2];n=n+4|0;l=l+4|0}while((n|0)<(t|0));YJ(u,f,s);n=i;l=u;t=n+40|0;do{a[n>>2]=a[l>>2];n=n+4|0;l=l+4|0}while((n|0)<(t|0));c=c+1|0}if(((Zd(e)|0)!=(e|0)?(b=a[(a[o>>2]|0)+12>>2]|0,b|0):0)?r[b+81>>0]|0:0){o=i+32|0;u=a[o>>2]|0;a[s>>2]=a[i>>2];a[s+4>>2]=a[i+4>>2];a[s+8>>2]=a[i+8>>2];a[s+12>>2]=a[i+12>>2];a[s+16>>2]=a[i+16>>2];a[s+20>>2]=a[i+20>>2];a[s+24>>2]=a[i+24>>2];a[s+28>>2]=a[i+28>>2];LJ(w,b,u,s);a[i>>2]=a[w>>2];a[i+4>>2]=a[w+4>>2];a[i+8>>2]=a[w+8>>2];a[i+12>>2]=a[w+12>>2];a[i+16>>2]=a[w+16>>2];a[i+20>>2]=a[w+20>>2];a[i+24>>2]=a[w+24>>2];a[i+28>>2]=a[w+28>>2];a[o>>2]=(a[o>>2]|0)+40}n=A;l=i;t=n+40|0;do{a[n>>2]=a[l>>2];n=n+4|0;l=l+4|0}while((n|0)<(t|0));k=h;return}function DJ(A,e,i,r,f){A|0;e|0;i|0;r|0;f|0;var l=0.0,t=0.0,c=0.0,b=0.0,u=0,w=0,o=0,h=0,d=0,B=0;k;k=k+160|0;B+96|0;B+48|0;B;a[15712]|0;n[f+32>>0]|0;+s[f>>3];+s[f+8>>3];+s[f+16>>3];+s[f+24>>3];a[w>>2]=e;a[w+4>>2]=r;a[w+8>>2]=u;s[w+16>>3]=l;s[w+24>>3]=t;s[w+32>>3]=c;s[w+40>>3]=b;f3(h,104065,w)|0;A:do{if(0>=2){L3(104125,8,1,h)|0;0;while(1){if((w|0)>=(e|0))break;a[A+32>>2]|0;+s[A>>3];+s[A+8>>3];+s[A+16>>3];+s[A+24>>3];if(!f)195059;else a[a[f+32>>2]>>2]|0;a[o>>2]=w;s[o+8>>3]=l;s[o+16>>3]=t;s[o+24>>3]=c;s[o+32>>3]=b;a[o+40>>2]=f;a[o+44>>2]=u;f3(h,104134,o)|0;w+1|0;A+40|0}L3(104177,8,1,h)|0;0;while(1){if((f|0)>=(r|0))break A;n[i+36>>0]|0;+s[i+16>>3];+s[i+24>>3];+s[i>>3];+s[i+8>>3];a[a[i+32>>2]>>2]|0;a[d>>2]=f;a[d+4>>2]=i;a[d+8>>2]=e;s[d+16>>3]=l;s[d+24>>3]=t;s[d+32>>3]=c;s[d+40>>3]=b;a[d+48>>2]=o;f3(h,104186,d)|0;i+40|0;f+1|0}}}while(0);k=B;return}function MJ(A,e){A=A|0;e=e|0;var i=0.0;i=+s[e+8>>3]*.5+ +s[e+24>>3];s[A>>3]=+s[e>>3]*.5+ +s[e+16>>3];s[A+8>>3]=i;return}function FJ(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0.0,t=0.0;r=k;k=k+16|0;f=r;t=+s[e>>3];s[i>>3]=+s[(+s[i>>3]>3];n=i+8|0;l=+s[e+8>>3];s[n>>3]=+s[(+s[n>>3]>3];t=+s[e+16>>3]+t;s[f>>3]=t;l=+s[e+24>>3]+l;s[f+8>>3]=l;n=i+16|0;s[n>>3]=+s[(+s[n>>3]>t?n:f)>>3];e=i+24|0;s[e>>3]=+s[(+s[e>>3]>l?n:f)+8>>3];a[A>>2]=a[i>>2];a[A+4>>2]=a[i+4>>2];a[A+8>>2]=a[i+8>>2];a[A+12>>2]=a[i+12>>2];a[A+16>>2]=a[i+16>>2];a[A+20>>2]=a[i+20>>2];a[A+24>>2]=a[i+24>>2];a[A+28>>2]=a[i+28>>2];k=r;return}function VJ(A){A=A|0;gJ(A,1);return}function JJ(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;r=k;k=k+16|0;i=r;e=yR(Ho(A,105526)|0)|0;if(e){e=pJ(e)|0;if(e|0){f=a[e+40>>2]|0;i=a[e+44>>2]|0;n=A+16|0;A=a[n>>2]|0;s[A+32>>3]=+(f|0)*.013888888888888888;s[A+40>>3]=+(i|0)*.013888888888888888;A=qF(12)|0;a[(a[n>>2]|0)+12>>2]=A;a[A>>2]=a[e+12>>2];a[A+4>>2]=((f|0)/-2|0)-(a[e+32>>2]|0);a[A+8>>2]=((i|0)/-2|0)-(a[e+36>>2]|0)}}else{a[i>>2]=Vh(A)|0;ao(0,104234,i)|0}k=r;return}function pJ(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0;o=k;k=k+1152|0;t=o+24|0;l=o+8|0;i=o;f=o+120|0;c=o+44|0;s=o+40|0;b=o+36|0;u=o+32|0;w=o+28|0;e=a[47266]|0;if(!e){e=jk(20812,a[4581]|0)|0;a[47266]=e}e=y5[a[e>>2]&63](e,A,512)|0;do{if(!e){n=F3(A,138821)|0;if(!n){a[i>>2]=A;ao(0,104283,i)|0;e=0;break}else{e=0;i=0}while(1){if(!(p4(f,1024,n)|0)){f=11;break}a[l>>2]=s;a[l+4>>2]=b;a[l+8>>2]=u;a[l+12>>2]=w;h=(J3(f,104311,l)|0)==4;i=h?1:i;if((r[f>>0]|0)!=37){h=(N4(f,104340)|0)==0;e=h?e:1}if((i|0)!=0&(e|0)!=0){f=12;break}}if((f|0)==11)if(!i){a[t>>2]=A;ao(0,104345,t)|0;e=0}else f=12;if((f|0)==12){h=$F(64)|0;s=a[s>>2]|0;a[h+32>>2]=s;b=a[b>>2]|0;a[h+40>>2]=(a[u>>2]|0)-s;a[h+36>>2]=(a[w>>2]|0)-b;a[h+8>>2]=A;w=a[47267]|0;a[47267]=w+1;a[h+12>>2]=w;D3(t6(n)|0,c)|0;w=a[c+36>>2]|0;u=$F(w+1|0)|0;a[h+52>>2]=u;O3(n,0,0)|0;a6(u,w,1,n)|0;r[u+w>>0]=0;w=a[47266]|0;y5[a[w>>2]&63](w,h,1)|0;r[h+16>>0]=e;e=h}h3(n)|0}}while(0);k=o;return e|0}function NJ(A,e,i){A=A|0;e=e|0;i=i|0;L2(a[e+52>>2]|0);return}function RJ(A){A=A|0;L2(a[(a[A+16>>2]|0)+12>>2]|0);return}function XJ(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0;u=k;k=k+16|0;b=u+8|0;s=u;c=(e|0)!=0;A:do{if(c){l=0;f=0;e:while(1)while(1){if(l)break A;n=a[e+(f<<2)>>2]|0;if(!n){t=6;break A}f=f+1|0;if(!(r[n>>0]|0)){l=1;continue e}}}else t=6}while(0);A:do{if((t|0)==6)while(1){f=a[i>>2]|0;if(!f)break A;kv(A,f)|0;kv(A,153599)|0;i=i+4|0;t=6}}while(0);A:do{if(c){l=0;while(1){f=a[e+(l<<2)>>2]|0;if(!f)break A;do{if(r[f>>0]|0){i=yR(f)|0;if(!i){a[s>>2]=f;ao(0,104384,s)|0;break}n=F3(i,138821)|0;if(!n){a[b>>2]=i;ao(0,104412,b)|0;break}while(1){f=LR(n)|0;if(!f)break;kv(A,f)|0}kv(A,153599)|0;h3(n)|0}}while(0);l=l+1|0}}}while(0);k=u;return}function HJ(A,e){A=A|0;e=e|0;var i=0,f=0,n=0;e=a[e+52>>2]|0;A:while(1){i=r[e>>0]|0;e:do{switch(i<<24>>24){case 0:break A;case 37:{if((r[e+1>>0]|0)==37){i=e+2|0;if((((T1(i,104440,3)|0)!=0?(T1(i,104444,5)|0)!=0:0)?(T1(i,104450,3)|0)!=0:0)?(T1(i,104454,7)|0)!=0:0){i=37;break e}else n=37;i:while(1){switch(n<<24>>24){case 13:{f=10;break i}case 10:case 0:{f=12;break i}default:{}}n=e+1|0;e=n;n=r[n>>0]|0}if((f|0)==10){i=e+1|0;if((r[i>>0]|0)==10){e=e+2|0;continue A}}else if((f|0)==12)i=e+1|0;e=n<<24>>24==0?e:i;continue A}else i=37;break}default:{}}}while(0);e:while(1){switch(i<<24>>24){case 10:case 13:case 0:break e;default:{}}ov(A,i<<24>>24)|0;n=e+1|0;e=n;i=r[n>>0]|0}f=e+1|0;if(i<<24>>24==13?(r[f>>0]|0)==10:0)e=e+2|0;else e=i<<24>>24==0?e:f;ov(A,10)|0}return}function UJ(A){A=A|0;var e=0,i=0,f=0,n=0;f=k;k=k+16|0;i=f;e=a[47266]|0;A:do{if(e|0){e=y5[a[e>>2]&63](e,0,128)|0;while(1){if(!e)break A;if(!(r[e+16>>0]|0)){a[i>>2]=a[e+12>>2];vv(A,104462,i);kv(A,104480)|0;HJ(A,e);kv(A,104498)|0;kv(A,104513)|0}n=a[47266]|0;e=y5[a[n>>2]&63](n,e,8)|0}}}while(0);k=f;return}function xJ(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0;n=k;k=k+16|0;i=n;A:do{switch(e|0){case 0:{f=A;break}case 1:{f=CX(A)|0;break}default:{switch(TJ(A)|0){case 2:break;case 1:{f=CX(A)|0;break A}default:{f=A;break A}}if(!(a[47268]|0)){ao(0,104525,i)|0;a[47268]=1;f=A}else f=A}}}while(0);if(!(a[47269]|0))co(189076,0,0);e=a[47270]|0;if(e>>>0>=(a[47271]|0)>>>0){so(189076,1)|0;e=a[47270]|0}a[47270]=e+1;r[e>>0]=40;i=f;A:while(1){switch(r[i>>0]|0){case 0:break A;case 92:case 41:case 40:{e=a[47270]|0;if(e>>>0>=(a[47271]|0)>>>0){so(189076,1)|0;e=a[47270]|0}a[47270]=e+1;r[e>>0]=92;break}default:{}}e=a[47270]|0;if(e>>>0>=(a[47271]|0)>>>0){so(189076,1)|0;e=a[47270]|0}l=r[i>>0]|0;a[47270]=e+1;r[e>>0]=l;i=i+1|0}e=a[47270]|0;if(e>>>0>=(a[47271]|0)>>>0){so(189076,1)|0;e=a[47270]|0}a[47270]=e+1;r[e>>0]=41;if((f|0)!=(A|0))L2(f);e=a[47270]|0;if(e>>>0>=(a[47271]|0)>>>0){so(189076,1)|0;e=a[47270]|0}r[e>>0]=0;l=a[47269]|0;a[47270]=l;k=n;return l|0}function TJ(A){A=A|0;var e=0,i=0;e=0;A:while(1){while(1){i=r[A>>0]|0;if(!(i<<24>>24))break A;if((i&255)<127)A=A+1|0;else break}if((i&-4)<<24>>24==-64){e=1;A=A+2|0}else{e=2;break}}return e|0}function jJ(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0;u=k;k=k+96|0;l=u+80|0;t=u+72|0;b=u+64|0;n=u+32|0;c=u;s[n>>3]=+s[A>>3];s[n+8>>3]=+s[A+8>>3];s[n+16>>3]=+s[e>>3];s[n+24>>3]=+s[e+8>>3];do{if((ic(i,n,t)|0)>=0){if(!f){e=i+4|0;A=a[e>>2]|0;f=a[47274]|0;if((A|0)>(a[47273]|0)){if(!f)A=$F(A<<5)|0;else A=eV(f,A<<5)|0;a[47274]=A;n=a[e>>2]|0;a[47273]=n;f=A}else n=A;e=a[i>>2]|0;A=0;while(1){if((A|0)>=(n|0))break;w=f+(A<<5)|0;i=e+(A<<4)|0;a[w>>2]=a[i>>2];a[w+4>>2]=a[i+4>>2];a[w+8>>2]=a[i+8>>2];a[w+12>>2]=a[i+12>>2];w=f+(A<<5)+16|0;i=A+1|0;o=e+(((i|0)%(n|0)|0)<<4)|0;a[w>>2]=a[o>>2];a[w+4>>2]=a[o+4>>2];a[w+8>>2]=a[o+8>>2];a[w+12>>2]=a[o+12>>2];A=i}a[c>>2]=0;a[c+4>>2]=0;a[c+8>>2]=0;a[c+12>>2]=0;a[c+16>>2]=0;a[c+20>>2]=0;a[c+24>>2]=0;a[c+28>>2]=0;a[l>>2]=a[t>>2];a[l+4>>2]=a[t+4>>2];if((Mt(f,n,l,c,b)|0)<0){A=0;break}}else{a[l>>2]=a[t>>2];a[l+4>>2]=a[t+4>>2];Gc(l,b)}A=b+4|0;if(!(PJ(a[A>>2]|0)|0)){n=a[A>>2]|0;A=a[47275]|0;f=a[b>>2]|0;e=0;while(1){if((e|0)>=(n|0))break;o=A+(e<<4)|0;w=f+(e<<4)|0;a[o>>2]=a[w>>2];a[o+4>>2]=a[w+4>>2];a[o+8>>2]=a[w+8>>2];a[o+12>>2]=a[w+12>>2];e=e+1|0}a[r>>2]=n}else A=0}else A=0}while(0);k=u;return A|0}function PJ(A){A=A|0;var e=0,i=0,r=0;r=k;k=k+16|0;i=r;e=a[47276]|0;do{if((e|0)<(A|0)){A=A+300-((A|0)%300|0)+e|0;e=eV(a[47275]|0,A<<4)|0;a[47275]=e;if(!e){ao(1,104615,i)|0;A=1;break}else{a[47276]=A;A=0;break}}else A=0}while(0);k=r;return A|0}function SJ(){var A=0,e=0,i=0;e=k;k=k+16|0;A=e;i=a[47277]|0;a[47277]=i+1;do{if((i|0)<=0){i=$F(4800)|0;a[47275]=i;if(!i){ao(1,104638,A)|0;A=1;break}a[47276]=300;a[47278]=0;a[47279]=0;if(0){}else A=0}else A=0}while(0);k=e;return A|0}function OJ(){var A=0,e=0,i=0,r=0.0,f=0,n=0;e=k;k=k+16|0;A=e;i=a[47277]|0;a[47277]=i+-1;if((i|0)<=1?(L2(a[47275]|0),0):0){i=a[15712]|0;n=a[47278]|0;f=a[47279]|0;r=+cR();a[A>>2]=n;a[A+4>>2]=f;s[A+8>>3]=r;f3(i,104676,A)|0}k=e;return}function KJ(A,e){A=A|0;e=e|0;return _J(A,e,0)|0}function _J(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0.0,b=0.0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,F=0,V=0,J=0,p=0,N=0;J=k;k=k+176|0;W=J+168|0;V=J+128|0;I=J+120|0;E=J+112|0;l=J+104|0;B=J+88|0;u=J+72|0;n=J+64|0;g=J+160|0;Y=J+152|0;Z=J+144|0;v=J+32|0;C=J;F=J+136|0;a[47278]=(a[47278]|0)+1;z=a[A+80>>2]|0;a[47279]=(a[47279]|0)+z;f=A+88|0;while(1){L=a[f>>2]|0;if(!L){y=4;break}f=a[L+16>>2]|0;if(!(r[f+112>>0]|0)){y=5;break}else f=f+116|0}do{if((y|0)==4){ao(1,104719,n)|0;f=0}else if((y|0)==5){Q=a[A+84>>2]|0;if(!(qJ(z,Q,A)|0)){n=z<<3;if((n|0)>(a[47280]|0)){f=a[47281]|0;if(!f)f=$F(z<<7)|0;else f=eV(f,z<<7)|0;a[47281]=f;a[47280]=n}A:do{if((z|0)>1?+s[Q+8>>3]>+s[Q+40>>3]:0){f=0;while(1){if((f|0)==(z|0)){o=1;break A}G=Q+(f<<5)+24|0;b=+s[G>>3];m=Q+(f<<5)+8|0;s[G>>3]=-+s[m>>3];s[m>>3]=-b;f=f+1|0}}else o=0}while(0);d=a[L>>2]&3;G=L+48|0;f=a[((d|0)==3?L:G)+40>>2]|0;m=L+-48|0;if((f|0)==(a[((d|0)==2?L:m)+40>>2]|0)){a[l>>2]=Vh(f)|0;ao(1,104826,l)|0;f=0;break}w=z+-1|0;h=a[47281]|0;d=h;f=0;t=0;A:while(1){if((t|0)>=(z|0)){t=w;u=f;break}if((t|0)>0)n=+s[Q+(t<<5)+8>>3]>+s[Q+(t+-1<<5)+8>>3]?-1:1;else n=0;if((t|0)<(w|0))l=+s[Q+(t+1<<5)+8>>3]>+s[Q+(t<<5)+8>>3]?1:-1;else l=0;e:do{if((n|0)!=(l|0))if((n|0)==1|(l|0)==-1){n=Q+(t<<5)|0;s[h+(f<<4)>>3]=+s[n>>3];l=f+1|0;s[h+(f<<4)+8>>3]=+s[Q+(t<<5)+24>>3];s[h+(l<<4)>>3]=+s[n>>3];n=Q+(t<<5)+8|0;y=29;break}else{n=Q+(t<<5)+16|0;s[h+(f<<4)>>3]=+s[n>>3];l=f+1|0;s[h+(f<<4)+8>>3]=+s[Q+(t<<5)+8>>3];s[h+(l<<4)>>3]=+s[n>>3];n=Q+(t<<5)+24|0;y=29;break}else{switch(n|0){case-1:break e;case 0:break;default:{y=28;break A}}n=Q+(t<<5)|0;s[h+(f<<4)>>3]=+s[n>>3];l=f+1|0;s[h+(f<<4)+8>>3]=+s[Q+(t<<5)+24>>3];s[h+(l<<4)>>3]=+s[n>>3];n=Q+(t<<5)+8|0;y=29}}while(0);if((y|0)==29){y=0;s[h+(l<<4)+8>>3]=+s[n>>3];f=f+2|0}t=t+1|0}if((y|0)==28){a[u>>2]=n;a[u+4>>2]=n;a[u+8>>2]=480;ao(1,104761,u)|0;f=0;break}A:while(1){if((t|0)<=-1)break;if((t|0)<(w|0))f=+s[Q+(t<<5)+8>>3]>+s[Q+(t+1<<5)+8>>3]?-1:1;else f=0;if((t|0)>0)n=+s[Q+(t+-1<<5)+8>>3]>+s[Q+(t<<5)+8>>3]?1:-1;else n=0;e:do{if((f|0)!=(n|0))if((f|0)==1|(n|0)==-1){f=Q+(t<<5)|0;s[h+(u<<4)>>3]=+s[f>>3];n=u+1|0;s[h+(u<<4)+8>>3]=+s[Q+(t<<5)+24>>3];s[h+(n<<4)>>3]=+s[f>>3];f=Q+(t<<5)+8|0;l=2;break}else{f=Q+(t<<5)+16|0;s[h+(u<<4)>>3]=+s[f>>3];n=u+1|0;s[h+(u<<4)+8>>3]=+s[Q+(t<<5)+8>>3];s[h+(n<<4)>>3]=+s[f>>3];f=Q+(t<<5)+24|0;l=2;break}else switch(f|0){case 0:{f=Q+(t<<5)+16|0;s[h+(u<<4)>>3]=+s[f>>3];n=u+1|0;s[h+(u<<4)+8>>3]=+s[Q+(t<<5)+8>>3];s[h+(n<<4)>>3]=+s[f>>3];f=Q+(t<<5)+24|0;l=2;break e}case-1:{N=Q+(t<<5)+16|0;s[h+(u<<4)>>3]=+s[N>>3];f=Q+(t<<5)+8|0;l=u+1|0;s[h+(u<<4)+8>>3]=+s[f>>3];s[h+(l<<4)>>3]=+s[N>>3];N=Q+(t<<5)+24|0;p=u+2|0;s[h+(l<<4)+8>>3]=+s[N>>3];l=Q+(t<<5)|0;s[h+(p<<4)>>3]=+s[l>>3];n=u+3|0;s[h+(p<<4)+8>>3]=+s[N>>3];s[h+(n<<4)>>3]=+s[l>>3];l=4;break e}default:{y=42;break A}}}while(0);s[h+(n<<4)+8>>3]=+s[f>>3];t=t+-1|0;u=u+l|0}if((y|0)==42){a[B>>2]=f;a[B+4>>2]=f;a[B+8>>2]=513;ao(1,104761,B)|0;f=0;break}A:do{if(!o)f=0;else{f=0;while(1){if((f|0)>=(z|0)){f=0;break}p=Q+(f<<5)+24|0;b=+s[p>>3];N=Q+(f<<5)+8|0;s[p>>3]=-+s[N>>3];s[N>>3]=-b;f=f+1|0}while(1){if((f|0)>=(u|0)){f=0;break A}N=h+(f<<4)+8|0;s[N>>3]=-+s[N>>3];f=f+1|0}}}while(0);while(1){if((f|0)>=(z|0))break;s[Q+(f<<5)>>3]=2147483647.0;s[Q+(f<<5)+16>>3]=-2147483648.0;f=f+1|0}a[g>>2]=d;l=g+4|0;a[l>>2]=u;s[v>>3]=+s[A>>3];s[v+8>>3]=+s[A+8>>3];s[v+16>>3]=+s[A+40>>3];s[v+24>>3]=+s[A+48>>3];if((ic(g,v,Y)|0)<0){ao(1,104865,E)|0;f=0;break}if(!i){n=a[l>>2]|0;f=a[47274]|0;if((n|0)>(a[47273]|0)){if(!f)f=$F(n<<5)|0;else f=eV(f,n<<5)|0;a[47274]=f;n=a[l>>2]|0;a[47273]=n}t=a[47281]|0;l=0;while(1){if((l|0)>=(n|0))break;p=f+(l<<5)|0;N=t+(l<<4)|0;a[p>>2]=a[N>>2];a[p+4>>2]=a[N+4>>2];a[p+8>>2]=a[N+8>>2];a[p+12>>2]=a[N+12>>2];p=f+(l<<5)+16|0;N=l+1|0;E=t+(((N|0)%(n|0)|0)<<4)|0;a[p>>2]=a[E>>2];a[p+4>>2]=a[E+4>>2];a[p+8>>2]=a[E+8>>2];a[p+12>>2]=a[E+12>>2];l=N}if(!(r[A+29>>0]|0)){c=0.0;b=0.0}else{b=+s[A+16>>3];c=+D(+b);b=+M(+b)}s[C+8>>3]=b;s[C>>3]=c;if(!(r[A+69>>0]|0)){c=0.0;b=0.0}else{b=+s[A+56>>3];c=-+D(+b);b=-+M(+b)}s[C+24>>3]=b;s[C+16>>3]=c;a[W>>2]=a[Y>>2];a[W+4>>2]=a[Y+4>>2];if((Mt(f,n,W,C,Z)|0)<0){ao(1,104904,I)|0;f=0;break}}else{a[W>>2]=a[Y>>2];a[W+4>>2]=a[Y+4>>2];Gc(W,Z)}u=Z+4|0;if(!(PJ(a[u>>2]|0)|0)){f=0;while(1){if((f|0)>=(z|0))break;s[Q+(f<<5)>>3]=2147483647.0;s[Q+(f<<5)+16>>3]=-2147483648.0;f=f+1|0}l=a[u>>2]|0;t=a[47275]|0;n=a[Z>>2]|0;f=0;while(1){if((f|0)>=(l|0)){l=1;f=10;n=0;break}N=t+(f<<4)|0;p=n+(f<<4)|0;a[N>>2]=a[p>>2];a[N+4>>2]=a[p+4>>2];a[N+8>>2]=a[p+8>>2];a[N+12>>2]=a[p+12>>2];f=f+1|0}while(1){if(!((n|0)<15&l<<24>>24!=0))break;$J(Q,z,a[47275]|0,a[u>>2]|0,f);t=0;while(1){if((t|0)>=(z|0))break;if(+s[Q+(t<<5)>>3]==2147483647.0){y=82;break}if(+s[Q+(t<<5)+16>>3]==-2147483648.0){y=82;break}t=t+1|0}if((y|0)==82){y=0;N=f<<1;f=N;n=(N|0)>(2147483647/(z|0)|0|0)?15:n}l=(t|0)==(z|0)?0:l;n=n+1|0}if(l<<24>>24){p=Vh(a[((a[L>>2]&3|0)==3?L:G)+40>>2]|0)|0;N=Vh(a[((a[L>>2]&3|0)==2?L:m)+40>>2]|0)|0;a[V>>2]=p;a[V+4>>2]=N;ao(0,104942,V)|0;a[W>>2]=a[Y>>2];a[W+4>>2]=a[Y+4>>2];Gc(W,F);$J(Q,z,a[F>>2]|0,a[F+4>>2]|0,10);L2(a[F>>2]|0)}a[e>>2]=a[u>>2];f=a[47275]|0}else f=0}else f=0}}while(0);k=J;return f|0}function qJ(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0.0,n=0.0,l=0,t=0,c=0,b=0.0,u=0.0,w=0,o=0.0,h=0.0,d=0.0,B=0.0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0.0,J=0,p=0,N=0,R=0.0,X=0,H=0,U=0;U=k;k=k+32|0;M=U+16|0;D=U+8|0;c=U;r=0;t=0;while(1){if((t|0)>=(A|0))break;l=e+(t<<5)|0;B=+s[e+(t<<5)+8>>3]-+s[e+(t<<5)+24>>3];if(!((B>=0.0?B:-B)<.01)?(B=+s[l>>3]-+s[e+(t<<5)+16>>3],!((B>=0.0?B:-B)<.01)):0){if((r|0)!=(t|0)){X=e+(r<<5)|0;a[X>>2]=a[l>>2];a[X+4>>2]=a[l+4>>2];a[X+8>>2]=a[l+8>>2];a[X+12>>2]=a[l+12>>2];a[X+16>>2]=a[l+16>>2];a[X+20>>2]=a[l+20>>2];a[X+24>>2]=a[l+24>>2];a[X+28>>2]=a[l+28>>2]}r=r+1|0}t=t+1|0}F=e+16|0;do{if(!(+s[e>>3]>+s[F>>3])?(J=e+8|0,N=e+24|0,!(+s[J>>3]>+s[N>>3])):0){X=r+-1|0;p=a[15712]|0;C=0;while(1){if((C|0)>=(X|0))break;y=C+1|0;W=e+(y<<5)|0;f=+s[W>>3];z=e+(y<<5)+16|0;n=+s[z>>3];if(f>n){H=16;break}m=e+(y<<5)+8|0;b=+s[m>>3];Q=e+(y<<5)+24|0;u=+s[Q>>3];if(b>u){H=16;break}Y=e+(C<<5)+16|0;E=+s[Y>>3]>3]>n;A=v&1;G=e+(C<<5)+24|0;g=+s[G>>3]>3]>u;l=c&1;I=A+r+t+l|0;w=(I|0)!=0;if(!(0==0|w^1)){a[M>>2]=C;a[M+4>>2]=y;f3(p,105142,M)|0;Ap(i)}A:do{if(w){if(!E)if(!v)if(!g){if(c){c=0;w=r;r=Q;l=Z;H=24}}else{c=l;t=0;w=r;r=m;l=G;H=24}else{c=l;A=0;w=r;r=z;l=L;H=24}else{c=l;w=0;r=W;l=Y;H=24}if((H|0)==24){H=0;C=~~+s[l>>3];s[l>>3]=+s[r>>3];s[r>>3]=+(C|0);l=c;r=w}w=I+-1|0;c=0;while(1){if((c|0)>=(w|0))break A;do{if((r|0)!=1){if((A|0)==1){B=+(~~((+s[z>>3]+ +s[L>>3])*.5+.5)|0);s[z>>3]=B;s[L>>3]=B;A=0;break}if((t|0)==1){B=+(~~((+s[m>>3]+ +s[G>>3])*.5+.5)|0);s[m>>3]=B;s[G>>3]=B;t=0;break}if((l|0)==1){B=+(~~((+s[Q>>3]+ +s[Z>>3])*.5+.5)|0);s[Q>>3]=B;s[Z>>3]=B;l=0}}else{B=+(~~((+s[W>>3]+ +s[Y>>3])*.5+.5)|0);s[W>>3]=B;s[Y>>3]=B;r=0}}while(0);c=c+1|0}}}while(0);o=+s[L>>3];h=+s[Y>>3];d=+s[W>>3];B=+s[z>>3];l=ep(~~o,~~h,~~d,~~B)|0;u=+s[Z>>3];b=+s[G>>3];n=+s[m>>3];f=+s[Q>>3];r=ep(~~u,~~b,~~n,~~f)|0;if(!((l|0)!=0&(r|0)!=0)){C=y;continue}if((l|0)<(r|0)){Q=h-o>B-d;C=h>3]=Q?C?d:B:C?h:o;C=y;continue}else{Q=b-u>f-n;C=b>3]=Q?C?n:f:C?b:u;C=y;continue}}if((H|0)==16){a[D>>2]=y;ao(1,105096,D)|0;Ap(i);r=1;break}f=+s[i>>3];n=+s[e>>3];if(!(((!(f+s[F>>3]):0)?(V=+s[i+8>>3],!(V<+s[J>>3])):0)?!(V>+s[N>>3]):0)){if(0){}if(f>3]=n;else n=f;f=+s[F>>3];if(n>f)s[i>>3]=f;r=i+8|0;n=+s[r>>3];f=+s[J>>3];if(n>3]=f;n=f}f=+s[N>>3];if(n>f)s[r>>3]=f}l=i+40|0;f=+s[l>>3];r=e+(X<<5)|0;n=+s[r>>3];if(((!(f+s[e+(X<<5)+16>>3]):0)?(R=+s[i+48>>3],!(R<+s[e+(X<<5)+8>>3])):0)?!(R>+s[e+(X<<5)+24>>3]):0){r=0;break}if(0){}if(f>3]=n;f=n}n=+s[e+(X<<5)+16>>3];if(f>n)s[l>>3]=n;r=i+48|0;f=+s[r>>3];n=+s[e+(X<<5)+8>>3];if(f>3]=n;else n=f;f=+s[e+(X<<5)+24>>3];if(n>f){s[r>>3]=f;r=0}else r=0}else H=12}while(0);if((H|0)==12){ao(1,105051,c)|0;Ap(i);r=1}k=U;return r|0}function $J(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var a=0,n=0,l=0,t=0,c=0,b=0,u=0.0,w=0.0,k=0,o=0,h=0,d=0,B=0,g=0.0,v=0,E=0.0,C=0.0,I=0.0,Z=0.0,G=0.0;B=U(f,e)|0;g=1.0/+(B|0);f=0;A:while(1){v=f+3|0;if((v|0)>=(r|0))break;k=i+(f<<4)|0;o=i+(f<<4)+8|0;d=f+1|0;h=i+(d<<4)|0;d=i+(d<<4)+8|0;t=f+2|0;l=i+(t<<4)|0;t=i+(t<<4)+8|0;c=i+(v<<4)|0;b=i+(v<<4)+8|0;n=0;while(1){if((n|0)>(B|0)){f=v;continue A}E=g*+(n|0);u=+s[k>>3];w=+s[o>>3];Z=+s[h>>3];C=+s[d>>3];G=+s[l>>3];I=+s[t>>3];u=(Z-u)*E+u;w=(C-w)*E+w;Z=(G-Z)*E+Z;C=(I-C)*E+C;u=(Z-u)*E+u;w=(C-w)*E+w;u=((G-Z+(+s[c>>3]-G)*E)*E+Z-u)*E+u;w=((I-C+(+s[b>>3]-I)*E)*E+C-w)*E+w;a=0;while(1){if((a|0)>=(e|0))break;if(w<=+s[A+(a<<5)+24>>3]+.0001?w>=+s[A+(a<<5)+8>>3]+-.0001:0){f=A+(a<<5)|0;if(+s[f>>3]>u)s[f>>3]=u;f=A+(a<<5)+16|0;if(+s[f>>3]>3]=u}a=a+1|0}n=n+1|0}}return}function Ap(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0.0,w=0.0,o=0.0,h=0.0,d=0;b=k;k=k+112|0;t=b+80|0;c=b+48|0;l=b+8|0;n=b;i=a[15712]|0;f=A+80|0;a[n>>2]=a[f>>2];f3(i,105268,n)|0;n=A+84|0;e=0;while(1){if((e|0)>=(a[f>>2]|0))break;d=a[n>>2]|0;h=+s[d+(e<<5)>>3];o=+s[d+(e<<5)+8>>3];w=+s[d+(e<<5)+16>>3];u=+s[d+(e<<5)+24>>3];a[l>>2]=e;s[l+8>>3]=h;s[l+16>>3]=o;s[l+24>>3]=w;s[l+32>>3]=u;f3(i,105279,l)|0;e=e+1|0}h=+s[A+8>>3];o=+s[A+16>>3];d=r[A+29>>0]|0?105310:105322;s[c>>3]=+s[A>>3];s[c+8>>3]=h;s[c+16>>3]=o;a[c+24>>2]=d;f3(i,105338,c)|0;o=+s[A+48>>3];h=+s[A+56>>3];d=r[A+69>>0]|0?105310:105322;s[t>>3]=+s[A+40>>3];s[t+8>>3]=o;s[t+16>>3]=h;a[t+24>>2]=d;f3(i,105389,t)|0;k=b;return}function ep(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;do{if((e|0)>(i|0)&(r|0)>(A|0)){if(!((i|0)>(A|0)|(r|0)<(A|0))){A=r-A|0;break}if((e|0)<(i|0)|(e|0)>(r|0)){e=e-A|0;A=r-i|0;A=(e|0)<(A|0)?e:A;break}else{A=e-i|0;break}}else A=0}while(0);return A|0}function ip(A,e){A=A|0;e=e|0;return _J(A,e,1)|0}function rp(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0;c=k;k=k+80|0;n=c;t=1;f=e;while(1){l=f;f=a[(a[f+16>>2]|0)+172>>2]|0;if(!((f|0)!=0&(l|0)!=(f|0)))break;else t=t+1|0}if((t|0)>=21)n=qF(t<<2)|0;l=0;f=e;while(1){if((l|0)>=(t|0))break;a[n+(l<<2)>>2]=f;l=l+1|0;f=a[(a[f+16>>2]|0)+172>>2]|0}fp(A,n,t,i,r);if((t|0)>20)L2(n);k=c;return}function fp(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0,t=0,c=0,b=0.0,u=0.0,w=0.0,o=0.0,h=0.0,d=0,B=0.0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,Y=0,D=0,M=0,F=0,V=0,J=0.0,p=0.0,N=0.0,R=0,X=0;V=k;k=k+304|0;m=V+272|0;G=V+208|0;Y=V+96|0;D=V+32|0;M=V+16|0;F=V;d=V+192|0;Z=V+176|0;l=V+160|0;Q=V+296|0;L=V+288|0;t=a[e>>2]|0;C=a[t>>2]&3;c=t+-48|0;y=a[((C|0)==2?t:c)+40>>2]|0;g=Y+16|0;C=(a[(a[((C|0)==3?t:t+48|0)+40>>2]|0)+16>>2]|0)+16|0;I=t+16|0;W=(a[I>>2]|0)+16|0;a[G>>2]=a[C>>2];a[G+4>>2]=a[C+4>>2];a[G+8>>2]=a[C+8>>2];a[G+12>>2]=a[C+12>>2];a[m>>2]=a[W>>2];a[m+4>>2]=a[W+4>>2];a[m+8>>2]=a[W+8>>2];a[m+12>>2]=a[W+12>>2];ap(d,G,m);a[Y>>2]=a[d>>2];a[Y+4>>2]=a[d+4>>2];a[Y+8>>2]=a[d+8>>2];a[Y+12>>2]=a[d+12>>2];a[g>>2]=a[d>>2];a[g+4>>2]=a[d+4>>2];a[g+8>>2]=a[d+8>>2];a[g+12>>2]=a[d+12>>2];a[M>>2]=a[d>>2];a[M+4>>2]=a[d+4>>2];a[M+8>>2]=a[d+8>>2];a[M+12>>2]=a[d+12>>2];d=Y+32|0;W=Y+48|0;C=(a[y+16>>2]|0)+16|0;I=(a[I>>2]|0)+56|0;a[G>>2]=a[C>>2];a[G+4>>2]=a[C+4>>2];a[G+8>>2]=a[C+8>>2];a[G+12>>2]=a[C+12>>2];a[m>>2]=a[I>>2];a[m+4>>2]=a[I+4>>2];a[m+8>>2]=a[I+8>>2];a[m+12>>2]=a[I+12>>2];ap(Z,G,m);a[W>>2]=a[Z>>2];a[W+4>>2]=a[Z+4>>2];a[W+8>>2]=a[Z+8>>2];a[W+12>>2]=a[Z+12>>2];a[d>>2]=a[Z>>2];a[d+4>>2]=a[Z+4>>2];a[d+8>>2]=a[Z+8>>2];a[d+12>>2]=a[Z+12>>2];a[F>>2]=a[Z>>2];a[F+4>>2]=a[Z+4>>2];a[F+8>>2]=a[Z+8>>2];a[F+12>>2]=a[Z+12>>2];A:do{if((i|0)!=1&(r[194954]|0)==0){b=+s[Y>>3];u=+s[W>>3];J=b-u;w=+s[Y+8>>3];o=+s[Y+56>>3];B=w-o;h=B*B;if(h+J*J<1.0e-06){a[g>>2]=a[Y>>2];a[g+4>>2]=a[Y+4>>2];a[g+8>>2]=a[Y+8>>2];a[g+12>>2]=a[Y+12>>2];a[d>>2]=a[W>>2];a[d+4>>2]=a[W+4>>2];a[d+8>>2]=a[W+8>>2];a[d+12>>2]=a[W+12>>2];Z=Y+24|0;I=Y+40|0;u=0.0;b=0.0}else{p=u-b;J=+z(+(h+p*p));C=a[(a[(a[A+60>>2]|0)+16>>2]|0)+248>>2]|0;N=+((U(C,i+-1|0)|0)/2|0|0);h=B*N/J;s[g>>3]=h+b;b=p*N/J;Z=Y+24|0;s[Z>>3]=b+w;s[d>>3]=h+u;I=Y+40|0;s[I>>3]=o+b;b=+(0-C|0);u=p*b/J;b=B*b/J}f=(f|0)==6;v=L+4|0;E=Q+4|0;t=0;while(1){if((t|0)>=(i|0))break A;C=a[e+(t<<2)>>2]|0;c=C+-48|0;e:do{if((a[((a[C>>2]&3|0)==2?C:c)+40>>2]|0)==(y|0)){a[M>>2]=a[Y>>2];a[M+4>>2]=a[Y+4>>2];a[M+8>>2]=a[Y+8>>2];a[M+12>>2]=a[Y+12>>2];a[F>>2]=a[W>>2];a[F+4>>2]=a[W+4>>2];a[F+8>>2]=a[W+8>>2];a[F+12>>2]=a[W+12>>2];l=0;while(1){if((l|0)==4)break e;R=D+(l<<4)|0;X=Y+(l<<4)|0;a[R>>2]=a[X>>2];a[R+4>>2]=a[X+4>>2];a[R+8>>2]=a[X+8>>2];a[R+12>>2]=a[X+12>>2];l=l+1|0}}else{a[M>>2]=a[W>>2];a[M+4>>2]=a[W+4>>2];a[M+8>>2]=a[W+8>>2];a[M+12>>2]=a[W+12>>2];a[F>>2]=a[Y>>2];a[F+4>>2]=a[Y+4>>2];a[F+8>>2]=a[Y+8>>2];a[F+12>>2]=a[Y+12>>2];l=0;while(1){if((l|0)==4)break e;X=D+(3-l<<4)|0;R=Y+(l<<4)|0;a[X>>2]=a[R>>2];a[X+4>>2]=a[R+4>>2];a[X+8>>2]=a[R+8>>2];a[X+12>>2]=a[R+12>>2];l=l+1|0}}}while(0);if(f){a[v>>2]=4;a[L>>2]=G;l=0;while(1){if((l|0)==4)break;X=G+(l<<4)|0;R=D+(l<<4)|0;a[X>>2]=a[R>>2];a[X+4>>2]=a[R+4>>2];a[X+8>>2]=a[R+8>>2];a[X+12>>2]=a[R+12>>2];l=l+1|0}a[m>>2]=a[L>>2];a[m+4>>2]=a[L+4>>2];Gc(m,Q);vN(C,a[((a[C>>2]&3|0)==2?C:c)+40>>2]|0,a[Q>>2]|0,a[E>>2]|0,n)}else vN(C,a[((a[C>>2]&3|0)==2?C:c)+40>>2]|0,D,4,n);a[G>>2]=a[M>>2];a[G+4>>2]=a[M+4>>2];a[G+8>>2]=a[M+8>>2];a[G+12>>2]=a[M+12>>2];a[m>>2]=a[F>>2];a[m+4>>2]=a[F+4>>2];a[m+8>>2]=a[F+8>>2];a[m+12>>2]=a[F+12>>2];XN(A,C,G,m);s[g>>3]=+s[g>>3]+b;s[Z>>3]=+s[Z>>3]+u;s[d>>3]=+s[d>>3]+b;s[I>>3]=+s[I>>3]+u;t=t+1|0}}else{if((f|0)==4){np(l,A);a[m>>2]=a[l>>2];a[m+4>>2]=a[l+4>>2];a[m+8>>2]=a[l+8>>2];a[m+12>>2]=a[l+12>>2];lp(Y,m)}vN(t,a[((a[t>>2]&3|0)==2?t:c)+40>>2]|0,Y,4,n);a[G>>2]=a[M>>2];a[G+4>>2]=a[M+4>>2];a[G+8>>2]=a[M+8>>2];a[G+12>>2]=a[M+12>>2];a[m>>2]=a[F>>2];a[m+4>>2]=a[F+4>>2];a[m+8>>2]=a[F+8>>2];a[m+12>>2]=a[F+12>>2];XN(A,t,G,m)}}while(0);k=V;return}function ap(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0;r=+s[i+8>>3]+ +s[e+8>>3];s[A>>3]=+s[i>>3]+ +s[e>>3];s[A+8>>3]=r;return}function np(A,e){A=A|0;e=e|0;e=a[e+16>>2]|0;s[23305]=(+s[e+32>>3]+ +s[e+16>>3])*.5;s[23306]=(+s[e+40>>3]+ +s[e+24>>3])*.5;a[A>>2]=a[46610];a[A+4>>2]=a[46611];a[A+8>>2]=a[46612];a[A+12>>2]=a[46613];return}function lp(A,e){A=A|0;e=e|0;var i=0.0,r=0.0,f=0.0,a=0.0,n=0.0,l=0.0;a=+s[A>>3];r=+s[A+48>>3];l=(r+a)*.5;n=+s[A+8>>3];i=+s[A+56>>3];f=(i+n)*.5;a=r-a;n=i-n;a=+z(+(n*n+a*a))*.2;n=+s[e>>3]-l;i=+s[e+8>>3]-f;r=+z(+(i*i+n*n));if(!(r==0.0)){n=l-n/r*a;l=f-i/r*a;s[A+32>>3]=n;s[A+16>>3]=n;s[A+40>>3]=l;s[A+24>>3]=l}return}function tp(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,b=0.0,u=0,w=0.0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0.0,Y=0,D=0.0,M=0.0,F=0.0;y=k;k=k+208|0;g=y+192|0;B=y+176|0;Q=y+32|0;C=y+16|0;I=y;Z=y+160|0;G=y+144|0;v=y+128|0;E=y+112|0;n=r&2130706432;m=(r&8|0)==0?(n|0)==0?4:n:8;if((m|0)==436207616)cp(A,e,i,f);else{L=qF((i<<6)+64|0)|0;o=i+-1|0;h=I+8|0;d=C+8|0;w=12.0;r=0;while(1){if((r|0)>=(i|0))break;u=e+(r<<4)|0;a[C>>2]=a[u>>2];a[C+4>>2]=a[u+4>>2];a[C+8>>2]=a[u+8>>2];a[C+12>>2]=a[u+12>>2];if((r|0)<(o|0)){r=r+1|0;u=e+(r<<4)|0;a[I>>2]=a[u>>2];a[I+4>>2]=a[u+4>>2];a[I+8>>2]=a[u+8>>2];a[I+12>>2]=a[u+12>>2]}else{a[I>>2]=a[e>>2];a[I+4>>2]=a[e+4>>2];a[I+8>>2]=a[e+8>>2];a[I+12>>2]=a[e+12>>2];r=r+1|0}b=+s[I>>3]-+s[C>>3];W=+s[h>>3]-+s[d>>3];b=+z(+(W*W+b*b))*.3333333333333333;w=w=(i|0))break;n=e+(l<<4)|0;a[C>>2]=a[n>>2];a[C+4>>2]=a[n+4>>2];a[C+8>>2]=a[n+8>>2];a[C+12>>2]=a[n+12>>2];if((l|0)<(o|0)){n=e+(l+1<<4)|0;a[I>>2]=a[n>>2];a[I+4>>2]=a[n+4>>2];a[I+8>>2]=a[n+8>>2];a[I+12>>2]=a[n+12>>2]}else{a[I>>2]=a[e>>2];a[I+4>>2]=a[e+4>>2];a[I+8>>2]=a[e+8>>2];a[I+12>>2]=a[e+12>>2]}b=+s[I>>3]-+s[C>>3];W=+s[h>>3]-+s[d>>3];b=w/+z(+(W*W+b*b));b=c?b*.3333333333333333:t?b*.5:b;n=L+(r<<4)|0;if(u){a[B>>2]=a[C>>2];a[B+4>>2]=a[C+4>>2];a[B+8>>2]=a[C+8>>2];a[B+12>>2]=a[C+12>>2];a[g>>2]=a[I>>2];a[g+4>>2]=a[I+4>>2];a[g+8>>2]=a[I+8>>2];a[g+12>>2]=a[I+12>>2];sp(Z,b*.5,B,g);a[n>>2]=a[Z>>2];a[n+4>>2]=a[Z+4>>2];a[n+8>>2]=a[Z+8>>2];a[n+12>>2]=a[Z+12>>2]}else{a[n>>2]=a[C>>2];a[n+4>>2]=a[C+4>>2];a[n+8>>2]=a[C+8>>2];a[n+12>>2]=a[C+12>>2]}n=L+(r+1<<4)|0;a[B>>2]=a[C>>2];a[B+4>>2]=a[C+4>>2];a[B+8>>2]=a[C+8>>2];a[B+12>>2]=a[C+12>>2];a[g>>2]=a[I>>2];a[g+4>>2]=a[I+4>>2];a[g+8>>2]=a[I+8>>2];a[g+12>>2]=a[I+12>>2];sp(G,b,B,g);a[n>>2]=a[G>>2];a[n+4>>2]=a[G+4>>2];a[n+8>>2]=a[G+8>>2];a[n+12>>2]=a[G+12>>2];n=r+3|0;Y=L+(r+2<<4)|0;a[B>>2]=a[C>>2];a[B+4>>2]=a[C+4>>2];a[B+8>>2]=a[C+8>>2];a[B+12>>2]=a[C+12>>2];a[g>>2]=a[I>>2];a[g+4>>2]=a[I+4>>2];a[g+8>>2]=a[I+8>>2];a[g+12>>2]=a[I+12>>2];sp(v,1.0-b,B,g);a[Y>>2]=a[v>>2];a[Y+4>>2]=a[v+4>>2];a[Y+8>>2]=a[v+8>>2];a[Y+12>>2]=a[v+12>>2];if(u){Y=L+(n<<4)|0;a[B>>2]=a[C>>2];a[B+4>>2]=a[C+4>>2];a[B+8>>2]=a[C+8>>2];a[B+12>>2]=a[C+12>>2];a[g>>2]=a[I>>2];a[g+4>>2]=a[I+4>>2];a[g+8>>2]=a[I+8>>2];a[g+12>>2]=a[I+12>>2];sp(E,1.0-b*.5,B,g);a[Y>>2]=a[E>>2];a[Y+4>>2]=a[E+4>>2];a[Y+8>>2]=a[E+8>>2];a[Y+12>>2]=a[E+12>>2];r=r+4|0}else r=n;l=l+1|0}c=L+(r<<4)|0;a[c>>2]=a[L>>2];a[c+4>>2]=a[L+4>>2];a[c+8>>2]=a[L+8>>2];a[c+12>>2]=a[L+12>>2];c=L+(r+1<<4)|0;t=L+16|0;a[c>>2]=a[t>>2];a[c+4>>2]=a[t+4>>2];a[c+8>>2]=a[t+8>>2];a[c+12>>2]=a[t+12>>2];r=L+(r+2<<4)|0;c=L+32|0;a[r>>2]=a[c>>2];a[r+4>>2]=a[c+4>>2];a[r+8>>2]=a[c+8>>2];a[r+12>>2]=a[c+12>>2];r=m&2147483647;A:do{if((r|0)<201326592){if((r|0)>=83886080){if((r|0)<134217728){if((r|0)<100663296){switch(r|0){case 83886080:break;default:break A}if((i|0)==4){Y=qF(192)|0;a[Y>>2]=a[e>>2];a[Y+4>>2]=a[e+4>>2];a[Y+8>>2]=a[e+8>>2];a[Y+12>>2]=a[e+12>>2];o=Y+16|0;g=e+16|0;a[o>>2]=a[g>>2];a[o+4>>2]=a[g+4>>2];a[o+8>>2]=a[g+8>>2];a[o+12>>2]=a[g+12>>2];o=L+48|0;g=L+64|0;w=+s[g>>3];u=Y+32|0;s[u>>3]=w;h=L+56|0;d=L+72|0;D=+s[d>>3];G=Y+40|0;s[G>>3]=D;W=+s[o>>3]+w-+s[c>>3];v=Y+48|0;s[v>>3]=W;F=+s[h>>3]+D-+s[L+40>>3];I=Y+56|0;s[I>>3]=F;M=+s[g>>3]+W-+s[o>>3];o=Y+64|0;s[o>>3]=M;b=+s[d>>3]+F-+s[h>>3];h=Y+72|0;s[h>>3]=b;d=Y+80|0;s[d>>3]=w+M-W;s[Y+88>>3]=D+b-F;g=L+96|0;E=L+80|0;F=+s[E>>3];i=Y+144|0;s[i>>3]=F;C=L+104|0;B=L+88|0;b=+s[B>>3];s[Y+152>>3]=b;D=+s[g>>3]+F-+s[L+112>>3];Z=Y+128|0;s[Z>>3]=D;W=+s[C>>3]+b-+s[L+120>>3];m=Y+136|0;s[m>>3]=W;M=+s[E>>3]+D-+s[g>>3];g=Y+112|0;s[g>>3]=M;w=+s[B>>3]+W-+s[C>>3];C=Y+120|0;s[C>>3]=w;B=Y+96|0;s[B>>3]=F+M-D;E=Y+104|0;s[E>>3]=b+w-W;c=Y+160|0;t=e+32|0;a[c>>2]=a[t>>2];a[c+4>>2]=a[t+4>>2];a[c+8>>2]=a[t+8>>2];a[c+12>>2]=a[t+12>>2];c=Y+176|0;e=e+48|0;a[c>>2]=a[e>>2];a[c+4>>2]=a[e+4>>2];a[c+8>>2]=a[e+8>>2];a[c+12>>2]=a[e+12>>2];ar(A,Y,12,f);a[Q>>2]=a[u>>2];a[Q+4>>2]=a[u+4>>2];a[Q+8>>2]=a[u+8>>2];a[Q+12>>2]=a[u+12>>2];W=+s[u>>3];w=+s[v>>3];W=W+W-w;v=Q+16|0;s[v>>3]=W;b=+s[G>>3];D=+s[I>>3];b=b+b-D;I=Q+24|0;s[I>>3]=b;G=Q+32|0;s[G>>3]=+s[o>>3]+W-w;e=Q+40|0;s[e>>3]=+s[h>>3]+b-D;f=Q+48|0;a[f>>2]=a[d>>2];a[f+4>>2]=a[d+4>>2];a[f+8>>2]=a[d+8>>2];a[f+12>>2]=a[d+12>>2];tr(A,Q,4);a[Q>>2]=a[B>>2];a[Q+4>>2]=a[B+4>>2];a[Q+8>>2]=a[B+8>>2];a[Q+12>>2]=a[B+12>>2];D=+s[B>>3];b=+s[g>>3];D=D-(b-D);s[v>>3]=D;w=+s[E>>3];W=+s[C>>3];w=w-(W-w);s[I>>3]=w;s[G>>3]=+s[Z>>3]+D-b;s[e>>3]=+s[m>>3]+w-W;a[f>>2]=a[i>>2];a[f+4>>2]=a[i+4>>2];a[f+8>>2]=a[i+8>>2];a[f+12>>2]=a[i+12>>2];tr(A,Q,4);L2(Y);break}else gA(105438,105449,737,105458)}if((r|0)<117440512){switch(r|0){case 100663296:break;default:break A}Z=i+5|0;Y=qF(Z<<4)|0;G=e+16|0;D=+s[G>>3];D=(+s[e>>3]-D)*.625+D;s[Y>>3]=D;m=e+40|0;F=+s[m>>3];i=e+24|0;E=L+48|0;C=L+56|0;I=L+72|0;F=(+s[i>>3]-F)*.5+F+(+s[C>>3]-+s[I>>3])*1.5;s[Y+8>>3]=F;M=+s[G>>3];M=(+s[e>>3]-M)*.25+M;s[Y+16>>3]=M;s[Y+24>>3]=F;s[Y+32>>3]=M;W=+s[m>>3];s[Y+40>>3]=(+s[i>>3]-W)*.5+W;M=(+s[c>>3]-+s[E>>3])*.5+M;s[Y+48>>3]=M;W=+s[m>>3];s[Y+56>>3]=(+s[i>>3]-W)*.5+W;s[Y+64>>3]=M;M=+s[m>>3];M=(+s[i>>3]-M)*.5+M+(+s[C>>3]-+s[I>>3]);s[Y+72>>3]=M;s[Y+80>>3]=D;s[Y+88>>3]=M;s[Y+96>>3]=D;M=M-(+s[C>>3]-+s[I>>3])*.25;s[Y+104>>3]=M;s[Y+112>>3]=+s[c>>3]+D-+s[E>>3];s[Y+120>>3]=(+s[C>>3]-+s[I>>3])*.5+M;s[Y+128>>3]=+s[Y>>3];s[Y+136>>3]=(+s[C>>3]-+s[I>>3])*.25+F;ar(A,Y,Z,f);s[Q>>3]=+s[G>>3];F=+s[m>>3];s[Q+8>>3]=(+s[i>>3]-F)*.5+F;s[Q+16>>3]=+s[e>>3];s[Q+24>>3]=(+s[e+8>>3]-+s[e+56>>3])*.5+F;tr(A,Q,2);L2(Y);break}else{switch(r|0){case 117440512:break;default:break A}i=i+1|0;Y=qF(i<<4)|0;s[Y>>3]=+s[t>>3];G=L+56|0;m=L+72|0;s[Y+8>>3]=+s[L+24>>3]-(+s[G>>3]-+s[m>>3])*.5;s[Y+16>>3]=+s[L+48>>3];F=+s[G>>3];s[Y+24>>3]=F-(F-+s[m>>3])*.5;s[Y+32>>3]=+s[e+32>>3];Q=e+40|0;s[Y+40>>3]=(+s[G>>3]-+s[m>>3])*.5+ +s[Q>>3];s[Y+48>>3]=+s[t>>3];s[Y+56>>3]=(+s[G>>3]-+s[m>>3])*.5+ +s[Q>>3];F=+s[e+8>>3];s[Y+72>>3]=F-(F-+s[e+56>>3])*.5;s[Y+64>>3]=+s[e>>3];ar(A,Y,i,f);L2(Y);break}}if((r|0)<167772160)if((r|0)<150994944){switch(r|0){case 134217728:break;default:break A}Z=i+4|0;Y=qF(Z<<4)|0;G=e+16|0;W=+s[G>>3];I=L+48|0;W=(+s[e>>3]-W)*.5+W+(+s[c>>3]-+s[I>>3])*.25;s[Y>>3]=W;m=e+40|0;F=+s[m>>3];i=e+24|0;F=(+s[i>>3]-F)*.5+F;s[Y+8>>3]=F;s[Y+16>>3]=W;E=L+56|0;C=L+72|0;D=(+s[E>>3]-+s[C>>3])*.5+F;s[Y+24>>3]=D;W=(+s[c>>3]-+s[I>>3])*.5+W;s[Y+32>>3]=W;s[Y+40>>3]=D;s[Y+48>>3]=W;W=(+s[E>>3]-+s[C>>3])*.5+D;s[Y+56>>3]=W;M=+s[G>>3];M=(+s[e>>3]-M)*.5+M+(+s[c>>3]-+s[I>>3])*-.75;s[Y+64>>3]=M;s[Y+72>>3]=W;s[Y+80>>3]=M;s[Y+88>>3]=D;M=+s[G>>3];M=(+s[e>>3]-M)*.5+M+(+s[c>>3]-+s[I>>3])*-.25;s[Y+96>>3]=M;s[Y+104>>3]=D;s[Y+112>>3]=M;s[Y+120>>3]=F;ar(A,Y,Z,f);s[Q>>3]=+s[G>>3];F=+s[m>>3];s[Q+8>>3]=(+s[i>>3]-F)*.5+F;s[Q+16>>3]=+s[e>>3];s[Q+24>>3]=(+s[e+8>>3]-+s[e+56>>3])*.5+F;tr(A,Q,2);L2(Y);break}else{switch(r|0){case 150994944:break;default:break A}Z=i+2|0;Y=qF(Z<<4)|0;G=e+16|0;D=+s[G>>3];I=L+48|0;D=(+s[e>>3]-D)*.5+D+(+s[c>>3]-+s[I>>3])*.75;s[Y>>3]=D;m=e+40|0;F=+s[m>>3];i=e+24|0;F=(+s[i>>3]-F)*.5+F;s[Y+8>>3]=F;s[Y+16>>3]=D;E=L+56|0;C=L+72|0;D=(+s[E>>3]-+s[C>>3])*.25+F;s[Y+24>>3]=D;M=+s[G>>3];s[Y+32>>3]=(+s[e>>3]-M)*.5+M+(+s[c>>3]-+s[I>>3])*.25;M=(+s[E>>3]-+s[C>>3])*.5+D;s[Y+40>>3]=M;W=+s[G>>3];s[Y+48>>3]=(+s[e>>3]-W)*.5+W+(+s[c>>3]-+s[I>>3])*-.25;s[Y+56>>3]=M;M=+s[G>>3];M=(+s[e>>3]-M)*.5+M+(+s[c>>3]-+s[I>>3])*-.75;s[Y+64>>3]=M;s[Y+72>>3]=D;s[Y+80>>3]=M;s[Y+88>>3]=F;ar(A,Y,Z,f);s[Q>>3]=+s[G>>3];F=+s[m>>3];s[Q+8>>3]=(+s[i>>3]-F)*.5+F;s[Q+16>>3]=+s[e>>3];s[Q+24>>3]=(+s[e+8>>3]-+s[e+56>>3])*.5+F;tr(A,Q,2);L2(Y);break}else if((r|0)<184549376){switch(r|0){case 167772160:break;default:break A}Z=i+1|0;Y=qF(Z<<4)|0;G=e+16|0;D=+s[G>>3];E=L+48|0;D=+s[c>>3]+D+(+s[e>>3]-D)*.5-+s[E>>3];s[Y>>3]=D;m=e+40|0;F=+s[m>>3];i=e+24|0;C=L+56|0;I=L+72|0;F=(+s[i>>3]-F)*.5+F+(+s[C>>3]-+s[I>>3])*.25;s[Y+8>>3]=F;D=D-+s[c>>3]+ +s[E>>3];s[Y+16>>3]=D;s[Y+24>>3]=+s[C>>3]+F-+s[I>>3];s[Y+32>>3]=D;D=(+s[C>>3]-+s[I>>3])*.5+F;s[Y+40>>3]=D;M=+s[G>>3];M=(+s[e>>3]-M)*.25+M;s[Y+48>>3]=M;s[Y+56>>3]=D;s[Y+64>>3]=M;s[Y+72>>3]=F;ar(A,Y,Z,f);s[Q>>3]=+s[G>>3];F=+s[m>>3];s[Q+8>>3]=(+s[i>>3]-F)*.5+F;s[Q+16>>3]=+s[e>>3];s[Q+24>>3]=(+s[e+8>>3]-+s[e+56>>3])*.5+F;tr(A,Q,2);L2(Y);break}else{switch(r|0){case 184549376:break;default:break A}G=i+4|0;Y=qF(G<<4)|0;Z=e+16|0;D=+s[Z>>3];M=+s[e>>3]-D;v=L+48|0;M=M*.125+D+(+s[c>>3]-+s[v>>3]+M)*.5;s[Y>>3]=M;C=e+40|0;D=+s[C>>3];I=e+24|0;i=L+56|0;E=L+72|0;D=(+s[I>>3]-D)*.5+D+(+s[i>>3]-+s[E>>3])*.25;s[Y+8>>3]=D;F=+s[Z>>3];F=(+s[e>>3]-F)*.375+F;s[Y+16>>3]=F;s[Y+24>>3]=D;s[Y+32>>3]=F;D=(+s[i>>3]-+s[E>>3])*.5+D;s[Y+40>>3]=D;F=F-(+s[c>>3]-+s[v>>3])*.5;s[Y+48>>3]=F;s[Y+56>>3]=D;m=Y+64|0;s[m>>3]=F;F=+s[C>>3];F=(+s[I>>3]-F)*.5+F+(+s[i>>3]-+s[E>>3])*-.25;s[Y+72>>3]=F;D=M-(+s[c>>3]-+s[v>>3])*.5;s[Y+80>>3]=D;s[Y+88>>3]=F;s[Y+96>>3]=D;F=F-(+s[i>>3]-+s[E>>3])*.5;s[Y+104>>3]=F;E=Y+112|0;s[E>>3]=M;s[Y+120>>3]=F;ar(A,Y,G,f);s[Q>>3]=+s[Z>>3];F=+s[C>>3];Z=Q+8|0;s[Z>>3]=(+s[I>>3]-F)*.5+F;G=Q+16|0;s[G>>3]=+s[m>>3];m=e+8|0;i=e+56|0;f=Q+24|0;s[f>>3]=(+s[m>>3]-+s[i>>3])*.5+F;tr(A,Q,2);s[Q>>3]=+s[E>>3];F=+s[C>>3];s[Z>>3]=(+s[I>>3]-F)*.5+F;s[G>>3]=+s[e>>3];s[f>>3]=(+s[m>>3]-+s[i>>3])*.5+F;tr(A,Q,2);L2(Y);break}}if((r|0)<33554432){if((r|0)<8){switch(r|0){case 4:break;default:break A}l=$F((i*96|0)+32|0)|0;r=0;n=0;while(1){t=n|1;c=l+(n<<4)|0;if((r|0)>=(i|0))break;e=r<<2;Y=L+(e<<4)|0;a[c>>2]=a[Y>>2];a[c+4>>2]=a[Y+4>>2];a[c+8>>2]=a[Y+8>>2];a[c+12>>2]=a[Y+12>>2];Y=l+(t<<4)|0;Q=L+((e|1)<<4)|0;a[Y>>2]=a[Q>>2];a[Y+4>>2]=a[Q+4>>2];a[Y+8>>2]=a[Q+8>>2];a[Y+12>>2]=a[Q+12>>2];Y=l+(n+2<<4)|0;a[Y>>2]=a[Q>>2];a[Y+4>>2]=a[Q+4>>2];a[Y+8>>2]=a[Q+8>>2];a[Y+12>>2]=a[Q+12>>2];Y=l+(n+3<<4)|0;Q=L+((e|2)<<4)|0;a[Y>>2]=a[Q>>2];a[Y+4>>2]=a[Q+4>>2];a[Y+8>>2]=a[Q+8>>2];a[Y+12>>2]=a[Q+12>>2];Y=l+(n+4<<4)|0;a[Y>>2]=a[Q>>2];a[Y+4>>2]=a[Q+4>>2];a[Y+8>>2]=a[Q+8>>2];a[Y+12>>2]=a[Q+12>>2];Y=l+(n+5<<4)|0;e=L+((e|3)<<4)|0;a[Y>>2]=a[e>>2];a[Y+4>>2]=a[e+4>>2];a[Y+8>>2]=a[e+8>>2];a[Y+12>>2]=a[e+12>>2];r=r+1|0;n=n+6|0}a[c>>2]=a[l>>2];a[c+4>>2]=a[l+4>>2];a[c+8>>2]=a[l+8>>2];a[c+12>>2]=a[l+12>>2];i=l+(t<<4)|0;Y=l+16|0;a[i>>2]=a[Y>>2];a[i+4>>2]=a[Y+4>>2];a[i+8>>2]=a[Y+8>>2];a[i+12>>2]=a[Y+12>>2];lr(A,Y,t,0,0,f&255);L2(l);break}if((r|0)<16777216){switch(r|0){case 8:break;default:break A}ar(A,e,i,f);n=Q+16|0;r=0;while(1){if((r|0)>=(i|0))break A;Y=r*3|0;f=L+(Y+2<<4)|0;a[Q>>2]=a[f>>2];a[Q+4>>2]=a[f+4>>2];a[Q+8>>2]=a[f+8>>2];a[Q+12>>2]=a[f+12>>2];Y=L+(Y+4<<4)|0;a[n>>2]=a[Y>>2];a[n+4>>2]=a[Y+4>>2];a[n+8>>2]=a[Y+8>>2];a[n+12>>2]=a[Y+12>>2];tr(A,Q,2);r=r+1|0}}switch(r|0){case 16777216:break;default:break A}n=i+1|0;l=qF(n<<4)|0;r=1;while(1){if((r|0)>=(i|0))break;Y=l+(r<<4)|0;m=e+(r<<4)|0;a[Y>>2]=a[m>>2];a[Y+4>>2]=a[m+4>>2];a[Y+8>>2]=a[m+8>>2];a[Y+12>>2]=a[m+12>>2];r=r+1|0}e=i*3|0;m=L+(e+1<<4)|0;a[l>>2]=a[m>>2];a[l+4>>2]=a[m+4>>2];a[l+8>>2]=a[m+8>>2];a[l+12>>2]=a[m+12>>2];i=l+(i<<4)|0;Y=L+(e+-1<<4)|0;a[i>>2]=a[Y>>2];a[i+4>>2]=a[Y+4>>2];a[i+8>>2]=a[Y+8>>2];a[i+12>>2]=a[Y+12>>2];ar(A,l,n,f);L2(l);a[Q>>2]=a[Y>>2];a[Q+4>>2]=a[Y+4>>2];a[Q+8>>2]=a[Y+8>>2];a[Q+12>>2]=a[Y+12>>2];Y=Q+16|0;a[Y>>2]=a[m>>2];a[Y+4>>2]=a[m+4>>2];a[Y+8>>2]=a[m+8>>2];a[Y+12>>2]=a[m+12>>2];f=Q+32|0;s[f>>3]=+s[Q>>3]+ +s[Y>>3]-+s[L+(e<<4)>>3];s[Q+40>>3]=+s[Q+8>>3]+ +s[Q+24>>3]-+s[L+(e<<4)+8>>3];tr(A,Y,2);a[Y>>2]=a[f>>2];a[Y+4>>2]=a[f+4>>2];a[Y+8>>2]=a[f+8>>2];a[Y+12>>2]=a[f+12>>2];tr(A,Q,2);break}else{if((r|0)<50331648){switch(r|0){case 33554432:break;default:break A}n=i+2|0;l=qF(n<<4)|0;a[l>>2]=a[e>>2];a[l+4>>2]=a[e+4>>2];a[l+8>>2]=a[e+8>>2];a[l+12>>2]=a[e+12>>2];t=l+16|0;a[t>>2]=a[c>>2];a[t+4>>2]=a[c+4>>2];a[t+8>>2]=a[c+8>>2];a[t+12>>2]=a[c+12>>2];t=L+48|0;i=L+64|0;s[l+32>>3]=(+s[t>>3]-+s[i>>3])*.3333333333333333+ +s[c>>3];Y=L+56|0;r=L+72|0;s[l+40>>3]=(+s[Y>>3]-+s[r>>3])*.3333333333333333+ +s[L+40>>3];F=+s[t>>3];s[l+48>>3]=(F-+s[i>>3])*.3333333333333333+F;F=+s[Y>>3];s[l+56>>3]=(F-+s[r>>3])*.3333333333333333+F;r=4;while(1){if((r|0)>=(n|0))break;Y=l+(r<<4)|0;i=e+(r+-2<<4)|0;a[Y>>2]=a[i>>2];a[Y+4>>2]=a[i+4>>2];a[Y+8>>2]=a[i+8>>2];a[Y+12>>2]=a[i+12>>2];r=r+1|0}ar(A,l,n,f);L2(l);a[Q>>2]=a[t>>2];a[Q+4>>2]=a[t+4>>2];a[Q+8>>2]=a[t+8>>2];a[Q+12>>2]=a[t+12>>2];Y=Q+16|0;a[Y>>2]=a[c>>2];a[Y+4>>2]=a[c+4>>2];a[Y+8>>2]=a[c+8>>2];a[Y+12>>2]=a[c+12>>2];tr(A,Q,2);break}if((r|0)>=67108864){switch(r|0){case 67108864:break;default:break A}if((i|0)==4){Y=qF(96)|0;a[Y>>2]=a[e>>2];a[Y+4>>2]=a[e+4>>2];a[Y+8>>2]=a[e+8>>2];a[Y+12>>2]=a[e+12>>2];i=Y+16|0;a[i>>2]=a[c>>2];a[i+4>>2]=a[c+4>>2];a[i+8>>2]=a[c+8>>2];a[i+12>>2]=a[c+12>>2];i=Y+32|0;m=L+64|0;a[i>>2]=a[m>>2];a[i+4>>2]=a[m+4>>2];a[i+8>>2]=a[m+8>>2];a[i+12>>2]=a[m+12>>2];i=Y+48|0;e=e+32|0;a[i>>2]=a[e>>2];a[i+4>>2]=a[e+4>>2];a[i+8>>2]=a[e+8>>2];a[i+12>>2]=a[e+12>>2];e=Y+64|0;i=L+128|0;a[e>>2]=a[i>>2];a[e+4>>2]=a[i+4>>2];a[e+8>>2]=a[i+8>>2];a[e+12>>2]=a[i+12>>2];e=Y+80|0;G=L+160|0;a[e>>2]=a[G>>2];a[e+4>>2]=a[G+4>>2];a[e+8>>2]=a[G+8>>2];a[e+12>>2]=a[G+12>>2];ar(A,Y,6,f);L2(Y);s[Q>>3]=+s[L+176>>3]+ +s[t>>3]-+s[L>>3];s[Q+8>>3]=+s[L+184>>3]+ +s[L+24>>3]-+s[L+8>>3];Y=Q+16|0;a[Y>>2]=a[m>>2];a[Y+4>>2]=a[m+4>>2];a[Y+8>>2]=a[m+8>>2];a[Y+12>>2]=a[m+12>>2];tr(A,Q,2);a[Y>>2]=a[i>>2];a[Y+4>>2]=a[i+4>>2];a[Y+8>>2]=a[i+8>>2];a[Y+12>>2]=a[i+12>>2];tr(A,Q,2);a[Y>>2]=a[L>>2];a[Y+4>>2]=a[L+4>>2];a[Y+8>>2]=a[L+8>>2];a[Y+12>>2]=a[L+12>>2];tr(A,Q,2);break}else gA(105438,105449,714,105458)}switch(r|0){case 50331648:break;default:break A}n=i+3|0;l=qF(n<<4)|0;a[l>>2]=a[e>>2];a[l+4>>2]=a[e+4>>2];a[l+8>>2]=a[e+8>>2];a[l+12>>2]=a[e+12>>2];F=+s[e>>3];s[l+16>>3]=F-(F-+s[t>>3])*.25;r=L+56|0;F=(+s[r>>3]-+s[L+72>>3])*.3333333333333333+ +s[e+8>>3];s[l+24>>3]=F;M=+s[e>>3];s[l+32>>3]=M-(M-+s[t>>3])*2.0;s[l+40>>3]=F;F=+s[e>>3];s[l+48>>3]=F-(F-+s[t>>3])*2.25;s[l+56>>3]=+s[r>>3];s[l+64>>3]=+s[L+48>>3];s[l+72>>3]=+s[r>>3];r=4;while(1){if((r|0)>=(n|0))break;Y=l+(r<<4)|0;i=e+(r+-3<<4)|0;a[Y>>2]=a[i>>2];a[Y+4>>2]=a[i+4>>2];a[Y+8>>2]=a[i+8>>2];a[Y+12>>2]=a[i+12>>2];r=r+1|0}ar(A,l,n,f);L2(l);break}}else if((r|0)<318767104){if((r|0)<251658240){if((r|0)<218103808){switch(r|0){case 201326592:break;default:break A}Y=i<<4;v=qF(Y)|0;E=e+16|0;F=+s[E>>3];s[v>>3]=F;G=e+40|0;M=+s[G>>3];m=e+24|0;Z=L+48|0;C=L+56|0;I=L+72|0;M=(+s[m>>3]-M)*.5+M+(+s[C>>3]-+s[I>>3])*.125;s[v+8>>3]=M;D=(+s[c>>3]-+s[Z>>3])*2.0+F;s[v+16>>3]=D;s[v+24>>3]=M;s[v+32>>3]=D;M=(+s[C>>3]-+s[I>>3])*.5+M;s[v+40>>3]=M;s[v+48>>3]=F;s[v+56>>3]=M;ar(A,v,i,f);L2(v);Y=qF(Y)|0;M=+s[c>>3]+ +s[E>>3]-+s[Z>>3];s[Y>>3]=M;F=+s[G>>3];F=(+s[m>>3]-F)*.5+F+(+s[C>>3]-+s[I>>3])*-.625;s[Y+8>>3]=F;D=+s[c>>3]-+s[Z>>3]+M;Z=Y+16|0;s[Z>>3]=D;s[Y+24>>3]=F;s[Y+32>>3]=D;F=(+s[C>>3]-+s[I>>3])*.5+F;s[Y+40>>3]=F;s[Y+48>>3]=M;s[Y+56>>3]=F;ar(A,Y,i,f);s[Q>>3]=+s[Z>>3];F=+s[G>>3];s[Q+8>>3]=(+s[m>>3]-F)*.5+F;s[Q+16>>3]=+s[e>>3];s[Q+24>>3]=(+s[e+8>>3]-+s[e+56>>3])*.5+F;tr(A,Q,2);L2(Y);break}if((r|0)<234881024){switch(r|0){case 218103808:break;default:break A}Y=i<<4;C=qF(Y)|0;F=+s[e>>3];s[C>>3]=F;Z=e+40|0;M=+s[Z>>3];G=e+24|0;I=L+56|0;m=L+72|0;M=(+s[G>>3]-M)*.5+M+(+s[I>>3]-+s[m>>3])*.125;s[C+8>>3]=M;s[C+16>>3]=F;D=(+s[I>>3]-+s[m>>3])*.5+M;s[C+24>>3]=D;F=F-(+s[I>>3]-+s[m>>3])*2.0;s[C+32>>3]=F;s[C+40>>3]=D;s[C+48>>3]=F;s[C+56>>3]=M;ar(A,C,i,f);L2(C);Y=qF(Y)|0;M=+s[e>>3]-+s[c>>3]+ +s[L+48>>3];s[Y>>3]=M;F=+s[Z>>3];F=(+s[G>>3]-F)*.5+F+(+s[I>>3]-+s[m>>3])*-.625;s[Y+8>>3]=F;s[Y+16>>3]=M;D=(+s[I>>3]-+s[m>>3])*.5+F;s[Y+24>>3]=D;M=M-(+s[I>>3]-+s[m>>3]);s[Y+32>>3]=M;s[Y+40>>3]=D;m=Y+48|0;s[m>>3]=M;s[Y+56>>3]=F;ar(A,Y,i,f);s[Q>>3]=+s[e+16>>3];F=+s[Z>>3];s[Q+8>>3]=(+s[G>>3]-F)*.5+F;s[Q+16>>3]=+s[m>>3];s[Q+24>>3]=(+s[e+8>>3]-+s[e+56>>3])*.5+F;tr(A,Q,2);L2(Y);break}else{switch(r|0){case 234881024:break;default:break A}Y=i<<4;Z=qF(Y)|0;v=e+16|0;M=+s[v>>3];E=L+48|0;M=(+s[e>>3]-M)*.5+M+(+s[c>>3]-+s[E>>3])*-1.125;s[Z>>3]=M;C=e+40|0;F=+s[C>>3];I=e+24|0;m=L+56|0;G=L+72|0;F=(+s[I>>3]-F)*.5+F+(+s[m>>3]-+s[G>>3])*.125;s[Z+8>>3]=F;D=+s[c>>3]-+s[E>>3]+M;s[Z+16>>3]=D;s[Z+24>>3]=F;s[Z+32>>3]=D;F=(+s[m>>3]-+s[G>>3])*.5+F;s[Z+40>>3]=F;s[Z+48>>3]=M;s[Z+56>>3]=F;ar(A,Z,i,f);L2(Z);Z=qF(Y)|0;F=+s[v>>3];F=(+s[e>>3]-F)*.5+F+(+s[c>>3]-+s[E>>3])*-1.125;s[Z>>3]=F;M=+s[C>>3];M=(+s[I>>3]-M)*.5+M+(+s[m>>3]-+s[G>>3])*-.625;s[Z+8>>3]=M;D=+s[c>>3]-+s[E>>3]+F;s[Z+16>>3]=D;s[Z+24>>3]=M;s[Z+32>>3]=D;M=(+s[m>>3]-+s[G>>3])*.5+M;s[Z+40>>3]=M;s[Z+48>>3]=F;s[Z+56>>3]=M;ar(A,Z,i,f);L2(Z);Z=qF(Y)|0;M=+s[v>>3];M=(+s[e>>3]-M)*.5+M+(+s[c>>3]-+s[E>>3])*.125;s[Z>>3]=M;F=+s[C>>3];F=(+s[I>>3]-F)*.5+F+(+s[m>>3]-+s[G>>3])*-.625;s[Z+8>>3]=F;D=+s[c>>3]-+s[E>>3]+M;s[Z+16>>3]=D;s[Z+24>>3]=F;s[Z+32>>3]=D;F=(+s[m>>3]-+s[G>>3])*.5+F;s[Z+40>>3]=F;s[Z+48>>3]=M;s[Z+56>>3]=F;ar(A,Z,i,f);L2(Z);Y=qF(Y)|0;F=+s[v>>3];F=(+s[e>>3]-F)*.5+F+(+s[c>>3]-+s[E>>3])*.125;s[Y>>3]=F;M=+s[C>>3];M=(+s[I>>3]-M)*.5+M+(+s[m>>3]-+s[G>>3])*.125;s[Y+8>>3]=M;D=+s[c>>3]-+s[E>>3]+F;Z=Y+16|0;s[Z>>3]=D;s[Y+24>>3]=M;s[Y+32>>3]=D;M=(+s[m>>3]-+s[G>>3])*.5+M;s[Y+40>>3]=M;s[Y+48>>3]=F;s[Y+56>>3]=M;ar(A,Y,i,f);s[Q>>3]=+s[Z>>3];M=+s[C>>3];Z=Q+8|0;s[Z>>3]=(+s[I>>3]-M)*.5+M;G=Q+16|0;s[G>>3]=+s[e>>3];m=e+8|0;i=e+56|0;f=Q+24|0;s[f>>3]=(+s[m>>3]-+s[i>>3])*.5+M;tr(A,Q,2);M=+s[v>>3];s[Q>>3]=(+s[e>>3]-M)*.5+M+(+s[c>>3]-+s[E>>3])*-1.125;F=+s[C>>3];s[Z>>3]=(+s[I>>3]-F)*.5+F;s[G>>3]=M;s[f>>3]=(+s[m>>3]-+s[i>>3])*.5+F;tr(A,Q,2);L2(Y);break}}if((r|0)<285212672)if((r|0)<268435456){switch(r|0){case 251658240:break;default:break A}Y=i<<4;v=qF(Y)|0;E=e+16|0;F=+s[E>>3];Z=L+48|0;F=F-+s[c>>3]+(+s[e>>3]-F)*.5+ +s[Z>>3];s[v>>3]=F;C=e+40|0;M=+s[C>>3];I=e+24|0;m=L+56|0;G=L+72|0;M=(+s[I>>3]-M)*.5+M+(+s[m>>3]-+s[G>>3])*.125;s[v+8>>3]=M;D=(+s[c>>3]-+s[Z>>3])*2.0+F;s[v+16>>3]=D;s[v+24>>3]=M;s[v+32>>3]=D;M=(+s[m>>3]-+s[G>>3])*.5+M;s[v+40>>3]=M;s[v+48>>3]=F;s[v+56>>3]=M;ar(A,v,i,f);L2(v);Y=qF(Y)|0;M=+s[E>>3];M=M-+s[c>>3]+(+s[e>>3]-M)*.5+ +s[Z>>3];s[Y>>3]=M;F=+s[C>>3];F=(+s[I>>3]-F)*.5+F+(+s[m>>3]-+s[G>>3])*-.625;s[Y+8>>3]=F;D=(+s[c>>3]-+s[Z>>3])*2.0+M;Z=Y+16|0;s[Z>>3]=D;s[Y+24>>3]=F;s[Y+32>>3]=D;F=(+s[m>>3]-+s[G>>3])*.5+F;s[Y+40>>3]=F;s[Y+48>>3]=M;s[Y+56>>3]=F;ar(A,Y,i,f);s[Q>>3]=+s[Z>>3];F=+s[C>>3];Z=Q+8|0;s[Z>>3]=(+s[I>>3]-F)*.5+F;G=Q+16|0;s[G>>3]=+s[e>>3];m=e+8|0;i=e+56|0;f=Q+24|0;s[f>>3]=(+s[m>>3]-+s[i>>3])*.5+F;tr(A,Q,2);s[Q>>3]=+s[E>>3];F=+s[C>>3];s[Z>>3]=(+s[I>>3]-F)*.5+F;s[G>>3]=+s[Y>>3];s[f>>3]=(+s[m>>3]-+s[i>>3])*.5+F;tr(A,Q,2);L2(Y);break}else{switch(r|0){case 268435456:break;default:break A}Y=qF(i<<4)|0;s[Y>>3]=+s[e>>3];E=L+48|0;I=L+56|0;Z=L+72|0;s[Y+8>>3]=+s[L+24>>3]-(+s[I>>3]-+s[Z>>3])*.5;s[Y+16>>3]=+s[E>>3];F=+s[I>>3];s[Y+24>>3]=F-(F-+s[Z>>3])*.5;s[Y+32>>3]=+s[e+32>>3];G=e+40|0;s[Y+40>>3]=(+s[I>>3]-+s[Z>>3])*.5+ +s[G>>3];s[Y+48>>3]=+s[e>>3];s[Y+56>>3]=(+s[I>>3]-+s[Z>>3])*.5+ +s[G>>3];ar(A,Y,i,f);C=e+16|0;F=(+s[c>>3]-+s[E>>3])*.25;M=F+ +s[C>>3];s[Q>>3]=M;D=+s[G>>3];v=e+24|0;W=+s[I>>3]-+s[Z>>3];D=(+s[v>>3]-D)*.5+D+W*.125;m=Q+8|0;s[m>>3]=D;i=Q+16|0;s[i>>3]=F+M;f=Q+24|0;s[f>>3]=D-W*.25;tr(A,Q,2);W=(+s[c>>3]-+s[E>>3])*.25;D=W+ +s[C>>3];s[Q>>3]=D;M=+s[G>>3];F=+s[I>>3]-+s[Z>>3];M=(+s[v>>3]-M)*.5+M+F*-.125;s[m>>3]=M;s[i>>3]=W+D;s[f>>3]=F*.25+M;tr(A,Q,2);M=(+s[c>>3]-+s[E>>3])*.25;s[Q>>3]=M+ +s[C>>3];F=(+s[I>>3]-+s[Z>>3])*.75+ +s[G>>3];s[m>>3]=F;s[i>>3]=+s[e>>3]-M;s[f>>3]=F;tr(A,Q,2);L2(Y);break}else if((r|0)<301989888){switch(r|0){case 285212672:break;default:break A}Z=qF(i<<4)|0;E=e+16|0;M=+s[E>>3];G=L+48|0;M=(+s[c>>3]-+s[G>>3]+(+s[e>>3]-M))*.5+M;s[Z>>3]=M;C=e+40|0;W=+s[C>>3];I=e+24|0;W=(+s[c>>3]-+s[G>>3]+(+s[I>>3]-W))*.5+W;s[Z+8>>3]=W;s[Z+16>>3]=M;M=+s[C>>3];w=+s[c>>3]-+s[G>>3];M=(+s[I>>3]-M-w)*.5+M;s[Z+24>>3]=M;F=+s[E>>3];F=(+s[e>>3]-F-w)*.5+F;s[Z+32>>3]=F;s[Z+40>>3]=M;s[Z+48>>3]=F;s[Z+56>>3]=W;ar(A,Z,i,f);L2(Z);W=+s[E>>3];W=(+s[e>>3]-W)*.5+W;F=+s[c>>3]-+s[G>>3];M=F*.75;w=W+M;s[Q>>3]=w;D=+s[C>>3];D=(+s[I>>3]-D)*.5+D;M=D+M;Z=Q+8|0;s[Z>>3]=M;m=Q+16|0;s[m>>3]=w;F=F*-.75;D=D+F;Y=Q+24|0;s[Y>>3]=D;F=W+F;s[Q+32>>3]=F;s[Q+40>>3]=D;s[Q+48>>3]=F;s[Q+56>>3]=M;i=Q+64|0;a[i>>2]=a[Q>>2];a[i+4>>2]=a[Q+4>>2];a[i+8>>2]=a[Q+8>>2];a[i+12>>2]=a[Q+12>>2];tr(A,Q,5);M=+s[E>>3];F=+s[e>>3];s[Q>>3]=(F-M)*.5+M+(+s[c>>3]-+s[G>>3])*.75;M=+s[C>>3];s[Z>>3]=(+s[I>>3]-M)*.5+M;s[m>>3]=F;i=e+8|0;f=e+56|0;s[Y>>3]=(+s[i>>3]-+s[f>>3])*.5+M;tr(A,Q,2);M=+s[E>>3];s[Q>>3]=M;F=+s[C>>3];s[Z>>3]=(+s[I>>3]-F)*.5+F;s[m>>3]=(+s[e>>3]-M)*.5+M+(+s[c>>3]-+s[G>>3])*-.75;s[Y>>3]=(+s[i>>3]-+s[f>>3])*.5+F;tr(A,Q,2);break}else{switch(r|0){case 301989888:break;default:break A}m=i+12|0;Y=qF(m<<4)|0;I=e+16|0;b=+s[I>>3];B=L+48|0;b=(+s[e>>3]-b)*.5+b+(+s[c>>3]-+s[B>>3])*.25;s[Y>>3]=b;Z=e+40|0;W=+s[Z>>3];G=e+24|0;E=L+56|0;C=L+72|0;W=(+s[E>>3]-+s[C>>3]+(+s[G>>3]-W))*.5+W;v=Y+8|0;s[v>>3]=W;s[Y+16>>3]=b;W=(+s[E>>3]-+s[C>>3])*.125+W;g=Y+24|0;s[g>>3]=W;D=b-(+s[c>>3]-+s[B>>3])*.125;i=Y+32|0;s[i>>3]=D;w=(+s[E>>3]-+s[C>>3])*.125+W;s[Y+40>>3]=w;s[Y+48>>3]=b;M=(+s[E>>3]-+s[C>>3])*.125+w;s[Y+56>>3]=M;s[Y+64>>3]=b;b=(+s[E>>3]-+s[C>>3])*.125+M;s[Y+72>>3]=b;s[Y+80>>3]=D;s[Y+88>>3]=b;D=+s[I>>3];D=(+s[e>>3]-D)*.5+D;s[Y+96>>3]=D;s[Y+104>>3]=M;F=D-(+s[c>>3]-+s[B>>3])*.125;s[Y+112>>3]=F;s[Y+120>>3]=b;F=F-(+s[c>>3]-+s[B>>3])*.125;s[Y+128>>3]=F;s[Y+136>>3]=b;s[Y+144>>3]=F;s[Y+152>>3]=M;M=(+s[c>>3]-+s[B>>3])*.125+F;s[Y+160>>3]=M;s[Y+168>>3]=w;s[Y+176>>3]=F;s[Y+184>>3]=W;s[Y+192>>3]=F;F=+s[v>>3];s[Y+200>>3]=F;s[Y+208>>3]=M;s[Y+216>>3]=F;v=Y+224|0;s[v>>3]=D;s[Y+232>>3]=+s[g>>3];s[Y+240>>3]=+s[i>>3];s[Y+248>>3]=F;ar(A,Y,m,f);F=+s[v>>3];s[Q>>3]=F;D=+s[Z>>3];D=(+s[G>>3]-D)*.5+D;m=Q+8|0;s[m>>3]=D;i=Q+16|0;s[i>>3]=F;f=Q+24|0;s[f>>3]=(+s[E>>3]-+s[C>>3])*.125+D;tr(A,Q,2);D=+s[v>>3];s[Q>>3]=D;F=+s[Z>>3];M=+s[E>>3]-+s[C>>3];F=(+s[G>>3]-F)*.5+F+M*.25;s[m>>3]=F;s[i>>3]=D;s[f>>3]=M*.125+F;tr(A,Q,2);s[Q>>3]=+s[I>>3];F=+s[Z>>3];s[m>>3]=(+s[G>>3]-F)*.5+F;s[i>>3]=+s[e>>3];s[f>>3]=(+s[e+8>>3]-+s[e+56>>3])*.5+F;tr(A,Q,2);L2(Y);break}}else{if((r|0)<369098752){if((r|0)<335544320){switch(r|0){case 318767104:break;default:break A}m=i+4|0;Y=qF(m<<4)|0;I=e+16|0;D=+s[I>>3];i=L+48|0;D=(+s[e>>3]-D)*.5+D+(+s[c>>3]-+s[i>>3])*.125;s[Y>>3]=D;Z=e+40|0;F=+s[Z>>3];G=e+24|0;E=L+56|0;C=L+72|0;F=(+s[E>>3]-+s[C>>3]+(+s[G>>3]-F))*.5+F;s[Y+8>>3]=F;w=(+s[c>>3]-+s[i>>3])*.125+D;s[Y+16>>3]=w;M=(+s[E>>3]-+s[C>>3])*.125+F;s[Y+24>>3]=M;s[Y+32>>3]=w;w=(+s[E>>3]-+s[C>>3])*.25+M;s[Y+40>>3]=w;s[Y+48>>3]=D;W=(+s[E>>3]-+s[C>>3])*.125+w;s[Y+56>>3]=W;D=D-(+s[c>>3]-+s[i>>3])*.25;s[Y+64>>3]=D;s[Y+72>>3]=W;W=D-(+s[c>>3]-+s[i>>3])*.125;s[Y+80>>3]=W;s[Y+88>>3]=w;s[Y+96>>3]=W;s[Y+104>>3]=M;s[Y+112>>3]=D;s[Y+120>>3]=F;ar(A,Y,m,f);F=+s[I>>3];F=(+s[e>>3]-F)*.5+F;s[Q>>3]=F;D=+s[Z>>3];D=(+s[G>>3]-D)*.5+D;m=Q+8|0;s[m>>3]=D;i=Q+16|0;s[i>>3]=F;f=Q+24|0;s[f>>3]=(+s[E>>3]-+s[C>>3])*.125+D;tr(A,Q,2);D=+s[I>>3];D=(+s[e>>3]-D)*.5+D;s[Q>>3]=D;F=+s[Z>>3];M=+s[E>>3]-+s[C>>3];F=(+s[G>>3]-F)*.5+F+M*.25;s[m>>3]=F;s[i>>3]=D;s[f>>3]=M*.125+F;tr(A,Q,2);s[Q>>3]=+s[I>>3];F=+s[Z>>3];s[m>>3]=(+s[G>>3]-F)*.5+F;s[i>>3]=+s[e>>3];s[f>>3]=(+s[e+8>>3]-+s[e+56>>3])*.5+F;tr(A,Q,2);L2(Y);break}if((r|0)<352321536){switch(r|0){case 335544320:break;default:break A}I=i+12|0;Y=qF(I<<4)|0;Z=e+16|0;b=+s[Z>>3];v=L+48|0;b=(+s[e>>3]-b)*.5+b+(+s[c>>3]-+s[v>>3])*.25;s[Y>>3]=b;G=e+40|0;W=+s[G>>3];m=e+24|0;B=L+56|0;g=L+72|0;W=(+s[B>>3]-+s[g>>3]+(+s[m>>3]-W))*.5+W;i=Y+8|0;s[i>>3]=W;s[Y+16>>3]=b;W=(+s[B>>3]-+s[g>>3])*.125+W;E=Y+24|0;s[E>>3]=W;M=b-(+s[c>>3]-+s[v>>3])*.125;C=Y+32|0;s[C>>3]=M;w=(+s[B>>3]-+s[g>>3])*.125+W;s[Y+40>>3]=w;s[Y+48>>3]=b;D=(+s[B>>3]-+s[g>>3])*.125+w;s[Y+56>>3]=D;s[Y+64>>3]=b;b=(+s[B>>3]-+s[g>>3])*.125+D;s[Y+72>>3]=b;s[Y+80>>3]=M;s[Y+88>>3]=b;M=+s[Z>>3];M=(+s[e>>3]-M)*.5+M;s[Y+96>>3]=M;s[Y+104>>3]=D;F=M-(+s[c>>3]-+s[v>>3])*.125;s[Y+112>>3]=F;s[Y+120>>3]=b;F=F-(+s[c>>3]-+s[v>>3])*.125;s[Y+128>>3]=F;s[Y+136>>3]=b;s[Y+144>>3]=F;s[Y+152>>3]=D;D=(+s[c>>3]-+s[v>>3])*.125+F;s[Y+160>>3]=D;s[Y+168>>3]=w;s[Y+176>>3]=F;s[Y+184>>3]=W;s[Y+192>>3]=F;F=+s[i>>3];s[Y+200>>3]=F;s[Y+208>>3]=D;s[Y+216>>3]=F;i=Y+224|0;s[i>>3]=M;s[Y+232>>3]=+s[E>>3];s[Y+240>>3]=+s[C>>3];s[Y+248>>3]=F;ar(A,Y,I,f);a[Q>>2]=a[i>>2];a[Q+4>>2]=a[i+4>>2];a[Q+8>>2]=a[i+8>>2];a[Q+12>>2]=a[i+12>>2];i=Q+16|0;s[i>>3]=+s[Q>>3];F=+s[G>>3];f=Q+24|0;s[f>>3]=(+s[m>>3]-F)*.5+F;tr(A,Q,2);s[Q>>3]=+s[Z>>3];F=+s[G>>3];s[Q+8>>3]=(+s[m>>3]-F)*.5+F;s[i>>3]=+s[e>>3];s[f>>3]=(+s[e+8>>3]-+s[e+56>>3])*.5+F;tr(A,Q,2);L2(Y);break}else{switch(r|0){case 352321536:break;default:break A}m=i+4|0;Y=qF(m<<4)|0;I=e+16|0;M=+s[I>>3];C=L+48|0;M=(+s[e>>3]-M)*.5+M+(+s[c>>3]-+s[C>>3])*.125;s[Y>>3]=M;Z=e+40|0;F=+s[Z>>3];G=e+24|0;v=L+56|0;E=L+72|0;F=(+s[v>>3]-+s[E>>3]+(+s[G>>3]-F))*.5+F;i=Y+8|0;s[i>>3]=F;w=(+s[c>>3]-+s[C>>3])*.125+M;s[Y+16>>3]=w;D=(+s[v>>3]-+s[E>>3])*.125+F;s[Y+24>>3]=D;s[Y+32>>3]=w;w=(+s[v>>3]-+s[E>>3])*.25+D;s[Y+40>>3]=w;s[Y+48>>3]=M;W=(+s[v>>3]-+s[E>>3])*.125+w;s[Y+56>>3]=W;M=M-(+s[c>>3]-+s[C>>3])*.25;s[Y+64>>3]=M;s[Y+72>>3]=W;W=M-(+s[c>>3]-+s[C>>3])*.125;s[Y+80>>3]=W;s[Y+88>>3]=w;s[Y+96>>3]=W;s[Y+104>>3]=D;s[Y+112>>3]=M;s[Y+120>>3]=F;ar(A,Y,m,f);F=+s[I>>3];F=(+s[e>>3]-F)*.5+F;s[Q>>3]=F;m=Q+8|0;s[m>>3]=+s[i>>3];i=Q+16|0;s[i>>3]=F;F=+s[Z>>3];f=Q+24|0;s[f>>3]=(+s[G>>3]-F)*.5+F;tr(A,Q,2);s[Q>>3]=+s[I>>3];F=+s[Z>>3];s[m>>3]=(+s[G>>3]-F)*.5+F;s[i>>3]=+s[e>>3];s[f>>3]=(+s[e+8>>3]-+s[e+56>>3])*.5+F;tr(A,Q,2);L2(Y);break}}if((r|0)<402653184)if((r|0)<385875968){switch(r|0){case 369098752:break;default:break A}i=i+5|0;Y=qF(i<<4)|0;Q=L+48|0;s[Y>>3]=+s[t>>3]-(+s[c>>3]-+s[Q>>3])*.5;Z=L+56|0;m=L+72|0;s[Y+8>>3]=+s[L+24>>3]-(+s[Z>>3]-+s[m>>3])*.5;s[Y+16>>3]=+s[Q>>3];F=+s[Z>>3];s[Y+24>>3]=F-(F-+s[m>>3])*.5;s[Y+32>>3]=+s[e+32>>3];G=e+40|0;s[Y+40>>3]=+s[G>>3];F=+s[c>>3];s[Y+48>>3]=(F-+s[Q>>3])*.5+F;s[Y+56>>3]=+s[G>>3];F=+s[c>>3];s[Y+64>>3]=(F-+s[Q>>3])*.5+F;s[Y+72>>3]=(+s[Z>>3]-+s[m>>3])*.5+ +s[G>>3];s[Y+80>>3]=+s[t>>3]-(+s[c>>3]-+s[Q>>3])*.5;s[Y+88>>3]=(+s[Z>>3]-+s[m>>3])*.5+ +s[G>>3];s[Y+96>>3]=+s[t>>3]-(+s[c>>3]-+s[Q>>3])*.5;G=e+56|0;s[Y+104>>3]=+s[G>>3];m=e+8|0;F=+s[m>>3];s[Y+120>>3]=F-(F-+s[G>>3])*.5;s[Y+112>>3]=+s[e>>3];s[Y+136>>3]=+s[m>>3];s[Y+128>>3]=+s[t>>3]-(+s[c>>3]-+s[Q>>3])*.5;ar(A,Y,i,f);L2(Y);break}else{switch(r|0){case 385875968:break;default:break A}i=i+3|0;Y=qF(i<<4)|0;Q=L+48|0;s[Y>>3]=+s[t>>3]-(+s[c>>3]-+s[Q>>3])*.5;Z=L+56|0;m=L+72|0;s[Y+8>>3]=+s[L+24>>3]-(+s[Z>>3]-+s[m>>3])*.5;s[Y+16>>3]=+s[Q>>3];F=+s[Z>>3];s[Y+24>>3]=F-(F-+s[m>>3])*.5;s[Y+32>>3]=+s[e+32>>3];G=e+40|0;s[Y+40>>3]=(+s[Z>>3]-+s[m>>3])*.5+ +s[G>>3];s[Y+48>>3]=+s[t>>3]-(+s[c>>3]-+s[Q>>3])*.5;s[Y+56>>3]=(+s[Z>>3]-+s[m>>3])*.5+ +s[G>>3];s[Y+64>>3]=+s[t>>3]-(+s[c>>3]-+s[Q>>3])*.5;G=e+56|0;s[Y+72>>3]=+s[G>>3];m=e+8|0;F=+s[m>>3];s[Y+88>>3]=F-(F-+s[G>>3])*.5;s[Y+80>>3]=+s[e>>3];s[Y+104>>3]=+s[m>>3];s[Y+96>>3]=+s[t>>3]-(+s[c>>3]-+s[Q>>3])*.5;ar(A,Y,i,f);L2(Y);break}else if((r|0)<419430400){switch(r|0){case 402653184:break;default:break A}i=i+3|0;Y=qF(i<<4)|0;s[Y>>3]=+s[e>>3];Z=e+8|0;G=L+48|0;m=L+56|0;Q=L+72|0;s[Y+8>>3]=+s[Z>>3]-(+s[m>>3]-+s[Q>>3])*.5;F=+s[c>>3];s[Y+16>>3]=(F-+s[G>>3])*.5+F;s[Y+24>>3]=+s[Z>>3]-(+s[m>>3]-+s[Q>>3])*.5;F=+s[c>>3];s[Y+32>>3]=(F-+s[G>>3])*.5+F;s[Y+40>>3]=+s[L+40>>3];s[Y+48>>3]=+s[e+16>>3];F=+s[e+24>>3];Z=e+40|0;s[Y+56>>3]=F-(F-+s[Z>>3])*.5;F=+s[c>>3];s[Y+64>>3]=(F-+s[G>>3])*.5+F;s[Y+72>>3]=+s[Z>>3];s[Y+88>>3]=(+s[m>>3]-+s[Q>>3])*.5+ +s[Z>>3];F=+s[c>>3];s[Y+80>>3]=(F-+s[G>>3])*.5+F;s[Y+104>>3]=(+s[m>>3]-+s[Q>>3])*.5+ +s[e+56>>3];s[Y+96>>3]=+s[e>>3];ar(A,Y,i,f);L2(Y);break}else{switch(r|0){case 419430400:break;default:break A}i=i+5|0;Y=qF(i<<4)|0;s[Y>>3]=+s[e>>3];Q=e+8|0;m=L+48|0;Z=L+56|0;G=L+72|0;s[Y+8>>3]=+s[Q>>3]-(+s[Z>>3]-+s[G>>3])*.5;F=+s[c>>3];s[Y+16>>3]=(F-+s[m>>3])*.5+F;s[Y+24>>3]=+s[Q>>3]-(+s[Z>>3]-+s[G>>3])*.5;F=+s[c>>3];s[Y+32>>3]=(F-+s[m>>3])*.5+F;s[Y+40>>3]=+s[L+40>>3];s[Y+48>>3]=+s[e+16>>3];F=+s[e+24>>3];Q=e+40|0;s[Y+56>>3]=F-(F-+s[Q>>3])*.5;F=+s[c>>3];s[Y+64>>3]=(F-+s[m>>3])*.5+F;s[Y+72>>3]=+s[Q>>3];s[Y+88>>3]=(+s[Z>>3]-+s[G>>3])*.5+ +s[Q>>3];F=+s[c>>3];s[Y+80>>3]=(F-+s[m>>3])*.5+F;Q=e+56|0;s[Y+104>>3]=(+s[Z>>3]-+s[G>>3])*.5+ +s[Q>>3];s[Y+96>>3]=+s[t>>3]-(+s[c>>3]-+s[m>>3])*.5;s[Y+112>>3]=+s[t>>3]-(+s[c>>3]-+s[m>>3])*.5;s[Y+120>>3]=+s[Q>>3];s[Y+128>>3]=+s[e+48>>3];s[Y+136>>3]=+s[Q>>3];ar(A,Y,i,f);L2(Y);break}}}while(0);L2(L)}k=y;return}function cp(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0.0;f=k;k=k+112|0;n=f;c=+s[e+8>>3]*2.0;a[n>>2]=a[e>>2];a[n+4>>2]=a[e+4>>2];a[n+8>>2]=a[e+8>>2];a[n+12>>2]=a[e+12>>2];s[n+16>>3]=+s[e+16>>3];s[n+24>>3]=c-+s[e+24>>3];s[n+32>>3]=+s[e+32>>3];s[n+40>>3]=c-+s[e+40>>3];s[n+48>>3]=+s[e+48>>3];s[n+56>>3]=c-+s[e+56>>3];s[n+64>>3]=+s[e+64>>3];s[n+72>>3]=c-+s[e+72>>3];s[n+80>>3]=+s[e+80>>3];s[n+88>>3]=c-+s[e+88>>3];l=n+96|0;t=e+96|0;a[l>>2]=a[t>>2];a[l+4>>2]=a[t+4>>2];a[l+8>>2]=a[t+8>>2];a[l+12>>2]=a[t+12>>2];lr(A,e,i,0,0,r&255);lr(A,n,7,0,0,0);k=f;return}function sp(A,e,i,r){A=A|0;e=+e;i=i|0;r=r|0;var f=0.0,a=0.0;a=+s[i>>3];f=+s[i+8>>3];f=(+s[r+8>>3]-f)*e+f;s[A>>3]=(+s[r>>3]-a)*e+a;s[A+8>>3]=f;return}function bp(A){A=A|0;A=a[(a[A+16>>2]|0)+8>>2]|0;if(A){A=a[a[A+4>>2]>>2]|0;if((A|0)!=91)if((A|0)==94)A=2;else return((A|0)==93?3:(A|0)==96?4:0)|0;else A=1}else A=0;return A|0}function up(A){A=A|0;var e=0,i=0,f=0.0,n=0,l=0,t=0,c=0.0,b=0.0,u=0.0,w=0.0,o=0,h=0.0,d=0.0,B=0.0,g=0.0,v=0.0,E=0.0,C=0.0,I=0.0,Z=0.0,G=0.0,m=0,Q=0,L=0,y=0,Y=0,F=0,V=0,J=0,p=0,R=0.0,X=0.0,H=0,x=0,T=0.0,j=0.0,P=0.0,S=0,O=0,K=0,_=0,q=0,$=0,AA=0,eA=0.0;AA=k;k=k+144|0;F=AA+112|0;p=AA+104|0;L=AA+96|0;y=AA+88|0;l=AA+80|0;K=AA+64|0;q=AA+48|0;H=AA+40|0;x=AA+32|0;t=AA+24|0;o=AA+16|0;Q=AA+136|0;m=AA+128|0;V=AA;$=qF(48)|0;_=A+16|0;S=a[(a[(a[_>>2]|0)+8>>2]|0)+8>>2]|0;n=(S|0)==1616;O=a[S>>2]|0;e=a[S+4>>2]|0;i=a[S+8>>2]|0;b=+s[S+16>>3];u=+s[S+32>>3];w=+s[S+24>>3];O=O|(vR(Ho(A,105511)|0)|0)&255;do{if(!n){if(!O){S=a[_>>2]|0;c=+s[S+32>>3]*72.0;f=+s[S+40>>3]*72.0;f=+(~~(f+(f>=0.0?.5:-.5))|0);c=+(~~(c+(c>=0.0?.5:-.5))|0);break}c=+Cp(A);if(c>0.0)f=c;else{S=a[_>>2]|0;f=+s[S+32>>3];c=+s[S+40>>3];c=(f=0.0?.5:-.5))|0);f=c}}else{f=0.0;c=0.0}}while(0);S=kR(A,a[47160]|0,e,0)|0;P=+oR(A,a[47162]|0,0.0,-360.0)+b;if(!i){j=+oR(A,a[47163]|0,0.0,-100.0);Y=kR(A,a[47159]|0,4,0)|0;T=+oR(A,a[47164]|0,0.0,-100.0)}else{Y=i;j=u;T=w}e=a[(a[_>>2]|0)+104>>2]|0;i=e+24|0;a[K>>2]=a[i>>2];a[K+4>>2]=a[i+4>>2];a[K+8>>2]=a[i+8>>2];a[K+12>>2]=a[i+12>>2];h=+s[K>>3];if(h>0.0){if(!n)J=11}else if(!(n|!(+s[K+8>>3]>0.0)))J=11;if((J|0)==11){e=Ho(A,105496)|0;do{if(e){s[o>>3]=0.0;s[t>>3]=0.0;a[l>>2]=t;a[l+4>>2]=o;e=J3(e,105503,l)|0;b=+s[t>>3];if(b<0.0){s[t>>3]=0.0;b=0.0}u=+s[o>>3];if(u<0.0){s[o>>3]=0.0;w=0.0}else w=u;if((e|0)<=0){u=h+16.0;s[K>>3]=u;b=8.0;break}b=b*72.0;b=+(~~(b+(b>=0.0?.5:-.5))<<1|0);u=h+b;s[K>>3]=u;if((e|0)!=1){b=w*72.0;b=+(~~(b+(b>=0.0?.5:-.5))<<1|0)}}else{u=h+16.0;s[K>>3]=u;b=8.0}}while(0);e=K+8|0;s[e>>3]=+s[e>>3]+b;e=a[(a[_>>2]|0)+104>>2]|0;h=u}B=+s[e+24>>3];b=+s[a[(a[(Id(A)|0)+16>>2]|0)+8>>2]>>3];if(b>0.0){R=b*72.0;R=+(~~(R+(R>=0.0?.5:-.5))|0);X=+Ip(h,R);s[K>>3]=X;o=K+8|0;s[o>>3]=+Ip(+s[o>>3],R)}else X=h;e=a[(a[_>>2]|0)+8>>2]|0;do{if(!(r[e+12>>0]|0)){i=Ho(A,109025)|0;if((i|0)!=0?(r[i>>0]|0)!=0:0){Uv(m,Id(A)|0,i);e=a[m>>2]|0;n=a[m+4>>2]|0;if((n&e|0)==-1){e=Vh(A)|0;a[L>>2]=i;a[L+4>>2]=e;ao(0,105587,L)|0;i=0;e=0;break}else{r[(a[(Id(A)|0)+16>>2]|0)+114>>0]=1;i=e+2|0;e=n+2|0;break}}else{i=0;e=0}}else{e=a[e>>2]|0;if((r[e>>0]|0)==99?(A1(e,105519)|0)==0:0){i=Ho(A,105526)|0;Uv(Q,Id(A)|0,i);e=a[Q>>2]|0;n=a[Q+4>>2]|0;if((n&e|0)==-1){e=Vh(A)|0;a[y>>2]=i|0?i:105536;a[y+4>>2]=e;ao(0,105542,y)|0;i=0;e=0;break}else{r[(a[(Id(A)|0)+16>>2]|0)+114>>0]=1;i=e+2|0;e=n+2|0;break}}else{i=0;e=0}}}while(0);R=+(i|0);s[q>>3]=X>R?X:R;R=+s[K+8>>3];d=+(e|0);e=q+8|0;s[e>>3]=R>d?R:d;i=(Y|0)<3&(T!=0.0|j!=0.0)?120:Y;n=Ho(A,105628)|0;if(!n)l=99;else{l=r[n>>0]|0;l=l<<24>>24==116?116:l<<24>>24==98?98:99}n=a[_>>2]|0;r[(a[n+104>>2]|0)+80>>0]=l;if((i|0)==4?(T==0.0?((~~(P+(P>=0.0?.5:-.5))|0)%90|0|0)==0:0)&j==0.0:0)o=1;else J=39;do{if((J|0)==39){n=a[(a[(a[n+8>>2]|0)+8>>2]|0)+44>>2]|0;if(n|0){o=a[n>>2]|0;a[F>>2]=a[q>>2];a[F+4>>2]=a[q+4>>2];a[F+8>>2]=a[q+8>>2];a[F+12>>2]=a[q+12>>2];V5[o&63](V,F);a[q>>2]=a[V>>2];a[q+4>>2]=a[V+4>>2];a[q+8>>2]=a[V+8>>2];a[q+12>>2]=a[V+12>>2];o=0;break}b=+s[e>>3];u=b*1.4142135623730951;if(f>u&l<<24>>24==99){w=b/f;w=+z(+(1.0/(1.0-w*w)));w=+s[q>>3]*w;s[q>>3]=w}else{w=+s[q>>3]*1.4142135623730951;s[q>>3]=w;s[e>>3]=u;b=u}if((i|0)>2){G=+D(+(3.141592653589793/+(i|0)));s[q>>3]=w/G;s[e>>3]=b/G;o=0}else o=0}}while(0);b=+s[e>>3];n=dR(A,a[47165]|0,137308)|0;if((r[n>>0]|0)==115?(A1(n,108230)|0)==0:0){s[q>>3]=c;s[e>>3]=f;p=$+40|0;a[p>>2]=a[p>>2]|2048}else{if(!((vR(n)|0)<<24>>24)){G=+s[q>>3];c=c>G?c:G;s[q>>3]=c;G=+s[e>>3];f=f>G?f:G}else{J=a[(a[_>>2]|0)+104>>2]|0;if(!(!(c<+s[J+24>>3])?!(f<+s[J+32>>3]):0)){V=Vh(A)|0;J=Vh(Id(A)|0)|0;a[p>>2]=V;a[p+4>>2]=J;ao(0,105637,p)|0}s[q>>3]=c}s[e>>3]=f}if(!O){G=f;Z=c}else{Z=c>f?c:f;s[e>>3]=Z;s[q>>3]=Z;G=Z}do{if(!((vR(dR(A,a[47156]|0,137308)|0)|0)<<24>>24)){if(o){f=+s[(X>+s[q>>3]?K:q)>>3];break}f=+s[e>>3];if(R>3]*+z(+(1.0-R*R/(f*f)));f=X>f?X:f}else f=X}else f=X}while(0);n=a[(a[_>>2]|0)+104>>2]|0;s[n+40>>3]=B-h+f;m=$+40|0;if(!(a[m>>2]&2048)){I=+s[e>>3]-b;s[n+48>>3]=(R1;n=t?S:1;A:do{if((i|0)<3){n=qF(n<<5)|0;c=+s[q>>3]*.5;f=+s[e>>3]*.5;s[n>>3]=-c;s[n+8>>3]=-f;s[n+16>>3]=c;s[n+24>>3]=f;if(t){i=1;l=2;while(1){if((i|0)==(S|0))break;Z=c+4.0;G=f+4.0;s[n+(l<<4)>>3]=-Z;s[n+(l<<4)+8>>3]=-G;x=l|1;s[n+(x<<4)>>3]=Z;s[n+(x<<4)+8>>3]=G;i=i+1|0;l=l+2|0;c=Z;f=G}s[q>>3]=c*2.0;s[e>>3]=f*2.0;i=2}else i=2}else{n=qF(U(n<<4,i)|0)|0;l=a[(a[(a[(a[_>>2]|0)+8>>2]|0)+8>>2]|0)+44>>2]|0;e:do{if(!l){h=6.283185307179586/+(i|0);g=h*.5;d=+M(+g);B=+g1(+W(+j)+ +W(+T),1.0);g=T*1.4142135623730951/+D(+g);v=j*.5;E1((h+-3.141592653589793)*.5,H,x);E=P*.017453292519943295;c=0.0;f=0.0;b=0.0;l=0;u=+s[x>>3]*.5;w=+s[H>>3]*.5;while(1){if((l|0)>=(i|0))break e;b=b+h;E1(b,H,x);u=+s[x>>3]*d+u;w=+s[H>>3]*d+w;I=(w*g+B)*u+v*w;E1(+N(+w,+I)+E,H,x);I=+g1(I,w);C=+s[x>>3]*I*+s[q>>3];I=+s[H>>3]*I*+s[e>>3];eA=+W(+C);f=eA>f?eA:f;eA=+W(+I);c=eA>c?eA:c;s[n+(l<<4)>>3]=C;s[n+(l<<4)+8>>3]=I;if(o)break;else l=l+1|0}eA=-C;s[n+16>>3]=eA;s[n+24>>3]=I;s[n+32>>3]=eA;eA=-I;s[n+40>>3]=eA;s[n+48>>3]=C;s[n+56>>3]=eA}else{V5[a[l+4>>2]&63](n,q);c=+s[e>>3]*.5;f=+s[q>>3]*.5}}while(0);f=f*2.0;c=c*2.0;Z=Z>f?Z:f;s[q>>3]=Z;eA=G>c?G:c;s[e>>3]=eA;f=Z/f;c=eA/c;l=0;while(1){if((l|0)>=(i|0))break;p=n+(l<<4)|0;A=n+(l<<4)+8|0;eA=+s[A>>3]*c;s[p>>3]=+s[p>>3]*f;s[A>>3]=eA;l=l+1|0}if(t){t=i+-1|0;c=+s[n>>3];b=+s[n+8>>3];f=+N(+(b-+s[n+(t<<4)+8>>3]),+(c-+s[n+(t<<4)>>3]));t=0;e:while(1){if((t|0)>=(i|0))break;o=t+1|0;l=(o|0)%(i|0)|0;u=+s[n+(l<<4)>>3];w=+s[n+(l<<4)+8>>3];h=+N(+(w-b),+(u-c));G=(f+3.141592653589793-h)*.5;eA=4.0/+M(+G);E1(f-G,H,x);s[H>>3]=+s[H>>3]*eA;s[x>>3]=+s[x>>3]*eA;l=1;f=b;while(1){if((l|0)==(S|0)){f=h;t=o;c=u;b=w;continue e}G=+s[x>>3]+c;eA=+s[H>>3]+f;A=(U(l,i)|0)+t|0;s[n+(A<<4)>>3]=G;s[n+(A<<4)+8>>3]=eA;l=l+1|0;c=G;f=eA}}t=U(i,S+-1|0)|0;l=0;while(1){if((l|0)>=(i|0))break A;x=l+t|0;G=+s[n+(x<<4)+8>>3];Z=+W(+ +s[n+(x<<4)>>3])*2.0;eA=+s[q>>3];s[q>>3]=Z>eA?Z:eA;G=+W(+G)*2.0;eA=+s[e>>3];s[e>>3]=G>eA?G:eA;l=l+1|0}}}}while(0);a[$>>2]=O;a[$+4>>2]=S;a[$+8>>2]=i;s[$+16>>3]=P;s[$+32>>3]=j;s[$+24>>3]=T;a[$+44>>2]=n;f=+s[q>>3];if(!(a[m>>2]&2048)){i=a[_>>2]|0;s[i+32>>3]=f*.013888888888888888}else{i=a[_>>2]|0;s[i+32>>3]=+s[(X>f?K:q)>>3]*.013888888888888888;e=(R>+s[e>>3]?K:q)+8|0}s[i+40>>3]=+s[e>>3]*.013888888888888888;a[i+12>>2]=$;k=AA;return}function wp(A){A=A|0;var e=0,i=0,r=0,f=0,n=0.0,l=0.0,t=0,c=0,b=0,u=0,w=0;w=k;k=k+64|0;t=w+40|0;r=w+32|0;c=w+16|0;u=w;i=(a[(a[(Id(A)|0)+16>>2]|0)+116>>2]|0)>>>2&1^1;b=A+16|0;f=a[a[(a[b>>2]|0)+104>>2]>>2]|0;a[47282]=f;f=P2(f)|0;f=qF(((f|0)>1?f:1)+1|0)|0;e=op(A,i,1,f)|0;if(!e){a[r>>2]=a[a[(a[b>>2]|0)+104>>2]>>2];ao(1,105472,r)|0;a[47282]=105493;e=op(A,i,1,f)|0}L2(f);hp(t,A,e);i=a[b>>2]|0;l=+s[i+32>>3]*72.0;l=+(~~(l+(l>=0.0?.5:-.5))|0);s[u>>3]=l;n=+s[i+40>>3]*72.0;n=+(~~(n+(n>=0.0?.5:-.5))|0);i=u+8|0;s[i>>3]=n;if(!((vR(dR(A,a[47165]|0,137308)|0)|0)<<24>>24)){l=+s[(+s[e>>3]>l?e:u)>>3];s[u>>3]=l;r=e+8|0;n=+s[(+s[r>>3]>n?e:u)+8>>3];s[i>>3]=n;i=r;r=e}else{i=e+8|0;r=e}A=(vR(dR(A,a[47156]|0,137308)|0)|0)&255;a[t>>2]=a[u>>2];a[t+4>>2]=a[u+4>>2];a[t+8>>2]=a[u+8>>2];a[t+12>>2]=a[u+12>>2];dp(e,t,A);Bp(c,l*-.5,n*.5);a[t>>2]=a[c>>2];a[t+4>>2]=a[c+4>>2];a[t+8>>2]=a[c+8>>2];a[t+12>>2]=a[c+12>>2];gp(e,t,15);u=a[b>>2]|0;s[u+32>>3]=+s[r>>3]*.013888888888888888;s[u+40>>3]=(+s[i>>3]+1.0)*.013888888888888888;a[u+12>>2]=e;k=w;return}function kp(A){A=A|0;var e=0.0,i=0,r=0.0,f=0.0,n=0,l=0,t=0,c=0,b=0.0,u=0;t=qF(48)|0;c=A+16|0;n=a[(a[(a[(a[c>>2]|0)+8>>2]|0)+8>>2]|0)+4>>2]|0;f=+oR(A,a[47146]|0,1797693134862315708145274.0e284,0.0);e=+oR(A,a[47145]|0,1797693134862315708145274.0e284,0.0);f=f0.0?f>.0003?f:.0003:f;l=a[c>>2]|0;s[l+40>>3]=f;s[l+32>>3]=f;e=f*72.0;n=kR(A,a[47160]|0,n,0)|0;l=qF((n|0)<1?32:n<<5)|0;f=f*36.0;r=-f;s[l>>3]=r;s[l+8>>3]=r;s[l+16>>3]=f;s[l+24>>3]=f;if((n|0)>1){A=1;i=2;r=f;e=f;while(1){if((A|0)==(n|0))break;b=r+4.0;f=e+4.0;s[l+(i<<4)>>3]=-b;s[l+(i<<4)+8>>3]=-f;u=i|1;s[l+(u<<4)>>3]=b;s[l+(u<<4)+8>>3]=f;A=A+1|0;i=i+2|0;r=b;e=f}e=r*2.0}a[t>>2]=1;a[t+4>>2]=n;a[t+8>>2]=2;u=t+16|0;a[u>>2]=0;a[u+4>>2]=0;a[u+8>>2]=0;a[u+12>>2]=0;a[u+16>>2]=0;a[u+20>>2]=0;a[t+44>>2]=l;b=e*.013888888888888888;u=a[c>>2]|0;s[u+32>>3]=b;s[u+40>>3]=b;a[u+12>>2]=t;return}function op(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0;n=qF(72)|0;w=a[(a[A+16>>2]|0)+104>>2]|0;u=0;l=1;t=a[47282]|0;A:while(1){c=r[t>>0]|0;switch(c<<24>>24){case 0:break A;case 92:{t=t+1|0;c=r[t>>0]|0;switch(c<<24>>24){case 124:case 125:case 123:case 92:{b=u;break}default:W=4}break}default:W=4}if((W|0)==4){W=0;switch(c<<24>>24){case 123:{b=u+1|0;break}case 125:{b=u+-1|0;break}default:{b=u;l=l+((u|0)==0&c<<24>>24==124&1)|0}}if((b|0)<0)break}u=b;t=t+1|0}Q=n+56|0;a[Q>>2]=qF(l<<2)|0;r[n+64>>0]=e;Z=(e|0)==0&1;G=w+82|0;m=f+1|0;E=(i|0)!=0;C=w+16|0;I=w+4|0;v=w+8|0;c=0;u=0;e=0;g=0;b=0;i=0;w=f;l=0;t=0;A:while(1){o=c;c=0;e:while(1){i:while(1){B=i;r:while(1){d=c;k=l;f:while(1){h=u;a:while(1){while(1){if(g){W=78;break A}u=a[47282]|0;l=r[u>>0]|0;if((l+-1&255)>=31)break;a[47282]=u+1}switch(l<<24>>24|0){case 92:{W=53;break i}case 0:case 124:case 125:break r;case 60:break f;case 62:break a;case 123:break;default:{c=e;l=u;break i}}l=u+1|0;a[47282]=l;if(b|0){W=34;break A}if(!(r[l>>0]|0)){W=34;break A}i=op(A,Z,0,f)|0;a[(a[Q>>2]|0)+(h<<2)>>2]=i;if(!i){W=36;break A}else{h=h+1|0;b=4}}if(r[G>>0]|0){c=e;l=u;break i}if(!(b&16)){W=27;break A}if(k>>>0>m>>>0?(L=k+-1|0,(L|0)!=(B|0)):0)l=(r[L>>0]|0)==32?L:k;else l=k;r[l>>0]=0;d=b3(f)|0;a[47282]=(a[47282]|0)+1;u=h;b=b&-17;k=l}if(b&6|0){W=22;break A}if(r[G>>0]|0){c=e;l=u;break i}a[47282]=u+1;u=h;b=b|18;c=d;B=f;l=f}if(!((b&16|0)==0&(E|l<<24>>24!=0))){W=38;break A}if(!(b&4)){c=qF(72)|0;a[(a[Q>>2]|0)+(h<<2)>>2]=c;u=h+1|0}else{c=o;u=h}if(d|0)a[c+60>>2]=d;if(!(b&5)){r[f+t>>0]=32;b=b|1;t=t+1|0}l=f+t|0;if(b&1){if((t|0)>1?(y=l+-1|0,(y|0)!=(w|0)):0)l=(r[y>>0]|0)==32?y:l;r[l>>0]=0;w=b3(f)|0;a[c+52>>2]=HF(A,w,r[G>>0]|0?2:0,+s[C>>3],a[I>>2]|0,a[v>>2]|0)|0;r[c+64>>0]=1;w=f;t=0}l=a[47282]|0;switch(r[l>>0]|0){case 0:{g=1;i=B;l=k;continue A}case 125:{W=51;break A}default:{}}a[47282]=l+1;o=c;b=0;c=0;i=B;l=k}i:do{if((W|0)==53){W=0;c=f+t|0;l=u+1|0;switch(r[l>>0]|0){case 0:{c=e;l=u;break i}case 62:case 60:case 124:case 125:case 123:{c=e;break}case 32:{if(!(r[G>>0]|0))c=1;else W=55;break}default:W=55}if((W|0)==55){W=0;r[c>>0]=92;c=e;b=b|9;t=t+1|0}a[47282]=l}}while(0);e=f+t|0;if(b&4|0?(r[l>>0]|0)!=32:0){W=59;break A}if(!(b&24))b=(r[l>>0]|0)==32?b:b|9;if(!(b&8))if(!(b&16))i=B;else{u=r[l>>0]|0;e=(c|0)!=0;if(!(e|u<<24>>24!=32))if((k|0)!=(f|0))if((r[k+-1>>0]|0)==32)u=k;else W=73;else u=f;else W=73;if((W|0)==73){W=0;r[k>>0]=u;u=k+1|0;l=a[47282]|0}i=e?u+-1|0:B;k=u}else{u=r[l>>0]|0;i=(c|0)!=0;if(!((!(i|u<<24>>24!=32)?(r[e+-1>>0]|0)==32:0)?(r[G>>0]|0)==0:0)){r[e>>0]=u;t=t+1|0}if(i){i=B;w=f+t+-1|0}else i=B}l=l+1|0;a[47282]=l;while(1){if((r[l>>0]|0)>=0){u=h;e=c;c=d;l=k;continue e}B=l+1|0;a[47282]=B;r[f+t>>0]=r[l>>0]|0;t=t+1|0;l=B}}}if((W|0)==22){vp(n,d);n=0}else if((W|0)==27){vp(n,d);n=0}else if((W|0)==34){vp(n,d);n=0}else if((W|0)==36){vp(n,d);n=0}else if((W|0)==38){vp(n,d);n=0}else if((W|0)==51){a[47282]=l+1;a[n+48>>2]=u}else if((W|0)==59){vp(n,d);n=0}else if((W|0)==78)a[n+48>>2]=h;return n|0}function hp(A,e,i){A=A|0;e=e|0;i=i|0;var f=0.0,n=0.0,l=0.0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0;v=k;k=k+64|0;c=v+48|0;b=v+40|0;u=v+32|0;g=v+16|0;B=v;t=a[i+52>>2]|0;A:do{if(!t){u=g+8|0;w=i+48|0;o=i+56|0;h=i+64|0;d=B+8|0;a[g>>2]=0;a[g+4>>2]=0;a[g+8>>2]=0;a[g+12>>2]=0;t=0;while(1){if((t|0)>=(a[w>>2]|0))break A;hp(B,e,a[(a[o>>2]|0)+(t<<2)>>2]|0);if(!(r[h>>0]|0)){s[u>>3]=+s[u>>3]+ +s[d>>3];c=g;b=+s[g>>3]>+s[B>>3]?g:B}else{s[g>>3]=+s[g>>3]+ +s[B>>3];c=u;b=(+s[u>>3]>+s[d>>3]?g:B)+8|0}s[c>>3]=+s[b>>3];t=t+1|0}}else{n=+s[t+24>>3];f=+s[t+32>>3];if(n>0.0|f>0.0){t=Ho(e,105496)|0;do{if(t){a[c>>2]=b;a[c+4>>2]=u;t=J3(t,105503,c)|0;if((t|0)<=0){l=8.0;n=n+16.0;break}l=+s[b>>3]*72.0;l=+(~~(l+(l>=0.0?.5:-.5))<<1|0);n=n+l;if((t|0)!=1){l=+s[u>>3]*72.0;l=+(~~(l+(l>=0.0?.5:-.5))<<1|0)}}else{l=8.0;n=n+16.0}}while(0);f=l+f}s[g>>3]=n;s[g+8>>3]=f}}while(0);a[i>>2]=a[g>>2];a[i+4>>2]=a[g+4>>2];a[i+8>>2]=a[g+8>>2];a[i+12>>2]=a[g+12>>2];a[A>>2]=a[g>>2];a[A+4>>2]=a[g+4>>2];a[A+8>>2]=a[g+8>>2];a[A+12>>2]=a[g+12>>2];k=v;return}function dp(A,e,i){A=A|0;e=e|0;i=i|0;var f=0.0,n=0,l=0.0,t=0,c=0,b=0,u=0,w=0,o=0,h=0.0,d=0.0,B=0;B=k;k=k+32|0;w=B+16|0;o=B;h=+s[e>>3];l=h-+s[A>>3];d=+s[e+8>>3];f=d-+s[A+8>>3];a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2];e=a[A+52>>2]|0;if(!((i|0)!=0|(e|0)==0)){u=e+40|0;s[u>>3]=+s[u>>3]+l;u=e+48|0;s[u>>3]=+s[u>>3]+f}b=A+48|0;e=a[b>>2]|0;A:do{if(e|0){u=A+64|0;f=((r[u>>0]|0)==0?f:l)/+(e|0);c=A+56|0;t=0;while(1){if((t|0)>=(e|0))break A;A=a[(a[c>>2]|0)+(t<<2)>>2]|0;n=t+1|0;e=~~(f*+(n|0))-~~(f*+(t|0))|0;if(!(r[u>>0]|0))Bp(o,h,+s[A+8>>3]+ +(e|0));else Bp(o,+s[A>>3]+ +(e|0),d);a[w>>2]=a[o>>2];a[w+4>>2]=a[o+4>>2];a[w+8>>2]=a[o+8>>2];a[w+12>>2]=a[o+12>>2];dp(A,w,i);t=n;e=a[b>>2]|0}}}while(0);k=B;return}function Bp(A,e,i){A=A|0;e=+e;i=+i;s[A>>3]=e;s[A+8>>3]=i;return}function gp(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0.0,B=0.0;h=k;k=k+48|0;t=h+32|0;u=h+16|0;b=h;r[A+65>>0]=i;c=A+16|0;B=+s[e>>3];o=e+8|0;d=+s[o>>3];Bp(u,B,d-+s[A+8>>3]);a[c>>2]=a[u>>2];a[c+4>>2]=a[u+4>>2];a[c+8>>2]=a[u+8>>2];a[c+12>>2]=a[u+12>>2];c=A+32|0;Bp(b,+s[A>>3]+B,d);a[c>>2]=a[b>>2];a[c+4>>2]=a[b+4>>2];a[c+8>>2]=a[b+8>>2];a[c+12>>2]=a[b+12>>2];c=a[A+48>>2]|0;b=c+-1|0;u=(i|0)==0;w=A+56|0;l=A+64|0;n=0;while(1){if((n|0)>=(c|0))break;do{if(!u){A=(n|0)==0;f=(n|0)==(b|0);if(!(r[l>>0]|0))if(A){A=f?15:14;break}else{A=f?11:10;break}else if(A){A=f?15:13;break}else{A=f?7:5;break}}else A=0}while(0);f=a[(a[w>>2]|0)+(n<<2)>>2]|0;a[t>>2]=a[e>>2];a[t+4>>2]=a[e+4>>2];a[t+8>>2]=a[e+8>>2];a[t+12>>2]=a[e+12>>2];gp(f,t,A&i);if(!(r[l>>0]|0))s[o>>3]=+s[o>>3]-+s[(a[(a[w>>2]|0)+(n<<2)>>2]|0)+8>>3];else s[e>>3]=+s[a[(a[w>>2]|0)+(n<<2)>>2]>>3]+ +s[e>>3];n=n+1|0}k=h;return}function vp(A,e){A=A|0;e=e|0;Ep(A);L2(e);return}function Ep(A){A=A|0;var e=0,i=0,r=0;i=A+48|0;r=A+56|0;e=0;while(1){if((e|0)>=(a[i>>2]|0))break;Ep(a[(a[r>>2]|0)+(e<<2)>>2]|0);e=e+1|0}L2(a[A+60>>2]|0);TF(a[A+52>>2]|0);L2(a[r>>2]|0);L2(A);return}function Cp(A){A=A|0;var e=0.0,i=0.0;i=+oR(A,a[47146]|0,0.0,.01);e=+oR(A,a[47145]|0,0.0,.02);e=(i>e?i:e)*72.0;return+ +(~~(e+(e>=0.0?.5:-.5))|0)}function Ip(A,e){A=+A;e=+e;var i=0;i=~~(A/e);return+(+((+(i|0)*e+1.0e-05>2]|0)+8>>2]|0;if(!A)A=0;else A=(a[a[A+4>>2]>>2]|0)==91&1;return A|0}function Gp(A){A=A|0;var e=0,i=0,f=0,n=0,l=0;f=a[47283]|0;A:do{if(!f)e=0;else{n=a[47284]|0;i=0;while(1){if((i|0)>=(n|0)){e=0;break A}e=a[f+(i<<2)>>2]|0;l=a[e>>2]|0;if((r[l>>0]|0)==(r[A>>0]|0)?(A1(l,A)|0)==0:0)break A;i=i+1|0}}}while(0);return e|0}function mp(A,e){A=A|0;e=e|0;var i=0,f=0,n=0;if(yR(Ho(e,105526)|0)|0)if((r[A>>0]|0)==101?(A1(A,105685)|0)==0:0){e=101;n=6}else{A=105519;n=4}else n=4;if((n|0)==4){e=r[A>>0]|0;if(e<<24>>24==99)if(!(A1(A,105519)|0))n=11;else{e=99;n=6}else n=6}A:do{if((n|0)==6){i=20848;while(1){f=a[i>>2]|0;if(!f){n=11;break A}if((r[f>>0]|0)==e<<24>>24?(A1(f,A)|0)==0:0){A=i;break A}i=i+16|0}}}while(0);if((n|0)==11)A=Qp(A)|0;return A|0}function Qp(A){A=A|0;var e=0,i=0,f=0,n=0,l=0;l=k;k=k+16|0;n=l;e=Gp(A)|0;if(!e){f=a[47284]|0;e=f+1|0;a[47284]=e;i=a[47283]|0;if(!i)e=$F(e<<2)|0;else e=eV(i,e<<2)|0;a[47283]=e;e=qF(16)|0;a[(a[47283]|0)+(f<<2)>>2]=e;a[e>>2]=a[5212];a[e+4>>2]=a[5213];a[e+8>>2]=a[5214];a[e+12>>2]=a[5215];i=b3(A)|0;a[e>>2]=i;do{if(true){if((r[A>>0]|0)==99?(A1(A,105519)|0)==0:0){i=1;break}a[n>>2]=a[5212];a[n+4>>2]=i;ao(0,105690,n)|0;i=0}else{}}while(0);r[e+12>>0]=i}k=l;return e|0}function Lp(A,e){A=A|0;e=e|0;var i=0.0,r=0.0;r=+s[e>>3]*.5257311121191336;i=+s[e+8>>3]*.8944271909999159;i=r>i?r:i;s[A>>3]=i*4.97979656976556;s[A+8>>3]=i*4.73606797749979;return}function yp(A,e){A=A|0;e=e|0;var i=0.0,r=0.0,f=0.0,a=0,n=0.0,l=0.0,t=0.0,c=0,b=0,u=0.0;r=+s[e>>3];c=e+8|0;f=+s[c>>3];i=f/r;if(!(i>.9510565162951536))if(i<.9510565162951536){t=r;f=r*.9510565162951536}else t=r;else t=f*1.0514622242382672;r=t*.5257311121191336;n=t*.20081141588622725;l=t*.05020285397155681;i=.3141592653589793;a=0;while(1){if((a|0)>=10)break;s[A+(a<<4)>>3]=+D(+i)*r;s[A+(a<<4)+8>>3]=+M(+i)*r-l;u=i+.6283185307179586;b=a|1;s[A+(b<<4)>>3]=+D(+u)*n;s[A+(b<<4)+8>>3]=+M(+u)*n-l;i=i+1.2566370614359172;a=a+2|0}s[e>>3]=t;s[c>>3]=f;return}function Wp(A){A=A|0;A=a[(a[A+16>>2]|0)+12>>2]|0;if(A|0){L2(a[A+44>>2]|0);L2(A)}return}function zp(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;w=k;k=k+80|0;s=w+40|0;n=w;u=w+64|0;l=w+56|0;if(!(r[i>>0]|0)){n=4208;l=A+40|0;do{a[A>>2]=a[n>>2];A=A+4|0;n=n+4|0}while((A|0)<(l|0))}else{t=(f|0)==0?106356:f;a[u>>2]=15;c=e+16|0;f=a[c>>2]|0;do{if(r[(a[f+104>>2]|0)+82>>0]|0){f=ta(e,i,u)|0;if(!f){f=a[c>>2]|0;b=8;break}if(Tp(e,f,n,t,a[u>>2]|0,0)|0){a[s>>2]=Vh(e)|0;a[s+4>>2]=i;a[s+8>>2]=t;ao(0,106358,s)|0}}else b=8}while(0);if((b|0)==8){if((a[(a[f+8>>2]|0)+8>>2]|0)==1664)l=0;else{a[l>>2]=e;a[l+4>>2]=0}if(Tp(e,0,n,i,a[u>>2]|0,l)|0)jp(e,i)}a[n+36>>2]=0;l=A+40|0;do{a[A>>2]=a[n>>2];A=A+4|0;n=n+4|0}while((A|0)<(l|0))}k=w;return}function Yp(A,e){A=A|0;e=e|0;var i=0.0,r=0.0,f=0,n=0,l=0,t=0.0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0.0,g=0;d=k;k=k+112|0;u=d+96|0;b=d+80|0;o=d+64|0;c=d+48|0;h=d+32|0;w=d;f=d+16|0;if(!A){a[47287]=0;A=0}else{n=a[A+4>>2]|0;A=a[A>>2]|0;l=(a[(a[(Id(A)|0)+16>>2]|0)+116>>2]&3)*90|0;a[u>>2]=a[e>>2];a[u+4>>2]=a[e+4>>2];a[u+8>>2]=a[e+8>>2];a[u+12>>2]=a[e+12>>2];yF(f,u,l);a[h>>2]=a[f>>2];a[h+4>>2]=a[f+4>>2];a[h+8>>2]=a[f+8>>2];a[h+12>>2]=a[f+12>>2];A:do{if(n){i=+s[n+8>>3];r=+s[n+24>>3];B=+s[h>>3];if((+s[n>>3]<=B?B<=+s[n+16>>3]:0)?(t=+s[h+8>>3],i<=t):0)A=t<=r&1;else A=0}else{if((A|0)==(a[47287]|0)){f=a[47288]|0;n=a[47290]|0;l=a[47289]|0}else{n=a[(a[A+16>>2]|0)+12>>2]|0;a[47291]=n;l=a[n+44>>2]|0;a[47289]=l;f=a[n+8>>2]|0;a[47288]=f;n=U((a[n+4>>2]|0)+-1|0,f)|0;n=(n|0)>0?n:0;a[47290]=n;a[47287]=A}A=0;e=0;while(1){if((A|0)>=(f|0)){A=1;break A}g=l+(n+A<<4)|0;a[w>>2]=a[g>>2];a[w+4>>2]=a[g+4>>2];a[w+8>>2]=a[g+8>>2];a[w+12>>2]=a[g+12>>2];g=l+(n+((A+4|0)%(f|0)|0)<<4)|0;a[c>>2]=a[h>>2];a[c+4>>2]=a[h+4>>2];a[c+8>>2]=a[h+8>>2];a[c+12>>2]=a[h+12>>2];a[o>>2]=a[46614];a[o+4>>2]=a[46615];a[o+8>>2]=a[46616];a[o+12>>2]=a[46617];a[b>>2]=a[w>>2];a[b+4>>2]=a[w+4>>2];a[b+8>>2]=a[w+8>>2];a[b+12>>2]=a[w+12>>2];a[u>>2]=a[g>>2];a[u+4>>2]=a[g+4>>2];a[u+8>>2]=a[g+8>>2];a[u+12>>2]=a[g+12>>2];e=e+((xp(c,o,b,u)|0)==0&1)|0;if((e|0)==2){A=0;break}else A=A+2|0}}}while(0)}k=d;return A|0}function Dp(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;i=a[A+16>>2]|0;if((r[(a[i+104>>2]|0)+82>>0]|0)!=0?(r[i+145>>0]|0)!=0:0)A=ba(A,e,0,f,n)|0;else A=0;return A|0}function Mp(A,e){A=A|0;e=e|0;var i=0,l=0,t=0.0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0.0,L=0.0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0;R=k;k=k+48|0;D=R+24|0;Y=R+16|0;m=R+8|0;G=R;J=R+32|0;u=R+28|0;p=a[A+16>>2]|0;N=p+208|0;i=a[N>>2]|0;if((i|0)==0?(f[p+260>>1]&1)==0:0)F=0;else W=4;if((W|0)==4)if(!(a[A+152>>2]&4)){Si(A,i,a[p+228>>2]|0,a[p+244>>2]|0,a[p+212>>2]|0);F=1}else F=1;M=e+16|0;i=a[M>>2]|0;d=a[i+12>>2]|0;z=a[d+44>>2]|0;V=a[d+8>>2]|0;d=a[d+4>>2]|0;if((a[47285]|0)<(V|0)){i=V+5|0;a[47285]=i;l=a[47286]|0;if(!l)i=$F(i<<4)|0;else i=eV(l,i<<4)|0;a[47286]=i;i=a[M>>2]|0}y=(a[i+104>>2]|0)+56|0;i=i+16|0;a[y>>2]=a[i>>2];a[y+4>>2]=a[i+4>>2];a[y+8>>2]=a[i+8>>2];a[y+12>>2]=a[i+12>>2];y=a[M>>2]|0;Q=+s[y+32>>3]*72.0;Q=(+s[y+96>>3]+ +s[y+88>>3])/+(~~(Q+(Q>=0.0?.5:-.5))|0);L=+s[y+40>>3]*72.0;L=+s[y+80>>3]/+(~~(L+(L>=0.0?.5:-.5))|0);y=Fp(A,e)|0;a[J>>2]=0;i=n[(a[M>>2]|0)+117>>0]|0;do{if(!(i&1)){if(i&2|0){B=BR(e,0,106256)|0;$i(A,B);er(A,BR(e,0,106264)|0);l=0;i=1;break}if(i&8|0){B=BR(e,0,106272)|0;$i(A,B);er(A,BR(e,0,106280)|0);l=0;i=1;break}if(i&4|0){B=BR(e,0,106288)|0;$i(A,B);er(A,BR(e,0,106296)|0);l=0;i=1;break}if(!(y&1))if(!(y&576)){l=0;i=0}else{l=Vp(e)|0;i=1}else{l=Vp(e)|0;if(!((qM(l,J,u)|0)<<24>>24)){er(A,l);i=1}else{er(A,a[J>>2]|0);i=a[J+4>>2]|0;b=kR(e,a[47173]|0,0,0)|0;t=+c[u>>2];if(!i)ir(A,137314,b,t);else ir(A,i,b,t);i=(y&2)>>>1|2}}B=Jp(A,e)|0}else{B=BR(e,0,106240)|0;$i(A,B);er(A,BR(e,0,106248)|0);l=0;i=1}}while(0);b=a[(a[M>>2]|0)+8>>2]|0;if(r[b+12>>0]|0){b=a[b>>2]|0;if((r[b>>0]|0)==99){b=(A1(b,105519)|0)==0;W=33}else v=1}else{b=1;W=33}if((W|0)==33){b=b^1;if((d|0)!=0|i<<24>>24==0|b)v=b;else{$i(A,137379);d=1;v=0}}E=(V|0)<3;C=(y&512|0)!=0;Z=(y&8|0)==0;I=(y&64|0)==0;o=(y&1024|0)==0;h=(y&2130706444|0)==0;g=0;while(1){if((g|0)>=(d|0))break;u=U(g,V)|0;w=a[47286]|0;b=0;while(1){if((b|0)>=(V|0))break;H=b+u|0;t=+s[z+(H<<4)+8>>3];X=a[M>>2]|0;s[w+(b<<4)>>3]=+s[X+16>>3]+ +s[z+(H<<4)>>3]*Q;s[w+(b<<4)+8>>3]=+s[X+24>>3]+t*L;b=b+1|0}do{if(E){if(C&(g|0)==0?(G1(l,58)|0)!=0:0)if((aI(A,w,l)|0)>1){a[G>>2]=Vh(e)|0;ao(3,106304,G)|0;i=0}else i=0;fr(A,a[47286]|0,V,i&255);if(!Z)pp(A,e)}else{if(!I){if((g|0)==0?(cI(A,w,l,1)|0)>1:0){a[m>>2]=Vh(e)|0;ao(3,106304,m)|0}ar(A,a[47286]|0,V,0);break}if(!o){$i(A,137379);ar(A,a[47286]|0,V,i&255);$i(A,B);tr(A,(a[47286]|0)+32|0,2);break}i=i&255;if(h){ar(A,w,V,i);break}else{tp(A,w,V,y,i);break}}}while(0);g=g+1|0;i=0}b=a[(a[M>>2]|0)+8>>2]|0;if(!(r[b+12>>0]|0)){b=Ho(e,109025)|0;if(b|0?r[b>>0]|0:0){w=b;W=65}}else{b=a[b>>2]|0;if((r[b>>0]|0)==99?(A1(b,105519)|0)==0:0){b=Ho(e,105526)|0;if(b|0?r[b>>0]|0:0){w=b;W=65}}else{w=b;W=65}}if((W|0)==65){u=a[47286]|0;b=0;while(1){if((b|0)>=(V|0))break;t=+s[z+(b<<4)+8>>3];H=a[M>>2]|0;s[u+(b<<4)>>3]=+s[H+16>>3]+ +s[z+(b<<4)>>3]*Q;s[u+(b<<4)+8>>3]=+s[H+24>>3]+t*L;b=b+1|0}b=i&255;do{if(!(v|i<<24>>24==0)){if(E){if(C&(g|0)==0?(G1(l,58)|0)!=0:0)if((aI(A,u,l)|0)>1){a[Y>>2]=Vh(e)|0;ao(3,106304,Y)|0;i=0}else i=0;fr(A,a[47286]|0,V,i&255);if(Z)break;pp(A,e);break}if(I)if(!(y&12)){ar(A,u,V,b);break}else{tp(A,u,V,y,b);break}else{if((cI(A,u,l,1)|0)>1){a[D>>2]=Vh(e)|0;ao(3,106304,D)|0}ar(A,a[47286]|0,V,0);break}}}while(0);H=a[47286]|0;sr(A,w,H,V,i,dR(e,a[47166]|0,137308)|0)}L2(a[J>>2]|0);jF(A,10,a[(a[M>>2]|0)+104>>2]|0);if(F){if(a[A+152>>2]&4|0)Si(A,a[N>>2]|0,a[p+228>>2]|0,a[p+244>>2]|0,a[p+212>>2]|0);Oi(A)}k=R;return}function Fp(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0;l=k;k=k+16|0;f=l;i=Xp(e,f)|0;if(i|0)rr(A,i);i=a[47172]|0;if((i|0?(n=Uo(e,i)|0,n|0):0)?r[n>>0]|0:0)ur(A,+oR(e,a[47172]|0,1.0,0.0));k=l;return a[f>>2]|0}function Vp(A){A=A|0;return Rp(A,134800)|0}function Jp(A,e){A=A|0;e=e|0;e=BR(e,a[47148]|0,195059)|0;e=r[e>>0]|0?e:137314;$i(A,e);return e|0}function pp(A,e){A=A|0;e=e|0;var i=0,r=0,f=0.0,n=0,l=0.0,t=0,c=0,b=0;i=k;k=k+96|0;t=i+80|0;c=i+64|0;r=i+32|0;b=i+16|0;n=i;e=a[e+16>>2]|0;f=+s[e+80>>3];s[b+8>>3]=f*.375;l=+s[e+96>>3];s[b>>3]=l*.6614;e=e+16|0;a[c>>2]=a[b>>2];a[c+4>>2]=a[b+4>>2];a[c+8>>2]=a[b+8>>2];a[c+12>>2]=a[b+12>>2];a[t>>2]=a[e>>2];a[t+4>>2]=a[e+4>>2];a[t+8>>2]=a[e+8>>2];a[t+12>>2]=a[e+12>>2];Np(n,c,t);a[r>>2]=a[n>>2];a[r+4>>2]=a[n+4>>2];a[r+8>>2]=a[n+8>>2];a[r+12>>2]=a[n+12>>2];n=r+8|0;e=r+24|0;s[e>>3]=+s[n>>3];s[r+16>>3]=+s[r>>3]-l*1.3228;tr(A,r,2);f=+s[n>>3]-f*.75;s[n>>3]=f;s[e>>3]=f;tr(A,r,2);k=i;return}function Np(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0;r=+s[i+8>>3]+ +s[e+8>>3];s[A>>3]=+s[i>>3]+ +s[e>>3];s[A+8>>3]=r;return}function Rp(A,e){A=A|0;e=e|0;var i=0;i=BR(A,a[47149]|0,195059)|0;if(!(r[i>>0]|0)){i=BR(A,a[47148]|0,195059)|0;return((r[i>>0]|0)==0?e:i)|0}else return i|0;return 0}function Xp(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0;i=BR(A,a[47157]|0,195059)|0;A:do{if(!(r[i>>0]|0)){n=0;i=0}else{n=XI(i)|0;l=n;i=0;e:while(1){f=a[l>>2]|0;if(!f)break A;switch(r[f>>0]|0){case 102:{if(!(A1(f,111101)|0)){l=l+4|0;i=i|1;continue e}break}case 114:{if(!(A1(f,106316)|0)){f=l;do{c=f;f=f+4|0;t=a[f>>2]|0;a[c>>2]=t}while((t|0)!=0);c=l;i=i|4;l=c;continue e}if(!(A1(f,106334)|0)){f=l;do{t=f;f=f+4|0;c=a[f>>2]|0;a[t>>2]=c}while((c|0)!=0);c=l;i=i|3;l=c;continue e}break}case 100:{if(!(A1(f,106324)|0)){f=l;do{t=f;f=f+4|0;c=a[f>>2]|0;a[t>>2]=c}while((c|0)!=0);c=l;i=i|8;l=c;continue e}break}case 105:{if(!(A1(f,134335)|0)){l=l+4|0;i=i|32;continue e}break}case 115:{if((A1(f,106341)|0)==0?Hp(A)|0:0){f=l;do{t=f;f=f+4|0;c=a[f>>2]|0;a[t>>2]=c}while((c|0)!=0);c=l;i=i|64;l=c;continue e}break}case 119:{if((A1(f,106349)|0)==0?Up(A)|0:0){f=l;do{t=f;f=f+4|0;c=a[f>>2]|0;a[t>>2]=c}while((c|0)!=0);c=l;i=i|512;l=c;continue e}break}default:{}}l=l+4|0}}}while(0);f=a[(a[(a[A+16>>2]|0)+8>>2]|0)+8>>2]|0;if(f)i=a[f+40>>2]|i;a[e>>2]=i;return n|0}function Hp(A){A=A|0;var e=0.0;A=a[(a[(a[A+16>>2]|0)+8>>2]|0)+8>>2]|0;if((((A|0)!=0?(a[A+8>>2]|0)==4:0)?(e=+s[A+16>>3],((~~(e+(e>=0.0?.5:-.5))|0)%90|0|0)==0):0)?+s[A+24>>3]==0.0:0)A=+s[A+32>>3]==0.0&1;else A=0;return A|0}function Up(A){A=A|0;A=a[(a[(a[A+16>>2]|0)+8>>2]|0)+8>>2]|0;if(!A)A=0;else A=(a[A+8>>2]|0)<3&1;return A|0}function xp(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,a=0.0,n=0.0,l=0.0;l=+s[i+8>>3];n=-(+s[r+8>>3]-l);a=+s[i>>3];f=+s[r>>3]-a;a=f*l+a*n;return(+s[A+8>>3]*f+ +s[A>>3]*n-a>=0.0^+s[e>>3]*n-a+ +s[e+8>>3]*f>=0.0^1)&1|0}function Tp(A,e,i,f,n,l){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;l=l|0;var t=0.0,c=0.0,b=0,u=0,w=0,o=0,h=0.0,d=0.0,B=0.0,g=0.0,v=0.0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0;Y=k;k=k+192|0;Q=Y+176|0;W=Y+160|0;b=Y+144|0;G=Y+128|0;m=Y+112|0;u=Y+96|0;w=Y+80|0;o=Y+64|0;E=Y+48|0;C=Y+32|0;I=Y+16|0;y=Y;if(!e){a[W>>2]=0;a[W+4>>2]=0;a[W+8>>2]=0;a[W+12>>2]=0;b=(a[(a[(Id(A)|0)+16>>2]|0)+116>>2]&1|0)==0;L=a[A+16>>2]|0;h=+s[L+80>>3]*.5;t=+s[L+88>>3];g=b?h:t;h=b?t:h;b=0;L=W;t=0.0;c=-h;d=g;z=W+8|0;B=0.0;g=-g}else{c=+s[e>>3];g=+s[e+8>>3];h=+s[e+16>>3];d=+s[e+24>>3];Bp(b,(h+c)*.5,(d+g)*.5);a[W>>2]=a[b>>2];a[W+4>>2]=a[b+4>>2];a[W+8>>2]=a[b+8>>2];a[W+12>>2]=a[b+12>>2];D=W+8|0;b=1;L=W;t=+s[W>>3];z=D;B=+s[D>>3]}v=(h>d?h:d)*4.0;A:do{if((f|0)!=0?(Z=r[f>>0]|0,Z<<24>>24!=0):0){f=f+1|0;switch(Z<<24>>24|0){case 99:{o=1;n=0;f=0;u=0;t=0.0;w=0;break A}case 101:{if(r[f>>0]|0){o=1;n=0;f=0;u=0;t=0.0;w=1;break A}if(!l)s[L>>3]=h;else{Pp(G,l,B,v);a[W>>2]=a[G>>2];a[W+4>>2]=a[G+4>>2];a[W+8>>2]=a[G+8>>2];a[W+12>>2]=a[G+12>>2]}o=0;n=n&2;f=0;u=1;t=0.0;w=0;b=1;break A}case 115:{s[z>>3]=g;switch(r[f>>0]|0){case 0:{if(!l)s[L>>3]=t;else{Pp(m,l,-v,t);a[W>>2]=a[m>>2];a[W+4>>2]=a[m+4>>2];a[W+8>>2]=a[m+8>>2];a[W+12>>2]=a[m+12>>2]}o=0;n=n&1;f=0;u=1;t=-1.5707963267948966;w=0;b=1;break A}case 101:{if(!l)s[L>>3]=h;else{Pp(u,l,-v,v);a[W>>2]=a[u>>2];a[W+4>>2]=a[u+4>>2];a[W+8>>2]=a[u+8>>2];a[W+12>>2]=a[u+12>>2]}o=0;n=n&3;f=0;u=1;t=-.7853981633974483;w=0;b=1;break A}case 119:{if(!l)s[L>>3]=c;else{v=-v;Pp(w,l,v,v);a[W>>2]=a[w>>2];a[W+4>>2]=a[w+4>>2];a[W+8>>2]=a[w+8>>2];a[W+12>>2]=a[w+12>>2]}o=0;n=n&9;f=0;u=1;t=-2.356194490192345;w=0;b=1;break A}default:{s[z>>3]=B;o=1;n=0;f=0;u=0;t=0.0;w=1;break A}}}case 119:{if(r[f>>0]|0){o=1;n=0;f=0;u=0;t=0.0;w=1;break A}if(!l)s[L>>3]=c;else{Pp(o,l,B,-v);a[W>>2]=a[o>>2];a[W+4>>2]=a[o+4>>2];a[W+8>>2]=a[o+8>>2];a[W+12>>2]=a[o+12>>2]}o=0;n=n&8;f=0;u=1;t=3.141592653589793;w=0;b=1;break A}case 110:{s[z>>3]=d;switch(r[f>>0]|0){case 0:{if(!l)s[L>>3]=t;else{Pp(E,l,v,t);a[W>>2]=a[E>>2];a[W+4>>2]=a[E+4>>2];a[W+8>>2]=a[E+8>>2];a[W+12>>2]=a[E+12>>2]}o=0;n=n&4;f=0;u=1;t=1.5707963267948966;w=0;b=1;break A}case 101:{if(!l)s[L>>3]=h;else{Pp(C,l,v,v);a[W>>2]=a[C>>2];a[W+4>>2]=a[C+4>>2];a[W+8>>2]=a[C+8>>2];a[W+12>>2]=a[C+12>>2]}o=0;n=n&6;f=0;u=1;t=.7853981633974483;w=0;b=1;break A}case 119:{if(!l)s[L>>3]=c;else{Pp(I,l,v,-v);a[W>>2]=a[I>>2];a[W+4>>2]=a[I+4>>2];a[W+8>>2]=a[I+8>>2];a[W+12>>2]=a[I+12>>2]}o=0;n=n&12;f=0;u=1;t=2.356194490192345;w=0;b=1;break A}default:{s[z>>3]=B;o=1;n=0;f=0;u=0;t=0.0;w=1;break A}}}case 95:{o=1;f=1;u=0;t=0.0;w=0;break A}default:{o=1;n=0;f=0;u=0;t=0.0;w=1;break A}}}else{o=1;n=0;f=0;u=0;t=0.0;w=0}}while(0);D=(a[(a[(Id(A)|0)+16>>2]|0)+116>>2]&3)*90|0;a[Q>>2]=a[W>>2];a[Q+4>>2]=a[W+4>>2];a[Q+8>>2]=a[W+8>>2];a[Q+12>>2]=a[W+12>>2];LF(y,Q,D);a[W>>2]=a[y>>2];a[W+4>>2]=a[y+4>>2];a[W+8>>2]=a[y+8>>2];a[W+12>>2]=a[y+12>>2];if(!(f<<24>>24))n=Sp(n,a[(a[(Id(A)|0)+16>>2]|0)+116>>2]&3)|0;r[i+33>>0]=n;a[i+24>>2]=e;c=+s[L>>3];s[i>>3]=+(~~(c+(c>=0.0?.5:-.5))|0);c=+s[z>>3];s[i+8>>3]=+(~~(c+(c>=0.0?.5:-.5))|0);s[i+16>>3]=+Op(t,a[(a[(Id(A)|0)+16>>2]|0)+116>>2]&3);c=+s[L>>3];t=+s[z>>3];if(c==0.0&t==0.0)n=-128;else{v=+N(+t,+c);g=v+4.71238898038469;n=~~((!(g>=6.283185307179586)?g:v+-1.5707963267948966)*40.74366543152521)&255}r[i+32>>0]=n;r[i+29>>0]=u;r[i+28>>0]=b;r[i+30>>0]=o;r[i+31>>0]=f;k=Y;return w|0}function jp(A,e){A=A|0;e=e|0;var i=0,r=0;i=k;k=k+16|0;r=i;a[r>>2]=Vh(A)|0;a[r+4>>2]=e;ao(0,106419,r)|0;k=i;return}function Pp(A,e,i,r){A=A|0;e=e|0;i=+i;r=+r;var f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0;o=k;k=k+128|0;n=o+112|0;t=o+48|0;c=o+16|0;b=o+32|0;u=o;w=a[e>>2]|0;l=a[(a[(Id(w)|0)+16>>2]|0)+116>>2]&3;s[c>>3]=r;s[c+8>>3]=i;f=(l|0)!=0;if(f){a[n>>2]=a[c>>2];a[n+4>>2]=a[c+4>>2];a[n+8>>2]=a[c+8>>2];a[n+12>>2]=a[c+12>>2];LF(b,n,l*90|0);a[c>>2]=a[b>>2];a[c+4>>2]=a[b+4>>2];a[c+8>>2]=a[b+8>>2];a[c+12>>2]=a[b+12>>2]}b=t+48|0;h=t+32|0;a[t>>2]=0;a[t+4>>2]=0;a[t+8>>2]=0;a[t+12>>2]=0;a[t+16>>2]=0;a[t+20>>2]=0;a[t+24>>2]=0;a[t+28>>2]=0;a[h>>2]=a[c>>2];a[h+4>>2]=a[c+4>>2];a[h+8>>2]=a[c+8>>2];a[h+12>>2]=a[c+12>>2];a[b>>2]=a[c>>2];a[b+4>>2]=a[c+4>>2];a[b+8>>2]=a[c+8>>2];a[b+12>>2]=a[c+12>>2];hN(e,a[(a[(a[(a[w+16>>2]|0)+8>>2]|0)+4>>2]|0)+12>>2]|0,t,1);if(f){a[n>>2]=a[t>>2];a[n+4>>2]=a[t+4>>2];a[n+8>>2]=a[t+8>>2];a[n+12>>2]=a[t+12>>2];yF(u,n,l*90|0);a[t>>2]=a[u>>2];a[t+4>>2]=a[u+4>>2];a[t+8>>2]=a[u+8>>2];a[t+12>>2]=a[u+12>>2]}a[A>>2]=a[t>>2];a[A+4>>2]=a[t+4>>2];a[A+8>>2]=a[t+8>>2];a[A+12>>2]=a[t+12>>2];k=o;return}function Sp(A,e){A=A|0;e=e|0;A:do{switch(e|0){case 3:switch(A|0){case 4:{A=2;break A}case 1:{A=8;break A}case 8:{A=1;break A}case 2:{A=4;break A}default:break A}case 2:switch(A|0){case 4:{A=1;break A}case 1:{A=4;break A}default:break A}case 1:switch(A|0){case 4:{A=2;break A}case 1:{A=8;break A}case 8:{A=4;break A}case 2:{A=1;break A}default:break A}default:{}}}while(0);return A|0}function Op(A,e){A=+A;e=e|0;switch(e|0){case 3:{if(!(A==3.141592653589793))if(!(A==2.356194490192345))if(!(A==1.5707963267948966))if(!(A==0.0))if(!(A==-.7853981633974483)){if(A==-1.5707963267948966)A=3.141592653589793}else A=2.356194490192345;else A=1.5707963267948966;else A=0.0;else A=-.7853981633974483;else A=-1.5707963267948966;break}case 2:{A=-A;break}case 1:{A=A+-1.5707963267948966;break}default:{}}return+A}function Kp(A,e){A=A|0;e=e|0;var i=0.0,r=0,f=0.0,n=0.0,l=0,t=0,c=0;r=k;k=k+32|0;c=r+16|0;l=r;A=a[A>>2]|0;t=(a[(a[(Id(A)|0)+16>>2]|0)+116>>2]&3)*90|0;a[c>>2]=a[e>>2];a[c+4>>2]=a[e+4>>2];a[c+8>>2]=a[e+8>>2];a[c+12>>2]=a[e+12>>2];yF(l,c,t);i=+s[l>>3];n=+s[l+8>>3];A=a[A+16>>2]|0;f=+s[A+80>>3]*.5;if(!(!(n>=-f)|!(n<=f))?i>=-+s[A+88>>3]:0)A=i<=+s[A+96>>3]&1;else A=0;k=r;return A|0}function _p(A,e){A=A|0;e=e|0;var i=0,r=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0.0;u=k;k=k+32|0;b=u;l=a[A+16>>2]|0;t=l+208|0;n=a[t>>2]|0;if(!n)c=(f[l+260>>1]&1)!=0;else c=1;i=e+16|0;e=a[i>>2]|0;r=a[e+12>>2]|0;if(r|0){if(c?(a[A+152>>2]&4|0)==0:0){Si(A,n,a[l+228>>2]|0,a[l+244>>2]|0,a[l+212>>2]|0);e=a[i>>2]|0}n=a[A+36>>2]|0;o=+s[e+24>>3]+ +(a[r+8>>2]|0);w=a[r>>2]|0;s[b>>3]=+s[e+16>>3]+ +(a[r+4>>2]|0);s[b+8>>3]=o;a[b+16>>2]=w;f3(n,106450,b)|0;n=a[i>>2]|0;b=(a[n+104>>2]|0)+56|0;n=n+16|0;a[b>>2]=a[n>>2];a[b+4>>2]=a[n+4>>2];a[b+8>>2]=a[n+8>>2];a[b+12>>2]=a[n+12>>2];jF(A,10,a[(a[i>>2]|0)+104>>2]|0);if(c){if(a[A+152>>2]&4|0)Si(A,a[t>>2]|0,a[l+228>>2]|0,a[l+244>>2]|0,a[l+212>>2]|0);Oi(A)}}k=u;return}function qp(A){A=A|0;Ep(a[(a[A+16>>2]|0)+12>>2]|0);return}function $p(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;b=k;k=k+64|0;s=b+40|0;l=b;if(!(r[i>>0]|0)){l=4208;f=A+40|0;do{a[A>>2]=a[l>>2];A=A+4|0;l=l+4|0}while((A|0)<(f|0))}else{f=(f|0)==0?106356:f;t=a[(a[e+16>>2]|0)+12>>2]|0;c=aN(t,i)|0;if(!c){if(Tp(e,t+16|0,l,i,15,0)|0)jp(e,i)}else if(Tp(e,c+16|0,l,f,n[c+65>>0]|0,0)|0){a[s>>2]=Vh(e)|0;a[s+4>>2]=i;a[s+8>>2]=f;ao(0,106358,s)|0}f=A+40|0;do{a[A>>2]=a[l>>2];A=A+4|0;l=l+4|0}while((A|0)<(f|0))}k=b;return}function AN(A,e){A=A|0;e=e|0;var i=0.0,r=0.0,f=0,n=0,l=0,t=0.0,c=0,b=0,u=0.0;c=k;k=k+32|0;b=c+16|0;l=c;f=a[A+4>>2]|0;A=a[A>>2]|0;n=(a[(a[(Id(A)|0)+16>>2]|0)+116>>2]&3)*90|0;a[b>>2]=a[e>>2];a[b+4>>2]=a[e+4>>2];a[b+8>>2]=a[e+8>>2];a[b+12>>2]=a[e+12>>2];yF(l,b,n);a[e>>2]=a[l>>2];a[e+4>>2]=a[l+4>>2];a[e+8>>2]=a[l+8>>2];a[e+12>>2]=a[l+12>>2];if(!f){f=a[(a[A+16>>2]|0)+12>>2]|0;n=f+16|0;A=f+24|0;l=f+32|0;f=f+40|0}else{n=f;A=f+8|0;l=f+16|0;f=f+24|0}r=+s[A>>3];i=+s[f>>3];u=+s[e>>3];if((+s[n>>3]<=u?u<=+s[l>>3]:0)?(t=+s[e+8>>3],r<=t):0)A=t<=i&1;else A=0;k=c;return A|0}function eN(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0.0,t=0.0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0.0,g=0,v=0,E=0.0;v=k;k=k+80|0;d=v+64|0;h=v+32|0;g=v;A:do{if(!(r[e+28>>0]|0))i=0;else{l=+s[e>>3];o=A+16|0;b=a[(a[o>>2]|0)+12>>2]|0;c=b+48|0;b=b+56|0;e=0;while(1){if((e|0)>=(a[c>>2]|0))break A;u=(a[(a[(Id(A)|0)+16>>2]|0)+116>>2]&1|0)==0;w=a[(a[b>>2]|0)+(e<<2)>>2]|0;t=+(~~+s[(u?w+16|0:w+24|0)>>3]|0);if(l>=t?(B=+(~~+s[(u?w+32|0:w+40|0)>>3]|0),l<=B):0)break;e=e+1|0}if(!(a[(a[(Id(A)|0)+16>>2]|0)+116>>2]&1)){g=a[o>>2]|0;E=+s[g+16>>3];s[f>>3]=E+t;t=+s[g+24>>3];l=+s[g+80>>3];s[f+8>>3]=t-l*.5;s[f+16>>3]=E+B}else{w=(a[(a[b>>2]|0)+(e<<2)>>2]|0)+16|0;A=(a[o>>2]|0)+16|0;a[h>>2]=a[w>>2];a[h+4>>2]=a[w+4>>2];a[h+8>>2]=a[w+8>>2];a[h+12>>2]=a[w+12>>2];a[h+16>>2]=a[w+16>>2];a[h+20>>2]=a[w+20>>2];a[h+24>>2]=a[w+24>>2];a[h+28>>2]=a[w+28>>2];a[d>>2]=a[A>>2];a[d+4>>2]=a[A+4>>2];a[d+8>>2]=a[A+8>>2];a[d+12>>2]=a[A+12>>2];WF(g,h,d);a[f>>2]=a[g>>2];a[f+4>>2]=a[g+4>>2];a[f+8>>2]=a[g+8>>2];a[f+12>>2]=a[g+12>>2];a[f+16>>2]=a[g+16>>2];a[f+20>>2]=a[g+20>>2];a[f+24>>2]=a[g+24>>2];a[f+28>>2]=a[g+28>>2];g=a[o>>2]|0;l=+s[g+80>>3];t=+s[g+24>>3]}s[f+24>>3]=l*.5+t;a[n>>2]=1}}while(0);k=v;return i|0}function iN(A,e){A=A|0;e=e|0;var i=0,n=0,l=0,t=0.0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0.0;C=k;k=k+144|0;u=C+96|0;o=C+64|0;d=C;B=C+128|0;g=a[A+16>>2]|0;v=g+208|0;i=a[v>>2]|0;if(!i)E=(f[g+260>>1]&1)!=0;else E=1;b=e+16|0;h=a[b>>2]|0;w=a[h+12>>2]|0;l=w+16|0;a[o>>2]=a[l>>2];a[o+4>>2]=a[l+4>>2];a[o+8>>2]=a[l+8>>2];a[o+12>>2]=a[l+12>>2];a[o+16>>2]=a[l+16>>2];a[o+20>>2]=a[l+20>>2];a[o+24>>2]=a[l+24>>2];a[o+28>>2]=a[l+28>>2];I=+s[h+16>>3];s[o>>3]=+s[o>>3]+I;t=+s[h+24>>3];h=o+8|0;s[h>>3]=+s[h>>3]+t;h=o+16|0;s[h>>3]=+s[h>>3]+I;l=o+24|0;s[l>>3]=+s[l>>3]+t;if(E?(a[A+152>>2]&4|0)==0:0)Si(A,i,a[g+228>>2]|0,a[g+244>>2]|0,a[g+212>>2]|0);i=Fp(A,e)|0;Jp(A,e)|0;a[B>>2]=0;if(!(i&1))n=0;else{n=Vp(e)|0;if(!((qM(n,B,u)|0)<<24>>24)){er(A,n);n=1}else{er(A,a[B>>2]|0);n=a[B+4>>2]|0;l=kR(e,a[47173]|0,0,0)|0;t=+c[u>>2];if(!n)ir(A,137314,l,t);else ir(A,n,l,t);n=i>>>1&1|2}}l=a[a[(a[b>>2]|0)+8>>2]>>2]|0;if((r[l>>0]|0)==77){b=(A1(l,106227)|0)==0;i=b?i|4:i}if(!(i&2130706444)){a[u>>2]=a[o>>2];a[u+4>>2]=a[o+4>>2];a[u+8>>2]=a[o+8>>2];a[u+12>>2]=a[o+12>>2];a[u+16>>2]=a[o+16>>2];a[u+20>>2]=a[o+20>>2];a[u+24>>2]=a[o+24>>2];a[u+28>>2]=a[o+28>>2];nr(A,u,n)}else{a[d>>2]=a[o>>2];a[d+4>>2]=a[o+4>>2];a[d+8>>2]=a[o+8>>2];a[d+12>>2]=a[o+12>>2];o=d+32|0;a[o>>2]=a[h>>2];a[o+4>>2]=a[h+4>>2];a[o+8>>2]=a[h+8>>2];a[o+12>>2]=a[h+12>>2];s[d+16>>3]=+s[o>>3];s[d+24>>3]=+s[d+8>>3];s[d+48>>3]=+s[d>>3];s[d+56>>3]=+s[d+40>>3];tp(A,d,4,i,n)}rN(A,e,w);L2(a[B>>2]|0);if(E){if(a[A+152>>2]&4|0)Si(A,a[v>>2]|0,a[g+228>>2]|0,a[g+244>>2]|0,a[g+212>>2]|0);Oi(A)}k=C;return}function rN(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0;v=k;k=k+144|0;o=v+128|0;w=v+112|0;h=v+16|0;d=v;n=v+96|0;l=v+80|0;B=v+64|0;g=v+48|0;t=i+52|0;f=a[t>>2]|0;if(!f)f=e+16|0;else{u=f+56|0;b=i+16|0;f=i+32|0;a[w>>2]=a[b>>2];a[w+4>>2]=a[b+4>>2];a[w+8>>2]=a[b+8>>2];a[w+12>>2]=a[b+12>>2];a[o>>2]=a[f>>2];a[o+4>>2]=a[f+4>>2];a[o+8>>2]=a[f+8>>2];a[o+12>>2]=a[f+12>>2];fN(n,w,o);f=e+16|0;b=(a[f>>2]|0)+16|0;a[w>>2]=a[n>>2];a[w+4>>2]=a[n+4>>2];a[w+8>>2]=a[n+8>>2];a[w+12>>2]=a[n+12>>2];a[o>>2]=a[b>>2];a[o+4>>2]=a[b+4>>2];a[o+8>>2]=a[b+8>>2];a[o+12>>2]=a[b+12>>2];Np(l,w,o);a[u>>2]=a[l>>2];a[u+4>>2]=a[l+4>>2];a[u+8>>2]=a[l+8>>2];a[u+12>>2]=a[l+12>>2];jF(A,10,a[t>>2]|0);Jp(A,e)|0}c=(a[f>>2]|0)+16|0;a[d>>2]=a[c>>2];a[d+4>>2]=a[c+4>>2];a[d+8>>2]=a[c+8>>2];a[d+12>>2]=a[c+12>>2];c=i+48|0;b=i+64|0;u=h+16|0;t=i+56|0;i=h+16|0;l=0;while(1){if((l|0)>=(a[c>>2]|0))break;if((l|0)>0){f=(a[t>>2]|0)+(l<<2)|0;n=a[f>>2]|0;if(!(r[b>>0]|0)){n=n+32|0;a[u>>2]=a[n>>2];a[u+4>>2]=a[n+4>>2];a[u+8>>2]=a[n+8>>2];a[u+12>>2]=a[n+12>>2];s[h>>3]=+s[(a[f>>2]|0)+16>>3];f=u;n=0}else{n=n+16|0;a[h>>2]=a[n>>2];a[h+4>>2]=a[n+4>>2];a[h+8>>2]=a[n+8>>2];a[h+12>>2]=a[n+12>>2];s[i>>3]=+s[h>>3];f=(a[f>>2]|0)+32|0;n=1}s[h+(n<<4)+8>>3]=+s[f+8>>3];a[w>>2]=a[h>>2];a[w+4>>2]=a[h+4>>2];a[w+8>>2]=a[h+8>>2];a[w+12>>2]=a[h+12>>2];a[o>>2]=a[d>>2];a[o+4>>2]=a[d+4>>2];a[o+8>>2]=a[d+8>>2];a[o+12>>2]=a[d+12>>2];Np(B,w,o);a[h>>2]=a[B>>2];a[h+4>>2]=a[B+4>>2];a[h+8>>2]=a[B+8>>2];a[h+12>>2]=a[B+12>>2];a[w>>2]=a[u>>2];a[w+4>>2]=a[u+4>>2];a[w+8>>2]=a[u+8>>2];a[w+12>>2]=a[u+12>>2];a[o>>2]=a[d>>2];a[o+4>>2]=a[d+4>>2];a[o+8>>2]=a[d+8>>2];a[o+12>>2]=a[d+12>>2];Np(g,w,o);a[u>>2]=a[g>>2];a[u+4>>2]=a[g+4>>2];a[u+8>>2]=a[g+8>>2];a[u+12>>2]=a[g+12>>2];tr(A,h,2)}rN(A,e,a[(a[t>>2]|0)+(l<<2)>>2]|0);l=l+1|0}k=v;return}function fN(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0;r=(+s[i+8>>3]+ +s[e+8>>3])*.5;s[A>>3]=(+s[i>>3]+ +s[e>>3])*.5;s[A+8>>3]=r;return}function aN(A,e){A=A|0;e=e|0;var i=0,f=0,n=0;i=a[A+60>>2]|0;if(!(((i|0)!=0?(r[i>>0]|0)==(r[e>>0]|0):0)?(A1(i,e)|0)==0:0))f=4;A:do{if((f|0)==4){n=A+56|0;f=a[A+48>>2]|0;i=0;while(1){if((i|0)>=(f|0)){A=0;break A}A=aN(a[(a[n>>2]|0)+(i<<2)>>2]|0,e)|0;if(!A)i=i+1|0;else break}}}while(0);return A|0}function nN(A,e){A=A|0;e=e|0;var i=0;i=e+8|0;s[i>>3]=+s[i>>3]*1.375;a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2];return}function lN(A,e){A=A|0;e=e|0;var i=0,r=0.0,f=0.0,n=0.0,l=0.0,t=0.0,c=0.0,b=0.0,u=0.0;c=+s[e>>3];f=c*.5;u=+s[e+8>>3];l=u*.5;s[A>>3]=f;r=u*.40909090909090906;s[A+8>>3]=r;s[A+16>>3]=f;n=u*.4592530909090909;s[A+24>>3]=n;t=c*.275892;s[A+32>>3]=t;s[A+40>>3]=l;s[A+48>>3]=0.0;s[A+56>>3]=l;c=c*-.275892;s[A+64>>3]=c;s[A+72>>3]=l;b=-f;s[A+80>>3]=b;s[A+88>>3]=n;i=A+96|0;s[i>>3]=b;s[A+104>>3]=r;e=A+112|0;a[e>>2]=a[i>>2];a[e+4>>2]=a[i+4>>2];a[e+8>>2]=a[i+8>>2];a[e+12>>2]=a[i+12>>2];e=A+128|0;s[e>>3]=b;s[A+136>>3]=u*-.40909090909090906;i=A+144|0;a[i>>2]=a[e>>2];a[i+4>>2]=a[e+4>>2];a[i+8>>2]=a[e+8>>2];a[i+12>>2]=a[e+12>>2];s[A+160>>3]=b;n=-n;s[A+168>>3]=n;s[A+176>>3]=c;l=-l;s[A+184>>3]=l;s[A+192>>3]=0.0;s[A+200>>3]=l;s[A+208>>3]=t;s[A+216>>3]=l;s[A+224>>3]=f;s[A+232>>3]=n;i=A+240|0;s[i>>3]=f;s[A+248>>3]=-r;e=A+256|0;a[e>>2]=a[i>>2];a[e+4>>2]=a[i+4>>2];a[e+8>>2]=a[i+8>>2];a[e+12>>2]=a[i+12>>2];e=A+288|0;i=A+272|0;a[i>>2]=a[A>>2];a[i+4>>2]=a[A+4>>2];a[i+8>>2]=a[A+8>>2];a[i+12>>2]=a[A+12>>2];a[e>>2]=a[A>>2];a[e+4>>2]=a[A+4>>2];a[e+8>>2]=a[A+8>>2];a[e+12>>2]=a[A+12>>2];return}function tN(A,e){A=A|0;e=e|0;var i=0.0,r=0.0,f=0.0,n=0,l=0.0,t=0,c=0,b=0,u=0,w=0,o=0.0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0;I=k;k=k+144|0;v=I+112|0;g=I+96|0;E=I+80|0;B=I+64|0;C=I+32|0;h=I+16|0;d=I;n=I+48|0;do{if(A){t=a[A+4>>2]|0;c=a[A>>2]|0;w=(a[(a[(Id(c)|0)+16>>2]|0)+116>>2]&3)*90|0;a[v>>2]=a[e>>2];a[v+4>>2]=a[e+4>>2];a[v+8>>2]=a[e+8>>2];a[v+12>>2]=a[e+12>>2];yF(n,v,w);a[C>>2]=a[n>>2];a[C+4>>2]=a[n+4>>2];a[C+8>>2]=a[n+8>>2];a[C+12>>2]=a[n+12>>2];if(t|0){i=+s[C>>3];if(!(+s[t>>3]<=i)){A=0;break}if(!(i<=+s[t+16>>3])){A=0;break}i=+s[C+8>>3];if(!(+s[t+8>>3]<=i)){A=0;break}A=i<=+s[t+24>>3];break}if((c|0)==(a[47292]|0)){i=+s[23309];r=+s[23310];l=+s[23311]}else{A=c+16|0;e=a[(a[A>>2]|0)+12>>2]|0;a[47293]=e;a[47294]=a[e+44>>2];a[47295]=a[e+8>>2];if(!(a[e+40>>2]&2048)){u=(a[(a[(Id(c)|0)+16>>2]|0)+116>>2]&1|0)==0;w=a[A>>2]|0;s[(u?186496:186504)>>3]=+s[w+96>>3]+ +s[w+88>>3];s[(u?186504:186496)>>3]=+s[w+80>>3];l=+s[w+32>>3]*72.0;f=+s[w+40>>3]*72.0;f=+(~~(f+(f>=0.0?.5:-.5))|0);l=+(~~(l+(l>=0.0?.5:-.5))|0)}else{XR(v,e);l=+s[v+16>>3]-+s[v>>3];f=+s[v+24>>3]-+s[v+8>>3];w=(a[(a[(Id(c)|0)+16>>2]|0)+116>>2]&1|0)==0;s[(w?186496:186504)>>3]=l;s[(w?186504:186496)>>3]=f}i=+s[23312];if(i==0.0){s[23312]=1.0;i=1.0}r=+s[23313];if(r==0.0){s[23313]=1.0;r=1.0}i=l/i;s[23309]=i;r=f/r;s[23310]=r;l=l*.5;s[23311]=l;s[23314]=f*.5;w=U((a[(a[47293]|0)+4>>2]|0)+-1|0,a[47295]|0)|0;a[47296]=(w|0)>0?w:0;a[47292]=c}f=+s[C>>3]*i;s[C>>3]=f;w=C+8|0;i=+s[w>>3]*r;s[w>>3]=i;if(!(+W(+f)>l)?(r=+W(+i),o=+s[23314],!(r>o)):0){w=a[47295]|0;if((w|0)<3){A=+g1(f/l,i/o)<1.0;break}e=(a[47297]|0)%(w|0)|0;A=(e+1|0)%(w|0)|0;c=a[47294]|0;b=a[47296]|0;u=c+(b+e<<4)|0;a[h>>2]=a[u>>2];a[h+4>>2]=a[u+4>>2];a[h+8>>2]=a[u+8>>2];a[h+12>>2]=a[u+12>>2];u=c+(b+A<<4)|0;a[d>>2]=a[u>>2];a[d+4>>2]=a[u+4>>2];a[d+8>>2]=a[u+8>>2];a[d+12>>2]=a[u+12>>2];a[B>>2]=a[C>>2];a[B+4>>2]=a[C+4>>2];a[B+8>>2]=a[C+8>>2];a[B+12>>2]=a[C+12>>2];a[E>>2]=a[46630];a[E+4>>2]=a[46631];a[E+8>>2]=a[46632];a[E+12>>2]=a[46633];a[g>>2]=a[h>>2];a[g+4>>2]=a[h+4>>2];a[g+8>>2]=a[h+8>>2];a[g+12>>2]=a[h+12>>2];a[v>>2]=a[u>>2];a[v+4>>2]=a[u+4>>2];a[v+8>>2]=a[u+8>>2];a[v+12>>2]=a[u+12>>2];if(xp(B,E,g,v)|0){a[B>>2]=a[C>>2];a[B+4>>2]=a[C+4>>2];a[B+8>>2]=a[C+8>>2];a[B+12>>2]=a[C+12>>2];a[E>>2]=a[h>>2];a[E+4>>2]=a[h+4>>2];a[E+8>>2]=a[h+8>>2];a[E+12>>2]=a[h+12>>2];a[g>>2]=a[d>>2];a[g+4>>2]=a[d+4>>2];a[g+8>>2]=a[d+8>>2];a[g+12>>2]=a[d+12>>2];a[v>>2]=a[46630];a[v+4>>2]=a[46631];a[v+8>>2]=a[46632];a[v+12>>2]=a[46633];u=(xp(B,E,g,v)|0)!=0;if(u?(a[B>>2]=a[C>>2],a[B+4>>2]=a[C+4>>2],a[B+8>>2]=a[C+8>>2],a[B+12>>2]=a[C+12>>2],a[E>>2]=a[d>>2],a[E+4>>2]=a[d+4>>2],a[E+8>>2]=a[d+8>>2],a[E+12>>2]=a[d+12>>2],a[g>>2]=a[46630],a[g+4>>2]=a[46631],a[g+8>>2]=a[46632],a[g+12>>2]=a[46633],a[v>>2]=a[h>>2],a[v+4>>2]=a[h+4>>2],a[v+8>>2]=a[h+8>>2],a[v+12>>2]=a[h+12>>2],(xp(B,E,g,v)|0)!=0):0){A=1;break}else{t=e;e=1}while(1){if((e|0)>=(w|0)){e=31;break}if(u){n=A;A=(A+1|0)%(w|0)|0}else{n=(t+-1+w|0)%(w|0)|0;A=t}h=c+(b+n<<4)|0;d=c+(b+A<<4)|0;a[B>>2]=a[C>>2];a[B+4>>2]=a[C+4>>2];a[B+8>>2]=a[C+8>>2];a[B+12>>2]=a[C+12>>2];a[E>>2]=a[46630];a[E+4>>2]=a[46631];a[E+8>>2]=a[46632];a[E+12>>2]=a[46633];a[g>>2]=a[h>>2];a[g+4>>2]=a[h+4>>2];a[g+8>>2]=a[h+8>>2];a[g+12>>2]=a[h+12>>2];a[v>>2]=a[d>>2];a[v+4>>2]=a[d+4>>2];a[v+8>>2]=a[d+8>>2];a[v+12>>2]=a[d+12>>2];if(!(xp(B,E,g,v)|0)){e=30;break}else{t=n;e=e+1|0}}if((e|0)==30){a[47297]=n;A=0;break}else if((e|0)==31){a[47297]=t;A=1;break}}else A=0}else A=0}else{a[47292]=0;A=0}}while(0);k=I;return A&1|0}function cN(A,e){A=A|0;e=e|0;var i=0.0,r=0.0,f=0,n=0.0,l=0,t=0,c=0;t=k;k=k+32|0;f=t+16|0;l=t;if(A){A=a[A>>2]|0;c=(a[(a[(Id(A)|0)+16>>2]|0)+116>>2]&3)*90|0;a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];yF(l,f,c);n=+s[l>>3];r=+s[l+8>>3];if((A|0)==(a[47300]|0))i=+s[23317];else{l=a[(a[A+16>>2]|0)+12>>2]|0;c=(a[l+4>>2]<<1)+-2|0;i=+s[(a[l+44>>2]|0)+((((c|0)>0?c:0)|1)<<4)>>3];s[23317]=i;a[47300]=A}if(+W(+n)>i|+W(+r)>i)A=0;else A=+g1(n,r)<=i&1}else{a[47300]=0;A=0}k=t;return A|0}function sN(A,e){A=A|0;e=e|0;var i=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0.0,E=0,C=0;g=k;k=k+16|0;t=g;d=a[A+16>>2]|0;B=d+208|0;i=a[B>>2]|0;if((i|0)==0?(f[d+260>>1]&1)==0:0)h=0;else if(!(a[A+152>>2]&4)){Si(A,i,a[d+228>>2]|0,a[d+244>>2]|0,a[d+212>>2]|0);h=1}else h=1;u=e+16|0;c=a[(a[u>>2]|0)+12>>2]|0;w=a[c+44>>2]|0;o=a[c+8>>2]|0;c=a[c+4>>2]|0;if((a[47298]|0)<(o|0)){i=o+2|0;a[47298]=i;l=a[47299]|0;if(!l)i=$F(i<<4)|0;else i=eV(l,i<<4)|0;a[47299]=i}Xp(e,t)|0;if(!(a[t>>2]&32))rr(A,22020);else rr(A,22016);i=a[47172]|0;if(i|0)ur(A,+oR(e,i,1.0,0.0));i=n[(a[u>>2]|0)+117>>0]|0;do{if(!(i&1)){if(i&2|0){$i(A,BR(e,0,106256)|0);i=BR(e,0,106264)|0;er(A,i);break}if(i&8|0){$i(A,BR(e,0,106272)|0);i=BR(e,0,106280)|0;er(A,i);break}if(!(i&4)){i=Rp(e,137314)|0;er(A,i);Jp(A,e)|0;break}else{$i(A,BR(e,0,106288)|0);i=BR(e,0,106296)|0;er(A,i);break}}else{$i(A,BR(e,0,106240)|0);i=BR(e,0,106248)|0;er(A,i)}}while(0);if(!c)if(!(r[i>>0]|0))l=1;else{$i(A,i);l=1}else l=c;t=1;e=0;while(1){if((e|0)>=(l|0))break;c=U(e,o)|0;b=a[47299]|0;i=0;while(1){if((i|0)>=(o|0))break;C=i+c|0;v=+s[w+(C<<4)+8>>3];E=a[u>>2]|0;s[b+(i<<4)>>3]=+s[E+16>>3]+ +s[w+(C<<4)>>3];s[b+(i<<4)+8>>3]=+s[E+24>>3]+v;i=i+1|0}fr(A,b,o,t);t=0;e=e+1|0}if(h){if(a[A+152>>2]&4|0)Si(A,a[B>>2]|0,a[d+228>>2]|0,a[d+244>>2]|0,a[d+212>>2]|0);Oi(A)}k=g;return}function bN(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,l=0;f=k;k=k+48|0;l=f;i=uN(e,i,r)|0;a[l+36>>2]=a[r+36>>2];Tp(e,a[r+24>>2]|0,l,i,n[r+33>>0]|0,0)|0;e=l;i=A+40|0;do{a[A>>2]=a[e>>2];A=A+4|0;e=e+4|0}while((A|0)<(i|0));k=f;return}function uN(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0.0,t=0.0,c=0,b=0.0,u=0.0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0.0,Q=0.0,L=0;G=k;k=k+32|0;Z=G;n=G+24|0;c=G+16|0;I=a[(a[(a[(Id(A)|0)+60>>2]|0)+16>>2]|0)+116>>2]&3;f=A+16|0;C=(a[f>>2]|0)+16|0;a[Z>>2]=a[C>>2];a[Z+4>>2]=a[C+4>>2];a[Z+8>>2]=a[C+8>>2];a[Z+12>>2]=a[C+12>>2];wN(n,Z,I);C=(a[e+16>>2]|0)+16|0;a[Z>>2]=a[C>>2];a[Z+4>>2]=a[C+4>>2];a[Z+8>>2]=a[C+8>>2];a[Z+12>>2]=a[C+12>>2];wN(c,Z,I);I=r[i+33>>0]|0;Z=I&255;A:do{switch(I<<24>>24){case 0:case 15:{e=0;break}default:{e=a[i+24>>2]|0;if(!e){I=(a[(a[(Id(A)|0)+16>>2]|0)+116>>2]&1|0)==0;C=a[f>>2]|0;Q=+s[C+80>>3]*.5;m=-Q;b=+s[C+88>>3];t=-b;u=I?t:m;l=I?b:Q;b=I?Q:b;t=I?m:t}else{u=+s[e>>3];l=+s[e+16>>3];b=+s[e+24>>3];t=+s[e+8>>3]}I=a[n>>2]|0;E=a[n+4>>2]|0;C=a[c>>2]|0;B=a[c+4>>2]|0;g=~~t;v=~~((l+u)*.5);d=~~l;h=~~((b+t)*.5);o=~~b;w=~~u;n=0;c=0;e=0;i=0;A=0;while(1){if((c|0)==4)break A;if(1<>2]|0;else f=n}else f=n;n=f;c=c+1|0}}}}while(0);k=G;return e|0}function wN(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0;switch(i|0){case 0:{f=+s[e>>3];r=+s[e+8>>3];break}case 2:{f=+s[e>>3];r=-+s[e+8>>3];break}case 1:{f=-+s[e+8>>3];r=+s[e>>3];break}case 3:{f=+s[e+8>>3];r=+s[e>>3];break}default:{f=0.0;r=0.0}}a[A>>2]=~~(f+(f>=0.0?.5:-.5));a[A+4>>2]=~~(r+(r>=0.0?.5:-.5));return}function kN(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0;t=k;k=k+80|0;f=t+40|0;l=t;n=A+16|0;i=a[n>>2]|0;e=i+16|0;if(r[i+47>>0]|0){i=a[A>>2]&3;bN(f,a[((i|0)==3?A:A+48|0)+40>>2]|0,a[((i|0)==2?A:A+-48|0)+40>>2]|0,e);i=f;f=e+40|0;do{a[e>>2]=a[i>>2];e=e+4|0;i=i+4|0}while((e|0)<(f|0));i=a[n>>2]|0}e=i+56|0;if(r[i+87>>0]|0){i=a[A>>2]&3;bN(l,a[((i|0)==2?A:A+-48|0)+40>>2]|0,a[((i|0)==3?A:A+48|0)+40>>2]|0,e);i=l;f=e+40|0;do{a[e>>2]=a[i>>2];e=e+4|0;i=i+4|0}while((e|0)<(f|0))}k=t;return}function oN(){var A=0,e=0,i=0;A=k;k=k+32|0;e=A+16|0;i=A;a[i>>2]=0;a[i+4>>2]=0;a[i+8>>2]=0;a[i+12>>2]=0;a[e>>2]=a[i>>2];a[e+4>>2]=a[i+4>>2];a[e+8>>2]=a[i+8>>2];a[e+12>>2]=a[i+12>>2];tN(0,e)|0;a[e>>2]=a[i>>2];a[e+4>>2]=a[i+4>>2];a[e+8>>2]=a[i+8>>2];a[e+12>>2]=a[i+12>>2];cN(0,e)|0;a[e>>2]=a[i>>2];a[e+4>>2]=a[i+4>>2];a[e+8>>2]=a[i+8>>2];a[e+12>>2]=a[i+12>>2];Yp(0,e)|0;k=A;return}function hN(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,n=0.0,l=0.0,t=0,c=0,b=0,u=0,w=0,o=0.0,h=0,d=0.0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0;G=k;k=k+192|0;B=G+176|0;I=G+112|0;Z=G+48|0;g=G+32|0;v=G+24|0;E=G+16|0;C=G;if(!(r<<24>>24)){c=i+48|0;a[g>>2]=a[c>>2];a[g+4>>2]=a[c+4>>2];a[g+8>>2]=a[c+8>>2];a[g+12>>2]=a[c+12>>2];c=v;b=E;u=I;w=0}else{a[g>>2]=a[i>>2];a[g+4>>2]=a[i+4>>2];a[g+8>>2]=a[i+8>>2];a[g+12>>2]=a[i+12>>2];c=E;b=v;u=0;w=I}s[v>>3]=0.0;s[E>>3]=1.0;h=g+8|0;f=0.0;n=1.0;t=0;o=+s[g>>3];while(1){d=+s[h>>3];f=(f+n)*.5;QR(C,i,3,f,u,w);a[g>>2]=a[C>>2];a[g+4>>2]=a[C+4>>2];a[g+8>>2]=a[C+8>>2];a[g+12>>2]=a[C+12>>2];a[B>>2]=a[C>>2];a[B+4>>2]=a[C+4>>2];a[B+8>>2]=a[C+8>>2];a[B+12>>2]=a[C+12>>2];A:do{if(!((Q5[e&127](A,B)|0)<<24>>24)){r=0;while(1){if((r|0)==4){r=c;t=1;break A}t=Z+(r<<4)|0;m=I+(r<<4)|0;a[t>>2]=a[m>>2];a[t+4>>2]=a[m+4>>2];a[t+8>>2]=a[m+8>>2];a[t+12>>2]=a[m+12>>2];r=r+1|0}}else r=b}while(0);s[r>>3]=f;l=+s[g>>3];o=o-l;if(!((o>=0.0?o:-o)>.5)?(d=d-+s[h>>3],!((d>=0.0?d:-d)>.5)):0)break;f=+s[v>>3];n=+s[E>>3];o=l}A:do{if(!(t<<24>>24)){r=0;while(1){if((r|0)==4)break A;m=i+(r<<4)|0;Z=I+(r<<4)|0;a[m>>2]=a[Z>>2];a[m+4>>2]=a[Z+4>>2];a[m+8>>2]=a[Z+8>>2];a[m+12>>2]=a[Z+12>>2];r=r+1|0}}else{r=0;while(1){if((r|0)==4)break A;m=i+(r<<4)|0;I=Z+(r<<4)|0;a[m>>2]=a[I>>2];a[m+4>>2]=a[I+4>>2];a[m+8>>2]=a[I+8>>2];a[m+12>>2]=a[I+12>>2];r=r+1|0}}}while(0);k=G;return}function dN(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0.0;b=k;k=k+48|0;i=b+16|0;r=b;f=b+32|0;n=A+16|0;l=a[n>>2]|0;t=a[l+8>>2]|0;if(t|0?(c=t+4|0,a[(a[c>>2]|0)+12>>2]|0):0){a[f>>2]=A;a[f+4>>2]=0;u=+s[l+96>>3];s[r>>3]=+s[e>>3]-+s[l+16>>3];s[r+8>>3]=+s[e+8>>3]-+s[l+24>>3];c=a[(a[c>>2]|0)+12>>2]|0;a[i>>2]=a[r>>2];a[i+4>>2]=a[r+4>>2];a[i+8>>2]=a[r+8>>2];a[i+12>>2]=a[r+12>>2];c=Q5[c&127](f,i)|0;s[(a[n>>2]|0)+96>>3]=u;BN(f,A,e,c)}k=b;return}function BN(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0.0,b=0,u=0;u=k;k=k+64|0;b=u;t=e+16|0;n=a[t>>2]|0;c=+s[n+96>>3];l=n+16|0;f=n+24|0;e=0;while(1){if((e|0)==4)break;s[b+(e<<4)>>3]=+s[i+(e<<4)>>3]-+s[l>>3];s[b+(e<<4)+8>>3]=+s[i+(e<<4)+8>>3]-+s[f>>3];e=e+1|0}hN(A,a[(a[(a[n+8>>2]|0)+4>>2]|0)+12>>2]|0,b,r);e=0;while(1){if((e|0)==4)break;r=a[t>>2]|0;s[i+(e<<4)>>3]=+s[r+16>>3]+ +s[b+(e<<4)>>3];s[i+(e<<4)+8>>3]=+s[r+24>>3]+ +s[b+(e<<4)+8>>3];e=e+1|0}s[(a[t>>2]|0)+96>>3]=c;k=u;return}function gN(A,e){A=A|0;e=e|0;var i=0,f=0;while(1){f=A+16|0;A=a[f>>2]|0;if(!(r[A+112>>0]|0))break;A=a[A+116>>2]|0}A=a[A+8>>2]|0;if(!A){A=qF(40)|0;a[(a[f>>2]|0)+8>>2]=A}i=a[A>>2]|0;if(!i)A=$F(((a[A+4>>2]|0)*48|0)+48|0)|0;else A=eV(i,((a[A+4>>2]|0)*48|0)+48|0)|0;f=a[(a[f>>2]|0)+8>>2]|0;a[f>>2]=A;f=f+4|0;i=a[f>>2]|0;a[f>>2]=i+1;f=A+(i*48|0)|0;a[f>>2]=qF(e<<4)|0;a[A+(i*48|0)+4>>2]=e;A=A+(i*48|0)+8|0;i=A+40|0;do{a[A>>2]=0;A=A+4|0}while((A|0)<(i|0));return f|0}function vN(A,e,i,f,l){A=A|0;e=e|0;i=i|0;f=f|0;l=l|0;var t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0.0,z=0.0;y=k;k=k+96|0;m=y+16|0;v=y;I=y+92|0;Z=y+88|0;E=y+80|0;b=a[((a[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0;G=Id(b)|0;Q=gN(A,f)|0;u=A;while(1){w=a[u+16>>2]|0;if(!(r[w+112>>0]|0))break;u=a[w+116>>2]|0}if((r[l+8>>0]|0)==0?(t=a[b+16>>2]|0,c=a[e+16>>2]|0,(a[t+232>>2]|0)==(a[c+232>>2]|0)):0){o=(a[t+236>>2]|0)>(a[c+236>>2]|0);C=o?b:e;b=o?e:b}else C=e;if((b|0)==(a[((a[u>>2]&3|0)==3?u:u+48|0)+40>>2]|0)){t=w+80|0;c=w+40|0;o=n[w+86>>0]|0;e=n[w+46>>0]|0}else{t=w+40|0;c=w+80|0;o=n[w+46>>0]|0;e=n[w+86>>0]|0}w=a[t>>2]|0;t=a[c>>2]|0;if(((e|0)!=0?(d=b+16|0,h=a[(a[d>>2]|0)+8>>2]|0,(h|0)!=0):0)?(a[(a[h+4>>2]|0)+12>>2]|0)!=0:0){a[E>>2]=b;a[E+4>>2]=t;t=f+-4|0;e=v+8|0;c=0;while(1){if((c|0)>=(t|0))break;u=c+3|0;h=a[d>>2]|0;s[v>>3]=+s[i+(u<<4)>>3]-+s[h+16>>3];s[e>>3]=+s[i+(u<<4)+8>>3]-+s[h+24>>3];h=a[(a[(a[h+8>>2]|0)+4>>2]|0)+12>>2]|0;a[m>>2]=a[v>>2];a[m+4>>2]=a[v+4>>2];a[m+8>>2]=a[v+8>>2];a[m+12>>2]=a[v+12>>2];if(!((Q5[h&127](E,m)|0)<<24>>24))break;else c=u}a[I>>2]=c;BN(E,b,i+(c<<4)|0,1)}else{a[I>>2]=0;c=0}if(((o|0)!=0?(g=C+16|0,B=a[(a[g>>2]|0)+8>>2]|0,(B|0)!=0):0)?(a[(a[B+4>>2]|0)+12>>2]|0)!=0:0){a[E>>2]=C;a[E+4>>2]=w;b=f+-4|0;e=v+8|0;t=b;while(1){if((t|0)<=0)break;f=a[g>>2]|0;s[v>>3]=+s[i+(t<<4)>>3]-+s[f+16>>3];s[e>>3]=+s[i+(t<<4)+8>>3]-+s[f+24>>3];f=a[(a[(a[f+8>>2]|0)+4>>2]|0)+12>>2]|0;a[m>>2]=a[v>>2];a[m+4>>2]=a[v+4>>2];a[m+8>>2]=a[v+8>>2];a[m+12>>2]=a[v+12>>2];if(!((Q5[f&127](E,m)|0)<<24>>24))break;t=t+-3|0}a[Z>>2]=t;BN(E,C,i+(t<<4)|0,0)}else{b=f+-4|0;a[Z>>2]=b;t=b}while(1){if((c|0)>=(b|0))break;e=c+3|0;W=+s[i+(c<<4)>>3]-+s[i+(e<<4)>>3];z=+s[i+(c<<4)+8>>3]-+s[i+(e<<4)+8>>3];if(z*z+W*W<1.0e-06)c=e;else break}a[I>>2]=c;while(1){if((t|0)<=0)break;E=t+3|0;z=+s[i+(t<<4)>>3]-+s[i+(E<<4)>>3];W=+s[i+(t<<4)+8>>3]-+s[i+(E<<4)+8>>3];if(!(W*W+z*z<1.0e-06))break;t=t+-3|0}a[Z>>2]=t;EN(A,C,i,I,Z,Q,l);d=a[I>>2]|0;u=a[Z>>2]|0;b=u+4|0;u=u+3|0;w=m+16|0;o=m+32|0;h=m+48|0;c=G+16|0;t=d;while(1){if((t|0)>=(b|0))break;G=(a[Q>>2]|0)+(t-d<<4)|0;e=i+(t<<4)|0;a[G>>2]=a[e>>2];a[G+4>>2]=a[e+4>>2];a[G+8>>2]=a[e+8>>2];a[G+12>>2]=a[e+12>>2];a[m>>2]=a[e>>2];a[m+4>>2]=a[e+4>>2];a[m+8>>2]=a[e+8>>2];a[m+12>>2]=a[e+12>>2];e=t+1|0;if((t|0)>=(u|0)){L=38;break}Z=(a[Q>>2]|0)+(e-d<<4)|0;G=i+(e<<4)|0;a[Z>>2]=a[G>>2];a[Z+4>>2]=a[G+4>>2];a[Z+8>>2]=a[G+8>>2];a[Z+12>>2]=a[G+12>>2];a[w>>2]=a[G>>2];a[w+4>>2]=a[G+4>>2];a[w+8>>2]=a[G+8>>2];a[w+12>>2]=a[G+12>>2];G=t+2|0;Z=(a[Q>>2]|0)+(G-d<<4)|0;G=i+(G<<4)|0;a[Z>>2]=a[G>>2];a[Z+4>>2]=a[G+4>>2];a[Z+8>>2]=a[G+8>>2];a[Z+12>>2]=a[G+12>>2];a[o>>2]=a[G>>2];a[o+4>>2]=a[G+4>>2];a[o+8>>2]=a[G+8>>2];a[o+12>>2]=a[G+12>>2];G=t+3|0;Z=i+(G<<4)|0;a[h>>2]=a[Z>>2];a[h+4>>2]=a[Z+4>>2];a[h+8>>2]=a[Z+8>>2];a[h+12>>2]=a[Z+12>>2];bI((a[c>>2]|0)+16|0,m);t=G}a[Q+4>>2]=b-d;k=y;return}function EN(A,e,i,f,n,l,t){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;l=l|0;t=t|0;var c=0,s=0,b=0,u=0,w=0,o=0;o=k;k=k+16|0;b=o+4|0;u=o;w=A;while(1){c=a[(a[w+16>>2]|0)+116>>2]|0;if(!c)break;else w=c}if(!(r[t+8>>0]|0))c=(m5[a[t>>2]&63](w)|0)&255;else c=0;DC(w,b,u);s=t+4|0;if((m5[a[s>>2]&63](e)|0)<<24>>24)a[u>>2]=0;if((m5[a[s>>2]&63](a[((a[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0)|0)<<24>>24)a[b>>2]=0;if(c|0){e=a[b>>2]|0;a[b>>2]=a[u>>2];a[u>>2]=e}if(!(r[t+9>>0]|0)){c=a[b>>2]|0;if(c|0)a[f>>2]=SC(w,i,a[f>>2]|0,a[n>>2]|0,l,c)|0;c=a[u>>2]|0;if(c|0)a[n>>2]=jC(w,i,a[f>>2]|0,a[n>>2]|0,l,c)|0}else{s=a[u>>2]|0;c=a[b>>2]|0;if(c|s|0)OC(w,i,a[f>>2]|0,a[n>>2]|0,l,c,s)}k=o;return}function CN(A,e){A=A|0;e=e|0;var i=0,r=0;if(+s[e>>3]<+s[e+16>>3]?+s[e+8>>3]<+s[e+24>>3]:0){i=a[A+84>>2]|0;r=A+80|0;A=a[r>>2]|0;a[r>>2]=A+1;A=i+(A<<5)|0;a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2];a[A+16>>2]=a[e+16>>2];a[A+20>>2]=a[e+20>>2];a[A+24>>2]=a[e+24>>2];a[A+28>>2]=a[e+28>>2]}return}function IN(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0,t=0,c=0.0,b=0.0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0.0,G=0.0;I=k;k=k+112|0;v=I+72|0;w=I+56|0;u=I+16|0;h=I;t=a[e>>2]&3;o=e+48|0;C=a[((t|0)==3?e:o)+40>>2]|0;g=e+16|0;d=a[g>>2]|0;l=d+16|0;if(r[d+47>>0]|0){bN(u,C,a[((t|0)==2?e:e+-48|0)+40>>2]|0,l);t=u;u=l+40|0;do{a[l>>2]=a[t>>2];l=l+4|0;t=t+4|0}while((l|0)<(u|0))}d=C+16|0;t=a[d>>2]|0;l=a[t+8>>2]|0;if(!l)u=0;else u=a[(a[l+4>>2]|0)+16>>2]|0;l=t+16|0;t=(a[g>>2]|0)+16|0;a[w>>2]=a[l>>2];a[w+4>>2]=a[l+4>>2];a[w+8>>2]=a[l+8>>2];a[w+12>>2]=a[l+12>>2];a[v>>2]=a[t>>2];a[v+4>>2]=a[t+4>>2];a[v+8>>2]=a[t+8>>2];a[v+12>>2]=a[t+12>>2];ZN(h,w,v);a[A>>2]=a[h>>2];a[A+4>>2]=a[h+4>>2];a[A+8>>2]=a[h+8>>2];a[A+12>>2]=a[h+12>>2];if(!(n<<24>>24)){l=a[g>>2]|0;if(!(r[l+45>>0]|0))l=0;else{c=+s[l+32>>3];E=9}}else{c=+GN(a[((a[e>>2]&3|0)==3?e:o)+40>>2]|0);E=9}if((E|0)==9){s[A+16>>3]=c;l=1}r[A+29>>0]=l;a[A+80>>2]=0;a[A+88>>2]=e;h=f+32|0;a[h>>2]=a[A>>2];a[h+4>>2]=a[A+4>>2];a[h+8>>2]=a[A+8>>2];a[h+12>>2]=a[A+12>>2];switch(i|0){case 1:{t=a[d>>2]|0;if((r[t+156>>0]|0)==0?(h=r[(a[g>>2]|0)+49>>0]|0,B=h&255,h<<24>>24!=0):0){a[v>>2]=a[f>>2];a[v+4>>2]=a[f+4>>2];a[v+8>>2]=a[f+8>>2];a[v+12>>2]=a[f+12>>2];a[v+16>>2]=a[f+16>>2];a[v+20>>2]=a[f+20>>2];a[v+24>>2]=a[f+24>>2];a[v+28>>2]=a[f+28>>2];do{if(!(B&4)){if(B&1|0){a[f+48>>2]=1;l=v+24|0;s[l>>3]=+s[(+s[l>>3]>+s[A+8>>3]?v+16|0:A)+8>>3];l=f+56|0;a[l>>2]=a[v>>2];a[l+4>>2]=a[v+4>>2];a[l+8>>2]=a[v+8>>2];a[l+12>>2]=a[v+12>>2];a[l+16>>2]=a[v+16>>2];a[l+20>>2]=a[v+20>>2];a[l+24>>2]=a[v+24>>2];a[l+28>>2]=a[v+28>>2];l=1;break}l=f+48|0;if(!(B&8)){a[l>>2]=2;s[v>>3]=+s[A>>3];s[v+8>>3]=+s[t+24>>3]-+s[t+80>>3]*.5;s[v+24>>3]=+s[A+8>>3];l=f+56|0;a[l>>2]=a[v>>2];a[l+4>>2]=a[v+4>>2];a[l+8>>2]=a[v+8>>2];a[l+12>>2]=a[v+12>>2];a[l+16>>2]=a[v+16>>2];a[l+20>>2]=a[v+20>>2];a[l+24>>2]=a[v+24>>2];a[l+28>>2]=a[v+28>>2];l=1;break}else{a[l>>2]=8;s[v+16>>3]=+s[A>>3];s[v+8>>3]=+s[t+24>>3]-+s[t+80>>3]*.5;s[v+24>>3]=+s[A+8>>3];l=f+56|0;a[l>>2]=a[v>>2];a[l+4>>2]=a[v+4>>2];a[l+8>>2]=a[v+8>>2];a[l+12>>2]=a[v+12>>2];a[l+16>>2]=a[v+16>>2];a[l+20>>2]=a[v+20>>2];a[l+24>>2]=a[v+24>>2];a[l+28>>2]=a[v+28>>2];l=1;break}}else{a[f+48>>2]=4;c=+s[v>>3];if(+s[A>>3]<+s[t+16>>3]){G=c+-1.0;Z=+s[A+8>>3];A=v+16|0;c=+s[A>>3];b=+s[t+80>>3]*.5+ +s[t+24>>3];b=b+ +((a[(a[(Id(C)|0)+16>>2]|0)+252>>2]|0)/2|0|0);l=a[d>>2]|0;s[A>>3]=+s[l+16>>3]-+s[l+88>>3];s[v+24>>3]=Z;s[v+8>>3]=+s[l+24>>3]-+s[l+80>>3]*.5;s[v>>3]=G;s[f+56>>3]=G;s[f+64>>3]=Z;s[f+72>>3]=c;s[f+80>>3]=b;l=f+88|0;a[l>>2]=a[v>>2];a[l+4>>2]=a[v+4>>2];a[l+8>>2]=a[v+8>>2];a[l+12>>2]=a[v+12>>2];a[l+16>>2]=a[v+16>>2];a[l+20>>2]=a[v+20>>2];a[l+24>>2]=a[v+24>>2];a[l+28>>2]=a[v+28>>2];l=2;break}else{b=+s[A+8>>3];l=v+16|0;Z=+s[l>>3]+1.0;G=+s[t+80>>3]*.5+ +s[t+24>>3];G=G+ +((a[(a[(Id(C)|0)+16>>2]|0)+252>>2]|0)/2|0|0);A=a[d>>2]|0;s[v>>3]=+s[A+96>>3]+ +s[A+16>>3];s[v+24>>3]=b;s[v+8>>3]=+s[A+24>>3]-+s[A+80>>3]*.5;s[l>>3]=Z;s[f+56>>3]=c;s[f+64>>3]=b;s[f+72>>3]=Z;s[f+80>>3]=G;l=f+88|0;a[l>>2]=a[v>>2];a[l+4>>2]=a[v+4>>2];a[l+8>>2]=a[v+8>>2];a[l+12>>2]=a[v+12>>2];a[l+16>>2]=a[v+16>>2];a[l+20>>2]=a[v+20>>2];a[l+24>>2]=a[v+24>>2];a[l+28>>2]=a[v+28>>2];l=2;break}}}while(0);a[f+52>>2]=l;while(1){l=a[e+16>>2]|0;if(!(r[l+112>>0]|0))break;e=a[l+116>>2]|0}r[((C|0)==(a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)?l+16|0:l+56|0)+30>>0]=0}else{t=1;E=47}break}case 2:{B=r[(a[g>>2]|0)+49>>0]|0;t=B&255;if(!(B<<24>>24))E=46;else{a[v>>2]=a[f>>2];a[v+4>>2]=a[f+4>>2];a[v+8>>2]=a[f+8>>2];a[v+12>>2]=a[f+12>>2];a[v+16>>2]=a[f+16>>2];a[v+20>>2]=a[f+20>>2];a[v+24>>2]=a[f+24>>2];a[v+28>>2]=a[f+28>>2];do{if(!(t&4)){if(t&1|0)if((a[f+48>>2]|0)==4){l=a[d>>2]|0;G=+s[l+24>>3]-+s[l+80>>3]*.5;l=v+16|0;Z=+s[l>>3]+1.0;c=+s[A>>3];b=G-+((a[(a[(Id(C)|0)+16>>2]|0)+252>>2]|0)/2|0|0);A=a[d>>2]|0;s[v>>3]=+s[A+96>>3]+ +s[A+16>>3];s[v+8>>3]=G;s[v+24>>3]=+s[A+80>>3]*.5+ +s[A+24>>3];s[l>>3]=Z;s[f+56>>3]=c;s[f+64>>3]=b;s[f+72>>3]=Z;s[f+80>>3]=G;l=f+88|0;a[l>>2]=a[v>>2];a[l+4>>2]=a[v+4>>2];a[l+8>>2]=a[v+8>>2];a[l+12>>2]=a[v+12>>2];a[l+16>>2]=a[v+16>>2];a[l+20>>2]=a[v+20>>2];a[l+24>>2]=a[v+24>>2];a[l+28>>2]=a[v+28>>2];l=2;break}else{l=v+24|0;s[l>>3]=+s[(+s[l>>3]>+s[A+8>>3]?v+16|0:A)+8>>3];l=f+56|0;a[l>>2]=a[v>>2];a[l+4>>2]=a[v+4>>2];a[l+8>>2]=a[v+8>>2];a[l+12>>2]=a[v+12>>2];a[l+16>>2]=a[v+16>>2];a[l+20>>2]=a[v+20>>2];a[l+24>>2]=a[v+24>>2];a[l+28>>2]=a[v+28>>2];l=1;break}c=+s[A>>3];if(!(t&8)){s[v>>3]=c;i=a[d>>2]|0;c=+s[i+24>>3];b=+s[i+80>>3]*.5;if((a[f+48>>2]|0)==4){s[v+24>>3]=b+c;c=+s[A+8>>3];l=v}else{s[v+8>>3]=c-b;c=+s[A+8>>3]+1.0;l=v+16|0}s[l+8>>3]=c;l=f+56|0;a[l>>2]=a[v>>2];a[l+4>>2]=a[v+4>>2];a[l+8>>2]=a[v+8>>2];a[l+12>>2]=a[v+12>>2];a[l+16>>2]=a[v+16>>2];a[l+20>>2]=a[v+20>>2];a[l+24>>2]=a[v+24>>2];a[l+28>>2]=a[v+28>>2];l=1;break}else{l=v+16|0;s[l>>3]=c+1.0;i=a[d>>2]|0;c=+s[i+24>>3];b=+s[i+80>>3]*.5;if((a[f+48>>2]|0)==4){s[v+24>>3]=b+c;c=+s[A+8>>3]+-1.0;l=v}else{s[v+8>>3]=c-b;c=+s[A+8>>3]+1.0}s[l+8>>3]=c;l=f+56|0;a[l>>2]=a[v>>2];a[l+4>>2]=a[v+4>>2];a[l+8>>2]=a[v+8>>2];a[l+12>>2]=a[v+12>>2];a[l+16>>2]=a[v+16>>2];a[l+20>>2]=a[v+20>>2];a[l+24>>2]=a[v+24>>2];a[l+28>>2]=a[v+28>>2];l=1;break}}else{l=v+8|0;s[l>>3]=+s[(+s[l>>3]<+s[A+8>>3]?v:A)+8>>3];l=f+56|0;a[l>>2]=a[v>>2];a[l+4>>2]=a[v+4>>2];a[l+8>>2]=a[v+8>>2];a[l+12>>2]=a[v+12>>2];a[l+16>>2]=a[v+16>>2];a[l+20>>2]=a[v+20>>2];a[l+24>>2]=a[v+24>>2];a[l+28>>2]=a[v+28>>2];l=1}}while(0);a[f+52>>2]=l;while(1){l=a[e+16>>2]|0;if(!(r[l+112>>0]|0))break;e=a[l+116>>2]|0}r[((C|0)==(a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)?l+16|0:l+56|0)+30>>0]=0;a[f+48>>2]=t}break}default:E=46}if((E|0)==46){t=a[f+48>>2]|0;E=47}A:do{if((E|0)==47){if(u){e=f+56|0;l=f+52|0;t=z5[u&127](C,(a[g>>2]|0)+16|0,t,e,l)|0;if(t){a[f+48>>2]=t;break}}else{l=f+52|0;e=f+56|0}a[e>>2]=a[f>>2];a[e+4>>2]=a[f+4>>2];a[e+8>>2]=a[f+8>>2];a[e+12>>2]=a[f+12>>2];a[e+16>>2]=a[f+16>>2];a[e+20>>2]=a[f+20>>2];a[e+24>>2]=a[f+24>>2];a[e+28>>2]=a[f+28>>2];a[l>>2]=1;switch(i|0){case 8:{gA(138394,106514,569,106524);break}case 2:{s[((a[f+48>>2]|0)==4?f+56|0:f+72|0)+8>>3]=+s[A+8>>3];break A}case 1:{s[f+80>>3]=+s[A+8>>3];a[f+48>>2]=1;break A}default:break A}}}while(0);k=I;return}function ZN(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0;r=+s[i+8>>3]+ +s[e+8>>3];s[A>>3]=+s[i>>3]+ +s[e>>3];s[A+8>>3]=r;return}function GN(A){A=A|0;var e=0.0,i=0,r=0,f=0.0,n=0,l=0,t=0,c=0.0,b=0.0;l=a[A+16>>2]|0;t=a[l+172>>2]|0;f=0.0;n=0;while(1){A=a[t+(n<<2)>>2]|0;if(!A)break;f=+s[(a[(a[((a[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0)+16>>2]|0)+16>>3]+f;n=n+1|0}r=a[l+180>>2]|0;e=0.0;A=0;while(1){i=a[r+(A<<2)>>2]|0;if(!i)break;e=+s[(a[(a[((a[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+16>>3]+e;A=A+1|0}c=+s[l+16>>3];b=+s[l+24>>3];t=a[t>>2]|0;f=+N(+(b-+s[(a[(a[((a[t>>2]&3|0)==3?t:t+48|0)+40>>2]|0)+16>>2]|0)+24>>3]),+(c-f/+(n|0)));t=a[r>>2]|0;return+((+N(+(+s[(a[(a[((a[t>>2]&3|0)==2?t:t+-48|0)+40>>2]|0)+16>>2]|0)+24>>3]-b),+(e/+(A|0)-c))+f)*.5)}function mN(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0,t=0,c=0.0,b=0.0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0.0,Q=0.0;G=k;k=k+112|0;C=G+72|0;o=G+56|0;u=G+16|0;g=G;t=a[e>>2]&3;d=e+-48|0;Z=a[((t|0)==2?e:d)+40>>2]|0;v=e+16|0;B=a[v>>2]|0;l=B+56|0;if(r[B+87>>0]|0){bN(u,Z,a[((t|0)==3?e:e+48|0)+40>>2]|0,l);t=u;u=l+40|0;do{a[l>>2]=a[t>>2];l=l+4|0;t=t+4|0}while((l|0)<(u|0))}B=Z+16|0;t=a[B>>2]|0;l=a[t+8>>2]|0;if(!l)w=0;else w=a[(a[l+4>>2]|0)+16>>2]|0;u=A+40|0;l=t+16|0;t=(a[v>>2]|0)+56|0;a[o>>2]=a[l>>2];a[o+4>>2]=a[l+4>>2];a[o+8>>2]=a[l+8>>2];a[o+12>>2]=a[l+12>>2];a[C>>2]=a[t>>2];a[C+4>>2]=a[t+4>>2];a[C+8>>2]=a[t+8>>2];a[C+12>>2]=a[t+12>>2];ZN(g,o,C);a[u>>2]=a[g>>2];a[u+4>>2]=a[g+4>>2];a[u+8>>2]=a[g+8>>2];a[u+12>>2]=a[g+12>>2];if(!(n<<24>>24)){l=a[v>>2]|0;if(!(r[l+85>>0]|0))h=0;else{s[A+56>>3]=+s[l+72>>3];h=1}}else{b=+GN(a[((a[e>>2]&3|0)==2?e:d)+40>>2]|0)+3.141592653589793;s[A+56>>3]=b;if(b<6.283185307179586)h=1;else gA(106534,106514,606,106558)}r[A+69>>0]=h;g=f+32|0;a[g>>2]=a[u>>2];a[g+4>>2]=a[u+4>>2];a[g+8>>2]=a[u+8>>2];a[g+12>>2]=a[u+12>>2];switch(i|0){case 1:{t=a[B>>2]|0;if((r[t+156>>0]|0)==0?(g=r[(a[v>>2]|0)+89>>0]|0,E=g&255,g<<24>>24!=0):0){a[C>>2]=a[f>>2];a[C+4>>2]=a[f+4>>2];a[C+8>>2]=a[f+8>>2];a[C+12>>2]=a[f+12>>2];a[C+16>>2]=a[f+16>>2];a[C+20>>2]=a[f+20>>2];a[C+24>>2]=a[f+24>>2];a[C+28>>2]=a[f+28>>2];do{if(!(E&4))if(!(E&1)){l=f+48|0;if(!(E&8)){a[l>>2]=2;s[C>>3]=+s[u>>3];s[C+24>>3]=+s[t+80>>3]*.5+ +s[t+24>>3];s[C+8>>3]=+s[A+48>>3];l=f+56|0;a[l>>2]=a[C>>2];a[l+4>>2]=a[C+4>>2];a[l+8>>2]=a[C+8>>2];a[l+12>>2]=a[C+12>>2];a[l+16>>2]=a[C+16>>2];a[l+20>>2]=a[C+20>>2];a[l+24>>2]=a[C+24>>2];a[l+28>>2]=a[C+28>>2];l=1;break}else{a[l>>2]=8;s[C+16>>3]=+s[u>>3];s[C+24>>3]=+s[t+80>>3]*.5+ +s[t+24>>3];s[C+8>>3]=+s[A+48>>3];l=f+56|0;a[l>>2]=a[C>>2];a[l+4>>2]=a[C+4>>2];a[l+8>>2]=a[C+8>>2];a[l+12>>2]=a[C+12>>2];a[l+16>>2]=a[C+16>>2];a[l+20>>2]=a[C+20>>2];a[l+24>>2]=a[C+24>>2];a[l+28>>2]=a[C+28>>2];l=1;break}}else{a[f+48>>2]=1;c=+s[C>>3];if(+s[u>>3]<+s[t+16>>3]){Q=c+-1.0;b=+s[A+48>>3];A=C+16|0;c=+s[A>>3];m=+s[t+80>>3]*-.5+ +s[t+24>>3];m=m-+((a[(a[(Id(Z)|0)+16>>2]|0)+252>>2]|0)/2|0|0);l=a[B>>2]|0;s[A>>3]=+s[l+16>>3]-+s[l+88>>3];s[C+8>>3]=b;s[C+24>>3]=+s[l+80>>3]*.5+ +s[l+24>>3];s[C>>3]=Q;s[f+56>>3]=Q;s[f+64>>3]=m;s[f+72>>3]=c;s[f+80>>3]=b;l=f+88|0;a[l>>2]=a[C>>2];a[l+4>>2]=a[C+4>>2];a[l+8>>2]=a[C+8>>2];a[l+12>>2]=a[C+12>>2];a[l+16>>2]=a[C+16>>2];a[l+20>>2]=a[C+20>>2];a[l+24>>2]=a[C+24>>2];a[l+28>>2]=a[C+28>>2];l=2;break}else{Q=+s[A+48>>3];l=C+16|0;m=+s[l>>3]+1.0;b=+s[t+80>>3]*-.5+ +s[t+24>>3];b=b-+((a[(a[(Id(Z)|0)+16>>2]|0)+252>>2]|0)/2|0|0);A=a[B>>2]|0;s[C>>3]=+s[A+96>>3]+ +s[A+16>>3];s[C+8>>3]=Q;s[C+24>>3]=+s[A+80>>3]*.5+ +s[A+24>>3];s[l>>3]=m;s[f+56>>3]=c;s[f+64>>3]=b;s[f+72>>3]=m;s[f+80>>3]=Q;l=f+88|0;a[l>>2]=a[C>>2];a[l+4>>2]=a[C+4>>2];a[l+8>>2]=a[C+8>>2];a[l+12>>2]=a[C+12>>2];a[l+16>>2]=a[C+16>>2];a[l+20>>2]=a[C+20>>2];a[l+24>>2]=a[C+24>>2];a[l+28>>2]=a[C+28>>2];l=2;break}}else{a[f+48>>2]=4;l=C+8|0;s[l>>3]=+s[(+s[l>>3]<+s[A+48>>3]?C:u)+8>>3];l=f+56|0;a[l>>2]=a[C>>2];a[l+4>>2]=a[C+4>>2];a[l+8>>2]=a[C+8>>2];a[l+12>>2]=a[C+12>>2];a[l+16>>2]=a[C+16>>2];a[l+20>>2]=a[C+20>>2];a[l+24>>2]=a[C+24>>2];a[l+28>>2]=a[C+28>>2];l=1}}while(0);a[f+52>>2]=l;while(1){l=a[e+16>>2]|0;if(!(r[l+112>>0]|0))break;e=a[l+116>>2]|0}r[((Z|0)==(a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)?l+56|0:l+16|0)+30>>0]=0;a[f+48>>2]=E}else{t=4;I=47}break}case 2:{E=r[(a[v>>2]|0)+89>>0]|0;t=E&255;if(!(E<<24>>24))I=46;else{a[C>>2]=a[f>>2];a[C+4>>2]=a[f+4>>2];a[C+8>>2]=a[f+8>>2];a[C+12>>2]=a[f+12>>2];a[C+16>>2]=a[f+16>>2];a[C+20>>2]=a[f+20>>2];a[C+24>>2]=a[f+24>>2];a[C+28>>2]=a[f+28>>2];do{if(!(t&4)){if(t&1|0)if((a[f+48>>2]|0)==4){c=+s[C>>3]+-1.0;l=a[B>>2]|0;Q=+s[l+24>>3]-+s[l+80>>3]*.5;m=+s[u>>3];b=Q-+((a[(a[(Id(Z)|0)+16>>2]|0)+252>>2]|0)/2|0|0);l=a[B>>2]|0;s[C+16>>3]=+s[l+16>>3]+-2.0-+s[l+88>>3];s[C+8>>3]=Q;s[C+24>>3]=+s[l+80>>3]*.5+ +s[l+24>>3];s[C>>3]=c;s[f+56>>3]=c;s[f+64>>3]=b;s[f+72>>3]=m;s[f+80>>3]=Q;l=f+88|0;a[l>>2]=a[C>>2];a[l+4>>2]=a[C+4>>2];a[l+8>>2]=a[C+8>>2];a[l+12>>2]=a[C+12>>2];a[l+16>>2]=a[C+16>>2];a[l+20>>2]=a[C+20>>2];a[l+24>>2]=a[C+24>>2];a[l+28>>2]=a[C+28>>2];l=2;break}else{l=C+24|0;s[l>>3]=+s[(+s[l>>3]>+s[A+8>>3]?C+16|0:A)+8>>3];l=f+56|0;a[l>>2]=a[C>>2];a[l+4>>2]=a[C+4>>2];a[l+8>>2]=a[C+8>>2];a[l+12>>2]=a[C+12>>2];a[l+16>>2]=a[C+16>>2];a[l+20>>2]=a[C+20>>2];a[l+24>>2]=a[C+24>>2];a[l+28>>2]=a[C+28>>2];l=1;break}c=+s[u>>3];if(!(t&8)){s[C>>3]=c+-1.0;i=a[B>>2]|0;c=+s[i+24>>3];b=+s[i+80>>3]*.5;if((a[f+48>>2]|0)==4){s[C+24>>3]=b+c;c=+s[A+48>>3]+-1.0;l=C}else{s[C+8>>3]=c-b;c=+s[A+48>>3];l=C+16|0}s[l+8>>3]=c;l=f+56|0;a[l>>2]=a[C>>2];a[l+4>>2]=a[C+4>>2];a[l+8>>2]=a[C+8>>2];a[l+12>>2]=a[C+12>>2];a[l+16>>2]=a[C+16>>2];a[l+20>>2]=a[C+20>>2];a[l+24>>2]=a[C+24>>2];a[l+28>>2]=a[C+28>>2];l=1;break}else{l=C+16|0;s[l>>3]=c+1.0;i=a[B>>2]|0;c=+s[i+24>>3];b=+s[i+80>>3]*.5;if((a[f+48>>2]|0)==4){s[C+24>>3]=b+c;c=+s[A+48>>3]+-1.0;l=C}else{s[C+8>>3]=c-b;c=+s[A+48>>3]+1.0}s[l+8>>3]=c;l=f+56|0;a[l>>2]=a[C>>2];a[l+4>>2]=a[C+4>>2];a[l+8>>2]=a[C+8>>2];a[l+12>>2]=a[C+12>>2];a[l+16>>2]=a[C+16>>2];a[l+20>>2]=a[C+20>>2];a[l+24>>2]=a[C+24>>2];a[l+28>>2]=a[C+28>>2];l=1;break}}else{l=C+8|0;s[l>>3]=+s[(+s[l>>3]<+s[A+48>>3]?C:u)+8>>3];l=f+56|0;a[l>>2]=a[C>>2];a[l+4>>2]=a[C+4>>2];a[l+8>>2]=a[C+8>>2];a[l+12>>2]=a[C+12>>2];a[l+16>>2]=a[C+16>>2];a[l+20>>2]=a[C+20>>2];a[l+24>>2]=a[C+24>>2];a[l+28>>2]=a[C+28>>2];l=1}}while(0);a[f+52>>2]=l;while(1){l=a[e+16>>2]|0;if(!(r[l+112>>0]|0))break;e=a[l+116>>2]|0}r[((Z|0)==(a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)?l+56|0:l+16|0)+30>>0]=0;a[f+48>>2]=t}break}default:I=46}if((I|0)==46){t=a[f+48>>2]|0;I=47}A:do{if((I|0)==47){if(w){e=f+56|0;l=f+52|0;t=z5[w&127](Z,(a[v>>2]|0)+56|0,t,e,l)|0;if(t){a[f+48>>2]=t;break}}else{l=f+52|0;e=f+56|0}a[e>>2]=a[f>>2];a[e+4>>2]=a[f+4>>2];a[e+8>>2]=a[f+8>>2];a[e+12>>2]=a[f+12>>2];a[e+16>>2]=a[f+16>>2];a[e+20>>2]=a[f+20>>2];a[e+24>>2]=a[f+24>>2];a[e+28>>2]=a[f+28>>2];a[l>>2]=1;switch(i|0){case 8:{gA(138394,106514,765,106558);break}case 2:{s[((a[f+48>>2]|0)==4?f+56|0:f+72|0)+8>>3]=+s[A+48>>3];break A}case 1:{s[f+64>>3]=+s[A+48>>3];a[f+48>>2]=4;break A}default:break A}}}while(0);k=G;return}function QN(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0;n=a[A+16>>2]|0;l=a[n+96>>2]|0;if((r[n+44>>0]|0)==0?(r[n+84>>0]|0)==0:0)t=6;else{e=r[n+49>>0]|0;i=e&255;if(((i&8|0)==0?(f=r[n+89>>0]|0,(f&8)==0):0)?(i&5|0)==0?1:e<<24>>24!=f<<24>>24:0)t=6;else A=0}if((t|0)==6)if(!l)A=18;else{A=(a[(a[(Id(a[((a[A>>2]&3|0)==2?A:A+-48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)!=0;A=~~(+s[(A?l+32|0:l+24|0)>>3]+18.0)}return A|0}function LN(A,e,i,f,n,l,t){A=A|0;e=e|0;i=i|0;f=f|0;n=+n;l=+l;t=t|0;var c=0,s=0,b=0,u=0;A=a[(a[e+(i<<2)>>2]|0)+16>>2]|0;if((r[A+44>>0]|0)==0?(r[A+84>>0]|0)==0:0)b=6;else b=3;do{if((b|0)==3){c=r[A+49>>0]|0;s=c&255;if(!(s&8)){u=r[A+89>>0]|0;if((u&8)==0?(s&5|0)==0?1:c<<24>>24!=u<<24>>24:0){b=6;break}if(!(r[A+89>>0]&8)){if(s&4|0){WN(e,i,f,n,l,t);break}if(!(s&1))gA(138394,106514,1231,106566);else{YN(e,i,f,n,l,t);break}}}if((c&2)==0?(r[A+89>>0]&2)==0:0){zN(e,i,f,n,l,t);break}WN(e,i,f,n,l,t)}}while(0);if((b|0)==6)yN(e,i,f,n,l,t);return}function yN(A,e,i,f,l,t){A=A|0;e=e|0;i=i|0;f=+f;l=+l;t=t|0;var c=0,b=0.0,u=0.0,w=0.0,o=0.0,h=0,d=0,B=0,g=0,v=0,E=0.0,C=0,I=0,Z=0,G=0.0,m=0,Q=0,L=0.0,y=0,W=0.0,z=0.0,Y=0.0,D=0.0,M=0.0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0.0,U=0.0,x=0;X=k;k=k+16080|0;J=X+80|0;p=X+64|0;N=X+48|0;R=X+32|0;F=X+16|0;V=X;Q=a[A+(e<<2)>>2]|0;u=l*.5/+(i|0);u=u>2.0?u:2.0;y=(a[((a[Q>>2]&3|0)==3?Q:Q+48|0)+40>>2]|0)+16|0;m=a[y>>2]|0;L=+s[m+16>>3];D=+s[m+24>>3];Q=a[Q+16>>2]|0;b=+s[Q+16>>3];W=b+L;z=+s[Q+24>>3]+D;l=+s[Q+56>>3];Y=l+L;D=+s[Q+64>>3]+D;c=!(z>=D)?-1:1;o=+s[m+96>>3];switch(DN(n[Q+49>>0]|0,n[Q+89>>0]|0)|0){case 65:case 32:{if(z==D)c=0-c|0;break}default:{}}H=(o-b)*3.0;b=(o-l)*3.0;E=u*+(c|0);v=J+8|0;C=J+16|0;I=J+32|0;Z=J+48|0;G=(D+z)*.5;m=J+64|0;Q=J+80|0;B=J+96|0;g=J+104|0;d=0;w=0.0;l=o;u=o=(i|0))break;h=e+1|0;e=a[A+(e<<2)>>2]|0;o=l+f;u=u+f;b=b+f;w=w+E;s[J>>3]=W;s[v>>3]=z;H=w+z;MN(p,u*.3333333333333333+W,H);a[C>>2]=a[p>>2];a[C+4>>2]=a[p+4>>2];a[C+8>>2]=a[p+8>>2];a[C+12>>2]=a[p+12>>2];U=o+L;MN(N,U,H);a[I>>2]=a[N>>2];a[I+4>>2]=a[N+4>>2];a[I+8>>2]=a[N+8>>2];a[I+12>>2]=a[N+12>>2];MN(R,U,G);a[Z>>2]=a[R>>2];a[Z+4>>2]=a[R+4>>2];a[Z+8>>2]=a[R+8>>2];a[Z+12>>2]=a[R+12>>2];H=D-w;MN(F,U,H);a[m>>2]=a[F>>2];a[m+4>>2]=a[F+4>>2];a[m+8>>2]=a[F+8>>2];a[m+12>>2]=a[F+12>>2];MN(V,b*.3333333333333333+Y,H);a[Q>>2]=a[V>>2];a[Q+4>>2]=a[V+4>>2];a[Q+8>>2]=a[V+8>>2];a[Q+12>>2]=a[V+12>>2];s[B>>3]=Y;s[g>>3]=D;c=e+16|0;if((a[(a[c>>2]|0)+96>>2]|0)!=0?(x=(a[(a[(Id(a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)==0,c=a[(a[c>>2]|0)+96>>2]|0,M=+s[(x?c+24|0:c+32|0)>>3],x=a[y>>2]|0,s[c+56>>3]=M*.5+o+ +s[x+16>>3],s[c+64>>3]=+s[x+24>>3],r[c+81>>0]=1,M>f):0)l=M+l;else l=o;vN(e,a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,J,7,t);e=h;d=d+1|0}k=X;return}function WN(A,e,i,f,l,t){A=A|0;e=e|0;i=i|0;f=+f;l=+l;t=t|0;var c=0.0,b=0,u=0.0,w=0.0,o=0.0,h=0.0,d=0,B=0.0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0.0,Q=0,L=0,y=0.0,W=0,z=0.0,Y=0.0,D=0.0,M=0.0,F=0.0,V=0,J=0,p=0,N=0,R=0,X=0,H=0,U=0.0,x=0;H=k;k=k+16080|0;p=H+80|0;N=H+64|0;R=H+48|0;X=H+32|0;V=H+16|0;J=H;L=a[A+(e<<2)>>2]|0;h=f*.5/+(i|0);h=h>2.0?h:2.0;W=(a[((a[L>>2]&3|0)==3?L:L+48|0)+40>>2]|0)+16|0;b=a[W>>2]|0;D=+s[b+16>>3];y=+s[b+24>>3];L=a[L+16>>2]|0;c=+s[L+16>>3];o=+s[L+24>>3];z=c+D;Y=o+y;f=+s[L+56>>3];w=+s[L+64>>3];D=f+D;M=w+y;u=!(z>=D)?-1.0:1.0;B=+s[b+80>>3]*.5;switch(DN(n[L+49>>0]|0,n[L+89>>0]|0)|0){case 15:{c=(h-f+ +s[b+96>>3])*u;break}case 38:{c=(f+h+ +s[b+88>>3])*u;break}case 41:{c=(h-c+ +s[b+96>>3])*u;break}case 48:{c=(h-c+ +s[b+96>>3])*u;break}case 58:case 57:case 51:case 47:case 37:case 14:{c=u*.3333333333333333*(c-f+ +s[b+88>>3]+ +s[b+96>>3]);break}case 73:{c=(c+h+ +s[b+88>>3])*u;break}case 83:{c=(+s[b+88>>3]+c)*u;break}case 84:{c=((c-f+ +s[b+88>>3]+ +s[b+96>>3])*.5+h)*u;break}case 85:case 75:case 74:{c=((c-f+ +s[b+88>>3]+ +s[b+96>>3])*.5+h*2.0)*u;break}default:c=0.0}o=(B-o)*3.0;w=(B-w)*3.0;h=u*h;C=p+8|0;I=p+16|0;Z=p+32|0;G=p+48|0;m=(D+z)*.5;Q=p+64|0;L=p+80|0;v=p+96|0;E=p+104|0;g=0;f=B;o=B=(i|0))break;d=e+1|0;e=a[A+(e<<2)>>2]|0;w=f+l;o=o+l;u=u+l;c=c+h;s[p>>3]=z;s[C>>3]=Y;B=c+z;MN(N,B,o*.3333333333333333+Y);a[I>>2]=a[N>>2];a[I+4>>2]=a[N+4>>2];a[I+8>>2]=a[N+8>>2];a[I+12>>2]=a[N+12>>2];U=w+y;MN(R,B,U);a[Z>>2]=a[R>>2];a[Z+4>>2]=a[R+4>>2];a[Z+8>>2]=a[R+8>>2];a[Z+12>>2]=a[R+12>>2];MN(X,m,U);a[G>>2]=a[X>>2];a[G+4>>2]=a[X+4>>2];a[G+8>>2]=a[X+8>>2];a[G+12>>2]=a[X+12>>2];B=D-c;MN(V,B,U);a[Q>>2]=a[V>>2];a[Q+4>>2]=a[V+4>>2];a[Q+8>>2]=a[V+8>>2];a[Q+12>>2]=a[V+12>>2];MN(J,B,u*.3333333333333333+M);a[L>>2]=a[J>>2];a[L+4>>2]=a[J+4>>2];a[L+8>>2]=a[J+8>>2];a[L+12>>2]=a[J+12>>2];s[v>>3]=D;s[E>>3]=M;b=e+16|0;if((a[(a[b>>2]|0)+96>>2]|0)!=0?(x=(a[(a[(Id(a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)==0,b=a[(a[b>>2]|0)+96>>2]|0,F=+s[(x?b+32|0:b+24|0)>>3],x=a[W>>2]|0,s[b+64>>3]=F*.5+w+ +s[x+24>>3],s[b+56>>3]=+s[x+16>>3],r[b+81>>0]=1,F>l):0)f=F+f;else f=w;vN(e,a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,p,7,t);e=d;g=g+1|0}k=H;return}function zN(A,e,i,f,l,t){A=A|0;e=e|0;i=i|0;f=+f;l=+l;t=t|0;var c=0,b=0.0,u=0.0,w=0.0,o=0.0,h=0,d=0,B=0,g=0,v=0,E=0.0,C=0,I=0,Z=0,G=0.0,m=0,Q=0,L=0.0,y=0,W=0.0,z=0.0,Y=0.0,D=0.0,M=0.0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0.0,U=0.0,x=0;X=k;k=k+16080|0;J=X+80|0;p=X+64|0;N=X+48|0;R=X+32|0;F=X+16|0;V=X;Q=a[A+(e<<2)>>2]|0;u=l*.5/+(i|0);u=u>2.0?u:2.0;y=(a[((a[Q>>2]&3|0)==3?Q:Q+48|0)+40>>2]|0)+16|0;m=a[y>>2]|0;L=+s[m+16>>3];D=+s[m+24>>3];Q=a[Q+16>>2]|0;b=+s[Q+16>>3];W=b+L;z=+s[Q+24>>3]+D;l=+s[Q+56>>3];Y=l+L;D=+s[Q+64>>3]+D;c=!(z>=D)?-1:1;o=+s[m+88>>3];switch(DN(n[Q+49>>0]|0,n[Q+89>>0]|0)|0){case 67:case 12:{if(z==D)c=0-c|0;break}default:{}}H=(b+o)*3.0;b=(l+o)*3.0;E=u*+(c|0);v=J+8|0;C=J+16|0;I=J+32|0;Z=J+48|0;G=(D+z)*.5;m=J+64|0;Q=J+80|0;B=J+96|0;g=J+104|0;d=0;w=0.0;l=o;u=o=(i|0))break;h=e+1|0;e=a[A+(e<<2)>>2]|0;o=l+f;u=u+f;b=b+f;w=w+E;s[J>>3]=W;s[v>>3]=z;H=w+z;MN(p,W-u*.3333333333333333,H);a[C>>2]=a[p>>2];a[C+4>>2]=a[p+4>>2];a[C+8>>2]=a[p+8>>2];a[C+12>>2]=a[p+12>>2];U=L-o;MN(N,U,H);a[I>>2]=a[N>>2];a[I+4>>2]=a[N+4>>2];a[I+8>>2]=a[N+8>>2];a[I+12>>2]=a[N+12>>2];MN(R,U,G);a[Z>>2]=a[R>>2];a[Z+4>>2]=a[R+4>>2];a[Z+8>>2]=a[R+8>>2];a[Z+12>>2]=a[R+12>>2];H=D-w;MN(F,U,H);a[m>>2]=a[F>>2];a[m+4>>2]=a[F+4>>2];a[m+8>>2]=a[F+8>>2];a[m+12>>2]=a[F+12>>2];MN(V,Y-b*.3333333333333333,H);a[Q>>2]=a[V>>2];a[Q+4>>2]=a[V+4>>2];a[Q+8>>2]=a[V+8>>2];a[Q+12>>2]=a[V+12>>2];s[B>>3]=Y;s[g>>3]=D;c=e+16|0;if((a[(a[c>>2]|0)+96>>2]|0)!=0?(x=(a[(a[(Id(a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)==0,c=a[(a[c>>2]|0)+96>>2]|0,M=+s[(x?c+24|0:c+32|0)>>3],x=a[y>>2]|0,s[c+56>>3]=M*-.5-o+ +s[x+16>>3],s[c+64>>3]=+s[x+24>>3],r[c+81>>0]=1,M>f):0)l=M+l;else l=o;vN(e,a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,J,7,t);e=h;d=d+1|0}k=X;return}function YN(A,e,i,f,l,t){A=A|0;e=e|0;i=i|0;f=+f;l=+l;t=t|0;var c=0.0,b=0.0,u=0.0,w=0.0,o=0,h=0,d=0,B=0,g=0,v=0,E=0.0,C=0,I=0.0,Z=0.0,G=0.0,m=0.0,Q=0.0,L=0,y=0,W=0,z=0.0,Y=0,D=0,M=0.0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0.0,U=0.0,x=0;X=k;k=k+16080|0;J=X+80|0;p=X+64|0;N=X+48|0;R=X+32|0;F=X+16|0;V=X;L=a[A+(e<<2)>>2]|0;Q=f*.5/+(i|0);C=(a[((a[L>>2]&3|0)==3?L:L+48|0)+40>>2]|0)+16|0;y=a[C>>2]|0;G=+s[y+16>>3];E=+s[y+24>>3];L=a[L+16>>2]|0;b=+s[L+24>>3];I=+s[L+16>>3]+G;Z=b+E;u=+s[L+64>>3];G=+s[L+56>>3]+G;m=u+E;v=!(I>=G)?-1:1;w=+s[y+80>>3]*.5;L=(DN(n[L+49>>0]|0,n[L+89>>0]|0)|0)==67;b=(b+w)*3.0;u=(u+w)*3.0;Q=(Q>2.0?Q:2.0)*+((L?0-v|0:v)|0);v=J+8|0;L=J+16|0;y=J+32|0;W=J+48|0;z=(G+I)*.5;Y=J+64|0;D=J+80|0;B=J+96|0;g=J+104|0;f=w;c=0.0;b=w=(i|0))break;d=e+1|0;o=a[A+(e<<2)>>2]|0;w=f+l;b=b+l;u=u+l;c=c+Q;s[J>>3]=I;s[v>>3]=Z;H=c+I;MN(p,H,Z-b*.3333333333333333);a[L>>2]=a[p>>2];a[L+4>>2]=a[p+4>>2];a[L+8>>2]=a[p+8>>2];a[L+12>>2]=a[p+12>>2];U=E-w;MN(N,H,U);a[y>>2]=a[N>>2];a[y+4>>2]=a[N+4>>2];a[y+8>>2]=a[N+8>>2];a[y+12>>2]=a[N+12>>2];MN(R,z,U);a[W>>2]=a[R>>2];a[W+4>>2]=a[R+4>>2];a[W+8>>2]=a[R+8>>2];a[W+12>>2]=a[R+12>>2];H=G-c;MN(F,H,U);a[Y>>2]=a[F>>2];a[Y+4>>2]=a[F+4>>2];a[Y+8>>2]=a[F+8>>2];a[Y+12>>2]=a[F+12>>2];MN(V,H,m-u*.3333333333333333);a[D>>2]=a[V>>2];a[D+4>>2]=a[V+4>>2];a[D+8>>2]=a[V+8>>2];a[D+12>>2]=a[V+12>>2];s[B>>3]=G;s[g>>3]=m;e=o+16|0;if((a[(a[e>>2]|0)+96>>2]|0)!=0?(x=(a[(a[(Id(a[((a[o>>2]&3|0)==3?o:o+48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)==0,e=a[(a[e>>2]|0)+96>>2]|0,M=+s[(x?e+32|0:e+24|0)>>3],x=a[C>>2]|0,s[e+64>>3]=M*-.5-w+ +s[x+24>>3],s[e+56>>3]=+s[x+16>>3],r[e+81>>0]=1,M>l):0)f=M+f;else f=w;vN(o,a[((a[o>>2]&3|0)==2?o:o+-48|0)+40>>2]|0,J,7,t);e=d;h=h+1|0}k=X;return}function DN(A,e){A=A|0;e=e|0;var i=0;i=0;while(1){if((i|0)>=8){e=-1;break}if((a[22044+(i<<2)>>2]|0)==(e|0)){e=i;break}i=i+1|0}i=0;while(1){if((i|0)>=8){i=-1;break}if((a[22044+(i<<2)>>2]|0)==(A|0))break;i=i+1|0}if((i|e|0)<0)i=0;else i=a[22076+(i<<5)+(e<<2)>>2]|0;return i|0}function MN(A,e,i){A=A|0;e=+e;i=+i;s[A>>3]=e;s[A+8>>3]=i;return}function FN(A){A=A|0;var e=0,i=0;if((a[47203]|0)!=0|(a[47202]|0)!=0){e=A+16|0;i=a[(a[e>>2]|0)+100>>2]|0;if((i|0?(r[i+81>>0]|0)==0:0)?VN(A,1)|0:0){i=Id(a[((a[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0)|0;HR(i,a[(a[e>>2]|0)+100>>2]|0)}i=a[(a[e>>2]|0)+104>>2]|0;if((i|0?(r[i+81>>0]|0)==0:0)?VN(A,0)|0:0){i=Id(a[((a[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0)|0;HR(i,a[(a[e>>2]|0)+104>>2]|0)}}return}function VN(A,e){A=A|0;e=e|0;var i=0,f=0.0,n=0.0,l=0,t=0.0,c=0,b=0,u=0,w=0,o=0,h=0,d=0.0;h=k;k=k+96|0;w=h+32|0;b=h+16|0;u=h;l=A+16|0;do{if((r[(a[l>>2]|0)+112>>0]|0)!=6){i=a[47203]|0;if(!((i|0)!=0?(r[(Uo(A,i)|0)>>0]|0)!=0:0)){i=a[47202]|0;if(!i){i=0;break}if(!(r[(Uo(A,i)|0)>>0]|0)){i=0;break}}e=e<<24>>24==0;o=a[l>>2]|0;o=a[(e?o+104|0:o+100|0)>>2]|0;i=JN(A)|0;if(i){c=a[i>>2]|0;do{if(e){if(a[c+8>>2]|0){i=a[c>>2]|0;t=+s[i>>3];n=+s[c+16>>3];i=i+8|0;f=+s[c+24>>3];break}i=a[c>>2]|0;n=+s[i>>3];f=+s[i+8>>3];i=0;while(1){if((i|0)==4)break;u=w+(i<<4)|0;l=(a[c>>2]|0)+(i<<4)|0;a[u>>2]=a[l>>2];a[u+4>>2]=a[l+4>>2];a[u+8>>2]=a[l+8>>2];a[u+12>>2]=a[l+12>>2];i=i+1|0}QR(b,w,3,.1,0,0);t=+s[b>>3];i=b+8|0}else{e=(a[i+4>>2]|0)+-1|0;l=c+(e*48|0)|0;if(a[c+(e*48|0)+12>>2]|0){w=a[l>>2]|0;i=(a[c+(e*48|0)+4>>2]|0)+-1|0;t=+s[w+(i<<4)>>3];n=+s[c+(e*48|0)+32>>3];i=w+(i<<4)+8|0;f=+s[c+(e*48|0)+40>>3];break}b=a[l>>2]|0;e=c+(e*48|0)+4|0;i=(a[e>>2]|0)+-1|0;n=+s[b+(i<<4)>>3];f=+s[b+(i<<4)+8>>3];i=0;while(1){if((i|0)==4)break;b=w+(i<<4)|0;c=(a[l>>2]|0)+(i+-4+(a[e>>2]|0)<<4)|0;a[b>>2]=a[c>>2];a[b+4>>2]=a[c+4>>2];a[b+8>>2]=a[c+8>>2];a[b+12>>2]=a[c+12>>2];i=i+1|0}QR(u,w,3,.9,0,0);t=+s[u>>3];i=u+8|0}}while(0);d=+N(+(+s[i>>3]-f),+(t-n));d=+oR(A,a[47203]|0,-25.0,-180.0)*.017453292519943295+d;t=+oR(A,a[47202]|0,1.0,0.0)*10.0;s[o+56>>3]=t*+D(+d)+n;s[o+64>>3]=+M(+d)*t+f;r[o+81>>0]=1;i=1}else i=0}else i=0}while(0);k=h;return i|0}function JN(A){A=A|0;var e=0,i=0,f=0,n=0,l=0;l=k;k=k+16|0;f=l;e=A;while(1){i=a[e+16>>2]|0;e=a[i+8>>2]|0;if(e|0)break;if(!(r[i+112>>0]|0)){n=5;break}e=a[i+116>>2]|0}if((n|0)==5){n=Vh(a[((a[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0)|0;e=Vh(a[((a[A>>2]&3|0)==2?A:A+-48|0)+40>>2]|0)|0;a[f>>2]=n;a[f+4>>2]=e;ao(1,106579,f)|0;e=0}k=l;return e|0}function pN(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,n=0.0,l=0.0,t=0.0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0.0,v=0.0;B=k;k=k+96|0;b=B+80|0;u=B+64|0;w=B+48|0;o=B+32|0;h=B+16|0;d=B;c=f[(a[e+16>>2]|0)+136>>1]|0;e=i+16|0;NN(a[(a[e>>2]|0)+8>>2]|0,o,h);r=+s[o>>3];n=+s[h>>3];g=r-n;l=+s[o+8>>3];t=+s[h+8>>3];v=l-t;A:do{if(v*v+g*g<1.0e-06){a[w>>2]=a[o>>2];a[w+4>>2]=a[o+4>>2];a[w+8>>2]=a[o+8>>2];a[w+12>>2]=a[o+12>>2]}else switch(c&14){case 4:case 10:{s[u>>3]=(n+r)*.5;s[u+8>>3]=(t+l)*.5;h=a[(a[e>>2]|0)+8>>2]|0;a[b>>2]=a[u>>2];a[b+4>>2]=a[u+4>>2];a[b+8>>2]=a[u+8>>2];a[b+12>>2]=a[u+12>>2];DR(d,h,b);a[w>>2]=a[d>>2];a[w+4>>2]=a[d+4>>2];a[w+8>>2]=a[d+8>>2];a[w+12>>2]=a[d+12>>2];break A}default:{RN(w,a[(a[e>>2]|0)+8>>2]|0,o,h);break A}}}while(0);a[A>>2]=a[w>>2];a[A+4>>2]=a[w+4>>2];a[A+8>>2]=a[w+8>>2];a[A+12>>2]=a[w+12>>2];k=B;return}function NN(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,s=0;l=k;k=k+32|0;n=l+16|0;f=l;c=a[A>>2]|0;r=a[c>>2]|0;t=a[c+8>>2]|0;s=c+16|0;a[n>>2]=a[s>>2];a[n+4>>2]=a[s+4>>2];a[n+8>>2]=a[s+8>>2];a[n+12>>2]=a[s+12>>2];c=c+32|0;a[f>>2]=a[c>>2];a[f+4>>2]=a[c+4>>2];a[f+8>>2]=a[c+8>>2];a[f+12>>2]=a[c+12>>2];if(!t){a[e>>2]=a[r>>2];a[e+4>>2]=a[r+4>>2];a[e+8>>2]=a[r+8>>2];a[e+12>>2]=a[r+12>>2]}else{a[e>>2]=a[n>>2];a[e+4>>2]=a[n+4>>2];a[e+8>>2]=a[n+8>>2];a[e+12>>2]=a[n+12>>2]}t=a[A>>2]|0;c=(a[A+4>>2]|0)+-1|0;r=a[t+(c*48|0)>>2]|0;A=a[t+(c*48|0)+4>>2]|0;s=a[t+(c*48|0)+12>>2]|0;e=t+(c*48|0)+16|0;a[n>>2]=a[e>>2];a[n+4>>2]=a[e+4>>2];a[n+8>>2]=a[e+8>>2];a[n+12>>2]=a[e+12>>2];c=t+(c*48|0)+32|0;a[f>>2]=a[c>>2];a[f+4>>2]=a[c+4>>2];a[f+8>>2]=a[c+8>>2];a[f+12>>2]=a[c+12>>2];if(!s){s=r+(A+-1<<4)|0;a[i>>2]=a[s>>2];a[i+4>>2]=a[s+4>>2];a[i+8>>2]=a[s+8>>2];a[i+12>>2]=a[s+12>>2]}else{a[i>>2]=a[f>>2];a[i+4>>2]=a[f+4>>2];a[i+8>>2]=a[f+8>>2];a[i+12>>2]=a[f+12>>2]}k=l;return}function RN(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0.0,l=0,t=0,c=0,b=0,u=0.0,w=0.0,k=0.0,o=0.0,h=0.0,d=0,B=0.0;d=a[e+4>>2]|0;n=0.0;f=0;while(1){if((f|0)>=(d|0))break;b=a[e>>2]|0;c=a[b+(f*48|0)>>2]|0;b=a[b+(f*48|0)+4>>2]|0;l=3;t=0;while(1){if((l|0)>=(b|0))break;h=+s[c+(t<<4)>>3]-+s[c+(l<<4)>>3];o=+s[c+(t<<4)+8>>3]-+s[c+(l<<4)+8>>3];l=l+3|0;t=t+3|0;n=+z(+(o*o+h*h))+n}f=f+1|0}b=0;n=n*.5;A:while(1){if((b|0)>=(d|0)){f=15;break}c=a[e>>2]|0;t=a[c+(b*48|0)>>2]|0;c=a[c+(b*48|0)+4>>2]|0;f=3;l=0;while(1){if((f|0)>=(c|0))break;u=+s[t+(l<<4)>>3];o=+s[t+(l<<4)+8>>3];w=+s[t+(f<<4)>>3];k=+s[t+(f<<4)+8>>3];h=u-w;B=o-k;h=+z(+(B*B+h*h));if(h>=n){f=12;break A}f=f+3|0;l=l+3|0;n=n-h}b=b+1|0}if((f|0)==12){s[i>>3]=u;s[i+8>>3]=o;s[r>>3]=w;s[r+8>>3]=k;B=h-n;s[A>>3]=(B*u+w*n)/h;s[A+8>>3]=(B*o+k*n)/h;return}else if((f|0)==15)gA(138712,106514,1316,106641)}function XN(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;FN(e);return}function HN(A,e,i,f,n){A=A|0;e=e|0;i=+i;f=f|0;n=n|0;var l=0.0,t=0.0,c=0.0,b=0.0,u=0.0,w=0,k=0,o=0.0,h=0.0,d=0.0,B=0,g=0.0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0.0,L=0.0,y=0,W=0,z=0,Y=0,F=0,V=0,J=0;F=UN(A)|0;Y=a[F+4>>2]|0;V=a[F>>2]|0;z=Y+-1|0;Q=+s[V+(z<<6)+16>>3];L=+(Y|0);y=(n|0)==2;W=(f|0)!=0;w=0;t=0.0;l=0.0;b=0.0;u=0.0;while(1){if((w|0)>=(Y|0))break;A=~~+xN(+(w+-1|0),L);m=w+1|0;J=~~+xN(+(m|0),L);k=V+(w<<6)|0;u=+s[k>>3];G=V+(w<<6)+8|0;b=+s[G>>3];B=V+(w<<6)+16|0;g=+s[B>>3];v=V+(w<<6)+24|0;E=V+(w<<6)+32|0;C=V+(w<<6)+40|0;I=V+(w<<6)+48|0;Z=V+(w<<6)+56|0;c=+TN(+s[V+(J<<6)+8>>3]-b,+s[V+(J<<6)>>3]-u);h=+TN(+s[V+(A<<6)+8>>3]-b,+s[V+(A<<6)>>3]-u);d=+I5[e&7](g,Q,i);A=(w|0)==0;do{if(A|(w|0)==(z|0))if(A){l=c+1.5707963267948966;if(!y){A=0;o=l;t=d;break}A=0;o=l;t=d;b=b-+M(+c)*d;u=u-+D(+c)*d;break}else{l=h+-1.5707963267948966;if(!y){A=0;o=l;t=d;break}A=0;o=l;t=d;b=b-+M(+h)*d;u=u-+D(+h)*d;break}else{o=c-h;o=1.5707963267948966-(o<0.0?o+6.283185307179586:o)*.5;t=+D(+o);t=t==0.0?0.0:d/t;l=c+1.5707963267948966;c=o+l;if(W|t>d*10.0){h=+xN(h+-1.5707963267948966,6.283185307179586);A=1;o=+xN(l,6.283185307179586);t=d;l=h}else{A=0;o=c;l=c}}}while(0);s[k>>3]=u;s[G>>3]=b;s[B>>3]=g;r[v>>0]=108;s[E>>3]=l;s[C>>3]=t;a[I>>2]=A;s[Z>>3]=o;w=m}k=qF(12)|0;A=0;while(1){if((A|0)>=(Y|0))break;u=+s[V+(A<<6)>>3];b=+s[V+(A<<6)+8>>3];l=+s[V+(A<<6)+32>>3];t=+s[V+(A<<6)+40>>3];J=a[V+(A<<6)+48>>2]|0;c=+s[V+(A<<6)+56>>3];jN(k,+D(+l)*t+u,+M(+l)*t+b);if(J|0)PN(u,b,t,1,l,c,f,k);A=A+1|0}w=(n|0)==1;c=l+3.141592653589793;if(w)SN(k,u,b,t,l,c);else{jN(k,+D(+c)*t+u,+M(+c)*t+b);l=c}A=Y+-2|0;c=u;while(1){if((A|0)<=-1)break;u=+s[V+(A<<6)>>3];b=+s[V+(A<<6)+8>>3];t=+s[V+(A<<6)+40>>3];J=a[V+(A<<6)+48>>2]|0;l=+s[V+(A<<6)+32>>3]+3.141592653589793;c=+s[V+(A<<6)+56>>3]+3.141592653589793;jN(k,+D(+c)*t+u,+M(+c)*t+b);if(J|0)PN(u,b,t,0,l,c,f,k);A=A+-1|0;c=u}if(w)SN(k,c,b,t,l,l+3.141592653589793);ON(F);return k|0}function UN(A){A=A|0;var e=0.0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0.0;h=k;k=k+144|0;t=h+128|0;l=h+112|0;c=h+96|0;s=h+64|0;b=h;u=h+80|0;w=KN()|0;o=a[A+4>>2]|0;f=a[A>>2]|0;a[t>>2]=a[f>>2];a[t+4>>2]=a[f+4>>2];a[t+8>>2]=a[f+8>>2];a[t+12>>2]=a[f+12>>2];_N(w,t,0.0);n=b+48|0;a[n>>2]=a[f>>2];a[n+4>>2]=a[f+4>>2];a[n+8>>2]=a[f+8>>2];a[n+12>>2]=a[f+12>>2];i=0;e=0.0;A:while(1){r=i+3|0;if((r|0)>=(o|0))break;a[b>>2]=a[n>>2];a[b+4>>2]=a[n+4>>2];a[b+8>>2]=a[n+8>>2];a[b+12>>2]=a[n+12>>2];A=1;while(1){if((A|0)==4)break;d=b+(A<<4)|0;B=f+(A+i<<4)|0;a[d>>2]=a[B>>2];a[d+4>>2]=a[B+4>>2];a[d+8>>2]=a[B+8>>2];a[d+12>>2]=a[B+12>>2];A=A+1|0}a[c>>2]=a[b>>2];a[c+4>>2]=a[b+4>>2];a[c+8>>2]=a[b+8>>2];a[c+12>>2]=a[b+12>>2];A=1;while(1){if((A|0)==21){i=r;continue A}QR(u,b,3,+(A|0)*.05,0,0);a[s>>2]=a[u>>2];a[s+4>>2]=a[u+4>>2];a[s+8>>2]=a[u+8>>2];a[s+12>>2]=a[u+12>>2];a[l>>2]=a[c>>2];a[l+4>>2]=a[c+4>>2];a[l+8>>2]=a[c+8>>2];a[l+12>>2]=a[c+12>>2];a[t>>2]=a[u>>2];a[t+4>>2]=a[u+4>>2];a[t+8>>2]=a[u+8>>2];a[t+12>>2]=a[u+12>>2];g=+qN(l,t)+e;a[t>>2]=a[s>>2];a[t+4>>2]=a[s+4>>2];a[t+8>>2]=a[s+8>>2];a[t+12>>2]=a[s+12>>2];_N(w,t,g);a[c>>2]=a[s>>2];a[c+4>>2]=a[s+4>>2];a[c+8>>2]=a[s+8>>2];a[c+12>>2]=a[s+12>>2];A=A+1|0;e=g}}$N(w);k=h;return w|0}function xN(A,e){A=+A;e=+e;var i=0.0;i=A-+y(+(A/e))*e;return+(!(A<0.0)&!(A>=e)?A:i)}function TN(A,e){A=+A;e=+e;if(!(A==0.0&e==0.0)){A=+N(+A,+e);if(!(A>=0.0))A=A+6.283185307179586}else A=0.0;return+A}function jN(A,e,i){A=A|0;e=+e;i=+i;var r=0,f=0;r=a[A>>2]|0;f=A+4|0;if((r|0)<(a[f>>2]|0))f=a[A+8>>2]|0;else{a[f>>2]=2e3;r=A+8|0;f=eV(a[r>>2]|0,32e3)|0;a[r>>2]=f;r=a[A>>2]|0}a[A>>2]=r+1;s[f+(r<<4)>>3]=e;s[f+(r<<4)+8>>3]=i;return}function PN(A,e,i,r,f,a,n,l){A=+A;e=+e;i=+i;r=r|0;f=+f;a=+a;n=n|0;l=l|0;var t=0.0;r=(r|0)==0;t=r?f:a;do{if((n|0)==1){f=(r?a:f)-t;f=!(f<=1.7453292519943296e-03)?f:f+6.283185307179586;if(f<3.141592653589793){SN(l,A,e,i,f+t,t);break}else{jN(l,+D(+t)*i+A,+M(+t)*i+A);break}}else jN(l,+D(+t)*i+A,+M(+t)*i+A)}while(0);return}function SN(A,e,i,r,f,a){A=A|0;e=+e;i=+i;r=+r;f=+f;a=+a;var n=0,l=0.0;jN(A,+D(+f)*r+e,+M(+f)*r+i);A:do{if(!(r==0.0)){while(1){if(!(a>f))break;a=a+-6.283185307179586}a=f-a;while(1){if(!(a>6.283185307179586))break;a=a+-6.283185307179586}a=a*.05263157894736842;n=1;while(1){if((n|0)==20)break A;l=f-a*+(n|0);jN(A,+D(+l)*r+e,+M(+l)*r+i);n=n+1|0}}}while(0);return}function ON(A){A=A|0;L2(a[A>>2]|0);L2(A);return}function KN(){var A=0;A=qF(12)|0;a[A+4>>2]=0;a[A+8>>2]=2e3;a[A>>2]=qF(128e3)|0;return A|0}function _N(A,e,i){A=A|0;e=e|0;i=+i;var r=0,f=0,n=0,l=0;l=A+4|0;r=a[l>>2]|0;f=A+8|0;n=a[f>>2]|0;if((r|0)<(n|0))A=a[A>>2]|0;else{a[f>>2]=n<<1;r=eV(a[A>>2]|0,n<<7)|0;a[A>>2]=r;A=r;r=a[l>>2]|0}s[A+(r<<6)>>3]=+s[e>>3];s[A+(r<<6)+8>>3]=+s[e+8>>3];a[l>>2]=r+1;s[A+(r<<6)+16>>3]=i;return}function qN(A,e){A=A|0;e=e|0;var i=0.0,r=0.0;i=+s[A>>3]-+s[e>>3];r=+s[A+8>>3]-+s[e+8>>3];return+ +z(+(r*r+i*i))}function $N(A){A=A|0;var e=0;e=a[A+4>>2]|0;if((a[A+8>>2]|0)>(e|0))a[A>>2]=eV(a[A>>2]|0,e<<6)|0;return}function AR(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,s=0;s=k;k=k+16|0;c=s+8|0;t=s;n=s+12|0;a[n>>2]=0;l=a[i+4>>2]|0;if(!l)gA(106658,106669,203,106680);r=a[l>>2]|0;if(!r)gA(106694,106669,206,106680);f=l+8|0;if(!(a[f>>2]|0))a[f>>2]=eR(r)|0;if(true)r=0;else{}if(!((Or(e,i,r)|0)<<24>>24))iR(i,r);do{if(r|0){f=a[n>>2]|0;e=a[15712]|0;r=a[l>>2]|0;if(!f){a[c>>2]=r;f3(e,106737,c)|0;break}else{a[t>>2]=r;a[t+4>>2]=f;f3(e,106705,t)|0;break}}}while(0);c=i+32|0;a[A>>2]=a[c>>2];a[A+4>>2]=a[c+4>>2];a[A+8>>2]=a[c+8>>2];a[A+12>>2]=a[c+12>>2];k=s;return}function eR(A){A=A|0;var e=0;e=a[47301]|0;if((e|0)!=0?(p1(e,A)|0)==0:0)A=a[47310]|0;else{L2(e);a[47301]=b3(A)|0;A=i8(189204,22332,35,36,95)|0;a[47310]=A}return A|0}function iR(A,e){A=A|0;e=e|0;var i=0,f=0.0,n=0,l=0.0,t=0,c=0.0;t=a[A+4>>2]|0;i=a[t>>2]|0;l=+s[t+16>>3];t=A+32|0;s[t>>3]=0.0;s[A+40>>3]=l*1.2;s[A+16>>3]=0.0;s[A+24>>3]=l*.1;a[A+8>>2]=0;a[A+12>>2]=0;if(T1(i,106771,4)|0)if((T1(i,106776,5)|0)!=0?(T1(i,106782,9)|0)!=0:0){n=4248;i=106792}else{n=8344;i=106828}else{n=6296;i=106809}if(e|0)a[e>>2]=i;i=a[A>>2]|0;if(i|0){f=0.0;while(1){A=r[i>>0]|0;if(!(A<<24>>24))break;c=f+ +s[n+((A&255)<<3)>>3];s[t>>3]=c;i=i+1|0;f=c}s[t>>3]=f*l}return}function rR(A,e){A=A|0;e=e|0;return p1(a[A>>2]|0,a[e>>2]|0)|0}function fR(A){A=A|0;var e=0;e=A+108|0;a[e>>2]=0;a[A+112>>2]=32;a[A+116>>2]=-1;a[A+120>>2]=33;a[A+124>>2]=63;a[A+128>>2]=55;a[A+132>>2]=0;a[A+136>>2]=0;a[A+140>>2]=0;e=jk(e,a[4581]|0)|0;a[A+144>>2]=e;return e|0}function aR(A,e,i){A=A|0;e=e|0;i=i|0;i=y2(1,32)|0;A=a[e>>2]|0;if(A|0)a[i>>2]=b3(A)|0;A=a[e+4>>2]|0;if(A|0)a[i+4>>2]=b3(A)|0;a[i+24>>2]=a[e+24>>2]&127;s[i+16>>3]=+s[e+16>>3];a[i+8>>2]=a[e+8>>2];return i|0}function nR(A,e,i){A=A|0;e=e|0;i=i|0;L2(a[e>>2]|0);L2(a[e+4>>2]|0);L2(e);return}function lR(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,n=0.0,l=0,t=0;A=a[e>>2]|0;r=a[i>>2]|0;l=(r|0)==0;if(!A)if(l)t=5;else A=-1;else if(!l){A=A1(A,r)|0;if(!A)t=5}else A=1;do{if((t|0)==5){A=a[e+4>>2]|0;r=a[i+4>>2]|0;l=(r|0)==0;if(!A){if(!l){A=-1;break}}else{if(l){A=1;break}A=A1(A,r)|0;if(A|0)break}A=(a[e+24>>2]&127)-(a[i+24>>2]&127)|0;if(!A){n=+s[e+16>>3];f=+s[i+16>>3];if(nf&1}}}while(0);return A|0}function tR(){le(189244)|0;return}function cR(){var A=0,e=0;e=k;k=k+16|0;A=e;le(A|0)|0;k=e;return+(+((a[A+4>>2]|0)+(a[A>>2]|0)-(a[47311]|0)-(a[47312]|0)|0)*.016666666666666666)}function sR(A){A=A|0;var e=0,i=0;e=qF(16)|0;A=(A|0)>2?A:2;i=qF(A<<2)|0;a[e>>2]=i;a[e+12>>2]=i;a[e+8>>2]=i;a[e+4>>2]=i+(A<<2);return e|0}function bR(A){A=A|0;L2(a[A>>2]|0);L2(A);return}function uR(A,e){A=A|0;e=e|0;var i=0,r=0;i=A+12|0;r=a[i>>2]|0;a[i>>2]=r+4;a[r>>2]=e;if((a[i>>2]|0)>>>0>=(a[A+4>>2]|0)>>>0)a[i>>2]=a[A>>2];return}function wR(A){A=A|0;var e=0,i=0,r=0;i=A+8|0;e=a[i>>2]|0;if((e|0)!=(a[A+12>>2]|0)){r=e+4|0;a[i>>2]=r;e=a[e>>2]|0;if(r>>>0>=(a[A+4>>2]|0)>>>0)a[i>>2]=a[A>>2]}else e=0;return e|0}function kR(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0;t=k;k=k+16|0;n=t;if(((e|0)!=0?(l=Uo(A,e)|0,(l|0)!=0):0)?(r[l>>0]|0)!=0:0){e=n3(l,n,10)|0;i=(l|0)==(a[n>>2]|0)?i:(e|0)<(f|0)?f:e}k=t;return i|0}function oR(A,e,i,f){A=A|0;e=e|0;i=+i;f=+f;var n=0,l=0,t=0,c=0.0;t=k;k=k+16|0;n=t;if(((A|0)!=0&(e|0)!=0?(l=Uo(A,e)|0,(l|0)!=0):0)?(r[l>>0]|0)!=0:0){c=+A8(l,n);i=(l|0)==(a[n>>2]|0)?i:c0.0)){e=+oR(A,Yo(A,0,107638,0)|0,-1.0,0.0);e=e==0.0?72.0:e}return+e}function dR(A,e,i){A=A|0;e=e|0;i=i|0;if((A|0)!=0&(e|0)!=0)i=Uo(A,e)|0;return i|0}function BR(A,e,i){A=A|0;e=e|0;i=i|0;A=dR(A,e,i)|0;if((A|0)!=0?(r[A>>0]|0)!=0:0)i=A;return i|0}function gR(A,e,i){A=A|0;e=e|0;i=i|0;if(!e)A=i&255;else A=vR(Uo(A,e)|0)|0;return A|0}function vR(A){A=A|0;return ER(A,0)|0}function ER(A,e){A=A|0;e=e|0;var i=0;if((A|0)!=0?(i=r[A>>0]|0,i<<24>>24!=0):0)if((p1(A,137308)|0)!=0?(p1(A,107649)|0)!=0:0)if((p1(A,107652)|0)!=0?(p1(A,107657)|0)!=0:0){if(((i<<24>>24)+-48|0)>>>0<10)e=(q3(A)|0)&255}else e=1;else e=0;return e|0}function CR(A){A=A|0;var e=0,i=0;while(1){e=(a[A+16>>2]|0)+220|0;i=a[e>>2]|0;if(!((i|0)!=(A|0)&(i|0)!=0))break;A=a[(a[i+16>>2]|0)+220>>2]|0;if(!A){A=i;continue}a[e>>2]=A}return A|0}function IR(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;if((A|0)!=(e|0)){i=a[A+16>>2]|0;r=i+220|0;if(!(a[r>>2]|0)){a[r>>2]=A;a[i+216>>2]=1}else A=CR(A)|0;i=a[e+16>>2]|0;r=i+220|0;if(!(a[r>>2]|0)){a[r>>2]=e;a[i+216>>2]=1}else{i=CR(e)|0;e=i;i=a[i+16>>2]|0}n=A+16|0;r=a[n>>2]|0;f=e+16|0;l=(a[r+120>>2]|0)>(a[i+120>>2]|0);A=l?e:A;a[(l?r:i)+220>>2]=A;r=(a[(l?f:n)>>2]|0)+216|0;a[r>>2]=(a[r>>2]|0)+(a[(a[(l?n:f)>>2]|0)+216>>2]|0)}return A|0}function ZR(A){A=A|0;A=a[A+16>>2]|0;a[A+216>>2]=1;a[A+220>>2]=0;r[A+159>>0]=0;return}function GR(A,e){A=A|0;e=e|0;if((CR(A)|0)==(A|0)){A=a[A+16>>2]|0;a[A+220>>2]=e;e=(a[e+16>>2]|0)+216|0;a[e>>2]=(a[e>>2]|0)+(a[A+216>>2]|0);return}else gA(107669,107661,194,107685)}function mR(A,e){A=A|0;e=e|0;var i=0.0;e=a[(a[e+16>>2]|0)+132>>2]|0;i=+s[e+8>>3]*72.0;s[A>>3]=+s[e>>3]*72.0;s[A+8>>3]=i;return}function QR(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=+r;f=f|0;n=n|0;var l=0,t=0,c=0,b=0.0,u=0,w=0,o=0;w=k;k=k+576|0;u=w;l=0;while(1){if((l|0)>(i|0))break;c=u+(l<<4)|0;t=e+(l<<4)|0;a[c>>2]=a[t>>2];a[c+4>>2]=a[t+4>>2];a[c+8>>2]=a[t+8>>2];a[c+12>>2]=a[t+12>>2];l=l+1|0}b=1.0-r;l=1;while(1){if((l|0)>(i|0))break;t=i-l|0;c=l+-1|0;e=0;while(1){if((e|0)>(t|0))break;o=e+1|0;s[u+(l*96|0)+(e<<4)>>3]=+s[u+(c*96|0)+(o<<4)>>3]*r+ +s[u+(c*96|0)+(e<<4)>>3]*b;s[u+(l*96|0)+(e<<4)+8>>3]=+s[u+(c*96|0)+(o<<4)+8>>3]*r+ +s[u+(c*96|0)+(e<<4)+8>>3]*b;e=o}l=l+1|0}A:do{if(f|0){l=0;while(1){if((l|0)>(i|0))break A;o=f+(l<<4)|0;c=u+(l*96|0)|0;a[o>>2]=a[c>>2];a[o+4>>2]=a[c+4>>2];a[o+8>>2]=a[c+8>>2];a[o+12>>2]=a[c+12>>2];l=l+1|0}}}while(0);A:do{if(n|0){l=0;while(1){if((l|0)>(i|0))break A;o=n+(l<<4)|0;f=u+((i-l|0)*96|0)+(l<<4)|0;a[o>>2]=a[f>>2];a[o+4>>2]=a[f+4>>2];a[o+8>>2]=a[f+8>>2];a[o+12>>2]=a[f+12>>2];l=l+1|0}}}while(0);o=u+(i*96|0)|0;a[A>>2]=a[o>>2];a[A+4>>2]=a[o+4>>2];a[A+8>>2]=a[o+8>>2];a[A+12>>2]=a[o+12>>2];k=w;return}function LR(A){A=A|0;var e=0,i=0,f=0,n=0;i=0;do{e=a[47315]|0;f=e+1024|0;if((e-i|0)<1024){a[47315]=f;f=eV(a[47316]|0,f)|0;a[47316]=f;e=a[47315]|0}else f=a[47316]|0;e=p4(f+i|0,e-i|0,A)|0;if(!e){n=6;break}i=(P2(e)|0)+i|0;e=a[47316]|0}while((r[e+(i+-1)>>0]|0)!=10);if((n|0)==6)e=a[47316]|0;return((i|0)>0?e:0)|0}function yR(A){A=A|0;var e=0,i=0,f=0;f=k;k=k+16|0;do{if((A|0)!=0?(r[A>>0]|0)!=0:0)if(true){e=a[47133]|0;i=a[47318]|0;if((a[47317]|0)==(e|0))e=i;else{if(i){L2(a[i>>2]|0);L2(a[47318]|0);a[47318]=0;e=a[47133]|0}a[47317]=e;if(!e)break;if(!(r[e>>0]|0))break;e=WR(e)|0;a[47318]=e}if(!((r[A>>0]|0)!=47&(e|0)!=0))break;A=zR(e,a[47319]|0,A)|0;break}else{}else A=0}while(0);k=f;return A|0}function WR(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;r=0;f=0;n=0;e=b3(A)|0;i=0;while(1){e=t3(e,107984)|0;if(!e)break;A=(n<<2)+8|0;if(!f)A=$F(A)|0;else A=eV(i,A)|0;a[A+(n<<2)>>2]=e;f=P2(e)|0;r=r>>>0>f>>>0?r:f;f=A;n=n+1|0;e=0;i=A}a[f+(n<<2)>>2]=0;a[47319]=r;return f|0}function zR(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0;n=k;k=k+16|0;r=n;l=a[47320]|0;a[47320]=W2(l,e+2+(P2(i)|0)|0)|0;while(1){e=a[A>>2]|0;if(!e){A=0;break}l=a[47320]|0;a[r>>2]=e;a[r+4>>2]=107982;a[r+8>>2]=i;S4(l,107975,r)|0;if(!(M3(a[47320]|0,4)|0)){f=4;break}else A=A+4|0}if((f|0)==4)A=a[47320]|0;k=n;return A|0}function YR(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0;n=(A|0)==0;f=0;while(1){l=a[e+(f<<2)>>2]|0;if(!l)break;if((!n?(r[A>>0]|0)==(r[l>>0]|0):0)?(A1(A,l)|0)==0:0)break;f=f+1|0}return a[i+(f<<2)>>2]|0}function DR(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0.0,l=0.0,t=0.0,c=0.0,b=0.0,u=0.0,w=0.0,o=0.0,h=0.0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0;G=k;k=k+80|0;I=G+16|0;Z=G;v=a[e+4>>2]|0;E=a[e>>2]|0;C=i+8|0;f=0;r=-1;n=1.e+38;e=-1;while(1){if((f|0)>=(v|0))break;B=a[E+(f*48|0)>>2]|0;g=a[E+(f*48|0)+4>>2]|0;d=0;while(1){if((d|0)>=(g|0))break;h=+s[B+(d<<4)>>3]-+s[i>>3];o=+s[B+(d<<4)+8>>3]-+s[C>>3];h=o*o+h*h;m=(r|0)==-1|h>2]|0;r=r+(((r|0)==((a[E+(e*48|0)+4>>2]|0)+-1|0))<<31>>31)|0;r=r-((r|0)%3|0)|0;e=0;while(1){if((e|0)==4)break;Q=e+r|0;s[I+(e<<4)>>3]=+s[f+(Q<<4)>>3];s[I+(e<<4)+8>>3]=+s[f+(Q<<4)+8>>3];e=e+1|0}h=+s[i>>3];c=+s[I>>3]-h;w=+s[C>>3];o=+s[I+8>>3]-w;t=+s[I+48>>3]-h;u=+s[I+56>>3]-w;e=Z+8|0;n=1.0;l=0.0;t=u*u+t*t;c=o*o+c*c;while(1){o=(n+l)*.5;QR(Z,I,3,o,0,0);b=+s[Z>>3];u=+s[e>>3];if(+W(+(c-t))<1.0)break;if(+W(+(n-l))<1.0e-05)break;Q=c>3]=b;s[A+8>>3]=u;k=G;return}function MR(){return 0}function FR(A){A=A|0;var e=0.0,i=0,f=0,n=0,l=0,t=0,c=0,b=0;e=+oR(A,a[47146]|0,.75,.01);n=A+16|0;s[(a[n>>2]|0)+32>>3]=e;e=+oR(A,a[47145]|0,.5,.02);s[(a[n>>2]|0)+40>>3]=e;b=mp(BR(A,a[47147]|0,107986)|0,A)|0;a[(a[n>>2]|0)+8>>2]=b;b=Uo(A,a[47154]|0)|0;e=+oR(A,a[47150]|0,14.0,1.0);i=BR(A,a[47151]|0,107994)|0;f=BR(A,a[47152]|0,137314)|0;l=(tB(b)|0)!=0;c=(bp(A)|0)==2;l=HF(A,b,(c?4:0)|(l?2:0),e,i,f)|0;a[(a[n>>2]|0)+104>>2]=l;l=a[47155]|0;if((l|0?(t=Uo(A,l)|0,t|0):0)?r[t>>0]|0:0){b=(tB(t)|0)!=0;b=HF(A,t,b?2:0,e,i,f)|0;a[(a[n>>2]|0)+108>>2]=b;b=(a[(Id(A)|0)+16>>2]|0)+113|0;r[b>>0]=r[b>>0]|16}c=(kR(A,a[47158]|0,0,0)|0)&255;b=a[n>>2]|0;r[b+144>>0]=c;F5[a[a[(a[b+8>>2]|0)+4>>2]>>2]&127](A);return}function VR(A){A=A|0;var e=0,i=0,f=0,n=0,l=0.0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0;E=k;k=k+112|0;b=E+96|0;u=E+80|0;B=E+40|0;v=E;d=A+48|0;o=Id(a[((a[A>>2]&3|0)==3?A:d)+40>>2]|0)|0;n=b+8|0;a[n>>2]=0;w=u+8|0;a[w>>2]=0;e=a[47182]|0;if(((e|0)!=0?(i=Uo(A,e)|0,(i|0)!=0):0)?(r[i>>0]|0)!=0:0){JR(A,b);g=(tB(i)|0)!=0;l=+s[b>>3];f=a[n>>2]|0;e=a[b+12>>2]|0;i=HF(A,i,g?2:0,l,f,e)|0;g=A+16|0;a[(a[g>>2]|0)+96>>2]=i;i=(a[o+16>>2]|0)+113|0;r[i>>0]=r[i>>0]|1;i=vR(dR(A,a[47192]|0,137308)|0)|0;r[(a[g>>2]|0)+114>>0]=i;g=1;i=f}else{g=0;e=0;l=0.0;i=0}f=a[47183]|0;if((f|0?(t=Uo(A,f)|0,t|0):0)?r[t>>0]|0:0){if(!i){JR(A,b);l=+s[b>>3];i=a[n>>2]|0;e=a[b+12>>2]|0}n=(tB(t)|0)!=0;t=HF(A,t,n?2:0,l,i,e)|0;a[(a[A+16>>2]|0)+108>>2]=t;t=(a[o+16>>2]|0)+113|0;r[t>>0]=r[t>>0]|32}e=a[47197]|0;if(((e|0)!=0?(c=Uo(A,e)|0,(c|0)!=0):0)?(r[c>>0]|0)!=0:0){pR(A,b,u);t=(tB(c)|0)!=0;l=+s[u>>3];e=a[w>>2]|0;i=a[u+12>>2]|0;c=HF(A,c,t?2:0,l,e,i)|0;a[(a[A+16>>2]|0)+100>>2]=c;c=(a[o+16>>2]|0)+113|0;r[c>>0]=r[c>>0]|2}else{i=0;l=0.0;e=0}f=a[47198]|0;if((f|0?(h=Uo(A,f)|0,h|0):0)?r[h>>0]|0:0){if(!e){pR(A,b,u);i=a[u+12>>2]|0;l=+s[u>>3];e=a[w>>2]|0}w=(tB(h)|0)!=0;h=HF(A,h,w?2:0,l,e,i)|0;a[(a[A+16>>2]|0)+104>>2]=h;h=(a[o+16>>2]|0)+113|0;r[h>>0]=r[h>>0]|4}e=Ho(A,111455)|0;e=e|0?e:195059;if(r[e>>0]|0)r[(a[(a[((a[A>>2]&3|0)==3?A:d)+40>>2]|0)+16>>2]|0)+145>>0]=1;n=A+16|0;f=(a[n>>2]|0)+16|0;i=a[((a[A>>2]&3|0)==3?A:d)+40>>2]|0;NR(B,a[(a[(a[(a[i+16>>2]|0)+8>>2]|0)+4>>2]|0)+8>>2]|0,i,e);e=B;i=f+40|0;do{a[f>>2]=a[e>>2];f=f+4|0;e=e+4|0}while((f|0)<(i|0));if((RR(A,a[47204]|0)|0)<<24>>24)r[(a[n>>2]|0)+46>>0]=0;e=Ho(A,111464)|0;e=e|0?e:195059;if(!(r[e>>0]|0))i=A+-48|0;else{i=A+-48|0;r[(a[(a[((a[A>>2]&3|0)==2?A:i)+40>>2]|0)+16>>2]|0)+145>>0]=1}f=(a[n>>2]|0)+56|0;i=a[((a[A>>2]&3|0)==2?A:i)+40>>2]|0;NR(v,a[(a[(a[(a[i+16>>2]|0)+8>>2]|0)+4>>2]|0)+8>>2]|0,i,e);e=v;i=f+40|0;do{a[f>>2]=a[e>>2];f=f+4|0;e=e+4|0}while((f|0)<(i|0));if((RR(A,a[47205]|0)|0)<<24>>24)r[(a[n>>2]|0)+86>>0]=0;k=E;return g|0}function JR(A,e){A=A|0;e=e|0;s[e>>3]=+oR(A,a[47179]|0,14.0,1.0);a[e+8>>2]=BR(A,a[47180]|0,107994)|0;a[e+12>>2]=BR(A,a[47181]|0,137314)|0;return}function pR(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=e+8|0;if(!(a[r>>2]|0))JR(A,e);s[i>>3]=+oR(A,a[47199]|0,+s[e>>3],1.0);a[i+8>>2]=BR(A,a[47200]|0,a[r>>2]|0)|0;a[i+12>>2]=BR(A,a[47201]|0,a[e+12>>2]|0)|0;return}function NR(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0;b=k;k=k+128|0;s=b+80|0;l=b+40|0;n=b;if((f|0)!=0?(c=G1(f,58)|0,(c|0)!=0):0){r[c>>0]=0;t=c+1|0;N5[e&31](l,i,f,t);i=s;n=l;e=i+36|0;do{a[i>>2]=a[n>>2];i=i+4|0;n=n+4|0}while((i|0)<(e|0));r[c>>0]=58;f=t}else{N5[e&31](n,i,f,0);i=s;e=i+36|0;do{a[i>>2]=a[n>>2];i=i+4|0;n=n+4|0}while((i|0)<(e|0))}i=A;n=s;e=i+36|0;do{a[i>>2]=a[n>>2];i=i+4|0;n=n+4|0}while((i|0)<(e|0));a[A+36>>2]=f;k=b;return}function RR(A,e){A=A|0;e=e|0;var i=0;if(((e|0)!=0?(i=Uo(A,e)|0,(i|0)!=0):0)?(r[i>>0]|0)!=0:0)A=(vR(i)|0)<<24>>24==0&1;else A=0;return A|0}function XR(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0.0,w=0.0;c=k;k=k+32|0;l=c;t=a[e+8>>2]|0;i=a[e+4>>2]|0;i=(a[e+44>>2]|0)+((U((i|0)>1?i+-1|0:0,t)|0)<<4)|0;r=l+16|0;a[r>>2]=a[i>>2];a[r+4>>2]=a[i+4>>2];a[r+8>>2]=a[i+8>>2];a[r+12>>2]=a[i+12>>2];a[l>>2]=a[i>>2];a[l+4>>2]=a[i+4>>2];a[l+8>>2]=a[i+8>>2];a[l+12>>2]=a[i+12>>2];f=l+8|0;n=l+24|0;e=1;while(1){if((e|0)>=(t|0))break;b=i+(e<<4)|0;w=+s[b>>3];s[l>>3]=+s[(+s[l>>3]>3];u=+s[b+8>>3];s[f>>3]=+s[(+s[f>>3]>3];s[r>>3]=+s[(+s[r>>3]>w?r:b)>>3];s[n>>3]=+s[(+s[n>>3]>u?r:b)+8>>3];e=e+1|0}a[A>>2]=a[l>>2];a[A+4>>2]=a[l+4>>2];a[A+8>>2]=a[l+8>>2];a[A+12>>2]=a[l+12>>2];a[A+16>>2]=a[l+16>>2];a[A+20>>2]=a[l+20>>2];a[A+24>>2]=a[l+24>>2];a[A+28>>2]=a[l+28>>2];k=c;return}function HR(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;i=k;k=k+64|0;n=i+32|0;r=i;f=a[A+16>>2]|0;A=f+16|0;f=a[f+116>>2]&1;a[n>>2]=a[A>>2];a[n+4>>2]=a[A+4>>2];a[n+8>>2]=a[A+8>>2];a[n+12>>2]=a[A+12>>2];a[n+16>>2]=a[A+16>>2];a[n+20>>2]=a[A+20>>2];a[n+24>>2]=a[A+24>>2];a[n+28>>2]=a[A+28>>2];UR(r,n,e,f);a[A>>2]=a[r>>2];a[A+4>>2]=a[r+4>>2];a[A+8>>2]=a[r+8>>2];a[A+12>>2]=a[r+12>>2];a[A+16>>2]=a[r+16>>2];a[A+20>>2]=a[r+20>>2];a[A+24>>2]=a[r+24>>2];a[A+28>>2]=a[r+28>>2];k=i;return}function UR(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,n=0.0,l=0.0,t=0,c=0.0,b=0.0,u=0.0;n=+s[i+56>>3];b=+s[i+64>>3];t=r<<24>>24==0;c=+s[i+24>>3];l=+s[i+32>>3];u=(t?c:l)*.5;f=n-u;n=u+n;if(f<+s[e>>3])s[e>>3]=f;r=e+16|0;if(n>+s[r>>3])s[r>>3]=n;n=(t?l:c)*.5;f=b-n;n=n+b;r=e+8|0;if(f<+s[r>>3])s[r>>3]=f;r=e+24|0;if(n>+s[r>>3])s[r>>3]=n;a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2];a[A+16>>2]=a[e+16>>2];a[A+20>>2]=a[e+20>>2];a[A+24>>2]=a[e+24>>2];a[A+28>>2]=a[e+28>>2];return}function xR(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0.0,N=0.0,R=0.0,X=0.0;J=k;k=k+448|0;D=J+416|0;g=J+384|0;v=J+304|0;V=J+256|0;Y=J+192|0;Q=J+144|0;L=J+96|0;e=J+400|0;i=J+368|0;f=J+352|0;n=J+336|0;E=J+288|0;C=J+224|0;I=J+160|0;Z=J+112|0;G=J+64|0;m=J+32|0;M=J;F=A+16|0;if((gh(A)|0)==0?(a[(a[F>>2]|0)+180>>2]|0)==0:0){TR(e,0.0,0.0);a[V>>2]=a[e>>2];a[V+4>>2]=a[e+4>>2];a[V+8>>2]=a[e+8>>2];a[V+12>>2]=a[e+12>>2];V=V+16|0;TR(i,0.0,0.0);a[V>>2]=a[i>>2];a[V+4>>2]=a[i+4>>2];a[V+8>>2]=a[i+8>>2];a[V+12>>2]=a[i+12>>2]}else{TR(f,2147483647.0,2147483647.0);a[V>>2]=a[f>>2];a[V+4>>2]=a[f+4>>2];a[V+8>>2]=a[f+8>>2];a[V+12>>2]=a[f+12>>2];z=V+16|0;TR(n,-2147483647.0,-2147483647.0);a[z>>2]=a[n>>2];a[z+4>>2]=a[n+4>>2];a[z+8>>2]=a[n+8>>2];a[z+12>>2]=a[n+12>>2];w=L+8|0;o=v+16|0;y=V+8|0;h=v+8|0;W=V+24|0;d=v+24|0;B=Q+8|0;u=cd(A)|0;while(1){if(!u)break;mR(Q,u);e=u+16|0;b=a[e>>2]|0;s[L>>3]=(+s[b+96>>3]+ +s[b+88>>3])*.5;s[w>>3]=+s[b+80>>3]*.5;a[g>>2]=a[Q>>2];a[g+4>>2]=a[Q+4>>2];a[g+8>>2]=a[Q+8>>2];a[g+12>>2]=a[Q+12>>2];a[D>>2]=a[L>>2];a[D+4>>2]=a[L+4>>2];a[D+8>>2]=a[L+8>>2];a[D+12>>2]=a[L+12>>2];jR(v,g,D);a[g>>2]=a[Q>>2];a[g+4>>2]=a[Q+4>>2];a[g+8>>2]=a[Q+8>>2];a[g+12>>2]=a[Q+12>>2];a[D>>2]=a[L>>2];a[D+4>>2]=a[L+4>>2];a[D+8>>2]=a[L+8>>2];a[D+12>>2]=a[L+12>>2];PR(E,g,D);a[o>>2]=a[E>>2];a[o+4>>2]=a[E+4>>2];a[o+8>>2]=a[E+8>>2];a[o+12>>2]=a[E+12>>2];s[V>>3]=+s[(+s[V>>3]<+s[v>>3]?V:v)>>3];s[y>>3]=+s[(+s[y>>3]<+s[h>>3]?V:v)+8>>3];s[z>>3]=+s[(+s[z>>3]>+s[o>>3]?V:v)+16>>3];s[W>>3]=+s[(+s[W>>3]>+s[d>>3]?V:v)+24>>3];e=a[(a[e>>2]|0)+108>>2]|0;if(e|0?r[e+81>>0]|0:0){b=a[(a[F>>2]|0)+116>>2]&1;a[D>>2]=a[V>>2];a[D+4>>2]=a[V+4>>2];a[D+8>>2]=a[V+8>>2];a[D+12>>2]=a[V+12>>2];a[D+16>>2]=a[V+16>>2];a[D+20>>2]=a[V+20>>2];a[D+24>>2]=a[V+24>>2];a[D+28>>2]=a[V+28>>2];UR(C,D,e,b);a[V>>2]=a[C>>2];a[V+4>>2]=a[C+4>>2];a[V+8>>2]=a[C+8>>2];a[V+12>>2]=a[C+12>>2];a[V+16>>2]=a[C+16>>2];a[V+20>>2]=a[C+20>>2];a[V+24>>2]=a[C+24>>2];a[V+28>>2]=a[C+28>>2]}b=Oo(A,u)|0;while(1){if(!b)break;c=b+16|0;e=a[c>>2]|0;t=e+8|0;i=a[t>>2]|0;if(i|0){l=0;while(1){if((l|0)<(a[i+4>>2]|0))n=0;else break;while(1){f=a[i>>2]|0;if((n|0)>=(a[f+(l*48|0)+4>>2]|0))break;i=(a[f+(l*48|0)>>2]|0)+(n<<4)|0;a[Q>>2]=a[i>>2];a[Q+4>>2]=a[i+4>>2];a[Q+8>>2]=a[i+8>>2];a[Q+12>>2]=a[i+12>>2];N=+s[Q>>3];s[V>>3]=+s[(+s[V>>3]>3];p=+s[B>>3];s[y>>3]=+s[(+s[y>>3]>3];s[z>>3]=+s[(+s[z>>3]>N?z:Q)>>3];s[W>>3]=+s[(+s[W>>3]>p?z:Q)+8>>3];n=n+1|0;i=a[t>>2]|0}l=l+1|0}i=a[e+96>>2]|0;if((i|0)!=0?(r[i+81>>0]|0)!=0:0){e=a[(a[F>>2]|0)+116>>2]&1;a[D>>2]=a[V>>2];a[D+4>>2]=a[V+4>>2];a[D+8>>2]=a[V+8>>2];a[D+12>>2]=a[V+12>>2];a[D+16>>2]=a[V+16>>2];a[D+20>>2]=a[V+20>>2];a[D+24>>2]=a[V+24>>2];a[D+28>>2]=a[V+28>>2];UR(I,D,i,e);a[V>>2]=a[I>>2];a[V+4>>2]=a[I+4>>2];a[V+8>>2]=a[I+8>>2];a[V+12>>2]=a[I+12>>2];a[V+16>>2]=a[I+16>>2];a[V+20>>2]=a[I+20>>2];a[V+24>>2]=a[I+24>>2];a[V+28>>2]=a[I+28>>2];e=a[c>>2]|0}i=a[e+100>>2]|0;if((i|0)!=0?(r[i+81>>0]|0)!=0:0){e=a[(a[F>>2]|0)+116>>2]&1;a[D>>2]=a[V>>2];a[D+4>>2]=a[V+4>>2];a[D+8>>2]=a[V+8>>2];a[D+12>>2]=a[V+12>>2];a[D+16>>2]=a[V+16>>2];a[D+20>>2]=a[V+20>>2];a[D+24>>2]=a[V+24>>2];a[D+28>>2]=a[V+28>>2];UR(Z,D,i,e);a[V>>2]=a[Z>>2];a[V+4>>2]=a[Z+4>>2];a[V+8>>2]=a[Z+8>>2];a[V+12>>2]=a[Z+12>>2];a[V+16>>2]=a[Z+16>>2];a[V+20>>2]=a[Z+20>>2];a[V+24>>2]=a[Z+24>>2];a[V+28>>2]=a[Z+28>>2];e=a[c>>2]|0}i=a[e+104>>2]|0;if((i|0)!=0?(r[i+81>>0]|0)!=0:0){e=a[(a[F>>2]|0)+116>>2]&1;a[D>>2]=a[V>>2];a[D+4>>2]=a[V+4>>2];a[D+8>>2]=a[V+8>>2];a[D+12>>2]=a[V+12>>2];a[D+16>>2]=a[V+16>>2];a[D+20>>2]=a[V+20>>2];a[D+24>>2]=a[V+24>>2];a[D+28>>2]=a[V+28>>2];UR(G,D,i,e);a[V>>2]=a[G>>2];a[V+4>>2]=a[G+4>>2];a[V+8>>2]=a[G+8>>2];a[V+12>>2]=a[G+12>>2];a[V+16>>2]=a[G+16>>2];a[V+20>>2]=a[G+20>>2];a[V+24>>2]=a[G+24>>2];a[V+28>>2]=a[G+28>>2];e=a[c>>2]|0}e=a[e+108>>2]|0;if(e|0?r[e+81>>0]|0:0){c=a[(a[F>>2]|0)+116>>2]&1;a[D>>2]=a[V>>2];a[D+4>>2]=a[V+4>>2];a[D+8>>2]=a[V+8>>2];a[D+12>>2]=a[V+12>>2];a[D+16>>2]=a[V+16>>2];a[D+20>>2]=a[V+20>>2];a[D+24>>2]=a[V+24>>2];a[D+28>>2]=a[V+28>>2];UR(m,D,e,c);a[V>>2]=a[m>>2];a[V+4>>2]=a[m+4>>2];a[V+8>>2]=a[m+8>>2];a[V+12>>2]=a[m+12>>2];a[V+16>>2]=a[m+16>>2];a[V+20>>2]=a[m+20>>2];a[V+24>>2]=a[m+24>>2];a[V+28>>2]=a[m+28>>2]}}b=_o(A,b)|0}u=sd(A,u)|0}e=a[F>>2]|0;f=a[e+180>>2]|0;n=e+184|0;l=Y+8|0;t=Y+16|0;c=Y+24|0;i=1;while(1){if((i|0)>(f|0))break;X=+s[(a[(a[(a[n>>2]|0)+(i<<2)>>2]|0)+16>>2]|0)+16>>3];s[Y>>3]=X;L=a[(a[(a[n>>2]|0)+(i<<2)>>2]|0)+16>>2]|0;R=+s[L+24>>3];s[l>>3]=R;p=+s[L+32>>3];s[t>>3]=p;N=+s[L+40>>3];s[c>>3]=N;s[V>>3]=+s[(+s[V>>3]>3];s[y>>3]=+s[(+s[y>>3]>3];s[z>>3]=+s[(+s[z>>3]>p?V:Y)+16>>3];s[W>>3]=+s[(+s[W>>3]>N?V:Y)+24>>3];i=i+1|0}i=a[e+12>>2]|0;if((i|0)!=0?(r[i+81>>0]|0)!=0:0){e=a[e+116>>2]&1;a[D>>2]=a[V>>2];a[D+4>>2]=a[V+4>>2];a[D+8>>2]=a[V+8>>2];a[D+12>>2]=a[V+12>>2];a[D+16>>2]=a[V+16>>2];a[D+20>>2]=a[V+20>>2];a[D+24>>2]=a[V+24>>2];a[D+28>>2]=a[V+28>>2];UR(M,D,i,e);a[V>>2]=a[M>>2];a[V+4>>2]=a[M+4>>2];a[V+8>>2]=a[M+8>>2];a[V+12>>2]=a[M+12>>2];a[V+16>>2]=a[M+16>>2];a[V+20>>2]=a[M+20>>2];a[V+24>>2]=a[M+24>>2];a[V+28>>2]=a[M+28>>2];e=a[F>>2]|0}F=e+16|0;a[F>>2]=a[V>>2];a[F+4>>2]=a[V+4>>2];a[F+8>>2]=a[V+8>>2];a[F+12>>2]=a[V+12>>2];a[F+16>>2]=a[V+16>>2];a[F+20>>2]=a[V+20>>2];a[F+24>>2]=a[V+24>>2];a[F+28>>2]=a[V+28>>2]}k=J;return}function TR(A,e,i){A=A|0;e=+e;i=+i;s[A>>3]=e;s[A+8>>3]=i;return}function jR(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0;r=+s[e+8>>3]-+s[i+8>>3];s[A>>3]=+s[e>>3]-+s[i>>3];s[A+8>>3]=r;return}function PR(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0;r=+s[i+8>>3]+ +s[e+8>>3];s[A>>3]=+s[i>>3]+ +s[e>>3];s[A+8>>3]=r;return}function SR(A){A=A|0;if((a[A+60>>2]|0)==(A|0))A=1;else A=(T1(Vh(A)|0,108006,7)|0)==0&1;return A|0}function OR(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;A:do{if(!f)switch(Md(e)|0){case 0:{f=Yo(A,0,i,195059)|0;break A}case 1:{f=Yo(A,1,i,195059)|0;break A}case 2:{f=Yo(A,2,i,195059)|0;break A}default:{f=0;break A}}}while(0);Vo(e,f,r)|0;return f|0}function KR(A){A=A|0;var e=0,i=0,n=0,l=0,t=0,c=0,s=0;s=k;k=k+144|0;n=s;t=_R(A)|0;l=jk(23592,a[4581]|0)|0;c=NB(A,108014,1)|0;Td(c,137483,280,1)|0;co(n,128,s+16|0);e=cd(A)|0;while(1){if(!e)break;A:do{if(!(r[(a[e+16>>2]|0)+118>>0]|0)){i=Oo(A,e)|0;while(1){if(!i)break A;qR(i,c,n,l,t);i=_o(A,i)|0}}}while(0);e=sd(A,e)|0}wo(n);Hk(l)|0;i=gh(c)|0;e=cd(c)|0;while(1){if(!e)break;l=sd(c,e)|0;Cd(A,e)|0;e=l}Bh(c)|0;if(i|0){c=(a[A+16>>2]|0)+136|0;f[c>>1]=f[c>>1]|1}Hk(t)|0;k=s;return i|0}function _R(A){A=A|0;var e=0;e=jk(23628,a[4581]|0)|0;lX(A,e);return e|0}function qR(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0;g=k;k=k+48|0;h=g+32|0;o=g+24|0;B=g+16|0;d=g+8|0;s=g;u=a[A>>2]&3;b=a[((u|0)==3?A:A+48|0)+40>>2]|0;u=a[((u|0)==2?A:A+-48|0)+40>>2]|0;do{if(!(r[(a[u+16>>2]|0)+118>>0]|0)){if(!(Z1(Vh(b)|0,108006,7)|0))w=$R(n,Vh(b)|0)|0;else w=0;if(!(Z1(Vh(u)|0,108006,7)|0))t=$R(n,Vh(u)|0)|0;else t=0;l=(w|0)!=0;c=(t|0)!=0;if(l|c){if((w|0)==(t|0)){d=Vh(b)|0;B=Vh(b)|0;a[s>>2]=d;a[s+4>>2]=B;ao(0,108029,s)|0;break}n=AX(f,A)|0;if(n|0){eX(A,a[n+16>>2]|0,a[n+20>>2]|0)|0;break}if(!c)if(!(Dd(w,u)|0)){rX(f,b,u,eX(A,iX(b,w,i,e)|0,u)|0);break}else{d=Vh(u)|0;B=Vh(w)|0;a[h>>2]=d;a[h+4>>2]=B;ao(0,108184,h)|0;break}if(!l)if(!(Dd(t,b)|0)){rX(f,b,u,eX(A,b,iX(u,t,i,e)|0)|0);break}else{d=Vh(b)|0;B=Vh(t)|0;a[o>>2]=d;a[o+4>>2]=B;ao(0,108147,o)|0;break}if(Dd(t,w)|0){h=Vh(w)|0;B=Vh(t)|0;a[d>>2]=h;a[d+4>>2]=B;ao(0,108067,d)|0;break}if(!(Dd(w,t)|0)){B=iX(b,w,i,e)|0;rX(f,b,u,eX(A,B,iX(u,t,i,e)|0)|0);break}else{h=Vh(t)|0;d=Vh(w)|0;a[B>>2]=h;a[B+4>>2]=d;ao(0,108107,B)|0;break}}}}while(0);k=g;return}function $R(A,e){A=A|0;e=e|0;A=y5[a[A>>2]&63](A,e,512)|0;if(!A)A=0;else A=a[A+12>>2]|0;return A|0}function AX(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;i=k;k=k+16|0;r=i;f=a[e>>2]&3;a[r>>2]=a[((f|0)==3?e:e+48|0)+40>>2];a[r+4>>2]=a[((f|0)==2?e:e+-48|0)+40>>2];e=y5[a[A>>2]&63](A,r,512)|0;k=i;return e|0}function eX(A,e,i){A=A|0;e=e|0;i=i|0;i=th(Id(e)|0,e,i,0,1)|0;Td(i,137460,176,1)|0;jo(A,i)|0;return i|0}function iX(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,s=0;s=k;k=k+112|0;n=s;c=s+4|0;uo(i,108221)|0;t=a[47321]|0;a[47321]=t+1;a[n>>2]=t;S4(c,137395,n)|0;uo(i,c)|0;c=i+4|0;n=a[c>>2]|0;t=i+8|0;if(n>>>0>=(a[t>>2]|0)>>>0){so(i,1)|0;n=a[c>>2]|0}a[c>>2]=n+1;r[n>>0]=58;uo(i,Vh(e)|0)|0;l=Zd(e)|0;n=a[c>>2]|0;if(n>>>0>=(a[t>>2]|0)>>>0){so(i,1)|0;n=a[c>>2]|0}r[n>>0]=0;i=a[i>>2]|0;a[c>>2]=i;c=gd(l,i,1)|0;Td(c,137447,304,1)|0;r[(a[c+16>>2]|0)+118>>0]=1;kd(e,c,1)|0;kd(f,A,1)|0;f=Id(c)|0;a[47154]=OR(f,c,108224,195059,a[47154]|0)|0;f=Id(c)|0;a[47157]=OR(f,c,141082,134335,a[47157]|0)|0;f=Id(c)|0;a[47147]=OR(f,c,108230,108236,a[47147]|0)|0;k=s;return c|0}function rX(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;f=k;k=k+32|0;n=f;u=n+8|0;a[u>>2]=e;b=n+12|0;a[b>>2]=i;w=a[r>>2]&3;t=r+48|0;c=n+16|0;a[c>>2]=a[((w|0)==3?r:t)+40>>2];s=r+-48|0;l=n+20|0;a[l>>2]=a[((w|0)==2?r:s)+40>>2];y5[a[A>>2]&63](A,n,1)|0;a[u>>2]=i;a[b>>2]=e;i=a[r>>2]&3;a[c>>2]=a[((i|0)==2?r:s)+40>>2];a[l>>2]=a[((i|0)==3?r:t)+40>>2];y5[a[A>>2]&63](A,n,1)|0;k=f;return}function fX(A,e,i){A=A|0;e=e|0;i=i|0;i=qF(24)|0;a[i+8>>2]=a[e+8>>2];a[i+12>>2]=a[e+12>>2];a[i+16>>2]=a[e+16>>2];a[i+20>>2]=a[e+20>>2];return i|0}function aX(A,e,i){A=A|0;e=e|0;i=i|0;L2(e);return}function nX(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;A=a[e>>2]|0;r=a[i>>2]|0;if(A>>>0>=r>>>0)if(A>>>0>r>>>0)A=1;else{e=a[e+4>>2]|0;i=a[i+4>>2]|0;return(e>>>0>>0?-1:e>>>0>i>>>0&1)|0}else A=-1;return A|0}function lX(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;l=k;k=k+16|0;n=l;f=A+16|0;r=1;while(1){A=a[f>>2]|0;if((r|0)>(a[A+180>>2]|0))break;A=a[(a[A+184>>2]|0)+(r<<2)>>2]|0;i=Vh(A)|0;if(!(y5[a[e>>2]&63](e,i,512)|0)){t=qF(16)|0;a[t+8>>2]=i;a[t+12>>2]=A;y5[a[e>>2]&63](e,t,1)|0}else{a[n>>2]=i;ao(0,108240,n)|0}lX(A,e);r=r+1|0}k=l;return}function tX(A,e,i){A=A|0;e=e|0;i=i|0;L2(e);return}function cX(A){A=A|0;var e=0,i=0,r=0;r=NB(A,108014,1)|0;Td(r,137483,280,1)|0;e=cd(A)|0;while(1){if(!e)break;i=Oo(A,e)|0;while(1){if(!i)break;sX(i,r);i=_o(A,i)|0}e=sd(A,e)|0}e=cd(r)|0;while(1){if(!e)break;i=sd(r,e)|0;bX(e);Cd(A,e)|0;e=i}Bh(r)|0;return}function sX(A,e){A=A|0;e=e|0;var i=0,f=0;i=a[A>>2]&3;f=a[((i|0)==3?A:A+48|0)+40>>2]|0;i=a[((i|0)==2?A:A+-48|0)+40>>2]|0;if(!((r[(a[f+16>>2]|0)+118>>0]|0)==0?!(r[(a[i+16>>2]|0)+118>>0]|0):0)){f=uX(f,e)|0;i=eX(A,f,uX(i,e)|0)|0;f=a[A+16>>2]|0;e=f+8|0;i=a[i+16>>2]|0;a[i+8>>2]=a[e>>2];a[e>>2]=0;e=f+96|0;a[i+96>>2]=a[e>>2];a[e>>2]=0;e=f+108|0;a[i+108>>2]=a[e>>2];a[e>>2]=0;e=f+100|0;a[i+100>>2]=a[e>>2];a[e>>2]=0;f=f+104|0;a[i+104>>2]=a[f>>2];a[f>>2]=0;wX(A)}return}function bX(A){A=A|0;var e=0,i=0,r=0;r=A+16|0;e=a[r>>2]|0;i=a[e+132>>2]|0;if(i){L2(i);e=a[r>>2]|0}i=a[e+8>>2]|0;if(i){F5[a[(a[i+4>>2]|0)+4>>2]&127](A);e=a[r>>2]|0}TF(a[e+104>>2]|0);TF(a[(a[r>>2]|0)+108>>2]|0);Pd(A,137447)|0;return}function uX(A,e){A=A|0;e=e|0;var i=0,f=0,n=0;f=Id(A)|0;A:do{if(r[(a[A+16>>2]|0)+118>>0]|0){kd(e,A,1)|0;A=G1(Vh(A)|0,58)|0;if(!A)gA(111208,107661,1225,108292);e=A+1|0;A=gd(f,e,0)|0;if(!A){A=gd(f,e,1)|0;Td(A,137447,304,1)|0;e=Jo(f,1,0)|0;while(1){if(!e)break A;n=Uo(A,e)|0;i=a[e+12>>2]|0;if((n|0)!=(i|0))Vo(A,e,i)|0;e=Jo(f,1,e)|0}}}}while(0);return A|0}function wX(A){A=A|0;var e=0;e=A+16|0;L2(a[(a[e>>2]|0)+144>>2]|0);kX(A);TF(a[(a[e>>2]|0)+96>>2]|0);TF(a[(a[e>>2]|0)+108>>2]|0);TF(a[(a[e>>2]|0)+100>>2]|0);TF(a[(a[e>>2]|0)+104>>2]|0);Pd(A,137460)|0;return}function kX(A){A=A|0;var e=0,i=0,r=0;r=A+16|0;A=a[r>>2]|0;e=a[A+8>>2]|0;if(e){i=0;while(1){A=a[e>>2]|0;if((i|0)>=(a[e+4>>2]|0))break;L2(a[A+(i*48|0)>>2]|0);i=i+1|0;e=a[(a[r>>2]|0)+8>>2]|0}L2(A);L2(a[(a[r>>2]|0)+8>>2]|0);A=a[r>>2]|0}a[A+8>>2]=0;return}function oX(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0;f=Yo(A,e,i,0)|0;if(!f)f=Yo(A,e,i,r)|0;return f|0}function hX(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;w=k;k=k+32|0;t=w;l=w+8|0;c=w+16|0;b=G1(A,59)|0;u=e+4|0;i=a[u>>2]|0;s=e+8|0;if(i>>>0>=(a[s>>2]|0)>>>0){so(e,1)|0;i=a[u>>2]|0}a[u>>2]=i+1;r[i>>0]=38;if(((b|0)!=0?(f=b-A|0,(f+-2|0)>>>0<=6):0)?(x4(c,A,f)|0,r[c+f>>0]=0,a[l>>2]=c,n=i8(l,23664,252,8,96)|0,(n|0)!=0):0){a[t>>2]=a[n+4>>2];S4(c,137395,t)|0;A=a[u>>2]|0;if(A>>>0>=(a[s>>2]|0)>>>0){so(e,1)|0;A=a[u>>2]|0}a[u>>2]=A+1;r[A>>0]=35;uo(e,c)|0;A=a[u>>2]|0;if(A>>>0>=(a[s>>2]|0)>>>0){so(e,1)|0;A=a[u>>2]|0}a[u>>2]=A+1;r[A>>0]=59;A=b+1|0}k=w;return A|0}function dX(A,e){A=A|0;e=e|0;return A1(a[A>>2]|0,a[e>>2]|0)|0}function BX(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0;h=k;k=k+1072|0;s=h+8|0;c=h;t=h+16|0;w=h+24|0;a[t>>2]=A;if((a[47322]|0)!=(e|0)){a[47322]=e;r[194958]=0}co(w,1024,h+40|0);o=w+4|0;u=w+8|0;while(1){f=A+1|0;a[t>>2]=f;i=r[A>>0]|0;if(!(i<<24>>24))break;do{if((i&255)<192)if(i<<24>>24==38){f=vX(t)|0;if(!f)i=38;else{if(f>>>0<127){i=f&255;break}A=a[o>>2]|0;i=A>>>0>=(a[u>>2]|0)>>>0;if(f>>>0<2047){if(i){so(w,1)|0;A=a[o>>2]|0}a[o>>2]=A+1;r[A>>0]=f>>>6|192;i=(f&63|128)&255;break}if(i){so(w,1)|0;A=a[o>>2]|0}a[o>>2]=A+1;r[A>>0]=f>>>12|224;A=a[o>>2]|0;if(A>>>0>=(a[u>>2]|0)>>>0){so(w,1)|0;A=a[o>>2]|0}a[o>>2]=A+1;r[A>>0]=f>>>6&63|128;i=(f&63|128)&255}}else{l=0;b=9}else if((i&255)>=224)if((i&255)>=240)if((i&255)<248){l=3;b=9}else{if(!(r[194958]|0)){a[c>>2]=Vh(e)|0;ao(0,109707,c)|0;r[194958]=1}l=-1;i=gX(i,w)|0;b=9}else{l=2;b=9}else{l=1;b=9}}while(0);do{if((b|0)==9){b=0;n=0;while(1){if((n|0)>=(l|0)){b=34;break}if((r[f>>0]&-64)<<24>>24!=-128)break;A=a[o>>2]|0;if(A>>>0>=(a[u>>2]|0)>>>0){so(w,1)|0;A=a[o>>2]|0}a[o>>2]=A+1;r[A>>0]=i;n=n+1|0;i=r[f>>0]|0;f=f+1|0}if((b|0)==34){b=0;a[t>>2]=f;break}a[t>>2]=f;if(!(r[194958]|0)){n=Vh(e)|0;a[s>>2]=l+1;a[s+4>>2]=n;ao(0,109828,s)|0;r[194958]=1}i=gX(i,w)|0}}while(0);A=a[o>>2]|0;if(A>>>0>=(a[u>>2]|0)>>>0){so(w,1)|0;A=a[o>>2]|0}a[o>>2]=A+1;r[A>>0]=i;A=a[t>>2]|0}A=a[o>>2]|0;if(A>>>0>=(a[u>>2]|0)>>>0){so(w,1)|0;A=a[o>>2]|0}r[A>>0]=0;u=a[w>>2]|0;a[o>>2]=u;o=b3(u)|0;wo(w);k=h;return o|0}function gX(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0;c=k;k=k+16|0;n=c;r[n>>0]=A;r[n+1>>0]=0;n=EX(n)|0;l=e+4|0;t=e+8|0;i=P2(n)|0;f=n;while(1){if((i|0)<=1)break;A=a[l>>2]|0;if(A>>>0>=(a[t>>2]|0)>>>0){so(e,1)|0;A=a[l>>2]|0}s=r[f>>0]|0;a[l>>2]=A+1;r[A>>0]=s;i=i+-1|0;f=f+1|0}s=r[f>>0]|0;L2(n);k=c;return s|0}function vX(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0;t=k;k=k+32|0;l=t;e=t+8|0;i=a[A>>2]|0;A:do{if((r[i>>0]|0)!=35){a[l>>2]=e;n=0;e:while(1){if((n|0)>=8){e=0;break A}f=r[i+n>>0]|0;switch(f<<24>>24){case 0:{e=0;break A}case 59:break e;default:{}}r[e>>0]=f;e=e+1|0;n=n+1|0}r[e>>0]=0;e=i8(l,23664,252,8,96)|0;if(!e)e=0;else{i=i+(n+1)|0;e=a[e+4>>2]|0}}else{l=r[i+1>>0]|0;e=l&255;e:do{if((l|32)<<24>>24==120){l=0;n=2;while(1){if((n|0)>=8){f=l;break e}f=r[i+n>>0]|0;e=f&255;if((f+-65&255)>=6)if((f+-97&255)>=6)if((f+-48&255)<10)f=-48;else{f=l;break e}else f=-87;else f=-55;e=f+e|0;l=e+(l<<4)|0;n=n+1|0}}else{f=0;n=1;while(1){if((n|0)>=8)break e;l=r[i+n>>0]|0;e=l&255;if((l+-48&255)>=10)break e;f=(f*10|0)+-48+e|0;n=n+1|0}}}while(0);e=(e|0)==59;i=e?i+(n+1)|0:i;e=e?f:0}}while(0);a[A>>2]=i;k=t;return e|0}function EX(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,s=0;s=k;k=k+1056|0;n=s;t=s+8|0;a[n>>2]=A;co(t,1024,s+24|0);c=t+4|0;l=t+8|0;while(1){a[n>>2]=A+1;e=r[A>>0]|0;if(!(e<<24>>24))break;A=e&255;if(e<<24>>24==38){A=vX(n)|0;if(!A){A=38;f=6}else f=5}else f=5;do{if((f|0)==5){f=0;if(A>>>0<127)f=6;else{e=a[c>>2]|0;i=e>>>0>=(a[l>>2]|0)>>>0;if(A>>>0<2047){if(i){so(t,1)|0;e=a[c>>2]|0}a[c>>2]=e+1;r[e>>0]=A>>>6|192;e=a[c>>2]|0;if(e>>>0>=(a[l>>2]|0)>>>0){so(t,1)|0;e=a[c>>2]|0}A=A&63|128;break}if(i){so(t,1)|0;e=a[c>>2]|0}a[c>>2]=e+1;r[e>>0]=A>>>12|224;e=a[c>>2]|0;if(e>>>0>=(a[l>>2]|0)>>>0){so(t,1)|0;e=a[c>>2]|0}a[c>>2]=e+1;r[e>>0]=A>>>6&63|128;e=a[c>>2]|0;if(e>>>0>=(a[l>>2]|0)>>>0){so(t,1)|0;e=a[c>>2]|0}A=A&63|128}}}while(0);if((f|0)==6){e=a[c>>2]|0;if(e>>>0>=(a[l>>2]|0)>>>0){so(t,1)|0;e=a[c>>2]|0}}a[c>>2]=e+1;r[e>>0]=A;A=a[n>>2]|0}A=a[c>>2]|0;if(A>>>0>=(a[l>>2]|0)>>>0){so(t,1)|0;A=a[c>>2]|0}r[A>>0]=0;l=a[t>>2]|0;a[c>>2]=l;c=b3(l)|0;wo(t);k=s;return c|0}function CX(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0;t=k;k=k+1040|0;n=t;co(n,1024,t+16|0);l=n+4|0;f=n+8|0;while(1){e=A+1|0;i=r[A>>0]|0;if(!(i<<24>>24))break;if((i&255)<127){A=a[l>>2]|0;if(A>>>0>=(a[f>>2]|0)>>>0){so(n,1)|0;A=a[l>>2]|0}a[l>>2]=A+1;r[A>>0]=i;A=e;continue}else{i=r[e>>0]&63|i<<6&255;e=a[l>>2]|0;if(e>>>0>=(a[f>>2]|0)>>>0){so(n,1)|0;e=a[l>>2]|0}a[l>>2]=e+1;r[e>>0]=i;A=A+2|0;continue}}A=a[l>>2]|0;if(A>>>0>=(a[f>>2]|0)>>>0){so(n,1)|0;A=a[l>>2]|0}r[A>>0]=0;f=a[n>>2]|0;a[l>>2]=f;l=b3(f)|0;wo(n);k=t;return l|0}function IX(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0;u=k;k=k+80|0;r=u+48|0;i=u+32|0;f=u+64|0;n=u+16|0;l=u;t=e+16|0;c=A+16|0;b=a[c>>2]|0;if(((+s[t>>3]>=+s[b+48>>3]?+s[b+64>>3]>=+s[e>>3]:0)?+s[e+24>>3]>=+s[b+56>>3]:0)?+s[b+72>>3]>=+s[e+8>>3]:0){b=b+16|0;a[i>>2]=a[t>>2];a[i+4>>2]=a[t+4>>2];a[i+8>>2]=a[t+8>>2];a[i+12>>2]=a[t+12>>2];a[r>>2]=a[e>>2];a[r+4>>2]=a[e+4>>2];a[r+8>>2]=a[e+8>>2];a[r+12>>2]=a[e+12>>2];ZX(n,i,r);a[i>>2]=a[b>>2];a[i+4>>2]=a[b+4>>2];a[i+8>>2]=a[b+8>>2];a[i+12>>2]=a[b+12>>2];a[r>>2]=a[n>>2];a[r+4>>2]=a[n+4>>2];a[r+8>>2]=a[n+8>>2];a[r+12>>2]=a[n+12>>2];jR(l,i,r);a[f>>2]=A;a[f+4>>2]=0;i=a[(a[(a[(a[c>>2]|0)+8>>2]|0)+4>>2]|0)+12>>2]|0;a[r>>2]=a[l>>2];a[r+4>>2]=a[l+4>>2];a[r+8>>2]=a[l+8>>2];a[r+12>>2]=a[l+12>>2];i=Q5[i&127](f,r)|0}else i=0;k=u;return i|0}function ZX(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0;r=(+s[i+8>>3]+ +s[e+8>>3])*.5;s[A>>3]=(+s[i>>3]+ +s[e>>3])*.5;s[A+8>>3]=r;return}function GX(A,e){A=A|0;e=e|0;var i=0.0,r=0,f=0.0,n=0,l=0.0,t=0,c=0,b=0,u=0;r=k;k=k+80|0;t=r+64|0;c=r+48|0;b=r;u=r+32|0;n=r+16|0;s[b>>3]=+s[A+24>>3]*.5;s[b+8>>3]=+s[A+32>>3]*.5;A=A+56|0;a[c>>2]=a[A>>2];a[c+4>>2]=a[A+4>>2];a[c+8>>2]=a[A+8>>2];a[c+12>>2]=a[A+12>>2];a[t>>2]=a[b>>2];a[t+4>>2]=a[b+4>>2];a[t+8>>2]=a[b+8>>2];a[t+12>>2]=a[b+12>>2];jR(u,c,t);l=+s[u>>3];f=+s[u+8>>3];a[c>>2]=a[A>>2];a[c+4>>2]=a[A+4>>2];a[c+8>>2]=a[A+8>>2];a[c+12>>2]=a[A+12>>2];a[t>>2]=a[b>>2];a[t+4>>2]=a[b+4>>2];a[t+8>>2]=a[b+8>>2];a[t+12>>2]=a[b+12>>2];PR(n,c,t);i=+s[n+8>>3];if((+s[e+16>>3]>=l?+s[n>>3]>=+s[e>>3]:0)?+s[e+24>>3]>=f:0)A=i>=+s[e+8>>3]&1;else A=0;k=r;return A|0}function mX(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0;u=k;k=k+80|0;s=u+48|0;c=u;l=A+16|0;A=a[l>>2]|0;t=a[A+8>>2]|0;A:do{if((t|0)!=0?(n=t+8|0,a[c>>2]=a[n>>2],a[c+4>>2]=a[n+4>>2],a[c+8>>2]=a[n+8>>2],a[c+12>>2]=a[n+12>>2],a[c+16>>2]=a[n+16>>2],a[c+20>>2]=a[n+20>>2],a[c+24>>2]=a[n+24>>2],a[c+28>>2]=a[n+28>>2],a[s>>2]=a[e>>2],a[s+4>>2]=a[e+4>>2],a[s+8>>2]=a[e+8>>2],a[s+12>>2]=a[e+12>>2],a[s+16>>2]=a[e+16>>2],a[s+20>>2]=a[e+20>>2],a[s+24>>2]=a[e+24>>2],a[s+28>>2]=a[e+28>>2],(QX(c,s)|0)!=0):0){i=t+4|0;A=0;while(1){if((A|0)>=(a[i>>2]|0))break;r=c;f=(a[t>>2]|0)+(A*48|0)|0;n=r+48|0;do{a[r>>2]=a[f>>2];r=r+4|0;f=f+4|0}while((r|0)<(n|0));a[s>>2]=a[e>>2];a[s+4>>2]=a[e+4>>2];a[s+8>>2]=a[e+8>>2];a[s+12>>2]=a[e+12>>2];a[s+16>>2]=a[e+16>>2];a[s+20>>2]=a[e+20>>2];a[s+24>>2]=a[e+24>>2];a[s+28>>2]=a[e+28>>2];if(!((LX(c,s)|0)<<24>>24))A=A+1|0;else{A=1;break A}}A=a[l>>2]|0;b=7}else b=7}while(0);do{if((b|0)==7){A=a[A+96>>2]|0;if(A|0?(a[s>>2]=a[e>>2],a[s+4>>2]=a[e+4>>2],a[s+8>>2]=a[e+8>>2],a[s+12>>2]=a[e+12>>2],a[s+16>>2]=a[e+16>>2],a[s+20>>2]=a[e+20>>2],a[s+24>>2]=a[e+24>>2],a[s+28>>2]=a[e+28>>2],(GX(A,s)|0)<<24>>24):0){A=1;break}A=0}}while(0);k=u;return A|0}function QX(A,e){A=A|0;e=e|0;if((+s[A+16>>3]>=+s[e>>3]?+s[e+16>>3]>=+s[A>>3]:0)?+s[A+24>>3]>=+s[e+8>>3]:0)A=+s[e+24>>3]>=+s[A+8>>3]&1;else A=0;return A|0}function LX(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0;u=k;k=k+96|0;s=u+64|0;c=u+48|0;t=u+32|0;f=u+16|0;n=u;b=A+4|0;i=a[b>>2]|0;if(!i)gA(109937,107661,1637,109945);r=a[A>>2]|0;a[n>>2]=a[r>>2];a[n+4>>2]=a[r+4>>2];a[n+8>>2]=a[r+8>>2];a[n+12>>2]=a[r+12>>2];r=1;while(1){if((r|0)>=(i|0)){l=7;break}i=(a[A>>2]|0)+(r<<4)|0;a[f>>2]=a[i>>2];a[f+4>>2]=a[i+4>>2];a[f+8>>2]=a[i+8>>2];a[f+12>>2]=a[i+12>>2];a[t>>2]=a[i>>2];a[t+4>>2]=a[i+4>>2];a[t+8>>2]=a[i+8>>2];a[t+12>>2]=a[i+12>>2];a[c>>2]=a[n>>2];a[c+4>>2]=a[n+4>>2];a[c+8>>2]=a[n+8>>2];a[c+12>>2]=a[n+12>>2];a[s>>2]=a[e>>2];a[s+4>>2]=a[e+4>>2];a[s+8>>2]=a[e+8>>2];a[s+12>>2]=a[e+12>>2];a[s+16>>2]=a[e+16>>2];a[s+20>>2]=a[e+20>>2];a[s+24>>2]=a[e+24>>2];a[s+28>>2]=a[e+28>>2];if((GF(t,c,s)|0)!=-1){i=1;break}a[n>>2]=a[f>>2];a[n+4>>2]=a[f+4>>2];a[n+8>>2]=a[f+8>>2];a[n+12>>2]=a[f+12>>2];r=r+1|0;i=a[b>>2]|0}do{if((l|0)==7){i=a[A+8>>2]|0;if(i|0?(n=A+16|0,l=a[A>>2]|0,a[t>>2]=a[n>>2],a[t+4>>2]=a[n+4>>2],a[t+8>>2]=a[n+8>>2],a[t+12>>2]=a[n+12>>2],a[c>>2]=a[l>>2],a[c+4>>2]=a[l+4>>2],a[c+8>>2]=a[l+8>>2],a[c+12>>2]=a[l+12>>2],a[s>>2]=a[e>>2],a[s+4>>2]=a[e+4>>2],a[s+8>>2]=a[e+8>>2],a[s+12>>2]=a[e+12>>2],a[s+16>>2]=a[e+16>>2],a[s+20>>2]=a[e+20>>2],a[s+24>>2]=a[e+24>>2],a[s+28>>2]=a[e+28>>2],(yX(t,c,i,s)|0)<<24>>24):0){i=1;break}i=a[A+12>>2]|0;if(i|0?(l=A+32|0,b=(a[A>>2]|0)+((a[b>>2]|0)+-1<<4)|0,a[t>>2]=a[l>>2],a[t+4>>2]=a[l+4>>2],a[t+8>>2]=a[l+8>>2],a[t+12>>2]=a[l+12>>2],a[c>>2]=a[b>>2],a[c+4>>2]=a[b+4>>2],a[c+8>>2]=a[b+8>>2],a[c+12>>2]=a[b+12>>2],a[s>>2]=a[e>>2],a[s+4>>2]=a[e+4>>2],a[s+8>>2]=a[e+8>>2],a[s+12>>2]=a[e+12>>2],a[s+16>>2]=a[e+16>>2],a[s+20>>2]=a[e+20>>2],a[s+24>>2]=a[e+24>>2],a[s+28>>2]=a[e+28>>2],(yX(t,c,i,s)|0)<<24>>24):0){i=1;break}i=0}}while(0);k=u;return i|0}function yX(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0.0;b=k;k=k+160|0;n=b+144|0;f=b+128|0;u=b+96|0;l=b+64|0;t=b+32|0;c=b;w=+s[r+16>>3];a[f>>2]=a[A>>2];a[f+4>>2]=a[A+4>>2];a[f+8>>2]=a[A+8>>2];a[f+12>>2]=a[A+12>>2];a[n>>2]=a[e>>2];a[n+4>>2]=a[e+4>>2];a[n+8>>2]=a[e+8>>2];a[n+12>>2]=a[e+12>>2];KC(u,f,n,1.0,i);if(((w>=+s[u>>3]?(a[f>>2]=a[A>>2],a[f+4>>2]=a[A+4>>2],a[f+8>>2]=a[A+8>>2],a[f+12>>2]=a[A+12>>2],a[n>>2]=a[e>>2],a[n+4>>2]=a[e+4>>2],a[n+8>>2]=a[e+8>>2],a[n+12>>2]=a[e+12>>2],KC(l,f,n,1.0,i),+s[l+16>>3]>=+s[r>>3]):0)?(w=+s[r+24>>3],a[f>>2]=a[A>>2],a[f+4>>2]=a[A+4>>2],a[f+8>>2]=a[A+8>>2],a[f+12>>2]=a[A+12>>2],a[n>>2]=a[e>>2],a[n+4>>2]=a[e+4>>2],a[n+8>>2]=a[e+8>>2],a[n+12>>2]=a[e+12>>2],KC(t,f,n,1.0,i),w>=+s[t+8>>3]):0)?(a[f>>2]=a[A>>2],a[f+4>>2]=a[A+4>>2],a[f+8>>2]=a[A+8>>2],a[f+12>>2]=a[A+12>>2],a[n>>2]=a[e>>2],a[n+4>>2]=a[e+4>>2],a[n+8>>2]=a[e+8>>2],a[n+12>>2]=a[e+12>>2],KC(c,f,n,1.0,i),+s[c+24>>3]>=+s[r+8>>3]):0)f=1;else f=0;k=b;return f|0}function WX(A,e){A=A|0;e=e|0;var i=0,f=0,n=0;n=k;k=k+16|0;f=n;A:do{if((A|0)!=0?(i=r[A>>0]|0,i<<24>>24!=0):0){do{switch(i<<24>>24|0){case 48:{e=2;break A}case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:{e=10;break A}case 67:case 99:{i=A+1|0;if(!(p1(i,109960)|0)){e=4;break A}if(!(p1(i,109966)|0)){e=12;break A}break}case 70:case 102:{if(!(p1(A+1|0,109974)|0)){e=2;break A}break}case 76:case 108:{if(!(p1(A+1|0,109979)|0)){e=2;break A}break}case 78:case 110:{i=A+1|0;if(!(p1(i,109983)|0)){e=0;break A}if(!(p1(i,109987)|0)){e=2;break A}break}case 79:case 111:{if(!(p1(A+1|0,109989)|0)){e=8;break A}break}case 80:case 112:{if(!(p1(A+1|0,109994)|0)){e=6;break A}break}case 83:case 115:{if(!(p1(A+1|0,110002)|0)){e=10;break A}break}case 84:case 116:{if(!(p1(A+1|0,110008)|0)){e=10;break A}break}case 89:case 121:{if(!(p1(A+1|0,110012)|0)){e=10;break A}break}default:{}}}while(0);a[f>>2]=A;ao(0,110015,f)|0}}while(0);k=n;return e|0}function zX(A,e){A=A|0;e=e|0;var i=0;i=Ho(A,110056)|0;if(i)if(!(r[i>>0]|0))e=0;else e=WX(i,e)|0;A=(a[A+16>>2]|0)+136|0;f[A>>1]=e|l[A>>1];return}function YX(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=+r;f=f|0;var a=0.0,n=0.0,l=0.0,t=0.0,c=0.0,b=0,u=0,w=0.0,o=0,h=0.0,d=0,B=0.0,g=0,v=0,E=0,C=0;E=k;k=k+32|0;o=E+16|0;d=E;g=f&1;v=f&2;A:do{if((i|0)==2){B=+s[A+16>>3];a=+s[A>>3];t=+s[A+24>>3];l=+s[A+8>>3];a=a-(B-a);s[o>>3]=a;s[d>>3]=B;l=l-(t-l);s[o+8>>3]=l;s[d+8>>3]=t}else{n=+s[A>>3];s[d>>3]=n;s[o>>3]=n;t=+s[A+8>>3];b=d+8|0;s[b>>3]=t;u=o+8|0;s[u>>3]=t;f=0;a=n;l=t;while(1){if((f|0)>=(i|0)){B=n;break A}C=A+(f<<4)|0;h=+s[C>>3];c=+s[(h>3];s[o>>3]=c;B=+s[A+(f<<4)+8>>3];w=+s[(B>3];s[u>>3]=w;h=+s[(h>n?C:d)>>3];s[d>>3]=h;B=+s[(B>t?C:d)+8>>3];s[b>>3]=B;f=f+1|0;a=c;l=w;n=h;t=B}}}while(0);n=(B-a)*.5;h=n+a;w=(t-l)*.5;c=w+l;if(!g){a=t-c;t=r;l=+M(+t);t=+D(+t);if(!v){n=l*a-c;a=-c-w*l}else{a=l*a;n=c-a;a=a+c}s[e+8>>3]=n;s[e+24>>3]=a;r=t*(B-h);s[e>>3]=h-r;s[e+16>>3]=r+h}else{r=+z(+(w*w+n*n));s[e+8>>3]=v|0?c:-c;s[e>>3]=h;s[e+16>>3]=r*.25;s[e+24>>3]=r}k=E;return}function DX(A,e){A=A|0;e=e|0;var i=0.0,r=0,f=0;r=A+16|0;f=a[r>>2]|0;if(!(e<<24>>24)){i=+s[f+32>>3]*36.0;s[f+88>>3]=i;A=f+40|0}else{i=+s[f+40>>3]*36.0;s[f+88>>3]=i;A=f+32|0}s[f+96>>3]=i;s[(a[r>>2]|0)+80>>3]=+s[A>>3]*72.0;return}function MX(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0;u=k;k=k+32|0;c=u+8|0;f=u+4|0;n=u;i=a[e>>2]&3;r=a[((i|0)==3?e:e+48|0)+40>>2]|0;s=(a[(a[r+16>>2]|0)+232>>2]|0)+-1|0;A=a[(a[A+16>>2]|0)+196>>2]|0;l=a[A+(s<<6)+4>>2]|0;A=a[A+(s<<6)>>2]|0;s=c+8|0;a[s>>2]=-1;a[c>>2]=-1;b=c+12|0;a[b>>2]=A;t=c+4|0;a[t>>2]=A;VX(r,a[((i|0)==2?e:e+-48|0)+40>>2]|0,f,n);f=a[f>>2]|0;n=a[n>>2]|0;i=0;r=A;e=-1;while(1){if((i|0)>=(r|0))break;r=r+-1|0;JX(a[l+(i<<2)>>2]|0,c,f,n);if((i|0)!=(r|0))JX(a[l+(r<<2)>>2]|0,c,f,n);A=a[t>>2]|0;e=a[c>>2]|0;if((A-e|0)<2)break;else i=i+1|0}if((e|0)>(A|0))A=(a[b>>2]|0)+(a[s>>2]|0)|0;else A=A+e|0;k=u;return(A+1|0)/2|0|0}function FX(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0;n=A+16|0;f=a[(a[n>>2]|0)+196>>2]|0;r=f+(e<<6)|0;f=a[f+(e<<6)+4>>2]|0;if(!f)f=$F((a[r>>2]<<2)+8|0)|0;else f=eV(f,(a[r>>2]<<2)+8|0)|0;r=a[(a[n>>2]|0)+196>>2]|0;a[r+(e<<6)+4>>2]=f;r=a[r+(e<<6)>>2]|0;while(1){if((r|0)<=(i|0))break;l=r+-1|0;t=a[f+(l<<2)>>2]|0;a[f+(r<<2)>>2]=t;t=(a[t+16>>2]|0)+236|0;a[t>>2]=(a[t>>2]|0)+1;r=l}l=Yy(A)|0;t=f+(i<<2)|0;a[t>>2]=l;l=a[l+16>>2]|0;a[l+236>>2]=i;a[l+232>>2]=e;n=(a[(a[n>>2]|0)+196>>2]|0)+(e<<6)|0;l=(a[n>>2]|0)+1|0;a[n>>2]=l;a[f+(l<<2)>>2]=0;return a[t>>2]|0}function VX(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0;A=a[(a[A+16>>2]|0)+236>>2]|0;e=a[(a[e+16>>2]|0)+236>>2]|0;f=(A|0)>(e|0);a[i>>2]=f?e:A;a[r>>2]=f?A:e;return}function JX(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0;b=k;k=k+16|0;l=b+4|0;n=b;A=a[A+16>>2]|0;do{if((r[A+156>>0]|0)==1){s=a[A+236>>2]|0;if(a[A+176>>2]|0){t=a[A+180>>2]|0;A=0;n=0;l=0;while(1){c=a[t+(l<<2)>>2]|0;if(!c)break;u=a[(a[(a[((a[c>>2]&3|0)==2?c:c+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;c=(u|0)>(i|0);A=c?(u|0)<(f|0)?A:1:A;n=c?n:1;l=l+1|0}if(n<<24>>24!=0&A<<24>>24==0){a[e>>2]=s+1;break}if(!(n<<24>>24==0&A<<24>>24!=0))break;a[e+4>>2]=s+-1;break}if((a[A+184>>2]|0)!=2)gA(88397,88417,63,88424);t=a[A+180>>2]|0;u=a[t>>2]|0;t=a[t+4>>2]|0;VX(a[((a[u>>2]&3|0)==2?u:u+-48|0)+40>>2]|0,a[((a[t>>2]&3|0)==2?t:t+-48|0)+40>>2]|0,l,n);t=a[n>>2]|0;if((t|0)<=(i|0)){a[e>>2]=s;a[e+8>>2]=s;break}A=a[l>>2]|0;if((A|0)>=(f|0)){a[e+4>>2]=s;a[e+12>>2]=s;break}n=(A|0)<(i|0);l=(t|0)>(f|0);if(!(l&n)){if(!(!n?!((t|0)<(f|0)&(A|0)==(i|0)):0))a[e+8>>2]=s;if(!l?!((t|0)==(f|0)&(A|0)>(i|0)):0)break;a[e+12>>2]=s}}}while(0);k=b;return}function pX(A){A=A|0;a[47134]=1;fH(A);a[47134]=0;return}function NX(A){A=A|0;a[47134]=2;fH(A);a[47134]=0;return}function RX(A){A=A|0;var e=0;Td(A,137447,304,1)|0;FR(A);e=qF((l[(a[(Id(A)|0)+16>>2]|0)+176>>1]|0)<<3)|0;a[(a[A+16>>2]|0)+132>>2]=e;DX(A,a[(a[(Id(A)|0)+16>>2]|0)+116>>2]&1);return}function XX(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0.0,v=0.0;B=k;k=k+64|0;t=B+48|0;w=B+40|0;c=B+24|0;l=B+8|0;h=B+56|0;b=B;do{if((A|0)!=0?(d=i+16|0,o=a[(a[d>>2]|0)+132>>2]|0,n=Uo(i,A)|0,(r[n>>0]|0)!=0):0){r[h>>0]=0;A=o+8|0;if((a[47137]|0)>2?(a[l>>2]=o,a[l+4>>2]=A,a[l+8>>2]=o+16,a[l+12>>2]=h,(J3(n,88535,l)|0)>2):0){r[(a[d>>2]|0)+119>>0]=1;n=a[47137]|0;A:do{if(+s[23293]>0.0){A=0;while(1){if((A|0)>=(n|0))break A;w=o+(A<<3)|0;s[w>>3]=+s[w>>3]/+s[23293];A=A+1|0}}}while(0);if((n|0)>3)gU(i,f,3);if((r[h>>0]|0)!=33){if(!e){A=1;break}if(!((vR(Uo(i,e)|0)|0)<<24>>24)){A=1;break}}r[(a[d>>2]|0)+119>>0]=3;A=1;break}a[c>>2]=o;a[c+4>>2]=A;a[c+8>>2]=h;if((J3(n,101749,c)|0)<=1){a[t>>2]=Vh(i)|0;a[t+4>>2]=n;ao(1,88549,t)|0;A=0;break}r[(a[d>>2]|0)+119>>0]=1;n=a[47137]|0;A:do{if(+s[23293]>0.0){A=0;while(1){if((A|0)>=(n|0))break A;c=o+(A<<3)|0;s[c>>3]=+s[c>>3]/+s[23293];A=A+1|0}}}while(0);do{if((n|0)>2){A=a[47171]|0;if((A|0?(u=Uo(i,A)|0,u|0):0)?(a[w>>2]=b,(J3(u,101209,w)|0)==1):0){v=+s[23293];g=+s[b>>3];s[o+16>>3]=v>0.0?g/v:g;gU(i,f,3);break}vU(i,f)}}while(0);if((r[h>>0]|0)!=33){if(!e){A=1;break}if(!((vR(Uo(i,e)|0)|0)<<24>>24)){A=1;break}}r[(a[d>>2]|0)+119>>0]=3;A=1}else A=0}while(0);k=B;return A|0}function HX(A){A=A|0;var e=0,i=0;i=cd(A)|0;while(1){if(!i)break;e=Oo(A,i)|0;while(1){if(!e)break;wX(e);e=_o(A,e)|0}bX(i);i=sd(A,i)|0}UX(A);return}function UX(A){A=A|0;if((a[47134]|0)!=0|(a[46795]|0)<0)dU(A);if((Zd(A)|0)!=(A|0))_d(A,0,137483);return}function xX(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0;h=k;k=k+48|0;b=h+32|0;w=h;c=Yo(A,0,102637,0)|0;i=Yo(A,0,102671,0)|0;o=(ER(Ho(A,88593)|0,0)|0)<<24>>24!=0;if(!i)i=Yo(A,0,102671,195059)|0;hU(A)|0;u=A+16|0;l=0;while(1){t=a[(a[(a[u>>2]|0)+152>>2]|0)+(l<<2)>>2]|0;if(!t){f=12;break}n=t+16|0;f=a[n>>2]|0;if(!(r[f+119>>0]|0)){if(Z1(Vh(t)|0,108006,7)|0){f=8;break}f=a[n>>2]|0}f=a[f+108>>2]|0;if(f|0)TX(t,f,102633);l=l+1|0}A:do{if((f|0)==8){o=Vh(t)|0;i=Vh(A)|0;a[b>>2]=o;a[b+4>>2]=i;ao(1,88605,b)|0;i=-1}else if((f|0)==12){jX(A,c,i);t=PX(A)|0;i=a[(a[u>>2]|0)+8>>2]|0;if(!(a[i+88>>2]|0))i=0;else{a[i+84>>2]=0;i=1}n=(e|0)!=0;l=(i|0)!=0;if(!(l|n&(a[47134]|0)==1^1)?(eP(A)|0)!=0:0){f=a[(a[u>>2]|0)+12>>2]|0;if(!f)f=1;else{r[f+81>>0]=0;f=1}}else f=0;xR(A);if(l){e=(a[u>>2]|0)+16|0;wI(w,A);a[e>>2]=a[w>>2];a[e+4>>2]=a[w+4>>2];a[e+8>>2]=a[w+8>>2];a[e+12>>2]=a[w+12>>2];a[e+16>>2]=a[w+16>>2];a[e+20>>2]=a[w+20>>2];a[e+24>>2]=a[w+24>>2];a[e+28>>2]=a[w+28>>2]}if(!n){a[47138]=1;f=cd(A)|0;while(1){if(!f)break A;o=a[f+16>>2]|0;w=a[o+132>>2]|0;s[o+16>>3]=+s[w>>3]*72.0;s[o+24>>3]=+s[w+8>>3]*72.0;f=sd(A,f)|0}}do{if(!(o|l)){o=a[u>>2]|0;if(!(+s[o+16>>3]!=0.0)?!(+s[o+24>>3]!=0.0):0)break;UH(A)}}while(0);if(!((t|0)!=0&(f|(XH(A)|0)<<24>>24!=0))){if((t|0)==2){a[47138]=1;break}}else SX(A);RH(A,0)}}while(0);k=h;return i|0}function TX(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0;c=k;k=k+48|0;t=c+32|0;f=c+24|0;n=c+16|0;l=c;A=Ho(A,i)|0;if(A|0?(a[t>>2]=f,a[t+4>>2]=n,(J3(A,105503,t)|0)==2):0){t=e+56|0;_X(l,+s[f>>3],+s[n>>3]);a[t>>2]=a[l>>2];a[t+4>>2]=a[l+4>>2];a[t+8>>2]=a[l+8>>2];a[t+12>>2]=a[l+12>>2];r[e+81>>0]=1}k=c;return}function jX(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,b=0,u=0;b=k;k=k+48|0;c=b+32|0;f=b+24|0;n=b+16|0;l=b;t=A+16|0;if((e|0?(a[(a[t>>2]|0)+12>>2]|0)!=0:0)?(u=Uo(A,e)|0,a[c>>2]=f,a[c+4>>2]=n,(J3(u,105503,c)|0)==2):0){u=(a[(a[t>>2]|0)+12>>2]|0)+56|0;_X(l,+s[f>>3],+s[n>>3]);a[u>>2]=a[l>>2];a[u+4>>2]=a[l+4>>2];a[u+8>>2]=a[l+8>>2];a[u+12>>2]=a[l+12>>2];r[(a[(a[t>>2]|0)+12>>2]|0)+81>>0]=1}A:do{if(i|0){f=RB(A)|0;while(1){if(!f)break A;qX(f,A,e,i);f=XB(f)|0}}}while(0);k=b;return}function PX(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;if(vh(A)|0){f=Yo(A,2,102623,0)|0;if(!((f|0)==0|(a[47134]|0)<2)){e=0;r=cd(A)|0;while(1){if(!r)break;i=Oo(A,r)|0;while(1){if(!i)break;n=e+((OX(f,i)|0)!=0&1)|0;i=_o(A,i)|0;e=n}r=sd(A,r)|0}if(e){e=(e|0)==(vh(A)|0);e=e?2:1}else e=0}else e=0}else e=2;return e|0}function SX(A){A=A|0;var e=0,i=0,r=0;i=cd(A)|0;while(1){if(!i)break;e=Oo(A,i)|0;while(1){if(!e)break;kX(e);r=e+16|0;TF(a[(a[r>>2]|0)+96>>2]|0);TF(a[(a[r>>2]|0)+108>>2]|0);TF(a[(a[r>>2]|0)+100>>2]|0);TF(a[(a[r>>2]|0)+104>>2]|0);e=_o(A,e)|0}i=sd(A,i)|0}return}function OX(A,e){A=A|0;e=e|0;var i=0,f=0,n=0.0,l=0.0,t=0.0,c=0.0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0;Q=k;k=k+96|0;G=Q+72|0;I=Q+56|0;m=Q+48|0;Z=Q+32|0;C=Q+16|0;d=Q+88|0;B=Q+8|0;g=Q;v=Q+84|0;E=Q+80|0;A=Uo(e,A)|0;do{if(r[A>>0]|0){DC(e,v,E);h=1;f=0;i=0;t=0.0;l=0.0;c=0.0;n=0.0;A:while(1){a[C>>2]=B;a[C+4>>2]=g;a[C+8>>2]=d;if((J3(A,88642,C)|0)==2){o=1;A=A+(a[d>>2]|0)|0;l=+s[B>>3];n=+s[g>>3]}else o=i;a[Z>>2]=B;a[Z+4>>2]=g;a[Z+8>>2]=d;if((J3(A,88654,Z)|0)==2){w=1;A=A+(a[d>>2]|0)|0;t=+s[B>>3];c=+s[g>>3]}else w=f;b=KX(A)|0;if(!((b|0)>3&((b|0)%3|0|0)==1)){i=8;break}u=$F(b<<4)|0;i=u;f=b;while(1){if(!f)break;a[I>>2]=B;a[I+4>>2]=g;a[I+8>>2]=d;if((J3(A,88724,I)|0)<2){i=13;break A}L=A+(a[d>>2]|0)|0;s[i>>3]=+s[B>>3];s[i+8>>3]=+s[g>>3];i=i+16|0;f=f+-1|0;A=L}while(1){i=r[A>>0]|0;f=A+1|0;if(!(m1(i<<24>>24)|0))break;else A=f}L=i<<24>>24==0;A=L?A:f;h=L?0:h;f=gN(e,b)|0;if(o|0){a[f+8>>2]=a[v>>2];s[f+16>>3]=l;s[f+24>>3]=n}if(w|0){a[f+12>>2]=a[E>>2];s[f+32>>3]=t;s[f+40>>3]=c}i=0;while(1){if((i|0)>=(b|0))break;L=(a[f>>2]|0)+(i<<4)|0;y=u+(i<<4)|0;a[L>>2]=a[y>>2];a[L+4>>2]=a[y+4>>2];a[L+8>>2]=a[y+8>>2];a[L+12>>2]=a[y+12>>2];i=i+1|0}L2(u);if(!h){i=26;break}else{f=w;i=o}}if((i|0)==8){kX(e);if(r[193771]|0){A=0;break}r[193771]=1;y=Vh(a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)|0;A=Vh(a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)|0;a[m>>2]=y;a[m+4>>2]=A;ao(0,88667,m)|0;A=0;break}else if((i|0)==13){if(!(r[193771]|0)){r[193771]=1;L=Vh(a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)|0;y=Vh(a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)|0;a[G>>2]=L;a[G+4>>2]=y;ao(0,88734,G)|0}L2(u);kX(e);A=0;break}else if((i|0)==26){f=e+16|0;A=a[f>>2]|0;i=a[A+96>>2]|0;if(i){TX(e,i,102637);A=a[f>>2]|0}i=a[A+108>>2]|0;if(i){TX(e,i,102633);A=a[f>>2]|0}i=a[A+100>>2]|0;if(i){TX(e,i,102640);A=a[f>>2]|0}A=a[A+104>>2]|0;if(!A){A=1;break}TX(e,A,102648);A=1;break}}else A=0}while(0);k=Q;return A|0}function KX(A){A=A|0;var e=0,i=0;i=0;do{while(1){e=r[A>>0]|0;if(!(m1(e&255)|0))break;else A=A+1|0}A:do{if(!(e<<24>>24))e=0;else{i=i+1|0;while(1){if(!(e<<24>>24)){e=0;break A}if(e<<24>>24==59|(m1(e&255)|0)!=0)break A;e=A+1|0;A=e;e=r[e>>0]|0}}}while(0)}while((m1(e&255)|0)!=0);return i|0}function _X(A,e,i){A=A|0;e=+e;i=+i;s[A>>3]=e;s[A+8>>3]=i;return}function qX(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0;l=k;k=k+32|0;f=l;if((Z1(Vh(A)|0,108006,7)|0)==0?($X(A,r,f)|0)!=0:0){Td(A,137483,280,1)|0;t=(a[A+16>>2]|0)+16|0;a[t>>2]=a[f>>2];a[t+4>>2]=a[f+4>>2];a[t+8>>2]=a[f+8>>2];a[t+12>>2]=a[f+12>>2];a[t+16>>2]=a[f+16>>2];a[t+20>>2]=a[f+20>>2];a[t+24>>2]=a[f+24>>2];a[t+28>>2]=a[f+28>>2];AH(e,A);jX(A,i,r)}else n=4;A:do{if((n|0)==4){A=RB(A)|0;while(1){if(!A)break A;qX(A,e,i,r);A=XB(A)|0}}}while(0);k=l;return}function $X(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0,n=0,l=0,t=0,c=0;l=k;k=k+48|0;t=l+32|0;n=l;c=Uo(A,e)|0;A=n+8|0;e=n+24|0;a[t>>2]=n;a[t+4>>2]=A;a[t+8>>2]=n+16;a[t+12>>2]=e;if((J3(c,88782,t)|0)==4){r=+s[A>>3];f=+s[e>>3];if(r>f){s[A>>3]=f;s[e>>3]=r}a[i>>2]=a[n>>2];a[i+4>>2]=a[n+4>>2];a[i+8>>2]=a[n+8>>2];a[i+12>>2]=a[n+12>>2];a[i+16>>2]=a[n+16>>2];a[i+20>>2]=a[n+20>>2];a[i+24>>2]=a[n+24>>2];a[i+28>>2]=a[n+28>>2];A=1}else A=0;k=l;return A|0}function AH(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;r=A+16|0;i=a[r>>2]|0;n=i+180|0;A=a[n>>2]|0;f=A+1|0;a[n>>2]=f;i=a[i+184>>2]|0;if(!i)A=qF((A<<2)+8|0)|0;else A=AV(i,A+2|0,4,f)|0;a[(a[r>>2]|0)+184>>2]=A;a[A+(f<<2)>>2]=e;JF(e);return}function eH(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,l=0,t=0,c=0,s=0,b=0,u=0;u=k;k=k+48|0;b=u+8|0;s=u;t=u+16|0;c=u+12|0;l=Ho(A,88798)|0;do{if((l|0)!=0?(f=r[l>>0]|0,f<<24>>24!=0):0){f=f&255;if(!(J1(f)|0))if((e|0)==2|(f+-48|0)>>>0<10)e=l;else break;else{if(!(Z1(l,88804,4)|0)){e=0;break}if(!(Z1(l,105511,7)|0)){e=1;break}if(Z1(l,88809,6)|0)if((e|0)==2)e=l;else break;else e=l+6|0}if(!(((n[e>>0]|0)+-48|0)>>>0<10?(a[s>>2]=c,(J3(e,99933,s)|0)>=1):0)){s=z3()|0;s=(ne(0)|0)^s;a[c>>2]=s;a[b>>2]=s;S4(t,99933,b)|0;xo(A,88798,t)|0}a[i>>2]=a[c>>2];e=2}}while(0);k=u;return e|0}function iH(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;f=k;k=k+16|0;r=f+4|0;a[r>>2]=1;i=eH(A,i,r)|0;if((i|0)!=2&(a[46796]|0)!=0)ao(0,88816,f)|0;if((i|0)==1)rH(A,e);l8(a[r>>2]|0);k=f;return i|0}function rH(A,e){A=A|0;e=e|0;var i=0,f=0.0,n=0.0,l=0.0,t=0,c=0,b=0.0;n=+(e|0);l=6.283185307179586/n;i=cd(A)|0;f=0.0;while(1){if(!i)break;b=+D(+f)*n;t=a[i+16>>2]|0;c=a[t+132>>2]|0;s[c>>3]=b;s[c+8>>3]=+M(+f)*n;r[t+119>>0]=1;if((a[47137]|0)>2)vU(i,e);i=sd(A,i)|0;f=f+l}return}function fH(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0.0,d=0;d=k;k=k+80|0;e=d+24|0;u=d+32|0;c=d;o=d+28|0;b=d+64|0;h=+s[23293];do{if(a[47134]|0){s[23293]=72.0;aH(A);nH(A);if((xX(A,1)|0)<0){ao(3,88864,e)|0;break}else{gJ(A,0);f=32;break}}else{w=ER(Ho(A,88593)|0,0)|0;s[23293]=+hR(A);aH(A);n=lH(A)|0;mj(A,c,0)|0;l=tH(A)|0;t=uC(A,0,u)|0;e=bC(A,-1,8)|0;a[46795]=e;i=(e|0)<0;do{if(!t){if((n|0)!=0&i){a[46795]=8;a[u+16>>2]=2;f=11;break}a[u+16>>2]=2;if((e|0)<=-1){cH(A,n,l);yj(A,c)|0;nH(A);if(!(w<<24>>24)){SH(A);break}else{sH(A);break}}else f=11}else if(i){a[46795]=8;f=11}else f=11}while(0);if((f|0)==11){t=BE(A,o,88892,b)|0;e=a[o>>2]|0;do{if((e|0)<=1){cH(A,n,l);yj(A,c)|0;if(!(w<<24>>24)){SH(A);break}else{sH(A);break}}else{f=w<<24>>24==0;i=0;while(1){if((i|0)>=(e|0))break;e=a[t+(i<<2)>>2]|0;VE(e)|0;cH(e,n,l);yj(e,c)|0;zX(e,2);if(f)SH(e);else sH(e);i=i+1|0;e=a[o>>2]|0}if(!(r[b>>0]|0))i=0;else{i=qF(e)|0;r[i>>0]=1;e=a[o>>2]|0}a[u+8>>2]=a[46795];a[u+20>>2]=i;a[u+12>>2]=1;tC(e,t,A,u)|0;L2(i)}}while(0);xR(A);nH(A);e=0;while(1){if((e|0)>=(a[o>>2]|0))break;u=a[t+(e<<2)>>2]|0;dU(u);Pd(u,137483)|0;Cd(A,u)|0;e=e+1|0}L2(t)}gJ(A,w<<24>>24==0&1);f=32}}while(0);if((f|0)==32)s[23293]=h;k=d;return}function aH(A){A=A|0;var e=0,i=0,r=0,n=0;zX(A,2);r=kR(A,Yo(A,0,91368,0)|0,2,2)|0;e=(kR(A,Yo(A,0,91374,0)|0,r,2)|0)&65535;f[(a[(Zd(A)|0)+16>>2]|0)+176>>1]=e;e=a[(a[A+60>>2]|0)+16>>2]|0;n=e+176|0;i=f[n>>1]|0;i=(i&65535)<10?i:10;f[n>>1]=i;i=i&65535;a[47137]=i;f[e+178>>1]=(r|0)<(i|0)?r:i;vH(A);return}function nH(A){A=A|0;var e=0,i=0,r=0,f=0;f=k;k=k+1040|0;r=f;i=f+8|0;A:do{if((a[47137]|0)>2&(a[47171]|0)!=0){e=cd(A)|0;while(1){if(!e)break A;s[r>>3]=+s[(a[(a[e+16>>2]|0)+132>>2]|0)+16>>3]*72.0;S4(i,101209,r)|0;Vo(e,a[47171]|0,i)|0;e=sd(A,e)|0}}}while(0);k=f;return}function lH(A){A=A|0;var e=0,i=0,f=0;f=k;k=k+16|0;i=f;e=Ho(A,89577)|0;A:do{if(!e)A=1;else{switch(r[e>>0]|0){case 0:{A=1;break A}case 75:{if(!(A1(e,89582)|0)){A=0;break A}break}case 109:{if(!(A1(e,89585)|0)){A=1;break A}break}case 104:{if(!(A1(e,89591)|0)){A=2;break A}break}default:{}}A=Vh(A)|0;a[i>>2]=e;a[i+4>>2]=A;ao(0,89596,i)|0;A=1}}while(0);k=f;return A|0}function tH(A){A=A|0;var e=0,i=0,f=0,n=0,l=0;l=k;k=k+32|0;n=l+16|0;f=l+8|0;i=l;e=Ho(A,89360)|0;A:do{if(!e)A=0;else{switch(r[e>>0]|0){case 0:{A=0;break A}case 99:{if(!(A1(e,89366)|0)){A=1;break A}break}case 115:{if(!(A1(e,89374)|0)){A=2;break A}if(!(A1(e,89381)|0)){A=0;break A}break}case 109:{if(!(A1(e,89391)|0)){if(Yo(A,2,92493,0)|0){A=3;break A}a[i>>2]=Vh(A)|0;ao(0,89395,i)|0;ao(3,89458,f)|0;A=0;break A}break}default:{}}A=Vh(A)|0;a[n>>2]=e;a[n+4>>2]=A;ao(0,89515,n)|0;A=0}}while(0);k=l;return A|0}function cH(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=Ho(A,91061)|0;if(!r)if((e|0)==1)r=200;else r=(gh(A)|0)*100|0;else r=q3(r)|0;a[47136]=r;r=sU(A,e)|0;do{if(!((r|0)<2|(a[47136]|0)<0))if(!e){uH(A,r,i);break}else{bH(A,r,e,i,a[47137]|0);break}}while(0);return}function sH(A){A=A|0;xR(A);RH(A,1);return}function bH(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,b=0.0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0;v=k;k=k+64|0;d=v+40|0;w=v+24|0;u=v;o=v+48|0;g=v+44|0;h=(i|0)==2;l=iH(A,e,h?0:2)|0;t=gH(A)|0;c=t|4;B=$F(f<<2)|0;a[B>>2]=$F(U(e<<3,f)|0)|0;n=a[47137]|0;f=1;while(1){if((f|0)>=(n|0))break;a[B+(f<<2)>>2]=(a[B>>2]|0)+((U(f,e)|0)<<3);f=f+1|0}n=(l|0)==0;f=n?c:t;if(0){}u=oH(A,e,o,i,r,g)|0;if(0){}if((i|0)!=1){b=+oR(A,Yo(A,0,89279,0)|0,0.0,-1797693134862315708145274.0e284);if(h){f=kP(u,e,a[o>>2]|0,B,a[g>>2]|0,a[47137]|0,f,r,a[47136]|0,b)|0;n=12}else n=14}else{f=iU(u,e,a[o>>2]|0,B,a[g>>2]|0,a[47137]|0,f,r,a[47136]|0)|0;n=12}if((n|0)==12)if((f|0)<0)ao(3,89289,d)|0;else n=14;A:do{if((n|0)==14){n=cd(A)|0;while(1){if(!n)break A;c=a[n+16>>2]|0;l=a[c+120>>2]|0;t=a[47137]|0;c=c+132|0;f=0;while(1){if((f|0)>=(t|0))break;s[(a[c>>2]|0)+(f<<3)>>3]=+s[(a[B+(f<<2)>>2]|0)+(l<<3)>>3];f=f+1|0}n=sd(A,n)|0}}}while(0);XP(u);L2(a[B>>2]|0);L2(B);L2(a[g>>2]|0);k=v;return}function uH(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0.0,t=0;n=k;k=k+48|0;f=n+32|0;r=n;switch(i|0){case 2:{wH(A,e);break}case 1:{if(!(sP(A,e)|0)){a[r>>2]=Vh(A)|0;ao(0,88902,r)|0;ao(3,93364,n+8|0)|0;ao(3,88954,n+16|0)|0;ao(3,89026,n+24|0)|0;MU(A,e)}break}default:{MU(A,e);if((i|0)==3)kH(A)}}CU(A,e);IU(A,e);if(0){}ZU(A,e);k=n;return}function wH(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;t=k;k=k+16|0;n=oH(A,e,t,0,2,0)|0;l=US(n,e)|0;r=A+16|0;A=0;while(1){if((A|0)>=(e|0))break;f=l+(A<<2)|0;i=0;while(1){if((i|0)==(e|0))break;s[(a[(a[(a[r>>2]|0)+160>>2]|0)+(A<<2)>>2]|0)+(i<<3)>>3]=+(a[(a[f>>2]|0)+(i<<2)>>2]|0);i=i+1|0}A=A+1|0}L2(a[l>>2]|0);L2(l);XP(n);k=t;return}function kH(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0.0;f=A+16|0;i=cd(A)|0;while(1){if(!i)break;e=Oo(A,i)|0;while(1){if(!e)break;n=a[e>>2]&3;r=(a[a[((n|0)==3?e:e+48|0)+40>>2]>>2]|0)>>>4;n=(a[a[((n|0)==2?e:e+-48|0)+40>>2]>>2]|0)>>>4;if((r|0)!=(n|0)){t=+s[(a[e+16>>2]|0)+136>>3];l=a[(a[f>>2]|0)+160>>2]|0;s[(a[l+(n<<2)>>2]|0)+(r<<3)>>3]=t;s[(a[l+(r<<2)>>2]|0)+(n<<3)>>3]=t}e=_o(A,e)|0}i=sd(A,i)|0}return}function oH(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,b=0,u=0,w=0,k=0.0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0.0,M=0;l=vh(A)|0;Y=sJ()|0;if((f|0)==2){t=0;y=0}else{y=Yo(A,2,92493,0)|0;t=(a[47174]|0)!=0&1;y=(y|0)!=0}m=(r|1|0)==3;W=$F(e*20|0)|0;z=$F(e<<2)|0;b=(l<<1)+e<<2;u=$F(b)|0;G=m|y;if(G)f=$F(b)|0;else f=0;L=(t|0)!=0;if(L)l=$F(b)|0;else l=0;if(m)t=$F(b)|0;else t=0;b=0;I=cd(A)|0;Z=0;while(1){if(!I)break;wJ(Y);if((a[(a[I+16>>2]|0)+120>>2]|0)!=(Z|0)){Q=12;break}a[z+(Z<<2)>>2]=I;v=W+(Z*20|0)+4|0;a[v>>2]=u;E=W+(Z*20|0)+8|0;a[E>>2]=G?f:0;C=W+(Z*20|0)+12|0;a[C>>2]=L?l:0;a[W+(Z*20|0)+16>>2]=m?t:0;d=1;g=Ah(A,I)|0;B=1;h=b;u=u+4|0;f=G?f+4|0:f;l=L?l+4|0:l;t=m?t+4|0:t;while(1){if(!g)break;w=a[g>>2]&3;o=g+-48|0;b=g+48|0;do{if((a[((w|0)==2?g:o)+40>>2]|0)==(a[((w|0)==3?g:b)+40>>2]|0)){w=d;o=B;b=h}else{w=hH(Y,g,d)|0;if((w|0)!=(d|0)){if(L){o=(a[C>>2]|0)+(w<<2)|0;c[o>>2]=+s[(a[g+16>>2]|0)+128>>3]+ +c[o>>2]}if(!y){w=d;o=B;b=h;break}w=(a[E>>2]|0)+(w<<2)|0;D=+s[(a[g+16>>2]|0)+136>>3];k=+(~~+c[w>>2]|0);c[w>>2]=D>k?D:k;w=d;o=B;b=h;break}M=a[g>>2]&3;b=(M|0)==3?g:b;h=h+1|0;w=d+1|0;d=u+4|0;a[u>>2]=a[(a[(a[((a[b+40>>2]|0)==(I|0)?(M|0)==2?g:o:b)+40>>2]|0)+16>>2]|0)+120>>2];if(L){c[l>>2]=+s[(a[g+16>>2]|0)+128>>3];l=l+4|0}if(y){b=f+4|0;c[f>>2]=+s[(a[g+16>>2]|0)+136>>3];if(m){f=b;Q=27}else f=b}else if(m){c[f>>2]=1.0;f=f+4|0;Q=27}if((Q|0)==27){Q=0;b=Ho(g,101559)|0;if((b|0)!=0?(Z1(b,135709,4)|0)==0:0)k=0.0;else k=(I|0)==(a[((a[g>>2]&3|0)==2?g:o)+40>>2]|0)?1.0:-1.0;c[t>>2]=k;t=t+4|0}o=B+1|0;b=h;u=d}}while(0);d=w;g=eh(A,g,I)|0;B=o;h=b}a[W+(Z*20|0)>>2]=B;a[a[v>>2]>>2]=Z;b=h;I=sd(A,I)|0;Z=Z+1|0}if((Q|0)==12)gA(89103,89118,819,89130);if(m)dH(W,e,r,z);w=(b|0)/2|0;A:do{if((w|0)!=(vh(A)|0)){b=(w<<1)+e<<2;t=eV(a[W+4>>2]|0,b)|0;if(y)f=eV(a[W+8>>2]|0,b)|0;if(L){u=0;l=eV(a[W+12>>2]|0,b)|0}else u=0;while(1){if((u|0)>=(e|0))break A;b=a[W+(u*20|0)>>2]|0;a[W+(u*20|0)+4>>2]=t;if(y){a[W+(u*20|0)+8>>2]=f;f=f+(b<<2)|0}if(L){a[W+(u*20|0)+12>>2]=l;l=l+(b<<2)|0}u=u+1|0;t=t+(b<<2)|0}}}while(0);a[i>>2]=w;if(!n)L2(z);else a[n>>2]=z;kJ(Y);return W|0}function hH(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;f=a[e>>2]&3;r=a[(a[(a[((f|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+120>>2]|0;e=a[(a[(a[((f|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+120>>2]|0;f=(r|0)>(e|0);return oJ(A,f?e:r,f?r:e,i)|0}function dH(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0;n=0;while(1){if((n|0)>=(e|0)){n=0;break}l=a[(a[f+(n<<2)>>2]|0)+16>>2]|0;r[l+157>>0]=0;r[l+158>>0]=0;n=n+1|0}while(1){if((n|0)>=(e|0))break;if(!(r[(a[(a[f+(n<<2)>>2]|0)+16>>2]|0)+157>>0]|0))BH(A,n,i,f);n=n+1|0}return}function BH(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,s=0,b=0,u=0,w=0,k=0.0,o=0,h=0;h=(a[f+(e<<2)>>2]|0)+16|0;b=a[h>>2]|0;r[b+157>>0]=1;r[b+158>>0]=1;b=A+(e*20|0)|0;u=A+(e*20|0)+16|0;w=A+(e*20|0)+4|0;k=(i|0)==3?-1.0:1.0;s=1;A:while(1){if((s|0)>=(a[b>>2]|0)){n=14;break}n=(a[u>>2]|0)+(s<<2)|0;do{if(!(+c[n>>2]==1.0)){o=a[(a[w>>2]|0)+(s<<2)>>2]|0;l=a[(a[f+(o<<2)>>2]|0)+16>>2]|0;if(!(r[l+158>>0]|0)){if(r[l+157>>0]|0)break;BH(A,o,i,f);break}c[n>>2]=k;l=A+(o*20|0)+4|0;t=a[A+(o*20|0)>>2]|0;n=1;while(1){if((n|0)>=(t|0)){n=9;break A}if((a[(a[l>>2]|0)+(n<<2)>>2]|0)==(e|0))break;n=n+1|0}c[(a[A+(o*20|0)+16>>2]|0)+(n<<2)>>2]=-1.0}}while(0);s=s+1|0}if((n|0)==9)gA(89144,89118,721,89164);else if((n|0)==14){r[(a[h>>2]|0)+158>>0]=0;return}}function gH(A){A=A|0;var e=0,i=0;i=k;k=k+16|0;e=i;A=kR(A,Yo(A,0,89305,0)|0,2,0)|0;if((A|0)==0|(A|0)>2){a[e>>2]=89305;ao(0,89314,e)|0;A=2}k=i;return A|0}function vH(A){A=A|0;var e=0,i=0,r=0;i=gh(A)|0;a[46796]=Yo(A,1,102623,0)|0;r=Yo(A,1,90660,0)|0;e=cd(A)|0;while(1){if(!e)break;RX(e);XX(a[46796]|0,r,e,i)|0;e=sd(A,e)|0}i=cd(A)|0;while(1){if(!i)break;e=Oo(A,i)|0;while(1){if(!e)break;EH(e);e=_o(A,e)|0}i=sd(A,i)|0}return}function EH(A){A=A|0;var e=0.0;Td(A,137460,176,1)|0;VR(A)|0;e=+oR(A,a[47174]|0,1.0,1.0);s[(a[A+16>>2]|0)+128>>3]=e;return}function CH(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,n=0;A=qF(64)|0;i=A+8|0;r=e+8|0;n=i+48|0;do{a[i>>2]=a[r>>2];i=i+4|0;r=r+4|0}while((i|0)<(n|0));e=a[e+56>>2]|0;a[A+56>>2]=e;f[(a[e+16>>2]|0)+168>>1]=1;return A|0}function IH(A,e,i){A=A|0;e=e|0;i=i|0;L2(e);return}function ZH(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;A=a[e>>2]|0;r=a[i>>2]|0;if(A>>>0<=r>>>0)if(A>>>0>=r>>>0){r=a[e+24>>2]|0;A=a[i+24>>2]|0;if(r>>>0<=A>>>0)if(r>>>0>=A>>>0){A=~~(+s[e+8>>3]-+s[i+8>>3]);if(!A){A=~~(+s[e+16>>3]-+s[i+16>>3]);if(!A){A=~~(+s[e+32>>3]-+s[i+32>>3]);if(!A)A=~~(+s[e+40>>3]-+s[i+40>>3])}}}else A=-1;else A=1}else A=-1;else A=1;return A|0}function GH(A,e,i){A=A|0;e=e|0;i=i|0;var n=0,l=0,t=0,c=0,s=0,b=0.0;s=k;k=k+16|0;n=s;l=e+16|0;t=f[(a[l>>2]|0)+168>>1]|0;c=t<<16>>16;if(t<<16>>16!=1&(r[194954]|0)==0){t=$F(c<<2)|0;n=0;while(1){if((n|0)>=(c|0))break;a[t+(n<<2)>>2]=e;e=a[(a[e+16>>2]|0)+172>>2]|0;n=n+1|0}b=+(i|0);LN(A,t,0,c,b,b,17792);e=0;while(1){if((e|0)>=(c|0))break;n=a[t+(e<<2)>>2]|0;l=n+16|0;if(a[(a[l>>2]|0)+96>>2]|0){i=Id(a[((a[n>>2]&3|0)==3?n:n+48|0)+40>>2]|0)|0;HR(i,a[(a[l>>2]|0)+96>>2]|0)}FN(n);e=e+1|0}L2(t)}else{a[n>>2]=e;b=+(i|0);LN(A,n,0,1,b,b,17792);if(a[(a[l>>2]|0)+96>>2]|0){c=Id(a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)|0;HR(c,a[(a[l>>2]|0)+96>>2]|0)}FN(e)}k=s;return}function mH(A){A=A|0;return 0}function QH(A){A=A|0;return 0}function LH(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0.0,b=0.0,u=0.0,w=0.0,o=0.0,h=0.0,d=0,B=0.0,g=0,v=0,E=0,C=0.0,I=0.0,Z=0.0,G=0,m=0,Q=0,L=0,y=0,W=0,Y=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0;H=k;k=k+384|0;R=H+368|0;X=H+112|0;l=H+32|0;d=H+336|0;V=H+320|0;J=H+304|0;p=H+288|0;N=H+272|0;n=H+256|0;W=H+240|0;Y=H+224|0;F=H+208|0;g=H+192|0;v=H+176|0;E=H+160|0;G=H+144|0;m=H+128|0;Q=H+96|0;L=H+16|0;y=H;A:do{switch(bp(A)|0){case 3:case 1:{f=qF(8)|0;G=A+16|0;A=a[G>>2]|0;n=a[A+12>>2]|0;do{if(!(i<<24>>24)){A=a[n+8>>2]|0;if((A|0)>2){Z=0.0;l=a[n+44>>2]|0;i=0;o=+c[e>>2];h=+c[e+4>>2];break}else{Z=+c8()*.01;A=8;l=0;i=1;o=0.0;h=0.0;break}}else if(!(a[n+40>>2]&2048)){h=+s[A+88>>3];o=-h;Z=+s[A+80>>3];I=Z*-.5;s[l>>3]=o;s[l+8>>3]=I;s[l+16>>3]=h;s[l+24>>3]=I;Z=Z*.5;s[l+32>>3]=h;s[l+40>>3]=Z;s[l+48>>3]=o;s[l+56>>3]=Z;Z=0.0;A=4;i=0;o=0.0;h=0.0;break}else{XR(d,n);o=+s[d>>3];I=+s[d+8>>3];h=+s[d+16>>3];Z=+s[d+24>>3];s[l>>3]=o;s[l+8>>3]=I;s[l+16>>3]=h;s[l+24>>3]=I;s[l+32>>3]=h;s[l+40>>3]=Z;s[l+48>>3]=o;s[l+56>>3]=Z;Z=0.0;A=4;i=0;o=0.0;h=0.0;break}}while(0);a[f+4>>2]=A;d=qF(A<<4)|0;a[f>>2]=d;B=1.0/+(A|0);g=e+8|0;v=e+4|0;E=(A|0)==4;C=-o;I=-h;n=0;while(1){if((A|0)<=(n|0))break A;do{if(i){t=+(n|0)*6.283185307179586*B+Z;b=+D(+t);t=+M(+t);if(!(r[g>>0]|0)){X=a[G>>2]|0;u=t*+c[v>>2]*+s[X+80>>3];t=b*+c[e>>2]*(+s[X+96>>3]+ +s[X+88>>3])}else{X=a[G>>2]|0;u=(+s[X+80>>3]+ +c[v>>2])*t;t=(+s[X+96>>3]+ +s[X+88>>3]+ +c[e>>2])*b}w=t*.5;t=u*.5}else{if(!(r[g>>0]|0)){w=+s[l+(n<<4)>>3]*o;t=+s[l+(n<<4)+8>>3]*h;break}if(!E){w=+s[l+(n<<4)>>3];t=+s[l+(n<<4)+8>>3];u=+z(+(t*t+w*w));w=(o/u+1.0)*w;t=(h/u+1.0)*t;break}switch(n|0){case 0:{b=h;t=o;break}case 1:{b=h;t=C;break}case 2:{b=I;t=C;break}case 3:{b=I;t=o;break}default:{b=0.0;t=0.0}}w=+s[l+(n<<4)>>3]+t;t=+s[l+(n<<4)+8>>3]+b}}while(0);R=a[G>>2]|0;X=A-n+-1|0;s[d+(X<<4)>>3]=+s[R+16>>3]+w;s[d+(X<<4)+8>>3]=+s[R+24>>3]+t;n=n+1|0}}case 2:{y=A+16|0;f=a[(a[y>>2]|0)+12>>2]|0;t=+s[f+16>>3];w=+s[f+24>>3];b=+s[f+32>>3];u=+s[f+40>>3];f=qF(8)|0;a[f+4>>2]=4;A=qF(64)|0;a[f>>2]=A;y=(a[y>>2]|0)+16|0;a[X>>2]=a[y>>2];a[X+4>>2]=a[y+4>>2];a[X+8>>2]=a[y+8>>2];a[X+12>>2]=a[y+12>>2];if(!(r[e+8>>0]|0)){a[R>>2]=a[X>>2];a[R+4>>2]=a[X+4>>2];a[R+8>>2]=a[X+8>>2];a[R+12>>2]=a[X+12>>2];WH(n,t,w,R,e);a[A>>2]=a[n>>2];a[A+4>>2]=a[n+4>>2];a[A+8>>2]=a[n+8>>2];a[A+12>>2]=a[n+12>>2];N=(a[f>>2]|0)+16|0;a[R>>2]=a[X>>2];a[R+4>>2]=a[X+4>>2];a[R+8>>2]=a[X+8>>2];a[R+12>>2]=a[X+12>>2];WH(W,t,u,R,e);a[N>>2]=a[W>>2];a[N+4>>2]=a[W+4>>2];a[N+8>>2]=a[W+8>>2];a[N+12>>2]=a[W+12>>2];N=(a[f>>2]|0)+32|0;a[R>>2]=a[X>>2];a[R+4>>2]=a[X+4>>2];a[R+8>>2]=a[X+8>>2];a[R+12>>2]=a[X+12>>2];WH(Y,b,u,R,e);a[N>>2]=a[Y>>2];a[N+4>>2]=a[Y+4>>2];a[N+8>>2]=a[Y+8>>2];a[N+12>>2]=a[Y+12>>2];N=(a[f>>2]|0)+48|0;a[R>>2]=a[X>>2];a[R+4>>2]=a[X+4>>2];a[R+8>>2]=a[X+8>>2];a[R+12>>2]=a[X+12>>2];WH(F,b,w,R,e);a[N>>2]=a[F>>2];a[N+4>>2]=a[F+4>>2];a[N+8>>2]=a[F+8>>2];a[N+12>>2]=a[F+12>>2];break A}else{Z=t-+c[e>>2];F=e+4|0;I=w-+c[F>>2];a[R>>2]=a[X>>2];a[R+4>>2]=a[X+4>>2];a[R+8>>2]=a[X+8>>2];a[R+12>>2]=a[X+12>>2];yH(V,Z,I,R);a[A>>2]=a[V>>2];a[A+4>>2]=a[V+4>>2];a[A+8>>2]=a[V+8>>2];a[A+12>>2]=a[V+12>>2];V=(a[f>>2]|0)+16|0;I=t-+c[e>>2];Z=u+ +c[F>>2];a[R>>2]=a[X>>2];a[R+4>>2]=a[X+4>>2];a[R+8>>2]=a[X+8>>2];a[R+12>>2]=a[X+12>>2];yH(J,I,Z,R);a[V>>2]=a[J>>2];a[V+4>>2]=a[J+4>>2];a[V+8>>2]=a[J+8>>2];a[V+12>>2]=a[J+12>>2];J=(a[f>>2]|0)+32|0;Z=b+ +c[e>>2];I=u+ +c[F>>2];a[R>>2]=a[X>>2];a[R+4>>2]=a[X+4>>2];a[R+8>>2]=a[X+8>>2];a[R+12>>2]=a[X+12>>2];yH(p,Z,I,R);a[J>>2]=a[p>>2];a[J+4>>2]=a[p+4>>2];a[J+8>>2]=a[p+8>>2];a[J+12>>2]=a[p+12>>2];p=(a[f>>2]|0)+48|0;I=b+ +c[e>>2];Z=w-+c[F>>2];a[R>>2]=a[X>>2];a[R+4>>2]=a[X+4>>2];a[R+8>>2]=a[X+8>>2];a[R+12>>2]=a[X+12>>2];yH(N,I,Z,R);a[p>>2]=a[N>>2];a[p+4>>2]=a[N+4>>2];a[p+8>>2]=a[N+8>>2];a[p+12>>2]=a[N+12>>2];break A}}case 4:{A=A+16|0;f=qF(8)|0;a[f+4>>2]=4;n=qF(64)|0;a[f>>2]=n;l=a[A>>2]|0;N=l+16|0;a[X>>2]=a[N>>2];a[X+4>>2]=a[N+4>>2];a[X+8>>2]=a[N+8>>2];a[X+12>>2]=a[N+12>>2];t=-+s[l+88>>3];if(!(r[e+8>>0]|0)){I=-+s[l+80>>3];a[R>>2]=a[X>>2];a[R+4>>2]=a[X+4>>2];a[R+8>>2]=a[X+8>>2];a[R+12>>2]=a[X+12>>2];WH(m,t,I,R,e);a[n>>2]=a[m>>2];a[n+4>>2]=a[m+4>>2];a[n+8>>2]=a[m+8>>2];a[n+12>>2]=a[m+12>>2];N=(a[f>>2]|0)+16|0;p=a[A>>2]|0;I=-+s[p+88>>3];Z=+s[p+80>>3];a[R>>2]=a[X>>2];a[R+4>>2]=a[X+4>>2];a[R+8>>2]=a[X+8>>2];a[R+12>>2]=a[X+12>>2];WH(Q,I,Z,R,e);a[N>>2]=a[Q>>2];a[N+4>>2]=a[Q+4>>2];a[N+8>>2]=a[Q+8>>2];a[N+12>>2]=a[Q+12>>2];N=(a[f>>2]|0)+32|0;p=a[A>>2]|0;Z=+s[p+96>>3];I=+s[p+80>>3];a[R>>2]=a[X>>2];a[R+4>>2]=a[X+4>>2];a[R+8>>2]=a[X+8>>2];a[R+12>>2]=a[X+12>>2];WH(L,Z,I,R,e);a[N>>2]=a[L>>2];a[N+4>>2]=a[L+4>>2];a[N+8>>2]=a[L+8>>2];a[N+12>>2]=a[L+12>>2];N=(a[f>>2]|0)+48|0;p=a[A>>2]|0;I=+s[p+96>>3];Z=-+s[p+80>>3];a[R>>2]=a[X>>2];a[R+4>>2]=a[X+4>>2];a[R+8>>2]=a[X+8>>2];a[R+12>>2]=a[X+12>>2];WH(y,I,Z,R,e);a[N>>2]=a[y>>2];a[N+4>>2]=a[y+4>>2];a[N+8>>2]=a[y+8>>2];a[N+12>>2]=a[y+12>>2];break A}else{Z=t-+c[e>>2];p=e+4|0;I=-+s[l+80>>3]-+c[p>>2];a[R>>2]=a[X>>2];a[R+4>>2]=a[X+4>>2];a[R+8>>2]=a[X+8>>2];a[R+12>>2]=a[X+12>>2];yH(g,Z,I,R);a[n>>2]=a[g>>2];a[n+4>>2]=a[g+4>>2];a[n+8>>2]=a[g+8>>2];a[n+12>>2]=a[g+12>>2];N=(a[f>>2]|0)+16|0;J=a[A>>2]|0;I=-+s[J+88>>3]-+c[e>>2];Z=+s[J+80>>3]+ +c[p>>2];a[R>>2]=a[X>>2];a[R+4>>2]=a[X+4>>2];a[R+8>>2]=a[X+8>>2];a[R+12>>2]=a[X+12>>2];yH(v,I,Z,R);a[N>>2]=a[v>>2];a[N+4>>2]=a[v+4>>2];a[N+8>>2]=a[v+8>>2];a[N+12>>2]=a[v+12>>2];N=(a[f>>2]|0)+32|0;J=a[A>>2]|0;Z=+s[J+96>>3]+ +c[e>>2];I=+s[J+80>>3]+ +c[p>>2];a[R>>2]=a[X>>2];a[R+4>>2]=a[X+4>>2];a[R+8>>2]=a[X+8>>2];a[R+12>>2]=a[X+12>>2];yH(E,Z,I,R);a[N>>2]=a[E>>2];a[N+4>>2]=a[E+4>>2];a[N+8>>2]=a[E+8>>2];a[N+12>>2]=a[E+12>>2];N=(a[f>>2]|0)+48|0;J=a[A>>2]|0;I=+s[J+96>>3]+ +c[e>>2];Z=-+s[J+80>>3]-+c[p>>2];a[R>>2]=a[X>>2];a[R+4>>2]=a[X+4>>2];a[R+8>>2]=a[X+8>>2];a[R+12>>2]=a[X+12>>2];yH(G,I,Z,R);a[N>>2]=a[G>>2];a[N+4>>2]=a[G+4>>2];a[N+8>>2]=a[G+8>>2];a[N+12>>2]=a[G+12>>2];break A}}default:f=0}}while(0);k=H;return f|0}function yH(A,e,i,r){A=A|0;e=+e;i=+i;r=r|0;i=+s[r+8>>3]+i;s[A>>3]=+s[r>>3]+e;s[A+8>>3]=i;return}function WH(A,e,i,r,f){A=A|0;e=+e;i=+i;r=r|0;f=f|0;i=+c[f+4>>2]*i+ +s[r+8>>3];s[A>>3]=+c[f>>2]*e+ +s[r>>3];s[A+8>>3]=i;return}function zH(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0;w=k;k=k+112|0;c=w+88|0;t=w+72|0;s=w+32|0;b=w+16|0;u=w;f=w+56|0;n=w+40|0;l=e+48|0;d=(a[(a[((a[e>>2]&3|0)==3?e:l)+40>>2]|0)+16>>2]|0)+16|0;o=e+16|0;h=(a[o>>2]|0)+16|0;a[t>>2]=a[d>>2];a[t+4>>2]=a[d+4>>2];a[t+8>>2]=a[d+8>>2];a[t+12>>2]=a[d+12>>2];a[c>>2]=a[h>>2];a[c+4>>2]=a[h+4>>2];a[c+8>>2]=a[h+8>>2];a[c+12>>2]=a[h+12>>2];YH(f,t,c);a[b>>2]=a[f>>2];a[b+4>>2]=a[f+4>>2];a[b+8>>2]=a[f+8>>2];a[b+12>>2]=a[f+12>>2];f=e+-48|0;h=(a[(a[((a[e>>2]&3|0)==2?e:f)+40>>2]|0)+16>>2]|0)+16|0;o=(a[o>>2]|0)+56|0;a[t>>2]=a[h>>2];a[t+4>>2]=a[h+4>>2];a[t+8>>2]=a[h+8>>2];a[t+12>>2]=a[h+12>>2];a[c>>2]=a[o>>2];a[c+4>>2]=a[o+4>>2];a[c+8>>2]=a[o+8>>2];a[c+12>>2]=a[o+12>>2];YH(n,t,c);a[u>>2]=a[n>>2];a[u+4>>2]=a[n+4>>2];a[u+8>>2]=a[n+8>>2];a[u+12>>2]=a[n+12>>2];if(!r){n=-1111;f=-1111}else{d=a[e>>2]&3;n=a[(a[(a[((d|0)==2?e:f)+40>>2]|0)+16>>2]|0)+288>>2]|0;f=a[(a[(a[((d|0)==3?e:l)+40>>2]|0)+16>>2]|0)+288>>2]|0}a[t>>2]=a[b>>2];a[t+4>>2]=a[b+4>>2];a[t+8>>2]=a[b+8>>2];a[t+12>>2]=a[b+12>>2];a[c>>2]=a[u>>2];a[c+4>>2]=a[u+4>>2];a[c+8>>2]=a[u+8>>2];a[c+12>>2]=a[u+12>>2];Yt(i,t,f,c,n,s)|0;o=s;h=a[o+4>>2]|0;d=A;a[d>>2]=a[o>>2];a[d+4>>2]=h;k=w;return}function YH(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0;r=+s[i+8>>3]+ +s[e+8>>3];s[A>>3]=+s[i>>3]+ +s[e>>3];s[A+8>>3]=r;return}function DH(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0;v=k;k=k+144|0;o=v+104|0;h=v+88|0;w=v+80|0;u=v+72|0;c=v+64|0;B=v+128|0;s=v+32|0;b=v+124|0;g=v+16|0;d=v;t=v+120|0;l=(a[e+16>>2]|0)+144|0;n=a[l>>2]|0;l=a[l+4>>2]|0;E=c;a[E>>2]=n;a[E+4>>2]=l;E=n;a[g>>2]=a[E>>2];a[g+4>>2]=a[E+4>>2];a[g+8>>2]=a[E+8>>2];a[g+12>>2]=a[E+12>>2];l=n+(l+-1<<4)|0;a[d>>2]=a[l>>2];a[d+4>>2]=a[l+4>>2];a[d+8>>2]=a[l+8>>2];a[d+12>>2]=a[l+12>>2];A:do{if(!(f<<24>>24)){n=-1111;f=-1111}else{n=-1111;f=-1111;l=0;while(1){if((l|0)>=(r|0))break A;if((f|0)==-1111){f=a[i+(l<<2)>>2]|0;a[h>>2]=a[f>>2];a[h+4>>2]=a[f+4>>2];a[o>>2]=a[g>>2];a[o+4>>2]=a[g+4>>2];a[o+8>>2]=a[g+8>>2];a[o+12>>2]=a[g+12>>2];f=(Dt(h,o)|0)==0;f=f?-1111:l}if((n|0)==-1111){n=a[i+(l<<2)>>2]|0;a[h>>2]=a[n>>2];a[h+4>>2]=a[n+4>>2];a[o>>2]=a[d>>2];a[o+4>>2]=a[d+4>>2];a[o+8>>2]=a[d+8>>2];a[o+12>>2]=a[d+12>>2];n=(Dt(h,o)|0)==0;n=n?-1111:l}l=l+1|0}}}while(0);MH(i,r,f,n,t,b);a[s>>2]=0;a[s+4>>2]=0;a[s+8>>2]=0;a[s+12>>2]=0;a[s+16>>2]=0;a[s+20>>2]=0;a[s+24>>2]=0;a[s+28>>2]=0;l=a[t>>2]|0;E=a[b>>2]|0;a[o>>2]=a[c>>2];a[o+4>>2]=a[c+4>>2];if((Mt(l,E,o,s,B)|0)<0){g=Vh(a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)|0;E=Vh(a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)|0;a[u>>2]=g;a[u+4>>2]=E;ao(1,89657,u)|0}else{if(0>1){n=a[15712]|0;u=Vh(a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)|0;f=e+-48|0;E=Vh(a[((a[e>>2]&3|0)==2?e:f)+40>>2]|0)|0;a[w>>2]=u;a[w+4>>2]=E;f3(n,89705,w)|0;n=e}else{f=e+-48|0;n=e}vN(e,a[((a[n>>2]&3|0)==2?e:f)+40>>2]|0,a[B>>2]|0,a[B+4>>2]|0,17792);L2(l);a[h>>2]=a[g>>2];a[h+4>>2]=a[g+4>>2];a[h+8>>2]=a[g+8>>2];a[h+12>>2]=a[g+12>>2];a[o>>2]=a[d>>2];a[o+4>>2]=a[d+4>>2];a[o+8>>2]=a[d+8>>2];a[o+12>>2]=a[d+12>>2];XN(A,e,h,o)}k=v;return}function MH(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0;t=0;l=0;while(1){if((t|0)>=(e|0))break;if(!((t|0)==(i|0)|(t|0)==(r|0)))l=(a[(a[A+(t<<2)>>2]|0)+4>>2]|0)+l|0;t=t+1|0}k=$F(l<<5)|0;t=0;w=0;while(1){if((w|0)>=(e|0))break;A:do{if(!((w|0)==(i|0)|(w|0)==(r|0))){u=A+(w<<2)|0;b=0;while(1){c=a[u>>2]|0;s=a[c+4>>2]|0;if((b|0)>=(s|0))break A;o=b+1|0;h=k+(t<<5)|0;c=(a[c>>2]|0)+(b<<4)|0;a[h>>2]=a[c>>2];a[h+4>>2]=a[c+4>>2];a[h+8>>2]=a[c+8>>2];a[h+12>>2]=a[c+12>>2];c=k+(t<<5)+16|0;s=(a[a[u>>2]>>2]|0)+(((o|0)<(s|0)?o:0)<<4)|0;a[c>>2]=a[s>>2];a[c+4>>2]=a[s+4>>2];a[c+8>>2]=a[s+8>>2];a[c+12>>2]=a[s+12>>2];b=o;t=t+1|0}}}while(0);w=w+1|0}if((t|0)==(l|0)){a[f>>2]=k;a[n>>2]=l;return}else gA(89719,89726,77,89741)}function FH(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0;u=k;k=k+32|0;s=u+12|0;r=u;iP(r,A);a[s>>2]=a[r>>2];a[s+4>>2]=a[r+4>>2];a[s+8>>2]=a[r+8>>2];r=cd(A)|0;while(1){if(!r)break;n=Oo(A,r)|0;while(1){if(!n)break;kN(n);n=_o(A,n)|0}r=sd(A,r)|0}l=jk(17756,a[4581]|0)|0;r=cd(A)|0;while(1){if(!r)break;n=Oo(A,r)|0;while(1){if(!n)break;if((a[47134]|0)>1?(t=a[n+16>>2]|0,(a[t+8>>2]|0)!=0):0){w=t+168|0;f[w>>1]=(f[w>>1]|0)+1<<16>>16}else b=14;if((b|0)==14?(b=0,c=VH(l,n)|0,(c|0)!=(n|0)):0){w=a[c+16>>2]|0;o=w+168|0;f[o>>1]=(f[o>>1]|0)+1<<16>>16;w=w+172|0;a[(a[n+16>>2]|0)+172>>2]=a[w>>2];a[w>>2]=n}n=_o(A,n)|0}r=sd(A,r)|0}Hk(l)|0;if(!(y5[e&63](A,s,i)|0)){a[47138]=1;r=0}else r=1;k=u;return r|0}function VH(A,e){A=A|0;e=e|0;var i=0,r=0,f=0.0,n=0.0,l=0,t=0.0,c=0.0,b=0.0,u=0.0,w=0,o=0,h=0;h=k;k=k+64|0;o=h;r=a[e>>2]&3;l=a[((r|0)==3?e:e+48|0)+40>>2]|0;r=a[((r|0)==2?e:e+-48|0)+40>>2]|0;do{if(l>>>0>=r>>>0){i=e+16|0;if(l>>>0>r>>>0){i=a[i>>2]|0;w=r;r=l;c=+s[i+16>>3];b=+s[i+24>>3];n=+s[i+56>>3];f=+s[i+64>>3];break}w=a[i>>2]|0;t=+s[w+56>>3];u=+s[w+64>>3];n=+s[w+16>>3];f=+s[w+24>>3];if(!(nt)){i=f>u;if(f>2]|0;w=l;c=+s[i+56>>3];b=+s[i+64>>3];n=+s[i+16>>3];f=+s[i+24>>3]}}while(0);a[o+8>>2]=w;s[o+16>>3]=n;s[o+24>>3]=f;a[o+32>>2]=r;s[o+40>>3]=c;s[o+48>>3]=b;a[o+56>>2]=e;o=a[(y5[a[A>>2]&63](A,o,1)|0)+56>>2]|0;k=h;return o|0}function JH(A,e){A=A|0;e=e|0;return FH(A,21,e)|0}function pH(A,e,i){A=A|0;e=e|0;i=i|0;var n=0,l=0,t=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0.0,D=0;z=k;k=k+112|0;Q=z+88|0;m=z+72|0;g=z+40|0;h=z+8|0;o=z;v=z+64|0;L=z+48|0;y=z+24|0;n=(a[47134]|0)>1&1;do{if((i|0)>5){B=qF((gh(A)|0)<<2)|0;w=(i|0)==8;u=w&1;b=cd(A)|0;d=0;while(1){if(!b)break;l=LH(b,e,u)|0;t=(a[b+16>>2]|0)+288|0;if(!l){a[t>>2]=-1111;l=d}else{a[t>>2]=d;a[B+(d<<2)>>2]=l;l=d+1|0}b=sd(A,b)|0;d=l}if(B){l=qS(B,d)|0;if(l|0){if(w){Z=0;G=B;I=B;C=1;break}Z=yt(B,d)|0;G=B;I=B;C=1;break}if(w){ao(0,89755,o)|0;l=0;Z=0;G=B;I=B;C=1;break}else{Y=+c[e+4>>2];s[h>>3]=+c[e>>2];s[h+8>>3]=Y;ao(0,89833,h)|0;l=0;Z=0;G=B;I=B;C=1;break}}else{l=0;Z=0;G=0;I=0;C=0}}else{l=0;Z=0;G=0;d=0;I=0;C=0}}while(0);if(0){}E=(Z|0)!=0;A:do{if(!E){if((i|0)==8&(l|0)!=0){ce(A,0);n=1}}else{t=cd(A)|0;while(1){if(!t)break A;l=Oo(A,t)|0;while(1){if(!l)break;g=(a[l+16>>2]|0)+144|0;zH(v,l,Z,1,0,0);h=v;B=a[h+4>>2]|0;a[g>>2]=a[h>>2];a[g+4>>2]=B;l=_o(A,l)|0}t=sd(A,t)|0}}}while(0);o=(n|0)==0;h=A+60|0;B=(i|0)==10;n=0;w=cd(A)|0;l=0;while(1){if(!w)break;g=w+16|0;e=Oo(A,w)|0;while(1){if(!e)break;u=a[((a[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0;t=e+16|0;b=a[t>>2]|0;if(!o?(a[b+8>>2]|0)!=0:0){D=(a[g>>2]|0)+16|0;v=b+16|0;a[m>>2]=a[D>>2];a[m+4>>2]=a[D+4>>2];a[m+8>>2]=a[D+8>>2];a[m+12>>2]=a[D+12>>2];a[Q>>2]=a[v>>2];a[Q+4>>2]=a[v+4>>2];a[Q+8>>2]=a[v+8>>2];a[Q+12>>2]=a[v+12>>2];YH(L,m,Q);u=(a[u+16>>2]|0)+16|0;v=(a[t>>2]|0)+56|0;a[m>>2]=a[u>>2];a[m+4>>2]=a[u+4>>2];a[m+8>>2]=a[u+8>>2];a[m+12>>2]=a[u+12>>2];a[Q>>2]=a[v>>2];a[Q+4>>2]=a[v+4>>2];a[Q+8>>2]=a[v+8>>2];a[Q+12>>2]=a[v+12>>2];YH(y,m,Q);a[m>>2]=a[L>>2];a[m+4>>2]=a[L+4>>2];a[m+8>>2]=a[L+8>>2];a[m+12>>2]=a[L+12>>2];a[Q>>2]=a[y>>2];a[Q+4>>2]=a[y+4>>2];a[Q+8>>2]=a[y+8>>2];a[Q+12>>2]=a[y+12>>2];XN(A,e,m,Q)}else W=35;A:do{if((W|0)==35){W=0;D=f[b+168>>1]|0;t=D<<16>>16;if(D<<16>>16){if((w|0)==(u|0)){if(!n){l=qF(96)|0;a[l+84>>2]=qF(((gh(A)|0)<<5)+11520|0)|0;n=l}GH(n,e,a[(a[(a[h>>2]|0)+16>>2]|0)+248>>2]|0);break}if(!E){rp(A,e,i,17792);break}t=r[194954]|0?1:t;b=e;u=0;while(1){if((u|0)>=(t|0))break A;if(B)DH(A,b,G,d,1);else NH(A,b);b=a[(a[b+16>>2]|0)+172>>2]|0;u=u+1|0}}}}while(0);e=_o(A,e)|0}w=sd(A,w)|0}if(E)zt(Z);if(n|0){L2(a[n+84>>2]|0);L2(l)}if(C){n=0;while(1){if((n|0)>=(d|0))break;L2(a[G+(n<<2)>>2]|0);n=n+1|0}L2(I)}k=z;return 0}function NH(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;s=k;k=k+96|0;n=s+64|0;f=s+48|0;i=s+40|0;l=s+80|0;r=s+32|0;t=s+16|0;c=s;b=(a[e+16>>2]|0)+144|0;u=a[b>>2]|0;b=a[b+4>>2]|0;w=r;a[w>>2]=u;a[w+4>>2]=b;w=u;a[t>>2]=a[w>>2];a[t+4>>2]=a[w+4>>2];a[t+8>>2]=a[w+8>>2];a[t+12>>2]=a[w+12>>2];b=u+(b+-1<<4)|0;a[c>>2]=a[b>>2];a[c+4>>2]=a[b+4>>2];a[c+8>>2]=a[b+8>>2];a[c+12>>2]=a[b+12>>2];a[n>>2]=a[r>>2];a[n+4>>2]=a[r+4>>2];Gc(n,l);if(0>1){w=a[15712]|0;b=Vh(a[((a[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)|0;r=e+-48|0;u=Vh(a[((a[e>>2]&3|0)==2?e:r)+40>>2]|0)|0;a[i>>2]=b;a[i+4>>2]=u;f3(w,89981,i)|0;i=r;r=e}else{i=e+-48|0;r=e}vN(e,a[((a[r>>2]&3|0)==2?e:i)+40>>2]|0,a[l>>2]|0,a[l+4>>2]|0,17792);a[f>>2]=a[t>>2];a[f+4>>2]=a[t+4>>2];a[f+8>>2]=a[t+8>>2];a[f+12>>2]=a[t+12>>2];a[n>>2]=a[c>>2];a[n+4>>2]=a[c+4>>2];a[n+8>>2]=a[c+8>>2];a[n+12>>2]=a[c+12>>2];XN(A,e,f,n);k=s;return}function RH(A,e){A=A|0;e=e|0;var i=0;i=f[(a[A+16>>2]|0)+136>>1]&14;if(e<<24>>24)XH(A)|0;if(i<<16>>16)JH(A,i&65535)|0;return}function XH(A){A=A|0;var e=0,i=0,r=0,f=0;i=HH(A)|0;e=cd(A)|0;while(1){if(!e)break;r=a[e+16>>2]|0;f=a[r+132>>2]|0;s[r+16>>3]=+s[f>>3]*72.0;s[r+24>>3]=+s[f+8>>3]*72.0;e=sd(A,e)|0}return i|0}function HH(A){A=A|0;var e=0,i=0,r=0,f=0.0,n=0.0,l=0.0,t=0,c=0;A:do{if((a[A+60>>2]|0)==(A|0)?(i=A+16|0,r=a[i>>2]|0,(a[(a[r+8>>2]|0)+84>>2]|0)!=0):0){if(!(+s[r+16>>3]!=0.0)?!(+s[r+24>>3]!=0.0):0)e=0;else{UH(A);e=1;r=a[i>>2]|0}t=(a[r+116>>2]&1|0)==0;if(!t){c=r+32|0;l=+s[c>>3];i=r+40|0;s[c>>3]=+s[i>>3];s[i>>3]=l}i=a[r+8>>2]|0;e:do{switch(a[i+84>>2]|0){case 2:{f=+s[i+64>>3];if(f<=0.0)break A;n=f/+s[r+32>>3];f=+s[i+72>>3]/+s[r+40>>3];if(n<1.0|f<1.0)if(n>3];if(f<=0.0)break A;n=f/+s[r+32>>3];f=+s[i+72>>3]/+s[r+40>>3];if(!(n>1.0&f>1.0))break A;f=n>3];f=+s[r+40>>3]/+s[r+32>>3];if(f1){i=cd(A)|0;while(1){if(!i)break e;e=Oo(A,i)|0;while(1){if(!e)break;if(a[(a[e+16>>2]|0)+8>>2]|0)xH(e,f,n);e=_o(A,e)|0}i=sd(A,i)|0}}}while(0);e=cd(A)|0;while(1){if(!e)break;c=a[(a[e+16>>2]|0)+132>>2]|0;s[c>>3]=+s[c>>3]*f;c=c+8|0;s[c>>3]=+s[c>>3]*n;e=sd(A,e)|0}TH(A,f,n);e=1}else e=0}while(0);return e|0}function UH(A){A=A|0;var e=0,i=0,f=0.0,n=0.0,l=0.0,t=0.0,c=0,b=0,u=0,w=0;u=k;k=k+32|0;c=u+16|0;b=u;e=(a[A+16>>2]|0)+16|0;a[b>>2]=a[e>>2];a[b+4>>2]=a[e+4>>2];a[b+8>>2]=a[e+8>>2];a[b+12>>2]=a[e+12>>2];f=+s[b>>3];n=f*.013888888888888888;l=+s[b+8>>3];t=l*.013888888888888888;e=cd(A)|0;while(1){if(!e)break;i=a[e+16>>2]|0;w=a[i+132>>2]|0;s[w>>3]=+s[w>>3]-n;w=w+8|0;s[w>>3]=+s[w>>3]-t;i=a[i+108>>2]|0;if(i|0?r[i+81>>0]|0:0){w=i+56|0;s[w>>3]=+s[w>>3]-f;w=i+64|0;s[w>>3]=+s[w>>3]-l}e=sd(A,e)|0}i=cd(A)|0;while(1){if(!i)break;e=Oo(A,i)|0;while(1){if(!e)break;if(a[(a[e+16>>2]|0)+8>>2]|0){a[c>>2]=a[b>>2];a[c+4>>2]=a[b+4>>2];a[c+8>>2]=a[b+8>>2];a[c+12>>2]=a[b+12>>2];jH(e,c)}e=_o(A,e)|0}i=sd(A,i)|0}a[c>>2]=a[b>>2];a[c+4>>2]=a[b+4>>2];a[c+8>>2]=a[b+8>>2];a[c+12>>2]=a[b+12>>2];PH(A,c);k=u;return}function xH(A,e,i){A=A|0;e=+e;i=+i;var f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,k=0.0,o=0,h=0.0,d=0.0,B=0.0,g=0.0,v=0;o=a[A>>2]&3;l=a[(a[(a[((o|0)==2?A:A+-48|0)+40>>2]|0)+16>>2]|0)+132>>2]|0;B=(e+-1.0)*72.0;h=B*+s[l>>3];g=(i+-1.0)*72.0;d=g*+s[l+8>>3];o=a[(a[(a[((o|0)==3?A:A+48|0)+40>>2]|0)+16>>2]|0)+132>>2]|0;B=B*+s[o>>3];g=g*+s[o+8>>3];o=a[A+16>>2]|0;l=a[o+8>>2]|0;t=a[l+4>>2]|0;c=t+-1|0;A=0;l=a[l>>2]|0;while(1){if((A|0)>=(t|0))break;b=a[l+4>>2]|0;u=b+-1|0;w=(A|0)==(c|0);f=0;n=a[l>>2]|0;while(1){if((f|0)>=(b|0))break;do{if(f|A){k=+s[n>>3];if((f|0)==(u|0)&w){s[n>>3]=k+h;v=n+8|0;s[v>>3]=+s[v>>3]+d;break}else{s[n>>3]=k*e;v=n+8|0;s[v>>3]=+s[v>>3]*i;break}}else{s[n>>3]=+s[n>>3]+B;v=n+8|0;s[v>>3]=+s[v>>3]+g}}while(0);f=f+1|0;n=n+16|0}if(a[l+8>>2]|0){v=l+16|0;s[v>>3]=+s[v>>3]+B;v=l+24|0;s[v>>3]=+s[v>>3]+g}if(a[l+12>>2]|0){v=l+32|0;s[v>>3]=+s[v>>3]+h;v=l+40|0;s[v>>3]=+s[v>>3]+d}A=A+1|0;l=l+48|0}A=a[o+96>>2]|0;if(A|0?r[A+81>>0]|0:0){v=A+56|0;s[v>>3]=+s[v>>3]*e;v=A+64|0;s[v>>3]=+s[v>>3]*i}A=a[o+100>>2]|0;if(A|0?r[A+81>>0]|0:0){v=A+56|0;s[v>>3]=+s[v>>3]+h;v=A+64|0;s[v>>3]=+s[v>>3]+d}A=a[o+104>>2]|0;if(A|0?r[A+81>>0]|0:0){v=A+56|0;s[v>>3]=+s[v>>3]+B;v=A+64|0;s[v>>3]=+s[v>>3]+g}return}function TH(A,e,i){A=A|0;e=+e;i=+i;var f=0,n=0,l=0;l=A+16|0;n=a[l>>2]|0;A=n+32|0;s[A>>3]=+s[A>>3]*e;A=n+40|0;s[A>>3]=+s[A>>3]*i;A=n+16|0;s[A>>3]=+s[A>>3]*e;A=n+24|0;s[A>>3]=+s[A>>3]*i;A=a[n+12>>2]|0;if((A|0)!=0?(r[A+81>>0]|0)!=0:0){f=A+56|0;s[f>>3]=+s[f>>3]*e;f=A+64|0;s[f>>3]=+s[f>>3]*i;f=1;A=n}else{f=1;A=n}while(1){if((f|0)>(a[A+180>>2]|0))break;TH(a[(a[A+184>>2]|0)+(f<<2)>>2]|0,e,i);f=f+1|0;A=a[l>>2]|0}return}function jH(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0;c=a[A+16>>2]|0;A=a[c+8>>2]|0;t=a[A+4>>2]|0;b=e+8|0;A=a[A>>2]|0;n=0;while(1){if((n|0)>=(t|0))break;l=a[A+4>>2]|0;i=a[A>>2]|0;f=0;while(1){if((f|0)>=(l|0))break;s[i>>3]=+s[i>>3]-+s[e>>3];u=i+8|0;s[u>>3]=+s[u>>3]-+s[b>>3];i=i+16|0;f=f+1|0}if(a[A+8>>2]|0){u=A+16|0;s[u>>3]=+s[u>>3]-+s[e>>3];u=A+24|0;s[u>>3]=+s[u>>3]-+s[b>>3]}if(a[A+12>>2]|0){u=A+32|0;s[u>>3]=+s[u>>3]-+s[e>>3];u=A+40|0;s[u>>3]=+s[u>>3]-+s[b>>3]}A=A+48|0;n=n+1|0}A=a[c+96>>2]|0;if(A|0?r[A+81>>0]|0:0){u=A+56|0;s[u>>3]=+s[u>>3]-+s[e>>3];u=A+64|0;s[u>>3]=+s[u>>3]-+s[b>>3]}A=a[c+108>>2]|0;if(A|0?r[A+81>>0]|0:0){u=A+56|0;s[u>>3]=+s[u>>3]-+s[e>>3];u=A+64|0;s[u>>3]=+s[u>>3]-+s[b>>3]}A=a[c+100>>2]|0;if(A|0?r[A+81>>0]|0:0){u=A+56|0;s[u>>3]=+s[u>>3]-+s[e>>3];u=A+64|0;s[u>>3]=+s[u>>3]-+s[b>>3]}A=a[c+104>>2]|0;if(A|0?r[A+81>>0]|0:0){u=A+56|0;s[u>>3]=+s[u>>3]-+s[e>>3];u=A+64|0;s[u>>3]=+s[u>>3]-+s[b>>3]}return}function PH(A,e){A=A|0;e=e|0;var i=0,f=0.0,n=0.0,l=0,t=0,c=0,b=0;c=k;k=k+16|0;t=c;n=+s[e>>3];l=A+16|0;A=a[l>>2]|0;i=A+32|0;s[i>>3]=+s[i>>3]-n;f=+s[e+8>>3];i=A+40|0;s[i>>3]=+s[i>>3]-f;i=A+16|0;s[i>>3]=+s[i>>3]-n;i=A+24|0;s[i>>3]=+s[i>>3]-f;i=a[A+12>>2]|0;if((i|0)!=0?(r[i+81>>0]|0)!=0:0){b=i+56|0;s[b>>3]=+s[b>>3]-n;i=i+64|0;s[i>>3]=+s[i>>3]-f;i=1}else i=1;while(1){if((i|0)>(a[A+180>>2]|0))break;b=a[(a[A+184>>2]|0)+(i<<2)>>2]|0;a[t>>2]=a[e>>2];a[t+4>>2]=a[e+4>>2];a[t+8>>2]=a[e+8>>2];a[t+12>>2]=a[e+12>>2];PH(b,t);i=i+1|0;A=a[l>>2]|0}k=c;return}function SH(A){A=A|0;var e=0,i=0,r=0,f=0.0,n=0.0,l=0,t=0;l=k;k=k+16|0;i=l;xR(A);r=A+16|0;e=a[r>>2]|0;f=+s[e+16>>3]*.013888888888888888;n=+s[e+24>>3]*.013888888888888888;e=cd(A)|0;while(1){if(!e)break;t=a[(a[e+16>>2]|0)+132>>2]|0;s[t>>3]=+s[t>>3]-f;t=t+8|0;s[t>>3]=+s[t>>3]-n;e=sd(A,e)|0}t=(a[r>>2]|0)+16|0;a[i>>2]=a[t>>2];a[i+4>>2]=a[t+4>>2];a[i+8>>2]=a[t+8>>2];a[i+12>>2]=a[t+12>>2];OH(A,i);RH(A,1);k=l;return}function OH(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0.0,t=0.0;n=k;k=k+16|0;f=n;i=A+16|0;A=1;while(1){r=a[i>>2]|0;if((A|0)>(a[r+180>>2]|0))break;r=a[(a[r+184>>2]|0)+(A<<2)>>2]|0;a[f>>2]=a[e>>2];a[f+4>>2]=a[e+4>>2];a[f+8>>2]=a[e+8>>2];a[f+12>>2]=a[e+12>>2];OH(r,f);A=A+1|0}t=+s[e>>3];f=r+32|0;s[f>>3]=+s[f>>3]-t;l=+s[e+8>>3];e=r+40|0;s[e>>3]=+s[e>>3]-l;e=r+16|0;s[e>>3]=+s[e>>3]-t;e=r+24|0;s[e>>3]=+s[e>>3]-l;k=n;return}function KH(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0,t=0,c=0,b=0,u=0,w=0,k=0,o=0,h=0.0;o=(i|0)>2;w=0;k=0;t=a[f+4>>2]|0;A=a[f>>2]|0;while(1){if((k|0)>=(e|0)){A=0;break}l=a[(a[n+(k<<2)>>2]|0)+16>>2]|0;b=r[l+119>>0]|0;A:do{if(!(b<<24>>24)){c=A+8|0;s[A>>3]=+c8();l=t+8|0;s[t>>3]=+c8();if(o){A=2;while(1){if((A|0)==(i|0)){t=w;A=c;break A}h=+c8();s[(a[f+(A<<2)>>2]|0)+(k<<3)>>3]=h;A=A+1|0}}else{t=w;A=c}}else{c=a[l+132>>2]|0;u=A+8|0;s[A>>3]=+s[c>>3];l=t+8|0;s[t>>3]=+s[c+8>>3];e:do{if(o){t=2;A=c+16|0;while(1){if((t|0)==(i|0))break e;s[(a[f+(t<<2)>>2]|0)+(k<<3)>>3]=+s[A>>3];t=t+1|0;A=A+8|0}}}while(0);t=(b&255)>1?1:w;A=u}}while(0);w=t;k=k+1|0;t=l}while(1){if((A|0)>=(i|0))break;vO(e,a[f+(A<<2)>>2]|0);A=A+1|0}return w|0}function _H(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,b=0.0,u=0,w=0,k=0,o=0;i=qF(((U(e+1|0,e)|0)/2|0)<<2)|0;w=tU(e,e,0.0)|0;k=tU(e,e,0.0)|0;A:do{if(!(a[A+8>>2]|0)){r=0;while(1){if((r|0)>=(e|0))break A;n=a[A+(r*20|0)>>2]|0;l=A+(r*20|0)+4|0;t=w+(r<<2)|0;f=1;while(1){if((f|0)>=(n|0))break;u=a[(a[l>>2]|0)+(f<<2)>>2]|0;s[(a[w+(u<<2)>>2]|0)+(r<<3)>>3]=-1.0;s[(a[t>>2]|0)+(u<<3)>>3]=-1.0;f=f+1|0}r=r+1|0}}else{r=0;while(1){if((r|0)>=(e|0))break A;n=a[A+(r*20|0)>>2]|0;l=A+(r*20|0)+4|0;t=A+(r*20|0)+8|0;u=w+(r<<2)|0;f=1;while(1){if((f|0)>=(n|0))break;o=a[(a[l>>2]|0)+(f<<2)>>2]|0;b=-1.0/+c[(a[t>>2]|0)+(f<<2)>>2];s[(a[w+(o<<2)>>2]|0)+(r<<3)>>3]=b;s[(a[u>>2]|0)+(o<<3)>>3]=b;f=f+1|0}r=r+1|0}}}while(0);A:do{if(!(cP(e,w,k)|0)){L2(i);i=0}else{f=0;l=0;u=e;while(1){if((l|0)>=(e|0))break A;t=k+(l<<2)|0;r=l;n=f;while(1){if((r|0)==(e|0))break;if((l|0)==(r|0))b=0.0;else{o=a[t>>2]|0;b=+s[(a[k+(r<<2)>>2]|0)+(r<<3)>>3]+ +s[o+(l<<3)>>3]+ +s[o+(r<<3)>>3]*-2.0}c[i+(n<<2)>>2]=b;r=r+1|0;n=n+1|0}f=f+u|0;l=l+1|0;u=u+-1|0}}}while(0);cU(w);cU(k);return i|0}function qH(A,e){A=A|0;e=e|0;var i=0,r=0,f=0.0,n=0,l=0,t=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0.0;h=k;k=k+16|0;o=h;if(a[A+8>>2]|0){i=$H(A,e)|0;f=0.0;r=0;w=0;while(1){if((w|0)>=(e|0))break;r=r+w|0;u=a[A+(w*20|0)>>2]|0;t=A+(w*20|0)+4|0;s=(U(w,e)|0)-r|0;b=A+(w*20|0)+8|0;l=1;while(1){if((l|0)>=(u|0))break;n=a[(a[t>>2]|0)+(l<<2)>>2]|0;if((n|0)>=(w|0)){n=i+(s+n<<2)|0;d=+c[(a[b>>2]|0)+(l<<2)>>2];f=f+ +W(+(+c[n>>2]-d));c[n>>2]=d}l=l+1|0}w=w+1|0}if(0){}}else i=0;k=h;return i|0}function $H(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0;b=k;k=k+16|0;l=b;t=qF(((U(e+1|0,e)|0)/2|0)<<2)|0;c=qF(e<<2)|0;lP(l,e);i=0;f=0;s=e;while(1){if((i|0)>=(e|0))break;SP(i,A,e,c);r=i;n=f;while(1){if((r|0)==(e|0))break;a[t+(n<<2)>>2]=a[c+(r<<2)>>2];r=r+1|0;n=n+1|0}i=i+1|0;f=f+s|0;s=s+-1|0}L2(c);tP(l);k=b;return t|0}function AU(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,s=0,b=0,u=0;u=k;k=k+16|0;l=u;t=qF(((U(e+1|0,e)|0)/2|0)<<2)|0;s=qF(e<<2)|0;lP(l,e);i=0;f=0;b=e;while(1){if((i|0)>=(e|0))break;rP(i,A,e,s,l);r=i;n=f;while(1){if((r|0)==(e|0))break;c[t+(n<<2)>>2]=+(a[s+(r<<2)>>2]|0);r=r+1|0;n=n+1|0}i=i+1|0;f=f+b|0;b=b+-1|0}L2(s);tP(l);k=u;return t|0}function eU(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,s=0,b=0.0,u=0,w=0,k=0,o=0,h=0,d=0,B=0.0;d=A+8|0;i=a[d>>2]|0;r=0;f=0;while(1){if((f|0)>=(e|0))break;r=(a[A+(f*20|0)>>2]|0)+r|0;f=f+1|0}f=qF(r<<2)|0;h=qF(e<<2)|0;r=0;while(1){if((r|0)>=(e|0))break;a[h+(r<<2)>>2]=0;r=r+1|0}if(!(a[d>>2]|0)){n=0;while(1){if((n|0)>=(e|0))break;a[A+(n*20|0)+8>>2]=f;pS(A,n,h);l=A+(n*20|0)|0;t=a[l>>2]|0;s=A+(n*20|0)+4|0;b=+(t+-1|0);r=1;while(1){if((r|0)>=(t|0))break;o=a[(a[s>>2]|0)+(r<<2)>>2]|0;B=+((a[A+(o*20|0)>>2]|0)+-1|0)+b;c[f+(r<<2)>>2]=B-+((JS(A,n,o,h)|0)<<1|0);r=r+1|0}NS(A,n,h);f=f+(a[l>>2]<<2)|0;n=n+1|0}f=AU(A,e)|0}else{t=0;while(1){if((t|0)>=(e|0))break;pS(A,t,h);s=A+(t*20|0)|0;u=a[s>>2]|0;w=A+(t*20|0)+4|0;k=u+-2|0;o=A+(t*20|0)+8|0;l=1;while(1){if((l|0)>=(u|0))break;r=a[(a[w>>2]|0)+(l<<2)>>2]|0;n=k+(a[A+(r*20|0)>>2]|0)|0;B=+(n-((JS(A,t,r,h)|0)<<1)|0);b=+c[(a[o>>2]|0)+(l<<2)>>2];if(b>2]=b;l=l+1|0}NS(A,t,h);a[o>>2]=f;f=f+(a[s>>2]<<2)|0;t=t+1|0}f=$H(A,e)|0}L2(h);L2(a[d>>2]|0);a[d>>2]=0;A:do{if(i|0){r=0;while(1){if((r|0)>=(e|0))break A;a[A+(r*20|0)+8>>2]=i;i=i+(a[A+(r*20|0)>>2]<<2)|0;r=r+1|0}}}while(0);return f|0}function iU(A,e,i,r,f,l,t,b,u){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;l=l|0;t=t|0;b=b|0;u=u|0;var w=0,o=0,h=0,d=0.0,B=0,g=0,v=0,E=0.0,C=0,I=0.0,Z=0,G=0,m=0,Q=0,L=0,y=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0.0,R=0.0;p=k;k=k+80|0;J=p+56|0;V=p+48|0;m=p+40|0;v=p+32|0;g=p+24|0;B=p+16|0;o=p+8|0;w=p;h=t&4;F=t&3;A:do{if((u|0)<0)i=0;else{if(0){}t=(b|0)==2;e:do{if(t){if(0){}i=eU(A,e)|0;C=14}else{switch(b|0){case 1:{i=_H(A,e)|0;if(i|0){M=i;break e}ao(0,93315,w)|0;ao(3,93364,o)|0;C=15;break e}case 3:break;default:{C=15;break e}}if(0){}i=qH(A,e)|0;C=14}}while(0);if((C|0)==14)if(!i)C=15;else M=i;do{if((C|0)==15){if(0){}if(!(a[A+8>>2]|0)){M=AU(A,e)|0;break}else{M=$H(A,e)|0;break}}}while(0);if(0){}e:do{if((e|0)>1&(h|0)!=0)if((rU(A,e,r,l,h,F,t&1)|0)<0){v=0;g=0;i=-1;A=0;B=0;h=0;o=0;w=0;b=0;t=0}else{t=0;while(1){if((t|0)>=(l|0)){Z=0;C=35;break e}b=r+(t<<2)|0;d=1.0;i=0;while(1){if((i|0)==(e|0))break;I=+W(+ +s[(a[b>>2]|0)+(i<<3)>>3]);d=I>d?I:d;i=i+1|0}d=1.0/d;i=0;while(1){if((i|0)==(e|0)){i=0;break}D=(a[b>>2]|0)+(i<<3)|0;s[D>>3]=+s[D>>3]*d;i=i+1|0}while(1){if((i|0)==(e|0))break;I=(+c8()+-.5)*1.0e-06;D=(a[b>>2]|0)+(i<<3)|0;s[D>>3]=+s[D>>3]+I;i=i+1|0}vO(e,a[b>>2]|0);t=t+1|0}}else{Z=KH(0,e,l,r,f)|0;C=35}}while(0);e:do{if((C|0)==35){if(0){}if((e|0)==1|(u|0)==0){i=0;break A}if(0){}B=l<<2;D=qF(B)|0;g=e<<2;A=U(g,l)|0;Y=qF(A)|0;i=0;while(1){if((i|0)>=(l|0))break;b=Y+((U(i,e)|0)<<2)|0;a[D+(i<<2)>>2]=b;w=r+(i<<2)|0;t=0;while(1){if((t|0)>=(e|0))break;c[b+(t<<2)>>2]=+s[(a[w>>2]|0)+(t<<3)>>3];t=t+1|0}i=i+1|0}i:do{if(!F){o=e+-1|0;i=0;d=0.0;w=0;while(1){if((w|0)>=(o|0))break i;h=e-w|0;b=i;t=1;while(1){i=b+1|0;if((t|0)>=(h|0))break;b=i;d=+c[M+(i<<2)>>2]+d;t=t+1|0}w=w+1|0}}else d=+(e|0)*.5*+(e+-1|0)}while(0);Q=(U(e+1|0,e)|0)/2|0;L=(F|0)==2;if(L)HO(Q,M);UO(Q,M);y=e<<3;b=qF(y)|0;Y6(b|0,0,y|0)|0;z=e+-1|0;i=0;w=0;while(1){if((w|0)>=(z|0)){i=e;t=0;w=0;break}o=e-w|0;E=0.0;t=1;while(1){i=i+1|0;if((t|0)>=(o|0))break;I=+c[M+(i<<2)>>2];G=b+(t+w<<3)|0;s[G>>3]=+s[G>>3]-I;E=E+I;t=t+1|0}G=b+(w<<3)|0;s[G>>3]=+s[G>>3]-E;w=w+1|0}while(1){if((t|0)>=(e|0))break;c[M+(w<<2)>>2]=+s[b+(t<<3)>>3];G=i+w|0;i=i+-1|0;t=t+1|0;w=G}G=qF(B)|0;a[G>>2]=qF(A)|0;i=1;while(1){if((i|0)>=(l|0))break;a[G+(i<<2)>>2]=(a[G>>2]|0)+((U(i,e)|0)<<2);i=i+1|0}o=qF(g)|0;w=qF(g)|0;t=qF(Q<<2)|0;if(0){}C=(Z|0)==0;Z=a[15712]|0;i=0;h=0;I=1797693134862315708145274.0e284;while(1){if(!(h<<24>>24==0&(i|0)<(u|0)))break;Y6(b|0,0,y|0)|0;if(L){xO(Q,M,t);v=0;A=0}else{v=0;A=0}while(1){if((v|0)>=(z|0)){h=e;B=0;A=0;break}g=e-v+-1|0;RO(g,0.0,w);h=0;while(1){if((h|0)>=(l|0))break;m=D+(h<<2)|0;RO(g,+c[(a[m>>2]|0)+(v<<2)>>2],o);FO(g,o,-1.0,(a[m>>2]|0)+(v<<2)+4|0);HO(g,o);MO(g,o,w,w);h=h+1|0}TO(g,w);h=0;while(1){if((h|0)>=(g|0))break;B=w+(h<<2)|0;E=+c[B>>2];if(E>=3402823466385288598117041.0e14|E<0.0)c[B>>2]=0.0;h=h+1|0}h=A+1|0;A=v+1|0;i:do{if(L){E=0.0;B=0;while(1){if((B|0)>=(g|0))break i;m=t+(h<<2)|0;N=+c[m>>2]*+c[w+(B<<2)>>2];c[m>>2]=N;m=b+(A+B<<3)|0;s[m>>3]=+s[m>>3]-N;E=E+N;h=h+1|0;B=B+1|0}}else{E=0.0;B=0;while(1){if((B|0)>=(g|0))break i;N=+c[w+(B<<2)>>2];c[t+(h<<2)>>2]=N;m=b+(A+B<<3)|0;s[m>>3]=+s[m>>3]-N;E=E+N;h=h+1|0;B=B+1|0}}}while(0);m=b+(v<<3)|0;s[m>>3]=+s[m>>3]-E;v=A;A=h}while(1){if((B|0)>=(e|0)){h=0;break}c[t+(A<<2)>>2]=+s[b+(B<<3)>>3];m=h+A|0;h=h+-1|0;B=B+1|0;A=m}while(1){if((h|0)>=(l|0)){E=0.0;h=0;break}YO(t,e,a[D+(h<<2)>>2]|0,a[G+(h<<2)>>2]|0);h=h+1|0}while(1){if((h|0)>=(l|0))break;E=+pO(e,a[D+(h<<2)>>2]|0,a[G+(h<<2)>>2]|0)+E;h=h+1|0}E=E*2.0+d;h=0;while(1){if((h|0)>=(l|0))break;m=D+(h<<2)|0;YO(M,e,a[m>>2]|0,o);E=E-+pO(e,a[m>>2]|0,o);h=h+1|0}R=I-E;N=+s[23294];h=(E=0.0?R:-R)/I=(l|0))break;g=D+(A<<2)|0;B=a[g>>2]|0;i:do{if(C){if((wP(M,B,a[G+(A<<2)>>2]|0,e,.001,e)|0)<0){v=G;g=M;i=-1;A=Y;B=D;h=G;break e}}else{JO(e,B,o);if((wP(M,o,a[G+(A<<2)>>2]|0,e,.001,e)|0)<0){v=G;g=M;i=-1;A=Y;B=D;h=G;break e}else B=0;while(1){if((B|0)>=(e|0))break i;if((n[(a[(a[f+(B<<2)>>2]|0)+16>>2]|0)+119>>0]|0)<=1)a[(a[g>>2]|0)+(B<<2)>>2]=a[o+(B<<2)>>2];B=B+1|0}}}while(0);A=A+1|0}if(((i|0)%5|0|0)==0&0!=0?(s[V>>3]=E,f3(Z,90371,V)|0,((i+5|0)%50|0|0)==0):0)u6(10,Z)|0;i=i+1|0;I=E}if(true)h=0;else{}while(1){if((h|0)>=(l|0)){v=G;g=M;A=Y;B=D;h=G;break e}A=D+(h<<2)|0;g=r+(h<<2)|0;B=0;while(1){if((B|0)>=(e|0))break;s[(a[g>>2]|0)+(B<<3)>>3]=+c[(a[A>>2]|0)+(B<<2)>>2];B=B+1|0}h=h+1|0}}}while(0);L2(A);L2(B);L2(g);if(v|0){L2(a[v>>2]|0);L2(h)}L2(o);L2(w);L2(b);L2(t)}}while(0);k=p;return i|0}function rU(A,e,i,f,n,l,t){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;l=l|0;t=t|0;var b=0,u=0,w=0,o=0.0,h=0,d=0,B=0.0,g=0,v=0.0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0;H=k;k=k+32|0;w=H+24|0;X=H+8|0;D=H+4|0;N=H;p=(e|0)<50?e:50;R=$F(p<<2)|0;Y=e<<3;u=$F(U(Y,p)|0)|0;b=0;while(1){if((b|0)>=(p|0))break;a[R+(b<<2)>>2]=u+((U(b,e)|0)<<3);b=b+1|0}y=p<<1;y=(y|0)>50?y:50;y=(y|0)>(e|0)?e:y;a[w>>2]=0;fS(A,e,y,w,t);aS(a[w>>2]|0,e,y);$O(a[w>>2]|0,y,e,R,p);L2(a[a[w>>2]>>2]|0);L2(a[w>>2]|0);y=e<<2;J=$F(y)|0;b=0;while(1){if((b|0)>=(e|0))break;a[J+(b<<2)>>2]=-1;b=b+1|0}lP(X,e);F=a[A+8>>2]|0;M=(t|0)!=0;if(M)xS(A,e);Q=$F(y)|0;V=$F(160)|0;u=$F(e*160|0)|0;L=$F(160)|0;b=0;while(1){if((b|0)==40)break;a[L+(b<<2)>>2]=u+((U(b,e)|0)<<2);b=b+1|0}b=(a8()|0)%(e|0)|0;a[J+(b<<2)>>2]=0;a[V>>2]=b;u=a[L>>2]|0;if(M){HP(b,A,e,u);u=0;w=0}else{rP(b,A,e,u,X);u=0;w=0}while(1){if((w|0)>=(e|0)){d=1;break}z=a[(a[L>>2]|0)+(w<<2)>>2]|0;a[Q+(w<<2)>>2]=z;m=(z|0)>(u|0);b=m?w:b;u=m?z:u;w=w+1|0}while(1){if((d|0)==40){b=0;break}a[J+(b<<2)>>2]=d;a[V+(d<<2)>>2]=b;g=L+(d<<2)|0;u=a[g>>2]|0;if(M){HP(b,A,e,u);h=0;u=0}else{rP(b,A,e,u,X);h=0;u=0}while(1){if((h|0)>=(e|0))break;w=Q+(h<<2)|0;z=a[w>>2]|0;t=a[(a[g>>2]|0)+(h<<2)>>2]|0;t=(z|0)<(t|0)?z:t;a[w>>2]=t;if((t|0)<=(u|0)){if((t|0)==(u|0)?((a8()|0)%(h+1|0)|0|0)==0:0){u=a[w>>2]|0;b=h}}else{u=t;b=h}h=h+1|0}d=d+1|0}while(1){if((b|0)>=(e|0))break;a[Q+(b<<2)>>2]=-1;b=b+1|0}C=$F(y)|0;z=$F(e<<4)|0;I=e+-1|0;Z=I<<2;m=0;w=0;t=0;u=0;G=0;while(1){if((G|0)>=(e|0))break;b=J+(G<<2)|0;A:do{if((a[b>>2]|0)>-1){g=z+(G<<4)+4|0;a[g>>2]=$F(Z)|0;E=$F(Z)|0;a[z+(G<<4)+8>>2]=E;a[z+(G<<4)>>2]=I;r[z+(G<<4)+12>>0]=1;d=L+(a[b>>2]<<2)|0;b=0;while(1){if((b|0)==(G|0)){h=G;break}a[(a[g>>2]|0)+(b<<2)>>2]=b;a[E+(b<<2)>>2]=a[(a[d>>2]|0)+(b<<2)>>2];b=b+1|0}while(1){b=h+1|0;if((h|0)==(I|0)){b=I;break A}a[(a[g>>2]|0)+(h<<2)>>2]=b;a[E+(h<<2)>>2]=a[(a[d>>2]|0)+(b<<2)>>2];h=b}}else{if((u|0)<40){t=$F(y)|0;w=$F(y)|0;u=e;b=1}else b=0;r[z+(G<<4)+12>>0]=b;a[z+(G<<4)+4>>2]=t;a[z+(G<<4)+8>>2]=w;a[z+(G<<4)>>2]=40;b=0;while(1){if((b|0)==40)break;a[t+(b<<2)>>2]=a[V+(b<<2)>>2];a[w+(b<<2)>>2]=a[(a[L+(b<<2)>>2]|0)+(G<<2)>>2];b=b+1|0}w=w+160|0;t=t+160|0;u=u+-40|0;b=40}}while(0);m=b+m|0;G=G+1|0}L2(Q);L2(C);if(L|0){L2(a[L>>2]|0);L2(L)}L=$F(e*20|0)|0;h=m+e<<2;d=$F(h)|0;E=(l|0)==2;h=$F(h)|0;g=0;while(1){if((g|0)>=(e|0))break;a[L+(g*20|0)+4>>2]=d;a[L+(g*20|0)+8>>2]=h;b=(a[z+(g<<4)>>2]|0)+1|0;C=L+(g*20|0)|0;a[C>>2]=b;w=(a[z+(g<<4)+8>>2]|0)+-4|0;t=z+(g<<4)+4|0;A:do{if(E){o=0.0;u=1;while(1){if((u|0)>=(b|0))break A;a[d+(u<<2)>>2]=a[(a[t>>2]|0)+(u+-1<<2)>>2];v=+(a[w+(u<<2)>>2]|0);v=-1.0/(v*v);c[h+(u<<2)>>2]=v;o=o-v;u=u+1|0;b=a[C>>2]|0}}else{o=0.0;u=1;while(1){if((u|0)>=(b|0))break A;a[d+(u<<2)>>2]=a[(a[t>>2]|0)+(u+-1<<2)>>2];v=-1.0/+(a[w+(u<<2)>>2]|0);c[h+(u<<2)>>2]=v;o=o-v;u=u+1|0;b=a[C>>2]|0}}}while(0);a[d>>2]=g;c[h>>2]=o;y=a[C>>2]|0;h=h+(y<<2)|0;d=d+(y<<2)|0;g=g+1|0}Q=$F(f<<2)|0;a[Q>>2]=$F(U(f<<3,p)|0)|0;b=1;while(1){if((b|0)>=(f|0))break;a[Q+(b<<2)>>2]=(a[Q>>2]|0)+((U(b,p)|0)<<3);b=b+1|0}A:do{if(n){b=0;while(1){if((b|0)>=(f|0))break;w=Q+(b<<2)|0;u=0;while(1){if((u|0)>=(p|0))break;s[(a[w>>2]|0)+(u<<3)>>3]=0.0;u=u+1|0}b=b+1|0}if((f|0)!=2){b=0;while(1){if((b|0)>=(f|0)){b=0;break A}s[(a[Q+(b<<2)>>2]|0)+(b<<3)>>3]=1.0;b=b+1|0}}s[a[Q>>2]>>3]=1.0;b=Q+4|0;if(!((AK(R,p,e,a[b>>2]|0)|0)<<24>>24)){u=a[b>>2]|0;b=0;while(1){if((b|0)>=(p|0))break;s[u+(b<<3)>>3]=0.0;b=b+1|0}s[u+8>>3]=1.0;b=0}else b=0}else{u=0;while(1){if((u|0)>=(f|0)){b=0;break A}w=Q+(u<<2)|0;b=0;while(1){if((b|0)>=(p|0))break;v=+(a8()|0)*4.656612875245797e-10;s[(a[w>>2]|0)+(b<<3)>>3]=v;b=b+1|0}u=u+1|0}}}while(0);while(1){if((b|0)>=(f|0))break;WO(R,e,p,a[Q+(b<<2)>>2]|0,a[i+(b<<2)>>2]|0);b=b+1|0}a[D>>2]=0;a[N>>2]=0;gO(L,R,e,p,D);dO(R,a[D>>2]|0,p,e,p,N);L2(a[a[D>>2]>>2]|0);L2(a[D>>2]|0);G=$F(Y)|0;m=$F(p<<3)|0;b=0;u=0;o=+aU(i,z,f,e,l);A:while(1){if((u|0)<50&b<<24>>24==0)I=0;else break;while(1){if((I|0)>=(f|0))break;Z=i+(I<<2)|0;w=0;while(1){if((w|0)>=(e|0))break;h=G+(w<<3)|0;s[h>>3]=0.0;d=(a[z+(w<<4)+8>>2]|0)+-4|0;g=a[L+(w*20|0)+4>>2]|0;E=a[L+(w*20|0)+8>>2]|0;C=L+(w*20|0)|0;B=0.0;t=1;while(1){if((t|0)>=(a[C>>2]|0))break;b=a[g+(t<<2)>>2]|0;v=+jS(i,f,w,b);if(v>1.0e-30){v=-(+c[E+(t<<2)>>2]*+(a[d+(t<<2)>>2]|0))/v;s[h>>3]=v*+s[(a[Z>>2]|0)+(b<<3)>>3]+ +s[h>>3];B=B-v}t=t+1|0}s[h>>3]=+s[h>>3]+ +s[(a[Z>>2]|0)+(w<<3)>>3]*B;w=w+1|0}hO(R,p,e,G,m);b=Q+(I<<2)|0;if(uP(a[N>>2]|0,a[b>>2]|0,m,p,.001,p,0)|0){u=-1;break A}WO(R,e,p,a[b>>2]|0,a[Z>>2]|0);I=I+1|0}if(!(u&1)){v=+aU(i,z,f,e,l);o=+W(+(v-o))/(v+1.0e-10);b=o<+s[23294]&1;o=v}else b=0;u=u+1|0}L2(m);L2(G);if(M){TS(A,e,F);b=0}else b=0;while(1){if((b|0)>=(e|0))break;if(r[z+(b<<4)+12>>0]|0){L2(a[z+(b<<4)+4>>2]|0);L2(a[z+(b<<4)+8>>2]|0)}b=b+1|0}L2(z);L2(a[L+4>>2]|0);L2(a[L+8>>2]|0);L2(L);L2(J);L2(V);L2(a[Q>>2]|0);L2(Q);b=a[N>>2]|0;if(b|0){L2(a[b>>2]|0);L2(a[N>>2]|0)}L2(a[R>>2]|0);L2(R);tP(X);k=H;return u|0}function fU(A,e,i,r,f){A|0;e|0;i|0;r|0;f|0;var n=0.0,l=0.0,t=0,s=0,b=0.0,u=0,w=0,k=0,o=0,h=0,d=0;r+-1|0;(f|0)==2;0.0;0;0;while(1){if((u|0)>=(h|0))break;r-u|0;1;while(1){f+1|0;if((w|0)>=(o|0))break;w+u|0;0.0;0;while(1){if((t|0)>=(i|0))break;a[A+(t<<2)>>2]|0;+c[d+(u<<2)>>2]-+c[d+(s<<2)>>2];l+b*b;t+1|0}+z(+l);+c[e+(f<<2)>>2];if(k){1.0/+z(+b)-l;l*l}else{1.0/b-l;l*l}w+1|0;l*b+n}u+1|0}return+n}function aU(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0.0,l=0.0,t=0,c=0,b=0,u=0,w=0,k=0,o=0.0,h=0;A:do{if((f|0)==2){n=0.0;b=0;while(1){if((b|0)>=(r|0))break A;w=a[e+(b<<4)>>2]|0;k=e+(b<<4)+4|0;u=e+(b<<4)+8|0;c=0;while(1){if((c|0)>=(w|0))break;t=a[(a[k>>2]|0)+(c<<2)>>2]|0;if((t|0)>(b|0)){l=0.0;f=0;while(1){if((f|0)>=(i|0))break;h=a[A+(f<<2)>>2]|0;o=+s[h+(b<<3)>>3]-+s[h+(t<<3)>>3];l=o*o+l;f=f+1|0}l=+z(+l);o=+(a[(a[u>>2]|0)+(c<<2)>>2]|0);l=o-l;n=l*l/(o*o)+n}c=c+1|0}b=b+1|0}}else{b=0;n=0.0;while(1){if((b|0)>=(r|0))break A;u=a[e+(b<<4)>>2]|0;w=e+(b<<4)+4|0;k=e+(b<<4)+8|0;c=0;while(1){if((c|0)>=(u|0))break;t=a[(a[w>>2]|0)+(c<<2)>>2]|0;if((t|0)>(b|0)){l=0.0;f=0;while(1){if((f|0)>=(i|0))break;h=a[A+(f<<2)>>2]|0;o=+s[h+(b<<3)>>3]-+s[h+(t<<3)>>3];l=o*o+l;f=f+1|0}l=+z(+l);o=+(a[(a[k>>2]|0)+(c<<2)>>2]|0);l=o-l;n=l*l/o+n}c=c+1|0}b=b+1|0}}}while(0);return+n}function nU(A){A=+A;return+(+z(+A)*A)}function lU(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0,n=0,l=0.0;n=a[47137]|0;r=0.0;f=0;while(1){if((f|0)>=(n|0))break;l=+s[A+(f<<3)>>3]-+s[e+(f<<3)>>3];s[i+(f<<3)>>3]=l;r=l*l+r;f=f+1|0}return+ +z(+r)}function tU(A,e,i){A=A|0;e=e|0;i=+i;var r=0,f=0,n=0,l=0;l=qF(A<<2)|0;f=0;n=qF(U(A<<3,e)|0)|0;while(1){if((f|0)>=(A|0))break;a[l+(f<<2)>>2]=n;r=0;while(1){if((r|0)>=(e|0))break;s[n+(r<<3)>>3]=i;r=r+1|0}f=f+1|0;n=n+(e<<3)|0}return l|0}function cU(A){A=A|0;if(A|0){L2(a[A>>2]|0);L2(A)}return}function sU(A,e){A=A|0;e=e|0;var i=0.0,f=0.0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0;w=k;k=k+16|0;u=gh(A)|0;b=vh(A)|0;c=Yo(A,2,92493,0)|0;A:do{if(!e){s[23294]=+(u|0)*.0001;YF(A,108886,186352);n=Ho(a[A+60>>2]|0,90100)|0;if(!n)i=.99;else i=+$3(n);s[23296]=i;n=qF((u<<2)+4|0)|0;t=A+16|0;a[(a[t>>2]|0)+152>>2]=n;n=0;i=0.0;l=cd(A)|0;while(1){if(!l)break A;a[(a[(a[t>>2]|0)+152>>2]|0)+(n<<2)>>2]=l;o=a[l+16>>2]|0;a[o+120>>2]=n;a[o+124>>2]=-1;f=+wU(A,l,c)+i;n=n+1|0;i=f;l=sd(A,l)|0}}else{s[23294]=.0001;YF(A,108886,186352);n=0;i=0.0;l=cd(A)|0;while(1){if(!l)break A;a[(a[l+16>>2]|0)+120>>2]=n;f=+wU(A,l,c)+i;n=n+1|0;i=f;l=sd(A,l)|0}}}while(0);n=Ho(A,90108)|0;if((n|0)!=0?(r[n>>0]|0)!=0:0){i=+s[23294];f=+$3(n);if(!(i>f))i=f}else i=i/+(((b|0)>1?b:1)|0)*+z(+ +(u|0))+1.0;s[23295]=i;if(!(a[47134]|e)){e=tU(u,u,i)|0;o=A+16|0;a[(a[o>>2]|0)+160>>2]=e;e=tU(u,u,1.0)|0;a[(a[o>>2]|0)+164>>2]=e;e=tU(u,a[47137]|0,1.0)|0;a[(a[o>>2]|0)+168>>2]=e;e=kU(u,u,a[47137]|0)|0;a[(a[o>>2]|0)+172>>2]=e}k=w;return u|0}function bU(A,e,i){A|0;e|0;i|0;var r=0,f=0,n=0,l=0,t=0,c=0;0;0;Ah(A,e)|0;A:while(1){if(!c)break;a[c>>2]&3;a[((l|0)==2?c:c+-48|0)+40>>2]|0;a[((l|0)==3?c:c+48|0)+40>>2]|0;do{if((n|0)!=(l|0)){(l|0)==(e|0);if((r|0)!=1){t?n:l;a[i>>2]=f;r+1|0;break}if(!((n|0)==(f|0)&t)?!((n|0)==(e|0)&(l|0)==(f|0)):0){2;break A}else 1}}while(0);eh(A,c,e)|0}return r|0}function uU(A,e,i){A|0;e|0;i|0;var r=0,f=0,n=0,l=0;k;k=k+16|0;l;A+60|0;A:while(1){e:while(1){if(!e)break A;switch(bU(A,e,f)|0){case 0:{5;break e}case 1:{8;break e}default:0}}if((r|0)==5){if((i|0)==(e|0))sd(A,i)|0;Cd(a[n>>2]|0,e)|0;0;continue}else if((r|0)==8){if((i|0)==(e|0))sd(A,i)|0;Cd(a[n>>2]|0,e)|0;a[f>>2]|0;continue}}k=l;return i|0}function wU(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0,n=0,l=0,t=0,c=0;c=k;k=k+32|0;l=c+8|0;n=c;e=Oo(A,e)|0;r=0.0;while(1){if(!e)break;switch(oU(e,i,n)|0){case 0:{f=+s[n>>3];break}case 2:{a[l>>2]=Vh(A)|0;s[l+8>>3]=1.0;ao(3,90120,l)|0;t=6;break}default:t=6}if((t|0)==6){t=0;s[n>>3]=1.0;f=1.0}s[(a[e+16>>2]|0)+136>>3]=f;e=_o(A,e)|0;r=f+r}k=c;return+r}function kU(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,b=0;t=qF((A<<2)+4|0)|0;c=(e<<2)+4|0;b=i<<3;n=0;while(1){if((n|0)>=(A|0))break;l=t+(n<<2)|0;a[l>>2]=qF(c)|0;f=0;while(1){if((f|0)>=(e|0))break;r=qF(b)|0;a[(a[l>>2]|0)+(f<<2)>>2]=r;r=0;while(1){if((r|0)>=(i|0))break;s[(a[(a[l>>2]|0)+(f<<2)>>2]|0)+(r<<3)>>3]=0.0;r=r+1|0}f=f+1|0}a[(a[l>>2]|0)+(f<<2)>>2]=0;n=n+1|0}a[t+(n<<2)>>2]=0;return t|0}function oU(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0.0,l=0,t=0,c=0;c=k;k=k+16|0;t=c+8|0;l=c;do{if((e|0)!=0?(f=Uo(A,e)|0,(r[f>>0]|0)!=0):0){a[l>>2]=i;if(((J3(f,101209,l)|0)>=1?(n=+s[i>>3],!(n<0.0)):0)?n!=0.0|(a[47134]|0)!=0:0){A=0;break}a[t>>2]=f;ao(0,90147,t)|0;A=2}else A=1}while(0);k=c;return A|0}function hU(A){A=A|0;return sU(A,0)|0}function dU(A){A=A|0;A=A+16|0;L2(a[(a[A>>2]|0)+152>>2]|0);if(!(a[47134]|0)){cU(a[(a[A>>2]|0)+160>>2]|0);cU(a[(a[A>>2]|0)+164>>2]|0);cU(a[(a[A>>2]|0)+168>>2]|0);BU(a[(a[A>>2]|0)+172>>2]|0);a[(a[A>>2]|0)+172>>2]=0}return}function BU(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;if(A|0){f=0;while(1){n=A+(f<<2)|0;e=a[n>>2]|0;if(!e)break;else r=0;while(1){i=a[e+(r<<2)>>2]|0;if(!i)break;L2(i);r=r+1|0;e=a[n>>2]|0}L2(e);f=f+1|0}L2(A)}return}function gU(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0;r=+(e|0);e=A+16|0;while(1){if((i|0)>=(a[47137]|0))break;f=+c8()*r;s[(a[(a[e>>2]|0)+132>>2]|0)+(i<<3)>>3]=f;i=i+1|0}return}function vU(A,e){A=A|0;e=e|0;gU(A,e,2);return}function EU(A,e){A=A|0;e=e|0;var i=0,r=0.0,f=0.0;r=+(e|0);f=+c8()*r;i=A+16|0;s[a[(a[i>>2]|0)+132>>2]>>3]=f;r=+c8()*r;s[(a[(a[i>>2]|0)+132>>2]|0)+8>>3]=r;if((a[47137]|0)>2)vU(A,e);return}function CU(A,e){A=A|0;e=e|0;var i=0,f=0;f=k;k=k+16|0;i=f;if(0){}e=iH(A,e,2)|0;A:do{if((e|0)!=1){if(!(a[46797]|e)){ao(0,90192,i)|0;a[46797]=1}i=A+16|0;e=0;while(1){A=a[(a[(a[i>>2]|0)+152>>2]|0)+(e<<2)>>2]|0;if(!A)break A;if(!(r[(a[A+16>>2]|0)+119>>0]|0))EU(A,1);e=e+1|0}}}while(0);k=f;return}function IU(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0.0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0.0;h=k;k=k+96|0;o=h+80|0;u=h;if(0){}w=A+16|0;f=a[w>>2]|0;c=a[f+164>>2]|0;f=a[f+160>>2]|0;b=0;while(1){if((b|0)>=(e|0))break;l=f+(b<<2)|0;t=c+(b<<2)|0;r=0;while(1){if((r|0)==(b|0))break;n=+s[(a[l>>2]|0)+(r<<3)>>3];n=1.0/(n*n);i=a[(a[w>>2]|0)+152>>2]|0;i=th(A,a[i+(b<<2)>>2]|0,a[i+(r<<2)>>2]|0,0,0)|0;if(i)n=+s[(a[i+16>>2]|0)+128>>3]*n;s[(a[c+(r<<2)>>2]|0)+(b<<3)>>3]=n;s[(a[t>>2]|0)+(r<<3)>>3]=n;r=r+1|0}b=b+1|0}A=a[47137]|0;r=0;while(1){if((r|0)<(e|0))i=0;else break;while(1){if((i|0)>=(A|0))break;s[(a[(a[(a[w>>2]|0)+168>>2]|0)+(r<<2)>>2]|0)+(i<<3)>>3]=0.0;i=i+1|0}r=r+1|0}l=0;while(1){i=a[(a[(a[w>>2]|0)+152>>2]|0)+(l<<2)>>2]|0;if(!i)break;A=i+16|0;i=0;while(1){if((i|0)>=(e|0))break;A:do{if((l|0)!=(i|0)){n=+lU(a[(a[A>>2]|0)+132>>2]|0,a[(a[(a[(a[(a[w>>2]|0)+152>>2]|0)+(i<<2)>>2]|0)+16>>2]|0)+132>>2]|0,u);f=a[47137]|0;n=1.0/n;r=0;while(1){if((r|0)>=(f|0))break A;b=a[w>>2]|0;d=+s[u+(r<<3)>>3];d=(d-+s[(a[(a[b+160>>2]|0)+(l<<2)>>2]|0)+(i<<3)>>3]*d*n)*+s[(a[(a[b+164>>2]|0)+(l<<2)>>2]|0)+(i<<3)>>3];s[(a[(a[(a[b+172>>2]|0)+(l<<2)>>2]|0)+(i<<2)>>2]|0)+(r<<3)>>3]=d;b=(a[(a[b+168>>2]|0)+(l<<2)>>2]|0)+(r<<3)|0;s[b>>3]=+s[b>>3]+d;r=r+1|0}}}while(0);i=i+1|0}l=l+1|0}if(0){}k=h;return}function ZU(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0.0,c=0;l=k;k=k+32|0;n=l+24|0;f=l+8|0;r=l;t=+s[23294];s[23216]=t*t;while(1){i=GU(A,e)|0;if(!i)break;mU(A,e,i)}if(true)e=A+16|0;else{}e=a[(a[e>>2]|0)+156>>2]|0;if((e|0)==(a[47136]|0)){c=Vh(A)|0;a[n>>2]=e;a[n+4>>2]=c;ao(0,90320,n)|0}k=l;return}function GU(A,e){A=A|0;e=e|0;var i=0.0,r=0,f=0,l=0.0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0.0;d=k;k=k+16|0;h=d;w=(a[46799]|0)+1|0;a[46799]=w;A=a[A+16>>2]|0;if((a[A+156>>2]|0)<(a[47136]|0)){b=a[47137]|0;u=A+152|0;c=A+168|0;A=0;i=0.0;t=0;while(1){if((t|0)>=(e|0))break;f=a[(a[u>>2]|0)+(t<<2)>>2]|0;if((n[(a[f+16>>2]|0)+119>>0]|0)<=1){l=0.0;r=0;while(1){if((r|0)>=(b|0))break;B=+s[(a[(a[c>>2]|0)+(t<<2)>>2]|0)+(r<<3)>>3];l=B*B+l;r=r+1|0}if(l>i){A=f;i=l}}t=t+1|0}if(!(i<+s[23216])){if(0!=0&((w|0)%100|0|0)==0?(o=a[15712]|0,s[h>>3]=+z(+i),f3(o,90371,h)|0,((a[46799]|0)%1e3|0|0)==0):0)u6(10,o)|0}else A=0}else A=0;k=d;return A|0}function mU(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0;w=k;k=k+16|0;u=w;c=i+16|0;b=a[(a[c>>2]|0)+120>>2]|0;f=a[46798]|0;if(!f){n=a[47137]|0;n=$F(U(n<<3,n)|0)|0}else{n=a[47137]|0;n=eV(f,U(n<<3,n)|0)|0}a[46798]=n;LU(A,e,b,n);l=a[47137]|0;t=A+16|0;f=0;while(1){if((f|0)>=(l|0))break;s[185736+(f<<3)>>3]=-+s[(a[(a[(a[t>>2]|0)+168>>2]|0)+(b<<2)>>2]|0)+(f<<3)>>3];f=f+1|0}VK(n,185816,185736,l);f=0;while(1){if((f|0)>=(a[47137]|0))break;r=+s[23296];r=(1.0-r)*2.0*+c8()+r;l=185816+(f<<3)|0;r=r*+s[l>>3];s[l>>3]=r;l=(a[(a[c>>2]|0)+132>>2]|0)+(f<<3)|0;s[l>>3]=+s[l>>3]+r;f=f+1|0}c=(a[t>>2]|0)+156|0;a[c>>2]=(a[c>>2]|0)+1;yU(A,e,b);if(MR()|0){n=a[47137]|0;r=0.0;f=0;while(1){if((f|0)>=(n|0))break;r=+W(+ +s[185816+(f<<3)>>3])+r;f=f+1|0}r=+z(+r);b=a[15712]|0;a[u>>2]=Vh(i)|0;s[u+8>>3]=r;f3(b,90362,u)|0}k=w;return}function QU(A,e){A|0;e|0;var i=0.0,r=0.0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0.0;e+-1|0;A+16|0;a[47137]|0;0;0.0;A:while(1){if((n|0)>=(h|0))break;a[w>>2]|0;a[u+152>>2]|0;n+1|0;(a[o+(n<<2)>>2]|0)+16|0;u+164|0;u+160|0;t;while(1){if((l|0)>=(e|0)){t;continue A}(a[o+(l<<2)>>2]|0)+16|0;0;0.0;while(1){if((A|0)>=(k|0))break;+s[(a[(a[c>>2]|0)+132>>2]|0)+(A<<3)>>3]-+s[(a[(a[f>>2]|0)+132>>2]|0)+(A<<3)>>3];A+1|0;d*d+r}+s[(a[(a[u>>2]|0)+(n<<2)>>2]|0)+(l<<3)>>3];((+z(+r)*-2.0+d)*d+r)*+s[(a[(a[b>>2]|0)+(n<<2)>>2]|0)+(l<<3)>>3]+i;l+1|0;d}}return+i}function LU(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,b=0,u=0.0,w=0.0,o=0.0,h=0.0,d=0.0,B=0,g=0,v=0,E=0,C=0,I=0;I=k;k=k+80|0;C=I;E=a[A+16>>2]|0;c=a[E+164>>2]|0;b=a[E+160>>2]|0;E=a[E+152>>2]|0;t=a[E+(i<<2)>>2]|0;n=a[47137]|0;A=0;while(1){if((A|0)>=(n|0))break;l=U(n,A)|0;f=0;while(1){if((f|0)==(n|0))break;s[r+(l+f<<3)>>3]=0.0;f=f+1|0}A=A+1|0}v=a[47137]|0;g=t+16|0;B=c+(i<<2)|0;c=b+(i<<2)|0;t=0;while(1){if((t|0)>=(e|0))break;A:do{if((t|0)!=(i|0)){f=(a[E+(t<<2)>>2]|0)+16|0;d=0.0;A=0;while(1){if((A|0)>=(v|0))break;h=+s[(a[(a[g>>2]|0)+132>>2]|0)+(A<<3)>>3]-+s[(a[(a[f>>2]|0)+132>>2]|0)+(A<<3)>>3];s[C+(A<<3)>>3]=h;d=h*h+d;A=A+1|0}u=1.0/+nU(d);l=0;while(1){if((l|0)>=(v|0))break A;f=(a[B>>2]|0)+(t<<3)|0;n=(a[c>>2]|0)+(t<<3)|0;w=+s[C+(l<<3)>>3];A=0;while(1){o=+s[f>>3];h=+s[n>>3];if((A|0)==(l|0))break;b=r+((U(v,A)|0)+l<<3)|0;s[b>>3]=+s[b>>3]+o*u*h*w*+s[C+(A<<3)>>3];A=A+1|0}b=r+((U(v,l)|0)+l<<3)|0;s[b>>3]=(1.0-h*u*(d-w*w))*o+ +s[b>>3];l=l+1|0}}}while(0);t=t+1|0}f=a[47137]|0;l=1;while(1){if((l|0)>=(f|0))break;n=U(f,l)|0;A=0;while(1){if((A|0)==(l|0))break;s[r+(n+A<<3)>>3]=+s[r+((U(f,A)|0)+l<<3)>>3];A=A+1|0}l=l+1|0}k=I;return}function yU(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0.0,t=0,c=0,b=0,u=0,w=0.0,o=0.0,h=0,d=0,B=0;b=k;k=k+80|0;c=b;t=A+16|0;f=a[t>>2]|0;n=a[(a[f+152>>2]|0)+(i<<2)>>2]|0;r=a[47137]|0;f=f+168|0;A=0;while(1){if((A|0)>=(r|0))break;s[(a[(a[f>>2]|0)+(i<<2)>>2]|0)+(A<<3)>>3]=0.0;A=A+1|0}f=n+16|0;A=0;while(1){if((A|0)>=(e|0))break;A:do{if((A|0)!=(i|0)){l=+lU(a[(a[f>>2]|0)+132>>2]|0,a[(a[(a[(a[(a[t>>2]|0)+152>>2]|0)+(A<<2)>>2]|0)+16>>2]|0)+132>>2]|0,c);n=a[47137]|0;l=1.0/l;r=0;while(1){if((r|0)>=(n|0))break A;u=a[t>>2]|0;h=a[u+172>>2]|0;d=(a[(a[h+(i<<2)>>2]|0)+(A<<2)>>2]|0)+(r<<3)|0;w=+s[c+(r<<3)>>3];w=(w-+s[(a[(a[u+160>>2]|0)+(i<<2)>>2]|0)+(A<<3)>>3]*w*l)*+s[(a[(a[u+164>>2]|0)+(i<<2)>>2]|0)+(A<<3)>>3];s[d>>3]=w;u=a[u+168>>2]|0;B=(a[u+(i<<2)>>2]|0)+(r<<3)|0;s[B>>3]=+s[B>>3]+w;h=(a[(a[h+(A<<2)>>2]|0)+(i<<2)>>2]|0)+(r<<3)|0;w=+s[h>>3];o=-+s[d>>3];s[h>>3]=o;u=(a[u+(A<<2)>>2]|0)+(r<<3)|0;s[u>>3]=o-w+ +s[u>>3];r=r+1|0}}}while(0);A=A+1|0}k=b;return}function WU(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0;i=A+16|0;n=a[46800]|0;e=a[(a[i>>2]|0)+124>>2]|0;while(1){if((e|0)<=0)break;l=(e+-1|0)/2|0;t=n+(l<<2)|0;r=a[t>>2]|0;f=r+16|0;if(+s[(a[f>>2]|0)+136>>3]<=+s[(a[i>>2]|0)+136>>3])break;a[t>>2]=A;a[(a[i>>2]|0)+124>>2]=l;a[n+(e<<2)>>2]=r;a[(a[f>>2]|0)+124>>2]=e;e=l}return}function zU(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0;l=A+16|0;t=a[46801]|0;c=a[46800]|0;n=a[(a[l>>2]|0)+124>>2]|0;while(1){r=n<<1|1;if((r|0)>=(t|0))break;i=r+1|0;if((i|0)<(t|0)){f=a[c+(i<<2)>>2]|0;e=a[c+(r<<2)>>2]|0;if(+s[(a[f+16>>2]|0)+136>>3]<+s[(a[e+16>>2]|0)+136>>3]){r=i;e=f}else b=6}else{e=a[c+(r<<2)>>2]|0;b=6}if((b|0)==6)b=0;i=e+16|0;if(+s[(a[l>>2]|0)+136>>3]<=+s[(a[i>>2]|0)+136>>3])break;a[c+(r<<2)>>2]=A;a[(a[l>>2]|0)+124>>2]=r;a[c+(n<<2)>>2]=e;a[(a[i>>2]|0)+124>>2]=n;n=r}return}function YU(A){A=A|0;var e=0,i=0;e=(a[A+16>>2]|0)+124|0;if((a[e>>2]|0)>=0)gA(90377,90397,643,90405);i=a[46801]|0;a[46801]=i+1;a[e>>2]=i;a[(a[46800]|0)+(i<<2)>>2]=A;if((i|0)>0)WU(A);return}function DU(){var A=0,e=0,i=0,r=0;e=a[46801]|0;if(!e)A=0;else{r=a[46800]|0;A=a[r>>2]|0;i=e+-1|0;a[46801]=i;i=a[r+(i<<2)>>2]|0;a[r>>2]=i;a[(a[i+16>>2]|0)+124>>2]=0;if((e|0)>2)zU(i);a[(a[A+16>>2]|0)+124>>2]=-1}return A|0}function MU(A,e){A=A|0;e=e|0;var i=0,r=0;r=k;k=k+16|0;i=r;a[46800]=qF((e<<2)+4|0)|0;if(0){}e=cd(A)|0;while(1){if(!e)break;FU(A,e);e=sd(A,e)|0}if(0){}L2(a[46800]|0);k=r;return}function FU(A,e){A=A|0;e=e|0;var i=0,r=0,f=0.0,n=0,l=0,t=0,c=0;r=a[(a[A+16>>2]|0)+152>>2]|0;f=+s[23295];i=0;while(1){n=a[r+(i<<2)>>2]|0;if(!n)break;s[(a[n+16>>2]|0)+136>>3]=f;i=i+1|0}a[46802]=e;c=a[e+16>>2]|0;s[c+136>>3]=0.0;a[c+128>>2]=0;YU(e);A:while(1){c=DU()|0;if(!c)break;i=a[46802]|0;t=c+16|0;if((c|0)!=(i|0))VU(A,i,c,+s[(a[t>>2]|0)+136>>3]);l=Ah(A,c)|0;while(1){if(!l)continue A;i=a[l>>2]&3;e=a[((i|0)==3?l:l+48|0)+40>>2]|0;if((e|0)==(c|0))e=a[((i|0)==2?l:l+-48|0)+40>>2]|0;i=a[t>>2]|0;f=+s[(a[l+16>>2]|0)+136>>3]+ +s[i+136>>3];r=a[e+16>>2]|0;n=r+136|0;do{if(+s[n>>3]>f){s[n>>3]=f;if((a[r+124>>2]|0)>-1){WU(e);break}else{a[r+128>>2]=(a[i+128>>2]|0)+1;YU(e);break}}}while(0);l=eh(A,l,c)|0}}return}function VU(A,e,i,r){A=A|0;e=e|0;i=i|0;r=+r;e=a[(a[e+16>>2]|0)+120>>2]|0;i=a[(a[i+16>>2]|0)+120>>2]|0;A=a[(a[A+16>>2]|0)+160>>2]|0;s[(a[A+(i<<2)>>2]|0)+(e<<3)>>3]=r;s[(a[A+(e<<2)>>2]|0)+(i<<3)>>3]=r;return}function JU(A){A=A|0;zX(A,2);f[(a[A+16>>2]|0)+176>>1]=2;a[47137]=2;pU(A);return}function pU(A){A=A|0;var e=0,i=0,r=0,f=0;e=gh(A)|0;r=qF(e*56|0)|0;e=qF((e<<2)+4|0)|0;f=A+16|0;a[(a[f>>2]|0)+152>>2]=e;e=cd(A)|0;i=0;while(1){if(!e)break;RX(e);a[(a[e+16>>2]|0)+112>>2]=r+(i*56|0);a[(a[(a[f>>2]|0)+152>>2]|0)+(i<<2)>>2]=e;e=sd(A,e)|0;i=i+1|0}i=cd(A)|0;while(1){if(!i)break;e=Oo(A,i)|0;while(1){if(!e)break;NU(e);e=_o(A,e)|0}i=sd(A,i)|0}return}function NU(A){A=A|0;var e=0.0;Td(A,137460,176,1)|0;VR(A)|0;e=+oR(A,a[47174]|0,1.0,0.0);s[(a[A+16>>2]|0)+128>>3]=e;return}function RU(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0;v=k;k=k+80|0;b=v+32|0;l=v+24|0;n=v+16|0;t=v;g=v+72|0;o=v+40|0;if(gh(A)|0){JU(A);f=Ho(A,95738)|0;if(f)if(r[f>>0]|0){e=gd(A,f,0)|0;if(!e){a[n>>2]=f;ao(0,90448,n)|0;ao(3,90488,l)|0;e=0;B=1}else B=0}else{e=0;B=1}else{e=0;B=0}u=Yo(A,1,95738,0)|0;w=(u|0)!=0;f=Ho(A,140742)|0;if((f|0?r[f>>0]|0:0)?(c=t+8|0,a[b>>2]=t,a[b+4>>2]=c,(J3(f,105503,b)|0)==1):0)s[c>>3]=+s[t>>3];if(gh(A)|0){b=yE(A,g,0)|0;if((a[g>>2]|0)==1){n=(e|0)!=0;do{if(n)i=e;else{if(w?(i=XU(A,u)|0,i|0):0)break;i=0}}while(0);f=pK(A,i)|0;if(!((i|0)!=0|w^1))Vo(f,u,142463)|0;d=(cd(A)|0)+16|0;L2(a[(a[d>>2]|0)+112>>2]|0);a[(a[d>>2]|0)+112>>2]=0;eP(A)|0;SH(A);e=(B|0)==0|n?e:f}else{sC(A,2,8,o)|0;a[o+12>>2]=0;c=(B|0)==0;t=0;while(1){if((t|0)>=(a[g>>2]|0))break;n=a[b+(t<<2)>>2]|0;i=(e|0)!=0;if(i?(Dd(n,e)|0)!=0:0)f=e;else d=23;do{if((d|0)==23){d=0;if(w?(h=XU(n,u)|0,h|0):0){f=h;break}f=0}}while(0);VE(n)|0;l=pK(n,f)|0;e=c|i?e:l;if(w?(f|0)==0|(f|0)==(e|0):0)Vo(l,u,142463)|0;eP(n)|0;t=t+1|0}d=(cd(A)|0)+16|0;L2(a[(a[d>>2]|0)+112>>2]|0);a[(a[d>>2]|0)+112>>2]=0;cC(a[g>>2]|0,b,A,o)|0;SH(A)}i=0;while(1){if((i|0)>=(a[g>>2]|0))break;Cd(A,a[b+(i<<2)>>2]|0)|0;i=i+1|0}L2(b)}if(B|0)xo(A,95738,Vh(e)|0)|0;VJ(A)}k=v;return}function XU(A,e){A=A|0;e=e|0;var i=0;i=cd(A)|0;while(1){if(!i){i=0;break}if((vR(Uo(i,e)|0)|0)<<24>>24)break;i=sd(A,i)|0}return i|0}function HU(A){A=A|0;var e=0,i=0;e=cd(A)|0;if(e|0){while(1){if(!e)break;i=Oo(A,e)|0;while(1){if(!i)break;wX(i);i=_o(A,i)|0}bX(e);e=sd(A,e)|0}UU(A)}return}function UU(A){A=A|0;L2(a[(a[A+16>>2]|0)+152>>2]|0);if((Zd(A)|0)!=(A|0))_d(A,0,137483);return}function xU(A){A=A|0;TU(A);if(!((gh(A)|0)==0?!(a[(a[A+16>>2]|0)+180>>2]|0):0)){A_(A);VJ(A)}return}function TU(A){A=A|0;a[47147]=Yo(A,1,108230,108236)|0;zX(A,2);f[(a[A+16>>2]|0)+176>>1]=2;a[47137]=2;jU(A,0);PU(A);return}function jU(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;t=k;k=k+16|0;n=t;l=(e|0)==0;if(l){KU(n);e=n}i=RB(A)|0;while(1){if(!i)break;if(!(Z1(Vh(i)|0,108006,7)|0)){Td(i,137483,280,1)|0;_U(e,i);jU(i,0)}else jU(i,e);i=XB(i)|0}if(l?(r=a[n+8>>2]|0,f=A+16|0,a[(a[f>>2]|0)+180>>2]=r,r|0):0){l=eV(a[n>>2]|0,(r<<2)+4|0)|0;a[(a[f>>2]|0)+184>>2]=l}k=t;return}function PU(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;f=qF((gh(A)|0)<<2)|0;e=qF(((gh(A)|0)<<2)+4|0)|0;n=A+16|0;a[(a[n>>2]|0)+152>>2]=e;e=cd(A)|0;i=0;while(1){if(!e)break;Td(e,137447,304,1)|0;a[(a[e+16>>2]|0)+112>>2]=f+(i<<2);a[(a[(a[n>>2]|0)+152>>2]|0)+(i<<2)>>2]=e;SU(e);r=Oo(A,e)|0;while(1){if(!r)break;OU(r);r=_o(A,r)|0}e=sd(A,e)|0;i=i+1|0}return}function SU(A){A=A|0;xo(A,108230,108236)|0;return}function OU(A){A=A|0;Td(A,137460,304,1)|0;return}function KU(A){A=A|0;a[A>>2]=0;a[A+4>>2]=0;a[A+8>>2]=0;return}function _U(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;n=A+8|0;i=(a[n>>2]|0)+1|0;a[n>>2]=i;r=A+4|0;l=a[r>>2]|0;f=l+10|0;if((i|0)<(l|0))A=a[A>>2]|0;else{a[r>>2]=f;i=eV(a[A>>2]|0,f<<2)|0;a[A>>2]=i;A=i;i=a[n>>2]|0}a[A+(i<<2)>>2]=e;return}function qU(A){A=A|0;var e=0,i=0;e=cd(A)|0;if(e|0){L2(a[(a[e+16>>2]|0)+112>>2]|0);while(1){if(!e)break;i=Oo(A,e)|0;while(1){if(!i)break;wX(i);i=_o(A,i)|0}bX(e);e=sd(A,e)|0}$U(A)}return}function $U(A){A=A|0;L2(a[(a[A+16>>2]|0)+152>>2]|0);if((Zd(A)|0)!=(A|0))_d(A,0,137483);return}function Ax(A){A=A|0;var e=0,i=0,r=0;ex(A);ix(A,0);rx(A,0);fx(A,0);e=a[A+16>>2]|0;if(!(a[(a[e+8>>2]|0)+84>>2]|0)){e=f[e+136>>1]&14;if(e<<16>>16)JH(A,e&65535)|0}else{e=cd(A)|0;while(1){if(!e)break;r=a[e+16>>2]|0;i=a[r+132>>2]|0;s[i>>3]=+s[r+16>>3]*.013888888888888888;s[i+8>>3]=+s[r+24>>3]*.013888888888888888;e=sd(A,e)|0}RH(A,1)}VJ(A);return}function ex(A){A=A|0;var e=0,i=0;zX(A,2);f[(a[A+16>>2]|0)+176>>1]=2;a[47137]=2;e=cd(A)|0;while(1){if(!e)break;RX(e);e=sd(A,e)|0}i=cd(A)|0;while(1){if(!i)break;e=Oo(A,i)|0;while(1){if(!e)break;Td(e,137460,176,1)|0;VR(e)|0;e=_o(A,e)|0}i=sd(A,i)|0}return}function ix(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;t=k;k=k+16|0;n=t;l=(e|0)==0;if(l){cx(n);e=n}i=RB(A)|0;while(1){if(!i)break;if(!(Z1(Vh(i)|0,108006,7)|0)){Td(i,137483,280,1)|0;JF(i);sx(e,i);ix(i,0)}else ix(i,e);i=XB(i)|0}if(l?(r=a[n+8>>2]|0,f=A+16|0,a[(a[f>>2]|0)+180>>2]=r,r|0):0){l=eV(a[n>>2]|0,(r<<2)+4|0)|0;a[(a[f>>2]|0)+184>>2]=l}k=t;return}function rx(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0.0,t=0.0,c=0.0,b=0.0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0;H=k;k=k+448|0;Y=H+400|0;z=H+384|0;X=H+344|0;R=H+304|0;N=H+248|0;y=H+192|0;I=H+152|0;Z=H+96|0;w=H+72|0;i=H+64|0;M=H+32|0;F=H;Q=H+416|0;v=H+328|0;C=H+288|0;V=H+232|0;J=H+176|0;p=H+136|0;D=H+80|0;u=a[A+60>>2]|0;if(0>1){ax(e);W=a[15712]|0;a[i>>2]=Vh(A)|0;f3(W,90723,i)|0}W=A+16|0;f=e+1|0;i=1;r=0;while(1){n=a[W>>2]|0;if((i|0)>(a[n+180>>2]|0))break;L=a[(a[n+184>>2]|0)+(i<<2)>>2]|0;rx(L,f);i=i+1|0;r=(gh(L)|0)+r|0}o=(gh(A)|0)-r|0;i=a[W>>2]|0;L=(a[i+180>>2]|0)+o|0;E=(L|0)==0;if(E?(a[i+12>>2]|0)==0:0){X=i+16|0;a[X>>2]=0;a[X+4>>2]=0;a[X+8>>2]=0;a[X+12>>2]=0;s[i+40>>3]=18.0;s[i+32>>3]=18.0}else{i=Q+16|0;do{if((sC(A,4,4,Q)|0)>>>0>=3)if((a[i>>2]|0)==4?(a[Q+28>>2]&2|0)!=0:0){r=Yo(u,0,99190,0)|0;i=Yo(u,1,99190,0)|0;if((r|0)!=0|(i|0)!=0){a[Q+24>>2]=qF(L<<2)|0;break}else{a[w>>2]=Vh(A)|0;ao(0,90577,w)|0;i=0;r=0;break}}else{i=0;r=0}else{a[i>>2]=3;i=0;r=0}}while(0);G=qF(L<<5)|0;m=qF(L<<2)|0;B=Q+24|0;u=(r|0)!=0;d=0;n=1;while(1){f=a[W>>2]|0;if((n|0)>(a[f+180>>2]|0))break;f=a[(a[f+184>>2]|0)+(n<<2)>>2]|0;g=G+(d<<5)|0;h=(a[f+16>>2]|0)+16|0;a[g>>2]=a[h>>2];a[g+4>>2]=a[h+4>>2];a[g+8>>2]=a[h+8>>2];a[g+12>>2]=a[h+12>>2];a[g+16>>2]=a[h+16>>2];a[g+20>>2]=a[h+20>>2];a[g+24>>2]=a[h+24>>2];a[g+28>>2]=a[h+28>>2];if(u&(a[B>>2]|0)!=0){g=kR(f,r,0,0)|0;a[(a[B>>2]|0)+(d<<2)>>2]=g}a[m+(d<<2)>>2]=f;d=d+1|0;n=n+1|0}A:do{if((o|0)>0){w=M+16|0;o=M+24|0;h=(i|0)!=0;u=cd(A)|0;r=d;while(1){if(!u)break A;f=a[u+16>>2]|0;n=f+112|0;if(!(a[n>>2]|0)){a[n>>2]=A;a[M>>2]=0;a[M+4>>2]=0;a[M+8>>2]=0;a[M+12>>2]=0;s[w>>3]=+s[f+96>>3]+ +s[f+88>>3];s[o>>3]=+s[f+80>>3];g=G+(r<<5)|0;a[g>>2]=a[M>>2];a[g+4>>2]=a[M+4>>2];a[g+8>>2]=a[M+8>>2];a[g+12>>2]=a[M+12>>2];a[g+16>>2]=a[M+16>>2];a[g+20>>2]=a[M+20>>2];a[g+24>>2]=a[M+24>>2];a[g+28>>2]=a[M+28>>2];if(h&(a[B>>2]|0)!=0){g=kR(u,i,0,0)|0;a[(a[B>>2]|0)+(r<<2)>>2]=g}a[m+(r<<2)>>2]=u;r=r+1|0}u=sd(A,u)|0}}}while(0);g=rC(L,G,Q)|0;i=a[B>>2]|0;if(i|0)L2(i);nx(F,2147483647.0,2147483647.0);B=F+16|0;nx(v,-2147483647.0,-2147483647.0);a[B>>2]=a[v>>2];a[B+4>>2]=a[v+4>>2];a[B+8>>2]=a[v+8>>2];a[B+12>>2]=a[v+12>>2];n=M+16|0;u=M+8|0;w=M+24|0;o=F+8|0;h=F+24|0;d=a[15712]|0;i=0;while(1){if((i|0)>=(L|0))break;t=+(a[g+(i<<3)>>2]|0);b=+(a[g+(i<<3)+4>>2]|0);r=G+(i<<5)|0;a[M>>2]=a[r>>2];a[M+4>>2]=a[r+4>>2];a[M+8>>2]=a[r+8>>2];a[M+12>>2]=a[r+12>>2];a[M+16>>2]=a[r+16>>2];a[M+20>>2]=a[r+20>>2];a[M+24>>2]=a[r+24>>2];a[M+28>>2]=a[r+28>>2];l=+s[M>>3]+t;s[M>>3]=l;t=+s[n>>3]+t;s[n>>3]=t;c=+s[u>>3]+b;s[u>>3]=c;b=+s[w>>3]+b;s[w>>3]=b;s[F>>3]=+s[(+s[F>>3]>3];s[o>>3]=+s[(+s[o>>3]>3];s[B>>3]=+s[(+s[B>>3]>t?F:M)+16>>3];s[h>>3]=+s[(+s[h>>3]>b?F:M)+24>>3];r=a[m+(i<<2)>>2]|0;f=r+16|0;if((i|0)<(a[(a[W>>2]|0)+180>>2]|0)){v=(a[f>>2]|0)+16|0;a[v>>2]=a[M>>2];a[v+4>>2]=a[M+4>>2];a[v+8>>2]=a[M+8>>2];a[v+12>>2]=a[M+12>>2];a[v+16>>2]=a[M+16>>2];a[v+20>>2]=a[M+20>>2];a[v+24>>2]=a[M+24>>2];a[v+28>>2]=a[M+28>>2];if(0>1){ax(e);a[Z>>2]=Vh(r)|0;s[Z+8>>3]=l;s[Z+16>>3]=c;s[Z+24>>3]=t;s[Z+32>>3]=b;f3(d,90556,Z)|0}}else{v=(a[f>>2]|0)+16|0;a[z>>2]=a[M>>2];a[z+4>>2]=a[M+4>>2];a[z+8>>2]=a[M+8>>2];a[z+12>>2]=a[M+12>>2];a[Y>>2]=a[n>>2];a[Y+4>>2]=a[n+4>>2];a[Y+8>>2]=a[n+8>>2];a[Y+12>>2]=a[n+12>>2];lx(C,z,Y);a[v>>2]=a[C>>2];a[v+4>>2]=a[C+4>>2];a[v+8>>2]=a[C+8>>2];a[v+12>>2]=a[C+12>>2];if(0>1){ax(e);v=Vh(r)|0;f=a[f>>2]|0;c=+s[f+16>>3];b=+s[f+24>>3];a[I>>2]=v;s[I+8>>3]=c;s[I+16>>3]=b;f3(d,90544,I)|0}}i=i+1|0}r=a[W>>2]|0;i=a[r+12>>2]|0;if(i|0){l=+s[i+24>>3];if(E){t=+s[i+32>>3];a[F>>2]=0;a[F+4>>2]=0;a[F+8>>2]=0;a[F+12>>2]=0;s[B>>3]=l;s[h>>3]=t;t=0.0;c=l}else{t=+s[F>>3];c=+s[B>>3]}b=l-(c-t);l=b*.5;if(b>0.0){s[F>>3]=t-l;s[B>>3]=c+l}}if((e|0)>0)l=+((a[Q+8>>2]|0)>>>0)*.5;else l=0.0;t=+s[F>>3]-l;s[F>>3]=t;c=+s[B>>3]+l;s[B>>3]=c;b=-l-+s[r+56>>3]+ +s[o>>3];s[o>>3]=b;l=+s[r+88>>3]+l+ +s[h>>3];s[h>>3]=l;if(0>1){ax(e);a[y>>2]=Vh(A)|0;s[y+8>>3]=t;s[y+16>>3]=b;s[y+24>>3]=c;s[y+32>>3]=l;f3(d,90556,y)|0}i=0;while(1){if((i|0)>=(L|0))break;r=a[m+(i<<2)>>2]|0;f=r+16|0;if((i|0)<(a[(a[W>>2]|0)+180>>2]|0)){y=(a[f>>2]|0)+16|0;a[M>>2]=a[y>>2];a[M+4>>2]=a[y+4>>2];a[M+8>>2]=a[y+8>>2];a[M+12>>2]=a[y+12>>2];a[M+16>>2]=a[y+16>>2];a[M+20>>2]=a[y+20>>2];a[M+24>>2]=a[y+24>>2];a[M+28>>2]=a[y+28>>2];a[z>>2]=a[y>>2];a[z+4>>2]=a[y+4>>2];a[z+8>>2]=a[y+8>>2];a[z+12>>2]=a[y+12>>2];a[Y>>2]=a[F>>2];a[Y+4>>2]=a[F+4>>2];a[Y+8>>2]=a[F+8>>2];a[Y+12>>2]=a[F+12>>2];tx(M,z,Y);a[z>>2]=a[n>>2];a[z+4>>2]=a[n+4>>2];a[z+8>>2]=a[n+8>>2];a[z+12>>2]=a[n+12>>2];a[Y>>2]=a[F>>2];a[Y+4>>2]=a[F+4>>2];a[Y+8>>2]=a[F+8>>2];a[Y+12>>2]=a[F+12>>2];tx(V,z,Y);a[n>>2]=a[V>>2];a[n+4>>2]=a[V+4>>2];a[n+8>>2]=a[V+8>>2];a[n+12>>2]=a[V+12>>2];y=(a[f>>2]|0)+16|0;a[y>>2]=a[M>>2];a[y+4>>2]=a[M+4>>2];a[y+8>>2]=a[M+8>>2];a[y+12>>2]=a[M+12>>2];a[y+16>>2]=a[M+16>>2];a[y+20>>2]=a[M+20>>2];a[y+24>>2]=a[M+24>>2];a[y+28>>2]=a[M+28>>2];if(0>1){ax(e);y=Vh(r)|0;l=+s[M>>3];t=+s[u>>3];c=+s[n>>3];b=+s[w>>3];a[N>>2]=y;s[N+8>>3]=l;s[N+16>>3]=t;s[N+24>>3]=c;s[N+32>>3]=b;f3(d,90556,N)|0}}else{y=(a[f>>2]|0)+16|0;a[z>>2]=a[y>>2];a[z+4>>2]=a[y+4>>2];a[z+8>>2]=a[y+8>>2];a[z+12>>2]=a[y+12>>2];a[Y>>2]=a[F>>2];a[Y+4>>2]=a[F+4>>2];a[Y+8>>2]=a[F+8>>2];a[Y+12>>2]=a[F+12>>2];tx(J,z,Y);a[y>>2]=a[J>>2];a[y+4>>2]=a[J+4>>2];a[y+8>>2]=a[J+8>>2];a[y+12>>2]=a[J+12>>2];if(0>1){ax(e);y=Vh(r)|0;Q=a[f>>2]|0;c=+s[Q+16>>3];b=+s[Q+24>>3];a[R>>2]=y;s[R+8>>3]=c;s[R+16>>3]=b;f3(d,90544,R)|0}}i=i+1|0}a[z>>2]=a[B>>2];a[z+4>>2]=a[B+4>>2];a[z+8>>2]=a[B+8>>2];a[z+12>>2]=a[B+12>>2];a[Y>>2]=a[F>>2];a[Y+4>>2]=a[F+4>>2];a[Y+8>>2]=a[F+8>>2];a[Y+12>>2]=a[F+12>>2];tx(p,z,Y);a[B>>2]=a[p>>2];a[B+4>>2]=a[p+4>>2];a[B+8>>2]=a[p+8>>2];a[B+12>>2]=a[p+12>>2];a[z>>2]=a[F>>2];a[z+4>>2]=a[F+4>>2];a[z+8>>2]=a[F+8>>2];a[z+12>>2]=a[F+12>>2];a[Y>>2]=a[F>>2];a[Y+4>>2]=a[F+4>>2];a[Y+8>>2]=a[F+8>>2];a[Y+12>>2]=a[F+12>>2];tx(D,z,Y);a[F>>2]=a[D>>2];a[F+4>>2]=a[D+4>>2];a[F+8>>2]=a[D+8>>2];a[F+12>>2]=a[D+12>>2];R=(a[W>>2]|0)+16|0;a[R>>2]=a[F>>2];a[R+4>>2]=a[F+4>>2];a[R+8>>2]=a[F+8>>2];a[R+12>>2]=a[F+12>>2];a[R+16>>2]=a[F+16>>2];a[R+20>>2]=a[F+20>>2];a[R+24>>2]=a[F+24>>2];a[R+28>>2]=a[F+28>>2];if(0>1){ax(e);R=Vh(A)|0;l=+s[F>>3];t=+s[o>>3];c=+s[B>>3];b=+s[h>>3];a[X>>2]=R;s[X+8>>3]=l;s[X+16>>3]=t;s[X+24>>3]=c;s[X+32>>3]=b;f3(d,90556,X)|0}L2(G);L2(m);L2(g)}k=H;return}function fx(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0.0,c=0.0,b=0.0,u=0.0,w=0,o=0.0,h=0.0,d=0,B=0,g=0,v=0;g=k;k=k+80|0;B=g+32|0;l=g+8|0;i=g;d=A+16|0;w=a[d>>2]|0;o=+s[w+16>>3];h=+s[w+24>>3];if(0>1){ax(e);w=a[15712]|0;a[i>>2]=Vh(A)|0;f3(w,90529,i)|0}w=(e|0)!=0;A:do{if(w){i=cd(A)|0;r=a[15712]|0;while(1){if(!i)break A;f=i+16|0;n=a[f>>2]|0;if((a[n+112>>2]|0)==(A|0)?(v=n+16|0,s[v>>3]=+s[v>>3]+o,n=n+24|0,s[n>>3]=+s[n>>3]+h,0>1):0){ax(e);v=Vh(i)|0;n=a[f>>2]|0;b=+s[n+16>>3];u=+s[n+24>>3];a[l>>2]=v;s[l+8>>3]=b;s[l+16>>3]=u;f3(r,90544,l)|0}i=sd(A,i)|0}}else r=a[15712]|0}while(0);l=e+1|0;A=1;while(1){i=a[d>>2]|0;if((A|0)>(a[i+180>>2]|0))break;n=a[(a[i+184>>2]|0)+(A<<2)>>2]|0;if(w){f=n+16|0;i=a[f>>2]|0;t=+s[i+16>>3]+o;c=+s[i+24>>3]+h;b=+s[i+32>>3]+o;u=+s[i+40>>3]+h;if(0>1){ax(e);a[B>>2]=Vh(n)|0;s[B+8>>3]=t;s[B+16>>3]=c;s[B+24>>3]=b;s[B+32>>3]=u;f3(r,90556,B)|0;i=a[f>>2]|0}s[i+16>>3]=t;s[i+24>>3]=c;s[i+32>>3]=b;s[i+40>>3]=u}fx(n,l);A=A+1|0}k=g;return}function ax(A){A=A|0;var e=0;e=a[15712]|0;while(1){if((A|0)<=0)break;Q3(90574,e)|0;A=A+-1|0}return}function nx(A,e,i){A=A|0;e=+e;i=+i;s[A>>3]=e;s[A+8>>3]=i;return}function lx(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0;r=(+s[i+8>>3]+ +s[e+8>>3])*.5;s[A>>3]=(+s[i>>3]+ +s[e>>3])*.5;s[A+8>>3]=r;return}function tx(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0;r=+s[e+8>>3]-+s[i+8>>3];s[A>>3]=+s[e>>3]-+s[i>>3];s[A+8>>3]=r;return}function cx(A){A=A|0;a[A>>2]=0;a[A+4>>2]=0;a[A+8>>2]=0;return}function sx(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;n=A+8|0;i=(a[n>>2]|0)+1|0;a[n>>2]=i;r=A+4|0;l=a[r>>2]|0;f=l+10|0;if((i|0)<(l|0))A=a[A>>2]|0;else{a[r>>2]=f;i=eV(a[A>>2]|0,f<<2)|0;a[A>>2]=i;A=i;i=a[n>>2]|0}a[A+(i<<2)>>2]=e;return}function bx(A){A=A|0;var e=0;e=cd(A)|0;while(1){if(!e)break;bX(e);e=sd(A,e)|0}ux(A);return}function ux(A){A=A|0;var e=0,i=0,r=0;e=A+16|0;A=1;while(1){r=a[e>>2]|0;i=a[r+184>>2]|0;if((A|0)>(a[r+180>>2]|0))break;r=a[i+(A<<2)>>2]|0;TF(a[(a[r+16>>2]|0)+12>>2]|0);ux(r);A=A+1|0}L2(i);return}function wx(A){A=A|0;var e=0,i=0,r=0;Kd(A,1,137447,304,1);KR(A)|0;e=qF(((gh(A)|0)<<2)+4|0)|0;r=A+16|0;a[(a[r>>2]|0)+152>>2]=e;e=0;i=cd(A)|0;while(1){if(!i)break;kx(i);a[(a[(a[r>>2]|0)+152>>2]|0)+(e<<2)>>2]=i;a[(a[i+16>>2]|0)+120>>2]=e;e=e+1|0;i=sd(A,i)|0}r=Yo(A,2,92493,0)|0;i=cd(A)|0;while(1){if(!i)break;e=Oo(A,i)|0;while(1){if(!e)break;ox(e,r);e=_o(A,e)|0}i=sd(A,i)|0}hx(A);return}function kx(A){A=A|0;var e=0;FR(A);e=qF((l[(a[(Id(A)|0)+16>>2]|0)+176>>1]|0)<<3)|0;a[(a[A+16>>2]|0)+132>>2]=e;DX(A,a[(a[(Id(A)|0)+16>>2]|0)+116>>2]&1);return}function ox(A,e){A=A|0;e=e|0;var i=0,r=0.0;Td(A,137460,176,1)|0;r=+oR(A,a[47174]|0,1.0,0.0);i=A+16|0;s[(a[i>>2]|0)+128>>3]=r;r=+oR(A,e,+s[1371],0.0);s[(a[i>>2]|0)+136>>3]=r;VR(A)|0;return}function hx(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0;d=k;k=k+32|0;h=d+16|0;o=d;b=d+24|0;u=Yo(A,1,102623,0)|0;A:do{if(u|0){w=Yo(A,1,90660,0)|0;l=A+16|0;t=(w|0)==0;c=a[15712]|0;n=0;while(1){i=a[(a[(a[l>>2]|0)+152>>2]|0)+(n<<2)>>2]|0;if(!i)break A;A=Uo(i,u)|0;do{if(r[A>>0]|0){f=i+16|0;e=a[(a[f>>2]|0)+132>>2]|0;r[b>>0]=0;a[o>>2]=e;a[o+4>>2]=e+8;a[o+8>>2]=b;if((J3(A,101749,o)|0)<=1){a[h>>2]=Vh(i)|0;a[h+4>>2]=A;f3(c,90664,h)|0;break}e:do{if(+s[23293]>0.0){A=0;while(1){if((A|0)==2)break e;B=e+(A<<3)|0;s[B>>3]=+s[B>>3]/+s[23293];A=A+1|0}}}while(0);A=a[f>>2]|0;r[A+119>>0]=1;if((r[b>>0]|0)!=33){if(t)break;if(!((vR(Uo(i,w)|0)|0)<<24>>24))break;A=a[f>>2]|0}r[A+119>>0]=3}}while(0);n=n+1|0}}}while(0);k=d;return}function dx(A){A=A|0;var e=0,i=0;i=cd(A)|0;while(1){if(!i)break;e=Oo(A,i)|0;while(1){if(!e)break;wX(e);e=_o(A,e)|0}bX(i);i=sd(A,i)|0}Bx(A);return}function Bx(A){A=A|0;gx(A);A=A+16|0;L2(a[(a[A>>2]|0)+152>>2]|0);L2(a[(a[A>>2]|0)+140>>2]|0);return}function gx(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;n=A+16|0;f=1;while(1){r=a[n>>2]|0;e=a[r+184>>2]|0;if((f|0)>(a[r+180>>2]|0))break;r=a[e+(f<<2)>>2]|0;e=r+16|0;TF(a[(a[e>>2]|0)+12>>2]|0);i=a[(a[e>>2]|0)+140>>2]|0;if(i|0){L2(a[i>>2]|0);L2(a[(a[e>>2]|0)+140>>2]|0)}gx(r);f=f+1|0}L2(e);if((Zd(A)|0)!=(A|0))Pd(A,137483)|0;return}function vx(A,e){A=A|0;e=e|0;a[e+4>>2]=Yo(A,0,90716,0)|0;a[e+8>>2]=Yo(A,0,141116,0)|0;a[e+12>>2]=Yo(A,0,141048,0)|0;a[e>>2]=A;a[e+16>>2]=0;a[e+36>>2]=sC(A,2,4,e+20|0)|0;return}function Ex(A){A=A|0;var e=0,i=0;zX(A,2);e=qF(56)|0;i=A+16|0;a[(a[i>>2]|0)+140>>2]=e;e=(kR(A,Yo(A,0,91374,0)|0,2,2)|0)&65535;e=(e&65535)<10?e:10;f[(a[i>>2]|0)+176>>1]=e;a[47137]=e&65535;Cx(A,0,A);jx(A);wx(A);return}function Cx(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0;b=k;k=k+16|0;c=b;s=(e|0)==0;if(s){Ix(c);e=c}n=i+16|0;r=RB(A)|0;while(1){if(!r)break;if(!(Z1(Vh(r)|0,108006,7)|0)){Td(r,137483,280,1)|0;u=qF(56)|0;o=a[r+16>>2]|0;a[o+140>>2]=u;w=a[n>>2]|0;f[o+176>>1]=f[w+176>>1]|0;a[u+44>>2]=(a[(a[w+140>>2]|0)+44>>2]|0)+1;a[u+48>>2]=i;Zx(e,r);Cx(r,0,r)}else Cx(r,e,i);r=XB(r)|0}if(s?(l=a[c+8>>2]|0,t=A+16|0,a[(a[t>>2]|0)+180>>2]=l,l|0):0){o=eV(a[c>>2]|0,(l<<2)+4|0)|0;a[(a[t>>2]|0)+184>>2]=o}k=b;return}function Ix(A){A=A|0;a[A>>2]=0;a[A+4>>2]=0;a[A+8>>2]=0;return}function Zx(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;n=A+8|0;i=(a[n>>2]|0)+1|0;a[n>>2]=i;r=A+4|0;l=a[r>>2]|0;f=l+10|0;if((i|0)<(l|0))A=a[A>>2]|0;else{a[r>>2]=f;i=eV(a[A>>2]|0,f<<2)|0;a[A>>2]=i;A=i;i=a[n>>2]|0}a[A+(i<<2)>>2]=e;return}function Gx(A){A=A|0;var e=0,i=0;e=k;k=k+64|0;i=e;vx(A,i);mx(A,i);Qx(A);Lx(A,A);yx(A);k=e;return}function mx(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0.0,v=0.0,E=0,C=0.0,I=0.0;B=k;k=k+64|0;d=B+48|0;i=B+40|0;w=B+56|0;u=B+52|0;b=B;if(0){}i=cd(A)|0;while(1){if(!i)break;a[(a[i+16>>2]|0)+164>>2]=0;i=sd(A,i)|0}o=Wx(A,e)|0;h=E_(o,w,u)|0;i=h;while(1){c=i+4|0;f=a[i>>2]|0;if(!f)break;Px(f,b);i=cd(f)|0;while(1){if(!i)break;n=sd(f,i)|0;l=i+16|0;t=a[l>>2]|0;if(a[t+212>>2]|0){E=zx(i,f)|0;mx(E,e);E=a[(a[E+16>>2]|0)+140>>2]|0;v=+s[E+24>>3];t=a[l>>2]|0;s[t+32>>3]=v;g=+s[E+32>>3];s[t+40>>3]=g;v=v*36.0;s[t+88>>3]=v;s[t+96>>3]=v;s[t+80>>3]=g*72.0;i=n;continue}if(a[(a[t+112>>2]|0)+8>>2]|0){i=n;continue}Cd(f,i)|0;i=n}if((gh(f)|0)<=1){i=c;continue}if((a[e>>2]|0)==(A|0))Zj(f)|0;nT(f,b);i=c}i=a[w>>2]|0;if((i|0)<=1)if((i|0)==1){xR(a[h>>2]|0);i=0}else i=0;else{if(!(a[u>>2]|0))f=0;else{f=qF(i)|0;r[f>>0]=1;i=a[w>>2]|0}a[e+40>>2]=f;i=HE(i,h,0,e+20|0)|0;L2(f)}Yx(o,a[w>>2]|0,h,i,A,e);L2(i);f=cd(o)|0;while(1){if(!f)break;n=a[f+16>>2]|0;i=a[n+212>>2]|0;if(!i){i=a[(a[n+112>>2]|0)+8>>2]|0;if(i|0){w=a[n+132>>2]|0;E=a[(a[i+16>>2]|0)+132>>2]|0;s[E>>3]=+s[w>>3];s[E+8>>3]=+s[w+8>>3]}}else{w=a[n+132>>2]|0;I=+s[n+32>>3];C=+s[w>>3]-I*.5;E=a[(a[i+16>>2]|0)+140>>2]|0;s[E+8>>3]=C;g=+s[n+40>>3];v=+s[w+8>>3]-g*.5;s[E+16>>3]=v;s[E+24>>3]=I+C;s[E+32>>3]=g+v}f=sd(o,f)|0}E=(a[(a[A+16>>2]|0)+140>>2]|0)+8|0;w=(a[(a[o+16>>2]|0)+140>>2]|0)+8|0;a[E>>2]=a[w>>2];a[E+4>>2]=a[w+4>>2];a[E+8>>2]=a[w+8>>2];a[E+12>>2]=a[w+12>>2];a[E+16>>2]=a[w+16>>2];a[E+20>>2]=a[w+20>>2];a[E+24>>2]=a[w+24>>2];a[E+28>>2]=a[w+28>>2];Dx(o,h);L2(h);if(0){}k=B;return}function Qx(A){A=A|0;var e=0,i=0,f=0.0,n=0.0,l=0.0,t=0.0,c=0;e=cd(A)|0;while(1){if(!e)break;i=a[e+16>>2]|0;if(r[i+118>>0]|0){c=a[(a[(a[i+212>>2]|0)+16>>2]|0)+140>>2]|0;t=+s[c+24>>3]-+s[c+8>>3];l=+s[c+32>>3]-+s[c+16>>3];n=t*36.0;f=l*36.0;c=a[i+132>>2]|0;s[c>>3]=t*.5;s[c+8>>3]=l*.5;s[i+32>>3]=t;s[i+40>>3]=l;s[i+96>>3]=n;s[i+88>>3]=n;s[i+80>>3]=l*72.0;i=a[(a[i+12>>2]|0)+44>>2]|0;s[i>>3]=n;s[i+8>>3]=f;l=-n;s[i+16>>3]=l;s[i+24>>3]=f;s[i+32>>3]=l;f=-f;s[i+40>>3]=f;s[i+48>>3]=n;s[i+56>>3]=f}e=sd(A,e)|0}return}function Lx(A,e){A=A|0;e=e|0;var i=0,r=0,f=0.0,n=0.0,l=0,t=0,c=0.0,b=0,u=0.0,w=0,k=0.0,o=0;l=A+16|0;t=a[(a[l>>2]|0)+140>>2]|0;f=+s[t+8>>3];n=+s[t+16>>3];t=(A|0)!=(e|0);A:do{if(t){i=cd(A)|0;while(1){if(!i){A=1;break A}r=a[i+16>>2]|0;if((a[r+212>>2]|0)==(A|0)){r=a[r+132>>2]|0;s[r>>3]=+s[r>>3]+f;r=r+8|0;s[r>>3]=+s[r>>3]+n}i=sd(A,i)|0}}else A=1}while(0);while(1){i=a[l>>2]|0;if((A|0)>(a[i+180>>2]|0))break;i=a[(a[i+184>>2]|0)+(A<<2)>>2]|0;if(t){r=a[(a[i+16>>2]|0)+140>>2]|0;o=r+8|0;w=r+16|0;b=r+24|0;r=r+32|0;k=+s[w>>3]+n;u=+s[b>>3]+f;c=+s[r>>3]+n;s[o>>3]=+s[o>>3]+f;s[w>>3]=k;s[b>>3]=u;s[r>>3]=c}Lx(i,e);A=A+1|0}return}function yx(A){A=A|0;var e=0,i=0,r=0.0,f=0.0,n=0.0;e=A+16|0;A=a[e>>2]|0;i=a[A+140>>2]|0;n=+s[i+16>>3]*72.0;f=+s[i+24>>3]*72.0;r=+s[i+32>>3]*72.0;s[A+16>>3]=+s[i+8>>3]*72.0;s[A+24>>3]=n;s[A+32>>3]=f;s[A+40>>3]=r;A=1;while(1){i=a[e>>2]|0;if((A|0)>(a[i+180>>2]|0))break;yx(a[(a[i+184>>2]|0)+(A<<2)>>2]|0);A=A+1|0}return}function Wx(A,e){A=A|0;e=e|0;var i=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0;Z=k;k=k+160|0;B=Z+24|0;g=Z+8|0;n=Z;i=Z+56|0;C=e+16|0;I=a[C>>2]|0;a[C>>2]=I+1;a[B>>2]=I;S4(i,90796,B)|0;if(0>1){I=a[15712]|0;C=Vh(A)|0;a[n>>2]=i;a[n+4>>2]=C;f3(I,90803,n)|0}r[B>>0]=r[18588]|0;r[B+1>>0]=r[18589]|0;r[B+2>>0]=r[18590]|0;r[B+3>>0]=r[18591]|0;I=kh(91156,B,0)|0;Td(I,137483,280,1)|0;E=qF(56)|0;C=I+16|0;w=a[C>>2]|0;a[w+140>>2]=E;E=A+16|0;f[w+176>>1]=f[(a[E>>2]|0)+176>>1]|0;Nx(A,I,92507);Nx(A,I,93112);Nx(A,I,91202);w=e+4|0;o=B+16|0;h=B+8|0;d=B+24|0;t=0;u=1;while(1){i=a[E>>2]|0;if((u|0)>(a[i+180>>2]|0))break;a[B>>2]=a[332];a[B+4>>2]=a[333];a[B+8>>2]=a[334];a[B+12>>2]=a[335];a[B+16>>2]=a[336];a[B+20>>2]=a[337];a[B+24>>2]=a[338];a[B+28>>2]=a[339];n=a[(a[i+184>>2]|0)+(u<<2)>>2]|0;JF(n);l=Rx(I,Vh(n)|0)|0;c=l+16|0;i=a[c>>2]|0;a[i+212>>2]=n;b=t+1|0;a[i+120>>2]=t;if(a[w>>2]|0)Xx(n,l,e,B);i=cd(n)|0;while(1){if(!i)break;a[(a[i+16>>2]|0)+164>>2]=l;i=sd(n,i)|0}i=a[c>>2]|0;if(r[i+119>>0]|0){c=a[i+132>>2]|0;s[c>>3]=(+s[o>>3]+ +s[B>>3])*.5;s[c+8>>3]=(+s[d>>3]+ +s[h>>3])*.5}t=b;u=u+1|0}c=cd(A)|0;while(1){if(!c)break;i=c+16|0;n=a[i>>2]|0;if(!(a[n+164>>2]|0)){l=n+212|0;B=a[l>>2]|0;if(B|0?(B|0)!=(a[(a[(a[E>>2]|0)+140>>2]|0)+48>>2]|0):0){v=18;break}a[l>>2]=A;if(!(r[n+118>>0]|0)){l=Rx(I,Vh(c)|0)|0;n=a[i>>2]|0;a[n+164>>2]=l;l=a[l+16>>2]|0;a[l+120>>2]=t;s[l+32>>3]=+s[n+32>>3];s[l+40>>3]=+s[n+40>>3];s[l+88>>3]=+s[n+88>>3];s[l+96>>3]=+s[n+96>>3];s[l+80>>3]=+s[n+80>>3];a[l+8>>2]=a[n+8>>2];a[l+12>>2]=a[n+12>>2];i=r[n+119>>0]|0;if(i<<24>>24){e=a[n+132>>2]|0;B=a[l+132>>2]|0;s[B>>3]=+s[e>>3];s[B+8>>3]=+s[e+8>>3];r[l+119>>0]=i}a[(a[l+112>>2]|0)+8>>2]=c;i=t+1|0}else i=t}else i=t;c=sd(A,c)|0;t=i}if((v|0)==18){e=Vh(c)|0;B=Vh(A)|0;v=Vh(a[(a[i>>2]|0)+212>>2]|0)|0;a[g>>2]=e;a[g+4>>2]=B;a[g+8>>2]=v;ao(1,90826,g)|0;fe(187212,1)}b=cd(A)|0;while(1){if(!b)break;u=a[(a[b+16>>2]|0)+164>>2]|0;w=u+16|0;l=Oo(A,b)|0;while(1){if(!l)break;i=a[(a[(a[((a[l>>2]&3|0)==2?l:l+-48|0)+40>>2]|0)+16>>2]|0)+164>>2]|0;if((i|0)!=(u|0)){if(i>>>0>u>>>0)c=th(I,u,i,0,1)|0;else c=th(I,i,u,0,1)|0;Td(c,137460,176,1)|0;n=a[l+16>>2]|0;v=a[c+16>>2]|0;s[v+136>>3]=+s[n+136>>3];s[v+128>>3]=+s[n+128>>3];i=a[(a[i+16>>2]|0)+112>>2]|0;n=i+4|0;a[n>>2]=(a[n>>2]|0)+1;n=a[(a[w>>2]|0)+112>>2]|0;g=n+4|0;a[g>>2]=(a[g>>2]|0)+1;if(!(a[v+172>>2]|0)){a[i>>2]=(a[i>>2]|0)+1;a[n>>2]=(a[n>>2]|0)+1}Hx(c,l)}l=_o(A,l)|0}b=sd(A,b)|0}i=a[(a[E>>2]|0)+140>>2]|0;n=a[i>>2]|0;if(n|0){l=qF((a[i+4>>2]<<4)+16|0)|0;a[a[(a[C>>2]|0)+140>>2]>>2]=l;i=0;while(1){if(!(a[n>>2]|0))break;b=a[(a[(a[n+4>>2]|0)+16>>2]|0)+164>>2]|0;if(b){Ux(A,n);u=Rx(I,193772)|0;w=u+16|0;a[(a[w>>2]|0)+120>>2]=t;if(u>>>0>b>>>0)c=th(I,b,u,0,1)|0;else c=th(I,u,b,0,1)|0;Td(c,137460,176,1)|0;v=a[n>>2]|0;g=a[v+16>>2]|0;E=a[c+16>>2]|0;s[E+136>>3]=+s[g+136>>3];s[E+128>>3]=+s[g+128>>3];Hx(c,v);v=a[(a[w>>2]|0)+112>>2]|0;E=v+4|0;a[E>>2]=(a[E>>2]|0)+1;E=a[(a[b+16>>2]|0)+112>>2]|0;g=E+4|0;a[g>>2]=(a[g>>2]|0)+1;a[v>>2]=(a[v>>2]|0)+1;a[E>>2]=(a[E>>2]|0)+1;a[l+4>>2]=u;s[l+8>>3]=+s[n+8>>3];a[l>>2]=c;i=i+1|0;l=l+16|0;t=t+1|0}n=n+16|0}a[(a[(a[C>>2]|0)+140>>2]|0)+4>>2]=i}k=Z;return I|0}function zx(A,e){A=A|0;e=e|0;var i=0.0,r=0,f=0,n=0,l=0,t=0,c=0,b=0;b=a[A+16>>2]|0;c=a[b+212>>2]|0;b=a[(a[b+112>>2]|0)+4>>2]|0;do{if(b|0){t=qF((b<<4)+16|0)|0;f=Vx(A,e)|0;n=f+8|0;e=0;r=f;while(1){if(!(a[r>>2]|0))break;l=r+24|0;if(!(a[l>>2]|0))i=+s[n>>3]+6.283185307179586;else i=+s[r+32>>3];e=Jx(A,r,t,e,i)|0;r=l}if((e|0)==(b|0)){A=a[(a[c+16>>2]|0)+140>>2]|0;a[A>>2]=t;a[A+4>>2]=b;L2(f);break}else gA(90742,90752,766,90761)}}while(0);return c|0}function Yx(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0.0,t=0,c=0.0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0.0,D=0.0;Q=k;k=k+32|0;I=Q+16|0;m=Q;b=a[n+8>>2]|0;t=a[n+12>>2]|0;Z=(a[n>>2]|0)==(f|0);G=(e|0)!=0;A:do{if(G){o=a[(a[i>>2]|0)+16>>2]|0;c=+s[o+16>>3];b=~~(c+(c>=0.0?.5:-.5));a[m>>2]=b;c=+s[o+24>>3];n=~~(c+(c>=0.0?.5:-.5));v=m+4|0;a[v>>2]=n;c=+s[o+32>>3];u=~~(c+(c>=0.0?.5:-.5));E=m+8|0;a[E>>2]=u;c=+s[o+40>>3];o=~~(c+(c>=0.0?.5:-.5));C=m+12|0;a[C>>2]=o;if((e|0)>1){h=a[r>>2]|0;g=a[r+4>>2]|0;b=h+b|0;a[m>>2]=b;e=g+n|0;a[v>>2]=e;u=h+u|0;a[E>>2]=u;h=I+4|0;d=I+8|0;B=I+12|0;w=r;n=i;g=g+o|0;o=e;while(1){n=n+4|0;t=w+8|0;a[C>>2]=g;e=a[n>>2]|0;if(!e){t=0;d=o;B=g;break A}W=a[e+16>>2]|0;Y=+s[W+16>>3];l=+s[W+24>>3];c=+s[W+32>>3];D=+s[W+40>>3];W=~~(D+(D>=0.0?.5:-.5));a[B>>2]=W;e=a[t>>2]|0;z=a[w+12>>2]|0;y=e+~~(Y+(Y>=0.0?.5:-.5))|0;a[I>>2]=y;L=z+~~(l+(l>=0.0?.5:-.5))|0;a[h>>2]=L;e=e+~~(c+(c>=0.0?.5:-.5))|0;a[d>>2]=e;W=z+W|0;a[B>>2]=W;y=a[((b|0)<(y|0)?m:I)>>2]|0;a[m>>2]=y;L=a[((o|0)<(L|0)?m:I)+4>>2]|0;a[v>>2]=L;e=a[((u|0)>(e|0)?m:I)+8>>2]|0;a[E>>2]=e;w=t;g=a[((g|0)>(W|0)?m:I)+12>>2]|0;b=y;o=L;u=e}}else{t=0;d=n;B=o}}else{a[m>>2]=0;a[m+4>>2]=0;u=kR(f,b,54,3)|0;a[m+8>>2]=u;B=kR(f,t,36,3)|0;a[m+12>>2]=B;t=1;b=0;d=0}}while(0);e=f+16|0;w=a[e>>2]|0;n=a[w+12>>2]|0;if(n){D=+s[n+24>>3];n=b-u+~~(D+(D>=0.0?.5:-.5))|0;if((n|0)>0){n=n>>>1;b=b-n|0;a[m>>2]=b;u=u+n|0;a[m+8>>2]=u;n=0}else n=0}else n=t;if(Z|(n|0)!=0){t=0;n=w}else{t=kR(A,a[47144]|0,8,0)|0;n=a[e>>2]|0}h=t-b|0;o=~~(+s[n+56>>3]+ +(t-d|0));a[m>>2]=0;a[m+4>>2]=0;w=h+t+u|0;a[m+8>>2]=w;e=~~(+s[n+88>>3]+ +(t+o|0)+ +(B|0));a[m+12>>2]=e;A:do{if(G){n=r;e:while(1){u=i+4|0;t=a[i>>2]|0;if(!t)break A;if(!n){b=0;i=h;n=o}else{b=n+8|0;i=(a[n>>2]|0)+h|0;n=(a[n+4>>2]|0)+o|0}c=+(i|0)*.013888888888888888;l=+(n|0)*.013888888888888888;i=cd(t)|0;while(1){if(!i){i=u;n=b;continue e}z=a[(a[i+16>>2]|0)+132>>2]|0;s[z>>3]=+s[z>>3]+c;z=z+8|0;s[z>>3]=+s[z>>3]+l;i=sd(t,i)|0}}}}while(0);z=a[(a[A+16>>2]|0)+140>>2]|0;W=z+8|0;a[W>>2]=0;a[W+4>>2]=0;a[W+8>>2]=0;a[W+12>>2]=0;s[z+24>>3]=+(w|0)*.013888888888888888;s[z+32>>3]=+(e|0)*.013888888888888888;k=Q;return}function Dx(A,e){A=A|0;e=e|0;var i=0,r=0;while(1){i=a[e>>2]|0;if(!i)break;Mx(i);Pd(i,137483)|0;e=e+4|0}e=a[a[(a[A+16>>2]|0)+140>>2]>>2]|0;if(e|0)L2(e);Mx(A);Pd(A,137483)|0;i=cd(A)|0;while(1){if(!i)break;r=sd(A,i)|0;e=Oo(A,i)|0;while(1){if(!e)break;L2(a[(a[e+16>>2]|0)+172>>2]|0);Pd(e,137460)|0;e=_o(A,e)|0}Fx(i);i=r}Bh(A)|0;return}function Mx(A){A=A|0;L2(a[(a[A+16>>2]|0)+140>>2]|0);return}function Fx(A){A=A|0;var e=0;e=A+16|0;L2(a[(a[e>>2]|0)+112>>2]|0);L2(a[(a[e>>2]|0)+132>>2]|0);Pd(A,137447)|0;return}function Vx(A,e){A=A|0;e=e|0;var i=0.0,r=0,f=0,n=0.0,l=0,t=0,c=0,b=0,u=0;c=A+16|0;b=a[a[(a[c>>2]|0)+112>>2]>>2]|0;u=qF((b*24|0)+24|0)|0;l=0;t=Ah(e,A)|0;while(1){if(!t)break;f=a[t>>2]&3;r=a[((f|0)==2?t:t+-48|0)+40>>2]|0;if((r|0)==(A|0))r=a[((f|0)==3?t:t+48|0)+40>>2]|0;r=a[(a[r+16>>2]|0)+132>>2]|0;f=a[(a[c>>2]|0)+132>>2]|0;n=+s[r>>3]-+s[f>>3];i=+s[r+8>>3]-+s[f+8>>3];a[u+(l*24|0)>>2]=t;s[u+(l*24|0)+8>>3]=+N(+i,+n);s[u+(l*24|0)+16>>3]=i*i+n*n;l=l+1|0;t=eh(e,t,A)|0}if((l|0)!=(b|0))gA(90775,90752,642,90784);K4(u,b,24,67);A:do{if((b|0)>1){t=b+-1|0;r=0;e:while(1){if((r|0)>=(t|0))break A;n=+s[u+(r*24|0)+8>>3];f=r+1|0;l=f;while(1){if((l|0)>=(b|0))break;if(!(+s[u+(l*24|0)+8>>3]==n))break;l=l+1|0}if((l|0)==(f|0)){r=f;continue}if((l|0)==(b|0))i=3.141592653589793;else i=+s[u+(l*24|0)+8>>3];i=(i-n)/+(l-r|0);i=i>.03490658503988659?.03490658503988659:i;n=0.0;while(1){if((r|0)>=(l|0))continue e;c=u+(r*24|0)+8|0;s[c>>3]=+s[c>>3]+n;n=n+i;r=r+1|0}}}}while(0);return u|0}function Jx(A,e,i,r,n){A=A|0;e=e|0;i=i|0;r=r|0;n=+n;var l=0,t=0,c=0,b=0.0,u=0,w=0,k=0,o=0.0,h=0;c=a[e>>2]|0;w=a[c+16>>2]|0;u=f[w+168>>1]|0;k=u<<16>>16;t=a[c>>2]&3;l=a[((t|0)==2?c:c+-48|0)+40>>2]|0;if((l|0)==(A|0))l=a[((t|0)==3?c:c+48|0)+40>>2]|0;o=+s[e+8>>3];n=(n-o)/+(u<<16>>16);n=n>.03490658503988659?.03490658503988659:n;u=l>>>0>A>>>0;b=u?n:-n;e=u?1:-1;c=0;l=a[w+172>>2]|0;t=u?r:r+-1+k|0;n=u?o:n*+(k+-1|0)+o;while(1){if((c|0)>=(k|0))break;w=a[l>>2]|0;a[i+(t<<4)>>2]=w;u=a[w>>2]&3;h=(u|0)==3?w:w+48|0;a[i+(t<<4)+4>>2]=a[((a[(a[(a[h+40>>2]|0)+16>>2]|0)+164>>2]|0)==(A|0)?h:(u|0)==2?w:w+-48|0)+40>>2];s[i+(t<<4)+8>>3]=n;c=c+1|0;l=l+4|0;t=t+e|0;n=n+b}return k+r|0}function px(A,e){A=A|0;e=e|0;var i=0.0,r=0.0;i=+s[A+8>>3];r=+s[e+8>>3];if(!(i>r))if(!(i>3];i=+s[e+16>>3];if(r>i)A=1;else A=(r>31}else A=-1;else A=1;return A|0}function Nx(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=Yo(A,0,i,0)|0;do{if(r|0){A=Uo(A,r)|0;r=Yo(e,0,i,0)|0;if(!r){Yo(e,0,i,A)|0;break}else{Vo(e,r,A)|0;break}}}while(0);return}function Rx(A,e){A=A|0;e=e|0;var i=0,r=0;e=gd(A,e,1)|0;Td(e,137447,304,1)|0;r=qF(32)|0;i=e+16|0;a[(a[i>>2]|0)+112>>2]=r;A=$F((l[(a[A+16>>2]|0)+176>>1]|0)<<3)|0;a[(a[i>>2]|0)+132>>2]=A;return e|0}function Xx(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0.0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0;h=k;k=k+80|0;u=h+56|0;b=h+32|0;o=h;w=h+64|0;l=a[i+4>>2]|0;c=Uo(A,l)|0;do{if(r[c>>0]|0){if((a[i>>2]|0)!=(A|0)){i=Uo(HB(A)|0,l)|0;if((i|0)==(c|0))break;if(!(A1(c,i)|0))break}r[w>>0]=0;i=o+8|0;l=o+16|0;t=o+24|0;a[b>>2]=o;a[b+4>>2]=i;a[b+8>>2]=l;a[b+12>>2]=t;a[b+16>>2]=w;if((J3(c,90937,b)|0)<=3){a[u>>2]=Vh(A)|0;a[u+4>>2]=c;ao(0,90955,u)|0;break}n=+s[23293];if(n>0.0){s[o>>3]=+s[o>>3]/n;s[i>>3]=+s[i>>3]/n;s[l>>3]=+s[l>>3]/n;s[t>>3]=+s[t>>3]/n}i=r[w>>0]|0;if(i<<24>>24==33)r[(a[e+16>>2]|0)+119>>0]=3;else r[(a[e+16>>2]|0)+119>>0]=i<<24>>24==63?2:1;a[f>>2]=a[o>>2];a[f+4>>2]=a[o+4>>2];a[f+8>>2]=a[o+8>>2];a[f+12>>2]=a[o+12>>2];a[f+16>>2]=a[o+16>>2];a[f+20>>2]=a[o+20>>2];a[f+24>>2]=a[o+24>>2];a[f+28>>2]=a[o+28>>2]}}while(0);k=h;return}function Hx(A,e){A=A|0;e=e|0;var i=0,r=0,n=0;n=A+16|0;r=a[n>>2]|0;A=f[r+168>>1]|0;r=a[r+172>>2]|0;if(!r){A=A<<16>>16;i=A;A=$F((A<<2)+4|0)|0}else{A=A<<16>>16;i=A;A=eV(r,(A<<2)+4|0)|0}a[A+(i<<2)>>2]=e;e=a[n>>2]|0;a[e+172>>2]=A;e=e+168|0;f[e>>1]=(f[e>>1]|0)+1<<16>>16;return}function Ux(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0;t=k;k=k+48|0;l=t+24|0;n=t;r=a[e>>2]|0;i=a[r>>2]&3;f=a[((i|0)==2?r:r+-48|0)+40>>2]|0;i=a[((i|0)==3?r:r+48|0)+40>>2]|0;e=P2(Vh(A)|0)|0;c=P2(Vh(f)|0)|0;c=(e+8+c+(P2(Vh(i)|0)|0)|0)>999;e=Vh(A)|0;if(c){i=Vh(i)|0;c=Vh(f)|0;l=(a[r>>2]|0)>>>4;a[n>>2]=e;a[n+4>>2]=i;a[n+8>>2]=c;c=n+16|0;a[c>>2]=l;a[c+4>>2]=0;S4(193772,90895,n)|0}else{i=a[(a[i+16>>2]|0)+120>>2]|0;c=a[(a[f+16>>2]|0)+120>>2]|0;n=(a[r>>2]|0)>>>4;a[l>>2]=e;a[l+4>>2]=i;a[l+8>>2]=c;c=l+16|0;a[c>>2]=n;a[c+4>>2]=0;S4(193772,90914,l)|0}k=t;return}function xx(A){A=A|0;var e=0,i=0,r=0.0,n=0.0,l=0,t=0,c=0;t=4;l=Q2(40)|0;a[l>>2]=0;n=+s[23293];d=0;r=+AA(1,A|0);e=d;d=0;if((e|0)!=0&(B|0)!=0){i=y6(a[e>>2]|0,l|0,t|0)|0;if(!i)fe(e|0,B|0);L=B}else i=-1;if((i|0)!=1){s[23293]=r;d=0;bA(102,A|0);e=d;d=0;if((e|0)!=0&(B|0)!=0){i=y6(a[e>>2]|0,l|0,t|0)|0;if(!i)fe(e|0,B|0);L=B}else i=-1;if((i|0)!=1){l=L6(187212,1,l|0,t|0)|0;t=L;d=0;i=d;d=0;if((i|0)!=0&(B|0)!=0){e=y6(a[i>>2]|0,l|0,t|0)|0;if(!e)fe(i|0,B|0);L=B}else e=-1;if((e|0)!=1)e=0;else e=L}else e=L}else e=L;while(1){if(e|0)break;d=0;bA(103,A|0);e=d;d=0;if((e|0)!=0&(B|0)!=0){i=y6(a[e>>2]|0,l|0,t|0)|0;if(!i)fe(e|0,B|0);L=B}else i=-1;if((i|0)==1){e=L;continue}d=0;iA(22,A|0)|0;e=d;d=0;if((e|0)!=0&(B|0)!=0){i=y6(a[e>>2]|0,l|0,t|0)|0;if(!i)fe(e|0,B|0);L=B}else i=-1;if((i|0)==1){e=L;continue}if(f[(a[A+16>>2]|0)+136>>1]&14){d=0;bA(104,A|0);e=d;d=0;if((e|0)!=0&(B|0)!=0){i=y6(a[e>>2]|0,l|0,t|0)|0;if(!i)fe(e|0,B|0);L=B}else i=-1;if((i|0)==1){e=L;continue}}d=0;uA(22,A|0,0);e=d;d=0;if((e|0)!=0&(B|0)!=0){i=y6(a[e>>2]|0,l|0,t|0)|0;if(!i)fe(e|0,B|0);L=B}else i=-1;if((i|0)==1)e=L;else{c=12;break}}if((c|0)==12)s[23293]=n;L2(l|0);return}function Tx(A){A=A|0;var e=0,i=0,r=0,n=0,l=0,t=0;t=k;k=k+16|0;n=t;i=A+16|0;r=f[(a[i>>2]|0)+136>>1]&14;e=r&65535;if((r&65535)>8){if(r<<16>>16==12){if(FH(A,22,10)|0){a[47134]=2;l=5}}else l=5;do{if((l|0)==5)if(!(f[(a[i>>2]|0)+136>>1]&1)){JH(A,e)|0;break}else{ao(0,90998,n)|0;e=2;break}}while(0);a[47134]=0}if((a[47138]|0)<1)JH(A,e)|0;k=t;return}function jx(A){A=A|0;var e=0.0,i=0.0,r=0;r=k;k=k+16|0;a[46474]=1;a[46475]=1;a[46477]=-1;a[46479]=50;s[23245]=0.0;s[23240]=0.0;s[23241]=1.0;a[46478]=kR(A,Yo(A,0,91061,0)|0,600,0)|0;i=+oR(A,Yo(A,0,91202,0)|0,.3,0.0);s[23242]=i;s[1371]=i;if(-1.0==-1.0)e=+oR(A,Yo(A,0,91069,0)|0,-1.0,0.0);else e=-1.0;s[23243]=e;a[46476]=1;A=eH(A,2,185904)|0;a[46488]=A;if(!A){ao(0,91072,r)|0;a[46476]=2}a[46504]=(U(a[46478]|0,a[46479]|0)|0)/100|0;i=+s[23242];s[23247]=i*i;if(a[46474]|0){e=+s[23245];if(e<=0.0){e=i*3.0;s[23245]=e}s[23246]=e*e}k=r;return}function Px(A,e){A=A|0;e=e|0;var i=0,r=0.0,f=0.0,n=0,l=0,t=0;t=k;k=k+16|0;i=t;n=a[a[(a[A+16>>2]|0)+140>>2]>>2]|0;l=Sx(A,e)|0;Ox(i,A,n);r=+s[i>>3];f=+s[i+8>>3];A:do{if(!(a[46474]|0)){e=0;while(1){if((e|0)>=(a[46505]|0))break A;qx(A,+Kx(e),n);e=e+1|0}}else{i=I_(gh(A)|0)|0;L_(i,gh(A)|0);e=0;while(1){if((e|0)>=(a[46505]|0))break;_x(A,+Kx(e),n,i);e=e+1|0}W_(i)}}while(0);A:do{if(r!=0.0|f!=0.0){e=cd(A)|0;while(1){if(!e)break A;n=a[(a[e+16>>2]|0)+132>>2]|0;s[n>>3]=+s[n>>3]+r;n=n+8|0;s[n>>3]=+s[n>>3]+f;e=sd(A,e)|0}}}while(0);if(l|0)$x();k=t;return}function Sx(A,e){A=A|0;e=e|0;var i=0.0,r=0,f=0,n=0,l=0,t=0;if(+s[23243]==-1.0){l=gh(A)|0;i=+s[23242];s[23243]=+s[23241]*.2*i*+z(+ +(l|0));l=1}else{l=0;i=+s[23242]}n=a[46504]|0;s[e+8>>3]=+Kx(n);s[e+16>>3]=i;s[e+24>>3]=+s[23240];r=a[46478]|0;A=r-n|0;a[e>>2]=A;f=a[46477]|0;do{if((f|0)>-1){if((f|0)<=(n|0)){a[46505]=f;A=0;t=10;break}if((f|0)<=(r|0)){a[46505]=n;A=f-n|0;t=10}}else{a[46505]=n;t=10}}while(0);if((t|0)==10)a[e+32>>2]=A;return l|0}function Ox(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0.0,t=0.0,c=0,b=0.0,u=0.0,w=0,k=0.0,o=0.0,h=0,d=0,B=0.0,g=0.0,v=0,E=0,C=0.0,I=0,Z=0,G=0;E=gh(e)|0;I=a[(a[(a[e+16>>2]|0)+140>>2]|0)+4>>2]|0;v=cd(e)|0;h=0;d=0;n=0;c=0;w=0;while(1){if(!v)break;f=a[v+16>>2]|0;if(!(r[f+119>>0]|0))f=d;else{f=a[f+132>>2]|0;l=+s[f>>3];if(!h){c=~~l;n=~~+s[f+8>>3];w=n;f=c}else{o=+(d|0);B=+s[f+8>>3];g=+(n|0);C=+(c|0);k=+(w|0);w=~~(B>k?B:k);f=~~(lC?l:C)}h=h+1|0}v=sd(e,v)|0;d=f}l=+s[23242]*(+z(+ +(E-I|0))+1.0);B=l*.6;s[23249]=B;s[23248]=B;if((h|0)!=1)if((h|0)>1){g=+(c+d|0)*.5;C=+(w+n|0)*.5;k=+(c-d|0);o=k*1.2;b=+(w-n|0);u=b*1.2;l=l*2.4*B;t=u*o/l;do{if(!(t>=1.0)){if(t>0.0){l=+z(+t)*2.0;t=o/l;s[23248]=t;l=u/l;G=20;break}if(o>0.0){t=k*.6;s[23248]=t;l=l/o*.5;G=20;break}if(u>0.0){t=l/u*.5;s[23248]=t;l=b*.6;G=20}else{l=B;t=B}}else{t=k*.6;s[23248]=t;l=b*.6;G=20}}while(0);if((G|0)==20)s[23249]=l;B=+N(+l,+t);t=t/+D(+B);s[23248]=t;l=l/+M(+B);s[23249]=l}else{g=0.0;C=0.0;t=B;l=B}else{g=+(d|0);C=+(n|0);t=B;l=B}s[23250]=t*t;s[23251]=l*l;if((a[46488]|0)==2)f=a[46476]|0;else{f=z3()|0;f=(ne(0)|0)^f}l8(f);A:do{if(!i){i=cd(e)|0;if(!h)while(1){if(!i)break A;B=+s[23248];B=(+c8()*2.0+-1.0)*B;G=i+16|0;s[a[(a[G>>2]|0)+132>>2]>>3]=B;B=+s[23249];B=(+c8()*2.0+-1.0)*B;s[(a[(a[G>>2]|0)+132>>2]|0)+8>>3]=B;i=sd(e,i)|0}while(1){if(!i)break A;f=i+16|0;n=a[f>>2]|0;if(!(r[n+119>>0]|0)){B=+s[23248];B=(+c8()*2.0+-1.0)*B;s[a[(a[f>>2]|0)+132>>2]>>3]=B;B=+s[23249];B=(+c8()*2.0+-1.0)*B;s[(a[(a[f>>2]|0)+132>>2]|0)+8>>3]=B}else{G=a[n+132>>2]|0;s[G>>3]=+s[G>>3]-g;G=G+8|0;s[G>>3]=+s[G>>3]-C}i=sd(e,i)|0}}else{while(1){if(!(a[i>>2]|0))break;v=i+8|0;B=+D(+ +s[v>>3])*+s[23248]+g;I=a[(a[i+4>>2]|0)+16>>2]|0;E=a[I+132>>2]|0;s[E>>3]=B;s[E+8>>3]=+M(+ +s[v>>3])*+s[23249]+C;r[I+119>>0]=1;i=i+16|0}b=g*.1;u=C*.1;d=cd(e)|0;while(1){if(!d)break A;h=d+16|0;i=a[h>>2]|0;if(!((a[(a[i+112>>2]|0)+8>>2]|0)==0?!(a[i+212>>2]|0):0))G=32;do{if((G|0)==32){G=0;if(r[i+119>>0]|0){I=a[i+132>>2]|0;s[I>>3]=+s[I>>3]-g;I=I+8|0;s[I>>3]=+s[I>>3]-C;break}w=Ah(e,d)|0;i=0;t=0.0;l=0.0;while(1){if(!w)break;c=a[w>>2]&3;f=(c|0)==2?w:w+-48|0;n=a[f+40>>2]|0;c=(c|0)==3?w:w+48|0;do{if((n|0)!=(a[c+40>>2]|0)?(Z=a[(a[((n|0)==(d|0)?c:f)+40>>2]|0)+16>>2]|0,(r[Z+119>>0]|0)!=0):0)if(!i){I=a[Z+132>>2]|0;i=1;t=+s[I>>3];l=+s[I+8>>3];break}else{o=+(i|0);I=a[Z+132>>2]|0;i=i+1|0;B=+(i|0);t=(+s[I>>3]+t*o)/B;l=(+s[I+8>>3]+l*o)/B;break}}while(0);w=eh(e,w,d)|0}do{if((i|0)<=1)if((i|0)==1){f=a[h>>2]|0;i=a[f+132>>2]|0;s[i>>3]=t*.98+b;l=l*.9+u;break}else{l=+c8()*6.283185307179586;B=+c8()*.9;o=B*+s[23248]*+D(+l);f=a[h>>2]|0;i=a[f+132>>2]|0;s[i>>3]=o;l=+s[23249]*B*+M(+l);break}else{f=a[h>>2]|0;i=a[f+132>>2]|0;s[i>>3]=t}}while(0);s[i+8>>3]=l;r[f+119>>0]=1}}while(0);d=sd(e,d)|0}}}while(0);s[A>>3]=g;s[A+8>>3]=C;return}function Kx(A){A=A|0;var e=0;e=a[46478]|0;return+(+s[23243]*+(e-A|0)/+(e|0))}function _x(A,e,i,r){A=A|0;e=+e;i=i|0;r=r|0;var f=0,n=0,l=0,t=0.0;if(!(e<=0.0)){y_(r);f=cd(A)|0;while(1){if(!f)break;l=a[f+16>>2]|0;n=(a[l+112>>2]|0)+16|0;a[n>>2]=0;a[n+4>>2]=0;a[n+8>>2]=0;a[n+12>>2]=0;l=a[l+132>>2]|0;t=+s[23245];n=~~+y(+(+s[l>>3]/t));Y_(r,n,~~+y(+(+s[l+8>>3]/t)),f);f=sd(A,f)|0}n=cd(A)|0;while(1){if(!n)break;f=Oo(A,n)|0;while(1){if(!f)break;l=a[((a[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0;if((n|0)!=(l|0))eT(n,l,f);f=_o(A,f)|0}n=sd(A,n)|0}M_(r,23);iT(A,e,i)}return}function qx(A,e,i){A=A|0;e=+e;i=i|0;var r=0,f=0,n=0;if(!(e<=0.0)){r=cd(A)|0;while(1){if(!r)break;n=(a[(a[r+16>>2]|0)+112>>2]|0)+16|0;a[n>>2]=0;a[n+4>>2]=0;a[n+8>>2]=0;a[n+12>>2]=0;r=sd(A,r)|0}n=cd(A)|0;while(1){if(!n)break;else r=n;while(1){r=sd(A,r)|0;if(!r)break;AT(n,r)}r=Oo(A,n)|0;while(1){if(!r)break;f=a[((a[r>>2]&3|0)==2?r:r+-48|0)+40>>2]|0;if((n|0)!=(f|0))eT(n,f,r);r=_o(A,r)|0}n=sd(A,n)|0}iT(A,e,i)}return}function $x(){s[23243]=-1.0;return}function AT(A,e){A=A|0;e=e|0;var i=0.0,r=0.0,f=0,n=0;n=a[(a[e+16>>2]|0)+132>>2]|0;f=a[(a[A+16>>2]|0)+132>>2]|0;i=+s[n>>3]-+s[f>>3];r=+s[n+8>>3]-+s[f+8>>3];rT(A,e,i,r,r*r+i*i);return}function eT(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0,n=0.0,l=0.0,t=0,c=0;t=e+16|0;c=a[(a[t>>2]|0)+132>>2]|0;A=A+16|0;e=a[(a[A>>2]|0)+132>>2]|0;r=+s[c>>3]-+s[e>>3];f=+s[c+8>>3]-+s[e+8>>3];n=r;l=f;r=r*r;f=f*f;while(1){r=r+f;if(!(r==0.0))break;r=+(5-((a8()|0)%10|0)|0);f=+(5-((a8()|0)%10|0)|0);n=r;l=f;r=r*r;f=f*f}f=+z(+r);e=a[i+16>>2]|0;r=+s[e+128>>3];if(!(a[46475]|0))r=r*f/+s[e+136>>3];else r=(f-+s[e+136>>3])*r/f;n=r*n;c=a[(a[t>>2]|0)+112>>2]|0;t=c+16|0;s[t>>3]=+s[t>>3]-n;l=r*l;c=c+24|0;s[c>>3]=+s[c>>3]-l;c=a[(a[A>>2]|0)+112>>2]|0;t=c+16|0;s[t>>3]=+s[t>>3]+n;c=c+24|0;s[c>>3]=+s[c>>3]+l;return}function iT(A,e,i){A=A|0;e=+e;i=i|0;var f=0.0,n=0.0,l=0.0,t=0.0,c=0,b=0,u=0,w=0,k=0.0;k=e*e;w=(i|0)==0;u=cd(A)|0;while(1){if(!u)break;b=a[u+16>>2]|0;if(!(r[b+119>>0]&2)){c=a[b+112>>2]|0;f=+s[c+16>>3];l=+s[c+24>>3];n=l*l+f*f;if(n>2]|0;t=+s[i>>3]+f;f=+s[i+8>>3]+l}else{n=e/+z(+n);i=a[b+132>>2]|0;t=+s[i>>3]+n*f;f=+s[i+8>>3]+n*l}do{if(!w){n=+z(+(f*f/+s[23251]+t*t/+s[23250]));if((a[c+8>>2]|0)==0?(a[b+212>>2]|0)==0:0){s[i>>3]=t/n;f=f/n;break}if(!(n>=1.0)){s[i>>3]=t;break}else{s[i>>3]=t*.95/n;f=f*.95/n;break}}else s[i>>3]=t}while(0);s[i+8>>3]=f}u=sd(A,u)|0}return}function rT(A,e,i,r,f){A=A|0;e=e|0;i=+i;r=+r;f=+f;var n=0.0,l=0,t=0;n=i;i=f;while(1){if(!(i==0.0))break;i=+(5-((a8()|0)%10|0)|0);r=+(5-((a8()|0)%10|0)|0);n=i;i=r*r+i*i}if(!(a[46475]|0))i=+s[23247]/i;else{f=+z(+i);i=+s[23247]/(f*i)}t=a[A+16>>2]|0;A=a[t+112>>2]|0;if(((a[A+8>>2]|0)==0?(a[t+212>>2]|0)==0:0)?(l=a[e+16>>2]|0,(a[(a[l+112>>2]|0)+8>>2]|0)==0):0)i=(a[l+212>>2]|0)==0?i*10.0:i;f=i*n;t=a[(a[e+16>>2]|0)+112>>2]|0;e=t+16|0;s[e>>3]=+s[e>>3]+f;n=i*r;t=t+24|0;s[t>>3]=+s[t>>3]+n;t=A+16|0;s[t>>3]=+s[t>>3]-f;t=A+24|0;s[t>>3]=+s[t>>3]-n;return}function fT(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0;f=a[e+8>>2]|0;n=a[e>>2]|0;r=a[e+4>>2]|0;e=f;while(1){if(!e)break;A=f;while(1){if(!A)break;if((e|0)!=(A|0))AT(a[e>>2]|0,a[A>>2]|0);A=a[A+4>>2]|0}e=a[e+4>>2]|0}l=n+-1|0;A=r+-1|0;aT(i,l,A,f);aT(i,l,r,f);e=r+1|0;aT(i,l,e,f);aT(i,n,A,f);aT(i,n,e,f);n=n+1|0;aT(i,n,A,f);aT(i,n,r,f);aT(i,n,e,f);return 0}function aT(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,n=0.0,l=0.0,t=0,c=0,b=0,u=0;A=F_(A,e,i)|0;if((r|0)!=0&(A|0)!=0){c=A+8|0;do{i=a[r>>2]|0;t=i+16|0;A=c;while(1){A=a[A>>2]|0;if(!A)break;e=a[A>>2]|0;u=a[(a[e+16>>2]|0)+132>>2]|0;b=a[(a[t>>2]|0)+132>>2]|0;f=+s[u>>3]-+s[b>>3];n=+s[u+8>>3]-+s[b+8>>3];l=n*n+f*f;if(l<+s[23246])rT(i,e,f,n,l);A=A+4|0}r=a[r+4>>2]|0}while((r|0)!=0)}return}function nT(A,e){A=A|0;e=e|0;var i=0,f=0,a=0,n=0,l=0;n=k;k=k+16|0;a=n;i=Ho(A,92507)|0;if(0){}if(!((i|0)!=0?(r[i>>0]|0)!=0:0))i=91125;f=G1(i,58)|0;do{if(!f)f=0;else{if((f|0)!=(i|0)?((r[i>>0]|0)+-48|0)>>>0>=10:0){f=0;break}l=q3(i)|0;i=f+1|0;f=(l|0)>0?l:0}}while(0);if(0){}if(!((f|0)!=0?!(lT(A,e,f)|0):0))AP(A,i)|0;k=n;return}function lT(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,b=0.0,u=0.0,w=0.0,o=0.0,h=0.0,d=0,B=0,g=0;g=k;k=k+64|0;d=g;l=g+40|0;B=gh(A)|0;t=vh(A)|0;qj(l,A);a[46842]=a[l>>2];a[46843]=a[l+4>>2];a[46844]=a[l+8>>2];if(r[187376]|0){c[46842]=+c[46842]*.013888888888888888;c[46843]=+c[46843]*.013888888888888888}f=tT(A)|0;A:do{if(!f)f=0;else{l=d;n=l+40|0;do{a[l>>2]=a[e>>2];l=l+4|0;e=e+4|0}while((l|0)<(n|0));l=d+16|0;h=+s[l>>3];w=+(t|0)*2.0;o=1.0/+(U(B+-1|0,B)|0);n=0;u=h;while(1){if(!((f|0)!=0&(n|0)<(i|0)))break A;cT(B,d);b=+s[23253]*+s[170];s[23254]=b;s[23255]=w*b*o;e=0;while(1){if((e|0)>=(a[46512]|0))break;b=+sT(e);if(b<=0.0)break;f=bT(A,b)|0;if(!f){f=0;break}else e=e+1|0}b=u+h;s[l>>3]=b;n=n+1|0;u=b}}}while(0);k=g;return f|0}function tT(A){A=A|0;var e=0,i=0,r=0,f=0;e=0;f=cd(A)|0;while(1){if(!f)break;else r=f;while(1){i=sd(A,r)|0;if(!i)break;r=i;e=(kT(f,i)|0)+e|0}f=sd(A,f)|0}return e|0}function cT(A,e){A=A|0;e=e|0;var i=0.0,r=0.0,f=0.0;r=+s[e+16>>3];s[171]=r;a[344]=a[e>>2];f=+s[e+8>>3];s[23257]=f;a[46512]=a[e+32>>2];i=+s[e+24>>3];if(i>0.0)s[170]=i;s[23253]=r*r;if(f==0.0)s[23257]=+z(+ +(A|0))*.2*r;return}function sT(A){A=A|0;var e=0;e=a[344]|0;return+(+s[23257]*+(e-A|0)/+(e|0))}function bT(A,e){A=A|0;e=+e;var i=0,f=0,n=0,l=0.0,t=0,c=0.0,b=0.0,u=0.0;i=cd(A)|0;while(1){if(!i)break;t=(a[(a[i+16>>2]|0)+112>>2]|0)+16|0;a[t>>2]=0;a[t+4>>2]=0;a[t+8>>2]=0;a[t+12>>2]=0;i=sd(A,i)|0}i=0;t=cd(A)|0;while(1){if(!t)break;else n=t;while(1){f=sd(A,n)|0;if(!f)break;n=f;i=(uT(t,f)|0)+i|0}f=Oo(A,t)|0;while(1){if(!f)break;wT(t,a[((a[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0);f=_o(A,f)|0}t=sd(A,t)|0}A:do{if(!i)i=0;else{u=e*e;n=cd(A)|0;while(1){if(!n)break A;f=a[n+16>>2]|0;if((r[f+119>>0]|0)!=3){t=a[f+112>>2]|0;c=+s[t+16>>3];l=+s[t+24>>3];b=l*l+c*c;if(b>2]|0;s[f>>3]=+s[f>>3]+c}else{b=+z(+b);f=a[f+132>>2]|0;s[f>>3]=+s[f>>3]+c*e/b;l=l*e/b}t=f+8|0;s[t>>3]=+s[t>>3]+l}n=sd(A,n)|0}}}while(0);return i|0}function uT(A,e){A=A|0;e=e|0;var i=0.0,r=0.0,f=0,n=0;n=a[(a[e+16>>2]|0)+132>>2]|0;f=a[(a[A+16>>2]|0)+132>>2]|0;i=+s[n>>3]-+s[f>>3];r=+s[n+8>>3]-+s[f+8>>3];return hT(A,e,i,r,r*r+i*i)|0}function wT(A,e){A=A|0;e=e|0;var i=0.0,r=0.0,f=0,n=0.0,l=0,t=0.0,c=0.0,b=0,u=0;if(!(kT(A,e)|0)){l=a[e+16>>2]|0;u=a[l+132>>2]|0;f=a[A+16>>2]|0;b=a[f+132>>2]|0;r=+s[u>>3]-+s[b>>3];i=+s[u+8>>3]-+s[b+8>>3];n=+z(+(i*i+r*r));t=+oT(A);t=+oT(e)+t;c=n-t;n=c*c/((+s[171]+t)*n);r=n*r;e=a[l+112>>2]|0;A=e+16|0;s[A>>3]=+s[A>>3]-r;i=n*i;e=e+24|0;s[e>>3]=+s[e>>3]-i;e=a[f+112>>2]|0;A=e+16|0;s[A>>3]=+s[A>>3]+r;e=e+24|0;s[e>>3]=+s[e>>3]+i}return}function kT(A,e){A=A|0;e=e|0;var i=0.0,f=0.0,n=0.0,l=0.0,t=0,b=0;t=a[e+16>>2]|0;b=a[t+132>>2]|0;e=a[A+16>>2]|0;A=a[e+132>>2]|0;n=+s[b>>3]-+s[A>>3];l=+s[b+8>>3]-+s[A+8>>3];l=l<0.0?-l:l;A=(r[187376]|0)==0;i=+s[e+32>>3];if(A){f=+c[46842];i=i*.5*f;f=+s[t+32>>3]*.5*f}else{f=+c[46842];i=i*.5+f;f=+s[t+32>>3]*.5+f}if(!((n<0.0?-n:n)<=f+i))e=0;else{i=+s[e+40>>3];if(A){n=+c[46843];f=i*.5*n;i=+s[t+40>>3]*.5*n}else{n=+c[46843];f=i*.5+n;i=+s[t+40>>3]*.5+n}e=l<=i+f&1}return e|0}function oT(A){A=A|0;var e=0.0,i=0.0;A=a[A+16>>2]|0;e=+s[A+32>>3];if(!(r[187376]|0)){i=e*.5*+c[46842];e=+s[A+40>>3]*.5*+c[46843]}else{i=e*.5+ +c[46842];e=+s[A+40>>3]*.5+ +c[46843]}return+ +z(+(e*e+i*i))}function hT(A,e,i,r,f){A=A|0;e=e|0;i=+i;r=+r;f=+f;var n=0,l=0;while(1){if(!(f==0.0))break;f=+(5-((a8()|0)%10|0)|0);r=+(5-((a8()|0)%10|0)|0);i=f;f=r*r+f*f}n=kT(A,e)|0;f=((n|0)==0?+s[23255]:+s[23254])/f;i=f*i;e=a[(a[e+16>>2]|0)+112>>2]|0;l=e+16|0;s[l>>3]=+s[l>>3]+i;f=f*r;e=e+24|0;s[e>>3]=+s[e>>3]+f;e=a[(a[A+16>>2]|0)+112>>2]|0;A=e+16|0;s[A>>3]=+s[A>>3]-i;e=e+24|0;s[e>>3]=+s[e>>3]-f;return n|0}function dT(A){A=A|0;zX(A,2);f[(a[A+16>>2]|0)+176>>1]=2;a[47137]=2;BT(A);return}function BT(A){A=A|0;var e=0,i=0,r=0,f=0;r=qF((gh(A)|0)<<2)|0;e=qF(((gh(A)|0)<<2)+4|0)|0;f=A+16|0;a[(a[f>>2]|0)+152>>2]=e;e=cd(A)|0;i=0;while(1){if(!e)break;RX(e);a[(a[e+16>>2]|0)+112>>2]=r+(i<<2);a[(a[(a[f>>2]|0)+152>>2]|0)+(i<<2)>>2]=e;e=sd(A,e)|0;i=i+1|0}i=cd(A)|0;while(1){if(!i)break;e=Oo(A,i)|0;while(1){if(!e)break;gT(e);e=_o(A,e)|0}i=sd(A,i)|0}return}function gT(A){A=A|0;var e=0.0;Td(A,137460,176,1)|0;VR(A)|0;e=+oR(A,a[47174]|0,1.0,0.0);s[(a[A+16>>2]|0)+128>>3]=e;return}function vT(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0;u=k;k=k+16|0;b=u+4|0;s=u;r[b>>0]=r[18596]|0;r[b+1>>0]=r[18597]|0;r[b+2>>0]=r[18598]|0;r[b+3>>0]=r[18599]|0;b=kh(91156,b,0)|0;Td(b,91164,280,1)|0;a[(a[A+16>>2]|0)+140>>2]=b;i=cd(A)|0;while(1){if(!i)break;f=i+16|0;if(!(a[a[(a[f>>2]|0)+112>>2]>>2]|0)){c=ET(b,Vh(i)|0,i)|0;a[a[(a[f>>2]|0)+112>>2]>>2]=c}i=sd(A,i)|0}f=cd(A)|0;while(1){if(!f)break;i=Oo(A,f)|0;while(1){if(!i)break;l=a[i>>2]&3;n=a[a[(a[(a[((l|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+112>>2]>>2]|0;l=a[a[(a[(a[((l|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+112>>2]>>2]|0;if((n|0)!=(l|0))Td(th(b,n,l,0,1)|0,137460,176,1)|0;i=_o(A,i)|0}f=sd(A,f)|0}c=yE(b,s,0)|0;f=0;while(1){if((f|0)>=(a[s>>2]|0))break;l=a[c+(f<<2)>>2]|0;i=cd(l)|0;while(1){if(!i)break;n=Oo(A,a[a[(a[i+16>>2]|0)+112>>2]>>2]|0)|0;while(1){if(!n)break;t=a[a[(a[(a[((a[n>>2]&3|0)==2?n:n+-48|0)+40>>2]|0)+16>>2]|0)+112>>2]>>2]|0;if((i|0)!=(t|0)){t=th(b,i,t,0,1)|0;Td(t,137460,176,1)|0;uh(l,t,1)|0}n=_o(A,n)|0}i=sd(l,i)|0}f=f+1|0}i=cd(b)|0;while(1){if(!i)break;f=Oo(b,i)|0;while(1){if(!f)break;A=qF(8)|0;a[(a[f+16>>2]|0)+120>>2]=A;f=_o(b,f)|0}i=sd(b,i)|0}a[e>>2]=a[s>>2];k=u;return c|0}function ET(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;e=gd(A,e,1)|0;Td(e,137447,304,1)|0;r=qF(40)|0;A=e+16|0;a[(a[A>>2]|0)+112>>2]=r;r=qF(a[47137]<<3)|0;A=a[A>>2]|0;a[A+132>>2]=r;r=a[i+16>>2]|0;s[A+88>>3]=+s[r+88>>3];s[A+96>>3]=+s[r+96>>3];s[A+80>>3]=+s[r+80>>3];a[a[A+112>>2]>>2]=i;return e|0}function CT(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0;l=k;k=k+48|0;e=l+32|0;r=l;if(gh(A)|0){n=vT(A,e)|0;f=a[e>>2]|0;e=a[n>>2]|0;if((f|0)==1){Au(e,A);IT(a[n>>2]|0);eP(A)|0}else{i=a[e+60>>2]|0;sC(A,2,8,r)|0;e=0;while(1){if((e|0)>=(f|0))break;t=a[n+(e<<2)>>2]|0;Au(t,A);eP(t)|0;e=e+1|0}cC(f,n,i,r)|0;e=0;while(1){if((e|0)>=(f|0))break;IT(a[n+(e<<2)>>2]|0);e=e+1|0}}L2(n)}k=l;return}function IT(A){A=A|0;var e=0,i=0,r=0;e=cd(A)|0;while(1){if(!e)break;i=a[e+16>>2]|0;r=a[i+132>>2]|0;i=a[(a[(a[a[i+112>>2]>>2]|0)+16>>2]|0)+132>>2]|0;s[i>>3]=+s[r>>3];s[i+8>>3]=+s[r+8>>3];e=sd(A,e)|0}return}function ZT(A){A=A|0;if(gh(A)|0){dT(A);CT(A);L2(a[(a[(cd(A)|0)+16>>2]|0)+112>>2]|0);SH(A);VJ(A)}return}function GT(A){A=A|0;var e=0,i=0,r=0;e=cd(A)|0;if(e|0){r=A+16|0;mT(a[(a[r>>2]|0)+140>>2]|0);while(1){if(!e)break;i=Oo(A,e)|0;while(1){if(!i)break;wX(i);i=_o(A,i)|0}bX(e);e=sd(A,e)|0}L2(a[(a[r>>2]|0)+152>>2]|0);if((Zd(A)|0)!=(A|0))_d(A,0,137483)}return}function mT(A){A=A|0;var e=0,i=0;i=cd(A)|0;while(1){if(!i)break;e=Oo(A,i)|0;while(1){if(!e)break;L2(a[(a[e+16>>2]|0)+120>>2]|0);e=_o(A,e)|0}e=i+16|0;L2(a[(a[e>>2]|0)+112>>2]|0);L2(a[(a[e>>2]|0)+132>>2]|0);i=sd(A,i)|0}Bh(A)|0;return}function QT(A){A=A|0;var e=0,i=0.0,f=0.0,n=0,l=0,t=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0;B=k;k=k+112|0;b=B+40|0;u=B+16|0;d=B+100|0;w=B;l=B+88|0;o=B+56|0;LT(A);n=(a[47137]|0)==2;e=n&1;if(gh(A)|0){h=JT()|0;yT(A,h);mj(A,u,0)|0;if(n&(a[u>>2]|0)==18){a[h+124>>2]=a[u+8>>2];s[h+144>>3]=+s[u+16>>3];qj(l,A);if(!(r[l+8>>0]|0)){f=.05555555555555555;i=.05555555555555555}else{f=+c[l+4>>2]*.013888888888888888;i=+c[l>>2]*.013888888888888888}s[w>>3]=i;s[w+8>>3]=f;e=0}else a[h+124>>2]=-1;if(0){}t=yE(A,d,0)|0;if((a[d>>2]|0)==1){a[b>>2]=a[w>>2];a[b+4>>2]=a[w+4>>2];a[b+8>>2]=a[w+8>>2];a[b+12>>2]=a[w+12>>2];WT(A,h,b);if(e|0)yj(A,u)|0;SH(A);e=0}else{sC(A,2,8,o)|0;a[o+12>>2]=1;l=(e|0)==0;n=0;while(1){e=a[d>>2]|0;if((n|0)>=(e|0))break;e=a[t+(n<<2)>>2]|0;VE(e)|0;a[b>>2]=a[w>>2];a[b+4>>2]=a[w+4>>2];a[b+8>>2]=a[w+8>>2];a[b+12>>2]=a[w+12>>2];WT(e,h,b);if(!l)yj(e,u)|0;zX(e,2);SH(e);n=n+1|0}cC(e,t,A,o)|0;e=0}while(1){if((e|0)>=(a[d>>2]|0))break;Cd(A,a[t+(e<<2)>>2]|0)|0;e=e+1|0}L2(t);pT(h)}VJ(A);k=B;return}function LT(A){A=A|0;var e=0,i=0;zX(A,2);e=kR(A,Yo(A,0,91368,0)|0,2,2)|0;i=(kR(A,Yo(A,0,91374,0)|0,e,2)|0)&65535;f[(a[(Zd(A)|0)+16>>2]|0)+176>>1]=i;if((l[(a[(Zd(A)|0)+16>>2]|0)+176>>1]|0)<10)i=f[(a[(Zd(A)|0)+16>>2]|0)+176>>1]|0;else i=10;f[(a[(Zd(A)|0)+16>>2]|0)+176>>1]=i;i=i&65535;a[47137]=i;f[(a[(Zd(A)|0)+16>>2]|0)+178>>1]=(e|0)<(i|0)?e:i;MT(A);return}function yT(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;n=k;k=k+16|0;f=n+8|0;i=n+12|0;r=e+108|0;a[i>>2]=a[r>>2];if((eH(A,2,i)|0)!=2)ao(0,91169,n)|0;a[r>>2]=a[i>>2];s[e+24>>3]=+oR(A,Yo(A,0,91202,0)|0,-1.0,0.0);s[e>>3]=-+oR(A,Yo(A,0,91204,0)|0,1.0001234,0.0);a[e+40>>2]=kR(A,Yo(A,0,91219,0)|0,2147483647,0)|0;a[e+120>>2]=YT(A,Yo(A,0,91226,0)|0)|0;a[e+132>>2]=DT(A,Yo(A,0,91236,0)|0)|0;a[e+136>>2]=0;a[e+112>>2]=(ER(Ho(A,91245)|0,0)|0)&255;a[e+128>>2]=(ER(Ho(A,91254)|0,1)|0)&255;s[e+152>>3]=+oR(A,Yo(A,0,91269,0)|0,0.0,-1797693134862315708145274.0e284);i=kR(A,Yo(A,0,91278,0)|0,0,0)|0;A=e+160|0;a[A>>2]=i;if((i|0)>4){a[f>>2]=i;ao(0,91291,f)|0;a[A>>2]=0}k=n;return}function WT(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0;h=k;k=k+48|0;f=h;u=h+32|0;t=h+28|0;n=h+24|0;o=h+20|0;w=h+16|0;a[n>>2]=0;a[o>>2]=0;a[w>>2]=0;l=e+136|0;r=a[47137]|0;if((a[l>>2]|0)==1)b=Ij(A,r,w)|0;else b=Ij(A,r,0)|0;do{if((a[e+124>>2]|0)>-1)if((a[e+160>>2]|0)>0){a[f>>2]=a[i>>2];a[f+4>>2]=a[i+4>>2];a[f+8>>2]=a[i+8>>2];a[f+12>>2]=a[i+12>>2];c=Cj(A,f,n,o)|0;break}else{a[f>>2]=a[i>>2];a[f+4>>2]=a[i+4>>2];a[f+8>>2]=a[i+8>>2];a[f+12>>2]=a[i+12>>2];c=Cj(A,f,0,0)|0;break}else c=0}while(0);r=zT(A)|0;a[u>>2]=r;switch(a[l>>2]|0){case 1:case 0:{cj(a[47137]|0,b,a[w>>2]|0,e,0,c,r,a[n>>2]|0,a[o>>2]|0,t);break}case 5:{Ej(a[47137]|0,b,r,t);break}case 4:{r=a[w>>2]|0;if(!r)r=Xb(b)|0;else r=wq(r,0)|0;a[w>>2]=r;hj(a[47137]|0,b,r,u,1,200,.001,t);break}default:{}}r=cd(A)|0;while(1){if(!r)break;i=a[47137]|0;n=a[r+16>>2]|0;e=(a[u>>2]|0)+((U(a[n+120>>2]|0,i)|0)<<3)|0;n=n+132|0;f=0;while(1){if((f|0)>=(i|0))break;s[(a[n>>2]|0)+(f<<3)>>3]=+s[e+(f<<3)>>3];f=f+1|0}r=sd(A,r)|0}L2(c);L2(a[u>>2]|0);rq(b);r=a[w>>2]|0;if(r|0)rq(r);r=a[o>>2]|0;if(r|0)L2(r);k=h;return}function zT(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0;t=a[47137]|0;t=qF(U(t<<3,gh(A)|0)|0)|0;A:do{if(Yo(A,1,102623,0)|0){f=cd(A)|0;while(1){if(!f)break A;e=a[f+16>>2]|0;e:do{if(r[e+119>>0]|0){n=a[47137]|0;l=U(n,a[e+120>>2]|0)|0;i=e+132|0;e=0;while(1){if((e|0)>=(n|0))break e;s[t+(l+e<<3)>>3]=+s[(a[i>>2]|0)+(e<<3)>>3];e=e+1|0}}}while(0);f=sd(A,f)|0}}}while(0);return t|0}function YT(A,e){A=A|0;e=e|0;do{if(e){A=Uo(A,e)|0;e=r[A>>0]|0;if((e+-48|0)>>>0<10){A=q3(A)|0;A=(A|0)<5?A:0;break}if(J1(e)|0)if(p1(A,91330)|0)if(p1(A,91339)|0)if(p1(A,135709)|0)if(!(p1(A,91350)|0))A=3;else{A=(p1(A,91361)|0)==0;A=A?4:0}else A=0;else A=1;else A=2;else A=0}else A=0}while(0);return A|0}function DT(A,e){A=A|0;e=e|0;do{if(e){A=Uo(A,e)|0;e=r[A>>0]|0;if((e+-48|0)>>>0<10){A=q3(A)|0;A=A>>>0<3?A:1;break}if(J1(e)|0)if((p1(A,135709)|0)!=0?(p1(A,137308)|0)!=0:0)if(((p1(A,99730)|0)!=0?(p1(A,107652)|0)!=0:0)?(p1(A,107657)|0)!=0:0){A=(p1(A,91325)|0)==0;A=A?2:1}else A=1;else A=0;else A=1}else A=1}while(0);return A|0}function MT(A){A=A|0;var e=0,i=0;e=cd(A)|0;while(1){if(!e)break;RX(e);e=sd(A,e)|0}i=cd(A)|0;while(1){if(!i)break;e=Oo(A,i)|0;while(1){if(!e)break;FT(e);e=_o(A,e)|0}i=sd(A,i)|0}return}function FT(A){A=A|0;Td(A,137460,176,1)|0;VR(A)|0;return}function VT(A){A=A|0;var e=0,i=0;i=cd(A)|0;while(1){if(!i)break;e=Oo(A,i)|0;while(1){if(!e)break;wX(e);e=_o(A,e)|0}bX(i);i=sd(A,i)|0}return}function JT(){var A=0,e=0;A=$F(168)|0;s[A>>3]=-1.0001234;s[A+8>>3]=1.0;a[A+16>>2]=1;s[A+24>>3]=-1.0;s[A+32>>3]=.2;a[A+40>>2]=0;a[A+44>>2]=4;a[A+48>>2]=1;a[A+52>>2]=45;a[A+56>>2]=10;s[A+64>>3]=.6;s[A+72>>3]=.001;a[A+80>>2]=500;s[A+88>>3]=.9;s[A+96>>3]=.1;a[A+104>>2]=1;a[A+108>>2]=123;e=A+112|0;a[e>>2]=0;a[e+4>>2]=0;a[e+8>>2]=0;a[e+12>>2]=0;a[A+128>>2]=1;a[A+132>>2]=3;a[A+136>>2]=0;s[A+144>>3]=-4.0;s[A+152>>3]=0.0;a[A+160>>2]=0;return A|0}function pT(A){A=A|0;L2(A);return}function NT(A){A|0;var e=0,i=0,r=0,f=0,n=0,l=0.0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0;k;k=k+176|0;e+160|0;e+152|0;e+128|0;e+112|0;e+88|0;e+64|0;e+56|0;e+40|0;e+24|0;e+16|0;e;a[15712]|0;L3(91378,27,1,r)|0;+s[A+8>>3];s[d>>3]=+s[A>>3];s[d+8>>3]=l;f3(r,91406,d)|0;a[A+108>>2]|0;a[o>>2]=a[A+16>>2];a[o+4>>2]=d;f3(r,91457,o)|0;+s[A+32>>3];s[h>>3]=+s[A+24>>3];s[h+8>>3]=l;f3(r,91484,h)|0;a[A+44>>2]|0;a[A+48>>2]|0;a[w>>2]=a[A+40>>2];a[w+4>>2]=h;a[w+8>>2]=o;f3(r,91507,w)|0;a[A+56>>2]|0;a[u>>2]=a[A+52>>2];a[u+4>>2]=w;f3(r,91558,u)|0;+s[A+72>>3];a[A+80>>2]|0;s[b>>3]=+s[A+64>>3];s[b+8>>3]=l;a[b+16>>2]=u;f3(r,91591,b)|0;+s[A+96>>3];a[A+104>>2]|0;s[t>>3]=+s[A+88>>3];s[t+8>>3]=l;a[t+16>>2]=b;f3(r,91649,t)|0;a[A+116>>2]|0;+s[A+152>>3];a[c>>2]=a[A+112>>2];a[c+4>>2]=t;s[c+8>>3]=l;f3(r,91695,c)|0;a[A+124>>2]|0;a[A+128>>2]|0;+s[A+144>>3];a[n>>2]=a[17804+(a[A+120>>2]<<2)>>2];a[n+4>>2]=c;a[n+8>>2]=t;s[n+16>>3]=l;f3(r,91748,n)|0;a[17848+(a[A+136>>2]<<2)>>2]|0;a[f>>2]=a[17832+(a[A+132>>2]<<2)>>2];a[f+4>>2]=n;f3(r,91813,f)|0;a[i>>2]=a[A+160>>2];f3(r,91843,i)|0;k=e;return}function RT(A){A=A|0;L2(A);return}function XT(A){A=A|0;var e=0;e=$F(184)|0;a[e>>2]=A;a[e+176>>2]=0;return e|0}function HT(A,e){A=A|0;e=+e;var i=0,r=0,f=0;r=a[A>>2]|0;s[A+8+(r<<3)>>3]=e;f=A+176|0;A:do{switch(a[f>>2]|0){case 0:{i=a[A>>2]|0;if((i|0)==20){a[f>>2]=-1;i=19}else{a[f>>2]=1;i=(i|0)>19?20:i+1|0}a[A>>2]=i;break}case 1:{i=a[A>>2]|0;if((i|0)<20?+s[A+8+(r+-1<<3)>>3]>e:0){a[A>>2]=i+1;break A}else{a[A>>2]=i+-1;a[f>>2]=-1;break A}}default:{i=a[A>>2]|0;if((i|0)>0?+s[A+8+(r+1<<3)>>3]>e:0){a[A>>2]=i+-1;break A}else{a[A>>2]=i+1;a[f>>2]=1;break A}}}}while(0);return}function UT(A){A=A|0;return a[A>>2]|0}function xT(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,k=0,o=0,h=0.0;k=a[A+20>>2]|0;o=a[A+24>>2]|0;u=a[A>>2]|0;w=a[k+(u<<2)>>2]|0;if(!w)r=1.0;else{A=0;r=0.0;A:while(1){if((A|0)>=(u|0))break;t=A+1|0;c=a[k+(t<<2)>>2]|0;b=U(A,e)|0;l=a[k+(A<<2)>>2]|0;while(1){if((l|0)>=(c|0)){A=t;continue A}n=o+(l<<2)|0;A=0;f=0.0;while(1){if((A|0)>=(e|0))break;h=+s[i+(A+b<<3)>>3]-+s[i+((U(a[n>>2]|0,e)|0)<<3)>>3];A=A+1|0;f=h*h+f}l=l+1|0;r=+z(+f)+r}}r=r/+(w|0)}return+r}function TT(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=e+10|0;if((a[i>>2]|0)<=(e|0)){a[i>>2]=r;a[A>>2]=eV(a[A>>2]|0,r<<3)|0}return}function jT(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=e+10|0;if((a[i>>2]|0)<=(e|0)){a[i>>2]=r;a[A>>2]=eV(a[A>>2]|0,r<<2)|0}return}function PT(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,a=0.0,n=0.0,l=0,t=0,c=0;c=k;k=k+16|0;t=c;l=U(r,e)|0;e=U(i,e)|0;r=0;while(1){if((r|0)==2)break;s[t+(r<<3)>>3]=+s[A+(r+l<<3)>>3]-+s[A+(r+e<<3)>>3];r=r+1|0}n=+s[t>>3];a=+s[t+8>>3];do{if(!((n>=0.0?n:-n)<=(a>=0.0?a:-a)*1.0e-05)){f=+p(+(a/n));if(n>0.0){if(!(a<0.0))break;f=f+6.283185307179586;break}else{if(!(n<0.0))break;f=f+3.141592653589793;break}}else f=a>0.0?1.5707963267948966:4.71238898038469}while(0);k=c;return+f}function ST(A,e){A=A|0;e=e|0;var i=0.0,r=0.0;r=+s[A>>3];i=+s[e>>3];return(r>i?1:(r>31)|0}function OT(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0.0,c=0,b=0,u=0.0,w=0,o=0.0,h=0.0,d=0,B=0,g=0,v=0,E=0.0,C=0,I=0,Z=0,G=0.0,m=0.0,Q=0,L=0,y=0,W=0,D=0,M=0,F=0,V=0,J=0,p=0.0,N=0,R=0,X=0,H=0.0,x=0,T=0.0,j=0,P=0,S=0,O=0,K=0,_=0,q=0,$=0,AA=0.0;q=k;k=k+80|0;_=q+32|0;K=q;o=+s[i>>3];b=i+24|0;u=+s[b>>3];w=i+32|0;t=+s[w>>3];H=+s[i+72>>3];x=a[i+80>>2]|0;T=+s[i+88>>3];h=+s[i+96>>3];j=a[i+104>>2]|0;P=i+56|0;l=a[P>>2]|0;do{if(!((e|0)==0|(x|0)<1)?(S=a[e+4>>2]|0,!((A|0)<1|(S|0)<1)):0){X=a[e>>2]|0;O=XT(l)|0;a[n>>2]=0;if((X|0)!=(S|0)){a[n>>2]=-100;RT(O);a[P>>2]=l;break}N=tq(e,1)|0;R=a[N+20>>2]|0;X=a[N+24>>2]|0;A:do{if(a[i+16>>2]|0){f8(a[i+108>>2]|0);c=U(S,A)|0;l=0;while(1){if((l|0)>=(c|0))break A;s[f+(l<<3)>>3]=+Ub();l=l+1|0}}}while(0);if(u<0.0){u=+xT(N,A,f);s[b>>3]=u}if(t<0.0){s[w>>3]=.2;t=.2}if(o>=0.0){s[i>>3]=-1.0;o=-1.0}p=+Y(+u,+(1.0-o));m=+Y(+t,+((2.0-o)*.3333333333333333))/u;Q=U(S,A<<3)|0;L=$F(Q)|0;y=$F(Q)|0;W=i+116|0;D=i+64|0;M=a[15712]|0;F=N+8|0;V=K+8|0;J=K+16|0;Z=0;G=0.0;E=h;while(1){W6(L|0,f|0,Q|0)|0;C=UT(O)|0;I=S_(A,S,C,f,(a[W>>2]|0)==0?0:r)|0;U_(I,y,f,+s[D>>3],o,p,K,n);b=0;A:while(1){if((b|0)>=(S|0)){h=0.0;c=0;break}w=U(b,A)|0;d=y+(w<<3)|0;B=b+1|0;g=R+(B<<2)|0;c=a[R+(b<<2)>>2]|0;while(1){if((c|0)>=(a[g>>2]|0)){b=B;continue A}v=X+(c<<2)|0;l=a[v>>2]|0;e:do{if((l|0)!=(b|0)){t=+_b(f,A,b,l)*m;l=0;while(1){if((l|0)>=(A|0))break e;h=t*(+s[f+(l+w<<3)>>3]-+s[f+((U(a[v>>2]|0,A)|0)+l<<3)>>3]);$=d+(l<<3)|0;s[$>>3]=+s[$>>3]-h;l=l+1|0}}}while(0);c=c+1|0}}while(1){if((c|0)>=(S|0))break;b=U(c,A)|0;w=y+(b<<3)|0;t=0.0;l=0;while(1){if((l|0)>=(A|0))break;AA=+s[w+(l<<3)>>3];t=AA*AA+t;l=l+1|0}t=+z(+t);h=t+h;A:do{if(t>0.0){t=1.0/t;l=0;while(1){if((l|0)>=(A|0)){l=0;break A}$=w+(l<<3)|0;s[$>>3]=+s[$>>3]*t;l=l+1|0}}else l=0}while(0);while(1){if((l|0)>=(A|0))break;$=f+(l+b<<3)|0;s[$>>3]=+s[$>>3]+ +s[w+(l<<3)>>3]*E;l=l+1|0}c=c+1|0}Z=Z+1|0;if(!I){if(0){}}else{eq(I);HT(O,+s[V>>3]*.85+ +s[K>>3]+ +s[J>>3]*3.3)}E=+KT(j,E,h,G,T);if(!((Z|0)<(x|0)&E>H))break;else G=h}if(a[i+112>>2]|0)_T(A,N,f);RT(O);a[P>>2]=C;L2(L);if((N|0)!=(e|0))rq(N);L2(y)}}while(0);k=q;return}function KT(A,e,i,r,f){A=A|0;e=+e;i=+i;r=+r;f=+f;do{if(A){if(i>=r){e=f*e;break}if(!(r*.95>2]|0;L=a[e+20>>2]|0;g=a[e+24>>2]|0;a[E>>2]=10;a[m>>2]=10;v=$F(Q<<2)|0;f=$F(80)|0;a[Z>>2]=f;r=$F(40)|0;a[G>>2]=r;e=0;while(1){if((e|0)>=(Q|0)){u=0;d=f;c=r;w=r;b=f;break}a[v+(e<<2)>>2]=0;e=e+1|0}while(1){if((u|0)>=(Q|0))break;e=a[L+(u<<2)>>2]|0;A:do{if((((a[L+(u+1<<2)>>2]|0)-e|0)==1?(a[v+(u<<2)>>2]|0)==0:0)?(C=a[g+(e<<2)>>2]|0,I=v+(C<<2)|0,(a[I>>2]|0)==0):0){a[I>>2]=1;h=L+(C+1<<2)|0;u=0;B=0;n=0.0;o=a[L+(C<<2)>>2]|0;c=w;e=d;while(1){if((o|0)>=(a[h>>2]|0))break;r=g+(o<<2)|0;f=a[r>>2]|0;if(((a[L+(f+1<<2)>>2]|0)-(a[L+(f<<2)>>2]|0)|0)==1){a[v+(f<<2)>>2]=1;jT(G,B,E);n=+_b(i,A,C,a[r>>2]|0)+n;c=a[G>>2]|0;a[c+(B<<2)>>2]=a[r>>2];r=u;f=B+1|0}else{TT(Z,u,m);t=+PT(i,A,C,a[r>>2]|0);e=a[Z>>2]|0;s[e+(u<<3)>>3]=t;r=u+1|0;f=B;b=e}u=r;B=f;o=o+1|0}t=n/+(B|0);if((u|0)>0){qT(u,b);e=b}n=(B|0)>1?6.283185307179586/+(B+-1|0):0.0;r=0;l=0.0;while(1){if((r|0)>=(B|0)){w=c;f=c;break A}$T(i,A,t,l,C,a[c+(r<<2)>>2]|0);r=r+1|0;l=l+n}}else{r=u;f=c;e=d}}while(0);u=r+1|0;d=e;c=f}L2(v);L2(d);L2(c);k=y;return}function qT(A,e){A=A|0;e=e|0;K4(e,A,8,68);return}function $T(A,e,i,r,f,a){A=A|0;e=e|0;i=+i;r=+r;f=f|0;a=a|0;var n=0.0;n=+D(+r)*i;f=U(f,e)|0;a=U(a,e)|0;s[A+(a<<3)>>3]=n+ +s[A+(f<<3)>>3];r=+M(+r)*i;s[A+(a+1<<3)>>3]=r+ +s[A+(f+1<<3)>>3];return}function Aj(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0.0,b=0.0,u=0,w=0,k=0.0,o=0,h=0,d=0.0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0.0,m=0,Q=0.0,L=0.0,y=0,W=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0.0,X=0,H=0.0,x=0,T=0,j=0,P=0,S=0.0;k=+s[i>>3];u=i+24|0;b=+s[u>>3];w=i+32|0;c=+s[w>>3];R=+s[i+72>>3];X=a[i+80>>2]|0;H=+s[i+88>>3];d=+s[i+96>>3];x=a[i+104>>2]|0;l=a[i+56>>2]|0;L3(92198,32,1,a[15712]|0)|0;if(!((e|0)==0|(X|0)<1)?(T=a[e>>2]|0,t=a[e+4>>2]|0,!((A|0)<1|(t|0)<1)):0){o=A<<3;j=$F(U(o,t)|0)|0;if((t|0)<(a[i+52>>2]|0)){M=0;F=0;V=0;J=0;p=0;N=0}else{XT(l)|0;J=$F(A*80|0)|0;p=$F(80)|0;N=$F(80)|0;M=N;F=p;V=J}a[n>>2]=0;if((T|0)==(t|0)){y=tq(e,1)|0;W=a[y+20>>2]|0;D=a[y+24>>2]|0;A:do{if(a[i+16>>2]|0){f8(a[i+108>>2]|0);t=U(T,A)|0;l=0;while(1){if((l|0)>=(t|0))break A;s[f+(l<<3)>>3]=+Ub();l=l+1|0}}}while(0);if(b<0.0){b=+xT(y,A,f);s[u>>3]=b}if(c<0.0){s[w>>3]=.2;c=.2}if(k>=0.0){s[i>>3]=-1.0;k=-1.0}Q=1.0-k;L=+Y(+b,+Q);G=+Y(+c,+((2.0-k)*.3333333333333333))/b;m=$F(o)|0;v=U(T,o)|0;E=$F(v)|0;C=U(T,A)|0;I=i+116|0;Z=(r|0)!=0;g=k==-1.0;B=0;k=0.0;while(1){l=0;while(1){if((l|0)>=(C|0))break;s[j+(l<<3)>>3]=0.0;l=l+1|0}W6(E|0,f|0,v|0)|0;o=0;while(1){if((o|0)<(T|0))l=0;else{w=0;break}while(1){if((l|0)>=(A|0))break;s[m+(l<<3)>>3]=0.0;l=l+1|0}w=U(o,A)|0;A:do{if(Z&(a[I>>2]|0)!=0){l=0;while(1){if((l|0)==(T|0)){l=0;break A}e:do{if((l|0)!=(o|0)){b=+Kb(f,A,o,l);n=r+(l<<3)|0;u=U(l,A)|0;c=+Y(+b,+Q);c=1.0/(g?b*b:c);t=0;while(1){if((t|0)>=(A|0))break e;h=m+(t<<3)|0;s[h>>3]=+s[n>>3]*L*(+s[f+(t+w<<3)>>3]-+s[f+(t+u<<3)>>3])*c+ +s[h>>3];t=t+1|0}}}while(0);l=l+1|0}}else{l=0;while(1){if((l|0)==(T|0)){l=0;break A}e:do{if((l|0)!=(o|0)){b=+Kb(f,A,o,l);n=U(l,A)|0;c=+Y(+b,+Q);c=1.0/(g?b*b:c);t=0;while(1){if((t|0)>=(A|0))break e;h=m+(t<<3)|0;s[h>>3]=(+s[f+(t+w<<3)>>3]-+s[f+(t+n<<3)>>3])*L*c+ +s[h>>3];t=t+1|0}}}while(0);l=l+1|0}}}while(0);while(1){if((l|0)>=(A|0))break;h=j+(l+w<<3)|0;s[h>>3]=+s[h>>3]+ +s[m+(l<<3)>>3];l=l+1|0}o=o+1|0}A:while(1){if((w|0)<(T|0))l=0;else{b=0.0;t=0;break}while(1){if((l|0)>=(A|0))break;s[m+(l<<3)>>3]=0.0;l=l+1|0}o=w+1|0;n=W+(o<<2)|0;h=U(w,A)|0;t=a[W+(w<<2)>>2]|0;while(1){if((t|0)>=(a[n>>2]|0)){l=0;break}u=D+(t<<2)|0;l=a[u>>2]|0;e:do{if((l|0)!=(w|0)){c=+_b(f,A,w,l)*G;l=0;while(1){if((l|0)>=(A|0))break e;b=c*(+s[f+(l+h<<3)>>3]-+s[f+((U(a[u>>2]|0,A)|0)+l<<3)>>3]);P=m+(l<<3)|0;s[P>>3]=+s[P>>3]-b;l=l+1|0}}}while(0);t=t+1|0}while(1){if((l|0)>=(A|0)){w=o;continue A}P=j+(l+h<<3)|0;s[P>>3]=+s[P>>3]+ +s[m+(l<<3)>>3];l=l+1|0}}while(1){if((t|0)>=(T|0))break;n=U(t,A)|0;l=0;while(1){if((l|0)>=(A|0)){c=0.0;l=0;break}s[m+(l<<3)>>3]=+s[j+(l+n<<3)>>3];l=l+1|0}while(1){if((l|0)>=(A|0))break;S=+s[m+(l<<3)>>3];c=S*S+c;l=l+1|0}c=+z(+c);b=c+b;A:do{if(c>0.0){c=1.0/c;l=0;while(1){if((l|0)>=(A|0)){l=0;break A}P=m+(l<<3)|0;s[P>>3]=+s[P>>3]*c;l=l+1|0}}else l=0}while(0);while(1){if((l|0)>=(A|0))break;P=f+(l+n<<3)|0;s[P>>3]=+s[P>>3]+ +s[m+(l<<3)>>3]*d;l=l+1|0}t=t+1|0}B=B+1|0;d=+KT(x,d,b,k,H);if(!((B|0)<(X|0)&d>R))break;else k=b}if(a[i+112>>2]|0)_T(A,y,f);L2(E);if((y|0)!=(e|0))rq(y);L2(m)}else a[n>>2]=-100;if(V|0)L2(J);if(F|0)L2(p);if(M|0)L2(N);L2(j)}return}function ej(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0.0,d=0.0,B=0.0,g=0.0,v=0.0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0.0,y=0,W=0,D=0.0,M=0.0,F=0,V=0,J=0,p=0,N=0.0,R=0.0,X=0,H=0,x=0,T=0,j=0,P=0.0,S=0,O=0.0,K=0,_=0,q=0,$=0,AA=0,eA=0,iA=0,rA=0,fA=0,aA=0,nA=0,lA=0.0,tA=0;nA=k;k=k+32|0;q=nA+24|0;$=nA+20|0;rA=nA+16|0;fA=nA+12|0;aA=nA+8|0;j=nA;B=+s[i>>3];c=i+24|0;d=+s[c>>3];b=i+32|0;h=+s[b>>3];P=+s[i+72>>3];S=a[i+80>>2]|0;O=+s[i+88>>3];g=+s[i+96>>3];K=a[i+104>>2]|0;a[q>>2]=0;a[$>>2]=10;a[rA>>2]=0;a[fA>>2]=0;a[aA>>2]=0;s[j>>3]=0.0;iA=i+56|0;u=a[iA>>2]|0;if(!((e|0)==0|(S|0)<1)?(_=a[e>>2]|0,l=a[e+4>>2]|0,!((A|0)<1|(l|0)<1)):0){if((l|0)<(a[i+52>>2]|0)){eA=0;AA=0}else{eA=XT(u)|0;a[rA>>2]=$F(A*80|0)|0;a[fA>>2]=$F(80)|0;a[aA>>2]=$F(80)|0;AA=1}a[n>>2]=0;A:do{if((_|0)==(l|0)){w=tq(e,1)|0;X=a[w+20>>2]|0;H=a[w+24>>2]|0;e:do{if(a[i+16>>2]|0){f8(a[i+108>>2]|0);t=U(_,A)|0;l=0;while(1){if((l|0)>=(t|0))break e;s[f+(l<<3)>>3]=+Ub();l=l+1|0}}}while(0);if(d<0.0){d=+xT(w,A,f);s[c>>3]=d}if(h<0.0){s[b>>3]=.2;h=.2}if(B>=0.0){s[i>>3]=-1.0;B=-1.0}N=1.0-B;R=+Y(+d,+N);M=+Y(+h,+((2.0-B)*.3333333333333333))/d;F=A<<3;x=$F(F)|0;F=U(_,F)|0;T=$F(F)|0;V=(AA|0)!=0;J=i+116|0;p=i+64|0;y=B==-1.0;W=(r|0)!=0;D=1.0/+(_|0);l=0;Q=0;L=0.0;while(1){Q=Q+1|0;W6(T|0,f|0,F|0)|0;if(V){l=UT(eA)|0;u=l;l=S_(A,_,l,f,(a[J>>2]|0)==0?0:r)|0}v=0.0;B=0.0;E=0;d=0.0;e:while(1){if((E|0)<(_|0))t=0;else break;while(1){if((t|0)>=(A|0))break;s[x+(t<<3)>>3]=0.0;t=t+1|0}G=E+1|0;b=X+(G<<2)|0;m=U(E,A)|0;c=a[X+(E<<2)>>2]|0;while(1){if((c|0)>=(a[b>>2]|0))break;o=H+(c<<2)|0;t=a[o>>2]|0;i:do{if((t|0)!=(E|0)){h=+_b(f,A,E,t)*M;t=0;while(1){if((t|0)>=(A|0))break i;lA=h*(+s[f+(t+m<<3)>>3]-+s[f+((U(a[o>>2]|0,A)|0)+t<<3)>>3]);Z=x+(t<<3)|0;s[Z>>3]=+s[Z>>3]-lA;t=t+1|0}}}while(0);c=c+1|0}i:do{if(!V)if(W&(a[J>>2]|0)!=0){t=0;while(1){if((t|0)==(_|0))break i;r:do{if((t|0)!=(E|0)){lA=+Kb(f,A,E,t);b=r+(t<<3)|0;o=U(t,A)|0;h=+Y(+lA,+N);h=1.0/(y?lA*lA:h);c=0;while(1){if((c|0)>=(A|0))break r;Z=x+(c<<3)|0;s[Z>>3]=+s[b>>3]*R*(+s[f+(c+m<<3)>>3]-+s[f+(c+o<<3)>>3])*h+ +s[Z>>3];c=c+1|0}}}while(0);t=t+1|0}}else{t=0;while(1){if((t|0)==(_|0))break i;r:do{if((t|0)!=(E|0)){lA=+Kb(f,A,E,t);b=U(t,A)|0;h=+Y(+lA,+N);h=1.0/(y?lA*lA:h);c=0;while(1){if((c|0)>=(A|0))break r;Z=x+(c<<3)|0;s[Z>>3]=(+s[f+(c+m<<3)>>3]-+s[f+(c+b<<3)>>3])*R*h+ +s[Z>>3];c=c+1|0}}}while(0);t=t+1|0}}else{H_(l,+s[p>>3],f+(m<<3)|0,E,q,$,rA,fA,aA,j,n);v=+s[j>>3]+v;Z=a[q>>2]|0;B=B+ +(Z|0);if(a[n>>2]|0){b=x;c=T;l=x;t=T;o=67;break A}b=a[aA>>2]|0;o=a[fA>>2]|0;E=a[rA>>2]|0;t=0;while(1){if((t|0)>=(Z|0))break i;lA=+s[b+(t<<3)>>3];lA=lA>1.0e-15?lA:1.0e-15;C=o+(t<<3)|0;I=U(t,A)|0;h=+Y(+lA,+N);h=1.0/(y?lA*lA:h);c=0;while(1){if((c|0)>=(A|0))break;tA=x+(c<<3)|0;s[tA>>3]=+s[C>>3]*R*(+s[f+(c+m<<3)>>3]-+s[E+(c+I<<3)>>3])*h+ +s[tA>>3];c=c+1|0}t=t+1|0}}}while(0);h=0.0;t=0;while(1){if((t|0)>=(A|0))break;lA=+s[x+(t<<3)>>3];h=lA*lA+h;t=t+1|0}h=+z(+h);d=h+d;i:do{if(h>0.0){h=1.0/h;t=0;while(1){if((t|0)>=(A|0)){t=0;break i}tA=x+(t<<3)|0;s[tA>>3]=+s[tA>>3]*h;t=t+1|0}}else t=0}while(0);while(1){if((t|0)>=(A|0)){E=G;continue e}tA=f+(t+m<<3)|0;s[tA>>3]=+s[tA>>3]+ +s[x+(t<<3)>>3]*g;t=t+1|0}}if(l|0){eq(l);HT(eA,B*D*5.0+v*D)}g=+KT(K,g,d,L,O);if(!((Q|0)<(S|0)&g>P))break;else L=d}if(!(a[i+112>>2]|0)){b=x;c=T;t=T;l=x;o=66}else{_T(A,w,f);b=x;c=T;t=T;l=x;o=66}}else{a[n>>2]=-100;w=e;b=0;c=0;t=0;l=0;o=66}}while(0);if((o|0)==66)if(AA)o=67;if((o|0)==67){RT(eA);a[iA>>2]=u}if(c|0)L2(t);if((w|0)!=(e|0))rq(w);if(b|0)L2(l);l=a[rA>>2]|0;if(l|0)L2(l);l=a[fA>>2]|0;if(l|0)L2(l);l=a[aA>>2]|0;if(l|0)L2(l)}k=nA;return}function ij(A,e,i,r,f,n,l,t){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=+l;t=t|0;var c=0,b=0,u=0,w=0,o=0.0,h=0,d=0.0,B=0,g=0.0,v=0.0,E=0.0,C=0,I=0,Z=0.0,G=0,m=0,Q=0.0,L=0,y=0.0,W=0.0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0,x=0,T=0,j=0,P=0,S=0,O=0,K=0.0,_=0,q=0.0,$=0,AA=0,eA=0,iA=0,rA=0,fA=0,aA=0,nA=0,lA=0.0,tA=0;nA=k;k=k+48|0;w=nA+8|0;eA=nA+40|0;iA=nA+36|0;S=nA+32|0;fA=nA+28|0;aA=nA+24|0;O=nA;o=+s[r>>3];h=r+32|0;d=+s[h>>3];K=+s[r+72>>3];_=a[r+80>>2]|0;q=+s[r+88>>3];g=+s[r+96>>3];$=a[r+104>>2]|0;a[eA>>2]=0;a[iA>>2]=10;a[S>>2]=0;a[fA>>2]=0;a[aA>>2]=0;s[O>>3]=0.0;if(!((e|0)==0|(_|0)<1)?(AA=a[e>>2]|0,u=a[e+4>>2]|0,!((A|0)<1|(u|0)<1)):0){if((a[r+132>>2]|0)!=0?(u|0)>=(a[r+52>>2]|0):0){b=$F(A*80|0)|0;a[S>>2]=b;a[fA>>2]=$F(80)|0;a[aA>>2]=$F(80)|0;B=1;c=b}else{B=0;c=0;b=0}a[t>>2]=0;if((AA|0)==(u|0)){P=tq(e,1)|0;if(!i){j=0;c=P}else{j=a[i+28>>2]|0;c=i}T=a[c+24>>2]|0;x=a[c+20>>2]|0;if(l<0.0){W=+rj(AA,x,j);y=+(a[x+(AA<<2)>>2]|0);Q=+(AA|0);l=y/(Q*Q-y)*l/+Y(+W,+(o+1.0));H=a[15712]|0;s[w>>3]=W;s[w+8>>3]=l;f3(H,92231,w)|0}A:do{if(a[r+16>>2]|0){L3(92253,24,1,a[15712]|0)|0;f8(a[r+108>>2]|0);b=U(AA,A)|0;c=0;while(1){if((c|0)>=(b|0))break A;s[n+(c<<3)>>3]=+Ub();c=c+1|0}}}while(0);fj(AA,A,n,x,T,j);if(d<0.0)s[h>>3]=.2;if(o>=0.0){s[r>>3]=-1.0;o=-1.0}X=A<<3;R=$F(X)|0;X=U(AA,X)|0;H=$F(X)|0;M=(B|0)!=0;F=r+116|0;V=(j|0)==0;J=r+8|0;p=(f|0)!=0;N=o==-1.0;W=1.0-o;D=r+64|0;c=0;L=0;y=0.0;o=1.0;Q=g;A:while(1){L=L+1|0;W6(H|0,n|0,X|0)|0;if(M)c=S_(A,AA,10,n,(a[F>>2]|0)==0?0:f)|0;B=0;g=0.0;e:while(1){if((B|0)<(AA|0))b=0;else break;while(1){if((b|0)>=(A|0))break;s[R+(b<<3)>>3]=0.0;b=b+1|0}m=B+1|0;h=x+(m<<2)|0;G=U(B,A)|0;w=a[x+(B<<2)>>2]|0;while(1){if((w|0)>=(a[h>>2]|0))break;i=T+(w<<2)|0;b=a[i>>2]|0;i:do{if((b|0)!=(B|0)){Z=+Kb(n,A,B,b);if(!V)o=+s[j+(w<<3)>>3];d=+s[J>>3];r:do{if(!(d==2.0))if(d==1.0){d=(Z-o)*(1.0/(o*o));v=1.0/Z;b=0;while(1){if((b|0)>=(A|0))break r;E=d*(+s[n+(b+G<<3)>>3]-+s[n+((U(a[i>>2]|0,A)|0)+b<<3)>>3])*v;I=R+(b<<3)|0;s[I>>3]=+s[I>>3]-E;b=b+1|0}}else{d=1.0/+Y(+o,+(d+1.0));v=Z-o;E=1.0/Z;b=0;while(1){if((b|0)>=(A|0))break r;lA=+s[n+(b+G<<3)>>3]-+s[n+((U(a[i>>2]|0,A)|0)+b<<3)>>3];lA=d*lA*+Y(+v,+ +s[J>>3])*E;I=R+(b<<3)|0;s[I>>3]=+s[I>>3]-lA;b=b+1|0}}else{d=Z-o;d=d*d*(1.0/(o*o*o));v=1.0/Z;b=0;while(1){if((b|0)>=(A|0))break r;lA=d*(+s[n+(b+G<<3)>>3]-+s[n+((U(a[i>>2]|0,A)|0)+b<<3)>>3])*v;I=R+(b<<3)|0;s[I>>3]=+s[I>>3]-lA;b=b+1|0}}}while(0);if(p&(a[F>>2]|0)!=0){u=f+(w<<3)|0;d=+Y(+Z,+W);d=1.0/(N?Z*Z:d);b=0;while(1){if((b|0)>=(A|0))break i;lA=+s[u>>3]*l*(+s[n+(b+G<<3)>>3]-+s[n+((U(a[i>>2]|0,A)|0)+b<<3)>>3])*d;I=R+(b<<3)|0;s[I>>3]=+s[I>>3]-lA;b=b+1|0}}else{d=+Y(+Z,+W);d=1.0/(N?Z*Z:d);b=0;while(1){if((b|0)>=(A|0))break i;lA=(+s[n+(b+G<<3)>>3]-+s[n+((U(a[i>>2]|0,A)|0)+b<<3)>>3])*l*d;I=R+(b<<3)|0;s[I>>3]=+s[I>>3]-lA;b=b+1|0}}}}while(0);w=w+1|0}i:do{if(!M)if(p&(a[F>>2]|0)!=0){b=0;while(1){if((b|0)==(AA|0)){d=0.0;b=0;break i}r:do{if((b|0)!=(B|0)){lA=+Kb(n,A,B,b);i=f+(b<<3)|0;w=U(b,A)|0;d=+Y(+lA,+W);d=1.0/(N?lA*lA:d);u=0;while(1){if((u|0)>=(A|0))break r;I=R+(u<<3)|0;s[I>>3]=+s[i>>3]*l*(+s[n+(u+G<<3)>>3]-+s[n+(u+w<<3)>>3])*d+ +s[I>>3];u=u+1|0}}}while(0);b=b+1|0}}else{b=0;while(1){if((b|0)==(AA|0)){d=0.0;b=0;break i}r:do{if((b|0)!=(B|0)){lA=+Kb(n,A,B,b);i=U(b,A)|0;d=+Y(+lA,+W);d=1.0/(N?lA*lA:d);u=0;while(1){if((u|0)>=(A|0))break r;I=R+(u<<3)|0;s[I>>3]=(+s[n+(u+G<<3)>>3]-+s[n+(u+i<<3)>>3])*l*d+ +s[I>>3];u=u+1|0}}}while(0);b=b+1|0}}else{H_(c,+s[D>>3],n+(G<<3)|0,B,eA,iA,S,fA,aA,O,t);i=a[eA>>2]|0;if(a[t>>2]|0)break A;w=a[aA>>2]|0;h=a[fA>>2]|0;B=a[S>>2]|0;b=0;while(1){if((b|0)>=(i|0)){d=0.0;b=0;break i}lA=+s[w+(b<<3)>>3];lA=lA>1.0e-15?lA:1.0e-15;C=h+(b<<3)|0;I=U(b,A)|0;d=+Y(+lA,+W);d=1.0/(N?lA*lA:d);u=0;while(1){if((u|0)>=(A|0))break;tA=R+(u<<3)|0;s[tA>>3]=+s[C>>3]*l*(+s[n+(u+G<<3)>>3]-+s[B+(u+I<<3)>>3])*d+ +s[tA>>3];u=u+1|0}b=b+1|0}}}while(0);while(1){if((b|0)>=(A|0))break;lA=+s[R+(b<<3)>>3];d=lA*lA+d;b=b+1|0}d=+z(+d);g=d+g;i:do{if(d>0.0){d=1.0/d;b=0;while(1){if((b|0)>=(A|0)){b=0;break i}tA=R+(b<<3)|0;s[tA>>3]=+s[tA>>3]*d;b=b+1|0}}else b=0}while(0);while(1){if((b|0)>=(A|0)){B=m;continue e}tA=n+(b+G<<3)|0;s[tA>>3]=+s[tA>>3]+ +s[R+(b<<3)>>3]*Q;b=b+1|0}}if(c|0)eq(c);Q=+KT($,Q,g,y,q);if(!((L|0)<(_|0)&Q>K)){rA=83;break}else y=g}if((rA|0)==83?a[r+112>>2]|0:0)_T(A,P,n);L2(H);if((P|0)!=(e|0))rq(P);L2(R);c=a[S>>2]|0;b=c}else a[t>>2]=-100;if(b|0)L2(c);c=a[fA>>2]|0;if(c|0)L2(c);c=a[aA>>2]|0;if(c|0)L2(c)}k=nA;return}function rj(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0,n=0,l=0,t=0.0;if(!i)r=1.0;else{f=0;r=0.0;A:while(1){if((f|0)>=(A|0))break;n=f+1|0;l=a[e+(n<<2)>>2]|0;f=a[e+(f<<2)>>2]|0;while(1){if((f|0)>=(l|0)){f=n;continue A}t=+s[i+(f<<3)>>3]+r;f=f+1|0;r=t}}r=r/+(a[e+(A<<2)>>2]|0)}return+r}function fj(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0.0,b=0.0,u=0.0,w=0.0,o=0.0,h=0,d=0,B=0,g=0,v=0,E=0,C=0.0;E=k;k=k+16|0;v=E;g=(n|0)==0;c=0.0;b=0.0;u=1.0;t=0;A:while(1){if((t|0)>=(A|0))break;d=t+1|0;B=r+(d<<2)|0;h=a[r+(t<<2)>>2]|0;while(1){if((h|0)>=(a[B>>2]|0)){t=d;continue A}l=a[f+(h<<2)>>2]|0;e:do{if((l|0)!=(t|0)){w=+Kb(i,e,t,l);if(!g)u=+s[n+(h<<3)>>3];C=1.0/(u*u);o=u*w*C;w=w*w*C;l=0;while(1){if((l|0)>=(e|0))break e;l=l+1|0;c=c+w;b=b+o}}}while(0);h=h+1|0}}c=b/c;t=U(e,A)|0;l=0;while(1){if((l|0)>=(t|0))break;e=i+(l<<3)|0;s[e>>3]=+s[e>>3]*c;l=l+1|0}i=a[15712]|0;s[v>>3]=c;f3(i,92278,v)|0;k=E;return}function aj(A,e,i,r,f,n,l){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;var t=0,c=0,b=0,u=0.0,w=0.0,o=0,h=0,d=0.0,B=0,g=0,v=0,E=0.0,C=0,I=0,Z=0,G=0.0,m=0,Q=0,L=0,y=0,W=0.0,D=0,M=0.0,F=0,V=0,J=0,p=0.0,N=0.0,R=0,X=0,H=0,x=0,T=0,j=0,P=0,S=0.0,O=0,K=0.0,_=0,q=0,$=0,AA=0,eA=0,iA=0,rA=0,fA=0,aA=0,nA=0.0,lA=0.0,tA=0;aA=k;k=k+32|0;$=aA+24|0;AA=aA+20|0;eA=aA+16|0;rA=aA+12|0;fA=aA+8|0;P=aA;d=+s[r>>3];o=r+24|0;w=+s[o>>3];h=r+32|0;u=+s[h>>3];S=+s[r+72>>3];O=a[r+80>>2]|0;K=+s[r+88>>3];E=+s[r+96>>3];_=a[r+104>>2]|0;a[$>>2]=0;a[AA>>2]=10;a[eA>>2]=0;a[rA>>2]=0;a[fA>>2]=0;s[P>>3]=0.0;if(!((e|0)==0|(O|0)<1)?(q=a[e>>2]|0,b=a[e+4>>2]|0,!((A|0)<1|(b|0)<1)):0){if((b|0)<(a[r+52>>2]|0)){B=0;t=0;c=0}else{c=$F(A*80|0)|0;a[eA>>2]=c;a[rA>>2]=$F(80)|0;a[fA>>2]=$F(80)|0;B=1;t=c}a[l>>2]=0;if((q|0)==(b|0)){X=tq(e,1)|0;H=a[X+20>>2]|0;x=a[X+24>>2]|0;T=a[i+20>>2]|0;j=a[i+24>>2]|0;R=a[i+28>>2]|0;A:do{if(a[r+16>>2]|0){f8(a[r+108>>2]|0);c=U(q,A)|0;t=0;while(1){if((t|0)>=(c|0))break A;s[n+(t<<3)>>3]=+Ub();t=t+1|0}}}while(0);if(w<0.0){w=+xT(X,A,n);s[o>>3]=w}if(u<0.0){s[h>>3]=.2;u=.2}if(d>=0.0){s[r>>3]=-1.0;d=-1.0}p=1.0-d;N=+Y(+w,+p);M=+Y(+u,+((2.0-d)*.3333333333333333))/w;V=A<<3;F=$F(V)|0;V=U(q,V)|0;J=$F(V)|0;L=(B|0)!=0;y=r+116|0;W=M*.2;D=r+64|0;m=d==-1.0;Q=(f|0)!=0;t=0;Z=0;G=0.0;A:while(1){Z=Z+1|0;W6(J|0,n|0,V|0)|0;if(L)t=S_(A,q,10,n,(a[y>>2]|0)==0?0:f)|0;B=0;w=0.0;e:while(1){if((B|0)<(q|0))c=0;else break;while(1){if((c|0)>=(A|0))break;s[F+(c<<3)>>3]=0.0;c=c+1|0}C=B+1|0;i=H+(C<<2)|0;I=U(B,A)|0;b=a[H+(B<<2)>>2]|0;while(1){if((b|0)>=(a[i>>2]|0))break;o=x+(b<<2)|0;c=a[o>>2]|0;i:do{if((c|0)!=(B|0)){u=+_b(n,A,B,c)*M;c=0;while(1){if((c|0)>=(A|0))break i;d=u*(+s[n+(c+I<<3)>>3]-+s[n+((U(a[o>>2]|0,A)|0)+c<<3)>>3]);v=F+(c<<3)|0;s[v>>3]=+s[v>>3]-d;c=c+1|0}}}while(0);b=b+1|0}o=T+(C<<2)|0;i=a[T+(B<<2)>>2]|0;while(1){if((i|0)>=(a[o>>2]|0))break;h=j+(i<<2)|0;c=a[h>>2]|0;i:do{if((c|0)!=(B|0)){u=+Kb(n,A,B,c);b=R+(i<<3)|0;d=1.0/u;c=0;while(1){if((c|0)>=(A|0))break i;lA=+s[b>>3];nA=u-lA;nA=nA*nA*W*(+s[n+(c+I<<3)>>3]-+s[n+((U(a[h>>2]|0,A)|0)+c<<3)>>3])*d;v=F+(c<<3)|0;s[v>>3]=(u>3];c=c+1|0}}}while(0);i=i+1|0}i:do{if(!L)if(Q&(a[y>>2]|0)!=0){c=0;while(1){if((c|0)==(q|0)){u=0.0;c=0;break i}r:do{if((c|0)!=(B|0)){lA=+Kb(n,A,B,c);i=f+(c<<3)|0;o=U(c,A)|0;u=+Y(+lA,+p);u=1.0/(m?lA*lA:u);b=0;while(1){if((b|0)>=(A|0))break r;v=F+(b<<3)|0;s[v>>3]=+s[i>>3]*N*(+s[n+(b+I<<3)>>3]-+s[n+(b+o<<3)>>3])*u+ +s[v>>3];b=b+1|0}}}while(0);c=c+1|0}}else{c=0;while(1){if((c|0)==(q|0)){u=0.0;c=0;break i}r:do{if((c|0)!=(B|0)){lA=+Kb(n,A,B,c);i=U(c,A)|0;u=+Y(+lA,+p);u=1.0/(m?lA*lA:u);b=0;while(1){if((b|0)>=(A|0))break r;v=F+(b<<3)|0;s[v>>3]=(+s[n+(b+I<<3)>>3]-+s[n+(b+i<<3)>>3])*N*u+ +s[v>>3];b=b+1|0}}}while(0);c=c+1|0}}else{H_(t,+s[D>>3],n+(I<<3)|0,B,$,AA,eA,rA,fA,P,l);i=a[$>>2]|0;if(a[l>>2]|0)break A;o=a[fA>>2]|0;h=a[rA>>2]|0;B=a[eA>>2]|0;c=0;while(1){if((c|0)>=(i|0)){u=0.0;c=0;break i}lA=+s[o+(c<<3)>>3];lA=lA>1.0e-15?lA:1.0e-15;g=h+(c<<3)|0;v=U(c,A)|0;u=+Y(+lA,+p);u=1.0/(m?lA*lA:u);b=0;while(1){if((b|0)>=(A|0))break;tA=F+(b<<3)|0;s[tA>>3]=+s[g>>3]*N*(+s[n+(b+I<<3)>>3]-+s[B+(b+v<<3)>>3])*u+ +s[tA>>3];b=b+1|0}c=c+1|0}}}while(0);while(1){if((c|0)>=(A|0))break;lA=+s[F+(c<<3)>>3];u=lA*lA+u;c=c+1|0}u=+z(+u);w=u+w;i:do{if(u>0.0){u=1.0/u;c=0;while(1){if((c|0)>=(A|0)){c=0;break i}tA=F+(c<<3)|0;s[tA>>3]=+s[tA>>3]*u;c=c+1|0}}else c=0}while(0);while(1){if((c|0)>=(A|0)){B=C;continue e}tA=n+(c+I<<3)|0;s[tA>>3]=+s[tA>>3]+ +s[F+(c<<3)>>3]*E;c=c+1|0}}if(t|0)eq(t);E=+KT(_,E,w,G,K);if(!((Z|0)<(O|0)&E>S)){iA=70;break}else G=w}if((iA|0)==70?a[r+112>>2]|0:0)_T(A,X,n);L2(J);if((X|0)!=(e|0))rq(X);L2(F);t=a[eA>>2]|0;c=t}else a[l>>2]=-100;if(c|0)L2(t);t=a[rA>>2]|0;if(t|0)L2(t);t=a[fA>>2]|0;if(t|0)L2(t)}k=aA;return}function nj(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0.0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,k=0,o=0,h=0;w=a[e+20>>2]|0;k=a[e+24>>2]|0;o=$F(A<<3)|0;u=a[e>>2]|0;c=0;A:while(1){if((c|0)<(u|0))e=0;else break;while(1){if((e|0)>=(A|0))break;s[o+(e<<3)>>3]=0.0;e=e+1|0}b=c+1|0;t=a[w+(b<<2)>>2]|0;l=a[w+(c<<2)>>2]|0;e=0;while(1){if((l|0)>=(t|0))break;r=a[k+(l<<2)>>2]|0;if((r|0)!=(c|0)){n=U(r,A)|0;r=0;while(1){if((r|0)>=(A|0))break;h=o+(r<<3)|0;s[h>>3]=+s[h>>3]+ +s[i+(n+r<<3)>>3];r=r+1|0}e=e+1|0}l=l+1|0}if((e|0)<=0){c=b;continue}f=.5/+(e|0);r=U(c,A)|0;e=0;while(1){if((e|0)>=(A|0)){c=b;continue A}h=i+(e+r<<3)|0;s[h>>3]=+s[o+(e<<3)>>3]*f+ +s[h>>3]*.5;e=e+1|0}}L2(o);return}function lj(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0.0;t=a[A+20>>2]|0;c=a[A+24>>2]|0;l=a[A>>2]|0;s=$F((l<<2)+4|0)|0;A=0;while(1){if((A|0)>(l|0)){i=0;r=0;break}a[s+(A<<2)>>2]=0;A=A+1|0}while(1){if((r|0)>=(l|0))break;f=r+1|0;n=a[t+(f<<2)>>2]|0;A=0;e=a[t+(r<<2)>>2]|0;while(1){if((e|0)>=(n|0))break;A=A+((r|0)!=(a[c+(e<<2)>>2]|0)&1)|0;e=e+1|0}n=s+(A<<2)|0;r=(a[n>>2]|0)+1|0;a[n>>2]=r;i=(i|0)>(r|0)?i:r;r=f}b=+(a[s+4>>2]|0);if(+(i|0)*.8=(n|0)){f=0;break}s[u+(f<<3)>>3]=0.0;f=f+1|0}while(1){if((f|0)>=(e|0)){n=0;break}s[t+(f<<3)>>3]=0.0;f=f+1|0}while(1){if((n|0)>=(A|0))break;l=U(n,e)|0;f=0;while(1){if((f|0)>=(e|0))break;b=t+(f<<3)|0;s[b>>3]=+s[b>>3]+ +s[i+(f+l<<3)>>3];f=f+1|0}n=n+1|0}r=1.0/+(A|0);f=0;while(1){if((f|0)>=(e|0)){n=0;break}b=t+(f<<3)|0;s[b>>3]=+s[b>>3]*r;f=f+1|0}while(1){if((n|0)>=(A|0)){l=0;break}l=U(n,e)|0;f=0;while(1){if((f|0)>=(e|0))break;b=i+(f+l<<3)|0;s[b>>3]=+s[b>>3]-+s[t+(f<<3)>>3];f=f+1|0}n=n+1|0}while(1){if((l|0)>=(A|0))break;t=U(l,e)|0;n=0;while(1){if((n|0)>=(e|0))break;c=i+(n+t<<3)|0;b=U(n,e)|0;f=0;while(1){if((f|0)==(e|0))break;o=u+(f+b<<3)|0;s[o>>3]=+s[o>>3]+ +s[i+(f+t<<3)>>3]*+s[c>>3];f=f+1|0}n=n+1|0}l=l+1|0}r=+s[u+8>>3];if(r==0.0)r=0.0;else{h=+s[u>>3];a=+s[u+24>>3];r=-(a-h-+z(+(h*h+r*r*4.0+(h*-2.0+a)*a)))/(r*2.0)}a=+z(+(r*r+1.0));r=r/a;a=1.0/a;f=0;while(1){if((f|0)>=(A|0))break;o=U(f,e)|0;u=i+(o<<3)|0;h=+s[u>>3];o=i+(o+1<<3)|0;d=+s[o>>3];s[u>>3]=d*a+h*r;s[o>>3]=d*r-h*a;f=f+1|0}k=w;return}function cj(A,e,i,r,f,a,n,l,t,c){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;n=n|0;l=l|0;t=t|0;c=c|0;sj(A,e,i,r,f,a,n,l,t,c);return}function sj(A,e,i,r,f,n,l,t,c,b){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;t=t|0;c=c|0;b=b|0;var u=0.0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0;p=k;k=k+192|0;M=p+176|0;D=p+168|0;V=p;W6(V|0,r|0,168)|0;a[b>>2]=0;do{if(e|0?(J=a[e+4>>2]|0,!((A|0)<1|(J|0)<1)):0){if((cq(e,0)|0)!=0?(a[e+16>>2]|0)==1:0){if((a[r+136>>2]|0)==1)w=kq(i)|0;else w=i;F=kq(e)|0}else g=5;do{if((g|0)==5)if((a[r+136>>2]|0)==1){F=wq(e,0)|0;w=wq(i,0)|0;break}else{F=Xb(e)|0;w=i;break}}while(0);Y=r+160|0;o=a[Y>>2]|0;if((o|0)==3){if((t|0)>0)g=14}else if((t|0)>0&(o|0)==4)g=14;if((g|0)==14){i=$F(U(A<<3,a[F>>2]|0)|0)|0;J=bj(F,t,c)|0;cj(A,J,0,r,0,0,i,0,0,b);uj(A,F,t,c,l,i);qO(A,F,l,n,a[r+124>>2]|0,+s[r+144>>3],a[Y>>2]|0,t,c);rq(J);L2(i);if((F|0)==(e|0))break;rq(F);break}W=fu(a[r+44>>2]|0,a[r+48>>2]|0)|0;a[W+16>>2]=a[r+40>>2];z=Bu(F,w,f,W)|0;h=Eu(z)|0;if(!(a[h+32>>2]|0))d=l;else d=$F(U(A<<3,a[h+4>>2]|0)|0)|0;o=lj(F)|0;if(+s[r>>3]==-1.0001234)s[r>>3]=(o|0)==0?-1.0:-1.8;E=r+136|0;C=r+24|0;I=r+16|0;Z=r+104|0;G=r+96|0;m=A<<3;Q=r+132|0;L=a[15712]|0;y=r+80|0;while(1){A:do{switch(a[E>>2]|0){case 0:{switch(a[Q>>2]|0){case 0:{Aj(A,a[h+8>>2]|0,r,a[h+24>>2]|0,d,b);break A}case 2:{o=h+8|0;g=29;break}case 3:{o=h+8|0;B=a[o>>2]|0;if((a[B>>2]|0)>1e4)if(true)g=29;else{}else g=30;break}default:{B=a[h+8>>2]|0;g=30}}if((g|0)==29){OT(A,a[o>>2]|0,r,a[h+24>>2]|0,d,b);break A}else if((g|0)==30){ej(A,B,r,a[h+24>>2]|0,d,b);break A}break}case 1:{s[G>>3]=1.0;a[Z>>2]=1;v=(a[h+28>>2]|0)==0;u=v?.5:.05;a[y>>2]=v?500:100;v=(a[h+32>>2]|0)==0;o=h+8|0;B=h+12|0;g=h+24|0;ij(A,a[o>>2]|0,a[B>>2]|0,r,a[g>>2]|0,d,u,b);if(v){a[I>>2]=0;s[G>>3]=.05;a[Z>>2]=0;ij(A,a[o>>2]|0,a[B>>2]|0,r,a[g>>2]|0,d,u*.5,b);ij(A,a[o>>2]|0,a[B>>2]|0,r,a[g>>2]|0,d,u*.125,b);ij(A,a[o>>2]|0,a[B>>2]|0,r,a[g>>2]|0,d,u*.03125,b)}break}default:{}}}while(0);g=a[h+32>>2]|0;if(!g){g=39;break}if(a[b>>2]|0){g=35;break}v=a[h+16>>2]|0;o=a[h+40>>2]|0;if(!(a[g+32>>2]|0))B=l;else B=$F(U(m,a[g+4>>2]|0)|0)|0;wj(A,a[g+8>>2]|0,v,a[g+20>>2]|0,d,B,o,+s[C>>3]*.001);L2(d);a[I>>2]=0;s[C>>3]=+s[C>>3]*.75;a[Z>>2]=0;s[G>>3]=((a[(a[g+28>>2]|0)+40>>2]|0)+-9|0)>>>0<2?1.0:.1;h=g;d=B}if((g|0)==35)L2(d);else if((g|0)==39){Tu(A,F,r,f,l,b);if(0){}if((A|0)==2)tj(J,2,l);u=+s[r+152>>3];if(u!=0.0)kj(J,A,l,u);qO(A,F,l,n,a[r+124>>2]|0,+s[r+144>>3],a[Y>>2]|0,t,c)}W6(r|0,V|0,168)|0;if((F|0)!=(e|0))rq(F);if(!((w|0)==0|(w|0)==(i|0)))rq(w);au(W);nu(z)}}while(0);k=p;return}function bj(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0;Z=k;k=k+16|0;I=Z;v=a[A+20>>2]|0;E=a[A+24>>2]|0;C=$F(a[A>>2]<<2)|0;r=0;while(1){if((r|0)>=(a[A>>2]|0)){r=0;break}a[C+(r<<2)>>2]=1;r=r+1|0}while(1){if((r|0)>=(e|0)){r=0;i=0;break}a[C+(a[i+(r<<2)>>2]<<2)>>2]=-1;r=r+1|0}while(1){b=a[A>>2]|0;if((i|0)>=(b|0)){i=0;e=0;break}e=C+(i<<2)|0;if((a[e>>2]|0)>0){a[e>>2]=r;r=r+1|0}i=i+1|0}A:while(1){while(1){if((e|0)>=(b|0))break A;if((a[C+(e<<2)>>2]|0)>=0)break;e=e+1|0}c=e+1|0;s=a[v+(c<<2)>>2]|0;t=a[v+(e<<2)>>2]|0;while(1){if((t|0)>=(s|0)){e=c;continue A}f=a[E+(t<<2)>>2]|0;e:do{if((a[C+(f<<2)>>2]|0)>-1)i=i+1|0;else{l=a[v+(f+1<<2)>>2]|0;n=a[v+(f<<2)>>2]|0;while(1){if((n|0)>=(l|0))break e;f=a[E+(n<<2)>>2]|0;if((f|0)!=(e|0))i=((a[C+(f<<2)>>2]|0)>>>31^1)+i|0;n=n+1|0}}}while(0);t=t+1|0}}e=i<<2;if((i|0)>0){d=$F(e)|0;B=$F(e)|0;o=B;h=d}else{o=0;h=0;d=0;B=0}g=a[15712]|0;e=0;f=0;A:while(1){i=a[A>>2]|0;while(1){if((e|0)>=(i|0))break A;w=C+(e<<2)|0;if((a[w>>2]|0)>=0)break;e=e+1|0}b=e+1|0;u=v+(b<<2)|0;s=a[v+(e<<2)>>2]|0;i=f;while(1){if((s|0)>=(a[u>>2]|0)){e=b;f=i;continue A}f=E+(s<<2)|0;n=a[f>>2]|0;e:do{if((a[C+(n<<2)>>2]|0)>-1){a[h+(i<<2)>>2]=a[w>>2];a[o+(i<<2)>>2]=a[C+(a[f>>2]<<2)>>2];i=i+1|0}else{c=v+(n+1<<2)|0;t=a[v+(n<<2)>>2]|0;while(1){if((t|0)>=(a[c>>2]|0))break e;f=E+(t<<2)|0;l=a[f>>2]|0;do{if((l|0)!=(e|0)?(a[C+(l<<2)>>2]|0)>-1:0){a[h+(i<<2)>>2]=a[w>>2];l=i+1|0;a[o+(i<<2)>>2]=a[C+(a[f>>2]<<2)>>2];n=a[w>>2]|0;i=a[C+(a[f>>2]<<2)>>2]|0;if((n|0)!=68)if((i|0)==68)i=68;else{i=l;break}a[I>>2]=n;a[I+4>>2]=i;f3(g,92380,I)|0;i=l}}while(0);t=t+1|0}}}while(0);s=s+1|0}}I=hq(f,r,r,h,o,0,8,8)|0;L2(d);L2(B);L2(C);k=Z;return I|0}function uj(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0.0,b=0,u=0,w=0,k=0,o=0,h=0;o=$F(a[e>>2]<<2)|0;l=0;while(1){if((l|0)>=(a[e>>2]|0)){l=0;break}a[o+(l<<2)>>2]=1;l=l+1|0}while(1){if((l|0)>=(i|0)){l=0;b=0;break}t=a[r+(l<<2)>>2]|0;if((t|0)>-1?(t|0)<(a[e>>2]|0):0)a[o+(t<<2)>>2]=-1;l=l+1|0}while(1){w=a[e>>2]|0;if((b|0)>=(w|0)){b=0;break}t=o+(b<<2)|0;if((a[t>>2]|0)>-1){a[t>>2]=l;l=l+1|0}b=b+1|0}while(1){if((b|0)>=(w|0))break;l=a[o+(b<<2)>>2]|0;A:do{if((l|0)>-1){u=U(b,A)|0;t=U(l,A)|0;l=0;while(1){if((l|0)>=(A|0))break A;s[f+(l+u<<3)>>3]=+s[n+(t+l<<3)>>3];l=l+1|0}}}while(0);b=b+1|0}k=e+20|0;n=e+24|0;w=0;while(1){if((w|0)>=(i|0))break;e=a[r+(w<<2)>>2]|0;l=a[k>>2]|0;b=a[l+(e+1<<2)>>2]|0;l=a[l+(e<<2)>>2]|0;u=b-l|0;e=U(e,A)|0;t=0;while(1){if((t|0)>=(A|0))break;s[f+(t+e<<3)>>3]=0.0;t=t+1|0}while(1){if((l|0)<(b|0))t=0;else break;while(1){if((t|0)>=(A|0))break;c=+s[f+((U(a[(a[n>>2]|0)+(l<<2)>>2]|0,A)|0)+t<<3)>>3];h=f+(t+e<<3)|0;s[h>>3]=+s[h>>3]+c;t=t+1|0}l=l+1|0}c=1.0/+(u|0);l=0;while(1){if((l|0)>=(A|0))break;h=f+(l+e<<3)|0;s[h>>3]=+s[h>>3]*c;l=l+1|0}w=w+1|0}L2(o);return}function wj(A,e,i,r,f,n,l,t){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;t=+t;var c=0,b=0,u=0,w=0,o=0,h=0.0;w=k;k=k+16|0;u=w;a[u>>2]=n;zb(i,0,f,0,u,0,A);A:do{if((l+-1|0)>>>0<6){nj(A,e,a[u>>2]|0);c=a[r>>2]|0;b=a[r+20>>2]|0;n=a[r+24>>2]|0;e=0;e:while(1){if((e|0)>=(c|0))break A;l=e+1|0;r=b+(l<<2)|0;e=a[b+(e<<2)>>2]|0;i:while(1){e=e+1|0;if((e|0)>=(a[r>>2]|0)){e=l;continue e}f=n+(e<<2)|0;i=0;while(1){if((i|0)>=(A|0))continue i;h=(+Ub()+-.5)*t;o=(a[u>>2]|0)+((U(a[f>>2]|0,A)|0)+i<<3)|0;s[o>>3]=+s[o>>3]+h;i=i+1|0}}}}}while(0);k=w;return}function kj(A,e,i,r){A=A|0;e=e|0;i=i|0;r=+r;var f=0,a=0.0,n=0,l=0,t=0,c=0,b=0,u=0.0,w=0.0;c=k;k=k+16|0;t=c;f=0;while(1){if((f|0)>=(e|0)){n=0;break}s[t+(f<<3)>>3]=0.0;f=f+1|0}while(1){if((n|0)>=(A|0))break;l=U(n,e)|0;f=0;while(1){if((f|0)>=(e|0))break;b=t+(f<<3)|0;s[b>>3]=+s[b>>3]+ +s[i+(f+l<<3)>>3];f=f+1|0}n=n+1|0}a=1.0/+(A|0);f=0;while(1){if((f|0)>=(e|0)){n=0;break}b=t+(f<<3)|0;s[b>>3]=+s[b>>3]*a;f=f+1|0}while(1){if((n|0)>=(A|0))break;l=U(n,e)|0;f=0;while(1){if((f|0)>=(e|0))break;b=i+(f+l<<3)|0;s[b>>3]=+s[b>>3]-+s[t+(f<<3)>>3];f=f+1|0}n=n+1|0}r=r*-.017453277777777776;a=+D(+r);r=+M(+r);f=0;while(1){if((f|0)>=(A|0))break;b=U(f,e)|0;t=i+(b<<3)|0;u=+s[t>>3];b=i+(b+1<<3)|0;w=+s[b>>3];s[t>>3]=w*r+u*a;s[b>>3]=w*a-u*r;f=f+1|0}k=c;return}function oj(A,e,i,r,f,n,l){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=+n;l=l|0;var t=0,c=0,b=0,u=0;u=(cq(e,0)|0)==0;t=(a[e+16>>2]|0)==1;if(u)if(t)t=kq(tq(e,0)|0)|0;else c=5;else if(t)t=e;else c=5;if((c|0)==5)t=Xb(e)|0;u=kq(t)|0;a[l>>2]=0;t=a[u>>2]|0;if(!i){$F(U(A<<3,t)|0)|0;re()}b=zu(u,A,0.0,a[i>>2]|0,(r|0)==0?0:2,1)|0;if(!b)a[l>>2]=-1;else{s[b+40>>3]=.1;a[b+24>>2]=5;+Du(b,A,a[i>>2]|0,f,n);c=U(t,A)|0;r=b+32|0;t=0;while(1){if((t|0)>=(c|0))break;l=(a[i>>2]|0)+(t<<3)|0;s[l>>3]=+s[l>>3]/+s[r>>3];t=t+1|0}Yu(b)}if((u|0)!=(e|0))rq(u);return}function hj(A,e,i,r,f,a,n,l){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;n=+n;l=l|0;oj(A,i,r,f,a,n,l);return}function dj(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=+r;f=+f;n=n|0;var l=0,t=0,c=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0.0;E=a[e>>2]|0;C=a[e+20>>2]|0;g=a[e+24>>2]|0;v=a[e+28>>2]|0;if(!(cq(e,0)|0))gA(95795,92387,37,92404);A=$F(56)|0;c=A+20|0;a[c>>2]=0;a[A+24>>2]=2;a[A+12>>2]=0;t=$F(16)|0;a[c>>2]=t;s[t>>3]=r;s[t+8>>3]=f;a[A+16>>2]=105;s[A+40>>3]=.01;a[A+48>>2]=~~+z(+ +(a[e>>2]|0));t=e+8|0;c=A+4|0;a[c>>2]=fq(E,E,(a[t>>2]|0)+E|0,1,1)|0;t=fq(E,E,(a[t>>2]|0)+E|0,1,1)|0;a[A+8>>2]=t;c=a[c>>2]|0;b=a[c+28>>2]|0;u=a[t+28>>2]|0;if((t|0)==0|(c|0)==0){Wu(A);A=0}else{w=a[c+20>>2]|0;k=a[c+24>>2]|0;o=a[t+20>>2]|0;h=a[t+24>>2]|0;a[o>>2]=0;a[w>>2]=0;e=0;i=0;while(1){if((e|0)>=(E|0))break;d=e+1|0;B=C+(d<<2)|0;r=0.0;f=0.0;l=a[C+(e<<2)>>2]|0;while(1){if((l|0)>=(a[B>>2]|0))break;n=a[g+(l<<2)>>2]|0;if((n|0)!=(e|0)){I=+s[v+(l<<3)>>3];I=I>=0.0?I:-I;I=I>.01?I:.01;a[k+(i<<2)>>2]=n;a[h+(i<<2)>>2]=n;n=b+(i<<3)|0;s[n>>3]=-1.0;s[u+(i<<3)>>3]=-I;r=+s[n>>3]+r;f=f-I;i=i+1|0}l=l+1|0}a[k+(i<<2)>>2]=e;a[h+(i<<2)>>2]=e;s[b+(i<<3)>>3]=-r;s[u+(i<<3)>>3]=-f;i=i+1|0;a[w+(d<<2)>>2]=i;a[o+(d<<2)>>2]=i;e=d}a[c+8>>2]=i;a[t+8>>2]=i}return A|0}function Bj(A){A=A|0;Wu(A);return}function gj(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;return+ +Mu(A,e,i,r,.001)}function vj(A,e){A=A|0;e=+e;var i=0,r=0,f=0,n=0;if((a[A+16>>2]|0)==1)i=tq(A,0)|0;else i=Xb(A)|0;f=a[i+28>>2]|0;A:do{if(e!=1.0){r=a[i+8>>2]|0;A=0;while(1){if((A|0)>=(r|0))break A;n=f+(A<<3)|0;s[n>>3]=+s[n>>3]*e;A=A+1|0}}}while(0);return i|0}function Ej(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,b=0.0;t=a[e>>2]|0;a[r>>2]=0;c=U(t,A)|0;r=0;while(1){if((r|0)>=(c|0)){r=1;f=1;break}s[i+(r<<3)>>3]=+Ub()*100.0;r=r+1|0}while(1){if((f|0)>=(t|0))break;l=U(f,A)|0;n=0;while(1){if((n|0)>=(A|0))break;b=+s[i+(n<<3)>>3]-+s[i+(n+l<<3)>>3];if((b>=0.0?b:-b)>1.0e-16){r=0;f=t;break}else n=n+1|0}f=f+1|0}A:do{if(r|0){f8(1);r=0;while(1){if((r|0)>=(c|0))break A;s[i+(r<<3)>>3]=+Ub()*100.0;r=r+1|0}}}while(0);r=vj(e,1.0)|0;if(!(cq(r,0)|0))gA(92430,92387,164,92466);else{c=dj(0,r,0,101.0e5,100.0,0)|0;+gj(c,A,i,300);Bj(c);c=dj(0,r,0,101.0e3,100.0,0)|0;+gj(c,A,i,300);Bj(c);c=dj(0,r,0,1010.0,100.0,0)|0;+gj(c,A,i,300);Bj(c);c=dj(0,r,0,10.1,100.0,0)|0;+gj(c,A,i,300);Bj(c);$b(0.0,0.0,490.0,700.0,a[e>>2]|0,A,i);rq(r);return}}function Cj(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,b=0,u=0;c=$F((gh(A)|0)<<4)|0;l=(r|0)!=0;t=e+8|0;n=cd(A)|0;f=0;while(1){if(!n)break;if(l)f=f+((Z1(Vh(n)|0,92481,11)|0)==0&1)|0;u=a[n+16>>2]|0;b=a[u+120>>2]<<1;s[c+(b<<3)>>3]=+s[u+32>>3]*.5+ +s[e>>3];s[c+((b|1)<<3)>>3]=+s[u+40>>3]*.5+ +s[t>>3];n=sd(A,n)|0}if(l&(f|0)!=0){e=$F(f<<2)|0;n=cd(A)|0;f=0;while(1){if(!n)break;if(!(Z1(Vh(n)|0,92481,11)|0)){a[e+(f<<2)>>2]=a[(a[n+16>>2]|0)+120>>2];f=f+1|0}n=sd(A,n)|0}a[r>>2]=e;a[i>>2]=f}return c|0}function Ij(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0.0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0;G=k;k=k+32|0;C=G+16|0;E=G+8|0;v=G;if(A){I=gh(A)|0;Z=vh(A)|0;e=cd(A)|0;r=0;while(1){if(!e)break;a[(a[e+16>>2]|0)+120>>2]=r;e=sd(A,e)|0;r=r+1|0}d=Z<<2;h=$F(d)|0;d=$F(d)|0;e=Z<<3;B=$F(e)|0;w=Yo(A,2,101541,0)|0;g=(i|0)!=0;if(g){r=Yo(A,2,92493,0)|0;o=qF(e)|0;u=o}else{u=0;r=0;o=0}t=(w|0)==0;c=(r|0)==0;l=cd(A)|0;e=0;while(1){if(!l)break;b=a[(a[l+16>>2]|0)+120>>2]|0;n=Oo(A,l)|0;while(1){if(!n)break;a[h+(e<<2)>>2]=b;a[d+(e<<2)>>2]=a[(a[(a[((a[n>>2]&3|0)==2?n:n+-48|0)+40>>2]|0)+16>>2]|0)+120>>2];if(!t?(m=Uo(n,w)|0,a[E>>2]=v,(J3(m,101209,E)|0)==1):0)f=+s[v>>3];else{s[v>>3]=1.0;f=1.0}s[B+(e<<3)>>3]=f;if(!c){m=Uo(n,r)|0;a[C>>2]=v;if((J3(m,101209,C)|0)==1)f=+s[v>>3];else{s[v>>3]=1.0;f=1.0}s[u+(e<<3)>>3]=f}n=_o(A,n)|0;e=e+1|0}l=sd(A,l)|0}e=hq(Z,I,I,h,d,B,1,8)|0;if(g)a[i>>2]=hq(Z,I,I,h,d,o,1,8)|0;L2(h);L2(d);L2(B);if(u)L2(o)}else e=0;k=G;return e|0}function Zj(A){A=A|0;var e=0,i=0,r=0.0,f=0,n=0.0,l=0.0,t=0.0,c=0,b=0,u=0,w=0.0,o=0.0;b=k;k=k+16|0;c=b;A:do{if(Gj(A,c)|0){e=a[(a[(cd(A)|0)+16>>2]|0)+132>>2]|0;n=+s[e>>3];r=+s[e+8>>3];e=cd(A)|0;while(1){if(!e)break;f=a[(a[e+16>>2]|0)+132>>2]|0;s[f>>3]=+s[f>>3]-n;f=f+8|0;s[f>>3]=+s[f>>3]-r;e=sd(A,e)|0}e=(n!=0.0|r!=0.0)&1;i=cd(A)|0;while(1){if(!i)break A;f=Oo(A,i)|0;if(f|0)break;i=sd(A,i)|0}u=a[f>>2]&3;i=a[(a[(a[((u|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+132>>2]|0;f=a[(a[(a[((u|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+132>>2]|0;l=+s[f+8>>3];t=+s[f>>3];r=+N(+(+s[i+8>>3]-l),+(+s[i>>3]-t));r=+s[c>>3]-r;s[c>>3]=r;if(r!=0.0){n=+D(+r);r=+M(+r);e=cd(A)|0;while(1){if(!e){e=1;break A}c=a[(a[e+16>>2]|0)+132>>2]|0;o=+s[c>>3]-t;u=c+8|0;w=+s[u>>3]-l;s[c>>3]=o*n+t-w*r;s[u>>3]=o*r+l+w*n;e=sd(A,e)|0}}}else e=0}while(0);k=b;return e|0}function Gj(A,e){A=A|0;e=e|0;var i=0.0,f=0,n=0;n=k;k=k+16|0;f=n;A=Ho(A,92497)|0;do{if((A|0)!=0?(r[A>>0]|0)!=0:0){i=+A8(A,f);if((a[f>>2]|0)==(A|0))if(!((vR(A)|0)<<24>>24)){A=0;break}else i=0.0;while(1){if(!(i>180.0))break;i=i+-360.0}while(1){if(!(i<=-180.0))break;i=i+360.0}s[e>>3]=i*.017453292519943295;A=1}else A=0}while(0);k=n;return A|0}function mj(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=Ho(A,92507)|0;return Qj(A,(r|0)==0?i|0?i:195059:r,e)|0}function Qj(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0.0;b=k;k=k+32|0;s=b+16|0;t=b+8|0;l=b;if((e|0)!=0?(r[e>>0]|0)!=0:0){f=17896;while(1){n=a[f+4>>2]|0;if(!n)break;if(!(T1(e,n,a[f+8>>2]|0)|0)){c=6;break}f=f+16|0}if((c|0)==6){if(!(a[f+12>>2]|0)){a[l>>2]=n;ao(0,92515,l)|0;f=17896}l=a[f>>2]|0;a[i>>2]=l;a[i+4>>2]=a[f+12>>2];if((l|0)==18)Lj(A,e+(a[f+8>>2]|0)|0,i)}if(!(a[f+4>>2]|0)){f=ER(e,63)|0;if(f<<24>>24==63){a[t>>2]=e;ao(0,92557,t)|0;f=0}else f=f&255;f=(f|0)==0;a[i>>2]=f&1;f=f?92604:135709;c=15}}else{a[i>>2]=0;f=135709;c=15}if((c|0)==15)a[i+4>>2]=f;if(0){}k=b;return i|0}function Lj(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;r=k;k=k+16|0;f=r;n=r+4|0;a[f>>2]=n;f=(J3(e,137395,f)|0)>0;e=a[n>>2]|0;a[i+8>>2]=f&(e|0)>-1?e:1e3;s[i+16>>3]=+oR(A,Yo(A,0,92648,0)|0,-4.0,-1.0e10);k=r;return}function yj(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0;l=k;k=k+16|0;n=l+8|0;f=l;do{if((gh(A)|0)>=2){i=Zj(A)|0;i=(Wj(A)|0)+i|0;r=a[e>>2]|0;if(r){if(0){}if(r>>>0>2){switch(r|0){case 3:{r=zP(A,1)|0;break}case 4:{r=zP(A,0)|0;break}case 6:case 5:{r=0;break}case 10:case 9:case 7:case 8:case 14:case 13:case 11:case 12:{oP(A,r)|0;r=0;break}case 15:{r=zP(A,-1)|0;break}default:{a[n>>2]=a[e+4>>2];ao(0,93e3,n)|0;r=0}}i=r+i|0;break}if(zj(A)|0){Yj();L2(a[46845]|0);a[46845]=0;break}Dj(A);if((a[e>>2]|0)==2)r=Mj()|0;else r=Fj()|0;if(r|0)Vj();Yj();L2(a[46845]|0);a[46845]=0;i=r+i|0}}else i=0}while(0);k=l;return i|0}function Wj(A){A=A|0;var e=0,i=0.0,r=0,f=0,n=0.0,l=0,t=0,c=0,b=0;b=k;k=k+48|0;l=b+24|0;f=b+16|0;t=b;e=Ho(A,140742)|0;A:do{if(((e|0)!=0?(c=t+8|0,a[f>>2]=t,a[f+4>>2]=c,r=J3(e,105503,f)|0,(r|0)!=0):0)?(n=+s[t>>3],!(+W(+n)<1.0e-09)):0){if((r|0)!=1){i=+s[c>>3];if(+W(+i)<1.0e-09){e=0;break}}else{s[c>>3]=n;i=n}if(!(i==1.0&n==1.0)){if(0){}e=cd(A)|0;while(1){if(!e){e=1;break A}l=a[(a[e+16>>2]|0)+132>>2]|0;s[l>>3]=+s[l>>3]*+s[t>>3];l=l+8|0;s[l>>3]=+s[l>>3]*+s[c>>3];e=sd(A,e)|0}}else e=0}else e=0}while(0);k=b;return e|0}function zj(A){A=A|0;var e=0,i=0,f=0,n=0.0,l=0.0,t=0,b=0,u=0,w=0;u=k;k=k+16|0;t=u;a[46854]=gh(A)|0;nS();a[46869]=$F((a[46854]|0)*96|0)|0;f=cd(A)|0;e=a[46869]|0;qj(t,A);n=+c[t>>2];l=+c[t+4>>2];t=(r[t+8>>0]|0)==0;l=t?l:l*.013888888888888888;n=t?n:n*.013888888888888888;t=t?2:1;i=0;while(1){if((i|0)>=(a[46854]|0)){e=0;break}w=a[(a[f+16>>2]|0)+132>>2]|0;s[e+8>>3]=+s[w>>3];s[e+16>>3]=+s[w+8>>3];if(L5[t&3](e+40|0,f,n,l)|0){b=4;break}a[e+24>>2]=i;a[e+28>>2]=1;a[e>>2]=f;a[e+88>>2]=0;e=e+96|0;i=i+1|0;f=sd(A,f)|0}if((b|0)==4){L2(a[46869]|0);a[46869]=0;e=1}k=u;return e|0}function Yj(){var A=0,e=0;A=a[46869]|0;e=0;while(1){if((e|0)>=(a[46854]|0))break;iK(A+40|0);A=A+96|0;e=e+1|0}eK();MS();L2(a[46869]|0);return}function Dj(A){A=A|0;var e=0,i=0,f=0,n=0.0,l=0.0,t=0.0,c=0.0,b=0,u=0,w=0,o=0,h=0.0,d=0.0,B=0.0,g=0.0;w=k;k=k+32|0;b=w+16|0;u=w;o=a[46869]|0;l=+s[o+8>>3];c=+s[o+16>>3];f=a[46854]|0;e=o;i=1;n=+s[o+40>>3]+l;l=+s[o+56>>3]+l;t=+s[o+48>>3]+c;c=+s[o+64>>3]+c;while(1){if((i|0)>=(f|0))break;B=+s[e+104>>3];h=+s[e+112>>3];g=+s[e+136>>3]+B;d=+s[e+144>>3]+h;B=+s[e+152>>3]+B;h=+s[e+160>>3]+h;e=e+96|0;i=i+1|0;n=gl?B:l;t=dc?h:c}e=Ho(A,93100)|0;if(e|0?r[e>>0]|0:0)s[173]=+$3(e);B=+s[173];g=B*(c-t);B=B*(l-n);s[b>>3]=n-B;s[b+8>>3]=t-g;s[u>>3]=B+l;s[u+8>>3]=g+c;xj(b,u);k=w;return}function Mj(){var A=0,e=0,i=0,r=0;i=k;k=k+16|0;e=i;if(Jj(0)|0){pj();A=0;do{_j();A=A+1|0}while((Jj(A)|0)!=0);if(true)A=1;else{}}else A=0;k=i;return A|0}function Fj(){var A=0,e=0,i=0,r=0,f=0,n=0,l=0,t=0;t=k;k=k+16|0;l=t+8|0;n=t;e=Jj(0)|0;if(!e)A=0;else{pj();Nj(0);JK(0,1);A=0;r=0;i=0;while(1){Xj();i=i+1|0;f=Jj(i)|0;if(!f)break;e=(f|0)<(e|0)?0:r+1|0;a[46846]=1;if(e){Hj();A=A+1|0}Nj(1);JK(0,1);r=e;e=f}if(0){}Uj();A=1}k=t;return A|0}function Vj(){var A=0,e=0,i=0,r=0;i=a[46854]|0;A=a[46869]|0;e=0;while(1){if((e|0)>=(i|0))break;r=a[(a[(a[A>>2]|0)+16>>2]|0)+132>>2]|0;s[r>>3]=+s[A+8>>3];s[r+8>>3]=+s[A+16>>3];A=A+96|0;e=e+1|0}return}function Jj(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0;h=k;k=k+48|0;w=h+24|0;u=h+8|0;o=h;i=a[46869]|0;r=a[46854]|0;e=0;while(1){if((e|0)>=(r|0)){f=0;e=0;break}a[i+(e*96|0)+32>>2]=0;e=e+1|0}A:while(1){if((e|0)>=(r+-1|0))break;b=i+96|0;e=e+1|0;c=i+8|0;s=i+40|0;t=i+32|0;n=b;l=e;while(1){if((l|0)>=(r|0)){i=b;continue A}r=n+8|0;a[u>>2]=a[c>>2];a[u+4>>2]=a[c+4>>2];a[u+8>>2]=a[c+8>>2];a[u+12>>2]=a[c+12>>2];a[w>>2]=a[r>>2];a[w+4>>2]=a[r+4>>2];a[w+8>>2]=a[r+8>>2];a[w+12>>2]=a[r+12>>2];if(!(bK(u,s,w,n+40|0)|0))i=f;else{a[t>>2]=1;a[n+32>>2]=1;i=f+1|0}n=n+96|0;l=l+1|0;f=i;r=a[46854]|0}}if(0>1){w=a[15712]|0;a[o>>2]=A;a[o+4>>2]=f;f3(w,93081,o)|0}k=h;return f|0}function pj(){var A=0,e=0,i=0,r=0.0,f=0,n=0.0,l=0,t=0,c=0,b=0,u=0,w=0;Oj();c=a[46848]|0;b=a[46869]|0;A=a[46845]|0;A:while(1){l=A;if(A>>>0>=c>>>0)break;e=A+4|0;if(e>>>0>=c>>>0){A=e;continue}f=a[e>>2]|0;i=a[A>>2]|0;n=+s[i>>3];if(+s[f>>3]!=n){A=e;continue}r=+s[i+8>>3];if(+s[f+8>>3]!=r){A=e;continue}t=A+8|0;f=2;while(1){if(t>>>0>=c>>>0)break;i=a[t>>2]|0;if(!(+s[i>>3]==n)){u=11;break}if(!(+s[i+8>>3]==r)){u=11;break}t=t+4|0;f=f+1|0}if((u|0)==11){u=0;i=a[t>>2]|0;if(+s[i+8>>3]==r){r=(+s[i>>3]-n)/+(f|0);i=(((t>>>0>e>>>0?t:e)+-1+(0-l)|0)>>>2)+1|0;A=1;while(1){if((A|0)==(i|0)){A=t;continue A}l=a[e>>2]|0;s[l>>3]=+s[l>>3]+r*+(A|0);A=A+1|0;e=e+4|0}}}while(1){if(e>>>0>=t>>>0){A=t;continue A}f=a[A>>2]|0;w=a[f+16>>2]|0;l=a[e>>2]|0;i=a[l+16>>2]|0;s[l>>3]=(+s[b+(w*96|0)+56>>3]-+s[b+(w*96|0)+40>>3]+ +s[b+(i*96|0)+56>>3]-+s[b+(i*96|0)+40>>3])*.5+ +s[f>>3];e=e+4|0;A=A+4|0}}return}function Nj(A){A=A|0;var e=0.0,i=0.0,r=0.0,f=0,n=0.0,l=0,t=0,c=0;if(A|0)Oj();l=a[46845]|0;t=a[l>>2]|0;i=+s[t>>3];s[23272]=i;c=a[46854]|0;f=1;n=+s[t>>3];while(1){if((f|0)>=(c|0))break;A=a[l+(f<<2)>>2]|0;e=+s[A>>3];if(e>3]}else{r=e;e=i}f=f+1|0;i=e;n=r>n?r:n}r=+s[t+8>>3];s[23273]=r;s[23275]=+s[(a[l+(c+-1<<2)>>2]|0)+8>>3]-r;s[23274]=n-i;return}function Rj(){var A=0;A=a[46847]|0;if(A>>>0<(a[46848]|0)>>>0){a[46847]=A+4;A=a[A>>2]|0}else A=0;return A|0}function Xj(){var A=0,e=0,i=0;A=a[46869]|0;Tj();i=(a[46846]|0)==0;e=0;while(1){if((e|0)>=(a[46854]|0))break;if(!(i?!(a[A+32>>2]|0):0))jj(A);A=A+96|0;e=e+1|0}return}function Hj(){var A=0,e=0,i=0,r=0.0,f=0.0,a=0.0,n=0.0,l=0.0,t=0.0;A=k;k=k+32|0;i=A+16|0;e=A;t=+s[23268];l=+s[23266];n=+s[23269];f=+s[23267];r=(l-f)*.05;a=(t-n)*.05;s[e>>3]=a+t;s[e+8>>3]=l+r;s[i>>3]=n-a;s[i+8>>3]=f-r;xj(i,e);k=A;return}function Uj(){gS();ES();IK();$P();return}function xj(A,e){A=A|0;e=e|0;var i=0.0,r=0.0,f=0.0,a=0.0;a=+s[A>>3];s[23269]=a;f=+s[e>>3];s[23268]=f;i=+s[A+8>>3];s[23267]=i;r=+s[e+8>>3];s[23266]=r;s[23258]=a;s[23260]=a;s[23262]=f;s[23264]=f;s[23265]=r;s[23261]=r;s[23263]=i;s[23259]=i;return}function Tj(){var A=0,e=0.0,i=0.0,r=0.0,f=0.0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0.0,B=0.0,g=0.0,v=0.0;u=a[46869]|0;n=u+8|0;f=+lS(n,186064);r=+lS(n,186080);i=+lS(n,186096);A=1;e=+lS(n,186112);n=u;l=u;t=u;c=u;while(1){b=u+96|0;if((A|0)>=(a[46854]|0))break;h=u+104|0;d=+lS(h,186064);w=d>2]|0;w=c+8|0;e=0.0;i=0.0;r=0.0;c=a[c>>2]|0;while(1){f=a[c>>2]|0;if(!f)break;B=c+8|0;d=f+8|0;a[n>>2]=a[w>>2];a[n+4>>2]=a[w+4>>2];a[n+8>>2]=a[w+8>>2];a[n+12>>2]=a[w+12>>2];a[l>>2]=a[B>>2];a[l+4>>2]=a[B+4>>2];a[l+8>>2]=a[B+8>>2];a[l+12>>2]=a[B+12>>2];a[t>>2]=a[d>>2];a[t+4>>2]=a[d+4>>2];a[t+8>>2]=a[d+8>>2];a[t+12>>2]=a[d+12>>2];h=+Pj(n,l,t);a[n>>2]=a[w>>2];a[n+4>>2]=a[w+4>>2];a[n+8>>2]=a[w+8>>2];a[n+12>>2]=a[w+12>>2];a[l>>2]=a[B>>2];a[l+4>>2]=a[B+4>>2];a[l+8>>2]=a[B+8>>2];a[l+12>>2]=a[B+12>>2];a[t>>2]=a[d>>2];a[t+4>>2]=a[d+4>>2];a[t+8>>2]=a[d+8>>2];a[t+12>>2]=a[d+12>>2];Sj(n,l,t,b,u);e=+s[u>>3]*h+e;i=+s[b>>3]*h+i;r=h+r;c=f}s[A+8>>3]=i/r;s[A+16>>3]=e/r;k=o;return}function Pj(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0,a=0.0;r=+s[e+8>>3];a=+s[i+8>>3];f=+s[A+8>>3];return+(+W(+((a-f)*+s[e>>3]+(r-a)*+s[A>>3]+ +s[i>>3]*(f-r)))*.5)}function Sj(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;s[r>>3]=(+s[e>>3]+ +s[A>>3]+ +s[i>>3])*.3333333333333333;s[f>>3]=(+s[e+8>>3]+ +s[A+8>>3]+ +s[i+8>>3])*.3333333333333333;return}function Oj(){var A=0,e=0,i=0,r=0;A=a[46845]|0;if(!A){A=$F(a[46854]<<2)|0;a[46845]=A;a[46848]=A+(a[46854]<<2)}i=a[46869]|0;MS();r=a[46854]|0;e=0;while(1){if((e|0)>=(r|0))break;a[A>>2]=i+8;a[i+88>>2]=0;a[i+28>>2]=1;i=i+96|0;A=A+4|0;e=e+1|0}K4(a[46845]|0,r,4,69);a[46847]=a[46845];return}function Kj(A,e){A=A|0;e=e|0;var i=0.0,r=0.0;A=a[A>>2]|0;e=a[e>>2]|0;i=+s[A+8>>3];r=+s[e+8>>3];if(!(ir)){r=+s[A>>3];i=+s[e>>3];if(ri&1}else A=1;else A=-1;return A|0}function _j(){var A=0,e=0,i=0,r=0;i=a[46854]|0;A=0;e=a[46869]|0;while(1){if((A|0)>=(i|0))break;r=e+8|0;s[r>>3]=+s[r>>3]*1.05;r=e+16|0;s[r>>3]=+s[r>>3]*1.05;A=A+1|0;e=e+96|0}return}function qj(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,s=0.0,b=0.0;t=k;k=k+48|0;l=t;n=t+24|0;i=Ho(e,93112)|0;if(!((i|0)!=0?($j(i,n,1.0,0.0)|0)!=0:0))f=3;do{if((f|0)==3){e=Ho(e,93116)|0;if(e|0?$j(e,n,.800000011920929,4.0)|0:0)break;c[n+4>>2]=4.0;c[n>>2]=4.0;r[n+8>>0]=1}}while(0);if(0){}a[A>>2]=a[n>>2];a[A+4>>2]=a[n+4>>2];a[A+8>>2]=a[n+8>>2];k=t;return}function $j(A,e,i,f){A=A|0;e=e|0;i=+i;f=+f;var n=0,l=0,t=0,s=0,b=0,u=0,w=0,o=0,h=0.0;w=k;k=k+16|0;b=w;t=w+12|0;s=w+8|0;while(1){n=r[A>>0]|0;l=A+1|0;if(!(m1(n<<24>>24)|0))break;else A=l}o=n<<24>>24==43;n=e+8|0;r[n>>0]=o&1;a[b>>2]=t;a[b+4>>2]=s;switch(J3(o?l:A,93154,b)|0){case 0:{A=0;break}case 1:{a[s>>2]=a[t>>2];u=5;break}default:u=5}if((u|0)==5){do{if(r[n>>0]|0){if(i>1.0){h=+c[t>>2]/i;c[e>>2]=h>f?f:h;i=+c[s>>2]/i;i=i>f?f:i;break}if(i<1.0){h=+c[t>>2]/i;c[e>>2]=h>2]/i;i=i>2]=a[t>>2];i=+c[s>>2];break}}else{c[e>>2]=+c[t>>2]/i+1.0;i=+c[s>>2]/i+1.0}}while(0);c[e+4>>2]=i;A=1}k=w;return A|0}function AP(A,e){A=A|0;e=e|0;var i=0,r=0;r=k;k=k+32|0;i=r;if((gh(A)|0)<2)A=0;else{Qj(A,e,i)|0;A=yj(A,i)|0}k=r;return A|0}function eP(A){A=A|0;return AP(A,Ho(A,92507)|0)|0}function iP(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,s=0.0,b=0.0;t=k;k=k+48|0;l=t;n=t+24|0;i=Ho(e,93116)|0;if(!((i|0)!=0?($j(i,n,1.0,0.0)|0)!=0:0))f=3;do{if((f|0)==3){e=Ho(e,93112)|0;if(e|0?$j(e,n,1.25,3.200000047683716)|0:0)break;c[n+4>>2]=3.200000047683716;c[n>>2]=3.200000047683716;r[n+8>>0]=1}}while(0);if(0){}a[A>>2]=a[n>>2];a[A+4>>2]=a[n+4>>2];a[A+8>>2]=a[n+8>>2];k=t;return}function rP(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,s=0,b=0,u=0,w=0,o=0;o=k;k=k+16|0;w=o;n=0;while(1){if((n|0)>=(i|0))break;a[r+(n<<2)>>2]=-1;n=n+1|0}a[r+(A<<2)>>2]=0;fP(f,A);A:do{if(!(a[e+8>>2]|0)){n=2147483647;e:while(1){if(!((aP(f,w)|0)<<24>>24))break A;t=a[w>>2]|0;n=a[r+(t<<2)>>2]|0;l=e+(t*20|0)|0;t=e+(t*20|0)+4|0;s=n+1|0;A=1;while(1){if((A|0)>=(a[l>>2]|0))continue e;b=a[(a[t>>2]|0)+(A<<2)>>2]|0;u=r+(b<<2)|0;if((a[u>>2]|0)<0){a[u>>2]=s;nP(f,b)|0}A=A+1|0}}}else{n=2147483647;e:while(1){if(!((aP(f,w)|0)<<24>>24))break A;s=a[w>>2]|0;n=a[r+(s<<2)>>2]|0;l=e+(s*20|0)|0;t=e+(s*20|0)+4|0;s=e+(s*20|0)+8|0;A=1;while(1){if((A|0)>=(a[l>>2]|0))continue e;b=a[(a[t>>2]|0)+(A<<2)>>2]|0;u=r+(b<<2)|0;if((a[u>>2]|0)<0){a[u>>2]=n+~~+c[(a[s>>2]|0)+(A<<2)>>2];nP(f,b)|0}A=A+1|0}}}}while(0);A=n+10|0;n=0;while(1){if((n|0)>=(i|0))break;l=r+(n<<2)|0;if((a[l>>2]|0)<0)a[l>>2]=A;n=n+1|0}k=o;return}function fP(A,e){A=A|0;e=e|0;a[a[A>>2]>>2]=e;a[A+12>>2]=0;a[A+8>>2]=1;return}function aP(A,e){A=A|0;e=e|0;var i=0,r=0;i=A+12|0;r=a[i>>2]|0;if((r|0)<(a[A+8>>2]|0)){A=a[A>>2]|0;a[i>>2]=r+1;a[e>>2]=a[A+(r<<2)>>2];A=1}else A=0;return A|0}function nP(A,e){A=A|0;e=e|0;var i=0,r=0;i=A+8|0;r=a[i>>2]|0;if((r|0)<(a[A+4>>2]|0)){A=a[A>>2]|0;a[i>>2]=r+1;a[A+(r<<2)>>2]=e;A=1}else A=0;return A|0}function lP(A,e){A=A|0;e=e|0;a[A>>2]=$F(e<<2)|0;a[A+4>>2]=e;a[A+8>>2]=0;a[A+12>>2]=0;return}function tP(A){A=A|0;L2(a[A>>2]|0);return}function cP(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0,n=0,l=0;if(true)n=0;else{}while(1){if((n|0)>=(A|0))break;l=e+(n<<2)|0;f=0;r=0.0;while(1){if((f|0)==(A|0))break;if((n|0)!=(f|0))r=+s[(a[l>>2]|0)+(f<<3)>>3]+r;f=f+1|0}s[(a[l>>2]|0)+(n<<3)>>3]=-r;n=n+1|0}return cO(e,i,A+-1|0)|0}function sP(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0.0;t=tU(e,e,0.0)|0;c=tU(e,e,0.0)|0;r=cd(A)|0;while(1){if(!r)break;i=Ah(A,r)|0;while(1){if(!i)break;n=a[i>>2]&3;f=(a[a[((n|0)==3?i:i+48|0)+40>>2]>>2]|0)>>>4;n=(a[a[((n|0)==2?i:i+-48|0)+40>>2]>>2]|0)>>>4;if((f|0)!=(n|0)){b=-1.0/+s[(a[i+16>>2]|0)+136>>3];s[(a[t+(n<<2)>>2]|0)+(f<<3)>>3]=b;s[(a[t+(f<<2)>>2]|0)+(n<<3)>>3]=b}i=eh(A,i,r)|0}r=sd(A,r)|0}l=cP(e,t,c)|0;A:do{if(l|0){f=A+16|0;r=0;while(1){if((r|0)>=(e|0))break A;n=c+(r<<2)|0;i=0;while(1){if((i|0)==(e|0))break;A=a[n>>2]|0;s[(a[(a[(a[f>>2]|0)+160>>2]|0)+(r<<2)>>2]|0)+(i<<3)>>3]=+s[(a[c+(i<<2)>>2]|0)+(i<<3)>>3]+ +s[A+(r<<3)>>3]+ +s[A+(i<<3)>>3]*-2.0;i=i+1|0}r=r+1|0}}}while(0);cU(t);cU(c);return l|0}function bP(A,e,i,r,f,a){A=A|0;e=e|0;i=i|0;r=r|0;f=+f;a=a|0;var n=0.0,l=0.0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0;B=k;k=k+16|0;c=B;u=r<<3;w=$F(u)|0;o=$F(u)|0;h=$F(u)|0;s=$F(u)|0;b=$F(u)|0;u=$F(u)|0;QO(r,i,u);vO(r,u);vO(r,e);CO(A,r,e,s);ZO(r,u,s,w);QO(r,w,o);t=a+-1|0;i=0;n=+LO(r,w,w);while(1){if((i|0)>=(a|0)){i=0;break}if(!(+yO(r,w)>f)){i=0;break}CO(A,r,o,h);l=+LO(r,o,h);if(l==0.0){i=0;break}l=n/l;mO(r,o,l,b);GO(r,e,b,e);if((i|0)<(t|0)){mO(r,h,l,h);ZO(r,w,h,w);l=+LO(r,w,w);if(n==0.0){d=7;break}mO(r,o,l/n,o);GO(r,w,o,o);n=l}i=i+1|0}if((d|0)==7){ao(1,93242,c)|0;i=1}L2(w);L2(o);L2(h);L2(s);L2(b);L2(u);k=B;return i|0}function uP(A,e,i,r,f,a,n){A=A|0;e=e|0;i=i|0;r=r|0;f=+f;a=a|0;n=n|0;var l=0.0,t=0.0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0;B=k;k=k+16|0;c=B;w=r<<3;o=$F(w)|0;h=$F(w)|0;s=$F(w)|0;b=$F(w)|0;u=$F(w)|0;w=$F(w)|0;QO(r,i,w);if(n<<24>>24){vO(r,w);vO(r,e)}IO(A,r,e,b);ZO(r,w,b,o);QO(r,o,h);n=a+-1|0;i=0;l=+LO(r,o,o);while(1){if((i|0)>=(a|0)){i=0;break}if(!(+yO(r,o)>f)){i=0;break}IO(A,r,h,s);t=+LO(r,h,s);if(t==0.0){i=0;break}t=l/t;mO(r,h,t,u);GO(r,e,u,e);if((i|0)<(n|0)){mO(r,s,t,s);ZO(r,o,s,o);t=+LO(r,o,o);if(l==0.0){d=9;break}mO(r,h,t/l,h);GO(r,o,h,h);l=t}i=i+1|0}if((d|0)==9){ao(1,93242,c)|0;i=1}L2(o);L2(h);L2(s);L2(b);L2(u);L2(w);k=B;return i|0}function wP(A,e,i,r,f,a){A=A|0;e=e|0;i=i|0;r=r|0;f=+f;a=a|0;var n=0.0,l=0.0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0;h=k;k=k+16|0;c=h;s=r<<2;b=qF(s)|0;u=qF(s)|0;w=qF(s)|0;s=qF(s)|0;zO(r,e);zO(r,i);YO(A,r,e,s);zO(r,s);DO(r,i,s,b);JO(r,b,u);t=a+-1|0;i=0;n=+pO(r,b,b);while(1){if((i|0)>=(a|0)){i=0;break}if(!(+XO(r,b)>f)){i=0;break}zO(r,u);zO(r,e);zO(r,b);YO(A,r,u,w);zO(r,w);l=+pO(r,u,w);if(l==0.0){i=0;break}l=n/l;FO(r,e,l,u);if((i|0)<(t|0)){FO(r,b,-l,w);l=+pO(r,b,b);if(n==0.0){o=7;break}VO(r,u,l/n,u);MO(r,b,u,u);n=l}i=i+1|0}if((o|0)==7){ao(1,93242,c)|0;i=1}L2(b);L2(u);L2(w);L2(s);k=h;return i|0}function kP(A,e,i,r,f,n,l,t,b,u){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;t=t|0;b=b|0;u=+u;var w=0,o=0,h=0.0,d=0,B=0,g=0,v=0,E=0.0,C=0,I=0,Z=0,G=0,m=0.0,Q=0,L=0,y=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0.0;p=k;k=k+48|0;z=p+24|0;y=p+16|0;L=p+8|0;Q=p;F=p+40|0;V=p+36|0;D=p+32|0;B=l&4;a[F>>2]=0;a[V>>2]=0;A:do{if(a[A+16>>2]|0){o=0;w=0;while(1){if((o|0)>=(e|0))break;g=a[A+(o*20|0)>>2]|0;v=A+(o*20|0)+16|0;d=1;while(1){if((d|0)>=(g|0))break;if(!(w<<24>>24))w=+c[(a[v>>2]|0)+(d<<2)>>2]!=0.0;else w=1;d=d+1|0;w=w&1}o=o+1|0}if(w<<24>>24){G=(B|0)!=0;if(G){d=r+4|0;e:do{if((n|0)>2){w=n+-1|0;if((iU(A,e,i,d,f,w,l,t,15)|0)<0){w=-1;break A}o=r+(w<<2)|0;w=0;while(1){if((w|0)>=(e|0))break e;s[(a[o>>2]|0)+(w<<3)>>3]=+s[(a[d>>2]|0)+(w<<3)>>3];w=w+1|0}}}while(0);Z=a[r>>2]|0;C=a[d>>2]|0;if((KO(A,e,C,e)|0)==0?(Bw(A,e,.01,.1,C,F,V,D)|0)==0:0){I=a[D>>2]|0;if((I|0)<1){w=iU(A,e,i,r,f,n,l,t,b)|0;break}e:do{if(u>0.0){B=a[F>>2]|0;g=a[V>>2]|0;v=I+-1|0;h=0.0;d=0;while(1){if((d|0)>=(I|0))break e;w=a[g+(d<<2)>>2]|0;m=u-h-+s[C+(a[B+(w<<2)>>2]<<3)>>3]+ +s[C+(a[B+(w+-1<<2)>>2]<<3)>>3];h=(m<0.0?0.0:m)+h;if((d|0)<(v|0))o=a[g+(d+1<<2)>>2]|0;else o=e;while(1){if((w|0)>=(o|0))break;M=C+(a[B+(w<<2)>>2]<<3)|0;s[M>>3]=+s[M>>3]+h;w=w+1|0}d=d+1|0}}}while(0);if((n|0)==2?(yK(A,e,C,Z,+s[23294])|0)!=0:0){o=0;w=-1}else J=33}else{o=0;w=-1}}else{KH(A,e,n,r,f)|0;if(!(Bw(A,e,.01,.1,0,F,V,D)|0))J=33;else{o=0;w=-1}}e:do{if((J|0)==33){if((e|0)==1){w=0;break A}M=$F(a[D>>2]<<2)|0;if(!b){w=0;break A}if(0){}switch(t|0){case 2:{if(0){}w=eU(A,e)|0;J=46;break}case 1:{w=_H(A,e)|0;if(!w){ao(0,93315,Q)|0;ao(3,93364,L)|0;J=47}else Y=w;break}case 3:{if(0){}w=qH(A,e)|0;J=46;break}default:J=47}if((J|0)==46)if(!w)J=47;else Y=w;if((J|0)==47){if(0){}Y=AU(A,e)|0}if(0){}A=e+-1|0;Z=(U(A,e)|0)/2|0;y=Z+e|0;i:do{if(!G){h=1.0;o=0;while(1){if((o|0)>=(n|0))break;d=r+(o<<2)|0;w=0;while(1){if((w|0)>=(e|0))break;m=+W(+ +s[(a[d>>2]|0)+(w<<3)>>3]);h=m>h?m:h;w=w+1|0}o=o+1|0}h=1.0/h;o=0;while(1){if((o|0)>=(n|0))break i;d=r+(o<<2)|0;w=0;while(1){if((w|0)>=(e|0))break;L=(a[d>>2]|0)+(w<<3)|0;s[L>>3]=+s[L>>3]*(10.0*h);w=w+1|0}o=o+1|0}}}while(0);i:do{if(u>0.0){E=+(Z|0);w=0;h=0.0;B=0;r:while(1){if((B|0)>=(A|0))break;g=B+1|0;d=w;o=g;while(1){w=d+1|0;if((o|0)>=(e|0)){B=g;continue r}m=+jS(r,n,B,o);d=w;h=m/+c[Y+(w<<2)>>2]+h;o=o+1|0}}h=h/E;w=0;while(1){if((w|0)>=(y|0)){w=0;break i}L=Y+(w<<2)|0;c[L>>2]=+c[L>>2]*h;w=w+1|0}}else w=0}while(0);while(1){if((w|0)>=(n|0))break;vO(e,a[r+(w<<2)>>2]|0);w=w+1|0}o=a[r+4>>2]|0;h=+s[o>>3];w=0;while(1){if((w|0)>=(e|0))break;L=o+(w<<3)|0;s[L>>3]=+s[L>>3]-h;w=w+1|0}v=n<<2;L=$F(v)|0;I=e<<2;C=U(I,n)|0;d=$F(C)|0;w=0;while(1){if((w|0)>=(n|0))break;B=d+((U(w,e)|0)<<2)|0;a[L+(w<<2)>>2]=B;g=r+(w<<2)|0;o=0;while(1){if((o|0)>=(e|0))break;c[B+(o<<2)>>2]=+s[(a[g>>2]|0)+(o<<3)>>3];o=o+1|0}w=w+1|0}E=+(Z|0);if(0){}HO(y,Y);UO(y,Y);Q=$F(e<<3)|0;NO(e,0.0,Q);w=0;d=0;while(1){if((d|0)>=(A|0)){w=e;o=0;d=0;break}B=e-d|0;h=0.0;o=1;while(1){w=w+1|0;if((o|0)>=(B|0))break;m=+c[Y+(w<<2)>>2];z=Q+(o+d<<3)|0;s[z>>3]=+s[z>>3]-m;h=h+m;o=o+1|0}z=Q+(d<<3)|0;s[z>>3]=+s[z>>3]-h;d=d+1|0}while(1){if((o|0)>=(e|0))break;c[Y+(d<<2)>>2]=+s[Q+(o<<3)>>3];z=w+d|0;w=w+-1|0;o=o+1|0;d=z}t=$F(v)|0;a[t>>2]=$F(C)|0;w=1;while(1){if((w|0)>=(n|0))break;a[t+(w<<2)>>2]=(a[t>>2]|0)+((U(w,e)|0)<<2);w=w+1|0}G=$F(I)|0;f=$F(I)|0;l=$F(y<<2)|0;o=dK(Y,e)|0;i=CK(Y,e,a[F>>2]|0,a[V>>2]|0,a[D>>2]|0)|0;Z=t+4|0;d=0;m=1797693134862315708145274.0e284;w=0;while(1){if(!(d<<24>>24==0&(w|0)<(b|0)))break;NO(e,0.0,Q);xO(y,Y,l);C=0;g=0;while(1){if((C|0)>=(A|0)){d=0;B=e;g=0;break}I=e-C+-1|0;RO(e,0.0,f);d=0;while(1){if((d|0)>=(n|0))break;D=L+(d<<2)|0;RO(I,+c[(a[D>>2]|0)+(C<<2)>>2],G);FO(I,G,-1.0,(a[D>>2]|0)+(C<<2)+4|0);HO(I,G);MO(I,G,f,f);d=d+1|0}TO(I,f);d=0;while(1){if((d|0)>=(I|0))break;B=f+(d<<2)|0;h=+c[B>>2];if(h>=3402823466385288598117041.0e14|h<0.0)c[B>>2]=0.0;d=d+1|0}v=C+1|0;h=0.0;d=g;B=0;while(1){d=d+1|0;if((B|0)>=(I|0))break;D=l+(d<<2)|0;N=+c[D>>2]*+c[f+(B<<2)>>2];c[D>>2]=N;D=Q+(v+B<<3)|0;s[D>>3]=+s[D>>3]-N;h=h+N;B=B+1|0}g=Q+(C<<3)|0;s[g>>3]=+s[g>>3]-h;C=v;g=d}while(1){if((d|0)>=(e|0)){d=0;break}c[l+(g<<2)>>2]=+s[Q+(d<<3)>>3];D=B+g|0;d=d+1|0;B=B+-1|0;g=D}while(1){if((d|0)>=(n|0)){h=0.0;d=0;break}YO(l,e,a[L+(d<<2)>>2]|0,a[t+(d<<2)>>2]|0);d=d+1|0}while(1){if((d|0)>=(n|0))break;h=+pO(e,a[L+(d<<2)>>2]|0,a[t+(d<<2)>>2]|0)+h;d=d+1|0}h=h*2.0+E;d=0;while(1){if((d|0)>=(n|0))break;D=L+(d<<2)|0;YO(Y,e,a[D>>2]|0,G);h=h-+pO(e,a[D>>2]|0,G);d=d+1|0}N=+W(+(h-m))/+W(+(m+1.0e-10));d=((w|0)>1&h>m|N<+s[23294])&1;B=0;while(1){if((B|0)>=(n|0))break;if((B|0)!=1){if(wP(Y,a[L+(B<<2)>>2]|0,a[t+(B<<2)>>2]|0,e,.001,e)|0){w=-1;break e}}else BK(i,a[Z>>2]|0,L,n,1,15,M,u)|0;B=B+1|0}m=h;w=w+1|0}L2(M);EK(i);if(L|0){d=0;while(1){if((d|0)>=(n|0))break;g=L+(d<<2)|0;v=r+(d<<2)|0;B=0;while(1){if((B|0)>=(e|0))break;s[(a[v>>2]|0)+(B<<3)>>3]=+c[(a[g>>2]|0)+(B<<2)>>2];B=B+1|0}d=d+1|0}L2(a[L>>2]|0);L2(L)}if(t|0){L2(a[t>>2]|0);L2(t)}L2(G);L2(f);L2(Q);L2(Y);L2(l)}}while(0);L2(a[F>>2]|0);L2(a[V>>2]|0);if(o){L2(a[o>>2]|0);L2(o)}}else J=10}else J=10}while(0);if((J|0)==10)w=iU(A,e,i,r,f,n,l,t,b)|0;k=p;return w|0}function oP(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0;b=k;k=k+48|0;f=b+24|0;n=b+12|0;i=b;l=gh(A)|0;c=$F(l*48|0)|0;qj(i,A);a[n>>2]=a[i>>2];a[n+4>>2]=a[i+4>>2];a[n+8>>2]=a[i+8>>2];i=cd(A)|0;r=c;while(1){if(!i)break;a[f>>2]=a[n>>2];a[f+4>>2]=a[n+4>>2];a[f+8>>2]=a[n+8>>2];hP(i,r,f);i=sd(A,i)|0;r=r+48|0}A:do{if(!(dP(c,l)|0))i=0;else{switch(e|0){case 9:{gP(A,c,l,70,1);EP(A,c,l,71,1);i=0;r=c;break}case 10:{EP(A,c,l,71,1);gP(A,c,l,70,1);i=0;r=c;break}case 7:{gP(A,c,l,72,1);EP(A,c,l,71,1);t=9;break}case 8:{t=9;break}case 13:{t=10;break}case 14:{EP(A,c,l,71,0);gP(A,c,l,70,0);i=0;r=c;break}case 12:{EP(A,c,l,73,0);gP(A,c,l,70,0);i=0;r=c;break}default:{gP(A,c,l,72,0);EP(A,c,l,71,0);i=0;r=c}}if((t|0)==9){EP(A,c,l,73,1);gP(A,c,l,70,1);t=10}if((t|0)==10){gP(A,c,l,70,0);EP(A,c,l,71,0);i=0;r=c}while(1){if((i|0)>=(l|0)){i=1;break A}n=a[r+16>>2]|0;t=a[(a[(a[r+20>>2]|0)+16>>2]|0)+132>>2]|0;s[t>>3]=+(a[r+12>>2]|0)*1.3888888888888887e-03;s[t+8>>3]=+(n|0)*1.3888888888888887e-03;i=i+1|0;r=r+48|0}}}while(0);L2(c);k=b;return i|0}function hP(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,b=0.0,u=0.0;f=a[A+16>>2]|0;t=a[f+132>>2]|0;b=+s[t>>3]*720.0;l=~~(b+(b>=0.0?.5:-.5));b=+s[t+8>>3]*720.0;t=~~(b+(b>=0.0?.5:-.5));if(!(r[i+8>>0]|0)){u=+s[f+32>>3]*72.0*(+c[i>>2]*5.0);b=+s[f+40>>3]*72.0*(+c[i+4>>2]*5.0);n=~~(u+(u>=0.0?.5:-.5));f=~~(b+(b>=0.0?.5:-.5))}else{b=+s[f+32>>3]*36.0;u=+s[f+40>>3]*36.0;n=~~((+c[i>>2]+ +(~~(b+(b>=0.0?.5:-.5))|0))*10.0);f=~~((+c[i+4>>2]+ +(~~(u+(u>=0.0?.5:-.5))|0))*10.0)}a[e+12>>2]=l;a[e+16>>2]=t;a[e+20>>2]=A;a[e+32>>2]=l-n;a[e+36>>2]=t-f;a[e+40>>2]=n+l;a[e+44>>2]=f+t;return}function dP(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0;s=e+-1|0;i=0;A:while(1){if((i|0)>=(s|0)){A=0;break}c=A+48|0;i=i+1|0;n=A+32|0;l=A+40|0;t=A+36|0;f=A+44|0;A=c;r=i;while(1){if((r|0)>=(e|0)){A=c;continue A}if((((a[n>>2]|0)<=(a[A+40>>2]|0)?(a[A+32>>2]|0)<=(a[l>>2]|0):0)?(a[t>>2]|0)<=(a[A+44>>2]|0):0)?(a[A+36>>2]|0)<=(a[f>>2]|0):0){A=1;break A}A=A+48|0;r=r+1|0}}return A|0}function BP(A,e){A=A|0;e=e|0;if((a[A+36>>2]|0)>(a[e+44>>2]|0))A=0;else A=(a[e+36>>2]|0)<=(a[A+44>>2]|0)&1;return A|0}function gP(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0;t=jk(18168,a[4584]|0)|0;n=e;l=0;while(1){if((l|0)>=(i|0))break;a[n+8>>2]=a[n+12>>2];y5[a[t>>2]&63](t,n,1)|0;n=n+48|0;l=l+1|0}if(!f)l=QP(A,t,r,74)|0;else l=mP(t,r,74)|0;JV(l,2,2147483647)|0;n=0;while(1){if((n|0)>=(i|0))break;f=e+12|0;A=a[(a[(a[e+24>>2]|0)+16>>2]|0)+232>>2]|0;r=A-(a[f>>2]|0)|0;a[f>>2]=A;f=e+32|0;a[f>>2]=(a[f>>2]|0)+r;f=e+40|0;a[f>>2]=(a[f>>2]|0)+r;e=e+48|0;n=n+1|0}LP(l);Hk(t)|0;return}function vP(A,e){A=A|0;e=e|0;if((a[A+32>>2]|0)>(a[e+40>>2]|0))A=0;else A=(a[e+32>>2]|0)<=(a[A+40>>2]|0)&1;return A|0}function EP(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0;t=jk(18168,a[4584]|0)|0;n=e;l=0;while(1){if((l|0)>=(i|0))break;a[n+8>>2]=a[n+16>>2];y5[a[t>>2]&63](t,n,1)|0;n=n+48|0;l=l+1|0}if(!f)l=QP(A,t,r,75)|0;else l=mP(t,r,75)|0;JV(l,2,2147483647)|0;n=0;while(1){if((n|0)>=(i|0))break;f=e+16|0;A=a[(a[(a[e+24>>2]|0)+16>>2]|0)+232>>2]|0;r=A-(a[f>>2]|0)|0;a[f>>2]=A;f=e+36|0;a[f>>2]=(a[f>>2]|0)+r;f=e+44|0;a[f>>2]=(a[f>>2]|0)+r;e=e+48|0;n=n+1|0}LP(l);Hk(t)|0;return}function CP(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;i=A+32|0;r=e+32|0;if((a[A+36>>2]|0)<=(a[e+44>>2]|0)?(a[e+36>>2]|0)<=(a[A+44>>2]|0):0)if((a[A+40>>2]|0)<(a[r>>2]|0))A=1;else{n=GP(i,r)|0;n=n-(a[e+12>>2]|0)+(a[A+12>>2]|0)|0;e=a[e+16>>2]|0;A=a[A+16>>2]|0;f=(e|0)<(A|0);r=ZP(i,r)|0;A=(n|0)<=(r-(f?A:e)+(f?e:A)|0)&1}else A=0;return A|0}function IP(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;i=A+32|0;r=e+32|0;if((a[i>>2]|0)<=(a[e+40>>2]|0)?(a[r>>2]|0)<=(a[A+40>>2]|0):0)if((a[A+44>>2]|0)<(a[e+36>>2]|0))A=1;else{n=ZP(i,r)|0;n=n-(a[e+16>>2]|0)+(a[A+16>>2]|0)|0;e=a[e+12>>2]|0;A=a[A+12>>2]|0;f=(e|0)<(A|0);r=GP(i,r)|0;A=(n|0)<=(r-(f?A:e)+(f?e:A)|0)&1}else A=0;return A|0}function ZP(A,e){A=A|0;e=e|0;return((a[A+12>>2]|0)-(a[A+4>>2]|0)+(a[e+12>>2]|0)-(a[e+4>>2]|0)|0)/2|0|0}function GP(A,e){A=A|0;e=e|0;return((a[A+8>>2]|0)-(a[A>>2]|0)+(a[e+8>>2]|0)-(a[e>>2]|0)|0)/2|0|0}function mP(A,e,i){A=A|0;e=e|0;i=i|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0;I=k;k=k+16|0;E=I;r[E>>0]=r[18588]|0;r[E+1>>0]=r[18589]|0;r[E+2>>0]=r[18590]|0;r[E+3>>0]=r[18591]|0;C=kh(93515,E,0)|0;Td(C,137483,280,1)|0;n=xk(A)|0;l=-2147483647;v=0;while(1){if(!n)break;B=a[n+8>>2]|0;g=v+((l|0)!=(B|0)&1)|0;n=a[n>>2]|0;l=B;v=g}B=C+16|0;g=(v<<3)+-4|0;u=0;c=0;n=0;l=0;b=0;d=xk(A)|0;t=-2147483647;while(1){if(!d)break;h=a[d+8>>2]|0;if((t|0)!=(h|0)){o=gd(C,Vh(a[d+20>>2]|0)|0,1)|0;Td(o,137447,304,1)|0;w=o+16|0;n=a[w>>2]|0;a[n+112>>2]=d;if(!l){a[(a[B>>2]|0)+192>>2]=o;u=o}else{a[(a[u+16>>2]|0)+164>>2]=o;u=l}a[n+176>>2]=0;s=c+1|0;t=qF(s<<2)|0;a[(a[w>>2]|0)+172>>2]=t;if(!b){c=s;s=o;b=o;n=o;l=u;t=h}else{t=b+16|0;a[(a[t>>2]|0)+184>>2]=0;c=qF((b|0)==(u|0)?g:v-c<<2)|0;a[(a[t>>2]|0)+180>>2]=c;c=th(C,b,o,0,1)|0;Td(c,137460,176,1)|0;n=a[c+16>>2]|0;f[n+170>>1]=10;a[n+156>>2]=1;n=a[t>>2]|0;l=a[n+180>>2]|0;if(!l)n=$F((a[n+184>>2]<<2)+8|0)|0;else n=eV(l,(a[n+184>>2]<<2)+8|0)|0;b=a[t>>2]|0;a[b+180>>2]=n;b=b+184|0;l=a[b>>2]|0;a[b>>2]=l+1;a[n+(l<<2)>>2]=c;n=a[t>>2]|0;a[(a[n+180>>2]|0)+(a[n+184>>2]<<2)>>2]=0;n=a[w>>2]|0;l=a[n+172>>2]|0;if(!l)n=$F((a[n+176>>2]<<2)+8|0)|0;else n=eV(l,(a[n+176>>2]<<2)+8|0)|0;l=a[w>>2]|0;a[l+172>>2]=n;l=l+176|0;b=a[l>>2]|0;a[l>>2]=b+1;a[n+(b<<2)>>2]=c;c=a[w>>2]|0;a[(a[c+172>>2]|0)+(a[c+176>>2]<<2)>>2]=0;c=s;s=o;b=o;n=o;l=u;t=h}}else{s=n;n=u}a[d+24>>2]=s;u=n;n=s;d=a[d>>2]|0}b=b+16|0;a[(a[b>>2]|0)+184>>2]=0;n=qF(4)|0;a[(a[b>>2]|0)+180>>2]=n;r[E>>0]=r[18588]|0;r[E+1>>0]=r[18589]|0;r[E+2>>0]=r[18590]|0;r[E+3>>0]=r[18591]|0;b=kh(93562,E,0)|0;n=xk(A)|0;while(1){if(!n)break;E=gd(b,Vh(a[n+20>>2]|0)|0,1)|0;Td(E,137447,304,1)|0;a[n+28>>2]=E;a[(a[E+16>>2]|0)+112>>2]=n;n=a[n>>2]|0}n=0;s=xk(A)|0;l=-2147483647;A:while(1){if(!s)break;c=a[s+8>>2]|0;e:do{if((l|0)==(c|0))c=l;else{n=s;while(1){n=a[n>>2]|0;if(!n)break A;if((a[n+8>>2]|0)!=(c|0))break e}}}while(0);t=s+28|0;l=n;while(1){if(!l)break;if(Q5[e&127](s,l)|0)th(b,a[t>>2]|0,a[l+28>>2]|0,0,1)|0;l=a[l>>2]|0}s=a[s>>2]|0;l=c}yP(b,C,i);Bh(b)|0;k=I;return C|0}function QP(A,e,i,n){A=A|0;e=e|0;i=i|0;n=n|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0;B=k;k=k+16|0;d=B;r[d>>0]=r[18588]|0;r[d+1>>0]=r[18589]|0;r[d+2>>0]=r[18590]|0;r[d+3>>0]=r[18591]|0;d=kh(93515,d,0)|0;Td(d,137483,280,1)|0;s=d+16|0;l=xk(e)|0;t=0;while(1){if(!l)break;c=gd(d,Vh(a[l+20>>2]|0)|0,1)|0;Td(c,137447,304,1)|0;o=c+16|0;u=a[o>>2]|0;a[u+112>>2]=l;a[l+24>>2]=c;a[u+176>>2]=0;u=qF(4)|0;w=a[o>>2]|0;a[w+172>>2]=u;a[w+184>>2]=0;w=qF(4)|0;a[(a[o>>2]|0)+180>>2]=w;if(!t)a[(a[s>>2]|0)+192>>2]=c;else a[(a[t+16>>2]|0)+164>>2]=c;l=a[l>>2]|0;t=c}b=xk(e)|0;A:while(1){if(!b)break;u=b+32|0;w=b+24|0;o=b+20|0;l=b;while(1){l=a[l>>2]|0;if(!l)break;if(Q5[i&127](b,l)|0){t=Q5[n&127](u,l+32|0)|0;c=th(d,a[w>>2]|0,a[l+24>>2]|0,0,1)|0;Td(c,137460,176,1)|0;if((t|0)>=65536){h=13;break A}s=c+16|0;g=a[s>>2]|0;f[g+170>>1]=t;a[g+156>>2]=1;if(c|0?th(A,a[o>>2]|0,a[l+20>>2]|0,0,0)|0:0)a[(a[s>>2]|0)+156>>2]=100}}b=a[b>>2]|0}if((h|0)==13)gA(93518,93534,254,93547);b=xk(e)|0;while(1){if(!b)break;s=a[b+24>>2]|0;u=s+16|0;s=Oo(d,s)|0;while(1){if(!s)break;l=a[u>>2]|0;t=a[l+180>>2]|0;if(!t)l=$F((a[l+184>>2]<<2)+8|0)|0;else l=eV(t,(a[l+184>>2]<<2)+8|0)|0;t=a[u>>2]|0;a[t+180>>2]=l;t=t+184|0;c=a[t>>2]|0;a[t>>2]=c+1;a[l+(c<<2)>>2]=s;c=a[u>>2]|0;a[(a[c+180>>2]|0)+(a[c+184>>2]<<2)>>2]=0;c=s+-48|0;l=a[(a[((a[s>>2]&3|0)==2?s:c)+40>>2]|0)+16>>2]|0;t=a[l+172>>2]|0;if(!t)l=$F((a[l+176>>2]<<2)+8|0)|0;else l=eV(t,(a[l+176>>2]<<2)+8|0)|0;a[(a[(a[((a[s>>2]&3|0)==2?s:c)+40>>2]|0)+16>>2]|0)+172>>2]=l;n=a[(a[((a[s>>2]&3|0)==2?s:c)+40>>2]|0)+16>>2]|0;h=a[n+172>>2]|0;n=n+176|0;g=a[n>>2]|0;a[n>>2]=g+1;a[h+(g<<2)>>2]=s;g=a[(a[((a[s>>2]&3|0)==2?s:c)+40>>2]|0)+16>>2]|0;a[(a[g+172>>2]|0)+(a[g+176>>2]<<2)>>2]=0;s=_o(d,s)|0}b=a[b>>2]|0}k=B;return d|0}function LP(A){A=A|0;var e=0,i=0,r=0,f=0;f=cd(A)|0;while(1){if(!f)break;i=f+16|0;e=a[i>>2]|0;r=a[e+172>>2]|0;if(r){L2(r);e=a[i>>2]|0}e=a[e+180>>2]|0;if(e|0)L2(e);f=sd(A,f)|0}Bh(A)|0;return}function yP(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0;s=cd(A)|0;while(1){if(!s)break;w=a[(a[s+16>>2]|0)+112>>2]|0;u=a[w+24>>2]|0;w=w+32|0;k=u+16|0;b=Oo(A,s)|0;while(1){if(!b)break;l=a[(a[(a[((a[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0;o=Q5[i&127](w,l+32|0)|0;l=a[l+24>>2]|0;t=th(e,u,l,0,1)|0;Td(t,137460,176,1)|0;c=t+16|0;r=a[c>>2]|0;a[r+156>>2]=1;n=f[r+170>>1]|0;if((o|0)>(n&65535|0)){if(!(n<<16>>16)){r=a[k>>2]|0;n=a[r+180>>2]|0;if(!n)r=$F((a[r+184>>2]<<2)+8|0)|0;else r=eV(n,(a[r+184>>2]<<2)+8|0)|0;h=a[k>>2]|0;a[h+180>>2]=r;h=h+184|0;n=a[h>>2]|0;a[h>>2]=n+1;a[r+(n<<2)>>2]=t;r=a[k>>2]|0;a[(a[r+180>>2]|0)+(a[r+184>>2]<<2)>>2]=0;l=l+16|0;r=a[l>>2]|0;n=a[r+172>>2]|0;if(!n)r=$F((a[r+176>>2]<<2)+8|0)|0;else r=eV(n,(a[r+176>>2]<<2)+8|0)|0;n=a[l>>2]|0;a[n+172>>2]=r;n=n+176|0;h=a[n>>2]|0;a[n>>2]=h+1;a[r+(h<<2)>>2]=t;r=a[l>>2]|0;a[(a[r+172>>2]|0)+(a[r+176>>2]<<2)>>2]=0;r=a[c>>2]|0}f[r+170>>1]=o}b=_o(A,b)|0}s=sd(A,s)|0}return}function WP(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;return(a[e>>2]|0)-(a[i>>2]|0)|0}function zP(A,e){A=A|0;e=e|0;var i=0,f=0,n=0.0,l=0.0,t=0.0,b=0.0,u=0.0,w=0.0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0.0,m=0.0;Z=k;k=k+64|0;v=Z+24|0;B=Z+16|0;d=Z+52|0;h=Z+40|0;g=Z;C=gh(A)|0;I=$F(C*72|0)|0;qj(h,A);t=+c[h>>2];b=+c[h+4>>2];h=(r[h+8>>0]|0)!=0;t=h?t*.013888888888888888:t;b=h?b*.013888888888888888:b;u=t*.5;w=b*.5;i=I;f=cd(A)|0;while(1){if(!f)break;o=a[f+16>>2]|0;n=+s[o+32>>3];if(h){l=+s[o+40>>3]*.5+b;n=n*.5+t}else{l=w*+s[o+40>>3];n=u*n}o=a[o+132>>2]|0;m=+s[o>>3];s[i>>3]=m;G=+s[o+8>>3];s[i+8>>3]=G;s[i+16>>3]=m-n;s[i+24>>3]=G-l;s[i+32>>3]=m+n;s[i+40>>3]=G+l;s[i+48>>3]=n;s[i+56>>3]=l;a[i+64>>2]=f;i=i+72|0;f=sd(A,f)|0}do{if((e|0)<0){n=+YP(I,C);if(n==0.0){L2(I);i=0;break}if(true){t=n;l=n;E=19}else{}}else{f=DP(I,C,d)|0;i=a[d>>2]|0;if(!i){L2(f);L2(I);i=0;break}if(!e){FP(g,f,i);n=+s[g>>3];l=+s[g+8>>3]}else{l=+MP(f,i);n=l}L2(f);if(true){t=n;E=19}else{}}}while(0);if((E|0)==19){i=0;f=I;while(1){if((i|0)>=(C|0))break;E=a[(a[(a[f+64>>2]|0)+16>>2]|0)+132>>2]|0;s[E>>3]=+s[f>>3]*t;s[E+8>>3]=+s[f+8>>3]*l;i=i+1|0;f=f+72|0}L2(I);i=1}k=Z;return i|0}function YP(A,e){A=A|0;e=e|0;var i=0.0,r=0,f=0.0,a=0.0,n=0.0,l=0,t=0,c=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0;i=0.0;r=0;A:while(1){if((r|0)>=(e|0))break;d=A+72|0;r=r+1|0;u=A+16|0;w=A+8|0;k=A+56|0;o=A+48|0;h=A+32|0;c=A+24|0;b=A+40|0;l=r;t=d;while(1){if((l|0)>=(e|0)){A=d;continue A}if(((+s[u>>3]<=+s[t+32>>3]?+s[t+16>>3]<=+s[h>>3]:0)?+s[c>>3]<=+s[t+40>>3]:0)?+s[t+24>>3]<=+s[b>>3]:0){i=0.0;break A}f=+s[A>>3];a=+s[t>>3];if(f==a)n=C;else{n=+W(+(f-a));n=(+s[t+48>>3]+ +s[o>>3])/n}f=+s[w>>3];a=+s[t+8>>3];if(f==a)f=C;else{f=+W(+(f-a));f=(+s[t+56>>3]+ +s[k>>3])/f}n=fi?n:i}}return+i}function DP(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0.0,n=0.0,l=0,t=0.0,c=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,I=0,Z=0,G=0,m=0;c=$F((e<<4)+16|0)|0;u=0;r=0;w=c;k=e;l=c;A:while(1){if((r|0)>=(e|0))break;G=A+72|0;r=r+1|0;Z=A+16|0;d=A+32|0;B=A+24|0;g=A+40|0;v=A+8|0;E=A+56|0;I=A+48|0;o=r;h=G;b=l;while(1){if((o|0)==(e|0)){A=G;l=b;continue A}if(((+s[Z>>3]<=+s[h+32>>3]?+s[h+16>>3]<=+s[d>>3]:0)?+s[B>>3]<=+s[h+40>>3]:0)?+s[h+24>>3]<=+s[g>>3]:0){l=k+e|0;if((u|0)==(k|0)){c=eV(c,(l<<4)+16|0)|0;w=c;b=c}else l=k;f=+s[A>>3];n=+s[h>>3];if(!(f==n)){f=(+s[h+48>>3]+ +s[I>>3])/+W(+(f-n));if(f<1.0){f=1.0;m=13}}else{f=C;m=13}if((m|0)==13)m=0;n=+s[v>>3];t=+s[h+8>>3];if(!(n==t)){n=(+s[h+56>>3]+ +s[E>>3])/+W(+(n-t));if(n<1.0){n=1.0;m=16}}else{n=C;m=16}if((m|0)==16)m=0;u=u+1|0;s[w+(u<<4)>>3]=f;s[w+(u<<4)+8>>3]=n}else l=k;o=o+1|0;h=h+72|0;k=l}}m=eV(l,(u<<4)+16|0)|0;a[i>>2]=u;return m|0}function MP(A,e){A=A|0;e=e|0;var i=0,r=0,f=0.0,a=0.0,n=0.0;r=1;f=0.0;while(1){i=A+16|0;if((r|0)>(e|0))break;n=+s[i>>3];a=+s[A+24>>3];a=nf?a:f;A=i}return+f}function FP(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0,a=0,n=0,l=0.0;s[e>>3]=1.0;s[e+8>>3]=C;K4(e+16|0,i,16,76);n=$F((i<<4)+16|0)|0;s[n+(i<<4)>>3]=+s[e+(i<<4)>>3];a=i;r=1.0;while(1){s[n+(a<<4)+8>>3]=r;f=a+-1|0;if((a|0)<=0){r=C;f=0;a=0;break}s[n+(f<<4)>>3]=+s[e+(f<<4)>>3];l=+s[(+s[e+(a<<4)+8>>3]>r?e:n)+(a<<4)+8>>3];a=f;r=l}while(1){if((a|0)>(i|0))break;l=+s[n+(a<<4)+8>>3]*+s[n+(a<<4)>>3];e=l>3];s[A>>3]=+s[n+(f<<4)>>3];s[A+8>>3]=l;return}else gA(93596,93534,832,93616)}function VP(A,e){A=A|0;e=e|0;var i=0.0,r=0.0;i=+s[A>>3];r=+s[e>>3];if(!(ir)){r=+s[A+8>>3];i=+s[e+8>>3];if(ri&1}else A=1;else A=-1;return A|0}function JP(A,e,i){A=A|0;e=e|0;i=i|0;i=k;k=k+16|0;e=i;a[e>>2]=93631;ao(1,93681,e)|0;k=i;return 0}function pP(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;r=k;k=k+16|0;i=r;a[i>>2]=93631;ao(1,93709,i)|0;k=r;return 0}function NP(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0;A:do{switch(i|0){case 2:{r=$F(16)|0;f=$F(24)|0;a[f+8>>2]=0;a[f+4>>2]=r;a[f>>2]=2;a[r>>2]=0;a[r+4>>2]=1;i=r+8|0;a[f+16>>2]=i;a[f+20>>2]=0;a[f+12>>2]=2;a[i>>2]=1;a[r+12>>2]=0;break}case 1:{r=$F(4)|0;f=$F(12)|0;a[f+8>>2]=0;a[f+4>>2]=r;a[f>>2]=1;a[r>>2]=0;break}default:{JP(0,0,0)|0;A=(i|0)>0;if(!r){if(!A){f=0;break A}re()}else{if(!A){f=0;break A}re()}}}}while(0);return f|0}function RP(A){A=A|0;var e=0;if(A|0){e=a[A+4>>2]|0;if(e|0)L2(e);e=a[A+8>>2]|0;if(e|0)L2(e);L2(A)}return}function XP(A){A=A|0;var e=0;if(A|0){e=a[A+4>>2]|0;if(e|0)L2(e);e=a[A+8>>2]|0;if(e|0)L2(e);e=a[A+16>>2]|0;if(e|0)L2(e);L2(A)}return}function HP(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,s=0,b=0,u=0,w=0;w=k;k=k+16|0;u=w+8|0;b=w;s=W2(a[46849]|0,i<<2)|0;a[46849]=s;f=0;while(1){if((f|0)>=(i|0))break;a[r+(f<<2)>>2]=2147483647;f=f+1|0}a[r+(A<<2)>>2]=0;n=e+(A*20|0)|0;l=e+(A*20|0)+8|0;t=e+(A*20|0)+4|0;f=1;while(1){if((f|0)>=(a[n>>2]|0))break;a[r+(a[(a[t>>2]|0)+(f<<2)>>2]<<2)>>2]=~~+c[(a[l>>2]|0)+(f<<2)>>2];f=f+1|0}UP(u,A,s,r,i);l=-2147483639;while(1){if(!((xP(u,b,a[46849]|0,r)|0)<<24>>24)){f=0;break}f=a[b>>2]|0;A=a[r+(f<<2)>>2]|0;if((A|0)==2147483647){f=0;break}l=e+(f*20|0)|0;t=e+(f*20|0)+4|0;n=e+(f*20|0)+8|0;f=1;while(1){if((f|0)>=(a[l>>2]|0))break;TP(u,a[(a[t>>2]|0)+(f<<2)>>2]|0,A+~~+c[(a[n>>2]|0)+(f<<2)>>2]|0,a[46849]|0,r);f=f+1|0}l=A+10|0}while(1){if((f|0)>=(i|0))break;n=r+(f<<2)|0;if((a[n>>2]|0)==2147483647)a[n>>2]=l;f=f+1|0}jP(u);k=w;return}function UP(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0;if((f|0)==1)t=0;else t=$F((f<<2)+-4|0)|0;a[A>>2]=t;c=f+-1|0;a[A+4>>2]=c;n=0;l=0;while(1){if((l|0)>=(f|0))break;if((l|0)!=(e|0)){a[t+(n<<2)>>2]=l;a[i+(l<<2)>>2]=n;n=n+1|0}l=l+1|0}n=(c|0)/2|0;while(1){if((n|0)<=-1)break;PP(A,n,i,r);n=n+-1|0}return}function xP(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0;f=A+4|0;if(!(a[f>>2]|0))A=0;else{n=a[A>>2]|0;a[e>>2]=a[n>>2];e=a[n+((a[f>>2]|0)+-1<<2)>>2]|0;a[n>>2]=e;a[i+(e<<2)>>2]=0;a[f>>2]=(a[f>>2]|0)+-1;PP(A,0,i,r);A=1}return A|0}function TP(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0;n=f+(e<<2)|0;if((a[n>>2]|0)>(i|0)){c=r+(e<<2)|0;t=a[c>>2]|0;a[n>>2]=i;n=a[A>>2]|0;A=t;while(1){if((A|0)<=0)break;l=A>>>1;t=a[n+(l<<2)>>2]|0;if((a[f+(t<<2)>>2]|0)<=(i|0))break;a[n+(A<<2)>>2]=t;a[r+(t<<2)>>2]=A;A=l}a[n+(A<<2)>>2]=e;a[c>>2]=A}return}function jP(A){A=A|0;A=a[A>>2]|0;if(A|0)L2(A);return}function PP(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0;t=A+4|0;while(1){f=e<<1;n=f|1;l=a[t>>2]|0;if(!((f|0)<(l|0)?(c=a[A>>2]|0,(a[r+(a[c+(f<<2)>>2]<<2)>>2]|0)<(a[r+(a[c+(e<<2)>>2]<<2)>>2]|0)):0))f=e;if((n|0)<(l|0)){c=a[A>>2]|0;f=(a[r+(a[c+(n<<2)>>2]<<2)>>2]|0)<(a[r+(a[c+(f<<2)>>2]<<2)>>2]|0)?n:f}if((f|0)==(e|0))break;c=a[A>>2]|0;l=c+(f<<2)|0;n=a[l>>2]|0;c=c+(e<<2)|0;a[l>>2]=a[c>>2];a[c>>2]=n;a[i+(a[l>>2]<<2)>>2]=f;a[i+(a[c>>2]<<2)>>2]=e;e=f}return}function SP(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,s=0.0,b=0,u=0,w=0,o=0;o=k;k=k+16|0;b=o+8|0;u=o;a[u>>2]=0;w=$F(i<<2)|0;f=0;while(1){if((f|0)>=(i|0))break;c[r+(f<<2)>>2]=3402823466385288598117041.0e14;f=f+1|0}c[r+(A<<2)>>2]=0.0;n=a[e+(A*20|0)>>2]|0;l=e+(A*20|0)+8|0;t=e+(A*20|0)+4|0;f=1;while(1){if((f|0)>=(n|0))break;a[r+(a[(a[t>>2]|0)+(f<<2)>>2]<<2)>>2]=a[(a[l>>2]|0)+(f<<2)>>2];f=f+1|0}OP(b,A,w,r,i);A:while(1){if(!((KP(b,u,w,r)|0)<<24>>24))break;f=a[u>>2]|0;s=+c[r+(f<<2)>>2];if(s==3402823466385288598117041.0e14)break;l=e+(f*20|0)|0;t=e+(f*20|0)+4|0;n=e+(f*20|0)+8|0;f=1;while(1){if((f|0)>=(a[l>>2]|0))continue A;_P(b,a[(a[t>>2]|0)+(f<<2)>>2]|0,+c[(a[n>>2]|0)+(f<<2)>>2]+s,w,r);f=f+1|0}}jP(b);L2(w);k=o;return}function OP(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0;t=f+-1|0;c=$F(t<<2)|0;a[A>>2]=c;a[A+4>>2]=t;n=0;l=0;while(1){if((l|0)>=(f|0))break;if((l|0)!=(e|0)){a[c+(n<<2)>>2]=l;a[i+(l<<2)>>2]=n;n=n+1|0}l=l+1|0}n=(t|0)/2|0;while(1){if((n|0)<=-1)break;qP(A,n,i,r);n=n+-1|0}return}function KP(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0;f=A+4|0;if(!(a[f>>2]|0))A=0;else{n=a[A>>2]|0;a[e>>2]=a[n>>2];e=a[n+((a[f>>2]|0)+-1<<2)>>2]|0;a[n>>2]=e;a[i+(e<<2)>>2]=0;a[f>>2]=(a[f>>2]|0)+-1;qP(A,0,i,r);A=1}return A|0}function _P(A,e,i,r,f){A=A|0;e=e|0;i=+i;r=r|0;f=f|0;var n=0,l=0,t=0,s=0;n=f+(e<<2)|0;if(!(+c[n>>2]<=i)){s=r+(e<<2)|0;t=a[s>>2]|0;c[n>>2]=i;n=a[A>>2]|0;A=t;while(1){if((A|0)<=0)break;l=A>>>1;t=a[n+(l<<2)>>2]|0;if(!(+c[f+(t<<2)>>2]>i))break;a[n+(A<<2)>>2]=t;a[r+(t<<2)>>2]=A;A=l}a[n+(A<<2)>>2]=e;a[s>>2]=A}return}function qP(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,s=0;t=A+4|0;while(1){f=e<<1;n=f|1;l=a[t>>2]|0;if(!((f|0)<(l|0)?(s=a[A>>2]|0,+c[r+(a[s+(f<<2)>>2]<<2)>>2]<+c[r+(a[s+(e<<2)>>2]<<2)>>2]):0))f=e;if((n|0)<(l|0)?(s=a[A>>2]|0,+c[r+(a[s+(n<<2)>>2]<<2)>>2]<+c[r+(a[s+(f<<2)>>2]<<2)>>2]):0)f=n;if((f|0)==(e|0))break;s=a[A>>2]|0;l=s+(f<<2)|0;n=a[l>>2]|0;s=s+(e<<2)|0;a[l>>2]=a[s>>2];a[s>>2]=n;a[i+(a[l>>2]<<2)>>2]=f;a[i+(a[s>>2]<<2)>>2]=e;e=f}return}function $P(){jO(187400,48);a[46853]=0;return}function AS(A,e){A=A|0;e=e|0;var i=0.0,r=0.0,f=0.0,n=0.0,l=0;l=SO(187400)|0;a[l+32>>2]=A;a[l+36>>2]=e;LK(A);LK(e);a[l+24>>2]=0;a[l+28>>2]=0;f=+s[A>>3];n=+s[e>>3]-f;r=+s[A+8>>3];i=+s[e+8>>3]-r;f=i*r+n*f+(i*i+n*n)*.5;e=l+16|0;s[e>>3]=f;if((n>0.0?n:-n)>(i>0.0?i:-i)){s[l>>3]=1.0;r=i/n;i=n;A=l+8|0}else{s[l+8>>3]=1.0;r=n/i;A=l}s[A>>3]=r;s[e>>3]=f/i;e=a[46853]|0;a[l+40>>2]=e;a[46853]=e+1;return l|0}function eS(A){A=A|0;var e=0,i=0,r=0.0,f=0.0,n=0.0,l=0.0,t=0.0,c=0.0,b=0.0,u=0;b=+s[A>>3];A:do{if(b==1.0){if(!(+s[A+8>>3]>=0.0)){e=a[A+28>>2]|0;i=a[A+24>>2]|0;if(!i)u=9;else u=5}else{e=a[A+24>>2]|0;i=a[A+28>>2]|0;if(!i)u=9;else u=5}do{if((u|0)==5){r=+s[i+8>>3];if(r>+s[23266])break A;f=+s[23267];if(!(r>=f)){l=f;r=+s[A+16>>3]-+s[A+8>>3]*f;break}else{l=r;r=+s[i>>3];break}}else if((u|0)==9){f=+s[23267];l=f;r=+s[A+16>>3]-+s[A+8>>3]*f}}while(0);do{if(e){n=+s[e+8>>3];if(n>3]-+s[A+8>>3]*f;break}else{f=+s[e>>3];break}}else{f=+s[23266];n=f;f=+s[A+16>>3]-+s[A+8>>3]*f}}while(0);t=+s[23268];e=r>t;i=f>t;c=+s[23269];if(!(e&i|r>3]-t)/+s[A+8>>3];r=t}if(r>3]-c)/+s[A+8>>3];r=c}if(i){n=(+s[A+16>>3]-t)/+s[A+8>>3];f=t}if(f>3]-c)/+s[A+8>>3];f=c;u=46}else u=46}}else{i=a[A+28>>2]|0;e=a[A+24>>2]|0;do{if(e){r=+s[e>>3];if(r>+s[23268])break A;n=+s[23269];if(!(r>=n)){l=+s[A+16>>3]-n*b;r=n;break}else{l=+s[e+8>>3];break}}else{n=+s[23269];l=+s[A+16>>3]-n*b;r=n}}while(0);do{if(i){f=+s[i>>3];if(f>3]-b*t;f=t;break}else{n=+s[i+8>>3];break}}else{f=+s[23268];n=+s[A+16>>3]-b*f}}while(0);t=+s[23266];e=l>t;i=n>t;c=+s[23267];if(!(e&i|l>3]-t)/b}if(l>3]-c)/b}if(i){n=t;f=(+s[A+16>>3]-t)/b}if(n>3]-c)/b;u=46}else u=46}}}while(0);if((u|0)==46)iS(A,r,l,f,n);return}function iS(A,e,i,r,f){A=A|0;e=+e;i=+i;r=+r;f=+f;var n=0;n=A+32|0;FS(a[n>>2]|0,e,i);FS(a[n>>2]|0,r,f);A=A+36|0;FS(a[A>>2]|0,e,i);FS(a[A>>2]|0,r,f);return}function rS(A,e,i){A=A|0;e=e|0;i=i|0;a[A+24+(e<<2)>>2]=i;LK(i);if(a[A+24+(1-e<<2)>>2]|0){eS(A);QK(a[A+32>>2]|0);QK(a[A+36>>2]|0);OO(A,187400)}return}function fS(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0;o=k;k=k+16|0;w=o;b=e<<2;l=$F(U(b,i)|0)|0;n=a[r>>2]|0;b=$F(b)|0;u=a[A+8>>2]|0;if(n|0){L2(a[n>>2]|0);L2(n)}s=$F(i<<2)|0;a[r>>2]=s;n=0;while(1){if((n|0)>=(i|0))break;a[s+(n<<2)>>2]=l+((U(n,e)|0)<<2);n=n+1|0}c=(f|0)!=0;if(c)xS(A,e);r=(a8()|0)%(e|0)|0;lP(w,e);n=a[s>>2]|0;if(c){HP(r,A,e,n);f=0;n=0}else{rP(r,A,e,n,w);f=0;n=0}while(1){if((n|0)>=(e|0)){t=1;break}l=a[(a[s>>2]|0)+(n<<2)>>2]|0;a[b+(n<<2)>>2]=l;t=(l|0)>(f|0);f=t?l:f;r=t?n:r;n=n+1|0}while(1){if((t|0)>=(i|0))break;l=s+(t<<2)|0;n=a[l>>2]|0;if(c){HP(r,A,e,n);n=0;f=0}else{rP(r,A,e,n,w);n=0;f=0}while(1){if((n|0)>=(e|0))break;B=b+(n<<2)|0;h=a[B>>2]|0;d=a[(a[l>>2]|0)+(n<<2)>>2]|0;d=(h|0)<(d|0)?h:d;a[B>>2]=d;B=(d|0)>(f|0);h=B?n:r;n=n+1|0;f=B?d:f;r=h}t=t+1|0}L2(b);if(c)TS(A,e,u);k=o;return}function aS(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0,n=0,l=0,t=0.0,c=0,s=0;t=1.0/+(e|0);l=0;while(1){if((l|0)>=(i|0))break;c=A+(l<<2)|0;r=0.0;f=0;while(1){if((f|0)>=(e|0))break;r=r+ +(a[(a[c>>2]|0)+(f<<2)>>2]|0);f=f+1|0}n=~~(r*t);f=0;while(1){if((f|0)>=(e|0))break;s=(a[c>>2]|0)+(f<<2)|0;a[s>>2]=(a[s>>2]|0)-n;f=f+1|0}l=l+1|0}return}function nS(){a[46855]=~~+z(+ +((a[46854]|0)+4|0));return}function lS(A,e){A=A|0;e=e|0;var i=0.0,r=0.0;i=+s[A>>3]-+s[e>>3];r=+s[A+8>>3]-+s[e+8>>3];return+(r*r+i*i)}function tS(A,e,i){A=A|0;e=e|0;i=i|0;s[A>>3]=+s[e>>3]-+s[i>>3];s[A+8>>3]=+s[e+8>>3]-+s[i+8>>3];return}function cS(A,e,i){A=A|0;e=e|0;i=i|0;s[A>>3]=+s[i>>3]+ +s[e>>3];s[A+8>>3]=+s[i+8>>3]+ +s[e+8>>3];return}function sS(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0;r=+s[e+8>>3];f=+s[e>>3];return+((+s[i>>3]-f)*(+s[A+8>>3]-r)-(+s[A>>3]-f)*(+s[i+8>>3]-r))}function bS(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0;r=k;k=k+48|0;f=r+32|0;n=r+16|0;l=r;a[l>>2]=a[A>>2];a[l+4>>2]=a[A+4>>2];a[l+8>>2]=a[A+8>>2];a[l+12>>2]=a[A+12>>2];a[n>>2]=a[e>>2];a[n+4>>2]=a[e+4>>2];a[n+8>>2]=a[e+8>>2];a[n+12>>2]=a[e+12>>2];a[f>>2]=a[i>>2];a[f+4>>2]=a[i+4>>2];a[f+8>>2]=a[i+8>>2];a[f+12>>2]=a[i+12>>2];i=+sS(l,n,f)>0.0&1;k=r;return i|0}function uS(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var a=0.0,n=0.0,l=0.0,t=0.0,c=0.0,b=0.0,u=0.0,w=0.0,k=0.0,o=0.0,h=0.0;k=+s[A>>3];o=+s[r+8>>3];h=+s[i+8>>3];u=(o-h)*k;w=+s[e>>3];b=+s[r>>3];c=+s[e+8>>3];l=+s[A+8>>3];t=c-l;a=+s[i>>3];n=u+w*(h-o)+t*b+a*(l-c);if(n==0.0)r=0;else{o=(a*(l-o)+u+(h-l)*b)/n;h=-(a*t+((h-c)*k+(l-h)*w))/n;s[f>>3]=o*(w-k)+k;s[f+8>>3]=t*o+l;r=h<=1.0&(h>=0.0&(o>=0.0&o<=1.0))&1}return r|0}function wS(A,e,i){A=A|0;e=e|0;i=+i;var r=0,f=0,n=0.0,l=0;a[A+20>>2]=e;LK(e);l=A+24|0;s[l>>3]=+s[e+8>>3]+i;r=a[46856]|0;r=r+((kS(A)|0)*40|0)|0;while(1){f=r+32|0;r=a[f>>2]|0;if(!r)break;i=+s[l>>3];n=+s[r+24>>3];if(i>n)continue;if(!(i==n))break;if(!(+s[e>>3]>+s[a[r+20>>2]>>3]))break}a[A+32>>2]=r;a[f>>2]=A;a[46857]=(a[46857]|0)+1;return}function kS(A){A=A|0;var e=0.0,i=0,r=0.0;i=a[46858]|0;r=+(i|0);e=(+s[A+24>>3]-+s[23273])/+s[23275]*r;do{if(!(e<0.0))if(!(e>=r)){A=~~e;break}else{A=i+-1|0;break}else A=0}while(0);if((A|0)<(a[46859]|0))a[46859]=A;return A|0}function oS(A){A=A|0;var e=0,i=0,r=0;i=A+20|0;if(a[i>>2]|0){e=a[46856]|0;e=e+((kS(A)|0)*40|0)|0;do{r=e+32|0;e=a[r>>2]|0}while((e|0)!=(A|0));a[r>>2]=a[A+32>>2];a[46857]=(a[46857]|0)+-1;QK(a[i>>2]|0);a[i>>2]=0}return}function hS(){return(a[46857]|0)==0|0}function dS(A){A=A|0;var e=0,i=0,r=0,f=0.0;e=a[46856]|0;i=a[46859]|0;while(1){r=a[e+(i*40|0)+32>>2]|0;if(r|0)break;r=i+1|0;a[46859]=r;i=r}f=+s[r+24>>3];s[A>>3]=+s[a[r+20>>2]>>3];s[A+8>>3]=f;return}function BS(){var A=0,e=0;e=(a[46856]|0)+((a[46859]|0)*40|0)+32|0;A=a[e>>2]|0;a[e>>2]=a[A+32>>2];a[46857]=(a[46857]|0)+-1;return A|0}function gS(){L2(a[46856]|0);a[46856]=0;return}function vS(){var A=0,e=0,i=0;a[46857]=0;a[46859]=0;A=a[46855]|0;e=A<<2;a[46858]=e;i=a[46856]|0;if(!i){i=$F(A*160|0)|0;a[46856]=i;e=a[46858]|0}A=0;while(1){if((A|0)>=(e|0))break;a[i+(A*40|0)+32>>2]=0;A=A+1|0}return}function ES(){jO(187448,40);L2(a[46865]|0);a[46865]=0;return}function CS(){var A=0,e=0,i=0;jO(187448,40);A=a[46855]|0;e=A<<1;a[46866]=e;i=a[46865]|0;if(!i){i=$F(A<<3)|0;a[46865]=i;e=a[46866]|0}A=0;while(1){if((A|0)>=(e|0))break;a[i+(A<<2)>>2]=0;A=A+1|0}a[46860]=IS(0,0)|0;a[46861]=IS(0,0)|0;a[a[46860]>>2]=0;i=a[46861]|0;e=a[46860]|0;a[e+4>>2]=i;a[i>>2]=e;a[(a[46861]|0)+4>>2]=0;i=a[46865]|0;a[i>>2]=a[46860];a[i+((a[46866]|0)+-1<<2)>>2]=a[46861];return}function IS(A,e){A=A|0;e=e|0;var i=0;i=SO(187448)|0;a[i+8>>2]=A;r[i+16>>0]=e;a[i+32>>2]=0;a[i+20>>2]=0;a[i+12>>2]=0;return i|0}function ZS(A,e){A=A|0;e=e|0;var i=0,f=0.0,n=0.0,l=0,t=0.0,c=0,b=0.0,u=0.0,w=0.0,k=0,o=0.0,h=0.0;l=a[A+8>>2]|0;c=a[e+8>>2]|0;do{if((!((l|0)==0|(c|0)==0)?(k=a[l+36>>2]|0,i=a[c+36>>2]|0,(k|0)!=(i|0)):0)?(t=+s[l>>3],f=+s[c+8>>3],n=+s[l+8>>3],b=+s[c>>3],u=f*t-b*n,!(u>-1.0e-10&u<1.0e-10)):0){o=+s[l+16>>3];h=+s[c+16>>3];w=(o*f-h*n)/u;t=(h*t-o*b)/u;f=+s[k+8>>3];n=+s[i+8>>3];do{if(f>3]<+s[i>>3]:0){i=k;break}A=e}}while(0);A=r[A+16>>0]|0;if(!(w>=+s[i>>3])){if(A<<24>>24==1){A=0;break}}else if(!(A<<24>>24)){A=0;break}A=ZK()|0;a[A+20>>2]=0;s[A>>3]=w;s[A+8>>3]=t}else A=0}while(0);return A|0}function GS(A,e){A=A|0;e=e|0;var i=0.0,f=0,n=0.0,l=0.0,t=0.0,c=0,b=0.0,u=0,w=0,k=0.0,o=0;w=a[A+8>>2]|0;c=a[w+36>>2]|0;b=+s[e>>3];k=+s[c>>3];u=b>k;o=r[A+16>>0]|0;if(u)if(!(o<<24>>24))A=1;else f=4;else if(o<<24>>24==1)A=0;else f=4;if((f|0)==4){i=+s[w>>3];A:do{if(i==1.0){i=+s[e+8>>3];n=i-+s[c+8>>3];l=b-k;t=+s[w+8>>3];e=t<0.0;do{if(u?t>=0.0:e){if(n>=t*l){A=1;break A}}else{A=t*i+b>+s[w+16>>3];if(e)if(A){A=0;break A}else break;else if(A)break;else{A=0;break A}}}while(0);k=k-+s[a[w+32>>2]>>3];A=t*(l*l-n*n)>3]-b*i;t=+s[e+8>>3]-l;k=b-k;b=l-+s[c+8>>3];A=t*t>b*b+k*k}}while(0);A=(A^o<<24>>24!=0)&1}return A|0}function mS(A,e){A=A|0;e=e|0;a[e>>2]=A;A=A+4|0;a[e+4>>2]=a[A>>2];a[a[A>>2]>>2]=e;a[A>>2]=e;return}function QS(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;f=a[46866]|0;e=~~((+s[A>>3]-+s[23272])/+s[23274]*+(f|0));e=(e|0)>0?e:0;f=(e|0)<(f|0)?e:f+-1|0;e=LS(f)|0;if(!e){i=1;while(1){e=LS(f-i|0)|0;if(e|0)break;e=LS(i+f|0)|0;if(e|0)break;i=i+1|0}a[46867]=(a[46867]|0)+i}a[46868]=(a[46868]|0)+1;r=a[46860]|0;i=a[46861]|0;A:do{if((e|0)==(r|0))n=9;else{if((e|0)!=(i|0)?(GS(e,A)|0)!=0:0){n=9;break}while(1){e=a[e>>2]|0;if((e|0)==(r|0))break A;if(GS(e,A)|0){r=e;break}}}}while(0);if((n|0)==9){while(1){e=a[e+4>>2]|0;if((e|0)==(i|0))break;if(!(GS(e,A)|0))break;else n=9}r=a[e>>2]|0}if((f|0)>0?(f|0)<((a[46866]|0)+-1|0):0){e=(a[46865]|0)+(f<<2)|0;i=a[e>>2]|0;if(i|0){n=i+12|0;a[n>>2]=(a[n>>2]|0)+-1}a[e>>2]=r;n=r+12|0;a[n>>2]=(a[n>>2]|0)+1}return r|0}function LS(A){A=A|0;var e=0,i=0;if((A|0)>-1&(a[46866]|0)>(A|0)?(i=(a[46865]|0)+(A<<2)|0,e=a[i>>2]|0,(e|0)!=0):0){if((a[e+8>>2]|0)==(-2|0)){a[i>>2]=0;A=e+12|0;i=(a[A>>2]|0)+-1|0;a[A>>2]=i;if(!i){OO(e,187448);e=0}else e=0}}else e=0;return e|0}function yS(A){A=A|0;var e=0,i=0;e=A+4|0;i=a[A>>2]|0;a[i+4>>2]=a[e>>2];a[a[e>>2]>>2]=i;a[A+8>>2]=-2;return}function WS(A){A=A|0;return a[A+4>>2]|0}function zS(A){A=A|0;return a[A>>2]|0}function YS(A){A=A|0;var e=0;e=a[A+8>>2]|0;if(!e)A=187672;else A=(r[A+16>>0]|0)==0?e+32|0:e+36|0;return a[A>>2]|0}function DS(A){A=A|0;var e=0;e=a[A+8>>2]|0;if(!e)A=187672;else A=(r[A+16>>0]|0)==0?e+36|0:e+32|0;return a[A>>2]|0}function MS(){jO(187480,24);return}function FS(A,e,i){A=A|0;e=+e;i=+i;var r=0,f=0,n=0,l=0,t=0;t=k;k=k+32|0;l=t;n=(a[46869]|0)+((a[A+16>>2]|0)*96|0)+88|0;f=a[n>>2]|0;s[l+8>>3]=e;s[l+16>>3]=i;r=VS(A,l,f)|0;do{if(r|0){if((r|0)<0){l=SO(187480)|0;s[l+8>>3]=e;s[l+16>>3]=i;a[l>>2]=f;a[n>>2]=l;break}while(1){r=a[f>>2]|0;n=VS(A,l,r)|0;if((n|0)>0)f=r;else break}if(n|0){l=SO(187480)|0;s[l+8>>3]=e;s[l+16>>3]=i;a[f>>2]=l;a[l>>2]=r}}}while(0);k=t;return}function VS(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0,a=0.0,n=0.0,l=0.0,t=0.0,c=0.0;do{if(i){f=+s[e+8>>3];l=+s[i+8>>3];r=+s[e+16>>3];a=+s[i+16>>3];if(!(f==l&r==a)){c=+s[A>>3];t=f-c;f=+s[A+8>>3];n=r-f;l=l-c;r=a-f;if(!(t>=0.0)){if(l>=0.0){e=1;break}f=r/l;r=n/t;if(rf){e=1;break}e=t>l?-1:1;break}if(!(l<0.0)){e=l>0.0;if(!(t>0.0)){if(e){e=!(n<=0.0)?1:-1;break}if(n0.0?-1:1;break}f=r/l;r=n/t;if(rf){e=1;break}e=t>2]|0;i=A+(i*20|0)+4|0;e=1;A=0;while(1){if((e|0)>=(f|0))break;n=A+((a[r+(a[(a[i>>2]|0)+(e<<2)>>2]<<2)>>2]|0)>0&1)|0;e=e+1|0;A=n}return A|0}function pS(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=A+(e*20|0)|0;e=A+(e*20|0)+4|0;A=1;while(1){if((A|0)>=(a[r>>2]|0))break;a[i+(a[(a[e>>2]|0)+(A<<2)>>2]<<2)>>2]=1;A=A+1|0}return}function NS(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=A+(e*20|0)|0;e=A+(e*20|0)+4|0;A=1;while(1){if((A|0)>=(a[r>>2]|0))break;a[i+(a[(a[e>>2]|0)+(A<<2)>>2]<<2)>>2]=0;A=A+1|0}return}function RS(A,e){A=A|0;e=e|0;if(!(a[A+8>>2]|0))A=HS(A,e)|0;else A=XS(A,e)|0;return A|0}function XS(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;f=e<<2;r=$F(U(f,e)|0)|0;f=$F(f)|0;i=0;while(1){if((i|0)>=(e|0)){i=0;break}a[f+(i<<2)>>2]=r+((U(i,e)|0)<<2);i=i+1|0}while(1){if((i|0)>=(e|0))break;HP(i,A,e,a[f+(i<<2)>>2]|0);i=i+1|0}return f|0}function HS(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;l=k;k=k+16|0;f=l;n=e<<2;r=$F(U(n,e)|0)|0;n=$F(n)|0;i=0;while(1){if((i|0)>=(e|0))break;a[n+(i<<2)>>2]=r+((U(i,e)|0)<<2);i=i+1|0}lP(f,e);i=0;while(1){if((i|0)>=(e|0))break;rP(i,A,e,a[n+(i<<2)>>2]|0,f);i=i+1|0}tP(f);k=l;return n|0}function US(A,e){A=A|0;e=e|0;var i=0,r=0;r=a[A+8>>2]|0;xS(A,e);i=XS(A,e)|0;TS(A,e,r);return i|0}function xS(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,s=0,b=0,u=0,w=0;b=$F(e<<2)|0;i=0;r=0;while(1){if((i|0)>=(e|0))break;s=(a[A+(i*20|0)>>2]|0)+r|0;i=i+1|0;r=s}r=$F(r<<2)|0;i=0;while(1){if((i|0)>=(e|0))break;a[b+(i<<2)>>2]=0;i=i+1|0}f=0;while(1){if((f|0)>=(e|0))break;a[A+(f*20|0)+8>>2]=r;pS(A,f,b);n=A+(f*20|0)|0;l=a[n>>2]|0;t=A+(f*20|0)+4|0;s=l+-2|0;i=1;while(1){if((i|0)>=(l|0))break;u=a[(a[t>>2]|0)+(i<<2)>>2]|0;w=a[A+(u*20|0)>>2]|0;c[r+(i<<2)>>2]=+(s+w-((JS(A,0,u,b)|0)<<1)|0);i=i+1|0}NS(A,f,b);r=r+(a[n>>2]<<2)|0;f=f+1|0}L2(b);return}function TS(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;r=A+8|0;L2(a[r>>2]|0);a[r>>2]=0;A:do{if(i|0){r=0;while(1){if((r|0)>=(e|0))break A;a[A+(r*20|0)+8>>2]=i;f=i+(a[A+(r*20|0)>>2]<<2)|0;r=r+1|0;i=f}}}while(0);return}function jS(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0.0,l=0.0,t=0;f=0;n=0.0;while(1){if((f|0)>=(e|0))break;t=a[A+(f<<2)>>2]|0;l=+s[t+(i<<3)>>3]-+s[t+(r<<3)>>3];f=f+1|0;n=l*l+n}return+ +z(+n)}function PS(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;if((r|0)>(i|0)){a[46873]=A;K4(e+(i<<2)|0,1-i+r|0,4,77)}return}function SS(A,e){A=A|0;e=e|0;var i=0.0,r=0.0,f=0;f=a[46873]|0;r=+c[f+(a[A>>2]<<2)>>2];i=+c[f+(a[e>>2]<<2)>>2];return(ri&1)|0}function OS(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0;l=k;k=k+16|0;f=l;if((i|0)<(r|0)){KS(A,e,i,r,f);n=a[f>>2]|0;f=n+-1|0;OS(A,e,i,f);n=n+1|0;OS(A,e,n,r);if(!(_S(A,e,i,f)|0))OS(A,e,i,f);if(!(_S(A,e,n,r)|0))OS(A,e,n,r)}k=l;return}function KS(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,b=0.0,u=0,w=0;n=a8()|0;n=e+(((((a8()|0)<<16|n)>>>0)%((1-i+r|0)>>>0)|0)+i<<2)|0;t=a[n>>2]|0;c=e+(i<<2)|0;a[n>>2]=a[c>>2];a[c>>2]=t;b=+s[A+(t<<3)>>3];n=i+1|0;i=r;A:while(1){if((n|0)>=(i|0))break;while(1){if((n|0)>=(i|0))break;if(!(+s[A+(a[e+(n<<2)>>2]<<3)>>3]<=b))break;n=n+1|0}while(1){if((n|0)>=(i|0))continue A;r=e+(i<<2)|0;l=a[r>>2]|0;if(!(+s[A+(l<<3)>>3]>b))break;i=i+-1|0}w=e+(n<<2)|0;u=a[w>>2]|0;a[w>>2]=l;a[r>>2]=u;n=n+1|0;i=i+-1|0}w=n+((+s[A+(a[e+(n<<2)>>2]<<3)>>3]>b)<<31>>31)|0;a[f>>2]=w;w=e+(w<<2)|0;a[c>>2]=a[w>>2];a[w>>2]=t;return}function _S(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0;n=1;while(1){f=i+1|0;if(!((i|0)<(r|0)&(n|0)!=0))break;n=+s[A+(a[e+(i<<2)>>2]<<3)>>3]>+s[A+(a[e+(f<<2)>>2]<<3)>>3]?0:n;i=f}return n|0}function qS(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0.0,l=0.0,t=0.0,c=0.0,b=0,u=0,w=0,o=0,h=0,g=0,v=0,E=0,C=0,I=0,Z=0.0,G=0.0;I=k;k=k+16|0;E=4;C=Q2(40)|0;a[C>>2]=0;g=I;d=0;v=iA(23,e*40|0)|0;i=d;d=0;if((i|0)!=0&(B|0)!=0){r=y6(a[i>>2]|0,C|0,E|0)|0;if(!r)fe(i|0,B|0);L=B}else r=-1;if((r|0)!=1){i=0;o=0;while(1){if((i|0)>=(e|0))break;h=(a[(a[A+(i<<2)>>2]|0)+4>>2]|0)+o|0;i=i+1|0;o=h}d=0;h=iA(23,o*24|0)|0;i=d;d=0;if((i|0)!=0&(B|0)!=0){r=y6(a[i>>2]|0,C|0,E|0)|0;if(!r)fe(i|0,B|0);L=B}else r=-1;if((r|0)!=1){i=0;b=0;while(1){if((b|0)>=(e|0))break;u=v+(b*40|0)|0;a[u>>2]=h+(i*24|0);w=A+(b<<2)|0;f=0;n=1797693134862315708145274.0e284;l=-1797693134862315708145274.0e284;t=-1797693134862315708145274.0e284;c=1797693134862315708145274.0e284;while(1){r=a[w>>2]|0;if((f|0)>=(a[r+4>>2]|0))break;r=a[r>>2]|0;G=+s[r+(f<<4)>>3];Z=+s[r+(f<<4)+8>>3];s[h+(i*24|0)>>3]=G;s[h+(i*24|0)+8>>3]=Z;a[h+(i*24|0)+16>>2]=u;a[h+(i*24|0)+20>>2]=0;f=f+1|0;i=i+1|0;n=nG?l:G;t=t>Z?t:Z;c=c>2]=h+((i+-1|0)*24|0);s[v+(b*40|0)+8>>3]=n;s[v+(b*40|0)+16>>3]=c;s[v+(b*40|0)+24>>3]=l;s[v+(b*40|0)+32>>3]=t;b=b+1|0}a[g>>2]=o;a[g+4>>2]=e;C=L6(187496,1,C|0,E|0)|0;E=L;d=0;i=d;d=0;if((i|0)!=0&(B|0)!=0){r=y6(a[i>>2]|0,C|0,E|0)|0;if(!r)fe(i|0,B|0);L=B}else r=-1;if((r|0)==1){i=L;w=h;b=h;u=v}else{i=0;w=h;b=h;u=v}}else{i=L;w=0;b=h;u=v}}else{i=L;w=0;b=0;u=0}while(1){if(i|0){d=0;bA(105,v|0);i=d;d=0;if((i|0)!=0&(B|0)!=0){r=y6(a[i>>2]|0,C|0,E|0)|0;if(!r)fe(i|0,B|0);L=B}else r=-1;if((r|0)==1){f=u;o=b;h=w;i=L;u=f;b=o;w=h;continue}d=0;bA(105,b|0);i=d;d=0;if((i|0)!=0&(B|0)!=0){r=y6(a[i>>2]|0,C|0,E|0)|0;if(!r)fe(i|0,B|0);L=B}else r=-1;if((r|0)==1){f=u;o=b;h=w;i=L;u=f;b=o;w=h;continue}else{r=17;break}}d=0;i=rA(78,w|0,g|0)|0;r=d;d=0;if((r|0)!=0&(B|0)!=0){f=y6(a[r>>2]|0,C|0,E|0)|0;if(!f)fe(r|0,B|0);L=B}else f=-1;if((f|0)==1){f=u;o=b;h=w;i=L;u=f;b=o;w=h;continue}if(!i){d=0;i=aA(24,A|0,e|0,u|0)|0;r=d;d=0;if((r|0)!=0&(B|0)!=0){f=y6(a[r>>2]|0,C|0,E|0)|0;if(!f)fe(r|0,B|0);L=B}else f=-1;if((f|0)==1){f=u;o=b;h=w;i=L;u=f;b=o;w=h;continue}}d=0;bA(105,v|0);r=d;d=0;if((r|0)!=0&(B|0)!=0){f=y6(a[r>>2]|0,C|0,E|0)|0;if(!f)fe(r|0,B|0);L=B}else f=-1;if((f|0)==1){f=u;o=b;h=w;i=L;u=f;b=o;w=h;continue}d=0;bA(105,b|0);r=d;d=0;if((r|0)!=0&(B|0)!=0){f=y6(a[r>>2]|0,C|0,E|0)|0;if(!f)fe(r|0,B|0);L=B}else f=-1;if((f|0)==1){f=u;o=b;h=w;i=L;u=f;b=o;w=h}else{r=24;break}}if((r|0)==17)i=0;else if((r|0)==24)i=(i|0)==0&1;L2(C|0);k=I;return i|0}function $S(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0;E=k;k=k+16|0;h=E;w=E+8|0;o=E+4|0;a[e+8>>2]=0;v=$F(a[e>>2]<<2)|0;f=a[e>>2]|0;r=0;while(1){if((r|0)>=(f|0))break;a[v+(r<<2)>>2]=A+(r*24|0);r=r+1|0}K4(v,f,4,79);b=0;n=0;f=0;l=0;A:while(1){if((b|0)>=(a[e>>2]|0)){B=0;i=n;g=l;break}u=v+(b<<2)|0;r=a[u>>2]|0;a[w>>2]=r;A=a[r+16>>2]|0;if((a[A>>2]|0)==(r|0))r=a[A+4>>2]|0;else r=r+-24|0;a[o>>2]=r;s=0;A=n;c=l;while(1){if((s|0)>=2)break;switch(eO(w,o)|0){case-1:{n=0;l=A;while(1){if((n|0)>=(c|0))break;t=iO(a[l>>2]|0,r)|0;if(t|0){B=t;i=A;g=c;break A}n=n+1|0;l=a[l+4>>2]|0}n=$F(12)|0;if(!c){f=0;A=n}else a[f+4>>2]=n;a[n+8>>2]=f;a[n>>2]=r;a[n+4>>2]=0;a[r+20>>2]=n;l=c+1|0;break}case 1:{r=r+20|0;n=a[r>>2]|0;if(!n){d=19;break A}do{if((c|0)!=1){if((n|0)==(A|0)){A=a[A+4>>2]|0;a[A+8>>2]=0;break}if((n|0)==(f|0)){f=a[f+8>>2]|0;a[f+4>>2]=0;break}else{t=n+4|0;l=a[n+8>>2]|0;a[l+4>>2]=a[t>>2];a[(a[t>>2]|0)+8>>2]=l;break}}else{A=0;f=0}}while(0);L2(n);a[r>>2]=0;n=f;l=c+-1|0;break}default:{n=f;l=c}}r=a[u>>2]|0;f=a[r+16>>2]|0;if((r|0)==(a[f+4>>2]|0))f=a[f>>2]|0;else f=r+24|0;a[o>>2]=f;s=s+1|0;f=n;c=l}b=b+1|0;n=A;l=c}if((d|0)==19){ao(1,93727,h)|0;fe(187496,1)}r=0;while(1){if((r|0)>=(g|0))break;d=a[i+4>>2]|0;L2(i);r=r+1|0;i=d}L2(v);k=E;return B|0}function AO(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0.0,n=0,l=0,t=0.0,c=0.0,b=0,u=0,w=0,o=0,h=0,d=0.0,B=0.0,g=0.0,v=0,E=0.0,C=0.0,I=0.0,Z=0.0,G=0,m=0,Q=0,L=0,y=0,W=0.0;y=k;k=k+48|0;w=y+24|0;u=y+16|0;v=y;r=0;A:while(1){if((r|0)>=(e|0)){r=0;break}G=a[A+(r<<2)>>2]|0;m=a[G>>2]|0;a[v>>2]=a[m>>2];a[v+4>>2]=a[m+4>>2];a[v+8>>2]=a[m+8>>2];a[v+12>>2]=a[m+12>>2];m=r+1|0;Q=i+(r*40|0)+8|0;o=i+(r*40|0)+24|0;h=i+(r*40|0)+32|0;n=i+(r*40|0)+16|0;r=m;while(1){if((r|0)>=(e|0)){r=m;continue A}l=a[A+(r<<2)>>2]|0;t=+s[Q>>3];c=+s[i+(r*40|0)+24>>3];b=!(t<=c);f=+s[i+(r*40|0)+8>>3];if((((!(b|!(t>=f))?(d=+s[n>>3],B=+s[i+(r*40|0)+32>>3],d<=B):0)?(g=+s[i+(r*40|0)+16>>3],d>=g):0)?(W=+s[o>>3],!(!(W<=c)|!(W>=f))):0)?(W=+s[h>>3],!(!(W<=B)|!(W>=g))):0){a[u>>2]=a[l>>2];a[u+4>>2]=a[l+4>>2];a[w>>2]=a[v>>2];a[w+4>>2]=a[v+4>>2];a[w+8>>2]=a[v+8>>2];a[w+12>>2]=a[v+12>>2];if(Dt(u,w)|0){r=1;break A}}else L=11;if((((((L|0)==11?(L=0,E=+s[o>>3],!(!(f<=E)|!(f>=t))):0)?(C=+s[i+(r*40|0)+16>>3],I=+s[h>>3],C<=I):0)?(Z=+s[n>>3],!(!(C>=Z)|(!(c<=E)|b))):0)?(W=+s[i+(r*40|0)+32>>3],!(!(W<=I)|!(W>=Z))):0)?(b=a[l>>2]|0,a[u>>2]=a[G>>2],a[u+4>>2]=a[G+4>>2],a[w>>2]=a[b>>2],a[w+4>>2]=a[b+4>>2],a[w+8>>2]=a[b+8>>2],a[w+12>>2]=a[b+12>>2],Dt(u,w)|0):0){r=1;break A}r=r+1|0}}k=y;return r|0}function eO(A,e){A=A|0;e=e|0;var i=0.0,r=0;r=a[A>>2]|0;A=a[e>>2]|0;i=+s[r>>3]-+s[A>>3];if(!(i!=0.0)){i=+s[r+8>>3]-+s[A+8>>3];if(i==0.0)A=0;else A=i>0.0?1:-1}else A=i>0.0?1:-1;return A|0}function iO(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0;b=k;k=k+64|0;n=b+32|0;l=b+24|0;t=b+16|0;c=b;f=b+48|0;rO(A,e,f);i=f+8|0;r=a[i>>2]|0;do{if((r|0)>0)i=0;else{if((r|0)<0){rO(e,A,f);i=a[i>>2]|0;if((i|0)>0){i=0;break}if((i|0)<0)i=3;else{i=a[f>>2]|0;i=fO(e,A,(i|0)>-1?i:0-i|0)|0}if(!(aO(A,e,l,t,i)|0)){i=0;break}}else{i=a[f>>2]|0;if((i|0)==(a[f+4>>2]|0)){i=fO(A,e,0)|0;i=(fO(A,e,(i|0)<=(fO(A,e,1)|0)&1)|0)<<1}else i=fO(A,e,(i|0)>-1?i:0-i|0)|0;if(!(aO(A,e,l,t,i)|0)){i=0;break}}s[c>>3]=+s[l>>3];s[c+8>>3]=+s[t>>3];a[n>>2]=a[c>>2];a[n+4>>2]=a[c+4>>2];a[n+8>>2]=a[c+8>>2];a[n+12>>2]=a[c+12>>2];i=nO(A,e,n)|0}}while(0);k=b;return i|0}function rO(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0.0,n=0.0,l=0.0,t=0.0,c=0.0,b=0.0;l=+s[A>>3];t=+s[A+8>>3];r=a[A+16>>2]|0;if((a[r+4>>2]|0)==(A|0)){A=a[r>>2]|0;r=A}else{r=A+24|0;A=A+24|0}n=+s[r>>3]-l;f=+s[A+8>>3]-t;r=a[e+16>>2]|0;if((a[r+4>>2]|0)==(e|0)){A=a[r>>2]|0;r=A}else{r=e+24|0;A=e+24|0}c=+s[r>>3]-l;b=+s[A+8>>3]-t;t=(+s[e+8>>3]-t)*n-(+s[e>>3]-l)*f;e=t==0.0?0:t>0.0?1:-1;a[i>>2]=e;t=b*n-c*f;A=t==0.0?0:t>0.0?1:-1;a[i+4>>2]=A;a[i+8>>2]=U(A,e)|0;return}function fO(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0,n=0.0,l=0.0,t=0.0,c=0.0,b=0.0;c=+s[A>>3];b=+s[A+8>>3];f=a[A+16>>2]|0;if((a[f+4>>2]|0)==(A|0))A=a[f>>2]|0;else A=A+24|0;t=+s[A>>3];l=+s[A+8>>3];do{if(i){A=a[e+16>>2]|0;if((a[A+4>>2]|0)==(e|0)){e=a[A>>2]|0;break}else{e=e+24|0;break}}}while(0);n=+s[e>>3];r=+s[e+8>>3];if(c==t)if(c==n)e=(tO(b,r,l)|0)!=-1&1;else e=0;else e=tO(c,n,t)|0;return e|0}function aO(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0.0,t=0.0,c=0.0,b=0.0,u=0.0,w=0.0,k=0.0,o=0.0;A:do{if((f|0)<1)n=0;else{w=+s[A>>3];o=+s[A+8>>3];n=a[A+16>>2]|0;if((a[n+4>>2]|0)==(A|0))n=a[n>>2]|0;else n=A+24|0;b=+s[n>>3];t=+s[n+8>>3];u=+s[e>>3];k=+s[e+8>>3];n=a[e+16>>2]|0;if((a[n+4>>2]|0)==(e|0))n=a[n>>2]|0;else n=e+24|0;c=+s[n>>3];l=+s[n+8>>3];e:do{switch(f|0){case 3:{if(w==b){s[i>>3]=w;l=(k-l)/(u-c)*(w-c)+l;break e}if(u==c){s[i>>3]=u;l=(o-t)/(w-b)*(u-b)+t;break e}else{c=(k-l)/(u-c);b=(o-t)/(w-b);k=k-c*u;o=o-b*w;l=c-b;s[i>>3]=(o-k)/l;l=(c*o-k*b)/l;break e}}case 2:{if((fO(A,e,0)|0)==-1)if((fO(e,A,1)|0)==-1){f=(fO(e,A,0)|0)==-1;b=f?b:w;c=u;t=f?t:o;l=k}else{b=c;c=u;t=l;l=k}else if((fO(A,e,1)|0)!=-1)if((fO(e,A,0)|0)==-1){c=w;l=o}else{n=0;break A}else{b=u;t=k}s[i>>3]=(c+b)*.5;l=(l+t)*.5;break}case 1:if((k-o)*(w-b)==(u-w)*(o-t)){s[i>>3]=u;l=k;break e}else{s[i>>3]=c;break e}default:{n=1;break A}}}while(0);s[r>>3]=l;n=1}}while(0);return n|0}function nO(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0.0,n=0.0,l=0.0,t=0.0,c=0.0,b=0.0,u=0.0,w=0.0,o=0.0,h=0,d=0,B=0;B=k;k=k+16|0;h=B;w=+s[A>>3];o=+s[A+8>>3];r=a[A+16>>2]|0;if((a[r+4>>2]|0)==(A|0))r=a[r>>2]|0;else r=A+24|0;b=+s[r>>3];t=+s[r+8>>3];c=+s[e>>3];u=+s[e+8>>3];r=a[e+16>>2]|0;if((a[r+4>>2]|0)==(e|0))r=a[r>>2]|0;else r=e+24|0;l=+s[r>>3];n=+s[r+8>>3];A:do{if(!(w!=b&c!=l)){do{if(w==b){f=+s[i>>3];if(w==f?o==+s[i+8>>3]:0)break;if(!(b==f)){d=18;break A}if(!(t==+s[i+8>>3])){d=18;break A}}}while(0);if(c==l){f=+s[i>>3];if(c==f?u==+s[i+8>>3]:0){r=0;break}if(l==f?n==+s[i+8>>3]:0)r=0;else d=18}else r=0}else d=18}while(0);if((d|0)==18)if(0>1){r=a[15712]|0;o=+s[i+8>>3];s[h>>3]=+s[i>>3];s[h+8>>3]=o;f3(r,93756,h)|0;lO(1,A);lO(2,e);r=1}else r=1;k=B;return r|0}function lO(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0.0,l=0.0,t=0,c=0,b=0.0,u=0.0;c=k;k=k+48|0;t=c;f=a[15712]|0;n=+s[e>>3];l=+s[e+8>>3];i=a[e+16>>2]|0;if((a[i+4>>2]|0)==(e|0)){i=a[i>>2]|0;r=i}else{r=e+24|0;i=e+24|0}u=+s[r>>3];b=+s[i+8>>3];a[t>>2]=A;s[t+8>>3]=n;s[t+16>>3]=l;s[t+24>>3]=u;s[t+32>>3]=b;f3(f,93784,t)|0;k=c;return}function tO(A,e,i){A=+A;e=+e;i=+i;return(A==e|e==i?0:(A>3]=0.0;r=r+1|0}s[f+(A<<3)>>3]=1.0;vw(a[e+(A<<2)>>2]|0,f,i);A=A+1|0}L2(f);f=0;while(1){if((f|0)>=(i|0)){A=1;break A}r=e+(f<<2)|0;A=0;while(1){if((A|0)==(f|0))break;t=(a[r>>2]|0)+(A<<3)|0;l=+s[t>>3];n=(a[e+(A<<2)>>2]|0)+(f<<3)|0;s[t>>3]=+s[n>>3];s[n>>3]=l;A=A+1|0}f=f+1|0}}}while(0);return A|0}function sO(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0.0,c=0,b=0.0,u=0,w=0,k=0,o=0,h=0,d=0,B=0;h=e<<3;o=$F(h)|0;h=$F(h)|0;d=e*30|0;w=(i|0)<(e|0)?i:e;k=e+-1|0;u=(n|0)==0;i=0;l=0;A:while(1){if((l|0)>=(w|0))break;c=a[r+(l<<2)>>2]|0;do{e:do{if(u)i=0;else{i=0;while(1){if((i|0)==(e|0)){i=0;break e}s[c+(i<<3)>>3]=+((a8()|0)%100|0|0);i=i+1|0}}}while(0);while(1){if((i|0)==(l|0))break;n=a[r+(i<<2)>>2]|0;uO(c,0,k,-+bO(n,0,k,c),n);i=i+1|0}t=+wO(c,0,k)}while(t<1.0e-10);kO(c,0,k,1.0/t,c);i=0;do{oO(h,0,k,c);hO(A,e,e,c,o);oO(c,0,k,o);n=0;while(1){if((n|0)==(l|0))break;B=a[r+(n<<2)>>2]|0;uO(c,0,k,-+bO(B,0,k,c),B);n=n+1|0}B=i;i=i+1|0;t=+wO(c,0,k);if(!((B|0)<(d|0)&!(t<1.0e-10)))break A;kO(c,0,k,1.0/t,c);b=+bO(c,0,k,h)}while(+W(+b)<.999);s[f+(l<<3)>>3]=b*t;l=l+1|0}while(1){if((l|0)>=(w|0))break;c=a[r+(l<<2)>>2]|0;n=0;while(1){if((n|0)>=(e|0)){n=0;break}s[c+(n<<3)>>3]=+((a8()|0)%100|0|0);n=n+1|0}while(1){if((n|0)>=(l|0))break;B=a[r+(n<<2)>>2]|0;uO(c,0,k,-+bO(B,0,k,c),B);n=n+1|0}kO(c,0,k,1.0/+wO(c,0,k),c);s[f+(l<<3)>>3]=0.0;l=l+1|0}u=w+-1|0;l=0;while(1){if((l|0)>=(u|0))break;A=f+(l<<3)|0;e=l+1|0;t=+s[A>>3];n=l;c=e;while(1){if((c|0)>=(w|0))break;b=+s[f+(c<<3)>>3];B=t>2]|0);B=r+(n<<2)|0;oO(a[c>>2]|0,0,k,a[B>>2]|0);oO(a[B>>2]|0,0,k,o);s[f+(n<<3)>>3]=+s[A>>3];s[A>>3]=t;l=e}L2(o);L2(h);return(i|0)<=(d|0)|0}function bO(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,a=0.0;a=0.0;f=1-e+i|0;r=r+(e<<3)|0;i=A+(e<<3)|0;while(1){if(!f)break;a=+s[r>>3]*+s[i>>3]+a;f=f+-1|0;r=r+8|0;i=i+8|0}return+a}function uO(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=+r;f=f|0;var a=0;a=1-e+i|0;f=f+(e<<3)|0;i=A+(e<<3)|0;while(1){if(!a)break;s[i>>3]=+s[i>>3]+ +s[f>>3]*r;a=a+-1|0;f=f+8|0;i=i+8|0}return}function wO(A,e,i){A=A|0;e=e|0;i=i|0;return+ +z(+ +bO(A,e,i,A))}function kO(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=+r;f=f|0;var a=0;a=1-e+i|0;f=f+(e<<3)|0;i=A+(e<<3)|0;while(1){if(!a)break;s[i>>3]=+s[f>>3]*r;a=a+-1|0;f=f+8|0;i=i+8|0}return}function oO(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0;f=1-e+i|0;r=r+(e<<3)|0;i=A+(e<<3)|0;while(1){if(!f)break;s[i>>3]=+s[r>>3];f=f+-1|0;r=r+8|0;i=i+8|0}return}function hO(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0.0,l=0,t=0,c=0;t=0;while(1){if((t|0)>=(e|0))break;c=A+(t<<2)|0;n=0.0;l=0;while(1){if((l|0)>=(i|0))break;n=+s[r+(l<<3)>>3]*+s[(a[c>>2]|0)+(l<<3)>>3]+n;l=l+1|0}s[f+(t<<3)>>3]=n;t=t+1|0}return}function dO(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,b=0.0,u=0,w=0,k=0,o=0.0;t=a[n>>2]|0;if(!t){k=i<<2;l=Q2(U(k,f)|0)|0;k=Q2(k)|0}else{k=i<<2;l=W2(a[t>>2]|0,U(k,f)|0)|0;k=W2(t,k)|0}a[n>>2]=k;t=0;while(1){if((t|0)>=(i|0)){n=0;break}a[k+(t<<2)>>2]=l;t=t+1|0;l=l+(f<<2)|0}while(1){if((n|0)>=(i|0))break;u=A+(n<<2)|0;w=k+(n<<2)|0;t=0;while(1){if((t|0)<(f|0)){l=0;b=0.0}else break;while(1){if((l|0)>=(r|0))break;o=+s[(a[u>>2]|0)+(l<<3)>>3]*+c[(a[e+(l<<2)>>2]|0)+(t<<2)>>2]+b;l=l+1|0;b=o}c[(a[w>>2]|0)+(t<<2)>>2]=b;t=t+1|0}n=n+1|0}return}function BO(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,b=0.0,u=0,w=0,k=0;t=a[n>>2]|0;if(!t){l=Q2(U(i<<3,f)|0)|0;k=Q2(i<<2)|0}else{l=W2(a[t>>2]|0,U(i<<3,f)|0)|0;k=W2(t,i<<2)|0}a[n>>2]=k;t=0;while(1){if((t|0)>=(i|0)){n=0;break}a[k+(t<<2)>>2]=l;t=t+1|0;l=l+(f<<3)|0}while(1){if((n|0)>=(i|0))break;u=A+(n<<2)|0;w=k+(n<<2)|0;t=0;while(1){if((t|0)<(f|0)){b=0.0;l=0}else break;while(1){if((l|0)>=(r|0))break;b=+s[(a[u>>2]|0)+(l<<3)>>3]*+c[(a[e+(l<<2)>>2]|0)+(t<<2)>>2]+b;l=l+1|0}s[(a[w>>2]|0)+(t<<3)>>3]=b;t=t+1|0}n=n+1|0}return}function gO(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0.0,b=0,u=0,w=0,k=0,o=0,h=0;l=a[f>>2]|0;if(!l){n=Q2(U(i*20|0,r)|0)|0;h=Q2(i<<2)|0}else{n=W2(a[l>>2]|0,U(i*20|0,r)|0)|0;h=W2(l,i<<2)|0}a[f>>2]=h;l=0;while(1){if((l|0)>=(i|0)){f=0;break}a[h+(l<<2)>>2]=n;l=l+1|0;n=n+(r<<2)|0}while(1){if((f|0)>=(i|0))break;b=a[A+(f*20|0)+4>>2]|0;u=a[A+(f*20|0)+8>>2]|0;w=a[A+(f*20|0)>>2]|0;k=h+(f<<2)|0;n=0;while(1){if((n|0)>=(r|0))break;o=e+(n<<2)|0;t=0.0;l=0;while(1){if((l|0)>=(w|0))break;t=+s[(a[o>>2]|0)+(a[b+(l<<2)>>2]<<3)>>3]*+c[u+(l<<2)>>2]+t;l=l+1|0}c[(a[k>>2]|0)+(n<<2)>>2]=t;n=n+1|0}f=f+1|0}return}function vO(A,e){A=A|0;e=e|0;var i=0.0,r=0,f=0;i=0.0;r=e;f=A;while(1){if(!f)break;i=+s[r>>3]+i;r=r+8|0;f=f+-1|0}i=i/+(A|0);while(1){if(!A)break;s[e>>3]=+s[e>>3]-i;e=e+8|0;A=A+-1|0}return}function EO(A,e){A=A|0;e=e|0;var i=0;i=0;while(1){if((i|0)>=(A|0))break;s[e+(i<<3)>>3]=+((a8()|0)%500|0|0);i=i+1|0}vO(A,e);return}function CO(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,n=0,l=0,t=0,b=0,u=0;l=0;while(1){if((l|0)>=(e|0))break;t=a[A+(l*20|0)>>2]|0;b=A+(l*20|0)+8|0;u=A+(l*20|0)+4|0;f=0.0;n=0;while(1){if((n|0)>=(t|0))break;f=+s[i+(a[(a[u>>2]|0)+(n<<2)>>2]<<3)>>3]*+c[(a[b>>2]|0)+(n<<2)>>2]+f;n=n+1|0}s[r+(l<<3)>>3]=f;l=l+1|0}return}function IO(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,n=0,l=0,t=0;l=0;while(1){if((l|0)>=(e|0))break;t=A+(l<<2)|0;f=0.0;n=0;while(1){if((n|0)==(e|0))break;f=+s[i+(n<<3)>>3]*+c[(a[t>>2]|0)+(n<<2)>>2]+f;n=n+1|0}s[r+(l<<3)>>3]=f;l=l+1|0}return}function ZO(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0;f=0;while(1){if((f|0)>=(A|0))break;s[r+(f<<3)>>3]=+s[e+(f<<3)>>3]-+s[i+(f<<3)>>3];f=f+1|0}return}function GO(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0;f=0;while(1){if((f|0)>=(A|0))break;s[r+(f<<3)>>3]=+s[i+(f<<3)>>3]+ +s[e+(f<<3)>>3];f=f+1|0}return}function mO(A,e,i,r){A=A|0;e=e|0;i=+i;r=r|0;var f=0;f=0;while(1){if((f|0)>=(A|0))break;s[r+(f<<3)>>3]=+s[e+(f<<3)>>3]*i;f=f+1|0}return}function QO(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=0;while(1){if((r|0)>=(A|0))break;s[i+(r<<3)>>3]=+s[e+(r<<3)>>3];r=r+1|0}return}function LO(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0;r=0.0;f=0;while(1){if((f|0)>=(A|0))break;r=+s[i+(f<<3)>>3]*+s[e+(f<<3)>>3]+r;f=f+1|0}return+r}function yO(A,e){A=A|0;e=e|0;var i=0,r=0.0,f=0.0;i=0;r=-1.e+50;while(1){if((i|0)>=(A|0))break;f=+W(+ +s[e+(i<<3)>>3]);i=i+1|0;r=f>r?f:r}return+r}function WO(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0.0,l=0,t=0;t=0;while(1){if((t|0)<(e|0)){n=0.0;l=0}else break;while(1){if((l|0)>=(i|0))break;n=+s[r+(l<<3)>>3]*+s[(a[A+(l<<2)>>2]|0)+(t<<3)>>3]+n;l=l+1|0}s[f+(t<<3)>>3]=n;t=t+1|0}return}function zO(A,e){A=A|0;e=e|0;var i=0.0,r=0,f=0;i=0.0;r=e;f=A;while(1){if(!f)break;i=+c[r>>2]+i;r=r+4|0;f=f+-1|0}i=i/+(A|0);while(1){if(!A)break;c[e>>2]=+c[e>>2]-i;e=e+4|0;A=A+-1|0}return}function YO(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,a=0.0,n=0,l=0,t=0,s=0,b=0.0,u=0,w=0.0,k=0,o=0.0;f=0;while(1){if((f|0)>=(e|0)){n=0;t=0;u=e;break}c[r+(f<<2)>>2]=0.0;f=f+1|0}while(1){if((t|0)>=(e|0))break;b=+c[i+(t<<2)>>2];s=t+1|0;a=+c[A+(n<<2)>>2]*b;l=s;f=n;while(1){f=f+1|0;if((l|0)==(e|0))break;o=+c[A+(f<<2)>>2];w=+c[i+(l<<2)>>2]*o+a;k=r+(l<<2)|0;c[k>>2]=+c[k>>2]+o*b;a=w;l=l+1|0}k=r+(t<<2)|0;c[k>>2]=+c[k>>2]+a;n=n+u|0;t=s;u=u+-1|0}return}function DO(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0;f=0;while(1){if((f|0)>=(A|0))break;c[r+(f<<2)>>2]=+c[e+(f<<2)>>2]-+c[i+(f<<2)>>2];f=f+1|0}return}function MO(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0;f=0;while(1){if((f|0)>=(A|0))break;c[r+(f<<2)>>2]=+c[i+(f<<2)>>2]+ +c[e+(f<<2)>>2];f=f+1|0}return}function FO(A,e,i,r){A=A|0;e=e|0;i=+i;r=r|0;var f=0,a=0;f=0;while(1){if((f|0)>=(A|0))break;a=e+(f<<2)|0;c[a>>2]=+c[r+(f<<2)>>2]*i+ +c[a>>2];f=f+1|0}return}function VO(A,e,i,r){A=A|0;e=e|0;i=+i;r=r|0;var f=0;f=0;while(1){if((f|0)>=(A|0))break;c[r+(f<<2)>>2]=+c[e+(f<<2)>>2]*i;f=f+1|0}return}function JO(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=0;while(1){if((r|0)>=(A|0))break;a[i+(r<<2)>>2]=a[e+(r<<2)>>2];r=r+1|0}return}function pO(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0;r=0.0;f=0;while(1){if((f|0)>=(A|0))break;r=r+ +c[i+(f<<2)>>2]*+c[e+(f<<2)>>2];f=f+1|0}return+r}function NO(A,e,i){A=A|0;e=+e;i=i|0;var r=0;r=0;while(1){if((r|0)>=(A|0))break;s[i+(r<<3)>>3]=e;r=r+1|0}return}function RO(A,e,i){A=A|0;e=+e;i=i|0;var r=0;r=0;while(1){if((r|0)>=(A|0))break;c[i+(r<<2)>>2]=e;r=r+1|0}return}function XO(A,e){A=A|0;e=e|0;var i=0.0,r=0,f=0.0;i=-1000000015047466219876688.0e6;r=0;while(1){if((r|0)>=(A|0))break;f=+W(+ +c[e+(r<<2)>>2]);i=f>i?f:i;r=r+1|0}return+i}function HO(A,e){A=A|0;e=e|0;var i=0,r=0,f=0.0;i=0;while(1){if((i|0)>=(A|0))break;r=e+(i<<2)|0;f=+c[r>>2];c[r>>2]=f*f;i=i+1|0}return}function UO(A,e){A=A|0;e=e|0;var i=0,r=0,f=0.0;i=0;while(1){if((i|0)>=(A|0))break;r=e+(i<<2)|0;f=+c[r>>2];if(f!=0.0)c[r>>2]=1.0/f;i=i+1|0}return}function xO(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0.0;r=0;while(1){if((r|0)>=(A|0))break;f=+c[e+(r<<2)>>2];if(f>=0.0)c[i+(r<<2)>>2]=+z(+f);r=r+1|0}return}function TO(A,e){A=A|0;e=e|0;var i=0,r=0,f=0.0;i=0;while(1){if((i|0)>=(A|0))break;r=e+(i<<2)|0;f=+c[r>>2];if(f>0.0)c[r>>2]=1.0/+z(+f);i=i+1|0}return}function jO(A,e){A=A|0;e=e|0;var i=0;a[A>>2]=0;if(e&3)if(!(4%(e>>>0)|0))e=4;else e=U(4/((PO(e)|0)>>>0)|0,e)|0;a[A+8>>2]=e;A=A+4|0;e=a[A>>2]|0;A:do{if(e|0)while(1){if(!e)break A;i=a[e>>2]|0;L2(a[e+4>>2]|0);L2(e);e=i}}while(0);a[A>>2]=0;return}function PO(A){A=A|0;var e=0,i=0;i=4;A:while(1){e=i;while(1){if((e|0)==(A|0))break A;if((e|0)<=(A|0))break;e=e-A|0}i=e;A=A-e|0}return A|0}function SO(A){A=A|0;var e=0,i=0,r=0,f=0;e=a[A>>2]|0;if(!e){i=a[A+8>>2]|0;r=$F(8)|0;f=$F(U(a[46855]|0,i)|0)|0;a[r+4>>2]=f;e=0;while(1){if((e|0)>=(a[46855]|0))break;OO(f+(U(e,i)|0)|0,A);e=e+1|0}e=A+4|0;a[r>>2]=a[e>>2];a[e>>2]=r;e=a[A>>2]|0}a[A>>2]=a[e>>2];return e|0}function OO(A,e){A=A|0;e=e|0;a[A>>2]=a[e>>2];a[e>>2]=A;return}function KO(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,s=0,b=0,u=0;u=qF(e<<3)|0;b=A+8|0;f=a[b>>2]|0;_O(A,e,u);EO(e,i);n=0;l=0;while(1){if((l|0)>=(e|0))break;n=(a[A+(l*20|0)>>2]|0)+n|0;l=l+1|0}n=$F(n<<2)|0;t=0;while(1){if((t|0)>=(e|0))break;a[A+(t*20|0)+8>>2]=n;s=a[A+(t*20|0)>>2]|0;c[n>>2]=+(1-s|0);l=1;while(1){if((l|0)>=(s|0))break;c[n+(l<<2)>>2]=1.0;l=l+1|0}n=n+(s<<2)|0;t=t+1|0}l=bP(A,i,u,e,.001,r)|0;L2(a[b>>2]|0);n=0;while(1){if((n|0)>=(e|0))break;a[A+(n*20|0)+8>>2]=f;f=f+(a[A+(n*20|0)>>2]<<2)|0;n=n+1|0}L2(u);return l>>>31|0}function _O(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0,n=0,l=0,t=0,b=0,u=0;t=A+16|0;n=0;while(1){if((n|0)>=(e|0))break;if(a[t>>2]|0){b=a[A+(n*20|0)>>2]|0;u=A+(n*20|0)+8|0;l=A+(n*20|0)+16|0;r=0.0;f=1;while(1){if((f|0)>=(b|0))break;r=r+ +c[(a[l>>2]|0)+(f<<2)>>2]*+c[(a[u>>2]|0)+(f<<2)>>2];f=f+1|0}s[i+(n<<3)>>3]=r}n=n+1|0}return}function qO(A,e,i,r,f,n,l,t,c){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=+l;t=t|0;c=c|0;A=k;k=k+16|0;if(!(a[46913]|0)){a[46913]=1;ao(1,93820,A)|0}k=A;return}function $O(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0.0,c=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0.0;d=$F(f<<2)|0;l=e<<3;n=0;while(1){if((n|0)>=(f|0))break;a[d+(n<<2)>>2]=$F(l)|0;n=n+1|0}o=$F(f<<3)|0;h=$F(e<<2)|0;n=$F(U(l,e)|0)|0;l=0;while(1){if((l|0)>=(e|0))break;a[h+(l<<2)>>2]=n;n=n+(e<<3)|0;l=l+1|0}c=0;k=1;while(1){if((c|0)>=(e|0))break;b=A+(c<<2)|0;u=h+(c<<2)|0;l=0;while(1){if((l|0)==(k|0))break;w=A+(l<<2)|0;n=0;t=0.0;while(1){if((n|0)>=(i|0))break;B=t+ +(U(a[(a[w>>2]|0)+(n<<2)>>2]|0,a[(a[b>>2]|0)+(n<<2)>>2]|0)|0);n=n+1|0;t=B}s[(a[h+(l<<2)>>2]|0)+(c<<3)>>3]=t;s[(a[u>>2]|0)+(l<<3)>>3]=t;l=l+1|0}c=c+1|0;k=k+1|0}sO(h,e,f,d,o,1)|0;l=0;while(1){if((l|0)>=(f|0)){n=0;break}b=d+(l<<2)|0;u=r+(l<<2)|0;c=0;while(1){if((c|0)<(i|0)){n=0;t=0.0}else break;while(1){if((n|0)>=(e|0))break;B=+s[(a[b>>2]|0)+(n<<3)>>3]*+(a[(a[A+(n<<2)>>2]|0)+(c<<2)>>2]|0)+t;n=n+1|0;t=B}s[(a[u>>2]|0)+(c<<3)>>3]=t;c=c+1|0}l=l+1|0}while(1){if((n|0)>=(f|0))break;L2(a[d+(n<<2)>>2]|0);n=n+1|0}L2(d);L2(o);L2(a[h>>2]|0);L2(h);return}function AK(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0;f=k;k=k+32|0;n=f+16|0;c=f+20|0;t=f+12|0;l=f+8|0;a[n>>2]=r;a[t>>2]=0;a[l>>2]=0;lw(a[A>>2]|0,i,i<<2,c);gO(a[c>>2]|0,A,i,e,t);BO(A,a[t>>2]|0,e,i,e,l);L2(a[a[t>>2]>>2]|0);L2(a[t>>2]|0);r=(sO(a[l>>2]|0,e,1,n,f,1)|0)&255;k=f;return r|0}function eK(){a[46914]=0;L2(a[46915]|0);L2(a[46916]|0);L2(a[46917]|0);a[46915]=0;a[46916]=0;a[46917]=0;return}function iK(A){A=A|0;L2(a[A+36>>2]|0);return}function rK(A,e,i,f){A=A|0;e=e|0;i=+i;f=+f;var n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0.0,g=0.0,v=0.0,E=0.0;d=k;k=k+80|0;w=d+64|0;h=d+68|0;l=d+48|0;t=d+32|0;c=d+16|0;b=d;u=e+16|0;n=a[u>>2]|0;A:do{if(!(a[n+212>>2]|0))switch(bp(e)|0){case 1:{n=a[u>>2]|0;t=a[n+12>>2]|0;c=a[t+8>>2]|0;a[h>>2]=c;n=a[a[n+8>>2]>>2]|0;switch(r[n>>0]|0){case 98:{if(!(A1(n,108236)|0))o=11;else o=8;break}case 112:{if((A1(n,105721)|0)==0?(fK(a[t+44>>2]|0,c)|0)!=0:0)o=11;else o=8;break}default:o=8}do{if((o|0)==8)if((c|0)<3){a[A+40>>2]=(a[t>>2]|0)==0?0:2;o=17;break}else{n=A+40|0;a[n>>2]=0;break}else if((o|0)==11){n=A+40|0;a[n>>2]=1;if((c|0)<=2)o=17}}while(0);if((o|0)==17){l=aK(e,h,i,f)|0;o=21;break A}l=$F(c<<4)|0;t=t+44|0;if((a[n>>2]|0)==1){o=a[t>>2]|0;B=i;s[l>>3]=+s[o>>3]*.013888888888888888+B;i=f;s[l+8>>3]=+s[o+8>>3]*.013888888888888888+i;s[l+16>>3]=+s[o+16>>3]*.013888888888888888-B;s[l+24>>3]=+s[o+24>>3]*.013888888888888888+i;s[l+32>>3]=+s[o+32>>3]*.013888888888888888-B;s[l+40>>3]=+s[o+40>>3]*.013888888888888888-i;s[l+48>>3]=+s[o+48>>3]*.013888888888888888+B;s[l+56>>3]=+s[o+56>>3]*.013888888888888888-i;o=21;break A}n=0;while(1){if((n|0)>=(c|0)){o=21;break A}o=a[t>>2]|0;v=+s[o+(n<<4)>>3];B=+s[o+(n<<4)+8>>3];g=+z(+(B*B+v*v));s[l+(n<<4)>>3]=(i/g+1.0)*v*.013888888888888888;s[l+(n<<4)+8>>3]=(f/g+1.0)*B*.013888888888888888;n=n+1|0}}case 2:{a[h>>2]=4;o=$F(64)|0;e=a[(a[u>>2]|0)+12>>2]|0;E=+s[e+32>>3];g=+s[e+40>>3];w=~~+s[e+16>>3];e=~~+s[e+24>>3];v=-i;B=-f;nK(l,w,e,v,B);a[o>>2]=a[l>>2];a[o+4>>2]=a[l+4>>2];a[o+8>>2]=a[l+8>>2];a[o+12>>2]=a[l+12>>2];l=o+16|0;u=~~E;nK(t,u,e,i,B);a[l>>2]=a[t>>2];a[l+4>>2]=a[t+4>>2];a[l+8>>2]=a[t+8>>2];a[l+12>>2]=a[t+12>>2];l=o+32|0;e=~~g;nK(c,u,e,i,f);a[l>>2]=a[c>>2];a[l+4>>2]=a[c+4>>2];a[l+8>>2]=a[c+8>>2];a[l+12>>2]=a[c+12>>2];l=o+48|0;nK(b,w,e,v,f);a[l>>2]=a[b>>2];a[l+4>>2]=a[b+4>>2];a[l+8>>2]=a[b+8>>2];a[l+12>>2]=a[b+12>>2];a[A+40>>2]=1;l=o;o=21;break A}case 3:{a[A+40>>2]=2;l=aK(e,h,i,f)|0;o=21;break A}default:{a[w>>2]=a[a[(a[u>>2]|0)+8>>2]>>2];ao(1,93883,w)|0;n=1;break A}}else{a[h>>2]=4;v=+s[n+32>>3]*.5+i;E=+s[n+40>>3]*.5+f;a[A+40>>2]=1;l=$F(64)|0;s[l>>3]=v;s[l+8>>3]=E;g=-v;s[l+16>>3]=g;s[l+24>>3]=E;s[l+32>>3]=g;E=-E;s[l+40>>3]=E;s[l+48>>3]=v;s[l+56>>3]=E;o=21}}while(0);if((o|0)==21){a[A+36>>2]=l;n=a[h>>2]|0;a[A+32>>2]=n;lK(l,n,A,A+16|0);if((n|0)>(a[46914]|0)){a[46914]=n;n=0}else n=0}k=d;return n|0}function fK(A,e){A=A|0;e=e|0;var i=0.0,r=0.0;do{if((e|0)==4){i=+s[A+8>>3];e=A+16|0;r=+s[A+24>>3];if(i==r){if(!(+s[A+40>>3]==+s[A+56>>3])){e=0;break}if(!(+s[A>>3]==+s[A+48>>3])){e=0;break}e=+s[e>>3]==+s[A+32>>3];break}if((+s[A>>3]==+s[e>>3]?+s[A+32>>3]==+s[A+48>>3]:0)?i==+s[A+56>>3]:0)e=r==+s[A+40>>3];else e=0}else e=0}while(0);return e&1|0}function aK(A,e,i,r){A=A|0;e=e|0;i=+i;r=+r;var f=0,n=0.0,l=0,t=0,c=0.0,b=0;f=Ho(A,102705)|0;if(!f)f=0;else f=q3(f)|0;l=(f|0)<3?20:f;t=$F(l<<4)|0;A=A+16|0;n=1.0/+(l|0);f=0;while(1){if((f|0)>=(l|0))break;b=a[A>>2]|0;c=n*+(f|0)*6.283185307179586;s[t+(f<<4)>>3]=(+s[b+32>>3]*.5+i)*+D(+c);s[t+(f<<4)+8>>3]=(+s[b+40>>3]*.5+r)*+M(+c);f=f+1|0}a[e>>2]=l;return t|0}function nK(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=+r;f=+f;s[A>>3]=+(e|0)*.013888888888888888+r;s[A+8>>3]=+(i|0)*.013888888888888888+f;return}function lK(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,a=0.0,n=0.0,l=0.0,t=0.0,c=0,b=0.0,u=0.0;t=+s[A>>3];l=+s[A+8>>3];f=1;a=l;n=t;while(1){if((f|0)>=(e|0))break;c=A+16|0;b=+s[c>>3];u=+s[A+24>>3];f=f+1|0;a=u>a?u:a;n=b>n?b:n;l=u>3]=t;s[i+8>>3]=l;s[r>>3]=n;s[r+8>>3]=a;return}function tK(A,e,i,f){A=A|0;e=e|0;i=+i;f=+f;var n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0.0,g=0.0,v=0.0,E=0.0;d=k;k=k+80|0;u=d+64|0;o=d+68|0;l=d+48|0;t=d+32|0;c=d+16|0;b=d;w=e+16|0;n=a[w>>2]|0;A:do{if(!(a[n+212>>2]|0))switch(bp(e)|0){case 1:{b=a[(a[w>>2]|0)+12>>2]|0;u=b+8|0;c=a[u>>2]|0;a[o>>2]=c;e:do{if((c|0)>2){l=$F(c<<4)|0;t=b+44|0;n=0;while(1){if((n|0)>=(c|0))break e;e=a[t>>2]|0;s[l+(n<<4)>>3]=+s[e+(n<<4)>>3]*.013888888888888888;s[l+(n<<4)+8>>3]=+s[e+(n<<4)+8>>3]*.013888888888888888;n=n+1|0}}else l=aK(e,o,0.0,0.0)|0}while(0);n=a[a[(a[w>>2]|0)+8>>2]>>2]|0;switch(r[n>>0]|0){case 98:{if(!(A1(n,108236)|0))n=1;else h=13;break}case 112:{if((A1(n,105721)|0)==0?(fK(l,a[o>>2]|0)|0)!=0:0)n=1;else h=13;break}default:h=13}do{if((h|0)==13){if((a[u>>2]|0)<3?a[b>>2]|0:0){n=2;break}n=0}}while(0);a[A+40>>2]=n;h=20;break A}case 2:{a[o>>2]=4;h=$F(64)|0;w=a[(a[w>>2]|0)+12>>2]|0;g=+s[w+16>>3];E=+s[w+24>>3];v=+s[w+32>>3];B=+s[w+40>>3];cK(l,g,E);a[h>>2]=a[l>>2];a[h+4>>2]=a[l+4>>2];a[h+8>>2]=a[l+8>>2];a[h+12>>2]=a[l+12>>2];l=h+16|0;cK(t,v,E);a[l>>2]=a[t>>2];a[l+4>>2]=a[t+4>>2];a[l+8>>2]=a[t+8>>2];a[l+12>>2]=a[t+12>>2];l=h+32|0;cK(c,v,B);a[l>>2]=a[c>>2];a[l+4>>2]=a[c+4>>2];a[l+8>>2]=a[c+8>>2];a[l+12>>2]=a[c+12>>2];l=h+48|0;cK(b,g,B);a[l>>2]=a[b>>2];a[l+4>>2]=a[b+4>>2];a[l+8>>2]=a[b+8>>2];a[l+12>>2]=a[b+12>>2];a[A+40>>2]=1;l=h;h=20;break A}case 3:{a[A+40>>2]=2;l=aK(e,o,0.0,0.0)|0;h=20;break A}default:{a[u>>2]=a[a[(a[w>>2]|0)+8>>2]>>2];ao(1,93919,u)|0;n=1;break A}}else{a[o>>2]=4;v=+s[n+32>>3]*.5;E=+s[n+40>>3]*.5;a[A+40>>2]=1;l=$F(64)|0;s[l>>3]=v;s[l+8>>3]=E;g=-v;s[l+16>>3]=g;s[l+24>>3]=E;s[l+32>>3]=g;E=-E;s[l+40>>3]=E;s[l+48>>3]=v;s[l+56>>3]=E;h=20}}while(0);if((h|0)==20){n=a[o>>2]|0;if(i!=1.0|f!=1.0)sK(l,n,i,f);a[A+36>>2]=l;a[A+32>>2]=n;lK(l,n,A,A+16|0);if((n|0)>(a[46914]|0)){a[46914]=n;n=0}else n=0}k=d;return n|0}function cK(A,e,i){A=A|0;e=+e;i=+i;s[A>>3]=e*.013888888888888888;s[A+8>>3]=i*.013888888888888888;return}function sK(A,e,i,r){A=A|0;e=e|0;i=+i;r=+r;var f=0,a=0;f=0;while(1){if((f|0)>=(e|0))break;s[A>>3]=+s[A>>3]*i;a=A+8|0;s[a>>3]=+s[a>>3]*r;A=A+16|0;f=f+1|0}return}function bK(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0.0,g=0.0,v=0.0,E=0;d=k;k=k+128|0;w=d+112|0;u=d+96|0;b=d+80|0;f=d+64|0;o=d+48|0;h=d+32|0;t=d+16|0;c=d;a[u>>2]=a[A>>2];a[u+4>>2]=a[A+4>>2];a[u+8>>2]=a[A+8>>2];a[u+12>>2]=a[A+12>>2];a[w>>2]=a[e>>2];a[w+4>>2]=a[e+4>>2];a[w+8>>2]=a[e+8>>2];a[w+12>>2]=a[e+12>>2];cS(o,u,w);n=e+16|0;a[u>>2]=a[A>>2];a[u+4>>2]=a[A+4>>2];a[u+8>>2]=a[A+8>>2];a[u+12>>2]=a[A+12>>2];a[w>>2]=a[n>>2];a[w+4>>2]=a[n+4>>2];a[w+8>>2]=a[n+8>>2];a[w+12>>2]=a[n+12>>2];cS(h,u,w);a[u>>2]=a[i>>2];a[u+4>>2]=a[i+4>>2];a[u+8>>2]=a[i+8>>2];a[u+12>>2]=a[i+12>>2];a[w>>2]=a[r>>2];a[w+4>>2]=a[r+4>>2];a[w+8>>2]=a[r+8>>2];a[w+12>>2]=a[r+12>>2];cS(t,u,w);l=r+16|0;a[u>>2]=a[i>>2];a[u+4>>2]=a[i+4>>2];a[u+8>>2]=a[i+8>>2];a[u+12>>2]=a[i+12>>2];a[w>>2]=a[l>>2];a[w+4>>2]=a[l+4>>2];a[w+8>>2]=a[l+8>>2];a[w+12>>2]=a[l+12>>2];cS(c,u,w);a[f>>2]=a[o>>2];a[f+4>>2]=a[o+4>>2];a[f+8>>2]=a[o+8>>2];a[f+12>>2]=a[o+12>>2];a[b>>2]=a[h>>2];a[b+4>>2]=a[h+4>>2];a[b+8>>2]=a[h+8>>2];a[b+12>>2]=a[h+12>>2];a[u>>2]=a[t>>2];a[u+4>>2]=a[t+4>>2];a[u+8>>2]=a[t+8>>2];a[u+12>>2]=a[t+12>>2];a[w>>2]=a[c>>2];a[w+4>>2]=a[c+4>>2];a[w+8>>2]=a[c+8>>2];a[w+12>>2]=a[c+12>>2];do{if(uK(f,b,u,w)|0){f=a[e+40>>2]|0;if(f&1|0?a[r+40>>2]&1|0:0){f=1;break}if(f&2|0?a[r+40>>2]&2|0:0){B=+s[n>>3]-+s[e>>3]+ +s[l>>3]-+s[r>>3];g=+s[A>>3]-+s[i>>3];v=+s[A+8>>3]-+s[i+8>>3];f=!(v*v+g*g>B*B*.25);break}f=a[46915]|0;if(!f){a[46915]=$F(a[46914]<<4)|0;l=$F(a[46914]<<4)|0;a[46916]=l;f=a[46915]|0}else l=a[46916]|0;E=a[e+36>>2]|0;e=e+32|0;n=a[e>>2]|0;a[w>>2]=a[A>>2];a[w+4>>2]=a[A+4>>2];a[w+8>>2]=a[A+8>>2];a[w+12>>2]=a[A+12>>2];wK(E,n,w,f);A=a[r+36>>2]|0;n=r+32|0;r=a[n>>2]|0;a[w>>2]=a[i>>2];a[w+4>>2]=a[i+4>>2];a[w+8>>2]=a[i+8>>2];a[w+12>>2]=a[i+12>>2];wK(A,r,w,l);if(!(kK(f,l,a[e>>2]|0,a[n>>2]|0)|0)){f=a[46915]|0;a[b>>2]=a[f>>2];a[b+4>>2]=a[f+4>>2];a[b+8>>2]=a[f+8>>2];a[b+12>>2]=a[f+12>>2];a[u>>2]=a[t>>2];a[u+4>>2]=a[t+4>>2];a[u+8>>2]=a[t+8>>2];a[u+12>>2]=a[t+12>>2];a[w>>2]=a[c>>2];a[w+4>>2]=a[c+4>>2];a[w+8>>2]=a[c+8>>2];a[w+12>>2]=a[c+12>>2];if(oK(b,u,w)|0?(c=a[46916]|0,E=a[n>>2]|0,a[w>>2]=a[f>>2],a[w+4>>2]=a[f+4>>2],a[w+8>>2]=a[f+8>>2],a[w+12>>2]=a[f+12>>2],hK(c,E,w)|0):0){f=1;break}f=a[46916]|0;a[b>>2]=a[f>>2];a[b+4>>2]=a[f+4>>2];a[b+8>>2]=a[f+8>>2];a[b+12>>2]=a[f+12>>2];a[u>>2]=a[o>>2];a[u+4>>2]=a[o+4>>2];a[u+8>>2]=a[o+8>>2];a[u+12>>2]=a[o+12>>2];a[w>>2]=a[h>>2];a[w+4>>2]=a[h+4>>2];a[w+8>>2]=a[h+8>>2];a[w+12>>2]=a[h+12>>2];if(!(oK(b,u,w)|0))f=0;else{h=a[46915]|0;E=a[e>>2]|0;a[w>>2]=a[f>>2];a[w+4>>2]=a[f+4>>2];a[w+8>>2]=a[f+8>>2];a[w+12>>2]=a[f+12>>2];f=(hK(h,E,w)|0)!=0}}else f=1}else f=0}while(0);k=d;return f&1|0}function uK(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;if((+s[A>>3]<=+s[r>>3]?+s[i>>3]<=+s[e>>3]:0)?+s[A+8>>3]<=+s[r+8>>3]:0)A=+s[i+8>>3]<=+s[e+8>>3]&1;else A=0;return A|0}function wK(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,a=0;a=i+8|0;f=0;while(1){if((f|0)>=(e|0))break;s[r>>3]=+s[i>>3]+ +s[A>>3];s[r+8>>3]=+s[a>>3]+ +s[A+8>>3];f=f+1|0;A=A+16|0;r=r+16|0}return}function kK(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0.0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0;m=k;k=k+112|0;B=m+96|0;d=m+80|0;h=m+64|0;o=m+48|0;v=m+32|0;E=m+16|0;C=m;I=i+-1|0;Z=r+-1|0;G=i<<1;g=r<<1;f=0;n=0;l=0;t=0;while(1){Q=A+(f<<4)|0;L=A+(((I+f|0)%(i|0)|0)<<4)|0;a[d>>2]=a[Q>>2];a[d+4>>2]=a[Q+4>>2];a[d+8>>2]=a[Q+8>>2];a[d+12>>2]=a[Q+12>>2];a[B>>2]=a[L>>2];a[B+4>>2]=a[L+4>>2];a[B+8>>2]=a[L+8>>2];a[B+12>>2]=a[L+12>>2];tS(v,d,B);w=e+(n<<4)|0;u=e+(((Z+n|0)%(r|0)|0)<<4)|0;a[d>>2]=a[w>>2];a[d+4>>2]=a[w+4>>2];a[d+8>>2]=a[w+8>>2];a[d+12>>2]=a[w+12>>2];a[B>>2]=a[u>>2];a[B+4>>2]=a[u+4>>2];a[B+8>>2]=a[u+8>>2];a[B+12>>2]=a[u+12>>2];tS(E,d,B);a[h>>2]=a[46540];a[h+4>>2]=a[46541];a[h+8>>2]=a[46542];a[h+12>>2]=a[46543];a[d>>2]=a[v>>2];a[d+4>>2]=a[v+4>>2];a[d+8>>2]=a[v+8>>2];a[d+12>>2]=a[v+12>>2];a[B>>2]=a[E>>2];a[B+4>>2]=a[E+4>>2];a[B+8>>2]=a[E+8>>2];a[B+12>>2]=a[E+12>>2];c=+sS(h,d,B);a[h>>2]=a[L>>2];a[h+4>>2]=a[L+4>>2];a[h+8>>2]=a[L+8>>2];a[h+12>>2]=a[L+12>>2];a[d>>2]=a[Q>>2];a[d+4>>2]=a[Q+4>>2];a[d+8>>2]=a[Q+8>>2];a[d+12>>2]=a[Q+12>>2];a[B>>2]=a[w>>2];a[B+4>>2]=a[w+4>>2];a[B+8>>2]=a[w+8>>2];a[B+12>>2]=a[w+12>>2];s=bS(h,d,B)|0;a[h>>2]=a[u>>2];a[h+4>>2]=a[u+4>>2];a[h+8>>2]=a[u+8>>2];a[h+12>>2]=a[u+12>>2];a[d>>2]=a[w>>2];a[d+4>>2]=a[w+4>>2];a[d+8>>2]=a[w+8>>2];a[d+12>>2]=a[w+12>>2];a[B>>2]=a[Q>>2];a[B+4>>2]=a[Q+4>>2];a[B+8>>2]=a[Q+8>>2];a[B+12>>2]=a[Q+12>>2];b=bS(h,d,B)|0;a[o>>2]=a[L>>2];a[o+4>>2]=a[L+4>>2];a[o+8>>2]=a[L+8>>2];a[o+12>>2]=a[L+12>>2];a[h>>2]=a[Q>>2];a[h+4>>2]=a[Q+4>>2];a[h+8>>2]=a[Q+8>>2];a[h+12>>2]=a[Q+12>>2];a[d>>2]=a[u>>2];a[d+4>>2]=a[u+4>>2];a[d+8>>2]=a[u+8>>2];a[d+12>>2]=a[u+12>>2];a[B>>2]=a[w>>2];a[B+4>>2]=a[w+4>>2];a[B+8>>2]=a[w+8>>2];a[B+12>>2]=a[w+12>>2];if(uS(o,h,d,B,C)|0){f=1;break}u=(s|0)==0;w=(b|0)==0;do{if(c!=0.0|(b|s|0)!=0)if(!(c>=0.0))if(w){f=(f+1|0)%(i|0)|0;l=l+1|0;break}else{n=(n+1|0)%(r|0)|0;t=t+1|0;break}else if(u){n=(n+1|0)%(r|0)|0;t=t+1|0;break}else{f=(f+1|0)%(i|0)|0;l=l+1|0;break}else{f=(f+1|0)%(i|0)|0;l=l+1|0}}while(0);if(!((t|0)<(g|0)&((l|0)<(G|0)&((t|0)<(r|0)|(l|0)<(i|0))))){f=0;break}}k=m;return f|0}function oK(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0;f=+s[A>>3];if((f<=+s[i>>3]?f>=+s[e>>3]:0)?(r=+s[A+8>>3],r<=+s[i+8>>3]):0)A=r>=+s[e+8>>3]&1;else A=0;return A|0}function hK(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0.0,n=0,l=0,t=0.0,c=0.0,b=0;r=a[46917]|0;if(!r){r=$F(a[46914]<<4)|0;a[46917]=r}l=i+8|0;n=0;while(1){if((n|0)>=(e|0))break;s[r+(n<<4)>>3]=+s[A+(n<<4)>>3]-+s[i>>3];s[r+(n<<4)+8>>3]=+s[A+(n<<4)+8>>3]-+s[l>>3];n=n+1|0}i=e+-1|0;f=0.0;A=0;A:while(1){if((A|0)>=(e|0)){b=19;break}n=(i+A|0)%(e|0)|0;t=+s[r+(A<<4)+8>>3];l=t==0.0;if(l?+s[r+(n<<4)+8>>3]==0.0:0){if(+s[r+(n<<4)>>3]*+s[r+(A<<4)>>3]<0.0){r=1;break}}else b=11;do{if((b|0)==11){b=0;c=+s[r+(n<<4)+8>>3];if(!(t>=0.0)|!(c<=0.0)?!(c>=0.0)|!(t<=0.0):0)break;t=(c*+s[r+(A<<4)>>3]-t*+s[r+(n<<4)>>3])/(c-t);if(t==0.0){r=1;break A}if(t>0.0)if(c==0.0|l){f=f+.5;break}else{f=f+1.0;break}}}while(0);A=A+1|0}if((b|0)==19)r=((~~f|0)%2|0|0)==1&1;return r|0}function dK(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0;c=$F(e<<2)|0;t=U(e,e)|0;i=$F(t<<2)|0;a[c>>2]=i;RO(t,0.0,i);i=1;while(1){if((i|0)>=(e|0)){i=0;n=0;t=e;break}a[c+(i<<2)>>2]=(a[c>>2]|0)+((U(i,e)|0)<<2);i=i+1|0}while(1){if((n|0)>=(e|0))break;l=c+(n<<2)|0;r=n;f=i;while(1){if((r|0)==(e|0))break;s=a[A+(f<<2)>>2]|0;a[(a[l>>2]|0)+(r<<2)>>2]=s;a[(a[c+(r<<2)>>2]|0)+(n<<2)>>2]=s;r=r+1|0;f=f+1|0}i=i+t|0;n=n+1|0;t=t+-1|0}return c|0}function BK(A,e,i,r,f,n,l,t){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;t=+t;var s=0.0,b=0.0,u=0.0,w=0,k=0,o=0,h=0.0,d=0,B=0.0,g=0,v=0,E=0,C=0,I=0,Z=0.0,G=0,m=0,Q=0,L=0,y=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0.0;p=a[i+(f<<2)>>2]|0;Q=a[A+4>>2]|0;L=a[A>>2]|0;y=a[A+48>>2]|0;z=a[A+52>>2]|0;Y=a[A+56>>2]|0;A:do{if((n|0)<1)i=0;else{vK(p,Q,y,z,Y,t);D=a[A+28>>2]|0;M=a[A+32>>2]|0;F=a[A+36>>2]|0;V=a[A+12>>2]|0;J=a[A+16>>2]|0;f=0;r=0;i=-1;while(1){if((f|0)>=(Q|0))break;if((f|0)>=(r|0)){i=i+1|0;if((i|0)==(Y|0)){r=Q;i=Y}else r=a[z+(i<<2)>>2]|0}a[J+(a[y+(f<<2)>>2]<<2)>>2]=i;f=f+1|0}G=a[A+40>>2]|0;m=M+(Q+-1<<2)|0;i=0;r=0;while(1){if(r<<24>>24==0&(i|0)<(n|0)){s=-1.0e9;f=0;r=1}else break A;e:while(1){I=f;while(1){if((I|0)>=(Q|0))break e;f=a[y+(I<<2)>>2]|0;Z=+c[p+(f<<2)>>2];b=Z;C=I;u=0.0;while(1){c[G+(f<<2)>>2]=u;f=C+1|0;if((f|0)>=(Q|0)){E=0;break}b=(a[J+(f<<2)>>2]|0)>(a[J+(C<<2)>>2]|0)?b+t:b;A=a[y+(f<<2)>>2]|0;u=+c[p+(A<<2)>>2];if(+W(+(u-b))>1.0e-09){E=1;break}C=f;u=u-Z;f=A}w=I;while(1){if((w|0)>(C|0)){A=0;k=I;break}k=a[y+(w<<2)>>2]|0;o=a[L+(k<<2)>>2]|0;A=0;b=-+c[e+(k<<2)>>2];while(1){if((A|0)>=(Q|0))break;if((A|0)!=(k|0))b=+c[p+(A<<2)>>2]*+c[o+(A<<2)>>2]+b;A=A+1|0}c[D+(k<<2)>>2]=b/-+c[o+(k<<2)>>2]-+c[G+(k<<2)>>2];w=w+1|0}i:while(1){if((k|0)>(C|0)){u=0.0;h=0.0;d=0;break}w=a[J+(a[y+(k<<2)>>2]<<2)>>2]|0;if((w|0)==(Y|0))d=f;else{d=a[z+(w<<2)>>2]|0;d=(f|0)<(d|0)?f:d}o=k;while(1){if((o|0)>=(d|0)){o=k;break}w=a[y+(o<<2)>>2]|0;if(+c[D+(w<<2)>>2]>2]=w;A=A+1|0}o=o+1|0}while(1){if((o|0)>=(d|0))break;w=a[y+(o<<2)>>2]|0;if(+c[D+(w<<2)>>2]==Z){a[V+(A<<2)>>2]=w;A=A+1|0}o=o+1|0}while(1){if((k|0)>=(d|0)){k=d;continue i}w=a[y+(k<<2)>>2]|0;if(+c[D+(w<<2)>>2]>Z){a[V+(A<<2)>>2]=w;A=A+1|0}k=k+1|0}}while(1){if((d|0)>=(A|0))break;k=a[V+(d<<2)>>2]|0;o=a[L+(k<<2)>>2]|0;b=0.0;w=0;while(1){if((w|0)==(d|0))break;b=b-+c[o+(a[V+(w<<2)>>2]<<2)>>2];w=w+1|0}N=b*2.0;v=o+(k<<2)|0;B=+c[v>>2];b=N+u;B=(N*Z+u*h-+c[D+(k<<2)>>2]*B)/(b-B);c[M+(d<<2)>>2]=B;u=b-+c[v>>2];h=B;d=d+1|0}o=(A|0)==(Q|0);if(o)c[m>>2]=Z;v=A+-1|0;u=0.0;h=0.0;k=v;while(1){if((k|0)<=-1)break;d=a[V+(k<<2)>>2]|0;g=a[L+(d<<2)>>2]|0;b=0.0;w=k;while(1){w=w+1|0;if((w|0)>=(A|0))break;b=b-+c[g+(a[V+(w<<2)>>2]<<2)>>2]}b=b*2.0;g=g+(d<<2)|0;N=+c[g>>2];B=b+u;N=(b*Z+u*h-+c[D+(d<<2)>>2]*N)/(B-N);c[F+(k<<2)>>2]=N;u=B-+c[g>>2];h=N;k=k+-1|0}if(o){c[F>>2]=Z;B=0.0;w=-1;o=0}else{B=0.0;w=-1;o=0}while(1){if((A|0)<=(o|0))break;h=+c[F+(o<<2)>>2];if((o|0)>0)b=+c[M+(o+-1<<2)>>2];else b=h;do{if(hZ;if(hB;B=g?N:B;w=g?o:w;o=o+1|0}if((w|0)>-1)break;if(E?(a[J+(a[y+(f<<2)>>2]<<2)>>2]|0)>(a[J+(a[y+(C<<2)>>2]<<2)>>2]|0):0){s=+c[p+(a[V+(v<<2)>>2]<<2)>>2]+t;I=f;continue}s=+c[p+(a[V+(v<<2)>>2]<<2)>>2];I=f}u=+c[F+(w<<2)>>2];if(!w)h=u;else h=+c[M+(w+-1<<2)>>2];if(E){g=a[y+(f<<2)>>2]|0;b=+c[p+(g<<2)>>2];b=((a[J+(g<<2)>>2]|0)>(a[J+(a[y+(C<<2)>>2]<<2)>>2]|0)?b-t:b)-+c[G+(a[V+(v<<2)>>2]<<2)>>2]}else b=1.0e9;b=us?h:s;do{if(bZ;if(b=(w|0))break;g=a[V+(k<<2)>>2]|0;c[p+(g<<2)>>2]=+c[G+(g<<2)>>2]+b;k=k+1|0}while(1){if((w|0)>=(A|0))break;g=a[V+(w<<2)>>2]|0;c[p+(g<<2)>>2]=+c[G+(g<<2)>>2]+u;w=w+1|0}if(E?(a[J+(a[y+(f<<2)>>2]<<2)>>2]|0)>(a[J+(a[y+(C<<2)>>2]<<2)>>2]|0):0)s=+c[p+(a[V+(v<<2)>>2]<<2)>>2]+t;else s=+c[p+(a[V+(v<<2)>>2]<<2)>>2];A=I;while(1){if((A|0)>(C|0))break;a[y+(A<<2)>>2]=a[V+(A-I<<2)>>2];A=A+1|0}if(r<<24>>24!=0?+W(+(b-Z))<.01:0)r=+W(+(u-Z))<.01;else r=0;r=r&1}zO(Q,p);gK(p,y,z,Y,l);i=i+1|0}}}while(0);return i|0}function gK(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0;n=0;while(1){if((n|0)>=(r|0))break;a[f+(n<<2)>>2]=a[A+(a[e+((a[i+(n<<2)>>2]|0)+-1<<2)>>2]<<2)>>2];n=n+1|0}return}function vK(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=+n;var l=0.0,t=0,s=0,b=0,u=0;l=-1.0e9;s=0;t=-1;u=0;while(1){if((u|0)>=(e|0))break;if((u|0)<(s|0))b=s;else{t=t+1|0;if((t|0)==(f|0))s=e;else s=a[r+(t<<2)>>2]|0;if((u|0)>0)l=+c[A+(a[i+(u+-1<<2)>>2]<<2)>>2]+n;else l=-1.0e9;PS(A,i,u,s+-1|0);b=s}s=A+(a[i+(u<<2)>>2]<<2)|0;if(+c[s>>2]>2]=l;s=b;u=u+1|0}return}function EK(A){A=A|0;L2(a[a[A>>2]>>2]|0);L2(a[A>>2]|0);L2(a[A+8>>2]|0);L2(a[A+28>>2]|0);L2(a[A+32>>2]|0);L2(a[A+36>>2]|0);L2(a[A+40>>2]|0);L2(a[A+12>>2]|0);L2(a[A+16>>2]|0);L2(a[A+20>>2]|0);L2(a[A+24>>2]|0);L2(A);return}function CK(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0;s=$F(60)|0;a[s>>2]=0;b=s+4|0;a[b>>2]=e;a[s+48>>2]=i;a[s+52>>2]=r;a[s+56>>2]=f;a[s>>2]=dK(A,e)|0;t=e<<2;c=$F(t)|0;a[s+8>>2]=c;l=0;e=0;A=-1;while(1){if((l|0)>=(a[b>>2]|0))break;n=A+1|0;if((l|0)>=(e|0)){e=a[((n|0)==(f|0)?b:r+(n<<2)|0)>>2]|0;A=n}a[c+(a[i+(l<<2)>>2]<<2)>>2]=A;l=l+1|0}a[s+28>>2]=$F(t)|0;a[s+32>>2]=$F(t)|0;a[s+36>>2]=$F(t)|0;a[s+40>>2]=$F(t)|0;a[s+12>>2]=$F(t)|0;a[s+16>>2]=$F(t)|0;a[s+20>>2]=$F(t)|0;a[s+24>>2]=$F(t)|0;return s|0}function IK(){jO(187676,24);a[46922]=0;return}function ZK(){return SO(187676)|0}function GK(A,e){A=A|0;e=e|0;var i=0.0,r=0.0;i=+s[A>>3]-+s[e>>3];r=+s[A+8>>3]-+s[e+8>>3];return+ +z(+(r*r+i*i))}function mK(A){A=A|0;var e=0;e=a[46922]|0;a[A+16>>2]=e;a[46922]=e+1;return}function QK(A){A=A|0;var e=0,i=0;i=A+20|0;e=(a[i>>2]|0)+-1|0;a[i>>2]=e;if(!e)OO(A,187676);return}function LK(A){A=A|0;A=A+20|0;a[A>>2]=(a[A>>2]|0)+1;return}function yK(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=+f;var n=0.0,l=0,t=0,b=0,u=0.0,w=0,o=0.0,h=0,d=0.0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0;I=k;k=k+16|0;w=I;a[w>>2]=r;h=e<<2;E=$F(h)|0;b=e<<3;C=$F(b)|0;v=RS(A,e)|0;A=0;while(1){if((A|0)>=(e|0))break;t=v+(A<<2)|0;l=0;while(1){if((l|0)==(e|0))break;B=(a[t>>2]|0)+(l<<2)|0;a[B>>2]=a[B>>2]<<8;l=l+1|0}A=A+1|0}if(!i)gA(93952,93960,283,93974);B=$F(b)|0;A=0;while(1){if((A|0)>=(e|0))break;s[B+(A<<3)>>3]=+s[i+(A<<3)>>3];A=A+1|0}WK(B,e);n=0.0;u=0.0;b=1;while(1){if((b|0)>=(e|0))break;l=v+(b<<2)|0;t=i+(b<<3)|0;A=0;while(1){if((A|0)==(b|0))break;Z=a[(a[l>>2]|0)+(A<<2)>>2]|0;d=+s[t>>3]-+s[i+(A<<3)>>3];n=d*d*(1.0/+(U(Z,Z)|0))+n;u=+W(+d)*(1.0/+(Z|0))+u;A=A+1|0}b=b+1|0}d=u/n;A=0;while(1){if((A|0)>=(e|0))break;Z=i+(A<<3)|0;s[Z>>3]=+s[Z>>3]*d;A=A+1|0}zK(e,w,f,i,v);t=$F(U(h,e)|0)|0;l=0;while(1){if((l|0)>=(e|0)){t=1;break}b=t+((U(l,e)|0)<<2)|0;a[E+(l<<2)>>2]=b;w=v+(l<<2)|0;n=0.0;A=0;while(1){if((A|0)==(e|0))break;if((A|0)!=(l|0)){o=+(a[(a[w>>2]|0)+(A<<2)>>2]|0);o=-1.0/(o*o);c[b+(A<<2)>>2]=o;n=n-o}A=A+1|0}c[b+(l<<2)>>2]=n;l=l+1|0}while(1){if((t|0)>=(e|0)){l=0;break}n=+s[i+(t<<3)>>3];l=v+(t<<2)|0;A=0;while(1){if((A|0)==(t|0))break;Z=(a[l>>2]|0)+(A<<2)|0;u=+(a[Z>>2]|0);o=n-+s[i+(A<<3)>>3];o=u*u-o*o;h=~~+z(+o);h=o>0.0?h:0;a[(a[v+(A<<2)>>2]|0)+(t<<2)>>2]=h;a[Z>>2]=h;A=A+1|0}t=t+1|0}while(1){if((l|0)>=(e|0)){h=0;A=0;break}u=+s[r+(l<<3)>>3];b=C+(l<<3)|0;s[b>>3]=0.0;w=v+(l<<2)|0;t=E+(l<<2)|0;A=0;n=0.0;while(1){if((A|0)==(e|0))break;if((A|0)!=(l|0)){o=+c[(a[t>>2]|0)+(A<<2)>>2]*+(a[(a[w>>2]|0)+(A<<2)>>2]|0);n=n+(u>=+s[r+(A<<3)>>3]?-o:o);s[b>>3]=n}A=A+1|0}l=l+1|0}while(1){if(!(A<<24>>24==0&(h|0)<200)){g=42;break}if((uP(E,r,C,e,f,e,1)|0)<0){A=1;break}else{A=1;w=0}while(1){if((w|0)>=(e|0))break;o=+s[r+(w<<3)>>3];t=v+(w<<2)|0;b=E+(w<<2)|0;n=0.0;l=0;while(1){if((l|0)==(e|0))break;do{if((l|0)!=(w|0)){u=+c[(a[b>>2]|0)+(l<<2)>>2]*+(a[(a[t>>2]|0)+(l<<2)>>2]|0);if(!(o>=+s[r+(l<<3)>>3])){n=n+u;break}else{n=n+-u;break}}}while(0);l=l+1|0}l=C+(w<<3)|0;o=+s[l>>3];if(n!=o?+W(+(1.0-n/o))>1.0e-05:0){s[l>>3]=n;A=0}w=w+1|0}h=h+1|0}A:do{if((g|0)==42){n=1.0/d;A=0;while(1){if((A|0)>=(e|0)){A=0;break A}Z=i+(A<<3)|0;s[Z>>3]=+s[Z>>3]*n;Z=r+(A<<3)|0;s[Z>>3]=+s[Z>>3]*n;A=A+1|0}}}while(0);L2(a[v>>2]|0);L2(v);L2(a[E>>2]|0);L2(E);L2(B);L2(C);k=I;return A|0}function WK(A,e){A=A|0;e=e|0;var i=0,r=0.0,f=0.0,a=0;i=0;r=0.0;while(1){if((i|0)>=(e|0))break;f=+s[A+(i<<3)>>3]+r;i=i+1|0;r=f}r=r/+(e|0);i=0;while(1){if((i|0)>=(e|0))break;a=A+(i<<3)|0;s[a>>3]=+s[a>>3]-r;i=i+1|0}a=e+-1|0;kO(A,0,a,1.0/+wO(A,0,a),A);return}function zK(A,e,i,r,f){A=A|0;e=e|0;i=+i;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,b=0,u=0;c=YK(f,A)|0;b=$F(8)|0;if(!r){f=0;t=0}else{n=$F(A<<3)|0;f=0;while(1){if((f|0)>=(A|0))break;s[n+(f<<3)>>3]=+s[r+(f<<3)>>3];f=f+1|0}WK(n,A);f=n;t=n}DK(c,A,e,b,f,i);r=0;while(1){if((r|0)==1)break;n=b+(r<<3)|0;l=e+(r<<2)|0;f=0;while(1){if((f|0)>=(A|0))break;i=+z(+ +W(+ +s[n>>3]));u=(a[l>>2]|0)+(f<<3)|0;s[u>>3]=+s[u>>3]*i;f=f+1|0}r=r+1|0}L2(a[c>>2]|0);L2(c);L2(b);L2(t);return}function YK(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0.0,l=0,t=0,s=0,b=0,u=0,w=0,o=0.0;w=k;k=k+16|0;f=w;u=e<<2;r=$F(U(u,e)|0)|0;u=$F(u)|0;i=0;while(1){if((i|0)>=(e|0))break;a[u+(i<<2)>>2]=r+((U(i,e)|0)<<2);i=i+1|0}b=FK(A,e,f)|0;n=+c[f>>2];r=0;s=1;while(1){if((r|0)>=(e|0))break;f=A+(r<<2)|0;l=b+(r<<2)|0;t=u+(r<<2)|0;i=0;while(1){if((i|0)==(s|0))break;o=+(a[(a[f>>2]|0)+(i<<2)>>2]|0);o=+c[b+(i<<2)>>2]+ +c[l>>2]-o*o-n;c[(a[t>>2]|0)+(i<<2)>>2]=o;c[(a[u+(i<<2)>>2]|0)+(r<<2)>>2]=o;i=i+1|0}r=r+1|0;s=s+1|0}L2(b);k=w;return u|0}function DK(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=+n;var l=0,t=0,c=0,b=0,u=0.0,w=0.0,k=0,o=0,h=0,d=0,B=0;d=e<<3;h=$F(d)|0;d=$F(d)|0;w=1.0-n;k=(e|0)<1?e:1;o=e+-1|0;c=(f|0)==0;t=0;A:while(1){if((t|0)>=(k|0))break;b=a[i+(t<<2)>>2]|0;do{l=0;while(1){if((l|0)==(e|0))break;s[b+(l<<3)>>3]=+((a8()|0)%100|0|0);l=l+1|0}if(c)l=0;else{uO(b,0,o,-+bO(f,0,o,b),f);l=0}while(1){if((l|0)==(t|0))break;B=i+(l<<2)|0;u=-+bO(a[B>>2]|0,0,o,b);uO(b,0,o,u,a[B>>2]|0);l=l+1|0}n=+wO(b,0,o)}while(n<1.0e-10);kO(b,0,o,1.0/n,b);do{oO(d,0,o,b);MK(A,e,e,b,h,f);oO(b,0,o,h);l=0;while(1){if((l|0)==(t|0))break;B=i+(l<<2)|0;u=-+bO(a[B>>2]|0,0,o,b);uO(b,0,o,u,a[B>>2]|0);l=l+1|0}n=+wO(b,0,o);if(n<1.0e-10)break A;kO(b,0,o,1.0/n,b);u=+bO(b,0,o,d)}while(+W(+u)>3]=u*n;t=t+1|0}while(1){if((t|0)>=(k|0))break;c=a[i+(t<<2)>>2]|0;l=0;while(1){if((l|0)>=(e|0)){l=0;break}s[c+(l<<3)>>3]=+((a8()|0)%100|0|0);l=l+1|0}while(1){if((l|0)>=(t|0))break;B=i+(l<<2)|0;w=-+bO(a[B>>2]|0,0,o,c);uO(c,0,o,w,a[B>>2]|0);l=l+1|0}kO(c,0,o,1.0/+wO(c,0,o),c);s[r+(t<<3)>>3]=0.0;t=t+1|0}b=k+-1|0;t=0;while(1){if((t|0)>=(b|0))break;A=r+(t<<3)|0;f=t+1|0;n=+s[A>>3];l=t;c=f;while(1){if((c|0)>=(k|0))break;w=+s[r+(c<<3)>>3];B=n>2]|0);B=i+(l<<2)|0;oO(a[e>>2]|0,0,o,a[B>>2]|0);oO(a[B>>2]|0,0,o,h);s[r+(l<<3)>>3]=+s[A>>3];s[A>>3]=n;t=f}L2(h);L2(d);return}function MK(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0.0,b=0,u=0;l=0;while(1){if((l|0)>=(e|0))break;u=A+(l<<2)|0;t=0.0;b=0;while(1){if((b|0)>=(i|0))break;t=+s[r+(b<<3)>>3]*+c[(a[u>>2]|0)+(b<<2)>>2]+t;b=b+1|0}s[f+(l<<3)>>3]=t;l=l+1|0}l=e+-1|0;if(n|0)uO(f,0,l,-+bO(f,0,l,n),n);return}function FK(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0.0,n=0,l=0,t=0,s=0.0,b=0,u=0.0;t=$F(e<<2)|0;s=1.0/+(e|0);r=0.0;l=0;while(1){if((l|0)>=(e|0))break;b=A+(l<<2)|0;f=0.0;n=0;while(1){if((n|0)==(e|0))break;u=+(a[(a[b>>2]|0)+(n<<2)>>2]|0);u=u*u;f=u+f;n=n+1|0;r=u+r}c[t+(l<<2)>>2]=s*f;l=l+1|0}c[i>>2]=r/+(U(e,e)|0);return t|0}function VK(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,a=0.0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0.0,v=0;h=U(r,r)|0;d=$F(h<<3)|0;B=$F(r<<3)|0;f=0;while(1){if((f|0)>=(r|0))break;s[B+(f<<3)>>3]=+s[i+(f<<3)>>3];f=f+1|0}f=0;while(1){if((f|0)>=(h|0))break;s[d+(f<<3)>>3]=+s[A+(f<<3)>>3];f=f+1|0}o=r+-1|0;n=0;k=0;A:while(1){if((k|0)<(o|0)){a=0.0;f=k}else{b=21;break}while(1){if((f|0)>=(r|0))break;g=+W(+ +s[A+((U(f,r)|0)+k<<3)>>3]);u=g=(r|0))break;b=A+(f+l<<3)|0;g=+s[b>>3];u=A+(f+w<<3)|0;s[b>>3]=+s[u>>3];s[u>>3]=g;f=f+1|0}u=i+(n<<3)|0;g=+s[u>>3];t=i+(k<<3)|0;s[u>>3]=+s[t>>3];s[t>>3]=g;u=k+1|0;c=A+(w+k<<3)|0;f=u;while(1){if((f|0)>=(r|0)){k=u;continue A}b=U(f,r)|0;a=+s[A+(b+k<<3)>>3]/+s[c>>3];l=i+(f<<3)|0;s[l>>3]=+s[l>>3]-+s[t>>3]*a;l=0;while(1){if((l|0)>=(r|0))break;v=A+(l+b<<3)|0;s[v>>3]=+s[v>>3]-+s[A+(l+w<<3)>>3]*a;l=l+1|0}f=f+1|0}}if((b|0)==21){a=+s[A+(h+-1<<3)>>3];if(+W(+a)<1.0e-10)b=33;else{s[e+(o<<3)>>3]=+s[i+(o<<3)>>3]/a;f=0;while(1){if((f|0)>=(o|0)){f=0;break}n=r-f|0;l=n+-2|0;a=+s[i+(l<<3)>>3];t=e+(l<<3)|0;s[t>>3]=a;c=U(l,r)|0;n=n+-1|0;while(1){if((n|0)>=(r|0))break;g=a-+s[e+(n<<3)>>3]*+s[A+(n+c<<3)>>3];s[t>>3]=g;n=n+1|0;a=g}s[t>>3]=a/+s[A+(c+l<<3)>>3];f=f+1|0}while(1){if((f|0)>=(r|0)){f=0;break}s[i+(f<<3)>>3]=+s[B+(f<<3)>>3];f=f+1|0}while(1){if((f|0)>=(h|0))break;s[A+(f<<3)>>3]=+s[d+(f<<3)>>3];f=f+1|0}L2(d);L2(B)}}if((b|0)==33){c6(93989)|0;L2(d);L2(B)}return}function JK(A,e){A=A|0;e=e|0;var i=0.0,f=0.0,n=0.0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0;B=k;k=k+16|0;d=B;$P();IK();vS();a[46918]=G5[e&3]()|0;CS();h=d+8|0;o=G5[e&3]()|0;i=0.0;f=0.0;A:while(1){u=(o|0)==0;w=o+8|0;while(1){if(!(hS()|0)){dS(d);i=+s[d>>3];f=+s[h>>3]}if(!u){if(hS()|0)break;n=+s[w>>3];if(n>3]>2]|0;mK(t);rS(a[g+8>>2]|0,r[g+16>>0]|0,t);rS(a[E+8>>2]|0,r[E+16>>0]|0,t);yS(g);oS(E);yS(E);E=+s[b+8>>3]>+s[v+8>>3];g=E&1;c=E?v:b;v=AS(c,E?b:v)|0;b=IS(v,g)|0;mS(A,b);rS(v,(g^1)&255,t);QK(t);t=ZS(A,b)|0;if(t|0){oS(A);wS(A,t,+GK(t,c))}A=ZS(b,l)|0;if(!A)continue;wS(b,A,+GK(A,c))}A=QS(o)|0;c=WS(A)|0;l=AS(DS(A)|0,o)|0;b=IS(l,0)|0;mS(A,b);t=ZS(A,b)|0;if(t|0){oS(A);wS(A,t,+GK(t,o))}l=IS(l,1)|0;mS(b,l);A=ZS(l,c)|0;if(A|0)wS(l,A,+GK(A,o));o=G5[e&3]()|0}A=a[46860]|0;while(1){A=WS(A)|0;if((A|0)==(a[46861]|0))break;eS(a[A+8>>2]|0)}k=B;return}function pK(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;n=k;k=k+16|0;f=n+8|0;r=n;do{if((gh(A)|0)!=1){NK(A);if(!e)e=RK(A)|0;i=XK(A,e)|0;if(0){}if((i|0)<0){ao(1,94039,f)|0;break}else{HK(A);UK(A,e);xK(A,e);TK(A,i);break}}else{l=a[(a[(cd(A)|0)+16>>2]|0)+132>>2]|0;a[l>>2]=0;a[l+4>>2]=0;a[l+8>>2]=0;a[l+12>>2]=0}}while(0);k=n;return e|0}function NK(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;i=gh(A)|0;i=U(i,i)|0;e=cd(A)|0;while(1){if(!e)break;r=e+16|0;f=a[(a[r>>2]|0)+112>>2]|0;n=f+24|0;a[n>>2]=i;a[n+4>>2]=0;s[f+48>>3]=10.0;f=($K(A,e)|0)==0;r=a[(a[r>>2]|0)+112>>2]|0;a[r>>2]=f?i:0;a[r+4>>2]=f?0:0;e=sd(A,e)|0}return}function RK(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0;r=(gh(A)|0)<3;e=cd(A)|0;A:do{if(!r){while(1){if(!e)break;r=a[(a[e+16>>2]|0)+112>>2]|0;if((a[r>>2]|0)==0&(a[r+4>>2]|0)==0)qK(A,e,0);e=sd(A,e)|0}i=0;e=0;r=cd(A)|0;while(1){if(!r)break A;l=a[(a[r+16>>2]|0)+112>>2]|0;n=a[l>>2]|0;l=a[l+4>>2]|0;f=((i|0)<0)<<31>>31;f=l>>>0>f>>>0|(l|0)==(f|0)&n>>>0>i>>>0;i=f?n:i;e=f?r:e;r=sd(A,r)|0}}}while(0);return e|0}function XK(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;i=a[(a[e+16>>2]|0)+112>>2]|0;f=i+24|0;r=a[f>>2]|0;a[f>>2]=0;a[f+4>>2]=0;a[i+32>>2]=0;OK(A,e);i=cd(A)|0;r=I6(0,r|0,32)|0;f=L;e=0;while(1){if(!i)break;l=(a[(a[i+16>>2]|0)+112>>2]|0)+24|0;n=a[l>>2]|0;l=a[l+4>>2]|0;if((n|0)==(r|0)&(l|0)==(f|0)){e=-1;break}t=((e|0)<0)<<31>>31;e=l>>>0>t>>>0|(l|0)==(t|0)&n>>>0>e>>>0?n:e;i=sd(A,i)|0}return e|0}function HK(A){A=A|0;var e=0,i=0,r=0,f=0;i=cd(A)|0;while(1){if(!i)break;e=a[(a[i+16>>2]|0)+112>>2]|0;r=e+16|0;A:do{if((a[r>>2]|0)==0&(a[r+4>>2]|0)==0)while(1){r=e+8|0;f=r;f=d6(a[f>>2]|0,a[f+4>>2]|0,1,0)|0;a[r>>2]=f;a[r+4>>2]=L;e=a[e+32>>2]|0;if(!e)break A;e=a[(a[e+16>>2]|0)+112>>2]|0}}while(0);i=sd(A,i)|0}return}function UK(A,e){A=A|0;e=e|0;s[(a[(a[e+16>>2]|0)+112>>2]|0)+40>>3]=6.283185307179586;SK(A,e);return}function xK(A,e){A=A|0;e=e|0;s[(a[(a[e+16>>2]|0)+112>>2]|0)+48>>3]=0.0;PK(A,e);return}function TK(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0.0,c=0.0;l=k;k=k+16|0;f=l;n=jK(A,e)|0;if(0){}i=cd(A)|0;while(1){if(!i)break;f=a[i+16>>2]|0;r=a[f+112>>2]|0;t=+s[n+(a[r+24>>2]<<3)>>3];r=r+48|0;c=+D(+ +s[r>>3])*t;f=a[f+132>>2]|0;s[f>>3]=c;s[f+8>>3]=+M(+ +s[r>>3])*t;i=sd(A,i)|0}L2(n);k=l;return}function jK(A,e){A=A|0;e=e|0;var i=0.0,f=0.0,n=0,l=0.0,t=0,c=0,b=0,u=0;u=k;k=k+16|0;c=u;b=qF((e<<3)+8|0)|0;A=dR(A,Yo(a[A+60>>2]|0,0,101288,0)|0,0)|0;A:do{if(!A){f=1.0;i=0.0;A=1}else{l=0.0;i=0.0;n=1;e:while(1){if((n|0)>(e|0)){f=l;A=n;break A}f=+A8(A,c);if(!(f>0.0)){f=l;A=n;break A}l=f>.02?f:.02;i=l+i;t=n+1|0;s[b+(n<<3)>>3]=i;A=a[c>>2]|0;while(1){n=r[A>>0]|0;if(!(n<<24>>24)){n=t;continue e}if(!(n<<24>>24==58|(m1(n<<24>>24)|0)!=0)){n=t;continue e}A=A+1|0}}}}while(0);while(1){if((A|0)>(e|0))break;l=i+f;s[b+(A<<3)>>3]=l;A=A+1|0;i=l}k=u;return b|0}function PK(A,e){A=A|0;e=e|0;var i=0,r=0.0,f=0,n=0,l=0,t=0.0;i=a[(a[e+16>>2]|0)+112>>2]|0;if(!(a[i+32>>2]|0))r=0.0;else r=+s[i+48>>3]-+s[i+40>>3]*.5;n=Ah(A,e)|0;while(1){if(!n)break;i=a[n>>2]&3;f=a[((i|0)==3?n:n+48|0)+40>>2]|0;if((f|0)==(e|0))f=a[((i|0)==2?n:n+-48|0)+40>>2]|0;i=a[(a[f+16>>2]|0)+112>>2]|0;if((a[i+32>>2]|0)==(e|0)?(l=i+48|0,!(+s[l>>3]!=10.0)):0){t=+s[i+40>>3];s[l>>3]=t*.5+r;r=t+r;i=i+16|0;if(!((a[i>>2]|0)==0&(a[i+4>>2]|0)==0))PK(A,f)}n=eh(A,n,e)|0}return}function SK(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0.0,l=0,t=0;r=a[(a[e+16>>2]|0)+112>>2]|0;f=r+8|0;n=+s[r+40>>3]/(+((a[f>>2]|0)>>>0)+4294967296.0*+((a[f+4>>2]|0)>>>0));f=Ah(A,e)|0;while(1){if(!f)break;r=a[f>>2]&3;i=a[((r|0)==3?f:f+48|0)+40>>2]|0;if((i|0)==(e|0))i=a[((r|0)==2?f:f+-48|0)+40>>2]|0;r=a[(a[i+16>>2]|0)+112>>2]|0;if(((a[r+32>>2]|0)==(e|0)?(l=r+40|0,!(+s[l>>3]!=0.0)):0)?(t=r+8|0,s[l>>3]=n*(+((a[t>>2]|0)>>>0)+4294967296.0*+((a[t+4>>2]|0)>>>0)),r=r+16|0,!((a[r>>2]|0)==0&(a[r+4>>2]|0)==0)):0)SK(A,i);f=eh(A,f,e)|0}return}function OK(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0;o=k;k=k+16|0;u=o;w=Yo(A,2,101541,0)|0;a[u+4>>2]=0;a[u>>2]=0;KK(u,e);c=(w|0)==0;A:while(1){s=_K(u)|0;if(!s)break;b=s+16|0;l=a[(a[(a[b>>2]|0)+112>>2]|0)+24>>2]|0;n=Ah(A,s)|0;l=d6(0,l|0,0,1)|0;l=I6(l|0,L|0,32)|0;t=L;while(1){if(!n)continue A;if(!((!c?(r[(Uo(n,w)|0)>>0]|0)==48:0)?!(A1(Uo(n,w)|0,138394)|0):0)){e=a[n>>2]&3;i=a[((e|0)==3?n:n+48|0)+40>>2]|0;if((i|0)==(s|0))i=a[((e|0)==2?n:n+-48|0)+40>>2]|0;e=a[(a[i+16>>2]|0)+112>>2]|0;f=e+24|0;h=f;d=a[h+4>>2]|0;if(t>>>0>>0|((t|0)==(d|0)?l>>>0<(a[h>>2]|0)>>>0:0)){d=f;a[d>>2]=l;a[d+4>>2]=t;a[e+32>>2]=s;d=(a[(a[b>>2]|0)+112>>2]|0)+16|0;h=d;h=d6(a[h>>2]|0,a[h+4>>2]|0,1,0)|0;a[d>>2]=h;a[d+4>>2]=L;KK(u,i)}}n=eh(A,n,s)|0}}k=o;return}function KK(A,e){A=A|0;e=e|0;var i=0,r=0;i=qF(8)|0;a[i>>2]=e;e=A+4|0;r=a[e>>2]|0;a[((r|0)==0?A:r+4|0)>>2]=i;a[e>>2]=i;return}function _K(A){A=A|0;var e=0,i=0;i=a[A>>2]|0;if(i){e=a[i>>2]|0;a[A>>2]=a[i+4>>2];L2(i);if(!(a[A>>2]|0))a[A+4>>2]=0}else e=0;return e|0}function qK(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,s=0;l=a[a[(a[e+16>>2]|0)+112>>2]>>2]|0;n=Ah(A,e)|0;l=d6(0,l|0,0,1)|0;l=I6(l|0,L|0,32)|0;t=L;while(1){if(!n)break;f=a[n>>2]&3;r=a[((f|0)==3?n:n+48|0)+40>>2]|0;if((r|0)==(e|0))r=a[((f|0)==2?n:n+-48|0)+40>>2]|0;if((r|0)!=(i|0)?(c=a[(a[r+16>>2]|0)+112>>2]|0,f=c,s=a[f+4>>2]|0,t>>>0>>0|((t|0)==(s|0)?l>>>0<(a[f>>2]|0)>>>0:0)):0){s=c;a[s>>2]=l;a[s+4>>2]=t;qK(A,r,e)}n=eh(A,n,e)|0}return}function $K(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;f=0;n=Ah(A,e)|0;while(1){if(!n){i=1;break}r=a[n>>2]&3;i=a[((r|0)==3?n:n+48|0)+40>>2]|0;if((i|0)==(e|0))i=a[((r|0)==2?n:n+-48|0)+40>>2]|0;if((i|0)!=(e|0)){if(f)if((f|0)==(i|0))i=f;else{i=0;break}}else i=f;f=i;n=eh(A,n,e)|0}return i|0}function A_(A){A=A|0;var e=0,i=0,r=0,f=0.0,n=0;e=k;k=k+32|0;r=e;i=Yo(A,1,94122,0)|0;n=Yo(A,0,94122,0)|0;A=e_(A,n,i,Yo(A,0,94127,0)|0)|0;i=A+16|0;f=+z(+(+s[A>>3]+.1));u_(r,0.0,0.0,f,f);a[i>>2]=a[r>>2];a[i+4>>2]=a[r+4>>2];a[i+8>>2]=a[r+8>>2];a[i+12>>2]=a[r+12>>2];a[i+16>>2]=a[r+16>>2];a[i+20>>2]=a[r+20>>2];a[i+24>>2]=a[r+24>>2];a[i+28>>2]=a[r+28>>2];i_(A);r_(A);f_(A);k=e;return}function e_(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0.0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,k=0;k=qF(72)|0;a[k+60>>2]=0;a[k+56>>2]=A;c=A+16|0;f=0.0;b=0;l=1;t=0;u=0;while(1){n=a[c>>2]|0;if((l|0)>(a[n+180>>2]|0))break;n=e_(a[(a[n+184>>2]|0)+(l<<2)>>2]|0,e,i,r)|0;f=+s[n>>3]+f;if(t|0)a[t+52>>2]=n;b=b+1|0;l=l+1|0;t=n;u=(u|0)==0?n:u}w=cd(A)|0;n=u;while(1){if(!w)break;l=w+16|0;if(!(a[a[(a[l>>2]|0)+112>>2]>>2]|0)){c=l_(w,i)|0;f=+s[c>>3]+f;if(t|0)a[t+52>>2]=c;a[a[(a[l>>2]|0)+112>>2]>>2]=A;l=b+1|0;t=c;n=(n|0)==0?c:n}else l=b;w=sd(A,w)|0;b=l}a[k+64>>2]=b;if(!b)f=+c_(A,e);else{s[k+8>>3]=f;f=+t_(k,r)}s[k>>3]=f;a[k+48>>2]=n;return k|0}function i_(A){A=A|0;var e=0,i=0,r=0,f=0,n=0.0,l=0,t=0,c=0,b=0,u=0,w=0,o=0,h=0.0,d=0.0,B=0.0,g=0.0,v=0.0;o=k;k=k+176|0;f=o+144|0;u=o+64|0;c=o+32|0;l=o;w=a[A+64>>2]|0;A:do{if(w|0){b=qF(w<<2)|0;e=A+48|0;r=0;i=e;while(1){i=a[i>>2]|0;if((r|0)>=(w|0))break;a[b+(r<<2)>>2]=i;r=r+1|0;i=i+52|0}K4(b,w,4,80);t=qF(w<<3)|0;i=0;while(1){if((i|0)>=(w|0))break;s[t+(i<<3)>>3]=+s[a[b+(i<<2)>>2]>>3];i=i+1|0}n=+s[A+8>>3];if(+s[A>>3]==n){l=A+16|0;a[f>>2]=a[l>>2];a[f+4>>2]=a[l+4>>2];a[f+8>>2]=a[l+8>>2];a[f+12>>2]=a[l+12>>2];a[f+16>>2]=a[l+16>>2];a[f+20>>2]=a[l+20>>2];a[f+24>>2]=a[l+24>>2];a[f+28>>2]=a[l+28>>2];l=s_(w,t,f)|0}else{h=+s[A+40>>3];d=+s[A+32>>3];s[l>>3]=+s[A+16>>3];s[l+8>>3]=+s[A+24>>3];B=h-d;n=(d+h-+z(+(n*4.0+B*B)))*.5;s[l+16>>3]=d-n;s[l+24>>3]=h-n;a[f>>2]=a[l>>2];a[f+4>>2]=a[l+4>>2];a[f+8>>2]=a[l+8>>2];a[f+12>>2]=a[l+12>>2];a[f+16>>2]=a[l+16>>2];a[f+20>>2]=a[l+20>>2];a[f+24>>2]=a[l+24>>2];a[f+28>>2]=a[l+28>>2];l=s_(w,t,f)|0}if(0){}r=a[15712]|0;i=0;while(1){if((i|0)>=(w|0))break;c=(a[b+(i<<2)>>2]|0)+16|0;f=l+(i<<5)|0;a[c>>2]=a[f>>2];a[c+4>>2]=a[f+4>>2];a[c+8>>2]=a[f+8>>2];a[c+12>>2]=a[f+12>>2];a[c+16>>2]=a[f+16>>2];a[c+20>>2]=a[f+20>>2];a[c+24>>2]=a[f+24>>2];a[c+28>>2]=a[f+28>>2];if(0){}i=i+1|0}L2(b);L2(t);L2(l);i=0;while(1){e=a[e>>2]|0;if((i|0)>=(w|0))break A;if(!(a[e+60>>2]|0))i_(e);e=e+52|0;i=i+1|0}}}while(0);k=o;return}function r_(A){A=A|0;var e=0,i=0,r=0,f=0,n=0.0,l=0.0,t=0,c=0.0,b=0.0;f=k;k=k+48|0;r=f;if(a[A+60>>2]|0){c=+s[A+24>>3];l=+s[A+32>>3];n=+s[A+40>>3];e=a[A+56>>2]|0;i=e+16|0;t=a[i>>2]|0;s[t+16>>3]=+s[A+16>>3];s[t+24>>3]=c;A=a[i>>2]|0;s[A+32>>3]=l*.013888888888888888;s[A+40>>3]=n*.013888888888888888;DX(e,a[(a[(Id(e)|0)+16>>2]|0)+116>>2]&1);a_(e);if(0){}}else{e=A+48|0;while(1){e=a[e>>2]|0;if(!e)break;r_(e);e=e+52|0}l=+s[A+32>>3];b=+s[A+40>>3];n=+s[A+16>>3]-l*.5;c=+s[A+24>>3]-b*.5;t=a[(a[A+56>>2]|0)+16>>2]|0;s[t+16>>3]=n;s[t+24>>3]=c;s[t+32>>3]=n+l;s[t+40>>3]=c+b}k=f;return}function f_(A){A=A|0;var e=0,i=0,r=0;r=a[A+64>>2]|0;e=A+48|0;i=0;while(1){e=a[e>>2]|0;if((i|0)>=(r|0))break;f_(e);e=e+52|0;i=i+1|0}L2(A);return}function a_(A){A=A|0;var e=0,i=0,f=0,n=0;n=k;k=k+48|0;f=n;e=n+8|0;i=a[47150]|0;if(i|0?(r[(Uo(A,i)|0)>>0]|0)==0:0){s[f>>3]=+s[(a[A+16>>2]|0)+80>>3]*.7;S4(e,94168,f)|0;Vo(A,a[47150]|0,e)|0}FR(A);k=n;return}function n_(A,e){A=A|0;e=e|0;var i=0.0;i=+s[a[A>>2]>>3]-+s[a[e>>2]>>3];return(i<0.0?1:(i>0.0)<<31>>31)|0}function l_(A,e){A=A|0;e=e|0;var i=0;i=qF(72)|0;s[i>>3]=+c_(A,e);a[i+60>>2]=1;a[i+56>>2]=A;return i|0}function t_(A,e){A=A|0;e=e|0;var i=0.0;i=+oR(a[A+56>>2]|0,e,0.0,0.0);if(i==0.0)i=+s[A+8>>3];else{i=+z(+ +s[A+8>>3])+i*2.0;i=i*i}return+i}function c_(A,e){A=A|0;e=e|0;var i=0.0;i=+oR(A,e,1.0,0.0);return+(i==0.0?1.0e3:i*1.0e3)}function s_(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0.0,n=0,l=0,t=0.0;l=k;k=k+32|0;n=l;r=0;f=0.0;while(1){if((r|0)>=(A|0))break;t=+s[e+(r<<3)>>3]+f;r=r+1|0;f=t}if(f>+s[i+24>>3]*+s[i+16>>3]+.001)r=0;else{r=qF(A<<5)|0;a[n>>2]=a[i>>2];a[n+4>>2]=a[i+4>>2];a[n+8>>2]=a[i+8>>2];a[n+12>>2]=a[i+12>>2];a[n+16>>2]=a[i+16>>2];a[n+20>>2]=a[i+20>>2];a[n+24>>2]=a[i+24>>2];a[n+28>>2]=a[i+28>>2];b_(A,e,r,0,0.0,1.0,0.0,1.0,n)}k=l;return r|0}function b_(A,e,i,r,f,n,l,t,c){A=A|0;e=e|0;i=i|0;r=r|0;f=+f;n=+n;l=+l;t=+t;c=c|0;var b=0,u=0.0,w=0.0,o=0,h=0.0,d=0.0,B=0.0,g=0.0,v=0,E=0.0,C=0,I=0,Z=0,G=0,m=0,Q=0.0;G=k;k=k+112|0;Z=G+72|0;v=G+40|0;o=G+32|0;b=G;C=c+16|0;h=+s[C>>3];I=c+24|0;d=+s[I>>3];E=+s[c+16+((!(h>3];do{if((A|0)>=1){if(0){}if(!r){l=+s[e>>3];Q=E*E;E=l/Q;Q=Q/l;a[Z>>2]=a[c>>2];a[Z+4>>2]=a[c+4>>2];a[Z+8>>2]=a[c+8>>2];a[Z+12>>2]=a[c+12>>2];a[Z+16>>2]=a[c+16>>2];a[Z+20>>2]=a[c+20>>2];a[Z+24>>2]=a[c+24>>2];a[Z+28>>2]=a[c+28>>2];b_(A,e,i,1,l,l,l,E>Q?E:Q,Z);break}if((A|0)>(r|0)?(g=+s[e+(r<<3)>>3],u=gn?n:g,g=g+l,w=g/E,w=w*w,Q=w/B,w=u/w,w=Q>w?Q:w,w<=t):0){a[Z>>2]=a[c>>2];a[Z+4>>2]=a[c+4>>2];a[Z+8>>2]=a[c+8>>2];a[Z+12>>2]=a[c+12>>2];a[Z+16>>2]=a[c+16>>2];a[Z+20>>2]=a[c+20>>2];a[Z+24>>2]=a[c+24>>2];a[Z+28>>2]=a[c+28>>2];b_(A,e,i,r+1|0,u,B,g,w,Z);break}h=l/E;if(0){}u=+s[C>>3];if(E==u){w=1.0/h;o=c+8|0;u=+s[c>>3]-u*.5;b=0;while(1){if((b|0)>=(r|0))break;s[i+(b<<5)+24>>3]=h;Q=+s[e+(b<<3)>>3]*w;s[i+(b<<5)+16>>3]=Q;s[i+(b<<5)+8>>3]=(+s[I>>3]-h)*.5+ +s[o>>3];s[i+(b<<5)>>3]=Q*.5+u;u=Q+u;b=b+1|0}s[o>>3]=+s[o>>3]-h*.5;b=1}else{w=1.0/h;u=+s[I>>3]*.5+ +s[c+8>>3];b=0;while(1){if((b|0)>=(r|0))break;s[i+(b<<5)+16>>3]=h;Q=+s[e+(b<<3)>>3]*w;s[i+(b<<5)+24>>3]=Q;s[i+(b<<5)>>3]=(h-+s[C>>3])*.5+ +s[c>>3];s[i+(b<<5)+8>>3]=u-Q*.5;u=u-Q;b=b+1|0}s[c>>3]=+s[c>>3]+h*.5;b=0}m=c+16+(b<<3)|0;s[m>>3]=+s[m>>3]-h;a[Z>>2]=a[c>>2];a[Z+4>>2]=a[c+4>>2];a[Z+8>>2]=a[c+8>>2];a[Z+12>>2]=a[c+12>>2];a[Z+16>>2]=a[c+16>>2];a[Z+20>>2]=a[c+20>>2];a[Z+24>>2]=a[c+24>>2];a[Z+28>>2]=a[c+28>>2];b_(A-r|0,e+(r<<3)|0,i+(r<<5)|0,0,0.0,0.0,0.0,1.0,Z)}}while(0);k=G;return}function u_(A,e,i,r,f){A=A|0;e=+e;i=+i;r=+r;f=+f;s[A>>3]=e;s[A+8>>3]=i;s[A+16>>3]=r;s[A+24>>3]=f;return}function w_(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,n=0,l=0,t=0,b=0.0,u=0.0,w=0.0,o=0.0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0;y=k;k=k+96|0;L=y+48|0;Q=y+24|0;m=y+16|0;G=y+8|0;v=y+80|0;E=y;C=A+16|0;I=e+4|0;Z=v+4|0;B=cd(A)|0;i=0;r=0;n=0;l=0;while(1){if(!B)break;g=Oo(A,B)|0;h=i;d=l;while(1){if(!g)break;i=(f[(a[g+16>>2]|0)+168>>1]|0)==0;do{if((B|0)==(a[((a[g>>2]&3|0)==2?g:g+-48|0)+40>>2]|0))if(i){l=h;i=d}else{if(!r){i=qF(96)|0;a[i+84>>2]=qF(((gh(A)|0)<<5)+11520|0)|0;r=i}else i=d;GH(r,g,a[(a[C>>2]|0)+248>>2]|0);l=h}else if(!i){n=k_(g,e)|0;l=n+8|0;if(qS(a[l>>2]|0,a[n>>2]|0)|0){t=yt(a[l>>2]|0,a[n>>2]|0)|0;if(!t){ao(0,94352,G)|0;l=1;i=d;break}else i=g;while(1){if(!i)break;W=i+16|0;z=(a[W>>2]|0)+144|0;zH(E,i,t,0,a[l>>2]|0,a[n>>2]|0);D=E;Y=a[D+4>>2]|0;a[z>>2]=a[D>>2];a[z+4>>2]=Y;DH(A,i,a[l>>2]|0,a[n>>2]|0,0);i=a[(a[W>>2]|0)+172>>2]|0}o_(n);l=h;i=d;break}if(!h){qj(v,A);i=bC(A,8,8)|0;ao(0,94436,m)|0;u=+(i|0);w=+c[e>>2];o=+c[I>>2];if(!(w>=u)&!(o>=u)){b=+c[v>>2];u=+c[Z>>2];if(!(!(b<=w)&!(u<=o))){s[L>>3]=b;s[L+8>>3]=u;s[L+16>>3]=w;s[L+24>>3]=o;ao(3,94552,L)|0}}else{a[Q>>2]=i;s[Q+8>>3]=w;s[Q+16>>3]=o;ao(3,94502,Q)|0}l=1;i=d}else{l=h;i=d}}else{l=h;i=d}}while(0);g=_o(A,g)|0;h=l;d=i}B=sd(A,B)|0;i=h;l=d}h_(n);if(r|0){L2(a[r+84>>2]|0);L2(l)}k=y;return i|0}function k_(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0;o=k;k=k+16|0;b=o+4|0;u=o;i=a[A>>2]&3;f=a[((i|0)==2?A:A+-48|0)+40>>2]|0;i=a[((i|0)==3?A:A+48|0)+40>>2]|0;h=f+16|0;l=a[(a[h>>2]|0)+212>>2]|0;a[b>>2]=l;t=i+16|0;n=a[(a[t>>2]|0)+212>>2]|0;a[u>>2]=n;s=qF(12)|0;A=l;c=n;if(r[(a[h>>2]|0)+118>>0]|0){A=a[(a[(a[A+16>>2]|0)+140>>2]|0)+48>>2]|0;a[b>>2]=A;f=l;l=A}if(!(r[(a[t>>2]|0)+118>>0]|0))t=c;else{t=a[(a[(a[c+16>>2]|0)+140>>2]|0)+48>>2]|0;a[u>>2]=t;i=n;n=t}l=a[(a[(a[l+16>>2]|0)+140>>2]|0)+44>>2]|0;n=a[(a[(a[n+16>>2]|0)+140>>2]|0)+44>>2]|0;if((l|0)<=(n|0))if((n|0)>(l|0)){d_(s,n,i,l,u,e);A=a[u>>2]|0;n=A;i=u;w=11}else l=t;else{d_(s,l,f,n,b,e);A=a[b>>2]|0;f=A;n=i;i=b;w=11}while(1){if((w|0)==11){a[i>>2]=a[(a[(a[A+16>>2]|0)+140>>2]|0)+48>>2];i=n;A=a[b>>2]|0;l=a[u>>2]|0}if((A|0)==(l|0))break;B_(s,A,0,f,e);B_(s,l,i,0,e);a[b>>2]=a[(a[(a[A+16>>2]|0)+140>>2]|0)+48>>2];f=A;n=l;i=u;A=l;w=11}B_(s,l,i,f,e);k=o;return s|0}function o_(A){A=A|0;a[A>>2]=0;return}function h_(A){A=A|0;if(A|0){L2(a[A+8>>2]|0);L2(A)}return}function d_(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0;t=f;while(1){l=a[t>>2]|0;if((e|0)<=(r|0))break;B_(A,l,i,0,n);e=e+-1|0;t=(a[(a[l+16>>2]|0)+140>>2]|0)+48|0;i=l}a[f>>2]=i;return}function B_(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0,t=0;l=cd(e)|0;while(1){if(!l)break;t=a[l+16>>2]|0;if(!((l|0)==(f|0)|((l|0)==(i|0)?1:(a[t+212>>2]|0)!=(e|0)))?(r[t+118>>0]|0)==0:0)g_(A,LH(l,n,0)|0);l=sd(e,l)|0}t=e+16|0;e=1;while(1){l=a[t>>2]|0;if((e|0)>(a[l+180>>2]|0))break;l=a[(a[l+184>>2]|0)+(e<<2)>>2]|0;if(!((l|0)==(i|0)|(l|0)==(f|0)))g_(A,v_(l,n)|0);e=e+1|0}return}function g_(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;r=A+4|0;f=a[r>>2]|0;n=A+8|0;i=a[n>>2]|0;do{if((f|0)==(a[A>>2]|0))if(!i){i=$F(400)|0;a[n>>2]=i;a[r>>2]=100;break}else{a[r>>2]=f<<1;i=eV(i,f<<3)|0;a[n>>2]=i;break}}while(0);n=a[A>>2]|0;a[A>>2]=n+1;a[i+(n<<2)>>2]=e;return}function v_(A,e){A=A|0;e=e|0;var i=0.0,f=0.0,n=0.0,l=0.0,t=0.0,b=0.0,u=0,w=0.0,k=0.0,o=0.0;u=qF(8)|0;A=a[A+16>>2]|0;i=+s[A+16>>3];b=+s[A+24>>3];f=+s[A+32>>3];t=+s[A+40>>3];a[u+4>>2]=4;A=qF(64)|0;a[u>>2]=A;if(!(r[e+8>>0]|0)){o=+c[e>>2];k=+c[e+4>>2];n=(f+i)*.5*(o+-1.0);w=(t+b)*.5*(k+-1.0);l=i*o-n;n=f*o-n;f=t*k-w;i=b*k-w}else{n=+c[e>>2];o=+c[e+4>>2];l=i-n;n=f+n;f=t+o;i=b-o}s[A>>3]=l;s[A+8>>3]=i;s[A+16>>3]=l;s[A+24>>3]=f;s[A+32>>3]=n;s[A+40>>3]=f;s[A+48>>3]=n;s[A+56>>3]=i;return u|0}function E_(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0;w=k;k=k+160|0;u=w+16|0;c=w+8|0;n=w;s=w+24|0;b=qF(gh(A)|0)|0;l=A+16|0;f=a[a[(a[l>>2]|0)+140>>2]>>2]|0;A:do{if(!f){n=0;f=0}else{o=Vh(A)|0;t=a[46923]|0;a[n>>2]=o;a[n+4>>2]=t;S4(s,94612,n)|0;t=NB(A,s,1)|0;Td(t,137483,280,1)|0;n=qF(56)|0;a[(a[t+16>>2]|0)+140>>2]=n;a[n>>2]=f;a[n+4>>2]=a[(a[(a[l>>2]|0)+140>>2]|0)+4>>2];while(1){n=a[f+4>>2]|0;if(!n){n=t;f=1;break A}if(!(r[b+(a[(a[n+16>>2]|0)+120>>2]|0)>>0]|0))C_(A,n,t,b);f=f+16|0}}}while(0);l=0;t=cd(A)|0;while(1){if(!t)break;o=a[t+16>>2]|0;if((r[b+(a[o+120>>2]|0)>>0]|0)==0?(r[o+119>>0]|0)==3:0){if(!n){o=Vh(A)|0;n=(a[46923]|0)+f|0;a[c>>2]=o;a[c+4>>2]=n;S4(s,94612,c)|0;n=NB(A,s,1)|0;Td(n,137483,280,1)|0;o=qF(56)|0;a[(a[n+16>>2]|0)+140>>2]=o;f=f+1|0}C_(A,t,n,b);l=1}t=sd(A,t)|0}if(n|0)VE(n)|0;n=cd(A)|0;while(1){if(!n)break;if(!(r[b+(a[(a[n+16>>2]|0)+120>>2]|0)>>0]|0)){c=Vh(A)|0;o=(a[46923]|0)+f|0;a[u>>2]=c;a[u+4>>2]=o;S4(s,94620,u)|0;o=NB(A,s,1)|0;Td(o,137483,280,1)|0;c=qF(56)|0;a[(a[o+16>>2]|0)+140>>2]=c;C_(A,n,o,b);VE(o)|0;f=f+1|0}n=sd(A,n)|0}L2(b);a[46923]=(a[46923]|0)+f;if(e|0)a[e>>2]=f;if(i|0)a[i>>2]=l;t=qF((f<<2)+4|0)|0;l=t;n=RB(A)|0;while(1){if(!n)break;a[l>>2]=n;l=l+4|0;n=XB(n)|0;f=f+-1|0}if(!f){a[l>>2]=0;k=w;return t|0}else gA(94628,94639,134,94646);return 0}function C_(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0;r[f+(a[(a[e+16>>2]|0)+120>>2]|0)>>0]=1;kd(i,e,1)|0;t=Ah(A,e)|0;while(1){if(!t)break;l=a[t>>2]&3;n=a[((l|0)==3?t:t+48|0)+40>>2]|0;if((n|0)==(e|0))n=a[((l|0)==2?t:t+-48|0)+40>>2]|0;if(!(r[f+(a[(a[n+16>>2]|0)+120>>2]|0)>>0]|0))C_(A,n,i,f);t=eh(A,t,e)|0}return}function I_(A){A=A|0;var e=0;e=$F(24)|0;a[46924]=e;a[e>>2]=jk(18204,a[4581]|0)|0;a[e+16>>2]=0;a[e+12>>2]=0;a[e+4>>2]=Z_(A)|0;return e|0}function Z_(A){A=A|0;var e=0,i=0;e=$F(16)|0;a[e+12>>2]=0;i=$F(A*20|0)|0;a[e>>2]=i;a[e+8>>2]=i+(A*20|0);a[e+4>>2]=i;return e|0}function G_(A,e,i){A=A|0;e=e|0;i=i|0;i=Q_(a[46924]|0)|0;a[i>>2]=a[e>>2];a[i+4>>2]=a[e+4>>2];a[i+8>>2]=0;return i|0}function m_(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;A=(a[e>>2]|0)-(a[i>>2]|0)|0;if(!A)A=(a[e+4>>2]|0)-(a[i+4>>2]|0)|0;return A|0}function Q_(A){A=A|0;var e=0,i=0,r=0,f=0;f=A+8|0;A=a[f>>2]|0;e=a[A+4>>2]|0;if((e|0)==(a[A+8>>2]|0)){i=A+12|0;r=a[i>>2]|0;if(!r){A=Z_(((e-(a[A>>2]|0)|0)/20|0)<<1)|0;a[i>>2]=A}else A=r;a[f>>2]=A;e=a[A>>2]|0;a[A+4>>2]=e}a[A+4>>2]=e+20;return e|0}function L_(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;f=A+12|0;i=a[f>>2]|0;if((i|0)<(e|0)){r=i<<1;r=(r|0)<(e|0)?e:r;e=A+16|0;i=a[e>>2]|0;if(i|0)L2(i);a[e>>2]=$F(r<<3)|0;a[f>>2]=r}return}function y_(A){A=A|0;var e=0;e=a[A>>2]|0;y5[a[e>>2]&63](e,0,64)|0;a[A+20>>2]=a[A+16>>2];e=a[A+4>>2]|0;a[A+8>>2]=e;a[e+4>>2]=a[e>>2];return}function W_(A){A=A|0;Hk(a[A>>2]|0)|0;z_(a[A+4>>2]|0);L2(a[A+16>>2]|0);L2(A);return}function z_(A){A=A|0;var e=0;while(1){if(!A)break;e=a[A+12>>2]|0;L2(a[A>>2]|0);L2(A);A=e}return}function Y_(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0;n=k;k=k+32|0;f=n;l=n+12|0;a[l>>2]=e;a[l+4>>2]=i;t=a[A>>2]|0;l=(y5[a[t>>2]&63](t,l,1)|0)+8|0;a[l>>2]=D_(A,r,a[l>>2]|0)|0;if(0>2){t=a[15712]|0;l=Vh(r)|0;a[f>>2]=e;a[f+4>>2]=i;a[f+8>>2]=l;f3(t,94656,f)|0}k=n;return}function D_(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;r=A+20|0;A=a[r>>2]|0;a[r>>2]=A+8;a[A>>2]=e;a[A+4>>2]=i;return A|0}function M_(A,e){A=A|0;e=e|0;$k(a[A>>2]|0,e,A)|0;return}function F_(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;r=k;k=k+32|0;f=r;a[f>>2]=e;a[f+4>>2]=i;i=a[A>>2]|0;i=y5[a[i>>2]&63](i,f,4)|0;k=r;return i|0}function V_(A){A=A|0;L2(a[A+8>>2]|0);L2(A);return}function J_(A){A=A|0;return+ +s[A>>3]}function p_(A){A=A|0;return a[A+8>>2]|0}function N_(A){A=A|0;return~~+s[A+16>>3]|0}function R_(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;e=a[e>>2]|0;if((e|0)>=(a[i>>2]|0)){e=e+10|0;a[i>>2]=e;a[r>>2]=eV(a[r>>2]|0,U(A<<3,e)|0)|0;a[f>>2]=eV(a[f>>2]|0,a[i>>2]<<3)|0;a[n>>2]=eV(a[n>>2]|0,a[i>>2]<<3)|0}return}function X_(A,e,i,r,f,n,l,t,c,b,u){A=A|0;e=+e;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;t=t|0;c=c|0;b=b|0;u=u|0;var w=0,k=0,o=0,h=0,d=0.0;s[b>>3]=+s[b>>3]+1.0;A:do{if(A|0){h=a[A+16>>2]|0;w=a[A+40>>2]|0;if(w|0)do{R_(h,f,n,l,t,c);if((N_(Zw(w)|0)|0)!=(r|0)){o=p_(Zw(w)|0)|0;k=0;while(1){if((k|0)>=(h|0))break;s[(a[l>>2]|0)+((U(a[f>>2]|0,h)|0)+k<<3)>>3]=+s[o+(k<<3)>>3];k=k+1|0}d=+J_(Zw(w)|0);s[(a[t>>2]|0)+(a[f>>2]<<3)>>3]=d;d=+qb(i,o,h);o=a[f>>2]|0;s[(a[c>>2]|0)+(o<<3)>>3]=d;a[f>>2]=o+1}w=Gw(w)|0}while((w|0)!=0);o=A+36|0;if(a[o>>2]|0){d=+qb(a[A+20>>2]|0,i,h);if(!(+s[A+24>>3]=(k|0))break A;X_(a[(a[o>>2]|0)+(w<<2)>>2]|0,e,i,r,f,n,l,t,c,b,u);w=w+1|0}}R_(h,f,n,l,t,c);k=A+32|0;w=0;while(1){if((w|0)>=(h|0))break;s[(a[l>>2]|0)+((U(a[f>>2]|0,h)|0)+w<<3)>>3]=+s[(a[k>>2]|0)+(w<<3)>>3];w=w+1|0}s[(a[t>>2]|0)+(a[f>>2]<<3)>>3]=+s[A+8>>3];d=+qb(a[k>>2]|0,i,h);t=a[f>>2]|0;s[(a[c>>2]|0)+(t<<3)>>3]=d;a[f>>2]=t+1}}}while(0);return}function H_(A,e,i,r,f,n,l,t,c,b,u){A=A|0;e=+e;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;t=t|0;c=c|0;b=b|0;u=u|0;var w=0;w=a[A+16>>2]|0;s[b>>3]=0.0;a[f>>2]=0;a[u>>2]=0;a[n>>2]=10;if(!(a[l>>2]|0))a[l>>2]=$F(w*80|0)|0;if(!(a[t>>2]|0))a[t>>2]=$F(a[n>>2]<<3)|0;if(!(a[c>>2]|0))a[c>>2]=$F(a[n>>2]<<3)|0;X_(A,e,i,r,f,n,l,t,c,b,u);return}function U_(A,e,i,r,f,n,l,t){A=A|0;e=e|0;i=i|0;r=+r;f=+f;n=+n;l=l|0;t=t|0;var c=0,b=0,u=0;u=a[A>>2]|0;b=a[A+16>>2]|0;c=0;while(1){if((c|0)==4)break;s[l+(c<<3)>>3]=0.0;c=c+1|0}a[t>>2]=0;b=U(b,u)|0;c=0;while(1){if((c|0)>=(b|0))break;s[e+(c<<3)>>3]=0.0;c=c+1|0}x_(A,A,i,e,r,f,n,l);T_(A,e,l);r=1.0/+(u|0);c=0;while(1){if((c|0)==4)break;u=l+(c<<3)|0;s[u>>3]=+s[u>>3]*r;c=c+1|0}return}function x_(A,e,i,r,f,n,l,t){A=A|0;e=e|0;i=i|0;r=r|0;f=+f;n=+n;l=+l;t=t|0;var c=0,b=0.0,u=0,w=0.0,k=0,o=0,h=0,d=0.0,B=0,g=0,v=0,E=0,C=0,I=0;A:do{if((A|0)!=0&(e|0)!=0){if((a[A>>2]|0)>0?(a[e>>2]|0)>0:0){C=a[A+16>>2]|0;o=a[A+40>>2]|0;E=e+40|0;k=a[E>>2]|0;c=A+32|0;u=e+32|0;d=+qb(a[c>>2]|0,a[u>>2]|0,C);b=+s[A+24>>3];w=+s[e+24>>3];if(w+b>3]=+s[t>>3]+1.0;h=a[c>>2]|0;w=+s[A+8>>3];o=j_(A,C)|0;k=a[u>>2]|0;b=+s[e+8>>3];u=j_(e,C)|0;if(!(d>0.0))gA(94798,94681,191,94764);w=w*l*b;b=+Y(+d,+(1.0-n));b=1.0/(n==-1.0?d*d:b);c=0;while(1){if((c|0)>=(C|0))break A;l=w*(+s[h+(c<<3)>>3]-+s[k+(c<<3)>>3])*b;r=o+(c<<3)|0;s[r>>3]=l+ +s[r>>3];r=u+(c<<3)|0;s[r>>3]=+s[r>>3]-l;c=c+1|0}}u=(o|0)!=0;c=(k|0)!=0;v=(A|0)==(e|0);if(u&c){B=t+8|0;g=n==-1.0;f=1.0-n;u=o;while(1){if(!u)break A;o=p_(Zw(u)|0)|0;d=+J_(Zw(u)|0);h=N_(Zw(u)|0)|0;A=P_(r,h,u,C)|0;d=d*l;k=a[E>>2]|0;while(1){if(!k)break;e=p_(Zw(k)|0)|0;b=+J_(Zw(k)|0);c=N_(Zw(k)|0)|0;t=P_(r,c,k,C)|0;e:do{if(!((h|0)==(c|0)|v&(c|0)<(h|0))){s[B>>3]=+s[B>>3]+1.0;n=+Kb(i,C,h,c);b=d*b;w=+Y(+n,+f);w=1.0/(g?n*n:w);c=0;while(1){if((c|0)>=(C|0))break e;n=b*(+s[o+(c<<3)>>3]-+s[e+(c<<3)>>3])*w;I=A+(c<<3)|0;s[I>>3]=n+ +s[I>>3];I=t+(c<<3)|0;s[I>>3]=+s[I>>3]-n;c=c+1|0}}}while(0);k=Gw(k)|0}u=Gw(u)|0}}if(v){h=1<=(h|0))break A;o=a[(a[k>>2]|0)+(u<<2)>>2]|0;c=u;while(1){if((c|0)==(h|0))break;x_(o,a[(a[k>>2]|0)+(c<<2)>>2]|0,i,r,f,n,l,t);c=c+1|0}u=u+1|0}}if(!(u|!(b>w))){k=1<=(k|0))break A;x_(a[(a[u>>2]|0)+(c<<2)>>2]|0,e,i,r,f,n,l,t);c=c+1|0}}if(!(c|!(w>b))){k=1<=(k|0))break A;x_(a[(a[u>>2]|0)+(c<<2)>>2]|0,A,i,r,f,n,l,t);c=c+1|0}}if(!u){k=1<=(k|0))break A;x_(a[(a[u>>2]|0)+(c<<2)>>2]|0,e,i,r,f,n,l,t);c=c+1|0}}if(c)gA(138394,94681,273,94764);k=1<=(k|0))break A;x_(a[(a[u>>2]|0)+(c<<2)>>2]|0,A,i,r,f,n,l,t);c=c+1|0}}gA(94739,94681,175,94764)}}while(0);return}function T_(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0.0,l=0.0,t=0,c=0,b=0,u=0,w=0,k=0;r=a[A+40>>2]|0;u=a[A+16>>2]|0;n=+s[A+8>>3];w=j_(A,u)|0;if(!(n>0.0))gA(94673,94681,289,94692);b=i+16|0;s[b>>3]=+s[b>>3]+1.0;A:do{if(!r){b=1<=(b|0))break A;f=a[(a[c>>2]|0)+(A<<2)>>2]|0;if(f|0){if((a[f>>2]|0)<=0)break;t=j_(f,u)|0;l=+s[f+8>>3]*n;r=0;while(1){if((r|0)>=(u|0))break;k=t+(r<<3)|0;s[k>>3]=+s[k>>3]+ +s[w+(r<<3)>>3]*l;r=r+1|0}T_(f,e,i)}A=A+1|0}gA(94728,94681,307,94692)}else{l=1.0/n;while(1){if(!r)break A;f=P_(e,N_(Zw(r)|0)|0,r,u)|0;n=+J_(Zw(r)|0)*l;A=0;while(1){if((A|0)>=(u|0))break;k=f+(A<<3)|0;s[k>>3]=+s[k>>3]+ +s[w+(A<<3)>>3]*n;A=A+1|0}r=Gw(r)|0}}}while(0);return}function j_(A,e){A=A|0;e=e|0;var i=0;i=A+48|0;A=a[i>>2]|0;A:do{if(!A){A=$F(e<<3)|0;a[i>>2]=A;i=0;while(1){if((i|0)>=(e|0))break A;s[A+(i<<3)>>3]=0.0;i=i+1|0}}}while(0);return A|0}function P_(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0;f=a[(Zw(i)|0)+24>>2]|0;if(!f){f=A+((U(r,e)|0)<<3)|0;a[(Zw(i)|0)+24>>2]=f;f=a[(Zw(i)|0)+24>>2]|0}return f|0}function S_(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var a=0,n=0,l=0.0,t=0,c=0,b=0,u=0,w=0,k=0.0,o=0;u=A<<3;c=$F(u)|0;b=$F(u)|0;u=$F(u)|0;if((c|0)!=0&(b|0)!=0&(u|0)!=0){a=0;while(1){if((a|0)>=(A|0)){a=0;break}s[c+(a<<3)>>3]=+s[r+(a<<3)>>3];a=a+1|0}while(1){if((a|0)>=(A|0)){n=1;break}s[b+(a<<3)>>3]=+s[r+(a<<3)>>3];a=a+1|0}while(1){if((n|0)>=(e|0))break;t=U(n,A)|0;a=0;while(1){if((a|0)>=(A|0))break;w=c+(a<<3)|0;l=+s[w>>3];o=r+(a+t<<3)|0;k=+s[o>>3];s[w>>3]=l>3];l=+s[o>>3];s[w>>3]=k>l?k:l;a=a+1|0}n=n+1|0}l=+s[b>>3]-+s[c>>3];a=0;while(1){if((a|0)>=(A|0))break;o=c+(a<<3)|0;w=b+(a<<3)|0;s[u+(a<<3)>>3]=(+s[w>>3]+ +s[o>>3])*.5;k=+s[w>>3]-+s[o>>3];l=l>k?l:k;a=a+1|0}a=O_(A,u,l==0.0?5.2e-06:l*.52,i)|0;A:do{if(!f){n=0;while(1){if((n|0)>=(e|0))break A;a=K_(a,r+((U(n,A)|0)<<3)|0,1.0,n)|0;n=n+1|0}}else{n=0;while(1){if((n|0)>=(e|0))break A;o=r+((U(n,A)|0)<<3)|0;a=K_(a,o,+s[f+(n<<3)>>3],n)|0;n=n+1|0}}}while(0);L2(c);L2(b);L2(u)}else{L2(c);L2(b);L2(u);a=0}return a|0}function O_(A,e,i,r){A=A|0;e=e|0;i=+i;r=r|0;var f=0,n=0,l=0;n=$F(56)|0;a[n+16>>2]=A;a[n>>2]=0;l=$F(A<<3)|0;a[n+20>>2]=l;f=0;while(1){if((f|0)>=(A|0))break;s[l+(f<<3)>>3]=+s[e+(f<<3)>>3];f=f+1|0}if(i>0.0){s[n+24>>3]=i;s[n+8>>3]=0.0;a[n+32>>2]=0;a[n+36>>2]=0;a[n+40>>2]=0;a[n+44>>2]=r;a[n+48>>2]=0;return n|0}else gA(94896,94681,410,94906);return 0}function K_(A,e,i,r){A=A|0;e=e|0;i=+i;r=r|0;if(!A)A=0;else __(A,e,i,r,0)|0;return A|0}function __(A,e,i,r,f){A=A|0;e=e|0;i=+i;r=r|0;f=f|0;var n=0,l=0,t=0,c=0.0,b=0.0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0;g=A+16|0;d=a[g>>2]|0;B=a[A+44>>2]|0;u=a[A>>2]|0;do{if(!u){a[A>>2]=1;s[A+8>>3]=i;t=$F(d<<3)|0;a[A+32>>2]=t;l=a[g>>2]|0;n=0;while(1){if((n|0)>=(l|0))break;s[t+(n<<3)>>3]=+s[e+(n<<3)>>3];n=n+1|0}n=q_(l,i,e,r)|0;l=A+40|0;if(!(a[l>>2]|0)){a[l>>2]=Ew(n)|0;break}else gA(94807,94681,502,94815)}else{if((B|0)<=(f|0)){if(a[A+36>>2]|0)gA(94881,94681,541,94815);n=u+1|0;a[A>>2]=n;l=A+8|0;s[l>>3]=+s[l>>3]+i;l=A+32|0;c=+(n|0);b=1.0/+(u+2|0);n=0;while(1){if((n|0)>=(d|0))break;h=(a[l>>2]|0)+(n<<3)|0;s[h>>3]=(+s[h>>3]*c+ +s[e+(n<<3)>>3])*b;n=n+1|0}n=q_(d,i,e,r)|0;l=A+40|0;t=a[l>>2]|0;if(!t)gA(94891,94681,547,94815);else{a[l>>2]=Iw(t,n)|0;break}}l=A+8|0;s[l>>3]=+s[l>>3]+i;l=A+32|0;b=+(u|0);c=1.0/+(u+1|0);n=0;while(1){if((n|0)>=(d|0))break;h=(a[l>>2]|0)+(n<<3)|0;s[h>>3]=(+s[h>>3]*b+ +s[e+(n<<3)>>3])*c;n=n+1|0}h=A+36|0;o=1<>2]|0)){a[h>>2]=$F(o<<2)|0;n=0;while(1){if((n|0)>=(o|0))break A;a[(a[h>>2]|0)+(n<<2)>>2]=0;n=n+1|0}}}while(0);w=A+20|0;n=a[w>>2]|0;t=$_(d,n,e)|0;if(!((t|0)<(o|0)&(t|0)>-1))gA(94837,94681,515,94815);l=a[(a[h>>2]|0)+(t<<2)>>2]|0;if(!l){l=Aq(a[g>>2]|0,n,+s[A+24>>3]*.5,B,t)|0;a[(a[h>>2]|0)+(t<<2)>>2]=l;l=a[(a[h>>2]|0)+(t<<2)>>2]|0}k=f+1|0;r=__(l,e,i,r,k)|0;a[(a[h>>2]|0)+(t<<2)>>2]=r;if(!(a[(a[h>>2]|0)+(t<<2)>>2]|0))gA(94860,94681,519,94815);e=A+40|0;n=a[e>>2]|0;do{if(n|0){u=N_(Zw(n)|0)|0;if((a[A>>2]|0)!=1)gA(94871,94681,523,94815);f=p_(Zw(a[e>>2]|0)|0)|0;c=+J_(Zw(a[e>>2]|0)|0);l=a[w>>2]|0;t=$_(d,l,f)|0;if(!((t|0)<(o|0)&(t|0)>-1))gA(94837,94681,527,94815);n=a[(a[h>>2]|0)+(t<<2)>>2]|0;if(!n){n=Aq(a[g>>2]|0,l,+s[A+24>>3]*.5,B,t)|0;a[(a[h>>2]|0)+(t<<2)>>2]=n;n=a[(a[h>>2]|0)+(t<<2)>>2]|0}g=__(n,f,c,u,k)|0;a[(a[h>>2]|0)+(t<<2)>>2]=g;if(!(a[(a[h>>2]|0)+(t<<2)>>2]|0))gA(94860,94681,532,94815);else{Cw(a[e>>2]|0,106);a[e>>2]=0;break}}}while(0);a[A>>2]=(a[A>>2]|0)+1}}while(0);return A|0}function q_(A,e,i,r){A=A|0;e=+e;i=i|0;r=r|0;var f=0,n=0;n=$F(32)|0;s[n>>3]=e;f=$F(A<<3)|0;a[n+8>>2]=f;s[n+16>>3]=+(r|0);r=0;while(1){if((r|0)>=(A|0))break;s[f+(r<<3)>>3]=+s[i+(r<<3)>>3];r=r+1|0}a[n+24>>2]=0;return n|0}function $_(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;f=0;while(1){r=A+-1|0;if((A|0)<=0)break;A=r;f=f<<1|!(+s[i+(r<<3)>>3]-+s[e+(r<<3)>>3]<0.0)&1}return f|0}function Aq(A,e,i,r,f){A=A|0;e=e|0;i=+i;r=r|0;f=f|0;var n=0,l=0,t=0.0;n=O_(A,e,i,r)|0;l=a[n+20>>2]|0;t=-i;r=0;e=f;while(1){if((r|0)>=(A|0))break;f=l+(r<<3)|0;s[f>>3]=+s[f>>3]+((e&1|0)==0?t:i);r=r+1|0;e=(e|0)/2|0}return n|0}function eq(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;if(A|0){e=a[A+16>>2]|0;L2(a[A+20>>2]|0);L2(a[A+32>>2]|0);L2(a[A+48>>2]|0);n=A+36|0;r=a[n>>2]|0;if(r|0){f=1<=(f|0))break;eq(a[e+(i<<2)>>2]|0);i=i+1|0;e=a[n>>2]|0}L2(e)}Cw(a[A+40>>2]|0,106);L2(A)}return}function iq(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,k=0,o=0,h=0.0,d=0,B=0,g=0;A:do{if(!A)e=0;else{b=a[A+20>>2]|0;u=a[A+24>>2]|0;i=a[A+8>>2]|0;w=a[A>>2]|0;r=a[A+4>>2]|0;l=A+16|0;if((a[A+32>>2]|0)!=1)gA(94919,94943,76,94958);e=fq(r,w,i,a[l>>2]|0,1)|0;a[e+8>>2]=i;k=a[e+20>>2]|0;c=a[e+24>>2]|0;i=0;while(1){if((i|0)>(r|0)){i=0;break}a[k+(i<<2)>>2]=0;i=i+1|0}e:while(1){if((i|0)>=(w|0)){i=0;break}f=i+1|0;n=b+(f<<2)|0;i=a[b+(i<<2)>>2]|0;while(1){if((i|0)>=(a[n>>2]|0)){i=f;continue e}t=k+((a[u+(i<<2)>>2]|0)+1<<2)|0;a[t>>2]=(a[t>>2]|0)+1;i=i+1|0}}while(1){if((i|0)>=(r|0))break;t=i+1|0;n=k+(t<<2)|0;a[n>>2]=(a[n>>2]|0)+(a[k+(i<<2)>>2]|0);i=t}e:do{switch(a[l>>2]|0){case 1:{n=a[A+28>>2]|0;A=a[e+28>>2]|0;f=0;i:while(1){if((f|0)>=(w|0))break e;l=f+1|0;t=b+(l<<2)|0;i=a[b+(f<<2)>>2]|0;while(1){if((i|0)>=(a[t>>2]|0)){f=l;continue i}d=u+(i<<2)|0;a[c+(a[k+(a[d>>2]<<2)>>2]<<2)>>2]=f;h=+s[n+(i<<3)>>3];d=k+(a[d>>2]<<2)|0;o=a[d>>2]|0;a[d>>2]=o+1;s[A+(o<<3)>>3]=h;i=i+1|0}}}case 2:{n=a[A+28>>2]|0;A=a[e+28>>2]|0;f=0;i:while(1){if((f|0)>=(w|0))break e;l=f+1|0;t=b+(l<<2)|0;i=a[b+(f<<2)>>2]|0;while(1){if((i|0)>=(a[t>>2]|0)){f=l;continue i}d=u+(i<<2)|0;a[c+(a[k+(a[d>>2]<<2)>>2]<<2)>>2]=f;g=i<<1;d=k+(a[d>>2]<<2)|0;o=a[d>>2]|0;B=o<<1;s[A+(B<<3)>>3]=+s[n+(g<<3)>>3];s[A+((B|1)<<3)>>3]=+s[n+((g|1)<<3)>>3];a[d>>2]=o+1;i=i+1|0}}}case 4:{n=a[A+28>>2]|0;A=a[e+28>>2]|0;f=0;i:while(1){if((f|0)>=(w|0))break e;l=f+1|0;t=b+(l<<2)|0;i=a[b+(f<<2)>>2]|0;while(1){if((i|0)>=(a[t>>2]|0)){f=l;continue i}d=u+(i<<2)|0;a[c+(a[k+(a[d>>2]<<2)>>2]<<2)>>2]=f;B=a[n+(i<<2)>>2]|0;d=k+(a[d>>2]<<2)|0;g=a[d>>2]|0;a[d>>2]=g+1;a[A+(g<<2)>>2]=B;i=i+1|0}}}case 8:{f=0;i:while(1){if((f|0)>=(w|0))break e;n=f+1|0;A=b+(n<<2)|0;i=a[b+(f<<2)>>2]|0;while(1){if((i|0)>=(a[A>>2]|0)){f=n;continue i}B=k+(a[u+(i<<2)>>2]<<2)|0;g=a[B>>2]|0;a[B>>2]=g+1;a[c+(g<<2)>>2]=f;i=i+1|0}}}case 16:{rq(e);e=0;break A}default:{rq(e);e=0;break A}}}while(0);while(1){i=r+-1|0;if((r|0)<=0)break;a[k+(r<<2)>>2]=a[k+(i<<2)>>2];r=i}a[k>>2]=0}}while(0);return e|0}function rq(A){A=A|0;var e=0;if(A|0){e=a[A+20>>2]|0;if(e|0)L2(e);e=a[A+24>>2]|0;if(e|0)L2(e);L2(a[A+28>>2]|0);L2(A)}return}function fq(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;A=nq(A,e,r,aq(r)|0,f)|0;if((i|0)>0)lq(A,i)|0;return A|0}function aq(A){A=A|0;switch(A|0){case 1:{A=8;break}case 2:{A=16;break}case 4:{A=4;break}case 8:{A=0;break}case 16:{A=0;break}default:A=0}return A|0}function nq(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0;n=$F(44)|0;a[n>>2]=A;a[n+4>>2]=e;a[n+8>>2]=0;a[n+12>>2]=0;a[n+16>>2]=i;a[n+40>>2]=r;if((f|0)==2)A=0;else A=$F((A<<2)+4|0)|0;a[n+20>>2]=A;a[n+24>>2]=0;a[n+28>>2]=0;a[n+32>>2]=f;a[n+36>>2]=0;return n|0}function lq(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0;l=a[A+32>>2]|0;f=A+28|0;a[f>>2]=0;i=e<<2;r=$F(i)|0;if((l|0)!=2){a[A+24>>2]=r;i=a[A+40>>2]|0;if((e|0)!=0&(i|0)>0)n=4}else{a[A+20>>2]=r;a[A+24>>2]=$F(i)|0;i=a[A+40>>2]|0;n=4}if((n|0)==4)a[f>>2]=$F(U(i,e)|0)|0;a[A+12>>2]=e;return A|0}function tq(A,e){A=A|0;e=e|0;if(!(cq(A,e)|0)){e=iq(A)|0;if(!e)e=0;else{A=bq(A,e)|0;rq(e);e=A+36|0;a[e>>2]=a[e>>2]|3;e=A}}else e=sq(A)|0;return e|0}function cq(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0,v=0.0;if(A){if((a[A+32>>2]|0)!=1)gA(94919,94943,187,95074);B=A+36|0;i=a[B>>2]|0;if((i&2|0)==0?(o=(e|0)!=0,(i&1|0)==0|o^1):0)if((a[A>>2]|0)==(a[A+4>>2]|0)?(g=iq(A)|0,(g|0)!=0):0){c=a[A+20>>2]|0;b=a[A+24>>2]|0;u=a[g+20>>2]|0;w=a[g+24>>2]|0;k=a[A>>2]|0;h=$F(k<<2)|0;e=0;while(1){if((e|0)>=(k|0))break;a[h+(e<<2)>>2]=-1;e=e+1|0}A:do{switch((o?8:a[A+16>>2]|0)|0){case 1:{n=a[A+28>>2]|0;l=a[g+28>>2]|0;e=0;while(1){if((e|0)>(k|0)){i=0;break}if((a[c+(e<<2)>>2]|0)==(a[u+(e<<2)>>2]|0))e=e+1|0;else{e=0;break A}}e:while(1){if((i|0)>=(k|0)){d=54;break A}r=c+(i<<2)|0;f=i+1|0;A=c+(f<<2)|0;e=a[r>>2]|0;while(1){if((e|0)>=(a[A>>2]|0))break;a[h+(a[b+(e<<2)>>2]<<2)>>2]=e;e=e+1|0}e=a[u+(i<<2)>>2]|0;A=a[u+(f<<2)>>2]|0;i=e;while(1){if((i|0)>=(A|0))break;if((a[h+(a[w+(i<<2)>>2]<<2)>>2]|0)<(a[r>>2]|0)){e=0;break A}else i=i+1|0}while(1){if((e|0)>=(A|0)){i=f;continue e}v=+s[l+(e<<3)>>3]-+s[n+(a[h+(a[w+(e<<2)>>2]<<2)>>2]<<3)>>3];if((v>=0.0?v:-v)>1.0e-07){e=0;break A}else e=e+1|0}}}case 2:{l=a[A+28>>2]|0;t=a[g+28>>2]|0;e=0;while(1){if((e|0)>(k|0)){i=0;break}if((a[c+(e<<2)>>2]|0)==(a[u+(e<<2)>>2]|0))e=e+1|0;else{e=0;break A}}e:while(1){if((i|0)>=(k|0)){d=54;break A}f=c+(i<<2)|0;n=i+1|0;A=c+(n<<2)|0;e=a[f>>2]|0;while(1){if((e|0)>=(a[A>>2]|0))break;a[h+(a[b+(e<<2)>>2]<<2)>>2]=e;e=e+1|0}i=a[u+(i<<2)>>2]|0;r=a[u+(n<<2)>>2]|0;e=i;while(1){if((e|0)>=(r|0)){e=i;break}if((a[h+(a[w+(e<<2)>>2]<<2)>>2]|0)<(a[f>>2]|0)){e=0;break A}else e=e+1|0}while(1){if((e|0)>=(r|0)){i=n;continue e}i=e<<1;A=a[h+(a[w+(e<<2)>>2]<<2)>>2]<<1;v=+s[t+(i<<3)>>3]-+s[l+(A<<3)>>3];if((v>=0.0?v:-v)>1.0e-07){e=0;break A}v=+s[t+((i|1)<<3)>>3]-+s[l+((A|1)<<3)>>3];if((v>=0.0?v:-v)>1.0e-07){e=0;break A}else e=e+1|0}}}case 4:{f=a[A+28>>2]|0;n=a[g+28>>2]|0;e=0;e:while(1){if((e|0)>=(k|0)){d=54;break A}r=c+(e<<2)|0;l=e+1|0;A=c+(l<<2)|0;i=a[r>>2]|0;while(1){if((i|0)>=(a[A>>2]|0))break;a[h+(a[b+(i<<2)>>2]<<2)>>2]=i;i=i+1|0}e=a[u+(e<<2)>>2]|0;A=a[u+(l<<2)>>2]|0;i=e;while(1){if((i|0)>=(A|0))break;if((a[h+(a[w+(i<<2)>>2]<<2)>>2]|0)<(a[r>>2]|0)){e=0;break A}else i=i+1|0}while(1){if((e|0)>=(A|0)){e=l;continue e}if((a[n+(e<<2)>>2]|0)==(a[f+(a[h+(a[w+(e<<2)>>2]<<2)>>2]<<2)>>2]|0))e=e+1|0;else{e=0;break A}}}}case 8:{A=0;e:while(1){if((A|0)>=(k|0)){d=54;break A}r=c+(A<<2)|0;f=A+1|0;i=c+(f<<2)|0;e=a[r>>2]|0;while(1){if((e|0)>=(a[i>>2]|0))break;a[h+(a[b+(e<<2)>>2]<<2)>>2]=e;e=e+1|0}i=a[u+(f<<2)>>2]|0;e=a[u+(A<<2)>>2]|0;while(1){if((e|0)>=(i|0)){A=f;continue e}if((a[h+(a[w+(e<<2)>>2]<<2)>>2]|0)<(a[r>>2]|0)){e=0;break A}else e=e+1|0}}}default:e=0}}while(0);if((d|0)==54){i=a[B>>2]|0;if(o)e=1;else{a[B>>2]=i|2;e=3}a[B>>2]=e|i;e=1}L2(h);rq(g)}else e=0;else e=1}else e=0;return e|0}function sq(A){A=A|0;var e=0,i=0,r=0,f=0;if(!A)e=0;else{r=A+8|0;f=A+40|0;e=uq(a[A>>2]|0,a[A+4>>2]|0,a[r>>2]|0,a[A+16>>2]|0,a[f>>2]|0,a[A+32>>2]|0)|0;i=A+20|0;W6(a[e+20>>2]|0,a[i>>2]|0,(a[A>>2]<<2)+4|0)|0;W6(a[e+24>>2]|0,a[A+24>>2]|0,a[(a[i>>2]|0)+(a[A>>2]<<2)>>2]<<2|0)|0;i=a[A+28>>2]|0;if(i|0)W6(a[e+28>>2]|0,i|0,U(a[r>>2]|0,a[f>>2]|0)|0)|0;a[e+36>>2]=a[A+36>>2];a[e+8>>2]=a[r>>2]}return e|0}function bq(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0;o=a[A+20>>2]|0;d=a[A+24>>2]|0;B=a[e+20>>2]|0;g=a[e+24>>2]|0;if(!((A|0)!=0&(e|0)!=0))gA(94981,94943,973,94988);h=a[A+32>>2]|0;if(!((h|0)==1?(h|0)==(a[e+32>>2]|0):0))gA(95005,94943,974,94988);r=A+16|0;i=a[r>>2]|0;if((i|0)!=(a[e+16>>2]|0))gA(95055,94943,975,94988);k=a[A>>2]|0;f=a[A+4>>2]|0;if(((k|0)==(a[e>>2]|0)?(f|0)==(a[e+4>>2]|0):0)?(v=fq(k,f,(a[e+8>>2]|0)+(a[A+8>>2]|0)|0,i,1)|0,v|0):0){u=a[v+20>>2]|0;w=a[v+24>>2]|0;h=$F(f<<2)|0;i=0;while(1){if((i|0)>=(f|0))break;a[h+(i<<2)>>2]=-1;i=i+1|0}a[u>>2]=0;A:do{switch(a[r>>2]|0){case 1:{b=a[A+28>>2]|0;l=a[e+28>>2]|0;t=a[v+28>>2]|0;i=0;f=0;while(1){if((f|0)>=(k|0))break A;c=f+1|0;r=o+(c<<2)|0;A=a[o+(f<<2)>>2]|0;while(1){if((A|0)>=(a[r>>2]|0))break;n=d+(A<<2)|0;a[h+(a[n>>2]<<2)>>2]=i;a[w+(i<<2)>>2]=a[n>>2];s[t+(i<<3)>>3]=+s[b+(A<<3)>>3];A=A+1|0;i=i+1|0}e=B+(c<<2)|0;n=u+(f<<2)|0;f=a[B+(f<<2)>>2]|0;while(1){if((f|0)>=(a[e>>2]|0))break;A=a[g+(f<<2)>>2]|0;r=a[h+(A<<2)>>2]|0;if((r|0)<(a[n>>2]|0)){a[w+(i<<2)>>2]=A;s[t+(i<<3)>>3]=+s[l+(f<<3)>>3];i=i+1|0}else{r=t+(r<<3)|0;s[r>>3]=+s[r>>3]+ +s[l+(f<<3)>>3]}f=f+1|0}a[u+(c<<2)>>2]=i;f=c}}case 2:{b=a[A+28>>2]|0;c=a[e+28>>2]|0;l=a[v+28>>2]|0;f=0;i=0;while(1){if((f|0)>=(k|0))break A;t=f+1|0;r=o+(t<<2)|0;A=a[o+(f<<2)>>2]|0;while(1){if((A|0)>=(a[r>>2]|0))break;e=d+(A<<2)|0;a[h+(a[e>>2]<<2)>>2]=i;a[w+(i<<2)>>2]=a[e>>2];e=A<<1;n=i<<1;s[l+(n<<3)>>3]=+s[b+(e<<3)>>3];s[l+((n|1)<<3)>>3]=+s[b+((e|1)<<3)>>3];A=A+1|0;i=i+1|0}e=B+(t<<2)|0;n=u+(f<<2)|0;f=a[B+(f<<2)>>2]|0;while(1){if((f|0)>=(a[e>>2]|0))break;A=a[g+(f<<2)>>2]|0;r=a[h+(A<<2)>>2]|0;if((r|0)<(a[n>>2]|0)){a[w+(i<<2)>>2]=A;A=f<<1;r=i<<1;s[l+(r<<3)>>3]=+s[c+(A<<3)>>3];s[l+((r|1)<<3)>>3]=+s[c+((A|1)<<3)>>3];i=i+1|0}else{A=f<<1;r=r<<1;E=l+(r<<3)|0;s[E>>3]=+s[E>>3]+ +s[c+(A<<3)>>3];r=l+((r|1)<<3)|0;s[r>>3]=+s[r>>3]+ +s[c+((A|1)<<3)>>3]}f=f+1|0}a[u+(t<<2)>>2]=i;f=t}}case 4:{b=a[A+28>>2]|0;l=a[e+28>>2]|0;t=a[v+28>>2]|0;f=0;i=0;while(1){if((f|0)>=(k|0))break A;c=f+1|0;r=o+(c<<2)|0;A=a[o+(f<<2)>>2]|0;while(1){if((A|0)>=(a[r>>2]|0))break;E=d+(A<<2)|0;a[h+(a[E>>2]<<2)>>2]=i;a[w+(i<<2)>>2]=a[E>>2];a[t+(i<<2)>>2]=a[b+(A<<2)>>2];A=A+1|0;i=i+1|0}e=B+(c<<2)|0;n=u+(f<<2)|0;f=a[B+(f<<2)>>2]|0;while(1){if((f|0)>=(a[e>>2]|0))break;A=a[g+(f<<2)>>2]|0;r=a[h+(A<<2)>>2]|0;if((r|0)<(a[n>>2]|0)){a[w+(i<<2)>>2]=A;a[t+(i<<2)>>2]=a[l+(f<<2)>>2];i=i+1|0}else{E=t+(r<<2)|0;a[E>>2]=(a[E>>2]|0)+(a[l+(f<<2)>>2]|0)}f=f+1|0}a[u+(c<<2)>>2]=i;f=c}}case 8:{i=0;f=0;while(1){if((f|0)>=(k|0))break A;l=f+1|0;r=o+(l<<2)|0;A=a[o+(f<<2)>>2]|0;while(1){if((A|0)>=(a[r>>2]|0))break;E=d+(A<<2)|0;a[h+(a[E>>2]<<2)>>2]=i;a[w+(i<<2)>>2]=a[E>>2];i=i+1|0;A=A+1|0}e=B+(l<<2)|0;n=u+(f<<2)|0;r=a[B+(f<<2)>>2]|0;while(1){if((r|0)>=(a[e>>2]|0))break;A=a[g+(r<<2)>>2]|0;if((a[h+(A<<2)>>2]|0)<(a[n>>2]|0)){a[w+(i<<2)>>2]=A;i=i+1|0}r=r+1|0}a[u+(l<<2)>>2]=i;f=l}}default:i=0}}while(0);a[v+8>>2]=i;L2(h);return v|0}return 0}function uq(A,e,i,r,f,a){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;A=nq(A,e,r,f,a)|0;if((i|0)>0)lq(A,i)|0;return A|0}function wq(A,e){A=A|0;e=e|0;var i=0;if(!(cq(A,e)|0)){e=iq(A)|0;if(!e)e=0;else{i=bq(A,e)|0;rq(e);e=i+36|0;a[e>>2]=a[e>>2]|3;e=i;i=5}}else{e=sq(A)|0;i=5}if((i|0)==5)e=kq(e)|0;return e|0}function kq(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0,u=0;A:do{if(!A)A=0;else{c=a[A+20>>2]|0;b=a[A+24>>2]|0;i=a[c>>2]|0;e:do{switch(a[A+16>>2]|0){case 1:{t=a[A+28>>2]|0;l=0;e=0;while(1){if((l|0)>=(a[A>>2]|0))break e;f=l+1|0;n=c+(f<<2)|0;while(1){r=a[n>>2]|0;if((i|0)>=(r|0))break;r=a[b+(i<<2)>>2]|0;if((r|0)!=(l|0)){a[b+(e<<2)>>2]=r;s[t+(e<<3)>>3]=+s[t+(i<<3)>>3];e=e+1|0}i=i+1|0}a[n>>2]=e;l=f;i=r}}case 2:{t=a[A+28>>2]|0;l=0;e=0;while(1){if((l|0)>=(a[A>>2]|0))break e;f=l+1|0;n=c+(f<<2)|0;while(1){r=a[n>>2]|0;if((i|0)>=(r|0))break;r=a[b+(i<<2)>>2]|0;if((r|0)!=(l|0)){a[b+(e<<2)>>2]=r;u=i<<1;r=e<<1;s[t+(r<<3)>>3]=+s[t+(u<<3)>>3];s[t+((r|1)<<3)>>3]=+s[t+((u|1)<<3)>>3];e=e+1|0}i=i+1|0}a[n>>2]=e;l=f;i=r}}case 4:{t=a[A+28>>2]|0;l=0;e=0;while(1){if((l|0)>=(a[A>>2]|0))break e;f=l+1|0;n=c+(f<<2)|0;while(1){r=a[n>>2]|0;if((i|0)>=(r|0))break;r=a[b+(i<<2)>>2]|0;if((r|0)!=(l|0)){a[b+(e<<2)>>2]=r;a[t+(e<<2)>>2]=a[t+(i<<2)>>2];e=e+1|0}i=i+1|0}a[n>>2]=e;l=f;i=r}}case 8:{l=0;e=0;while(1){if((l|0)>=(a[A>>2]|0))break e;f=l+1|0;n=c+(f<<2)|0;while(1){r=a[n>>2]|0;if((i|0)>=(r|0))break;r=a[b+(i<<2)>>2]|0;if((r|0)!=(l|0)){a[b+(e<<2)>>2]=r;e=e+1|0}i=i+1|0}a[n>>2]=e;l=f;i=r}}default:{A=0;break A}}}while(0);a[A+8>>2]=e}}while(0);return A|0}function oq(A){A=A|0;if((a[A+32>>2]|0)==2)return hq(a[A+8>>2]|0,a[A>>2]|0,a[A+4>>2]|0,a[A+20>>2]|0,a[A+24>>2]|0,a[A+28>>2]|0,a[A+16>>2]|0,a[A+40>>2]|0)|0;else gA(95100,94943,803,95126);return 0}function hq(A,e,i,r,f,a,n,l){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;n=n|0;l=l|0;return yb(A,e,i,r,f,a,n,l,1)|0}function dq(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0;c=A+72|0;s=A+352|0;b=A+356|0;u=A+360|0;t=0;A:while(1){l=i-e|0;if((l|0)<=0){i=-1;break}switch(r[c+(n[e>>0]|0)>>0]|0){case 8:case 1:case 0:{w=16;break A}case 5:{if((l|0)<2){i=-2;break A}if(Q5[a[s>>2]&127](A,e)|0){w=6;break A}l=t;e=e+2|0;t=l;continue A}case 6:{if((l|0)<3){i=-2;break A}if(Q5[a[b>>2]&127](A,e)|0){w=10;break A}l=t;e=e+3|0;t=l;continue A}case 7:{if((l|0)<4){i=-2;break A}if(Q5[a[u>>2]&127](A,e)|0){w=14;break A}l=t;e=e+4|0;t=l;continue A}case 2:{l=e+1|0;if((i-l|0)<=0){i=-1;break A}if((r[l>>0]|0)!=33){k=t;e=l;t=k;continue A}l=e+2|0;if((i-l|0)<=0){i=-1;break A}k=(r[l>>0]|0)==91;t=t+(k&1)|0;e=k?e+3|0:l;continue A}case 4:{l=e+1|0;if((i-l|0)<=0){i=-1;break A}if((r[l>>0]|0)!=93){k=t;e=l;t=k;continue A}l=e+2|0;if((i-l|0)<=0){i=-1;break A}if((r[l>>0]|0)!=62){k=t;e=l;t=k;continue A}e=e+3|0;if(!t){w=26;break A}t=t+-1|0;continue A}default:{k=t;e=e+1|0;t=k;continue A}}}if((w|0)==6){a[f>>2]=e;i=0}else if((w|0)==10){a[f>>2]=e;i=0}else if((w|0)==14){a[f>>2]=e;i=0}else if((w|0)==16){a[f>>2]=e;i=0}else if((w|0)==26){a[f>>2]=e;i=42}return i|0}function Bq(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;do{if(e>>>0>>0){s=i;if((s-e|0)>0){b=A+72|0;t=e;A:while(1){if((s-t|0)<=0){c=24;break}switch(r[b+(n[t>>0]|0)>>0]|0){case 3:{c=8;break A}case 2:{c=11;break A}case 10:{c=12;break A}case 9:{c=15;break A}case 21:{c=19;break A}case 5:{l=2;break}case 6:{l=3;break}case 7:{l=4;break}default:l=1}t=t+l|0}if((c|0)==8)if((t|0)==(e|0)){l=Wq(A,e+1|0,i,f)|0;break}else{a[f>>2]=t;l=6;break}else if((c|0)==11){a[f>>2]=t;l=0;break}else if((c|0)==12)if((t|0)==(e|0)){a[f>>2]=e+1;l=7;break}else{a[f>>2]=t;l=6;break}else if((c|0)==15){if((t|0)!=(e|0)){a[f>>2]=t;l=6;break}l=e+1|0;if((s-l|0)<=0){l=-3;break}a[f>>2]=(r[b+(n[l>>0]|0)>>0]|0)==10?e+2|0:l;l=7;break}else if((c|0)==19)if((t|0)==(e|0)){a[f>>2]=e+1;l=39;break}else{a[f>>2]=t;l=6;break}else if((c|0)==24){a[f>>2]=t;l=6;break}}else l=-1}else l=-4}while(0);return l|0}function gq(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;do{if(e>>>0>>0){s=i;if((s-e|0)>0){b=A+72|0;t=e;A:while(1){if((s-t|0)<=0){c=23;break}switch(r[b+(n[t>>0]|0)>>0]|0){case 3:{c=8;break A}case 30:{c=11;break A}case 10:{c=14;break A}case 9:{c=17;break A}case 5:{l=2;break}case 6:{l=3;break}case 7:{l=4;break}default:l=1}t=t+l|0}if((c|0)==8)if((t|0)==(e|0)){l=Wq(A,e+1|0,i,f)|0;break}else{a[f>>2]=t;l=6;break}else if((c|0)==11)if((t|0)==(e|0)){l=zq(A,e+1|0,i,f)|0;l=(l|0)==22?0:l;break}else{a[f>>2]=t;l=6;break}else if((c|0)==14)if((t|0)==(e|0)){a[f>>2]=e+1;l=7;break}else{a[f>>2]=t;l=6;break}else if((c|0)==17){if((t|0)!=(e|0)){a[f>>2]=t;l=6;break}l=e+1|0;if((s-l|0)<=0){l=-3;break}a[f>>2]=(r[b+(n[l>>0]|0)>>0]|0)==10?e+2|0:l;l=7;break}else if((c|0)==23){a[f>>2]=t;l=6;break}}else l=-1}else l=-4}while(0);return l|0}function vq(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var a=0,n=0;a=i;A=e;while(1){e=r[f>>0]|0;if(!(e<<24>>24)){n=6;break}if((a-A|0)<1){A=0;break}if((r[A>>0]|0)!=e<<24>>24){A=0;break}f=f+1|0;A=A+1|0}if((n|0)==6)A=(A|0)==(i|0)&1;return A|0}function Eq(A,e){A=A|0;e=e|0;var i=0,f=0;f=A+72|0;A=e;A:while(1){switch(r[f+(n[A>>0]|0)>>0]|0){case 5:{i=2;break}case 6:{i=3;break}case 7:{i=4;break}case 27:case 26:case 25:case 24:case 23:case 22:case 29:{i=1;break}default:break A}A=A+i|0}return A-e|0}function Cq(A,e){A=A|0;e=e|0;A=A+72|0;A:while(1){switch(r[A+(n[e>>0]|0)>>0]|0){case 21:case 9:case 10:break;default:break A}e=e+1|0}return e|0}function Iq(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0;b=A+72|0;c=0;s=0;A=1;A:while(1){l=e+1|0;t=r[l>>0]|0;do{switch(r[b+(t&255)>>0]|0){case 5:{if(!A)if((s|0)<(i|0)){a[f+(s<<4)>>2]=l;r[f+(s<<4)+12>>0]=1;A=1}else A=1;l=s;t=c;e=e+2|0;s=l;c=t;continue A}case 6:{if(!A)if((s|0)<(i|0)){a[f+(s<<4)>>2]=l;r[f+(s<<4)+12>>0]=1;A=1}else A=1;l=s;t=c;e=e+3|0;s=l;c=t;continue A}case 7:{if(!A)if((s|0)<(i|0)){a[f+(s<<4)>>2]=l;r[f+(s<<4)+12>>0]=1;A=1}else A=1;l=s;t=c;e=e+4|0;s=l;c=t;continue A}case 24:case 22:case 29:{if(A|0){k=A;w=s;t=c;e=l;A=k;s=w;c=t;continue A}if((s|0)>=(i|0)){w=s;k=c;A=1;e=l;s=w;c=k;continue A}a[f+(s<<4)>>2]=l;r[f+(s<<4)+12>>0]=1;w=s;k=c;A=1;e=l;s=w;c=k;continue A}case 12:{if((A|0)!=2){if((s|0)>=(i|0)){k=s;c=12;A=2;e=l;s=k;continue A}a[f+(s<<4)+4>>2]=e+2;k=s;c=12;A=2;e=l;s=k;continue A}if((c|0)!=12){w=s;k=c;A=2;e=l;s=w;c=k;continue A}if((s|0)<(i|0))a[f+(s<<4)+8>>2]=l;c=12;s=s+1|0;A=0;e=l;continue A}case 13:{if((A|0)!=2){if((s|0)>=(i|0)){k=s;c=13;A=2;e=l;s=k;continue A}a[f+(s<<4)+4>>2]=e+2;k=s;c=13;A=2;e=l;s=k;continue A}if((c|0)!=13){w=s;k=c;A=2;e=l;s=w;c=k;continue A}if((s|0)<(i|0))a[f+(s<<4)+8>>2]=l;c=13;s=s+1|0;A=0;e=l;continue A}case 3:{if((s|0)>=(i|0)){t=A;w=s;k=c;e=l;A=t;s=w;c=k;continue A}r[f+(s<<4)+12>>0]=0;t=A;w=s;k=c;e=l;A=t;s=w;c=k;continue A}case 21:{switch(A|0){case 1:{w=s;k=c;A=0;e=l;s=w;c=k;continue A}case 2:break;default:{t=A;w=s;k=c;e=l;A=t;s=w;c=k;continue A}}if((s|0)>=(i|0)){w=s;k=c;A=2;e=l;s=w;c=k;continue A}A=f+(s<<4)+12|0;if(!(r[A>>0]|0)){w=s;k=c;A=2;e=l;s=w;c=k;continue A}if(((t<<24>>24==32?(l|0)!=(a[f+(s<<4)+4>>2]|0):0)?(u=r[e+2>>0]|0,u<<24>>24!=32):0)?(c|0)!=(n[b+(u&255)>>0]|0):0){w=s;k=c;A=2;e=l;s=w;c=k;continue A}r[A>>0]=0;w=s;k=c;A=2;e=l;s=w;c=k;continue A}case 10:case 9:{switch(A|0){case 1:{w=s;k=c;A=0;e=l;s=w;c=k;continue A}case 2:break;default:{t=A;w=s;k=c;e=l;A=t;s=w;c=k;continue A}}if((s|0)>=(i|0)){w=s;k=c;A=2;e=l;s=w;c=k;continue A}r[f+(s<<4)+12>>0]=0;w=s;k=c;A=2;e=l;s=w;c=k;continue A}case 17:case 11:if((A|0)==2){w=s;k=c;A=2;e=l;s=w;c=k;continue A}else break A;default:{t=A;w=s;k=c;e=l;A=t;s=w;c=k;continue A}}}while(0)}return s|0}function Zq(A,e){A=A|0;e=e|0;var i=0,f=0;A=e+2|0;i=r[A>>0]|0;A:do{if(i<<24>>24==120){i=e+3|0;A=0;while(1){e:while(1){f=r[i>>0]|0;e=f<<24>>24;if(f<<24>>24==59){f=14;break A}switch(e|0){case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:case 48:{f=7;break e}case 70:case 69:case 68:case 67:case 66:case 65:{f=8;break e}case 102:case 101:case 100:case 99:case 98:case 97:{f=9;break e}default:{}}i=i+1|0}if((f|0)==7){f=0;A=e+-48|A<<4}else if((f|0)==8){f=0;A=(A<<4)+-55+e|0}else if((f|0)==9){f=0;A=(A<<4)+-87+e|0}if((A|0)<1114112)i=i+1|0;else{A=-1;break}}}else{e=A;A=0;while(1){if(i<<24>>24==59){f=14;break A}A=(i<<24>>24)+-48+(A*10|0)|0;if((A|0)>=1114112){A=-1;break A}i=e+1|0;e=i;i=r[i>>0]|0}}}while(0);if((f|0)==14)A=vb(A)|0;return A|0}function Gq(A,e,i){A=A|0;e=e|0;i=i|0;var f=0;A:do{switch(i-e|0){case 2:{if((r[e+1>>0]|0)==116){A=r[e>>0]|0;A=A<<24>>24==108?60:A<<24>>24==103?62:0}else f=14;break}case 3:{if(((r[e>>0]|0)==97?(r[e+1>>0]|0)==109:0)?(r[e+2>>0]|0)==112:0)A=38;else f=14;break}case 4:switch(r[e>>0]|0){case 113:{if((r[e+1>>0]|0)!=117){f=14;break A}if((r[e+2>>0]|0)!=111){f=14;break A}if((r[e+3>>0]|0)==116){A=34;break A}else{f=14;break A}}case 97:{if((r[e+1>>0]|0)!=112){f=14;break A}if((r[e+2>>0]|0)!=111){f=14;break A}if((r[e+3>>0]|0)==115){A=39;break A}else{f=14;break A}}default:{f=14;break A}}default:f=14}}while(0);if((f|0)==14)A=0;return A|0}function mq(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0;l=A+72|0;t=f+4|0;while(1){if((i-e|0)<=0)break;switch(r[l+(n[e>>0]|0)>>0]|0){case 5:{e=e+2|0;break}case 6:{e=e+3|0;break}case 7:{e=e+4|0;break}case 10:{a[t>>2]=-1;a[f>>2]=(a[f>>2]|0)+1;e=e+1|0;break}case 9:{a[f>>2]=(a[f>>2]|0)+1;A=e+1|0;if((i-A|0)>0)e=(r[l+(n[A>>0]|0)>>0]|0)==10?e+2|0:A;else e=A;a[t>>2]=-1;break}default:e=e+1|0}a[t>>2]=(a[t>>2]|0)+1}return}function Qq(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0;n=i+-1|0;A=A+72|0;A:while(1){e=e+1|0;if((n-e|0)<=0){e=1;break}i=r[e>>0]|0;switch(r[A+(i&255)>>0]|0){case 23:case 19:case 30:case 33:case 16:case 18:case 10:case 9:case 15:case 14:case 17:case 35:case 34:case 32:case 31:case 13:case 27:case 24:case 25:continue A;case 21:if(i<<24>>24==9){l=7;break A}else continue A;case 22:case 26:{if(i<<24>>24>=0)continue A;break}default:{}}switch(i<<24>>24|0){case 64:case 36:break;default:{l=7;break A}}}if((l|0)==7){a[f>>2]=e;e=0}return e|0}function Lq(A,e,i,f,l){A=A|0;e=e|0;i=i|0;f=f|0;l=l|0;var t=0,c=0,s=0;t=l;while(1){c=a[e>>2]|0;if((c|0)==(i|0)){A=0;break}s=n[c>>0]|0;A=a[f>>2]|0;if(!(s&128)){if((A|0)==(l|0)){A=2;break}a[e>>2]=c+1;c=r[c>>0]|0;s=a[f>>2]|0;a[f>>2]=s+1;r[s>>0]=c;continue}else{if((t-A|0)<2){A=2;break}a[f>>2]=A+1;r[A>>0]=s>>>6|192;c=a[f>>2]|0;a[f>>2]=c+1;r[c>>0]=s&63|128;a[e>>2]=(a[e>>2]|0)+1;continue}}return A|0}function yq(A,e,i,r,l){A=A|0;e=e|0;i=i|0;r=r|0;l=l|0;var t=0,c=0;while(1){A=a[e>>2]|0;t=A>>>0>>0;c=a[r>>2]|0;if(!(t&c>>>0>>0))break;a[e>>2]=A+1;t=n[A>>0]|0;c=a[r>>2]|0;a[r>>2]=c+2;f[c>>1]=t}return((c|0)!=(l|0)|t^1?0:2)|0}function Wq(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;s=i;l=s-e|0;A:do{if((l|0)>0){b=A+72|0;switch(r[b+(n[e>>0]|0)>>0]|0){case 29:{a[f>>2]=e;i=0;break A}case 24:case 22:{i=1;break}case 5:{if((l|0)<2){i=-2;break A}if(!(Q5[a[A+340>>2]&127](A,e)|0)){a[f>>2]=e;i=0;break A}else i=2;break}case 6:{if((l|0)<3){i=-2;break A}if(!(Q5[a[A+344>>2]&127](A,e)|0)){a[f>>2]=e;i=0;break A}else i=3;break}case 7:{if((l|0)<4){i=-2;break A}if(!(Q5[a[A+348>>2]&127](A,e)|0)){a[f>>2]=e;i=0;break A}else i=4;break}case 19:{i=Yq(A,e+1|0,i,f)|0;break A}default:{a[f>>2]=e;i=0;break A}}l=A+328|0;t=A+332|0;c=A+336|0;e=e+i|0;e:while(1){i=s-e|0;if((i|0)<=0){i=-1;break A}switch(r[b+(n[e>>0]|0)>>0]|0){case 29:{l=18;break e}case 18:{l=29;break e}case 27:case 26:case 25:case 24:case 22:{i=1;break}case 5:{if((i|0)<2){i=-2;break A}if(!(Q5[a[l>>2]&127](A,e)|0)){l=21;break e}else i=2;break}case 6:{if((i|0)<3){i=-2;break A}if(!(Q5[a[t>>2]&127](A,e)|0)){l=24;break e}else i=3;break}case 7:{if((i|0)<4){i=-2;break A}if(!(Q5[a[c>>2]&127](A,e)|0)){l=27;break e}else i=4;break}default:{l=30;break e}}e=e+i|0}if((l|0)==18){a[f>>2]=e;i=0;break}else if((l|0)==21){a[f>>2]=e;i=0;break}else if((l|0)==24){a[f>>2]=e;i=0;break}else if((l|0)==27){a[f>>2]=e;i=0;break}else if((l|0)==29){a[f>>2]=e+1;i=9;break}else if((l|0)==30){a[f>>2]=e;i=0;break}}else i=-1}while(0);return i|0}function zq(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;l=i-e|0;A:do{if((l|0)>0){b=A+72|0;switch(r[b+(n[e>>0]|0)>>0]|0){case 29:{a[f>>2]=e;i=0;break A}case 24:case 22:{l=1;break}case 5:{if((l|0)<2){i=-2;break A}if(!(Q5[a[A+340>>2]&127](A,e)|0)){a[f>>2]=e;i=0;break A}else l=2;break}case 6:{if((l|0)<3){i=-2;break A}if(!(Q5[a[A+344>>2]&127](A,e)|0)){a[f>>2]=e;i=0;break A}else l=3;break}case 7:{if((l|0)<4){i=-2;break A}if(!(Q5[a[A+348>>2]&127](A,e)|0)){a[f>>2]=e;i=0;break A}else l=4;break}case 30:case 9:case 10:case 21:{a[f>>2]=e;i=22;break A}default:{a[f>>2]=e;i=0;break A}}t=A+328|0;c=A+332|0;s=A+336|0;e=e+l|0;e:while(1){l=i-e|0;if((l|0)<=0){i=-1;break A}switch(r[b+(n[e>>0]|0)>>0]|0){case 29:{l=18;break e}case 18:{l=29;break e}case 27:case 26:case 25:case 24:case 22:{l=1;break}case 5:{if((l|0)<2){i=-2;break A}if(!(Q5[a[t>>2]&127](A,e)|0)){l=21;break e}else l=2;break}case 6:{if((l|0)<3){i=-2;break A}if(!(Q5[a[c>>2]&127](A,e)|0)){l=24;break e}else l=3;break}case 7:{if((l|0)<4){i=-2;break A}if(!(Q5[a[s>>2]&127](A,e)|0)){l=27;break e}else l=4;break}default:{l=30;break e}}e=e+l|0}if((l|0)==18){a[f>>2]=e;i=0;break}else if((l|0)==21){a[f>>2]=e;i=0;break}else if((l|0)==24){a[f>>2]=e;i=0;break}else if((l|0)==27){a[f>>2]=e;i=0;break}else if((l|0)==29){a[f>>2]=e+1;i=28;break}else if((l|0)==30){a[f>>2]=e;i=0;break}}else i=-1}while(0);return i|0}function Yq(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0;t=i;A:do{if((t-e|0)>0){l=r[e>>0]|0;if(l<<24>>24==120){A=Dq(A,e+1|0,i,f)|0;break}i=A+72|0;if((r[i+(l&255)>>0]|0)!=25){a[f>>2]=e;A=0;break}e:while(1){A=e+1|0;if((t-A|0)<=0){A=-1;break A}switch(r[i+(n[A>>0]|0)>>0]|0){case 25:{e=A;break}case 18:{i=8;break e}default:{i=9;break e}}}if((i|0)==8){a[f>>2]=e+2;A=10;break}else if((i|0)==9){a[f>>2]=A;A=0;break}}else A=-1}while(0);return A|0}function Dq(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0;A:do{if((i-e|0)>0){A=A+72|0;if((r[A+(n[e>>0]|0)>>0]&-2)<<24>>24!=24){a[f>>2]=e;i=0;break}e:while(1){l=e+1|0;if((i-l|0)<=0){i=-1;break A}switch(r[A+(n[l>>0]|0)>>0]|0){case 24:case 25:{e=l;break}case 18:{A=6;break e}default:{A=7;break e}}}if((A|0)==6){a[f>>2]=e+2;i=10;break}else if((A|0)==7){a[f>>2]=l;i=0;break}}else i=-1}while(0);return i|0}function Mq(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0;h=i;l=h-e|0;A:do{if((l|0)>0){o=A+72|0;switch(r[o+(n[e>>0]|0)>>0]|0){case 29:{a[f>>2]=e;l=0;break A}case 24:case 22:{l=1;break}case 5:{if((l|0)<2){l=-2;break A}if(!(Q5[a[A+340>>2]&127](A,e)|0)){a[f>>2]=e;l=0;break A}else l=2;break}case 6:{if((l|0)<3){l=-2;break A}if(!(Q5[a[A+344>>2]&127](A,e)|0)){a[f>>2]=e;l=0;break A}else l=3;break}case 7:{if((l|0)<4){l=-2;break A}if(!(Q5[a[A+348>>2]&127](A,e)|0)){a[f>>2]=e;l=0;break A}else l=4;break}case 16:{l=e+1|0;if((h-l|0)<=0){l=-1;break A}switch(r[o+(n[l>>0]|0)>>0]|0){case 27:{l=Fq(A,e+2|0,i,f)|0;break A}case 20:{l=Vq(e+2|0,i,f)|0;break A}default:{a[f>>2]=l;l=0;break A}}}case 15:{l=Jq(A,e+1|0,i,f)|0;break A}case 17:{l=pq(A,e+1|0,i,f)|0;break A}default:{a[f>>2]=e;l=0;break A}}c=A+328|0;s=A+332|0;b=A+336|0;u=A+340|0;w=A+344|0;k=A+348|0;t=0;l=e+l|0;e:while(1){e=h-l|0;if((e|0)<=0){l=-1;break A}i:do{switch(r[o+(n[l>>0]|0)>>0]|0){case 29:{d=24;break e}case 10:case 9:case 21:{d=50;break e}case 11:{d=64;break e}case 17:break e;case 27:case 26:case 25:case 24:case 22:{e=1;break}case 5:{if((e|0)<2){l=-2;break A}if(!(Q5[a[c>>2]&127](A,l)|0)){d=27;break e}else e=2;break}case 6:{if((e|0)<3){l=-2;break A}if(!(Q5[a[s>>2]&127](A,l)|0)){d=30;break e}else e=3;break}case 7:{if((e|0)<4){l=-2;break A}if(!(Q5[a[b>>2]&127](A,l)|0)){d=33;break e}else e=4;break}case 23:{if(t|0){d=35;break e}t=l+1|0;e=h-t|0;if((e|0)<=0){l=-1;break A}switch(r[o+(n[t>>0]|0)>>0]|0){case 29:{d=38;break e}case 24:case 22:{t=1;e=2;break i}case 5:{if((e|0)<2){l=-2;break A}if(!(Q5[a[u>>2]&127](A,t)|0)){d=42;break e}else{t=1;e=3;break i}}case 6:{if((e|0)<3){l=-2;break A}if(!(Q5[a[w>>2]&127](A,t)|0)){d=45;break e}else{t=1;e=4;break i}}case 7:{if((e|0)<4){l=-2;break A}if(!(Q5[a[k>>2]&127](A,t)|0)){d=48;break e}else{t=1;e=5;break i}}default:{d=49;break e}}}default:{d=69;break e}}}while(0);l=l+e|0}e:switch(d|0){case 24:{a[f>>2]=l;l=0;break A}case 27:{a[f>>2]=l;l=0;break A}case 30:{a[f>>2]=l;l=0;break A}case 33:{a[f>>2]=l;l=0;break A}case 35:{a[f>>2]=l;l=0;break A}case 38:{a[f>>2]=t;l=0;break A}case 42:{a[f>>2]=t;l=0;break A}case 45:{a[f>>2]=t;l=0;break A}case 48:{a[f>>2]=t;l=0;break A}case 49:{a[f>>2]=t;l=0;break A}case 50:{i:while(1){d=0;t=l+1|0;e=h-t|0;if((e|0)<=0){l=-1;break A}switch(r[o+(n[t>>0]|0)>>0]|0){case 11:{l=t;d=64;break e}case 17:{l=t;break e}case 10:case 9:case 21:{l=t;d=50;break}case 29:{d=52;break i}case 24:case 22:{t=2;break i}case 5:{d=53;break i}case 6:{d=56;break i}case 7:{d=59;break i}default:{d=62;break i}}}if((d|0)==52){a[f>>2]=t;l=0;break A}else if((d|0)==53){if((e|0)<2){l=-2;break A}if(!(Q5[a[u>>2]&127](A,t)|0)){a[f>>2]=t;l=0;break A}else t=3}else if((d|0)==56){if((e|0)<3){l=-2;break A}if(!(Q5[a[w>>2]&127](A,t)|0)){a[f>>2]=t;l=0;break A}else t=4}else if((d|0)==59){if((e|0)<4){l=-2;break A}if(!(Q5[a[k>>2]&127](A,t)|0)){a[f>>2]=t;l=0;break A}else t=5}else if((d|0)==62){a[f>>2]=t;l=0;break A}l=Nq(A,l+t|0,i,f)|0;break A}case 69:{a[f>>2]=l;l=0;break A}}if((d|0)==64){a[f>>2]=l+1;l=2;break}t=l+1|0;if((h-t|0)>0)if((r[t>>0]|0)==62){a[f>>2]=l+2;l=4;break}else{a[f>>2]=t;l=0;break}else l=-1}else l=-1}while(0);return l|0}function Fq(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;A:do{if((i-e|0)>0){if((r[e>>0]|0)!=45){a[f>>2]=e;i=0;break}l=A+72|0;t=A+352|0;c=A+356|0;s=A+360|0;b=e+1|0;e:while(1){e=i-b|0;if((e|0)<=0){i=-1;break A}switch(r[l+(n[b>>0]|0)>>0]|0){case 8:case 1:case 0:{e=19;break e}case 5:{if((e|0)<2){i=-2;break A}if(Q5[a[t>>2]&127](A,b)|0){e=9;break e}b=b+2|0;continue e}case 6:{if((e|0)<3){i=-2;break A}if(Q5[a[c>>2]&127](A,b)|0){e=13;break e}b=b+3|0;continue e}case 7:{if((e|0)<4){i=-2;break A}if(Q5[a[s>>2]&127](A,b)|0){e=17;break e}b=b+4|0;continue e}case 27:{e=b+1|0;if((i-e|0)<=0){i=-1;break A}if((r[e>>0]|0)==45){e=22;break e}else{b=e;continue e}}default:{b=b+1|0;continue e}}}if((e|0)==9){a[f>>2]=b;i=0;break}else if((e|0)==13){a[f>>2]=b;i=0;break}else if((e|0)==17){a[f>>2]=b;i=0;break}else if((e|0)==19){a[f>>2]=b;i=0;break}else if((e|0)==22){e=b+2|0;if((i-e|0)<=0){i=-1;break}if((r[e>>0]|0)==62){a[f>>2]=b+3;i=13;break}else{a[f>>2]=e;i=0;break}}}else i=-1}while(0);return i|0}function Vq(A,e,i){A=A|0;e=e|0;i=i|0;if((e-A|0)>5){e=0;while(1){if((e|0)>=6){e=8;break}if((r[A>>0]|0)!=(r[144300+e>>0]|0)){e=0;break}e=e+1|0;A=A+1|0}a[i>>2]=A}else e=-1;return e|0}function Jq(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0;h=k;k=k+16|0;o=h;w=i;i=w-e|0;A:do{if((i|0)>0){u=A+72|0;switch(r[u+(n[e>>0]|0)>>0]|0){case 29:{a[f>>2]=e;i=0;break A}case 24:case 22:{i=1;break}case 5:{if((i|0)<2){i=-2;break A}if(!(Q5[a[A+340>>2]&127](A,e)|0)){a[f>>2]=e;i=0;break A}else i=2;break}case 6:{if((i|0)<3){i=-2;break A}if(!(Q5[a[A+344>>2]&127](A,e)|0)){a[f>>2]=e;i=0;break A}else i=3;break}case 7:{if((i|0)<4){i=-2;break A}if(!(Q5[a[A+348>>2]&127](A,e)|0)){a[f>>2]=e;i=0;break A}else i=4;break}default:{a[f>>2]=e;i=0;break A}}t=A+328|0;c=A+332|0;s=A+336|0;i=e+i|0;e:while(1){l=w-i|0;if((l|0)<=0){i=-1;break A}switch(r[u+(n[i>>0]|0)>>0]|0){case 29:{b=17;break e}case 10:case 9:case 21:{b=28;break e}case 15:{b=50;break e}case 27:case 26:case 25:case 24:case 22:{l=1;break}case 5:{if((l|0)<2){i=-2;break A}if(!(Q5[a[t>>2]&127](A,i)|0)){b=20;break e}else l=2;break}case 6:{if((l|0)<3){i=-2;break A}if(!(Q5[a[c>>2]&127](A,i)|0)){b=23;break e}else l=3;break}case 7:{if((l|0)<4){i=-2;break A}if(!(Q5[a[s>>2]&127](A,i)|0)){b=26;break e}else l=4;break}default:break e}i=i+l|0}if((b|0)==17){a[f>>2]=i;i=0;break}else if((b|0)==20){a[f>>2]=i;i=0;break}else if((b|0)==23){a[f>>2]=i;i=0;break}else if((b|0)==26){a[f>>2]=i;i=0;break}else if((b|0)==28){if(!(Rq(e,i,o)|0)){a[f>>2]=i;i=0;break}t=A+352|0;c=A+356|0;s=A+360|0;l=i+1|0;e:while(1){i=w-l|0;if((i|0)<=0){i=-1;break A}switch(r[u+(n[l>>0]|0)>>0]|0){case 8:case 1:case 0:{b=45;break e}case 5:{if((i|0)<2){i=-2;break A}if(Q5[a[t>>2]&127](A,l)|0){b=35;break e}l=l+2|0;continue e}case 6:{if((i|0)<3){i=-2;break A}if(Q5[a[c>>2]&127](A,l)|0){b=39;break e}l=l+3|0;continue e}case 7:{if((i|0)<4){i=-2;break A}if(Q5[a[s>>2]&127](A,l)|0){b=43;break e}l=l+4|0;continue e}case 15:{i=l+1|0;if((w-i|0)<=0){i=-1;break A}if((r[i>>0]|0)==62){b=48;break e}else{l=i;continue e}}default:{l=l+1|0;continue e}}}if((b|0)==35){a[f>>2]=l;i=0;break}else if((b|0)==39){a[f>>2]=l;i=0;break}else if((b|0)==43){a[f>>2]=l;i=0;break}else if((b|0)==45){a[f>>2]=l;i=0;break}else if((b|0)==48){a[f>>2]=l+2;i=a[o>>2]|0;break}}else if((b|0)==50){if(!(Rq(e,i,o)|0)){a[f>>2]=i;i=0;break}l=i+1|0;if((w-l|0)<=0){i=-1;break}if((r[l>>0]|0)==62){a[f>>2]=i+2;i=a[o>>2]|0;break}else i=l}a[f>>2]=i;i=0}else i=-1}while(0);k=h;return i|0}function pq(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;l=i-e|0;A:do{if((l|0)>0){b=A+72|0;switch(r[b+(n[e>>0]|0)>>0]|0){case 29:{a[f>>2]=e;i=0;break A}case 24:case 22:{l=1;break}case 5:{if((l|0)<2){i=-2;break A}if(!(Q5[a[A+340>>2]&127](A,e)|0)){a[f>>2]=e;i=0;break A}else l=2;break}case 6:{if((l|0)<3){i=-2;break A}if(!(Q5[a[A+344>>2]&127](A,e)|0)){a[f>>2]=e;i=0;break A}else l=3;break}case 7:{if((l|0)<4){i=-2;break A}if(!(Q5[a[A+348>>2]&127](A,e)|0)){a[f>>2]=e;i=0;break A}else l=4;break}default:{a[f>>2]=e;i=0;break A}}t=A+328|0;c=A+332|0;s=A+336|0;l=e+l|0;e:while(1){e=i-l|0;if((e|0)<=0){i=-1;break A}switch(r[b+(n[l>>0]|0)>>0]|0){case 29:{t=17;break e}case 10:case 9:case 21:{t=27;break e}case 11:{t=32;break e}case 23:case 27:case 26:case 25:case 24:case 22:{e=1;break}case 5:{if((e|0)<2){i=-2;break A}if(!(Q5[a[t>>2]&127](A,l)|0)){t=20;break e}else e=2;break}case 6:{if((e|0)<3){i=-2;break A}if(!(Q5[a[c>>2]&127](A,l)|0)){t=23;break e}else e=3;break}case 7:{if((e|0)<4){i=-2;break A}if(!(Q5[a[s>>2]&127](A,l)|0)){t=26;break e}else e=4;break}default:{t=33;break e}}l=l+e|0}if((t|0)==17){a[f>>2]=l;i=0;break}else if((t|0)==20){a[f>>2]=l;i=0;break}else if((t|0)==23){a[f>>2]=l;i=0;break}else if((t|0)==26){a[f>>2]=l;i=0;break}else if((t|0)==27){e:while(1){e=l+1|0;if((i-e|0)<=0){i=-1;break A}switch(r[b+(n[e>>0]|0)>>0]|0){case 10:case 9:case 21:{l=e;t=27;break}case 11:{t=29;break e}default:{t=30;break e}}}if((t|0)==29){a[f>>2]=l+2;i=5;break}else if((t|0)==30){a[f>>2]=e;i=0;break}}else if((t|0)==32){a[f>>2]=l+1;i=5;break}else if((t|0)==33){a[f>>2]=l;i=0;break}}else i=-1}while(0);return i|0}function Nq(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0;Z=k;k=k+16|0;E=Z;a[E>>2]=e;C=i;d=A+72|0;B=A+328|0;g=A+332|0;v=A+336|0;s=A+340|0;b=A+344|0;u=A+348|0;w=A+352|0;o=A+356|0;h=A+360|0;t=0;A:while(1){l=C-e|0;if((l|0)<=0){e=-1;break}e:do{switch(r[d+(n[e>>0]|0)>>0]|0){case 29:{I=4;break A}case 27:case 26:case 25:case 24:case 22:{l=e+1|0;a[E>>2]=l;c=t;e=l;t=c;continue A}case 5:{if((l|0)<2){e=-2;break A}if(!(Q5[a[B>>2]&127](A,e)|0)){I=8;break A}l=e+2|0;a[E>>2]=l;c=t;e=l;t=c;continue A}case 6:{if((l|0)<3){e=-2;break A}if(!(Q5[a[g>>2]&127](A,e)|0)){I=12;break A}l=e+3|0;a[E>>2]=l;c=t;e=l;t=c;continue A}case 7:{if((l|0)<4){e=-2;break A}if(!(Q5[a[v>>2]&127](A,e)|0)){I=16;break A}l=e+4|0;a[E>>2]=l;c=t;e=l;t=c;continue A}case 23:{if(t|0){I=19;break A}l=e+1|0;a[E>>2]=l;t=C-l|0;if((t|0)<=0){e=-1;break A}switch(r[d+(n[l>>0]|0)>>0]|0){case 29:{I=22;break A}case 24:case 22:{c=e+2|0;a[E>>2]=c;t=1;e=c;continue A}case 5:{if((t|0)<2){e=-2;break A}if(!(Q5[a[s>>2]&127](A,l)|0)){I=26;break A}c=e+3|0;a[E>>2]=c;t=1;e=c;continue A}case 6:{if((t|0)<3){e=-2;break A}if(!(Q5[a[b>>2]&127](A,l)|0)){I=30;break A}c=e+4|0;a[E>>2]=c;t=1;e=c;continue A}case 7:{if((t|0)<4){e=-2;break A}if(!(Q5[a[u>>2]&127](A,l)|0)){I=34;break A}c=e+5|0;a[E>>2]=c;t=1;e=c;continue A}default:{I=36;break A}}}case 10:case 9:case 21:while(1){e=e+1|0;a[E>>2]=e;if((C-e|0)<=0){e=-1;break A}switch(r[d+(n[e>>0]|0)>>0]|0){case 14:break e;case 9:case 10:case 21:break;default:{I=39;break A}}}case 14:break;default:{I=92;break A}}}while(0);while(1){l=e+1|0;a[E>>2]=l;if((C-l|0)<=0){e=-1;break A}c=r[d+(n[l>>0]|0)>>0]|0;if((c|1)<<24>>24==13)break;switch(c<<24>>24){case 9:case 10:case 21:{e=l;break}default:{I=43;break A}}}e=e+2|0;a[E>>2]=e;e:while(1){l=C-e|0;if((l|0)<=0){e=-1;break A}t=r[d+(n[e>>0]|0)>>0]|0;if(t<<24>>24==c<<24>>24)break;switch(t<<24>>24){case 8:case 1:case 0:{I=60;break A}case 2:{I=65;break A}case 5:{if((l|0)<2){e=-2;break A}if(Q5[a[w>>2]&127](A,e)|0){I=50;break A}t=e+2|0;a[E>>2]=t;e=t;continue e}case 6:{if((l|0)<3){e=-2;break A}if(Q5[a[o>>2]&127](A,e)|0){I=54;break A}t=e+3|0;a[E>>2]=t;e=t;continue e}case 7:{if((l|0)<4){e=-2;break A}if(Q5[a[h>>2]&127](A,e)|0){I=58;break A}t=e+4|0;a[E>>2]=t;e=t;continue e}case 3:{e=Wq(A,e+1|0,i,E)|0;if((e|0)<1){I=63;break A}e=a[E>>2]|0;continue e}default:{t=e+1|0;a[E>>2]=t;e=t;continue e}}}l=e+1|0;a[E>>2]=l;if((C-l|0)<=0){e=-1;break}switch(r[d+(n[l>>0]|0)>>0]|0){case 11:{I=86;break A}case 17:{I=87;break A}case 10:case 9:case 21:{e=l;break}default:{I=69;break A}}e:while(1){l=e+1|0;a[E>>2]=l;t=C-l|0;if((t|0)<=0){e=-1;break A}switch(r[d+(n[l>>0]|0)>>0]|0){case 29:{I=72;break A}case 11:{I=86;break A}case 17:{I=87;break A}case 10:case 9:case 21:{e=l;break}case 24:case 22:{I=73;break e}case 5:{I=74;break e}case 6:{I=78;break e}case 7:{I=82;break e}default:{I=91;break A}}}if((I|0)==73){I=0;e=e+2|0;a[E>>2]=e;t=0;continue}else if((I|0)==74){I=0;if((t|0)<2){e=-2;break}if(!(Q5[a[s>>2]&127](A,l)|0)){I=76;break}e=e+3|0;a[E>>2]=e;t=0;continue}else if((I|0)==78){I=0;if((t|0)<3){e=-2;break}if(!(Q5[a[b>>2]&127](A,l)|0)){I=80;break}e=e+4|0;a[E>>2]=e;t=0;continue}else if((I|0)==82){I=0;if((t|0)<4){e=-2;break}if(!(Q5[a[u>>2]&127](A,l)|0)){I=84;break}e=e+5|0;a[E>>2]=e;t=0;continue}}switch(I|0){case 4:{a[f>>2]=e;e=0;break}case 8:{a[f>>2]=e;e=0;break}case 12:{a[f>>2]=e;e=0;break}case 16:{a[f>>2]=e;e=0;break}case 19:{a[f>>2]=e;e=0;break}case 22:{a[f>>2]=l;e=0;break}case 26:{a[f>>2]=l;e=0;break}case 30:{a[f>>2]=l;e=0;break}case 34:{a[f>>2]=l;e=0;break}case 36:{a[f>>2]=l;e=0;break}case 39:{a[f>>2]=e;e=0;break}case 43:{a[f>>2]=l;e=0;break}case 50:{a[f>>2]=e;e=0;break}case 54:{a[f>>2]=e;e=0;break}case 58:{a[f>>2]=e;e=0;break}case 60:{a[f>>2]=e;e=0;break}case 63:{if(!e){a[f>>2]=a[E>>2];e=0}break}case 65:{a[f>>2]=e;e=0;break}case 69:{a[f>>2]=l;e=0;break}case 72:{a[f>>2]=l;e=0;break}case 76:{a[f>>2]=l;e=0;break}case 80:{a[f>>2]=l;e=0;break}case 84:{a[f>>2]=l;e=0;break}case 86:{a[f>>2]=e+2;e=1;break}case 87:{e=l+1|0;a[E>>2]=e;if((C-e|0)>0)if((r[e>>0]|0)==62){a[f>>2]=l+2;e=3;break}else{a[f>>2]=e;e=0;break}else e=-1;break}case 91:{a[f>>2]=l;e=0;break}case 92:{a[f>>2]=e;e=0;break}}k=Z;return e|0}function Rq(A,e,i){A=A|0;e=e|0;i=i|0;a[i>>2]=11;A:do{if((e-A|0)==3){switch(r[A>>0]|0){case 120:{e=0;break}case 88:{e=1;break}default:{e=1;break A}}switch(r[A+1>>0]|0){case 109:break;case 77:{e=1;break}default:{e=1;break A}}switch(r[A+2>>0]|0){case 108:break;case 76:{e=0;break A}default:{e=1;break A}}if(!e){a[i>>2]=12;e=1}else e=0}else e=1}while(0);return e|0}function Xq(A,e,i,f,l){A=A|0;e=e|0;i=i|0;f=f|0;l=l|0;var t=0,c=0,s=0,b=0,u=0,w=0,k=0;s=e+72|0;b=e+352|0;u=e+356|0;w=e+360|0;A:while(1){t=f-i|0;if((t|0)<=0){f=-1;break}c=r[s+(n[i>>0]|0)>>0]|0;switch(c<<24>>24){case 8:case 1:case 0:{k=16;break A}case 5:{if((t|0)<2){f=-2;break A}if(Q5[a[b>>2]&127](e,i)|0){k=6;break A}i=i+2|0;continue A}case 6:{if((t|0)<3){f=-2;break A}if(Q5[a[u>>2]&127](e,i)|0){k=10;break A}i=i+3|0;continue A}case 7:{if((t|0)<4){f=-2;break A}if(Q5[a[w>>2]&127](e,i)|0){k=14;break A}i=i+4|0;continue A}case 13:case 12:{i=i+1|0;if((c&255|0)==(A|0)){k=18;break A}else continue A}default:{i=i+1|0;continue A}}}A:do{if((k|0)==6){a[l>>2]=i;f=0}else if((k|0)==10){a[l>>2]=i;f=0}else if((k|0)==14){a[l>>2]=i;f=0}else if((k|0)==16){a[l>>2]=i;f=0}else if((k|0)==18)if((f-i|0)>0){a[l>>2]=i;switch(r[s+(n[i>>0]|0)>>0]|0){case 20:case 30:case 11:case 10:case 9:case 21:{f=27;break A}default:{}}f=0}else f=-27}while(0);return f|0}function Hq(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0;l=i;A:do{if((l-e|0)>0){t=A+72|0;switch(r[t+(n[e>>0]|0)>>0]|0){case 27:{A=Fq(A,e+1|0,i,f)|0;break A}case 20:{a[f>>2]=e+1;A=33;break A}case 24:case 22:{e:while(1){A=e+1|0;i=l-A|0;if((i|0)<=0){A=-1;break A}switch(r[t+(n[A>>0]|0)>>0]|0){case 24:case 22:{e=A;break}case 30:{c=8;break e}case 10:case 9:case 21:break e;default:{c=12;break e}}}if((c|0)==12){a[f>>2]=A;A=0;break A}e:do{if((c|0)==8){if((i|0)<=1){A=-1;break A}switch(r[t+(n[e+2>>0]|0)>>0]|0){case 30:case 10:case 9:case 21:break;default:break e}a[f>>2]=A;A=0;break A}}while(0);a[f>>2]=A;A=16;break A}default:{a[f>>2]=e;A=0;break A}}}else A=-1}while(0);return A|0}function Uq(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;l=i-e|0;A:do{if((l|0)>0){b=A+72|0;switch(r[b+(n[e>>0]|0)>>0]|0){case 29:{a[f>>2]=e;i=0;break A}case 24:case 22:{l=1;break}case 5:{if((l|0)<2){i=-2;break A}if(!(Q5[a[A+340>>2]&127](A,e)|0)){a[f>>2]=e;i=0;break A}else l=2;break}case 6:{if((l|0)<3){i=-2;break A}if(!(Q5[a[A+344>>2]&127](A,e)|0)){a[f>>2]=e;i=0;break A}else l=3;break}case 7:{if((l|0)<4){i=-2;break A}if(!(Q5[a[A+348>>2]&127](A,e)|0)){a[f>>2]=e;i=0;break A}else l=4;break}default:{a[f>>2]=e;i=0;break A}}t=A+328|0;c=A+332|0;s=A+336|0;e=e+l|0;e:while(1){l=i-e|0;if((l|0)<=0){i=-20;break A}switch(r[b+(n[e>>0]|0)>>0]|0){case 29:{l=17;break e}case 36:case 30:case 11:case 32:case 21:case 10:case 9:{l=28;break e}case 27:case 26:case 25:case 24:case 22:{l=1;break}case 5:{if((l|0)<2){i=-2;break A}if(!(Q5[a[t>>2]&127](A,e)|0)){l=20;break e}else l=2;break}case 6:{if((l|0)<3){i=-2;break A}if(!(Q5[a[c>>2]&127](A,e)|0)){l=23;break e}else l=3;break}case 7:{if((l|0)<4){i=-2;break A}if(!(Q5[a[s>>2]&127](A,e)|0)){l=26;break e}else l=4;break}default:{l=29;break e}}e=e+l|0}if((l|0)==17){a[f>>2]=e;i=0;break}else if((l|0)==20){a[f>>2]=e;i=0;break}else if((l|0)==23){a[f>>2]=e;i=0;break}else if((l|0)==26){a[f>>2]=e;i=0;break}else if((l|0)==28){a[f>>2]=e;i=20;break}else if((l|0)==29){a[f>>2]=e;i=0;break}}else i=-1}while(0);return i|0}function xq(){return 58220}function Tq(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0;t=k;k=k+16|0;n=t;a[n>>2]=i;l=a[e>>2]|0;A=f-(a[r>>2]|0)|0;if((i-l|0)>(A|0)){A=l+A|0;a[n>>2]=A;f=1}else{f=0;A=i}hb(l,n);l=a[n>>2]|0;i=a[e>>2]|0;n=l-i|0;W6(a[r>>2]|0,i|0,n|0)|0;a[e>>2]=(a[e>>2]|0)+n;a[r>>2]=(a[r>>2]|0)+n;k=t;return(f?2:l>>>0>>0&1)|0}function jq(A,e,i,n,l){A=A|0;e=e|0;i=i|0;n=n|0;l=l|0;var t=0,c=0,s=0,b=0,u=0,w=0,k=0;c=A+72|0;s=i;b=l;u=a[e>>2]|0;w=a[n>>2]|0;A:while(1){A=u>>>0>>0;if(!(w>>>0>>0&A)){k=12;break}A=r[u>>0]|0;t=A&255;switch(r[c+t>>0]|0){case 5:{if((s-u|0)<2){A=1;break A}f[w>>1]=(A&31)<<6|r[u+1>>0]&63;u=u+2|0;w=w+2|0;continue A}case 6:{if((s-u|0)<3){A=1;break A}f[w>>1]=(r[u+1>>0]&63)<<6|t<<12|r[u+2>>0]&63;u=u+3|0;w=w+2|0;continue A}case 7:{if((b-w|0)<4){A=2;break A}if((s-u|0)<4){A=1;break A}t=((r[u+1>>0]&63)<<12|(A&7)<<18|(r[u+2>>0]&63)<<6|r[u+3>>0]&63)+-65536|0;f[w>>1]=t>>>10|55296;f[w+2>>1]=t&1023|56320;u=u+4|0;w=w+4|0;continue A}default:{f[w>>1]=A<<24>>24;u=u+1|0;w=w+2|0;continue A}}}if((k|0)==12)A=A?2:0;a[e>>2]=u;a[n>>2]=w;return A|0}function Pq(A,e){A=A|0;e=e|0;A=n[e>>0]|0;e=n[e+1>>0]|0;return 1<<(e&31)&a[56940+(((n[144044+(A>>>2&7)>>0]|0)<<3|A<<1&6|e>>>5&1)<<2)>>2]|0}function Sq(A,e){A=A|0;e=e|0;var i=0;i=n[e+1>>0]|0;A=n[e+2>>0]|0;return 1<<(A&31)&a[56940+(((n[144044+(i>>>2&15|r[e>>0]<<4&255)>>0]|0)<<3|i<<1&6|A>>>5&1)<<2)>>2]|0}function Oq(A,e){A=A|0;e=e|0;return 0}function Kq(A,e){A=A|0;e=e|0;A=n[e>>0]|0;e=n[e+1>>0]|0;return 1<<(e&31)&a[56940+(((n[143788+(A>>>2&7)>>0]|0)<<3|A<<1&6|e>>>5&1)<<2)>>2]|0}function _q(A,e){A=A|0;e=e|0;var i=0;i=n[e+1>>0]|0;A=n[e+2>>0]|0;return 1<<(A&31)&a[56940+(((n[143788+(i>>>2&15|r[e>>0]<<4&255)>>0]|0)<<3|i<<1&6|A>>>5&1)<<2)>>2]|0}function qq(A,e){A=A|0;e=e|0;if((n[e>>0]|0)<194)return 1;else{e=n[e+1>>0]|0;return e>>>7^1|(e&192|0)==192|0}return 0}function $q(A,e){A=A|0;e=e|0;var i=0;A=r[e+2>>0]|0;do{if(A<<24>>24>-1)A=1;else{i=r[e>>0]|0;if(i<<24>>24==-17?(r[e+1>>0]|0)==-65:0)if((A&255)>189){A=1;break}else{A=191;e=-65}else{if((A&255)>191){A=1;break}e=r[e+1>>0]|0;A=e&255;if(i<<24>>24==-32){A=(e&255)<160|(A&192|0)==192;break}}A=(A&128|0)==0?1:i<<24>>24==-19?(e&255)>159:(A&192|0)==192}}while(0);return A&1|0}function A$(A,e){A=A|0;e=e|0;var i=0;i=n[e+3>>0]|0;do{if(!((i&128|0)==0|(i&192|0)==192)?(i=n[e+2>>0]|0,!((i&128|0)==0|(i&192|0)==192)):0){i=r[e>>0]|0;A=r[e+1>>0]|0;e=A&255;if(i<<24>>24==-16){A=(A&255)<144|(e&192|0)==192;break}else{A=(e&128|0)==0?1:i<<24>>24==-12?(A&255)>143:(e&192|0)==192;break}}else A=1}while(0);return A&1|0}function e$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0,u=0;A:do{if(e>>>0>>0){t=e;u=i-t|0;s=(u&1|0)==0;u=u&-2;b=(u|0)==0;u=s|b?i:e+u|0;if(s|b^1){i=r[e+1>>0]|0;if(!(i<<24>>24)){l=r[e>>0]|0;c=l;l=n[A+72+(l&255)>>0]|0}else{l=r[e>>0]|0;c=l;l=d$(i,l)|0}do{switch(l|0){case 12:{i=y$(12,A,e+2|0,u,f)|0;break A}case 13:{i=y$(13,A,e+2|0,u,f)|0;break A}case 2:{l=e+2|0;if((u-l|0)<=1){i=-1;break A}i=r[e+3>>0]|0;if(!(i<<24>>24))i=n[A+72+(n[l>>0]|0)>>0]|0;else i=d$(i,r[l>>0]|0)|0;switch(i|0){case 16:{i=W$(A,e+4|0,u,f)|0;break A}case 15:{i=G$(A,e+4|0,u,f)|0;break A}case 7:case 6:case 5:case 29:case 24:case 22:{a[f>>2]=e;i=29;break A}default:{a[f>>2]=l;i=0;break A}}}case 9:{if((e+2|0)==(u|0)){a[f>>2]=u;i=-15;break A}else t=7;break}case 10:case 21:{t=7;break}case 30:{i=g$(A,e+2|0,u,f)|0;break A}case 35:{a[f>>2]=e+2;i=38;break A}case 20:{a[f>>2]=e+2;i=25;break A}case 4:{l=e+2|0;i=u-l|0;if((i|0)<=1){i=-26;break A}if((r[e+3>>0]|0)==0?(r[l>>0]|0)==93:0){if((i|0)<=3){i=-1;break A}if((r[e+5>>0]|0)==0?(r[e+4>>0]|0)==62:0){a[f>>2]=e+6;i=34;break A}}a[f>>2]=l;i=26;break A}case 31:{a[f>>2]=e+2;i=23;break A}case 32:{l=e+2|0;if((u-l|0)<=1){i=-24;break A}i=r[e+3>>0]|0;if(!(i<<24>>24))i=n[A+72+(n[l>>0]|0)>>0]|0;else i=d$(i,r[l>>0]|0)|0;switch(i|0){case 33:{a[f>>2]=e+4;i=36;break A}case 15:{a[f>>2]=e+4;i=35;break A}case 34:{a[f>>2]=e+4;i=37;break A}case 32:case 36:case 35:case 11:case 21:case 10:case 9:{a[f>>2]=l;i=24;break A}default:{a[f>>2]=l;i=0;break A}}}case 36:{a[f>>2]=e+2;i=21;break A}case 11:{a[f>>2]=e+2;i=17;break A}case 19:{i=z$(A,e+2|0,u,f)|0;break A}case 5:{if((u-t|0)<2){i=-2;break A}a[f>>2]=e;i=0;break A}case 6:{if((u-t|0)<3){i=-2;break A}a[f>>2]=e;i=0;break A}case 7:{if((u-t|0)<4){i=-2;break A}a[f>>2]=e;i=0;break A}case 24:case 22:{i=18;t=61;break}case 23:case 27:case 26:case 25:{i=19;t=61;break}case 29:{t=i&255;l=c&255;i=l>>>5;l=1<<(l&31);if(!(l&a[56940+((i|n[143788+t>>0]<<3)<<2)>>2]))if(!(a[56940+((n[144044+t>>0]<<3|i)<<2)>>2]&l))t=64;else{i=19;t=61}else{i=18;t=61}break}default:t=64}}while(0);if((t|0)==7){s=u;A=A+72|0;c=e;e:while(1){t=c;c=c+2|0;if((s-c|0)<=1){t=28;break}i=r[t+3>>0]|0;l=r[c>>0]|0;if(!(i<<24>>24))i=n[A+(l&255)>>0]|0;else i=d$(i,l)|0;switch(i|0){case 10:case 21:continue e;case 9:break;default:{t=27;break e}}if((t+4|0)==(u|0)){t=27;break}}if((t|0)==27){a[f>>2]=c;i=15;break}else if((t|0)==28){a[f>>2]=c;i=15;break}}else if((t|0)==61){b=A+72|0;l=e+2|0;e:while(1){e=i&255;i:while(1){s=u-l|0;if((s|0)<=1){t=104;break e}t=r[l+1>>0]|0;c=r[l>>0]|0;if(!(t<<24>>24))A=n[b+(c&255)>>0]|0;else A=d$(t,c)|0;switch(A|0){case 5:{t=73;break e}case 6:{t=74;break e}case 7:{t=76;break e}case 10:case 9:case 21:case 30:case 20:case 36:case 35:case 32:case 11:{t=78;break e}case 34:{t=94;break e}case 33:{t=97;break e}case 15:{t=100;break e}case 29:{s=c&255;if(!(1<<(s&31)&a[56940+((s>>>5|n[144044+(t&255)>>0]<<3)<<2)>>2])){t=71;break e}break}case 27:case 26:case 25:case 24:case 22:break;case 23:{s=l+2|0;switch(e&63){case 41:{i=19;l=s;continue e}case 18:break i;default:{l=s;continue i}}}default:{t=103;break e}}l=l+2|0}A=u-s|0;if((A|0)<=1){i=-1;break A}i=r[l+3>>0]|0;t=r[s>>0]|0;if(!(i<<24>>24))c=n[b+(t&255)>>0]|0;else c=d$(i,t)|0;switch(c|0){case 5:{t=89;break e}case 6:{t=90;break e}case 7:{t=92;break e}case 29:{e=t&255;if(!(1<<(e&31)&a[56940+((e>>>5|n[144044+(i&255)>>0]<<3)<<2)>>2])){t=87;break e}break}case 27:case 26:case 25:case 24:case 22:break;default:{i=19;l=s;continue e}}i=41;l=l+4|0}switch(t|0){case 71:{a[f>>2]=l;i=0;break A}case 73:{a[f>>2]=l;i=0;break A}case 74:{if((s|0)<3){i=-2;break A}a[f>>2]=l;i=0;break A}case 76:{if((s|0)<4){i=-2;break A}a[f>>2]=l;i=0;break A}case 78:{a[f>>2]=l;break A}case 87:{a[f>>2]=s;i=0;break A}case 89:{a[f>>2]=s;i=0;break A}case 90:{if((A|0)<3){i=-2;break A}a[f>>2]=s;i=0;break A}case 92:{if((A|0)<4){i=-2;break A}a[f>>2]=s;i=0;break A}case 94:if((i|0)==19){a[f>>2]=l;i=0;break A}else{a[f>>2]=l+2;i=32;break A}case 97:if((i|0)==19){a[f>>2]=l;i=0;break A}else{a[f>>2]=l+2;i=31;break A}case 100:if((i|0)==19){a[f>>2]=l;i=0;break A}else{a[f>>2]=l+2;i=30;break A}case 103:{a[f>>2]=l;i=0;break A}case 104:{i=0-i|0;break A}}}else if((t|0)==64){a[f>>2]=e;i=0;break}}else i=-1}else i=-4}while(0);return i|0}function i$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0;A:do{if(e>>>0>>0){l=e;t=i-l|0;s=(t&1|0)==0;t=t&-2;c=(t|0)==0;t=s|c?i:e+t|0;if(s|c^1){i=r[e+1>>0]|0;if(!(i<<24>>24))i=n[A+72+(n[e>>0]|0)>>0]|0;else i=d$(i,r[e>>0]|0)|0;do{switch(i|0){case 2:{i=C$(A,e+2|0,t,f)|0;break A}case 3:{i=B$(A,e+2|0,t,f)|0;break A}case 9:{l=e+2|0;if((t-l|0)<=1){i=-3;break A}i=r[e+3>>0]|0;if(!(i<<24>>24))i=n[A+72+(n[l>>0]|0)>>0]|0;else i=d$(i,r[l>>0]|0)|0;a[f>>2]=(i|0)==10?e+4|0:l;i=7;break A}case 10:{a[f>>2]=e+2;i=7;break A}case 4:{l=e+2|0;if((t-l|0)<=1){i=-5;break A}if((r[e+3>>0]|0)==0?(r[l>>0]|0)==93:0){i=e+4|0;if((t-i|0)<=1){i=-5;break A}if((r[e+5>>0]|0)==0?(r[i>>0]|0)==62:0){a[f>>2]=i;i=0;break A}else i=t}else i=t;break}case 5:{i=t;if((i-l|0)<2){i=-2;break A}l=e+2|0;break}case 6:{i=t;if((i-l|0)<3){i=-2;break A}l=e+3|0;break}case 7:{i=t;if((i-l|0)<4){i=-2;break A}l=e+4|0;break}case 8:case 1:case 0:{a[f>>2]=e;i=0;break A}default:{l=e+2|0;i=t}}}while(0);c=A+72|0;A=l;e:while(1){e=i-A|0;if((e|0)<=1){l=52;break}l=r[A+1>>0]|0;t=r[A>>0]|0;if(!(l<<24>>24))l=n[c+(t&255)>>0]|0;else l=d$(l,t)|0;switch(l|0){case 10:case 9:case 8:case 1:case 0:case 2:case 3:{l=50;break e}case 5:{A=A+2|0;continue e}case 6:{if((e|0)<3){l=38;break e}A=A+3|0;continue e}case 7:{if((e|0)<4){l=41;break e}A=A+4|0;continue e}case 4:{if((e|0)<=3){l=50;break e}l=A+2|0;if(r[A+3>>0]|0){A=l;continue e}if((r[l>>0]|0)!=93){A=l;continue e}if((e|0)<=5){l=50;break e}t=A+4|0;if(r[A+5>>0]|0){A=l;continue e}if((r[t>>0]|0)==62){l=49;break e}else{A=l;continue e}}default:{A=A+2|0;continue e}}}if((l|0)==38){a[f>>2]=A;i=6;break}else if((l|0)==41){a[f>>2]=A;i=6;break}else if((l|0)==49){a[f>>2]=t;i=0;break}else if((l|0)==50){a[f>>2]=A;i=6;break}else if((l|0)==52){a[f>>2]=A;i=6;break}}else i=-1}else i=-4}while(0);return i|0}function r$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0;A:do{if(e>>>0>>0){l=e;t=i-l|0;s=(t&1|0)==0;t=t&-2;c=(t|0)==0;t=s|c?i:e+t|0;if(s|c^1){i=r[e+1>>0]|0;if(!(i<<24>>24))i=n[A+72+(n[e>>0]|0)>>0]|0;else i=d$(i,r[e>>0]|0)|0;switch(i|0){case 4:{l=e+2|0;if((t-l|0)<=1){i=-1;break A}if((r[e+3>>0]|0)==0?(r[l>>0]|0)==93:0){i=e+4|0;if((t-i|0)<=1){i=-1;break A}if((r[e+5>>0]|0)==0?(r[i>>0]|0)==62:0){a[f>>2]=e+6;i=40;break A}}break}case 9:{l=e+2|0;if((t-l|0)<=1){i=-1;break A}i=r[e+3>>0]|0;if(!(i<<24>>24))i=n[A+72+(n[l>>0]|0)>>0]|0;else i=d$(i,r[l>>0]|0)|0;a[f>>2]=(i|0)==10?e+4|0:l;i=7;break A}case 10:{a[f>>2]=e+2;i=7;break A}case 5:{i=t;if((i-l|0)<2){i=-2;break A}l=e+2|0;t=i;break}case 6:{i=t;if((i-l|0)<3){i=-2;break A}l=e+3|0;t=i;break}case 7:{i=t;if((i-l|0)<4){i=-2;break A}l=e+4|0;t=i;break}case 8:case 1:case 0:{a[f>>2]=e;i=0;break A}default:l=e+2|0}c=A+72|0;A=l;e:while(1){e=t-A|0;if((e|0)<=1){l=40;break}i=r[A+1>>0]|0;l=r[A>>0]|0;if(!(i<<24>>24))i=n[c+(l&255)>>0]|0;else i=d$(i,l)|0;switch(i|0){case 10:case 9:case 8:case 1:case 0:case 4:{l=38;break e}case 6:{if((e|0)<3){l=35;break e}else i=3;break}case 7:{if((e|0)<4){l=37;break e}else i=4;break}default:i=2}A=A+i|0}if((l|0)==35){a[f>>2]=A;i=6;break}else if((l|0)==37){a[f>>2]=A;i=6;break}else if((l|0)==38){a[f>>2]=A;i=6;break}else if((l|0)==40){a[f>>2]=A;i=6;break}}else i=-1}else i=-4}while(0);return i|0}function f$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;s=i-e|0;s=(s&1|0)==0?i:e+(s&-2)|0;c=A+72|0;t=0;i=e;A:while(1){l=s-i|0;if((l|0)<=1){i=-1;break}A=r[i+1>>0]|0;e=r[i>>0]|0;if(!(A<<24>>24))A=n[c+(e&255)>>0]|0;else A=d$(A,e)|0;switch(A|0){case 8:case 1:case 0:{b=12;break A}case 5:{l=t;i=i+2|0;t=l;continue A}case 6:{if((l|0)<3){i=-2;break A}l=t;i=i+3|0;t=l;continue A}case 7:{if((l|0)<4){i=-2;break A}l=t;i=i+4|0;t=l;continue A}case 2:{A=i+2|0;if((s-A|0)<=1){i=-1;break A}if(r[i+3>>0]|0){l=t;i=A;t=l;continue A}if((r[A>>0]|0)!=33){l=t;i=A;t=l;continue A}A=i+4|0;if((s-A|0)<=1){i=-1;break A}if(r[i+5>>0]|0){l=t;i=A;t=l;continue A}l=(r[A>>0]|0)==91;t=t+(l&1)|0;i=l?i+6|0:A;continue A}case 4:{A=i+2|0;if((s-A|0)<=1){i=-1;break A}if(r[i+3>>0]|0){l=t;i=A;t=l;continue A}if((r[A>>0]|0)!=93){l=t;i=A;t=l;continue A}A=i+4|0;if((s-A|0)<=1){i=-1;break A}if(r[i+5>>0]|0){l=t;i=A;t=l;continue A}if((r[A>>0]|0)!=62){l=t;i=A;t=l;continue A}i=i+6|0;if(!t){b=26;break A}t=t+-1|0;continue A}default:{l=t;i=i+2|0;t=l;continue A}}}if((b|0)==12){a[f>>2]=i;i=0}else if((b|0)==26){a[f>>2]=i;i=42}return i|0}function a$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;do{if(e>>>0>>0){s=i;if((s-e|0)>1){b=A+72|0;c=e;A:while(1){if((s-c|0)<=1){t=30;break}l=r[c+1>>0]|0;t=r[c>>0]|0;if(!(l<<24>>24))l=n[b+(t&255)>>0]|0;else l=d$(l,t)|0;switch(l|0){case 3:{t=11;break A}case 2:{t=14;break A}case 10:{t=15;break A}case 9:{t=18;break A}case 21:{t=25;break A}case 5:{l=2;break}case 6:{l=3;break}case 7:{l=4;break}default:l=2}c=c+l|0}if((t|0)==11)if((c|0)==(e|0)){l=B$(A,e+2|0,i,f)|0;break}else{a[f>>2]=c;l=6;break}else if((t|0)==14){a[f>>2]=c;l=0;break}else if((t|0)==15)if((c|0)==(e|0)){a[f>>2]=e+2;l=7;break}else{a[f>>2]=c;l=6;break}else if((t|0)==18){if((c|0)!=(e|0)){a[f>>2]=c;l=6;break}c=e+2|0;if((s-c|0)<=1){l=-3;break}l=r[e+3>>0]|0;t=r[c>>0]|0;if(!(l<<24>>24))l=n[b+(t&255)>>0]|0;else l=d$(l,t)|0;a[f>>2]=(l|0)==10?e+4|0:c;l=7;break}else if((t|0)==25)if((c|0)==(e|0)){a[f>>2]=e+2;l=39;break}else{a[f>>2]=c;l=6;break}else if((t|0)==30){a[f>>2]=c;l=6;break}}else l=-1}else l=-4}while(0);return l|0}function n$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;do{if(e>>>0>>0){s=i;if((s-e|0)>1){b=A+72|0;c=e;A:while(1){if((s-c|0)<=1){t=29;break}l=r[c+1>>0]|0;t=r[c>>0]|0;if(!(l<<24>>24))l=n[b+(t&255)>>0]|0;else l=d$(l,t)|0;switch(l|0){case 3:{t=11;break A}case 30:{t=14;break A}case 10:{t=17;break A}case 9:{t=20;break A}case 5:{l=2;break}case 6:{l=3;break}case 7:{l=4;break}default:l=2}c=c+l|0}if((t|0)==11)if((c|0)==(e|0)){l=B$(A,e+2|0,i,f)|0;break}else{a[f>>2]=c;l=6;break}else if((t|0)==14)if((c|0)==(e|0)){l=g$(A,e+2|0,i,f)|0;l=(l|0)==22?0:l;break}else{a[f>>2]=c;l=6;break}else if((t|0)==17)if((c|0)==(e|0)){a[f>>2]=e+2;l=7;break}else{a[f>>2]=c;l=6;break}else if((t|0)==20){if((c|0)!=(e|0)){a[f>>2]=c;l=6;break}c=e+2|0;if((s-c|0)<=1){l=-3;break}l=r[e+3>>0]|0;t=r[c>>0]|0;if(!(l<<24>>24))l=n[b+(t&255)>>0]|0;else l=d$(l,t)|0;a[f>>2]=(l|0)==10?e+4|0:c;l=7;break}else if((t|0)==29){a[f>>2]=c;l=6;break}}else l=-1}else l=-4}while(0);return l|0}function l$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var a=0,n=0;a=i;A=e;while(1){e=r[f>>0]|0;if(!(e<<24>>24)){n=7;break}if((a-A|0)<2){A=0;break}if(r[A+1>>0]|0){A=0;break}if((r[A>>0]|0)!=e<<24>>24){A=0;break}f=f+1|0;A=A+2|0}if((n|0)==7)A=(A|0)==(i|0)&1;return A|0}function t$(A,e){A=A|0;e=e|0;var i=0,f=0,a=0;a=A+72|0;f=e;A:while(1){A=r[f+1>>0]|0;i=r[f>>0]|0;if(!(A<<24>>24))A=n[a+(i&255)>>0]|0;else A=d$(A,i)|0;switch(A|0){case 5:{A=2;break}case 6:{A=3;break}case 7:{A=4;break}case 27:case 26:case 25:case 24:case 23:case 22:case 29:{A=2;break}default:break A}f=f+A|0}return f-e|0}function c$(A,e){A=A|0;e=e|0;var i=0,f=0;f=A+72|0;A:while(1){A=r[e+1>>0]|0;i=r[e>>0]|0;if(!(A<<24>>24))A=n[f+(i&255)>>0]|0;else A=d$(A,i)|0;switch(A|0){case 21:case 9:case 10:break;default:break A}e=e+2|0}return e|0}function s$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0;k=A+72|0;u=0;w=0;A=1;A:while(1){b=e+2|0;t=e+3|0;l=r[t>>0]|0;c=l<<24>>24==0;s=r[b>>0]|0;if(c)l=n[k+(s&255)>>0]|0;else l=d$(l,s)|0;do{switch(l|0){case 5:{if(A|0){t=A;c=w;s=u;e=b;A=t;w=c;u=s;continue A}if((w|0)>=(i|0)){c=w;s=u;A=1;e=b;w=c;u=s;continue A}a[f+(w<<4)>>2]=b;r[f+(w<<4)+12>>0]=1;c=w;s=u;A=1;e=b;w=c;u=s;continue A}case 6:{if(A|0){c=A;s=w;b=u;e=t;A=c;w=s;u=b;continue A}if((w|0)>=(i|0)){s=w;b=u;A=1;e=t;w=s;u=b;continue A}a[f+(w<<4)>>2]=b;r[f+(w<<4)+12>>0]=1;s=w;b=u;A=1;e=t;w=s;u=b;continue A}case 7:{if(!A)if((w|0)<(i|0)){a[f+(w<<4)>>2]=b;r[f+(w<<4)+12>>0]=1;A=1}else A=1;s=w;b=u;e=e+4|0;w=s;u=b;continue A}case 24:case 22:case 29:{if(A|0){t=A;c=w;s=u;e=b;A=t;w=c;u=s;continue A}if((w|0)>=(i|0)){c=w;s=u;A=1;e=b;w=c;u=s;continue A}a[f+(w<<4)>>2]=b;r[f+(w<<4)+12>>0]=1;c=w;s=u;A=1;e=b;w=c;u=s;continue A}case 12:{if((A|0)!=2){if((w|0)>=(i|0)){s=w;u=12;A=2;e=b;w=s;continue A}a[f+(w<<4)+4>>2]=e+4;s=w;u=12;A=2;e=b;w=s;continue A}if((u|0)!=12){c=w;s=u;A=2;e=b;w=c;u=s;continue A}if((w|0)<(i|0))a[f+(w<<4)+8>>2]=b;u=12;w=w+1|0;A=0;e=b;continue A}case 13:{if((A|0)!=2){if((w|0)>=(i|0)){s=w;u=13;A=2;e=b;w=s;continue A}a[f+(w<<4)+4>>2]=e+4;s=w;u=13;A=2;e=b;w=s;continue A}if((u|0)!=13){c=w;s=u;A=2;e=b;w=c;u=s;continue A}if((w|0)<(i|0))a[f+(w<<4)+8>>2]=b;u=13;w=w+1|0;A=0;e=b;continue A}case 3:{if((w|0)>=(i|0)){t=A;c=w;s=u;e=b;A=t;w=c;u=s;continue A}r[f+(w<<4)+12>>0]=0;t=A;c=w;s=u;e=b;A=t;w=c;u=s;continue A}case 21:{switch(A|0){case 1:{c=w;s=u;A=0;e=b;w=c;u=s;continue A}case 2:break;default:{t=A;c=w;s=u;e=b;A=t;w=c;u=s;continue A}}if((w|0)>=(i|0)){c=w;s=u;A=2;e=b;w=c;u=s;continue A}t=f+(w<<4)+12|0;if(!(r[t>>0]|0)){c=w;s=u;A=2;e=b;w=c;u=s;continue A}do{if(c&(b|0)!=(a[f+(w<<4)+4>>2]|0)&s<<24>>24==32){l=r[e+5>>0]|0;A=r[e+4>>0]|0;if(!(l<<24>>24)){if(A<<24>>24==32)break;A=n[k+(A&255)>>0]|0}else A=d$(l,A)|0;if((A|0)!=(u|0)){c=w;s=u;A=2;e=b;w=c;u=s;continue A}}}while(0);r[t>>0]=0;c=w;s=u;A=2;e=b;w=c;u=s;continue A}case 10:case 9:{switch(A|0){case 1:{c=w;s=u;A=0;e=b;w=c;u=s;continue A}case 2:break;default:{t=A;c=w;s=u;e=b;A=t;w=c;u=s;continue A}}if((w|0)>=(i|0)){c=w;s=u;A=2;e=b;w=c;u=s;continue A}r[f+(w<<4)+12>>0]=0;c=w;s=u;A=2;e=b;w=c;u=s;continue A}case 17:case 11:if((A|0)==2){c=w;s=u;A=2;e=b;w=c;u=s;continue A}else break A;default:{t=A;c=w;s=u;e=b;A=t;w=c;u=s;continue A}}}while(0)}return w|0}function b$(A,e){A=A|0;e=e|0;var i=0,f=0;A=e+4|0;A:do{if((r[e+5>>0]|0)==0?(r[A>>0]|0)==120:0){e=e+6|0;A=0;while(1){e:while(1){if(!(r[e+1>>0]|0)){i=r[e>>0]|0;if(i<<24>>24==59){f=17;break A}i=i<<24>>24;switch(i|0){case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:case 48:{f=8;break e}case 70:case 69:case 68:case 67:case 66:case 65:{f=9;break e}case 102:case 101:case 100:case 99:case 98:case 97:{f=10;break e}default:{}}}e=e+2|0}if((f|0)==8){f=0;A=i+-48|A<<4}else if((f|0)==9){f=0;A=(A<<4)+-55+i|0}else if((f|0)==10){f=0;A=(A<<4)+-87+i|0}if((A|0)<1114112)e=e+2|0;else{A=-1;break}}}else{i=A;A=0;f=13}}while(0);A:do{if((f|0)==13)while(1){f=0;if(!(r[i+1>>0]|0)){e=r[i>>0]|0;if(e<<24>>24==59){f=17;break A}e=e<<24>>24}else e=-1;A=(A*10|0)+-48+e|0;if((A|0)>=1114112){A=-1;break}else{i=i+2|0;f=13}}}while(0);if((f|0)==17)A=vb(A)|0;return A|0}function u$(A,e,i){A=A|0;e=e|0;i=i|0;var f=0;A:do{switch((i-e|0)/2|0|0){case 2:{if((r[e+3>>0]|0)==0?(r[e+2>>0]|0)==116:0){if(!(r[e+1>>0]|0))A=r[e>>0]|0;else A=-1;A=(A|0)==108?60:(A|0)==103?62:0}else f=27;break}case 3:{if((((((r[e+1>>0]|0)==0?(r[e>>0]|0)==97:0)?(r[e+3>>0]|0)==0:0)?(r[e+2>>0]|0)==109:0)?(r[e+5>>0]|0)==0:0)?(r[e+4>>0]|0)==112:0)A=38;else f=27;break}case 4:{if(!(r[e+1>>0]|0))switch(r[e>>0]|0){case 113:{if(r[e+3>>0]|0){f=27;break A}if((r[e+2>>0]|0)!=117){f=27;break A}if(r[e+5>>0]|0){f=27;break A}if((r[e+4>>0]|0)!=111){f=27;break A}if(r[e+7>>0]|0){f=27;break A}if((r[e+6>>0]|0)==116){A=34;break A}else{f=27;break A}}case 97:{if(r[e+3>>0]|0){f=27;break A}if((r[e+2>>0]|0)!=112){f=27;break A}if(r[e+5>>0]|0){f=27;break A}if((r[e+4>>0]|0)!=111){f=27;break A}if(r[e+7>>0]|0){f=27;break A}if((r[e+6>>0]|0)==115){A=39;break A}else{f=27;break A}}default:{f=27;break A}}else f=27;break}default:f=27}}while(0);if((f|0)==27)A=0;return A|0}function w$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0;c=A+72|0;s=f+4|0;while(1){if((i-e|0)<=1)break;A=r[e+1>>0]|0;l=r[e>>0]|0;if(!(A<<24>>24))A=n[c+(l&255)>>0]|0;else A=d$(A,l)|0;switch(A|0){case 5:{e=e+2|0;break}case 6:{e=e+3|0;break}case 7:{e=e+4|0;break}case 10:{a[s>>2]=-1;a[f>>2]=(a[f>>2]|0)+1;e=e+2|0;break}case 9:{a[f>>2]=(a[f>>2]|0)+1;t=e+2|0;if((i-t|0)>1){A=r[e+3>>0]|0;l=r[t>>0]|0;if(!(A<<24>>24))A=n[c+(l&255)>>0]|0;else A=d$(A,l)|0;e=(A|0)==10?e+4|0:t}else e=t;a[s>>2]=-1;break}default:e=e+2|0}a[s>>2]=(a[s>>2]|0)+1}return}function k$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0;c=i+-2|0;t=A+72|0;i=e;A:while(1){l=i+2|0;if((c-l|0)<=1){i=1;break}i=r[i+3>>0]|0;A=i<<24>>24==0;e=r[l>>0]|0;if(A)i=n[t+(e&255)>>0]|0;else i=d$(i,e)|0;switch(i|0){case 23:case 19:case 30:case 33:case 16:case 18:case 10:case 9:case 15:case 14:case 17:case 35:case 34:case 32:case 31:case 13:case 27:case 24:case 25:{i=l;continue A}case 21:if(A&e<<24>>24==9){s=12;break A}else{i=l;continue A}case 22:case 26:{if(!A){s=12;break A}if(e<<24>>24>=0){i=l;continue A}break}default:if(!A){s=12;break A}}switch(e<<24>>24|0){case 64:case 36:{i=l;break}default:{s=12;break A}}}if((s|0)==12){a[f>>2]=l;i=0}return i|0}function o$(A,e,i,f,l){A=A|0;e=e|0;i=i|0;f=f|0;l=l|0;var t=0,c=0,s=0,b=0,u=0,w=0,k=0;c=a[e>>2]|0;s=c+(i-c&-2)|0;b=s;u=l;A:while(1){if(c>>>0>=s>>>0){A=0;break}t=r[c>>0]|0;A=r[c+1>>0]|0;i=A&255;switch(A<<24>>24){case 0:{if(t<<24>>24>-1){A=a[f>>2]|0;if((A|0)==(l|0)){A=2;break A}a[f>>2]=A+1;r[A>>0]=t;A=c}else w=7;break}case 7:case 6:case 5:case 4:case 3:case 2:case 1:{w=7;break}case-37:case-38:case-39:case-40:{A=a[f>>2]|0;if((u-A|0)<4){A=2;break A}if((b-c|0)<4){A=1;break A}k=t&255;t=(i<<2&12|k>>>6)+1|0;a[f>>2]=A+1;r[A>>0]=t>>>2|240;A=a[f>>2]|0;a[f>>2]=A+1;r[A>>0]=k>>>2&15|t<<4&48|128;A=c+2|0;t=n[A>>0]|0;i=(k<<4&48|t>>>6|r[c+3>>0]<<2&12|128)&255;c=a[f>>2]|0;a[f>>2]=c+1;r[c>>0]=i;c=a[f>>2]|0;a[f>>2]=c+1;r[c>>0]=t&63|128;break}default:{A=a[f>>2]|0;if((u-A|0)<3){A=2;break A}a[f>>2]=A+1;r[A>>0]=i>>>4|224;k=t&255;A=a[f>>2]|0;a[f>>2]=A+1;r[A>>0]=k>>>6|i<<2&60|128;A=a[f>>2]|0;a[f>>2]=A+1;r[A>>0]=k&63|128;A=c}}if((w|0)==7){w=0;A=a[f>>2]|0;if((u-A|0)<2){A=2;break}k=t&255;a[f>>2]=A+1;r[A>>0]=k>>>6|i<<2|192;A=a[f>>2]|0;a[f>>2]=A+1;r[A>>0]=k&63|128;A=c}c=A+2|0}a[e>>2]=c;return A|0}function h$(A,e,i,l,t){A=A|0;e=e|0;i=i|0;l=l|0;t=t|0;var c=0,s=0,b=0;c=a[e>>2]|0;b=i-c&-2;A=c+b|0;if((b|0)>(t-(a[l>>2]|0)|0)){s=A+-2|0;i=(r[s+1>>0]&-8)<<24>>24==-40;b=i&1;A=i?s:A}else b=0;i=c;while(1){c=i>>>0>>0;s=a[l>>2]|0;if(!(c&s>>>0>>0))break;c=((n[i+1>>0]|0)<<8|(n[i>>0]|0))&65535;a[l>>2]=s+2;f[s>>1]=c;s=(a[e>>2]|0)+2|0;a[e>>2]=s;i=s}return((s|0)!=(t|0)|c^1?b:2)|0}function d$(A,e){A=A|0;e=e|0;var i=0;switch(A<<24>>24){case-37:case-38:case-39:case-40:{A=7;break}case-33:case-34:case-35:case-36:{A=8;break}case-1:{if((e&255)>253)A=0;else i=4;break}default:i=4}if((i|0)==4)A=29;return A|0}function B$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;b=i;c=b-e|0;A:do{if((c|0)>1){s=r[e+1>>0]|0;if(!(s<<24>>24)){t=r[e>>0]|0;l=n[A+72+(t&255)>>0]|0}else{t=r[e>>0]|0;l=d$(s,t)|0}switch(l|0){case 29:{c=t&255;if(!(1<<(c&31)&a[56940+((c>>>5|(n[143788+(s&255)>>0]|0)<<3)<<2)>>2])){a[f>>2]=e;A=0;break A}break}case 24:case 22:break;case 5:{a[f>>2]=e;A=0;break A}case 6:{if((c|0)<3){A=-2;break A}a[f>>2]=e;A=0;break A}case 7:{if((c|0)<4){A=-2;break A}a[f>>2]=e;A=0;break A}case 19:{A=v$(A,e+2|0,i,f)|0;break A}default:{a[f>>2]=e;A=0;break A}}s=A+72|0;c=e;e:while(1){t=c+2|0;e=b-t|0;if((e|0)<=1){A=-1;break A}A=r[c+3>>0]|0;l=r[t>>0]|0;if(!(A<<24>>24))i=n[s+(l&255)>>0]|0;else i=d$(A,l)|0;switch(i|0){case 27:case 26:case 25:case 24:case 22:{c=t;continue e}case 5:{l=23;break e}case 6:{l=24;break e}case 7:{l=26;break e}case 18:{l=28;break e}case 29:break;default:{l=29;break e}}e=l&255;if(!(1<<(e&31)&a[56940+((e>>>5|(n[144044+(A&255)>>0]|0)<<3)<<2)>>2])){l=22;break}else c=t}if((l|0)==22){a[f>>2]=t;A=0;break}else if((l|0)==23){a[f>>2]=t;A=0;break}else if((l|0)==24){if((e|0)<3){A=-2;break}a[f>>2]=t;A=0;break}else if((l|0)==26){if((e|0)<4){A=-2;break}a[f>>2]=t;A=0;break}else if((l|0)==28){a[f>>2]=c+4;A=9;break}else if((l|0)==29){a[f>>2]=t;A=0;break}}else A=-1}while(0);return A|0}function g$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;c=i-e|0;A:do{if((c|0)>1){s=r[e+1>>0]|0;if(!(s<<24>>24)){t=r[e>>0]|0;l=n[A+72+(t&255)>>0]|0}else{t=r[e>>0]|0;l=d$(s,t)|0}switch(l|0){case 29:{b=t&255;if(!(1<<(b&31)&a[56940+((b>>>5|(n[143788+(s&255)>>0]|0)<<3)<<2)>>2])){a[f>>2]=e;i=0;break A}break}case 24:case 22:break;case 5:{a[f>>2]=e;i=0;break A}case 6:{if((c|0)<3){i=-2;break A}a[f>>2]=e;i=0;break A}case 7:{if((c|0)<4){i=-2;break A}a[f>>2]=e;i=0;break A}case 30:case 9:case 10:case 21:{a[f>>2]=e;i=22;break A}default:{a[f>>2]=e;i=0;break A}}b=A+72|0;A=e;e:while(1){s=A+2|0;e=i-s|0;if((e|0)<=1){i=-1;break A}l=r[A+3>>0]|0;t=r[s>>0]|0;if(!(l<<24>>24))c=n[b+(t&255)>>0]|0;else c=d$(l,t)|0;switch(c|0){case 27:case 26:case 25:case 24:case 22:{A=s;continue e}case 5:{l=23;break e}case 6:{l=24;break e}case 7:{l=26;break e}case 18:{l=28;break e}case 29:break;default:{l=29;break e}}e=t&255;if(!(1<<(e&31)&a[56940+((e>>>5|(n[144044+(l&255)>>0]|0)<<3)<<2)>>2])){l=22;break}else A=s}if((l|0)==22){a[f>>2]=s;i=0;break}else if((l|0)==23){a[f>>2]=s;i=0;break}else if((l|0)==24){if((e|0)<3){i=-2;break}a[f>>2]=s;i=0;break}else if((l|0)==26){if((e|0)<4){i=-2;break}a[f>>2]=s;i=0;break}else if((l|0)==28){a[f>>2]=A+4;i=28;break}else if((l|0)==29){a[f>>2]=s;i=0;break}}else i=-1}while(0);return i|0}function v$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0;s=i;A:do{if((s-e|0)>1){t=r[e+1>>0]|0;l=r[e>>0]|0;do{if(!(t<<24>>24))if(l<<24>>24==120){l=E$(A,e+2|0,i,f)|0;break A}else{l=n[A+72+(l&255)>>0]|0;break}else l=d$(t,l)|0}while(0);if((l|0)!=25){a[f>>2]=e;l=0;break}c=A+72|0;A=e;e:while(1){t=A+2|0;if((s-t|0)<=1){l=-1;break A}l=r[A+3>>0]|0;i=r[t>>0]|0;if(!(l<<24>>24))l=n[c+(i&255)>>0]|0;else l=d$(l,i)|0;switch(l|0){case 25:{A=t;break}case 18:{i=15;break e}default:{i=16;break e}}}if((i|0)==15){a[f>>2]=A+4;l=10;break}else if((i|0)==16){a[f>>2]=t;l=0;break}}else l=-1}while(0);return l|0}function E$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0;A:do{if((i-e|0)>1){l=r[e+1>>0]|0;if(!(l<<24>>24))l=n[A+72+(n[e>>0]|0)>>0]|0;else l=d$(l,r[e>>0]|0)|0;if((l&-2|0)!=24){a[f>>2]=e;i=0;break}c=A+72|0;e:while(1){t=e+2|0;if((i-t|0)<=1){i=-1;break A}l=r[e+3>>0]|0;A=r[t>>0]|0;if(!(l<<24>>24))l=n[c+(A&255)>>0]|0;else l=d$(l,A)|0;switch(l|0){case 24:case 25:{e=t;break}case 18:{l=13;break e}default:{l=14;break e}}}if((l|0)==13){a[f>>2]=e+4;i=10;break}else if((l|0)==14){a[f>>2]=t;i=0;break}}else i=-1}while(0);return i|0}function C$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0;k=i;c=k-e|0;A:do{if((c|0)>1){s=r[e+1>>0]|0;if(!(s<<24>>24)){t=r[e>>0]|0;l=n[A+72+(t&255)>>0]|0}else{t=r[e>>0]|0;l=d$(s,t)|0}switch(l|0){case 29:{u=t&255;if(!(1<<(u&31)&a[56940+((u>>>5|n[143788+(s&255)>>0]<<3)<<2)>>2])){a[f>>2]=e;l=0;break A}break}case 24:case 22:break;case 5:{a[f>>2]=e;l=0;break A}case 6:{if((c|0)<3){l=-2;break A}a[f>>2]=e;l=0;break A}case 7:{if((c|0)<4){l=-2;break A}a[f>>2]=e;l=0;break A}case 16:{t=e+2|0;if((k-t|0)<=1){l=-1;break A}l=r[e+3>>0]|0;if(!(l<<24>>24))l=n[A+72+(n[t>>0]|0)>>0]|0;else l=d$(l,r[t>>0]|0)|0;switch(l|0){case 27:{l=I$(A,e+4|0,i,f)|0;break A}case 20:{l=Z$(e+4|0,i,f)|0;break A}default:{a[f>>2]=t;l=0;break A}}}case 15:{l=G$(A,e+2|0,i,f)|0;break A}case 17:{l=m$(A,e+2|0,i,f)|0;break A}default:{a[f>>2]=e;l=0;break A}}u=A+72|0;b=0;l=e+2|0;e:while(1){i:while(1){t=k-l|0;if((t|0)<=1){l=-1;break A}c=r[l+1>>0]|0;s=r[l>>0]|0;if(!(c<<24>>24))e=n[u+(s&255)>>0]|0;else e=d$(c,s)|0;switch(e|0){case 5:{w=34;break e}case 6:{w=35;break e}case 7:{w=37;break e}case 10:case 9:case 21:{w=55;break e}case 11:{w=69;break e}case 17:break e;case 23:break i;case 29:{e=s&255;if(!(1<<(e&31)&a[56940+((e>>>5|n[144044+(c&255)>>0]<<3)<<2)>>2])){w=32;break e}break}case 27:case 26:case 25:case 24:case 22:break;default:{w=75;break e}}l=l+2|0}if(b|0){w=40;break}s=l+2|0;e=k-s|0;if((e|0)<=1){l=-1;break A}b=r[l+3>>0]|0;t=r[s>>0]|0;if(!(b<<24>>24))c=n[u+(t&255)>>0]|0;else c=d$(b,t)|0;switch(c|0){case 5:{w=49;break e}case 6:{w=50;break e}case 7:{w=52;break e}case 29:{e=t&255;if(!(1<<(e&31)&a[56940+((e>>>5|n[143788+(b&255)>>0]<<3)<<2)>>2])){w=47;break e}break}case 24:case 22:break;default:{w=54;break e}}b=1;l=l+4|0}e:switch(w|0){case 32:{a[f>>2]=l;l=0;break A}case 34:{a[f>>2]=l;l=0;break A}case 35:{if((t|0)<3){l=-2;break A}a[f>>2]=l;l=0;break A}case 37:{if((t|0)<4){l=-2;break A}a[f>>2]=l;l=0;break A}case 40:{a[f>>2]=l;l=0;break A}case 47:{a[f>>2]=s;l=0;break A}case 49:{a[f>>2]=s;l=0;break A}case 50:{if((e|0)<3){l=-2;break A}a[f>>2]=s;l=0;break A}case 52:{if((e|0)<4){l=-2;break A}a[f>>2]=s;l=0;break A}case 54:{a[f>>2]=s;l=0;break A}case 55:{i:while(1){w=0;t=l+2|0;c=k-t|0;if((c|0)<=1){l=-1;break A}s=r[l+3>>0]|0;e=r[t>>0]|0;if(!(s<<24>>24))b=n[u+(e&255)>>0]|0;else b=d$(s,e)|0;switch(b|0){case 11:{l=t;w=69;break e}case 17:{l=t;break e}case 10:case 9:case 21:{l=t;w=55;break}case 29:{w=60;break i}case 24:case 22:break i;case 5:{w=63;break i}case 6:{w=64;break i}case 7:{w=66;break i}default:{w=68;break i}}}if((w|0)==60){k=e&255;if(!(1<<(k&31)&a[56940+((k>>>5|n[143788+(s&255)>>0]<<3)<<2)>>2])){a[f>>2]=t;l=0;break A}}else if((w|0)==63){a[f>>2]=t;l=0;break A}else if((w|0)==64){if((c|0)<3){l=-2;break A}a[f>>2]=t;l=0;break A}else if((w|0)==66){if((c|0)<4){l=-2;break A}a[f>>2]=t;l=0;break A}else if((w|0)==68){a[f>>2]=t;l=0;break A}l=Q$(A,l+4|0,i,f)|0;break A}case 75:{a[f>>2]=l;l=0;break A}}if((w|0)==69){a[f>>2]=l+2;l=2;break}t=l+2|0;if((k-t|0)>1){if((r[l+3>>0]|0)==0?(r[t>>0]|0)==62:0){a[f>>2]=l+4;l=4;break}a[f>>2]=t;l=0}else l=-1}else l=-1}while(0);return l|0}function I$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0;c=i;A:do{if((c-e|0)>1){if((r[e+1>>0]|0)==0?(r[e>>0]|0)==45:0){t=A+72|0;l=e+2|0;e:while(1){e=c-l|0;if((e|0)<=1){i=-1;break A}i=r[l+1>>0]|0;A=r[l>>0]|0;if(!(i<<24>>24))i=n[t+(A&255)>>0]|0;else i=d$(i,A)|0;switch(i|0){case 8:case 1:case 0:{s=16;break e}case 5:{l=l+2|0;continue e}case 6:{if((e|0)<3){i=-2;break A}l=l+3|0;continue e}case 7:{if((e|0)<4){i=-2;break A}l=l+4|0;continue e}case 27:{i=l+2|0;if((c-i|0)<=1){i=-1;break A}if(r[l+3>>0]|0){l=i;continue e}if((r[i>>0]|0)==45)break e;else{l=i;continue e}}default:{l=l+2|0;continue e}}}if((s|0)==16){a[f>>2]=l;i=0;break}i=l+4|0;if((c-i|0)<=1){i=-1;break}if((r[l+5>>0]|0)==0?(r[i>>0]|0)==62:0){a[f>>2]=l+6;i=13;break}a[f>>2]=i;i=0;break}a[f>>2]=e;i=0}else i=-1}while(0);return i|0}function Z$(A,e,i){A=A|0;e=e|0;i=i|0;if((e-A|0)>11){e=0;while(1){if((e|0)>=6){e=8;break}if(r[A+1>>0]|0){e=0;break}if((r[A>>0]|0)!=(r[144300+e>>0]|0)){e=0;break}e=e+1|0;A=A+2|0}a[i>>2]=A}else e=-1;return e|0}function G$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0;h=k;k=k+16|0;o=h;w=i;c=w-e|0;A:do{if((c|0)>1){i=r[e+1>>0]|0;if(!(i<<24>>24)){t=r[e>>0]|0;l=n[A+72+(t&255)>>0]|0}else{t=r[e>>0]|0;l=d$(i,t)|0}switch(l|0){case 29:{b=t&255;if(!(1<<(b&31)&a[56940+((b>>>5|n[143788+(i&255)>>0]<<3)<<2)>>2])){a[f>>2]=e;i=0;break A}break}case 24:case 22:break;case 5:{a[f>>2]=e;i=0;break A}case 6:{if((c|0)<3){i=-2;break A}a[f>>2]=e;i=0;break A}case 7:{if((c|0)<4){i=-2;break A}a[f>>2]=e;i=0;break A}default:{a[f>>2]=e;i=0;break A}}b=A+72|0;s=e;e:while(1){i=s+2|0;l=w-i|0;if((l|0)<=1){i=-1;break A}t=r[s+3>>0]|0;c=r[i>>0]|0;if(!(t<<24>>24))A=n[b+(c&255)>>0]|0;else A=d$(t,c)|0;switch(A|0){case 27:case 26:case 25:case 24:case 22:{s=i;continue e}case 5:{u=22;break e}case 6:{u=23;break e}case 7:{u=25;break e}case 10:case 9:case 21:{u=27;break e}case 15:{u=46;break e}case 29:break;default:break e}s=c&255;if(!(1<<(s&31)&a[56940+((s>>>5|n[144044+(t&255)>>0]<<3)<<2)>>2])){u=21;break}else s=i}if((u|0)==21){a[f>>2]=i;i=0;break}else if((u|0)==22){a[f>>2]=i;i=0;break}else if((u|0)==23){if((l|0)<3){i=-2;break}a[f>>2]=i;i=0;break}else if((u|0)==25){if((l|0)<4){i=-2;break}a[f>>2]=i;i=0;break}else if((u|0)==27){if(!(L$(e,i,o)|0)){a[f>>2]=i;i=0;break}c=s+4|0;e:while(1){t=w-c|0;if((t|0)<=1){i=-1;break A}i=r[c+1>>0]|0;l=r[c>>0]|0;if(!(i<<24>>24))i=n[b+(l&255)>>0]|0;else i=d$(i,l)|0;switch(i|0){case 8:case 1:case 0:{u=40;break e}case 5:{c=c+2|0;continue e}case 6:{if((t|0)<3){i=-2;break A}c=c+3|0;continue e}case 7:{if((t|0)<4){i=-2;break A}c=c+4|0;continue e}case 15:{i=c+2|0;if((w-i|0)<=1){i=-1;break A}if(r[c+3>>0]|0){c=i;continue e}if((r[i>>0]|0)==62){u=44;break e}else{c=i;continue e}}default:{c=c+2|0;continue e}}}if((u|0)==40){a[f>>2]=c;i=0;break}else if((u|0)==44){a[f>>2]=c+4;i=a[o>>2]|0;break}}else if((u|0)==46){if(!(L$(e,i,o)|0)){a[f>>2]=i;i=0;break}i=s+4|0;if((w-i|0)<=1){i=-1;break}if((r[s+5>>0]|0)==0?(r[i>>0]|0)==62:0){a[f>>2]=s+6;i=a[o>>2]|0;break}}a[f>>2]=i;i=0}else i=-1}while(0);k=h;return i|0}function m$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;c=i-e|0;A:do{if((c|0)>1){s=r[e+1>>0]|0;if(!(s<<24>>24)){t=r[e>>0]|0;l=n[A+72+(t&255)>>0]|0}else{t=r[e>>0]|0;l=d$(s,t)|0}switch(l|0){case 29:{b=t&255;if(!(1<<(b&31)&a[56940+((b>>>5|(n[143788+(s&255)>>0]|0)<<3)<<2)>>2])){a[f>>2]=e;i=0;break A}break}case 24:case 22:break;case 5:{a[f>>2]=e;i=0;break A}case 6:{if((c|0)<3){i=-2;break A}a[f>>2]=e;i=0;break A}case 7:{if((c|0)<4){i=-2;break A}a[f>>2]=e;i=0;break A}default:{a[f>>2]=e;i=0;break A}}b=A+72|0;A=e;e:while(1){c=A+2|0;e=i-c|0;if((e|0)<=1){i=-1;break A}l=r[A+3>>0]|0;t=r[c>>0]|0;if(!(l<<24>>24))s=n[b+(t&255)>>0]|0;else s=d$(l,t)|0;switch(s|0){case 23:case 27:case 26:case 25:case 24:case 22:{A=c;continue e}case 5:{l=22;break e}case 6:{l=23;break e}case 7:{l=25;break e}case 10:case 9:case 21:{l=27;break e}case 11:{l=34;break e}case 29:break;default:{l=35;break e}}e=t&255;if(!(1<<(e&31)&a[56940+((e>>>5|(n[144044+(l&255)>>0]|0)<<3)<<2)>>2])){l=21;break}else A=c}if((l|0)==21){a[f>>2]=c;i=0;break}else if((l|0)==22){a[f>>2]=c;i=0;break}else if((l|0)==23){if((e|0)<3){i=-2;break}a[f>>2]=c;i=0;break}else if((l|0)==25){if((e|0)<4){i=-2;break}a[f>>2]=c;i=0;break}else if((l|0)==27){e:while(1){s=c+2|0;if((i-s|0)<=1){i=-1;break A}l=r[c+3>>0]|0;t=r[s>>0]|0;if(!(l<<24>>24))l=n[b+(t&255)>>0]|0;else l=d$(l,t)|0;switch(l|0){case 10:case 9:case 21:{c=s;l=27;break}case 11:{l=32;break e}default:{l=33;break e}}}if((l|0)==32){a[f>>2]=c+4;i=5;break}else if((l|0)==33){a[f>>2]=s;i=0;break}}else if((l|0)==34){a[f>>2]=A+4;i=5;break}else if((l|0)==35){a[f>>2]=c;i=0;break}}else i=-1}while(0);return i|0}function Q$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0;B=k;k=k+16|0;h=B;a[h>>2]=e;d=i;w=A+72|0;l=0;A:while(1){e:while(1){b=d-e|0;if((b|0)<=1){e=-1;break A}t=r[e+1>>0]|0;c=r[e>>0]|0;if(!(t<<24>>24))s=n[w+(c&255)>>0]|0;else s=d$(t,c)|0;switch(s|0){case 5:{o=11;break A}case 6:{o=12;break A}case 7:{o=14;break A}case 23:{o=16;break e}case 10:case 9:case 21:{o=31;break e}case 14:{o=37;break e}case 29:{u=c&255;if(!(1<<(u&31)&a[56940+((u>>>5|n[144044+(t&255)>>0]<<3)<<2)>>2])){o=9;break A}break}case 27:case 26:case 25:case 24:case 22:break;default:{o=89;break A}}u=e+2|0;a[h>>2]=u;e=u}e:do{if((o|0)==16){o=0;if(l|0){o=17;break A}l=e+2|0;a[h>>2]=l;t=l;c=d-t|0;if((c|0)<=1){e=-1;break A}s=r[e+3>>0]|0;b=r[l>>0]|0;if(!(s<<24>>24))u=n[w+(b&255)>>0]|0;else u=d$(s,b)|0;switch(u|0){case 5:{o=25;break A}case 6:{o=26;break A}case 7:{o=28;break A}case 24:case 22:{l=1;break e}case 29:break;default:{o=30;break A}}u=b&255;if(!(1<<(u&31)&a[56940+((u>>>5|n[143788+(s&255)>>0]<<3)<<2)>>2])){o=24;break A}else l=1}else if((o|0)==31)while(1){o=0;t=e+2|0;a[h>>2]=t;c=t;if((d-c|0)<=1){e=-1;break A}e=r[e+3>>0]|0;l=r[t>>0]|0;if(!(e<<24>>24))e=n[w+(l&255)>>0]|0;else e=d$(e,l)|0;switch(e|0){case 14:{e=t;o=37;break e}case 9:case 10:case 21:{e=t;o=31;break}default:{o=36;break A}}}}while(0);e:do{if((o|0)==37){while(1){o=0;c=e+2|0;a[h>>2]=c;s=c;if((d-s|0)<=1){e=-1;break A}l=r[e+3>>0]|0;t=r[c>>0]|0;if(!(l<<24>>24))b=n[w+(t&255)>>0]|0;else b=d$(l,t)|0;if((b|1|0)==13)break;switch(b|0){case 9:case 10:case 21:{e=c;o=37;break}default:{o=43;break A}}}e=e+4|0;a[h>>2]=e;i:while(1){c=d-e|0;if((c|0)<=1){e=-1;break A}l=r[e+1>>0]|0;t=r[e>>0]|0;if(!(l<<24>>24))l=n[w+(t&255)>>0]|0;else l=d$(l,t)|0;if((l|0)==(b|0))break;switch(l|0){case 8:case 1:case 0:{o=56;break A}case 2:{o=61;break A}case 5:{u=e+2|0;a[h>>2]=u;e=u;continue i}case 6:{if((c|0)<3){e=-2;break A}u=e+3|0;a[h>>2]=u;e=u;continue i}case 7:{if((c|0)<4){e=-2;break A}u=e+4|0;a[h>>2]=u;e=u;continue i}case 3:{e=B$(A,e+2|0,i,h)|0;if((e|0)<1){o=59;break A}e=a[h>>2]|0;continue i}default:{u=e+2|0;a[h>>2]=u;e=u;continue i}}}t=e+2|0;a[h>>2]=t;s=t;if((d-s|0)<=1){e=-1;break A}l=r[e+3>>0]|0;c=r[t>>0]|0;if(!(l<<24>>24))l=n[w+(c&255)>>0]|0;else l=d$(l,c)|0;switch(l|0){case 11:{o=81;break A}case 17:{o=82;break A}case 10:case 9:case 21:{e=t;break}default:{o=68;break A}}i:while(1){t=e+2|0;a[h>>2]=t;l=t;c=d-l|0;if((c|0)<=1){e=-1;break A}s=r[e+3>>0]|0;b=r[t>>0]|0;if(!(s<<24>>24))u=n[w+(b&255)>>0]|0;else u=d$(s,b)|0;switch(u|0){case 5:{o=76;break A}case 6:{o=77;break A}case 7:{o=79;break A}case 11:{o=81;break A}case 17:{o=82;break A}case 24:case 22:{l=0;break e}case 10:case 9:case 21:{e=t;break}case 29:break i;default:{o=87;break A}}}u=b&255;if(!(1<<(u&31)&a[56940+((u>>>5|n[143788+(s&255)>>0]<<3)<<2)>>2])){o=75;break A}else l=0}}while(0);e=e+4|0;a[h>>2]=e}switch(o|0){case 9:{a[f>>2]=e;e=0;break}case 11:{a[f>>2]=e;e=0;break}case 12:{if((b|0)<3)e=-2;else{a[f>>2]=e;e=0}break}case 14:{if((b|0)<4)e=-2;else{a[f>>2]=e;e=0}break}case 17:{a[f>>2]=e;e=0;break}case 24:{a[f>>2]=l;e=0;break}case 25:{a[f>>2]=l;e=0;break}case 26:{if((c|0)<3)e=-2;else{a[f>>2]=l;e=0}break}case 28:{if((c|0)<4)e=-2;else{a[f>>2]=l;e=0}break}case 30:{a[f>>2]=t;e=0;break}case 36:{a[f>>2]=c;e=0;break}case 43:{a[f>>2]=s;e=0;break}case 56:{a[f>>2]=e;e=0;break}case 59:{if(!e){a[f>>2]=a[h>>2];e=0}break}case 61:{a[f>>2]=e;e=0;break}case 68:{a[f>>2]=s;e=0;break}case 75:{a[f>>2]=t;e=0;break}case 76:{a[f>>2]=t;e=0;break}case 77:{if((c|0)<3)e=-2;else{a[f>>2]=t;e=0}break}case 79:{if((c|0)<4)e=-2;else{a[f>>2]=t;e=0}break}case 81:{a[f>>2]=e+4;e=1;break}case 82:{l=t+2|0;a[h>>2]=l;e=l;if((d-e|0)>1){if((r[t+3>>0]|0)==0?(r[l>>0]|0)==62:0){a[f>>2]=t+4;e=3;break}a[f>>2]=e;e=0}else e=-1;break}case 87:{a[f>>2]=l;e=0;break}case 89:{a[f>>2]=e;e=0;break}}k=B;return e|0}function L$(A,e,i){A=A|0;e=e|0;i=i|0;a[i>>2]=11;A:do{if((e-A|0)==6?(r[A+1>>0]|0)==0:0){switch(r[A>>0]|0){case 120:{e=0;break}case 88:{e=1;break}default:{e=1;break A}}if(!(r[A+3>>0]|0)){switch(r[A+2>>0]|0){case 109:break;case 77:{e=1;break}default:{e=1;break A}}if(!(r[A+5>>0]|0)){switch(r[A+4>>0]|0){case 108:break;case 76:{e=0;break A}default:{e=1;break A}}if(!e){a[i>>2]=12;e=1}else e=0}else e=1}else e=1}else e=1}while(0);return e|0}function y$(A,e,i,f,l){A=A|0;e=e|0;i=i|0;f=f|0;l=l|0;var t=0,c=0,s=0,b=0;s=e+72|0;A:while(1){e:while(1){c=f-i|0;if((c|0)<=1){i=-1;break A}e=r[i+1>>0]|0;t=r[i>>0]|0;if(!(e<<24>>24))e=n[s+(t&255)>>0]|0;else e=d$(e,t)|0;switch(e|0){case 8:case 1:case 0:{b=10;break A}case 6:{b=9;break e}case 7:{b=19;break e}case 5:{i=i+2|0;continue e}case 13:case 12:{t=i+2|0;if((e|0)==(A|0)){b=12;break A}else{i=t;continue e}}default:{i=i+2|0;continue e}}}if((b|0)==9){b=0;if((c|0)<3){i=-2;break}else{i=i+3|0;continue}}else if((b|0)==19){b=0;if((c|0)<4){i=-2;break}else{i=i+4|0;continue}}}A:do{if((b|0)==10){a[l>>2]=i;i=0}else if((b|0)==12)if((f-t|0)>1){a[l>>2]=t;f=r[i+3>>0]|0;i=r[t>>0]|0;if(!(f<<24>>24))i=n[s+(i&255)>>0]|0;else i=d$(f,i)|0;switch(i|0){case 20:case 30:case 11:case 10:case 9:case 21:{i=27;break A}default:{}}i=0}else i=-27}while(0);return i|0}function W$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;s=i;A:do{if((s-e|0)>1){l=r[e+1>>0]|0;if(!(l<<24>>24))l=n[A+72+(n[e>>0]|0)>>0]|0;else l=d$(l,r[e>>0]|0)|0;switch(l|0){case 27:{l=I$(A,e+2|0,i,f)|0;break A}case 20:{a[f>>2]=e+2;l=33;break A}case 24:case 22:{c=A+72|0;e:while(1){t=e+2|0;i=s-t|0;if((i|0)<=1){l=-1;break A}l=r[e+3>>0]|0;A=r[t>>0]|0;if(!(l<<24>>24))l=n[c+(A&255)>>0]|0;else l=d$(l,A)|0;switch(l|0){case 24:case 22:{e=t;break}case 30:{b=15;break e}case 10:case 9:case 21:break e;default:{b=22;break e}}}if((b|0)==22){a[f>>2]=t;l=0;break A}e:do{if((b|0)==15){if((i|0)<=3){l=-1;break A}A=r[e+5>>0]|0;l=r[e+4>>0]|0;if(!(A<<24>>24))l=n[c+(l&255)>>0]|0;else l=d$(A,l)|0;switch(l|0){case 30:case 10:case 9:case 21:break;default:break e}a[f>>2]=t;l=0;break A}}while(0);a[f>>2]=t;l=16;break A}default:{a[f>>2]=e;l=0;break A}}}else l=-1}while(0);return l|0}function z$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0;c=i-e|0;A:do{if((c|0)>1){s=r[e+1>>0]|0;if(!(s<<24>>24)){t=r[e>>0]|0;l=n[A+72+(t&255)>>0]|0}else{t=r[e>>0]|0;l=d$(s,t)|0}switch(l|0){case 29:{c=t&255;if(!(1<<(c&31)&a[56940+((c>>>5|(n[143788+(s&255)>>0]|0)<<3)<<2)>>2])){a[f>>2]=e;i=0;break A}break}case 24:case 22:break;case 5:{a[f>>2]=e;i=0;break A}case 6:{if((c|0)<3){i=-2;break A}a[f>>2]=e;i=0;break A}case 7:{if((c|0)<4){i=-2;break A}a[f>>2]=e;i=0;break A}default:{a[f>>2]=e;i=0;break A}}A=A+72|0;s=e;e:while(1){l=s;s=s+2|0;e=i-s|0;if((e|0)<=1){i=-20;break A}l=r[l+3>>0]|0;t=r[s>>0]|0;if(!(l<<24>>24))c=n[A+(t&255)>>0]|0;else c=d$(l,t)|0;switch(c|0){case 27:case 26:case 25:case 24:case 22:continue e;case 5:{l=22;break e}case 6:{l=23;break e}case 7:{l=25;break e}case 36:case 30:case 11:case 32:case 21:case 10:case 9:{l=27;break e}case 29:break;default:{l=28;break e}}e=t&255;if(!(1<<(e&31)&a[56940+((e>>>5|(n[144044+(l&255)>>0]|0)<<3)<<2)>>2])){l=21;break}}if((l|0)==21){a[f>>2]=s;i=0;break}else if((l|0)==22){a[f>>2]=s;i=0;break}else if((l|0)==23){if((e|0)<3){i=-2;break}a[f>>2]=s;i=0;break}else if((l|0)==25){if((e|0)<4){i=-2;break}a[f>>2]=s;i=0;break}else if((l|0)==27){a[f>>2]=s;i=20;break}else if((l|0)==28){a[f>>2]=s;i=0;break}}else i=-1}while(0);return i|0}function Y$(A,e,i){A=A|0;e=e|0;i=i|0;i=D$(i)|0;if((i|0)==-1)i=0;else{r[A+69>>0]=i;a[A>>2]=67;a[A+4>>2]=68;a[A+48>>2]=31;a[A+72>>2]=e;a[e>>2]=A;i=1}return i|0}function D$(A){A=A|0;var e=0;A:do{if(!A)e=6;else{e=0;while(1){if((e|0)>=6){e=-1;break A}if(o0(A,a[60068+(e<<2)>>2]|0)|0)break A;e=e+1|0}}}while(0);return e|0}function M$(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;return J$(58948,A,0,e,i,r)|0}function F$(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;return J$(58948,A,1,e,i,r)|0}function V$(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;mq(58584,e,i,r);return}function J$(A,e,i,f,n,l){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;l=l|0;var t=0,c=0,s=0,b=0;A:do{if(f>>>0>>0){b=a[e+72>>2]|0;t=f+1|0;e:do{if((t|0)==(n|0)){t=r[e+69>>0]|0;if(((t<<24>>24)+-3|0)>>>0<3){t=-1;break A}switch(r[f>>0]|0){case 60:case 0:{t=-1;break A}case-17:case-1:case-2:break;default:break e}if(!((i|0)==1&t<<24>>24==0)){t=-1;break A}}else{s=r[f>>0]|0;t=r[t>>0]|0;c=((s&255)<<8|t&255)&65535;i:do{if(c<<16>>16<-2){if(c<<16>>16>=-257){switch(c<<16>>16){case-257:break;default:break i}if((i|0)==1&(r[e+69>>0]|0)==0)break e;a[l>>2]=f+2;a[b>>2]=a[A+16>>2];t=14;break A}switch(c<<16>>16){case-4165:break;default:break i}if((i|0)==1)switch(r[e+69>>0]|0){case 0:case 3:case 4:case 5:break e;default:{}}t=f+2|0;if((t|0)==(n|0)){t=-1;break A}if((r[t>>0]|0)!=-65)break e;a[l>>2]=f+3;a[b>>2]=a[A+8>>2];t=14;break A}else{if(c<<16>>16<15360){switch(c<<16>>16){case-2:break;default:break i}if((i|0)==1&(r[e+69>>0]|0)==0)break e;a[l>>2]=f+2;a[b>>2]=a[A+20>>2];t=14;break A}switch(c<<16>>16){case 15360:break;default:break i}t=r[e+69>>0]|0;if(t<<24>>24==4){if((i|0)==1)break e}else if((i|0)==1&t<<24>>24==3)break e;t=a[A+20>>2]|0;a[b>>2]=t;t=W5[a[t+(i<<2)>>2]&127](t,f,n,l)|0;break A}}while(0);if(s<<24>>24){if((i|0)==1|t<<24>>24!=0)break;t=a[A+20>>2]|0;a[b>>2]=t;t=W5[a[t+(i<<2)>>2]&127](t,f,n,l)|0;break A}if((i|0)==1?(r[e+69>>0]|0)==5:0)break;t=a[A+16>>2]|0;a[b>>2]=t;t=W5[a[t+(i<<2)>>2]&127](t,f,n,l)|0;break A}}while(0);t=a[A+(r[e+69>>0]<<2)>>2]|0;a[b>>2]=t;t=W5[a[t+(i<<2)>>2]&127](t,f,n,l)|0}else t=-4}while(0);return t|0}function p$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0,u=0;A:do{if(e>>>0>>0){t=e;u=i-t|0;s=(u&1|0)==0;u=u&-2;b=(u|0)==0;u=s|b?i:e+u|0;if(s|b^1){i=r[e>>0]|0;if(!(i<<24>>24)){l=r[e+1>>0]|0;c=l;l=n[A+72+(l&255)>>0]|0}else{l=r[e+1>>0]|0;c=l;l=d$(i,l)|0}do{switch(l|0){case 12:{i=b0(12,A,e+2|0,u,f)|0;break A}case 13:{i=b0(13,A,e+2|0,u,f)|0;break A}case 2:{l=e+2|0;if((u-l|0)<=1){i=-1;break A}i=r[l>>0]|0;if(!(i<<24>>24))i=n[A+72+(n[e+3>>0]|0)>>0]|0;else i=d$(i,r[e+3>>0]|0)|0;switch(i|0){case 16:{i=u0(A,e+4|0,u,f)|0;break A}case 15:{i=l0(A,e+4|0,u,f)|0;break A}case 7:case 6:case 5:case 29:case 24:case 22:{a[f>>2]=e;i=29;break A}default:{a[f>>2]=l;i=0;break A}}}case 9:{if((e+2|0)==(u|0)){a[f>>2]=u;i=-15;break A}else t=7;break}case 10:case 21:{t=7;break}case 30:{i=e0(A,e+2|0,u,f)|0;break A}case 35:{a[f>>2]=e+2;i=38;break A}case 20:{a[f>>2]=e+2;i=25;break A}case 4:{l=e+2|0;i=u-l|0;if((i|0)<=1){i=-26;break A}if((r[l>>0]|0)==0?(r[e+3>>0]|0)==93:0){if((i|0)<=3){i=-1;break A}if((r[e+4>>0]|0)==0?(r[e+5>>0]|0)==62:0){a[f>>2]=e+6;i=34;break A}}a[f>>2]=l;i=26;break A}case 31:{a[f>>2]=e+2;i=23;break A}case 32:{l=e+2|0;if((u-l|0)<=1){i=-24;break A}i=r[l>>0]|0;if(!(i<<24>>24))i=n[A+72+(n[e+3>>0]|0)>>0]|0;else i=d$(i,r[e+3>>0]|0)|0;switch(i|0){case 33:{a[f>>2]=e+4;i=36;break A}case 15:{a[f>>2]=e+4;i=35;break A}case 34:{a[f>>2]=e+4;i=37;break A}case 32:case 36:case 35:case 11:case 21:case 10:case 9:{a[f>>2]=l;i=24;break A}default:{a[f>>2]=l;i=0;break A}}}case 36:{a[f>>2]=e+2;i=21;break A}case 11:{a[f>>2]=e+2;i=17;break A}case 19:{i=w0(A,e+2|0,u,f)|0;break A}case 5:{if((u-t|0)<2){i=-2;break A}a[f>>2]=e;i=0;break A}case 6:{if((u-t|0)<3){i=-2;break A}a[f>>2]=e;i=0;break A}case 7:{if((u-t|0)<4){i=-2;break A}a[f>>2]=e;i=0;break A}case 24:case 22:{i=18;t=61;break}case 23:case 27:case 26:case 25:{i=19;t=61;break}case 29:{t=i&255;l=c&255;i=l>>>5;l=1<<(l&31);if(!(l&a[56940+((i|n[143788+t>>0]<<3)<<2)>>2]))if(!(a[56940+((n[144044+t>>0]<<3|i)<<2)>>2]&l))t=64;else{i=19;t=61}else{i=18;t=61}break}default:t=64}}while(0);if((t|0)==7){s=u;A=A+72|0;c=e;e:while(1){t=c;c=c+2|0;if((s-c|0)<=1){t=28;break}i=r[c>>0]|0;l=r[t+3>>0]|0;if(!(i<<24>>24))i=n[A+(l&255)>>0]|0;else i=d$(i,l)|0;switch(i|0){case 10:case 21:continue e;case 9:break;default:{t=27;break e}}if((t+4|0)==(u|0)){t=27;break}}if((t|0)==27){a[f>>2]=c;i=15;break}else if((t|0)==28){a[f>>2]=c;i=15;break}}else if((t|0)==61){b=A+72|0;l=e+2|0;e:while(1){e=i&255;i:while(1){s=u-l|0;if((s|0)<=1){t=104;break e}t=r[l>>0]|0;c=r[l+1>>0]|0;if(!(t<<24>>24))A=n[b+(c&255)>>0]|0;else A=d$(t,c)|0;switch(A|0){case 5:{t=73;break e}case 6:{t=74;break e}case 7:{t=76;break e}case 10:case 9:case 21:case 30:case 20:case 36:case 35:case 32:case 11:{t=78;break e}case 34:{t=94;break e}case 33:{t=97;break e}case 15:{t=100;break e}case 29:{s=c&255;if(!(1<<(s&31)&a[56940+((s>>>5|n[144044+(t&255)>>0]<<3)<<2)>>2])){t=71;break e}break}case 27:case 26:case 25:case 24:case 22:break;case 23:{s=l+2|0;switch(e&63){case 41:{i=19;l=s;continue e}case 18:break i;default:{l=s;continue i}}}default:{t=103;break e}}l=l+2|0}A=u-s|0;if((A|0)<=1){i=-1;break A}i=r[s>>0]|0;t=r[l+3>>0]|0;if(!(i<<24>>24))c=n[b+(t&255)>>0]|0;else c=d$(i,t)|0;switch(c|0){case 5:{t=89;break e}case 6:{t=90;break e}case 7:{t=92;break e}case 29:{e=t&255;if(!(1<<(e&31)&a[56940+((e>>>5|n[144044+(i&255)>>0]<<3)<<2)>>2])){t=87;break e}break}case 27:case 26:case 25:case 24:case 22:break;default:{i=19;l=s;continue e}}i=41;l=l+4|0}switch(t|0){case 71:{a[f>>2]=l;i=0;break A}case 73:{a[f>>2]=l;i=0;break A}case 74:{if((s|0)<3){i=-2;break A}a[f>>2]=l;i=0;break A}case 76:{if((s|0)<4){i=-2;break A}a[f>>2]=l;i=0;break A}case 78:{a[f>>2]=l;break A}case 87:{a[f>>2]=s;i=0;break A}case 89:{a[f>>2]=s;i=0;break A}case 90:{if((A|0)<3){i=-2;break A}a[f>>2]=s;i=0;break A}case 92:{if((A|0)<4){i=-2;break A}a[f>>2]=s;i=0;break A}case 94:if((i|0)==19){a[f>>2]=l;i=0;break A}else{a[f>>2]=l+2;i=32;break A}case 97:if((i|0)==19){a[f>>2]=l;i=0;break A}else{a[f>>2]=l+2;i=31;break A}case 100:if((i|0)==19){a[f>>2]=l;i=0;break A}else{a[f>>2]=l+2;i=30;break A}case 103:{a[f>>2]=l;i=0;break A}case 104:{i=0-i|0;break A}}}else if((t|0)==64){a[f>>2]=e;i=0;break}}else i=-1}else i=-4}while(0);return i|0}function N$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0;A:do{if(e>>>0>>0){l=e;t=i-l|0;s=(t&1|0)==0;t=t&-2;c=(t|0)==0;t=s|c?i:e+t|0;if(s|c^1){i=r[e>>0]|0;if(!(i<<24>>24))i=n[A+72+(n[e+1>>0]|0)>>0]|0;else i=d$(i,r[e+1>>0]|0)|0;do{switch(i|0){case 2:{i=f0(A,e+2|0,t,f)|0;break A}case 3:{i=A0(A,e+2|0,t,f)|0;break A}case 9:{l=e+2|0;if((t-l|0)<=1){i=-3;break A}i=r[l>>0]|0;if(!(i<<24>>24))i=n[A+72+(n[e+3>>0]|0)>>0]|0;else i=d$(i,r[e+3>>0]|0)|0;a[f>>2]=(i|0)==10?e+4|0:l;i=7;break A}case 10:{a[f>>2]=e+2;i=7;break A}case 4:{l=e+2|0;if((t-l|0)<=1){i=-5;break A}if((r[l>>0]|0)==0?(r[e+3>>0]|0)==93:0){i=e+4|0;if((t-i|0)<=1){i=-5;break A}if((r[i>>0]|0)==0?(r[e+5>>0]|0)==62:0){a[f>>2]=i;i=0;break A}else i=t}else i=t;break}case 5:{i=t;if((i-l|0)<2){i=-2;break A}l=e+2|0;break}case 6:{i=t;if((i-l|0)<3){i=-2;break A}l=e+3|0;break}case 7:{i=t;if((i-l|0)<4){i=-2;break A}l=e+4|0;break}case 8:case 1:case 0:{a[f>>2]=e;i=0;break A}default:{l=e+2|0;i=t}}}while(0);c=A+72|0;A=l;e:while(1){e=i-A|0;if((e|0)<=1){l=52;break}l=r[A>>0]|0;t=r[A+1>>0]|0;if(!(l<<24>>24))l=n[c+(t&255)>>0]|0;else l=d$(l,t)|0;switch(l|0){case 10:case 9:case 8:case 1:case 0:case 2:case 3:{l=50;break e}case 5:{A=A+2|0;continue e}case 6:{if((e|0)<3){l=38;break e}A=A+3|0;continue e}case 7:{if((e|0)<4){l=41;break e}A=A+4|0;continue e}case 4:{if((e|0)<=3){l=50;break e}l=A+2|0;if(r[l>>0]|0){A=l;continue e}if((r[A+3>>0]|0)!=93){A=l;continue e}if((e|0)<=5){l=50;break e}t=A+4|0;if(r[t>>0]|0){A=l;continue e}if((r[A+5>>0]|0)==62){l=49;break e}else{A=l;continue e}}default:{A=A+2|0;continue e}}}if((l|0)==38){a[f>>2]=A;i=6;break}else if((l|0)==41){a[f>>2]=A;i=6;break}else if((l|0)==49){a[f>>2]=t;i=0;break}else if((l|0)==50){a[f>>2]=A;i=6;break}else if((l|0)==52){a[f>>2]=A;i=6;break}}else i=-1}else i=-4}while(0);return i|0}function R$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0;A:do{if(e>>>0>>0){l=e;t=i-l|0;s=(t&1|0)==0;t=t&-2;c=(t|0)==0;t=s|c?i:e+t|0;if(s|c^1){i=r[e>>0]|0;if(!(i<<24>>24))i=n[A+72+(n[e+1>>0]|0)>>0]|0;else i=d$(i,r[e+1>>0]|0)|0;switch(i|0){case 4:{l=e+2|0;if((t-l|0)<=1){i=-1;break A}if((r[l>>0]|0)==0?(r[e+3>>0]|0)==93:0){i=e+4|0;if((t-i|0)<=1){i=-1;break A}if((r[i>>0]|0)==0?(r[e+5>>0]|0)==62:0){a[f>>2]=e+6;i=40;break A}}break}case 9:{l=e+2|0;if((t-l|0)<=1){i=-1;break A}i=r[l>>0]|0;if(!(i<<24>>24))i=n[A+72+(n[e+3>>0]|0)>>0]|0;else i=d$(i,r[e+3>>0]|0)|0;a[f>>2]=(i|0)==10?e+4|0:l;i=7;break A}case 10:{a[f>>2]=e+2;i=7;break A}case 5:{i=t;if((i-l|0)<2){i=-2;break A}l=e+2|0;t=i;break}case 6:{i=t;if((i-l|0)<3){i=-2;break A}l=e+3|0;t=i;break}case 7:{i=t;if((i-l|0)<4){i=-2;break A}l=e+4|0;t=i;break}case 8:case 1:case 0:{a[f>>2]=e;i=0;break A}default:l=e+2|0}c=A+72|0;A=l;e:while(1){e=t-A|0;if((e|0)<=1){l=40;break}i=r[A>>0]|0;l=r[A+1>>0]|0;if(!(i<<24>>24))i=n[c+(l&255)>>0]|0;else i=d$(i,l)|0;switch(i|0){case 10:case 9:case 8:case 1:case 0:case 4:{l=38;break e}case 6:{if((e|0)<3){l=35;break e}else i=3;break}case 7:{if((e|0)<4){l=37;break e}else i=4;break}default:i=2}A=A+i|0}if((l|0)==35){a[f>>2]=A;i=6;break}else if((l|0)==37){a[f>>2]=A;i=6;break}else if((l|0)==38){a[f>>2]=A;i=6;break}else if((l|0)==40){a[f>>2]=A;i=6;break}}else i=-1}else i=-4}while(0);return i|0}function X$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;s=i-e|0;s=(s&1|0)==0?i:e+(s&-2)|0;c=A+72|0;t=0;i=e;A:while(1){l=s-i|0;if((l|0)<=1){i=-1;break}A=r[i>>0]|0;e=r[i+1>>0]|0;if(!(A<<24>>24))A=n[c+(e&255)>>0]|0;else A=d$(A,e)|0;switch(A|0){case 8:case 1:case 0:{b=12;break A}case 5:{l=t;i=i+2|0;t=l;continue A}case 6:{if((l|0)<3){i=-2;break A}l=t;i=i+3|0;t=l;continue A}case 7:{if((l|0)<4){i=-2;break A}l=t;i=i+4|0;t=l;continue A}case 2:{A=i+2|0;if((s-A|0)<=1){i=-1;break A}if(r[A>>0]|0){l=t;i=A;t=l;continue A}if((r[i+3>>0]|0)!=33){l=t;i=A;t=l;continue A}A=i+4|0;if((s-A|0)<=1){i=-1;break A}if(r[A>>0]|0){l=t;i=A;t=l;continue A}l=(r[i+5>>0]|0)==91;t=t+(l&1)|0;i=l?i+6|0:A;continue A}case 4:{A=i+2|0;if((s-A|0)<=1){i=-1;break A}if(r[A>>0]|0){l=t;i=A;t=l;continue A}if((r[i+3>>0]|0)!=93){l=t;i=A;t=l;continue A}A=i+4|0;if((s-A|0)<=1){i=-1;break A}if(r[A>>0]|0){l=t;i=A;t=l;continue A}if((r[i+5>>0]|0)!=62){l=t;i=A;t=l;continue A}i=i+6|0;if(!t){b=26;break A}t=t+-1|0;continue A}default:{l=t;i=i+2|0;t=l;continue A}}}if((b|0)==12){a[f>>2]=i;i=0}else if((b|0)==26){a[f>>2]=i;i=42}return i|0}function H$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;do{if(e>>>0>>0){s=i;if((s-e|0)>1){b=A+72|0;c=e;A:while(1){if((s-c|0)<=1){t=30;break}l=r[c>>0]|0;t=r[c+1>>0]|0;if(!(l<<24>>24))l=n[b+(t&255)>>0]|0;else l=d$(l,t)|0;switch(l|0){case 3:{t=11;break A}case 2:{t=14;break A}case 10:{t=15;break A}case 9:{t=18;break A}case 21:{t=25;break A}case 5:{l=2;break}case 6:{l=3;break}case 7:{l=4;break}default:l=2}c=c+l|0}if((t|0)==11)if((c|0)==(e|0)){l=A0(A,e+2|0,i,f)|0;break}else{a[f>>2]=c;l=6;break}else if((t|0)==14){a[f>>2]=c;l=0;break}else if((t|0)==15)if((c|0)==(e|0)){a[f>>2]=e+2;l=7;break}else{a[f>>2]=c;l=6;break}else if((t|0)==18){if((c|0)!=(e|0)){a[f>>2]=c;l=6;break}c=e+2|0;if((s-c|0)<=1){l=-3;break}l=r[c>>0]|0;t=r[e+3>>0]|0;if(!(l<<24>>24))l=n[b+(t&255)>>0]|0;else l=d$(l,t)|0;a[f>>2]=(l|0)==10?e+4|0:c;l=7;break}else if((t|0)==25)if((c|0)==(e|0)){a[f>>2]=e+2;l=39;break}else{a[f>>2]=c;l=6;break}else if((t|0)==30){a[f>>2]=c;l=6;break}}else l=-1}else l=-4}while(0);return l|0}function U$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;do{if(e>>>0>>0){s=i;if((s-e|0)>1){b=A+72|0;c=e;A:while(1){if((s-c|0)<=1){t=29;break}l=r[c>>0]|0;t=r[c+1>>0]|0;if(!(l<<24>>24))l=n[b+(t&255)>>0]|0;else l=d$(l,t)|0;switch(l|0){case 3:{t=11;break A}case 30:{t=14;break A}case 10:{t=17;break A}case 9:{t=20;break A}case 5:{l=2;break}case 6:{l=3;break}case 7:{l=4;break}default:l=2}c=c+l|0}if((t|0)==11)if((c|0)==(e|0)){l=A0(A,e+2|0,i,f)|0;break}else{a[f>>2]=c;l=6;break}else if((t|0)==14)if((c|0)==(e|0)){l=e0(A,e+2|0,i,f)|0;l=(l|0)==22?0:l;break}else{a[f>>2]=c;l=6;break}else if((t|0)==17)if((c|0)==(e|0)){a[f>>2]=e+2;l=7;break}else{a[f>>2]=c;l=6;break}else if((t|0)==20){if((c|0)!=(e|0)){a[f>>2]=c;l=6;break}c=e+2|0;if((s-c|0)<=1){l=-3;break}l=r[c>>0]|0;t=r[e+3>>0]|0;if(!(l<<24>>24))l=n[b+(t&255)>>0]|0;else l=d$(l,t)|0;a[f>>2]=(l|0)==10?e+4|0:c;l=7;break}else if((t|0)==29){a[f>>2]=c;l=6;break}}else l=-1}else l=-4}while(0);return l|0}function x$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var a=0,n=0;a=i;A=e;while(1){e=r[f>>0]|0;if(!(e<<24>>24)){n=7;break}if((a-A|0)<2){A=0;break}if(r[A>>0]|0){A=0;break}if((r[A+1>>0]|0)!=e<<24>>24){A=0;break}f=f+1|0;A=A+2|0}if((n|0)==7)A=(A|0)==(i|0)&1;return A|0}function T$(A,e){A=A|0;e=e|0;var i=0,f=0,a=0;a=A+72|0;f=e;A:while(1){A=r[f>>0]|0;i=r[f+1>>0]|0;if(!(A<<24>>24))A=n[a+(i&255)>>0]|0;else A=d$(A,i)|0;switch(A|0){case 5:{A=2;break}case 6:{A=3;break}case 7:{A=4;break}case 27:case 26:case 25:case 24:case 23:case 22:case 29:{A=2;break}default:break A}f=f+A|0}return f-e|0}function j$(A,e){A=A|0;e=e|0;var i=0,f=0;f=A+72|0;A:while(1){A=r[e>>0]|0;i=r[e+1>>0]|0;if(!(A<<24>>24))A=n[f+(i&255)>>0]|0;else A=d$(A,i)|0;switch(A|0){case 21:case 9:case 10:break;default:break A}e=e+2|0}return e|0}function P$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0;k=A+72|0;u=0;w=0;A=1;A:while(1){b=e+2|0;l=r[b>>0]|0;c=l<<24>>24==0;t=e+3|0;s=r[t>>0]|0;if(c)l=n[k+(s&255)>>0]|0;else l=d$(l,s)|0;do{switch(l|0){case 5:{if(A|0){t=A;c=w;s=u;e=b;A=t;w=c;u=s;continue A}if((w|0)>=(i|0)){c=w;s=u;A=1;e=b;w=c;u=s;continue A}a[f+(w<<4)>>2]=b;r[f+(w<<4)+12>>0]=1;c=w;s=u;A=1;e=b;w=c;u=s;continue A}case 6:{if(A|0){c=A;s=w;b=u;e=t;A=c;w=s;u=b;continue A}if((w|0)>=(i|0)){s=w;b=u;A=1;e=t;w=s;u=b;continue A}a[f+(w<<4)>>2]=b;r[f+(w<<4)+12>>0]=1;s=w;b=u;A=1;e=t;w=s;u=b;continue A}case 7:{if(!A)if((w|0)<(i|0)){a[f+(w<<4)>>2]=b;r[f+(w<<4)+12>>0]=1;A=1}else A=1;s=w;b=u;e=e+4|0;w=s;u=b;continue A}case 24:case 22:case 29:{if(A|0){t=A;c=w;s=u;e=b;A=t;w=c;u=s;continue A}if((w|0)>=(i|0)){c=w;s=u;A=1;e=b;w=c;u=s;continue A}a[f+(w<<4)>>2]=b;r[f+(w<<4)+12>>0]=1;c=w;s=u;A=1;e=b;w=c;u=s;continue A}case 12:{if((A|0)!=2){if((w|0)>=(i|0)){s=w;u=12;A=2;e=b;w=s;continue A}a[f+(w<<4)+4>>2]=e+4;s=w;u=12;A=2;e=b;w=s;continue A}if((u|0)!=12){c=w;s=u;A=2;e=b;w=c;u=s;continue A}if((w|0)<(i|0))a[f+(w<<4)+8>>2]=b;u=12;w=w+1|0;A=0;e=b;continue A}case 13:{if((A|0)!=2){if((w|0)>=(i|0)){s=w;u=13;A=2;e=b;w=s;continue A}a[f+(w<<4)+4>>2]=e+4;s=w;u=13;A=2;e=b;w=s;continue A}if((u|0)!=13){c=w;s=u;A=2;e=b;w=c;u=s;continue A}if((w|0)<(i|0))a[f+(w<<4)+8>>2]=b;u=13;w=w+1|0;A=0;e=b;continue A}case 3:{if((w|0)>=(i|0)){t=A;c=w;s=u;e=b;A=t;w=c;u=s;continue A}r[f+(w<<4)+12>>0]=0;t=A;c=w;s=u;e=b;A=t;w=c;u=s;continue A}case 21:{switch(A|0){case 1:{c=w;s=u;A=0;e=b;w=c;u=s;continue A}case 2:break;default:{t=A;c=w;s=u;e=b;A=t;w=c;u=s;continue A}}if((w|0)>=(i|0)){c=w;s=u;A=2;e=b;w=c;u=s;continue A}t=f+(w<<4)+12|0;if(!(r[t>>0]|0)){c=w;s=u;A=2;e=b;w=c;u=s;continue A}do{if(c&(b|0)!=(a[f+(w<<4)+4>>2]|0)&s<<24>>24==32){l=r[e+4>>0]|0;A=r[e+5>>0]|0;if(!(l<<24>>24)){if(A<<24>>24==32)break;A=n[k+(A&255)>>0]|0}else A=d$(l,A)|0;if((A|0)!=(u|0)){c=w;s=u;A=2;e=b;w=c;u=s;continue A}}}while(0);r[t>>0]=0;c=w;s=u;A=2;e=b;w=c;u=s;continue A}case 10:case 9:{switch(A|0){case 1:{c=w;s=u;A=0;e=b;w=c;u=s;continue A}case 2:break;default:{t=A;c=w;s=u;e=b;A=t;w=c;u=s;continue A}}if((w|0)>=(i|0)){c=w;s=u;A=2;e=b;w=c;u=s;continue A}r[f+(w<<4)+12>>0]=0;c=w;s=u;A=2;e=b;w=c;u=s;continue A}case 17:case 11:if((A|0)==2){c=w;s=u;A=2;e=b;w=c;u=s;continue A}else break A;default:{t=A;c=w;s=u;e=b;A=t;w=c;u=s;continue A}}}while(0)}return w|0}function S$(A,e){A=A|0;e=e|0;var i=0,f=0;A=e+4|0;A:do{if(!(r[A>>0]|0))if((r[e+5>>0]|0)==120){e=e+6|0;A=0;while(1){e:while(1){if(!(r[e>>0]|0)){i=r[e+1>>0]|0;if(i<<24>>24==59){f=18;break A}i=i<<24>>24;switch(i|0){case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:case 48:{f=8;break e}case 70:case 69:case 68:case 67:case 66:case 65:{f=9;break e}case 102:case 101:case 100:case 99:case 98:case 97:{f=10;break e}default:{}}}e=e+2|0}if((f|0)==8)A=i+-48|A<<4;else if((f|0)==9)A=(A<<4)+-55+i|0;else if((f|0)==10)A=(A<<4)+-87+i|0;if((A|0)<1114112)e=e+2|0;else{A=-1;f=19;break}}}else{e=A;A=0;f=13}else{i=A;A=0;e=-1;f=16}}while(0);while(1)if((f|0)==13){if(r[e>>0]|0){i=e;e=-1;f=16;continue}if((r[e+1>>0]|0)==59){f=18;continue}i=e;e=r[e+1>>0]|0;f=16;continue}else if((f|0)==16){A=(A*10|0)+-48+e|0;if((A|0)>=1114112){A=-1;f=19;continue}e=i+2|0;f=13;continue}else if((f|0)==18){A=vb(A)|0;f=19;continue}else if((f|0)==19)return A|0;return 0}function O$(A,e,i){A=A|0;e=e|0;i=i|0;var f=0;A:do{switch((i-e|0)/2|0|0){case 2:{if((r[e+2>>0]|0)==0?(r[e+3>>0]|0)==116:0){if(!(r[e>>0]|0))A=r[e+1>>0]|0;else A=-1;A=(A|0)==108?60:(A|0)==103?62:0}else f=27;break}case 3:{if((((((r[e>>0]|0)==0?(r[e+1>>0]|0)==97:0)?(r[e+2>>0]|0)==0:0)?(r[e+3>>0]|0)==109:0)?(r[e+4>>0]|0)==0:0)?(r[e+5>>0]|0)==112:0)A=38;else f=27;break}case 4:{if(!(r[e>>0]|0))switch(r[e+1>>0]|0){case 113:{if(r[e+2>>0]|0){f=27;break A}if((r[e+3>>0]|0)!=117){f=27;break A}if(r[e+4>>0]|0){f=27;break A}if((r[e+5>>0]|0)!=111){f=27;break A}if(r[e+6>>0]|0){f=27;break A}if((r[e+7>>0]|0)==116){A=34;break A}else{f=27;break A}}case 97:{if(r[e+2>>0]|0){f=27;break A}if((r[e+3>>0]|0)!=112){f=27;break A}if(r[e+4>>0]|0){f=27;break A}if((r[e+5>>0]|0)!=111){f=27;break A}if(r[e+6>>0]|0){f=27;break A}if((r[e+7>>0]|0)==115){A=39;break A}else{f=27;break A}}default:{f=27;break A}}else f=27;break}default:f=27}}while(0);if((f|0)==27)A=0;return A|0}function K$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0;c=A+72|0;s=f+4|0;while(1){if((i-e|0)<=1)break;A=r[e>>0]|0;l=r[e+1>>0]|0;if(!(A<<24>>24))A=n[c+(l&255)>>0]|0;else A=d$(A,l)|0;switch(A|0){case 5:{e=e+2|0;break}case 6:{e=e+3|0;break}case 7:{e=e+4|0;break}case 10:{a[s>>2]=-1;a[f>>2]=(a[f>>2]|0)+1;e=e+2|0;break}case 9:{a[f>>2]=(a[f>>2]|0)+1;t=e+2|0;if((i-t|0)>1){A=r[t>>0]|0;l=r[e+3>>0]|0;if(!(A<<24>>24))A=n[c+(l&255)>>0]|0;else A=d$(A,l)|0;e=(A|0)==10?e+4|0:t}else e=t;a[s>>2]=-1;break}default:e=e+2|0}a[s>>2]=(a[s>>2]|0)+1}return}function _$(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;s=i+-2|0;c=A+72|0;A:while(1){l=e+2|0;if((s-l|0)<=1){i=1;break}i=r[l>>0]|0;t=i<<24>>24==0;A=r[e+3>>0]|0;if(t)i=n[c+(A&255)>>0]|0;else i=d$(i,A)|0;switch(i|0){case 23:case 19:case 30:case 33:case 16:case 18:case 10:case 9:case 15:case 14:case 17:case 35:case 34:case 32:case 31:case 13:case 27:case 24:case 25:{e=l;continue A}case 21:if(t&A<<24>>24==9){b=12;break A}else{e=l;continue A}case 22:case 26:{if(!t){b=12;break A}if(A<<24>>24>=0){e=l;continue A}break}default:if(!t){b=12;break A}}switch(A<<24>>24|0){case 64:case 36:{e=l;break}default:{b=12;break A}}}if((b|0)==12){a[f>>2]=l;i=0}return i|0}function q$(A,e,i,f,l){A=A|0;e=e|0;i=i|0;f=f|0;l=l|0;var t=0,c=0,s=0,b=0,u=0,w=0,k=0;c=a[e>>2]|0;s=c+(i-c&-2)|0;b=s;u=l;A:while(1){if(c>>>0>=s>>>0){A=0;break}t=r[c+1>>0]|0;A=r[c>>0]|0;i=A&255;switch(A<<24>>24){case 0:{if(t<<24>>24>-1){A=a[f>>2]|0;if((A|0)==(l|0)){A=2;break A}a[f>>2]=A+1;r[A>>0]=t;A=c}else w=7;break}case 7:case 6:case 5:case 4:case 3:case 2:case 1:{w=7;break}case-37:case-38:case-39:case-40:{A=a[f>>2]|0;if((u-A|0)<4){A=2;break A}if((b-c|0)<4){A=1;break A}k=t&255;t=(i<<2&12|k>>>6)+1|0;a[f>>2]=A+1;r[A>>0]=t>>>2|240;A=a[f>>2]|0;a[f>>2]=A+1;r[A>>0]=k>>>2&15|t<<4&48|128;A=c+2|0;t=n[c+3>>0]|0;i=(k<<4&48|t>>>6|r[A>>0]<<2&12|128)&255;c=a[f>>2]|0;a[f>>2]=c+1;r[c>>0]=i;c=a[f>>2]|0;a[f>>2]=c+1;r[c>>0]=t&63|128;break}default:{A=a[f>>2]|0;if((u-A|0)<3){A=2;break A}a[f>>2]=A+1;r[A>>0]=i>>>4|224;k=t&255;A=a[f>>2]|0;a[f>>2]=A+1;r[A>>0]=k>>>6|i<<2&60|128;A=a[f>>2]|0;a[f>>2]=A+1;r[A>>0]=k&63|128;A=c}}if((w|0)==7){w=0;A=a[f>>2]|0;if((u-A|0)<2){A=2;break}k=t&255;a[f>>2]=A+1;r[A>>0]=k>>>6|i<<2|192;A=a[f>>2]|0;a[f>>2]=A+1;r[A>>0]=k&63|128;A=c}c=A+2|0}a[e>>2]=c;return A|0}function $$(A,e,i,l,t){A=A|0;e=e|0;i=i|0;l=l|0;t=t|0;var c=0,s=0,b=0;c=a[e>>2]|0;b=i-c&-2;A=c+b|0;if((b|0)>(t-(a[l>>2]|0)|0)){s=A+-2|0;i=(r[s>>0]&-8)<<24>>24==-40;b=i&1;A=i?s:A}else b=0;i=c;while(1){c=i>>>0>>0;s=a[l>>2]|0;if(!(c&s>>>0>>0))break;c=((n[i>>0]|0)<<8|(n[i+1>>0]|0))&65535;a[l>>2]=s+2;f[s>>1]=c;s=(a[e>>2]|0)+2|0;a[e>>2]=s;i=s}return((s|0)!=(t|0)|c^1?b:2)|0}function A0(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;b=i;c=b-e|0;A:do{if((c|0)>1){s=r[e>>0]|0;if(!(s<<24>>24)){t=r[e+1>>0]|0;l=n[A+72+(t&255)>>0]|0}else{t=r[e+1>>0]|0;l=d$(s,t)|0}switch(l|0){case 29:{c=t&255;if(!(1<<(c&31)&a[56940+((c>>>5|(n[143788+(s&255)>>0]|0)<<3)<<2)>>2])){a[f>>2]=e;A=0;break A}break}case 24:case 22:break;case 5:{a[f>>2]=e;A=0;break A}case 6:{if((c|0)<3){A=-2;break A}a[f>>2]=e;A=0;break A}case 7:{if((c|0)<4){A=-2;break A}a[f>>2]=e;A=0;break A}case 19:{A=i0(A,e+2|0,i,f)|0;break A}default:{a[f>>2]=e;A=0;break A}}s=A+72|0;c=e;e:while(1){t=c+2|0;e=b-t|0;if((e|0)<=1){A=-1;break A}A=r[t>>0]|0;i=r[c+3>>0]|0;if(!(A<<24>>24))l=n[s+(i&255)>>0]|0;else l=d$(A,i)|0;switch(l|0){case 27:case 26:case 25:case 24:case 22:{c=t;continue e}case 5:{i=23;break e}case 6:{i=24;break e}case 7:{i=26;break e}case 18:{i=28;break e}case 29:break;default:{i=29;break e}}e=i&255;if(!(1<<(e&31)&a[56940+((e>>>5|(n[144044+(A&255)>>0]|0)<<3)<<2)>>2])){i=22;break}else c=t}if((i|0)==22){a[f>>2]=t;A=0;break}else if((i|0)==23){a[f>>2]=t;A=0;break}else if((i|0)==24){if((e|0)<3){A=-2;break}a[f>>2]=t;A=0;break}else if((i|0)==26){if((e|0)<4){A=-2;break}a[f>>2]=t;A=0;break}else if((i|0)==28){a[f>>2]=c+4;A=9;break}else if((i|0)==29){a[f>>2]=t;A=0;break}}else A=-1}while(0);return A|0}function e0(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;c=i-e|0;A:do{if((c|0)>1){s=r[e>>0]|0;if(!(s<<24>>24)){t=r[e+1>>0]|0;l=n[A+72+(t&255)>>0]|0}else{t=r[e+1>>0]|0;l=d$(s,t)|0}switch(l|0){case 29:{b=t&255;if(!(1<<(b&31)&a[56940+((b>>>5|(n[143788+(s&255)>>0]|0)<<3)<<2)>>2])){a[f>>2]=e;i=0;break A}break}case 24:case 22:break;case 5:{a[f>>2]=e;i=0;break A}case 6:{if((c|0)<3){i=-2;break A}a[f>>2]=e;i=0;break A}case 7:{if((c|0)<4){i=-2;break A}a[f>>2]=e;i=0;break A}case 30:case 9:case 10:case 21:{a[f>>2]=e;i=22;break A}default:{a[f>>2]=e;i=0;break A}}b=A+72|0;A=e;e:while(1){s=A+2|0;e=i-s|0;if((e|0)<=1){i=-1;break A}l=r[s>>0]|0;t=r[A+3>>0]|0;if(!(l<<24>>24))c=n[b+(t&255)>>0]|0;else c=d$(l,t)|0;switch(c|0){case 27:case 26:case 25:case 24:case 22:{A=s;continue e}case 5:{l=23;break e}case 6:{l=24;break e}case 7:{l=26;break e}case 18:{l=28;break e}case 29:break;default:{l=29;break e}}e=t&255;if(!(1<<(e&31)&a[56940+((e>>>5|(n[144044+(l&255)>>0]|0)<<3)<<2)>>2])){l=22;break}else A=s}if((l|0)==22){a[f>>2]=s;i=0;break}else if((l|0)==23){a[f>>2]=s;i=0;break}else if((l|0)==24){if((e|0)<3){i=-2;break}a[f>>2]=s;i=0;break}else if((l|0)==26){if((e|0)<4){i=-2;break}a[f>>2]=s;i=0;break}else if((l|0)==28){a[f>>2]=A+4;i=28;break}else if((l|0)==29){a[f>>2]=s;i=0;break}}else i=-1}while(0);return i|0}function i0(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0;s=i;A:do{if((s-e|0)>1){t=r[e>>0]|0;l=r[e+1>>0]|0;do{if(!(t<<24>>24))if(l<<24>>24==120){l=r0(A,e+2|0,i,f)|0;break A}else{l=n[A+72+(l&255)>>0]|0;break}else l=d$(t,l)|0}while(0);if((l|0)!=25){a[f>>2]=e;l=0;break}c=A+72|0;A=e;e:while(1){t=A+2|0;if((s-t|0)<=1){l=-1;break A}l=r[t>>0]|0;i=r[A+3>>0]|0;if(!(l<<24>>24))l=n[c+(i&255)>>0]|0;else l=d$(l,i)|0;switch(l|0){case 25:{A=t;break}case 18:{i=15;break e}default:{i=16;break e}}}if((i|0)==15){a[f>>2]=A+4;l=10;break}else if((i|0)==16){a[f>>2]=t;l=0;break}}else l=-1}while(0);return l|0}function r0(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0;A:do{if((i-e|0)>1){l=r[e>>0]|0;if(!(l<<24>>24))l=n[A+72+(n[e+1>>0]|0)>>0]|0;else l=d$(l,r[e+1>>0]|0)|0;if((l&-2|0)!=24){a[f>>2]=e;i=0;break}c=A+72|0;e:while(1){t=e+2|0;if((i-t|0)<=1){i=-1;break A}l=r[t>>0]|0;A=r[e+3>>0]|0;if(!(l<<24>>24))l=n[c+(A&255)>>0]|0;else l=d$(l,A)|0;switch(l|0){case 24:case 25:{e=t;break}case 18:{l=13;break e}default:{l=14;break e}}}if((l|0)==13){a[f>>2]=e+4;i=10;break}else if((l|0)==14){a[f>>2]=t;i=0;break}}else i=-1}while(0);return i|0}function f0(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0;k=i;c=k-e|0;A:do{if((c|0)>1){s=r[e>>0]|0;if(!(s<<24>>24)){t=r[e+1>>0]|0;l=n[A+72+(t&255)>>0]|0}else{t=r[e+1>>0]|0;l=d$(s,t)|0}switch(l|0){case 29:{u=t&255;if(!(1<<(u&31)&a[56940+((u>>>5|n[143788+(s&255)>>0]<<3)<<2)>>2])){a[f>>2]=e;l=0;break A}break}case 24:case 22:break;case 5:{a[f>>2]=e;l=0;break A}case 6:{if((c|0)<3){l=-2;break A}a[f>>2]=e;l=0;break A}case 7:{if((c|0)<4){l=-2;break A}a[f>>2]=e;l=0;break A}case 16:{t=e+2|0;if((k-t|0)<=1){l=-1;break A}l=r[t>>0]|0;if(!(l<<24>>24))l=n[A+72+(n[e+3>>0]|0)>>0]|0;else l=d$(l,r[e+3>>0]|0)|0;switch(l|0){case 27:{l=a0(A,e+4|0,i,f)|0;break A}case 20:{l=n0(e+4|0,i,f)|0;break A}default:{a[f>>2]=t;l=0;break A}}}case 15:{l=l0(A,e+2|0,i,f)|0;break A}case 17:{l=t0(A,e+2|0,i,f)|0;break A}default:{a[f>>2]=e;l=0;break A}}u=A+72|0;b=0;l=e+2|0;e:while(1){i:while(1){t=k-l|0;if((t|0)<=1){l=-1;break A}c=r[l>>0]|0;s=r[l+1>>0]|0;if(!(c<<24>>24))e=n[u+(s&255)>>0]|0;else e=d$(c,s)|0;switch(e|0){case 5:{w=34;break e}case 6:{w=35;break e}case 7:{w=37;break e}case 10:case 9:case 21:{w=55;break e}case 11:{w=69;break e}case 17:break e;case 23:break i;case 29:{e=s&255;if(!(1<<(e&31)&a[56940+((e>>>5|n[144044+(c&255)>>0]<<3)<<2)>>2])){w=32;break e}break}case 27:case 26:case 25:case 24:case 22:break;default:{w=75;break e}}l=l+2|0}if(b|0){w=40;break}e=l+2|0;b=k-e|0;if((b|0)<=1){l=-1;break A}t=r[e>>0]|0;c=r[l+3>>0]|0;if(!(t<<24>>24))s=n[u+(c&255)>>0]|0;else s=d$(t,c)|0;switch(s|0){case 5:{w=49;break e}case 6:{w=50;break e}case 7:{w=52;break e}case 29:{b=c&255;if(!(1<<(b&31)&a[56940+((b>>>5|n[143788+(t&255)>>0]<<3)<<2)>>2])){w=47;break e}break}case 24:case 22:break;default:{w=54;break e}}b=1;l=l+4|0}e:switch(w|0){case 32:{a[f>>2]=l;l=0;break A}case 34:{a[f>>2]=l;l=0;break A}case 35:{if((t|0)<3){l=-2;break A}a[f>>2]=l;l=0;break A}case 37:{if((t|0)<4){l=-2;break A}a[f>>2]=l;l=0;break A}case 40:{a[f>>2]=l;l=0;break A}case 47:{a[f>>2]=e;l=0;break A}case 49:{a[f>>2]=e;l=0;break A}case 50:{if((b|0)<3){l=-2;break A}a[f>>2]=e;l=0;break A}case 52:{if((b|0)<4){l=-2;break A}a[f>>2]=e;l=0;break A}case 54:{a[f>>2]=e;l=0;break A}case 55:{i:while(1){w=0;t=l+2|0;c=k-t|0;if((c|0)<=1){l=-1;break A}s=r[t>>0]|0;e=r[l+3>>0]|0;if(!(s<<24>>24))b=n[u+(e&255)>>0]|0;else b=d$(s,e)|0;switch(b|0){case 11:{l=t;w=69;break e}case 17:{l=t;break e}case 10:case 9:case 21:{l=t;w=55;break}case 29:{w=60;break i}case 24:case 22:break i;case 5:{w=63;break i}case 6:{w=64;break i}case 7:{w=66;break i}default:{w=68;break i}}}if((w|0)==60){k=e&255;if(!(1<<(k&31)&a[56940+((k>>>5|n[143788+(s&255)>>0]<<3)<<2)>>2])){a[f>>2]=t;l=0;break A}}else if((w|0)==63){a[f>>2]=t;l=0;break A}else if((w|0)==64){if((c|0)<3){l=-2;break A}a[f>>2]=t;l=0;break A}else if((w|0)==66){if((c|0)<4){l=-2;break A}a[f>>2]=t;l=0;break A}else if((w|0)==68){a[f>>2]=t;l=0;break A}l=c0(A,l+4|0,i,f)|0;break A}case 75:{a[f>>2]=l;l=0;break A}}if((w|0)==69){a[f>>2]=l+2;l=2;break}t=l+2|0;if((k-t|0)>1){if((r[t>>0]|0)==0?(r[l+3>>0]|0)==62:0){a[f>>2]=l+4;l=4;break}a[f>>2]=t;l=0}else l=-1}else l=-1}while(0);return l|0}function a0(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0;c=i;A:do{if((c-e|0)>1){if((r[e>>0]|0)==0?(r[e+1>>0]|0)==45:0){t=A+72|0;l=e+2|0;e:while(1){e=c-l|0;if((e|0)<=1){i=-1;break A}i=r[l>>0]|0;A=r[l+1>>0]|0;if(!(i<<24>>24))i=n[t+(A&255)>>0]|0;else i=d$(i,A)|0;switch(i|0){case 8:case 1:case 0:{s=16;break e}case 5:{l=l+2|0;continue e}case 6:{if((e|0)<3){i=-2;break A}l=l+3|0;continue e}case 7:{if((e|0)<4){i=-2;break A}l=l+4|0;continue e}case 27:{i=l+2|0;if((c-i|0)<=1){i=-1;break A}if(r[i>>0]|0){l=i;continue e}if((r[l+3>>0]|0)==45)break e;else{l=i;continue e}}default:{l=l+2|0;continue e}}}if((s|0)==16){a[f>>2]=l;i=0;break}i=l+4|0;if((c-i|0)<=1){i=-1;break}if((r[i>>0]|0)==0?(r[l+5>>0]|0)==62:0){a[f>>2]=l+6;i=13;break}a[f>>2]=i;i=0;break}a[f>>2]=e;i=0}else i=-1}while(0);return i|0}function n0(A,e,i){A=A|0;e=e|0;i=i|0;if((e-A|0)>11){e=0;while(1){if((e|0)>=6){e=8;break}if(r[A>>0]|0){e=0;break}if((r[A+1>>0]|0)!=(r[144300+e>>0]|0)){e=0;break}e=e+1|0;A=A+2|0}a[i>>2]=A}else e=-1;return e|0}function l0(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0;h=k;k=k+16|0;o=h;w=i;t=w-e|0;A:do{if((t|0)>1){c=r[e>>0]|0;if(!(c<<24>>24)){l=r[e+1>>0]|0;i=n[A+72+(l&255)>>0]|0}else{l=r[e+1>>0]|0;i=d$(c,l)|0}switch(i|0){case 29:{b=l&255;if(!(1<<(b&31)&a[56940+((b>>>5|n[143788+(c&255)>>0]<<3)<<2)>>2])){a[f>>2]=e;i=0;break A}break}case 24:case 22:break;case 5:{a[f>>2]=e;i=0;break A}case 6:{if((t|0)<3){i=-2;break A}a[f>>2]=e;i=0;break A}case 7:{if((t|0)<4){i=-2;break A}a[f>>2]=e;i=0;break A}default:{a[f>>2]=e;i=0;break A}}b=A+72|0;s=e;e:while(1){i=s+2|0;l=w-i|0;if((l|0)<=1){i=-1;break A}t=r[i>>0]|0;c=r[s+3>>0]|0;if(!(t<<24>>24))A=n[b+(c&255)>>0]|0;else A=d$(t,c)|0;switch(A|0){case 27:case 26:case 25:case 24:case 22:{s=i;continue e}case 5:{u=22;break e}case 6:{u=23;break e}case 7:{u=25;break e}case 10:case 9:case 21:{u=27;break e}case 15:{u=46;break e}case 29:break;default:break e}s=c&255;if(!(1<<(s&31)&a[56940+((s>>>5|n[144044+(t&255)>>0]<<3)<<2)>>2])){u=21;break}else s=i}if((u|0)==21){a[f>>2]=i;i=0;break}else if((u|0)==22){a[f>>2]=i;i=0;break}else if((u|0)==23){if((l|0)<3){i=-2;break}a[f>>2]=i;i=0;break}else if((u|0)==25){if((l|0)<4){i=-2;break}a[f>>2]=i;i=0;break}else if((u|0)==27){if(!(s0(e,i,o)|0)){a[f>>2]=i;i=0;break}c=s+4|0;e:while(1){t=w-c|0;if((t|0)<=1){i=-1;break A}i=r[c>>0]|0;l=r[c+1>>0]|0;if(!(i<<24>>24))i=n[b+(l&255)>>0]|0;else i=d$(i,l)|0;switch(i|0){case 8:case 1:case 0:{u=40;break e}case 5:{c=c+2|0;continue e}case 6:{if((t|0)<3){i=-2;break A}c=c+3|0;continue e}case 7:{if((t|0)<4){i=-2;break A}c=c+4|0;continue e}case 15:{i=c+2|0;if((w-i|0)<=1){i=-1;break A}if(r[i>>0]|0){c=i;continue e}if((r[c+3>>0]|0)==62){u=44;break e}else{c=i;continue e}}default:{c=c+2|0;continue e}}}if((u|0)==40){a[f>>2]=c;i=0;break}else if((u|0)==44){a[f>>2]=c+4;i=a[o>>2]|0;break}}else if((u|0)==46){if(!(s0(e,i,o)|0)){a[f>>2]=i;i=0;break}i=s+4|0;if((w-i|0)<=1){i=-1;break}if((r[i>>0]|0)==0?(r[s+5>>0]|0)==62:0){a[f>>2]=s+6;i=a[o>>2]|0;break}}a[f>>2]=i;i=0}else i=-1}while(0);k=h;return i|0}function t0(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;c=i-e|0;A:do{if((c|0)>1){s=r[e>>0]|0;if(!(s<<24>>24)){t=r[e+1>>0]|0;l=n[A+72+(t&255)>>0]|0}else{t=r[e+1>>0]|0;l=d$(s,t)|0}switch(l|0){case 29:{b=t&255;if(!(1<<(b&31)&a[56940+((b>>>5|(n[143788+(s&255)>>0]|0)<<3)<<2)>>2])){a[f>>2]=e;i=0;break A}break}case 24:case 22:break;case 5:{a[f>>2]=e;i=0;break A}case 6:{if((c|0)<3){i=-2;break A}a[f>>2]=e;i=0;break A}case 7:{if((c|0)<4){i=-2;break A}a[f>>2]=e;i=0;break A}default:{a[f>>2]=e;i=0;break A}}b=A+72|0;A=e;e:while(1){c=A+2|0;e=i-c|0;if((e|0)<=1){i=-1;break A}l=r[c>>0]|0;t=r[A+3>>0]|0;if(!(l<<24>>24))s=n[b+(t&255)>>0]|0;else s=d$(l,t)|0;switch(s|0){case 23:case 27:case 26:case 25:case 24:case 22:{A=c;continue e}case 5:{l=22;break e}case 6:{l=23;break e}case 7:{l=25;break e}case 10:case 9:case 21:{l=27;break e}case 11:{l=34;break e}case 29:break;default:{l=35;break e}}e=t&255;if(!(1<<(e&31)&a[56940+((e>>>5|(n[144044+(l&255)>>0]|0)<<3)<<2)>>2])){l=21;break}else A=c}if((l|0)==21){a[f>>2]=c;i=0;break}else if((l|0)==22){a[f>>2]=c;i=0;break}else if((l|0)==23){if((e|0)<3){i=-2;break}a[f>>2]=c;i=0;break}else if((l|0)==25){if((e|0)<4){i=-2;break}a[f>>2]=c;i=0;break}else if((l|0)==27){e:while(1){s=c+2|0;if((i-s|0)<=1){i=-1;break A}l=r[s>>0]|0;t=r[c+3>>0]|0;if(!(l<<24>>24))l=n[b+(t&255)>>0]|0;else l=d$(l,t)|0;switch(l|0){case 10:case 9:case 21:{c=s;l=27;break}case 11:{l=32;break e}default:{l=33;break e}}}if((l|0)==32){a[f>>2]=c+4;i=5;break}else if((l|0)==33){a[f>>2]=s;i=0;break}}else if((l|0)==34){a[f>>2]=A+4;i=5;break}else if((l|0)==35){a[f>>2]=c;i=0;break}}else i=-1}while(0);return i|0}function c0(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0;B=k;k=k+16|0;h=B;a[h>>2]=e;d=i;w=A+72|0;l=0;A:while(1){e:while(1){b=d-e|0;if((b|0)<=1){e=-1;break A}t=r[e>>0]|0;c=r[e+1>>0]|0;if(!(t<<24>>24))s=n[w+(c&255)>>0]|0;else s=d$(t,c)|0;switch(s|0){case 5:{o=11;break A}case 6:{o=12;break A}case 7:{o=14;break A}case 23:{o=16;break e}case 10:case 9:case 21:{o=31;break e}case 14:{o=37;break e}case 29:{u=c&255;if(!(1<<(u&31)&a[56940+((u>>>5|n[144044+(t&255)>>0]<<3)<<2)>>2])){o=9;break A}break}case 27:case 26:case 25:case 24:case 22:break;default:{o=89;break A}}u=e+2|0;a[h>>2]=u;e=u}e:do{if((o|0)==16){o=0;if(l|0){o=17;break A}l=e+2|0;a[h>>2]=l;t=l;c=d-t|0;if((c|0)<=1){e=-1;break A}s=r[l>>0]|0;b=r[e+3>>0]|0;if(!(s<<24>>24))u=n[w+(b&255)>>0]|0;else u=d$(s,b)|0;switch(u|0){case 5:{o=25;break A}case 6:{o=26;break A}case 7:{o=28;break A}case 24:case 22:{l=1;break e}case 29:break;default:{o=30;break A}}u=b&255;if(!(1<<(u&31)&a[56940+((u>>>5|n[143788+(s&255)>>0]<<3)<<2)>>2])){o=24;break A}else l=1}else if((o|0)==31)while(1){o=0;t=e+2|0;a[h>>2]=t;c=t;if((d-c|0)<=1){e=-1;break A}l=r[t>>0]|0;e=r[e+3>>0]|0;if(!(l<<24>>24))e=n[w+(e&255)>>0]|0;else e=d$(l,e)|0;switch(e|0){case 14:{e=t;o=37;break e}case 9:case 10:case 21:{e=t;o=31;break}default:{o=36;break A}}}}while(0);e:do{if((o|0)==37){while(1){o=0;c=e+2|0;a[h>>2]=c;s=c;if((d-s|0)<=1){e=-1;break A}l=r[c>>0]|0;t=r[e+3>>0]|0;if(!(l<<24>>24))b=n[w+(t&255)>>0]|0;else b=d$(l,t)|0;if((b|1|0)==13)break;switch(b|0){case 9:case 10:case 21:{e=c;o=37;break}default:{o=43;break A}}}e=e+4|0;a[h>>2]=e;i:while(1){c=d-e|0;if((c|0)<=1){e=-1;break A}l=r[e>>0]|0;t=r[e+1>>0]|0;if(!(l<<24>>24))l=n[w+(t&255)>>0]|0;else l=d$(l,t)|0;if((l|0)==(b|0))break;switch(l|0){case 8:case 1:case 0:{o=56;break A}case 2:{o=61;break A}case 5:{u=e+2|0;a[h>>2]=u;e=u;continue i}case 6:{if((c|0)<3){e=-2;break A}u=e+3|0;a[h>>2]=u;e=u;continue i}case 7:{if((c|0)<4){e=-2;break A}u=e+4|0;a[h>>2]=u;e=u;continue i}case 3:{e=A0(A,e+2|0,i,h)|0;if((e|0)<1){o=59;break A}e=a[h>>2]|0;continue i}default:{u=e+2|0;a[h>>2]=u;e=u;continue i}}}t=e+2|0;a[h>>2]=t;s=t;if((d-s|0)<=1){e=-1;break A}l=r[t>>0]|0;c=r[e+3>>0]|0;if(!(l<<24>>24))l=n[w+(c&255)>>0]|0;else l=d$(l,c)|0;switch(l|0){case 11:{o=81;break A}case 17:{o=82;break A}case 10:case 9:case 21:{e=t;break}default:{o=68;break A}}i:while(1){t=e+2|0;a[h>>2]=t;l=t;c=d-l|0;if((c|0)<=1){e=-1;break A}s=r[t>>0]|0;b=r[e+3>>0]|0;if(!(s<<24>>24))u=n[w+(b&255)>>0]|0;else u=d$(s,b)|0;switch(u|0){case 5:{o=76;break A}case 6:{o=77;break A}case 7:{o=79;break A}case 11:{o=81;break A}case 17:{o=82;break A}case 24:case 22:{l=0;break e}case 10:case 9:case 21:{e=t;break}case 29:break i;default:{o=87;break A}}}u=b&255;if(!(1<<(u&31)&a[56940+((u>>>5|n[143788+(s&255)>>0]<<3)<<2)>>2])){o=75;break A}else l=0}}while(0);e=e+4|0;a[h>>2]=e}switch(o|0){case 9:{a[f>>2]=e;e=0;break}case 11:{a[f>>2]=e;e=0;break}case 12:{if((b|0)<3)e=-2;else{a[f>>2]=e;e=0}break}case 14:{if((b|0)<4)e=-2;else{a[f>>2]=e;e=0}break}case 17:{a[f>>2]=e;e=0;break}case 24:{a[f>>2]=l;e=0;break}case 25:{a[f>>2]=l;e=0;break}case 26:{if((c|0)<3)e=-2;else{a[f>>2]=l;e=0}break}case 28:{if((c|0)<4)e=-2;else{a[f>>2]=l;e=0}break}case 30:{a[f>>2]=t;e=0;break}case 36:{a[f>>2]=c;e=0;break}case 43:{a[f>>2]=s;e=0;break}case 56:{a[f>>2]=e;e=0;break}case 59:{if(!e){a[f>>2]=a[h>>2];e=0}break}case 61:{a[f>>2]=e;e=0;break}case 68:{a[f>>2]=s;e=0;break}case 75:{a[f>>2]=t;e=0;break}case 76:{a[f>>2]=t;e=0;break}case 77:{if((c|0)<3)e=-2;else{a[f>>2]=t;e=0}break}case 79:{if((c|0)<4)e=-2;else{a[f>>2]=t;e=0}break}case 81:{a[f>>2]=e+4;e=1;break}case 82:{l=t+2|0;a[h>>2]=l;e=l;if((d-e|0)>1){if((r[l>>0]|0)==0?(r[t+3>>0]|0)==62:0){a[f>>2]=t+4;e=3;break}a[f>>2]=e;e=0}else e=-1;break}case 87:{a[f>>2]=l;e=0;break}case 89:{a[f>>2]=e;e=0;break}}k=B;return e|0}function s0(A,e,i){A=A|0;e=e|0;i=i|0;a[i>>2]=11;A:do{if((e-A|0)==6?(r[A>>0]|0)==0:0){switch(r[A+1>>0]|0){case 120:{e=0;break}case 88:{e=1;break}default:{e=1;break A}}if(!(r[A+2>>0]|0)){switch(r[A+3>>0]|0){case 109:break;case 77:{e=1;break}default:{e=1;break A}}if(!(r[A+4>>0]|0)){switch(r[A+5>>0]|0){case 108:break;case 76:{e=0;break A}default:{e=1;break A}}if(!e){a[i>>2]=12;e=1}else e=0}else e=1}else e=1}else e=1}while(0);return e|0}function b0(A,e,i,f,l){A=A|0;e=e|0;i=i|0;f=f|0;l=l|0;var t=0,c=0,s=0,b=0;s=e+72|0;A:while(1){e:while(1){c=f-i|0;if((c|0)<=1){i=-1;break A}e=r[i>>0]|0;t=r[i+1>>0]|0;if(!(e<<24>>24))t=n[s+(t&255)>>0]|0;else t=d$(e,t)|0;switch(t|0){case 8:case 1:case 0:{b=10;break A}case 6:{b=9;break e}case 7:{b=19;break e}case 5:{i=i+2|0;continue e}case 13:case 12:{e=i+2|0;if((t|0)==(A|0)){b=12;break A}else{i=e;continue e}}default:{i=i+2|0;continue e}}}if((b|0)==9){b=0;if((c|0)<3){i=-2;break}else{i=i+3|0;continue}}else if((b|0)==19){b=0;if((c|0)<4){i=-2;break}else{i=i+4|0;continue}}}A:do{if((b|0)==10){a[l>>2]=i;i=0}else if((b|0)==12)if((f-e|0)>1){a[l>>2]=e;f=r[e>>0]|0;i=r[i+3>>0]|0;if(!(f<<24>>24))i=n[s+(i&255)>>0]|0;else i=d$(f,i)|0;switch(i|0){case 20:case 30:case 11:case 10:case 9:case 21:{i=27;break A}default:{}}i=0}else i=-27}while(0);return i|0}function u0(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0,b=0;s=i;A:do{if((s-e|0)>1){l=r[e>>0]|0;if(!(l<<24>>24))l=n[A+72+(n[e+1>>0]|0)>>0]|0;else l=d$(l,r[e+1>>0]|0)|0;switch(l|0){case 27:{l=a0(A,e+2|0,i,f)|0;break A}case 20:{a[f>>2]=e+2;l=33;break A}case 24:case 22:{c=A+72|0;e:while(1){t=e+2|0;i=s-t|0;if((i|0)<=1){l=-1;break A}l=r[t>>0]|0;A=r[e+3>>0]|0;if(!(l<<24>>24))l=n[c+(A&255)>>0]|0;else l=d$(l,A)|0;switch(l|0){case 24:case 22:{e=t;break}case 30:{b=15;break e}case 10:case 9:case 21:break e;default:{b=22;break e}}}if((b|0)==22){a[f>>2]=t;l=0;break A}e:do{if((b|0)==15){if((i|0)<=3){l=-1;break A}A=r[e+4>>0]|0;l=r[e+5>>0]|0;if(!(A<<24>>24))l=n[c+(l&255)>>0]|0;else l=d$(A,l)|0;switch(l|0){case 30:case 10:case 9:case 21:break;default:break e}a[f>>2]=t;l=0;break A}}while(0);a[f>>2]=t;l=16;break A}default:{a[f>>2]=e;l=0;break A}}}else l=-1}while(0);return l|0}function w0(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var l=0,t=0,c=0,s=0;c=i-e|0;A:do{if((c|0)>1){s=r[e>>0]|0;if(!(s<<24>>24)){t=r[e+1>>0]|0;l=n[A+72+(t&255)>>0]|0}else{t=r[e+1>>0]|0;l=d$(s,t)|0}switch(l|0){case 29:{c=t&255;if(!(1<<(c&31)&a[56940+((c>>>5|(n[143788+(s&255)>>0]|0)<<3)<<2)>>2])){a[f>>2]=e;i=0;break A}break}case 24:case 22:break;case 5:{a[f>>2]=e;i=0;break A}case 6:{if((c|0)<3){i=-2;break A}a[f>>2]=e;i=0;break A}case 7:{if((c|0)<4){i=-2;break A}a[f>>2]=e;i=0;break A}default:{a[f>>2]=e;i=0;break A}}A=A+72|0;s=e;e:while(1){l=s;s=s+2|0;e=i-s|0;if((e|0)<=1){i=-20;break A}c=r[s>>0]|0;l=r[l+3>>0]|0;if(!(c<<24>>24))t=n[A+(l&255)>>0]|0;else t=d$(c,l)|0;switch(t|0){case 27:case 26:case 25:case 24:case 22:continue e;case 5:{l=22;break e}case 6:{l=23;break e}case 7:{l=25;break e}case 36:case 30:case 11:case 32:case 21:case 10:case 9:{l=27;break e}case 29:break;default:{l=28;break e}}e=l&255;if(!(1<<(e&31)&a[56940+((e>>>5|(n[144044+(c&255)>>0]|0)<<3)<<2)>>2])){l=21;break}}if((l|0)==21){a[f>>2]=s;i=0;break}else if((l|0)==22){a[f>>2]=s;i=0;break}else if((l|0)==23){if((e|0)<3){i=-2;break}a[f>>2]=s;i=0;break}else if((l|0)==25){if((e|0)<4){i=-2;break}a[f>>2]=s;i=0;break}else if((l|0)==27){a[f>>2]=s;i=20;break}else if((l|0)==28){a[f>>2]=s;i=0;break}}else i=-1}while(0);return i|0}function k0(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0,t=0;while(1){A=a[e>>2]|0;l=A>>>0>>0;t=a[f>>2]|0;if(!(l&t>>>0>>0))break;a[e>>2]=A+1;l=r[A>>0]|0;t=a[f>>2]|0;a[f>>2]=t+1;r[t>>0]=l}return((t|0)!=(n|0)|l^1?0:2)|0}function o0(A,e){A=A|0;e=e|0;var i=0,f=0,a=0,n=0;A:while(1){a=r[A>>0]|0;n=r[e>>0]|0;a=(a+-97&255)<26?(a&255)+224&255:a;switch((a<<24>>24==((n+-97&255)<26?(n&255)+224&255:n)<<24>>24?a<<24>>24==0?2:0:1)&3){case 0:{e=e+1|0;A=A+1|0;break}case 1:{f=3;break A}case 2:{i=1;break A}default:{f=5;break A}}}if((f|0)==3)i=0;return i|0}function h0(A,e,i,r,f,a,n,l,t,c){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;n=n|0;l=l|0;t=t|0;c=c|0;return B0(39,A,e,i,r,f,a,n,l,t,c)|0}function d0(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0;l=k;k=k+144|0;t=l+4|0;f=l+8|0;n=l;a[t>>2]=e;a[n>>2]=f;z5[a[A+56>>2]&127](A,t,i,n,f+127|0)|0;do{if((a[t>>2]|0)==(i|0)){r[a[n>>2]>>0]=0;if(o0(f,144315)|0?(a[A+64>>2]|0)==2:0)break;A=D$(f)|0;if((A|0)!=-1)A=a[58948+(A<<2)>>2]|0;else A=0}else A=0}while(0);k=l;return A|0}function B0(A,e,i,r,f,n,l,t,c,s,b){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;t=t|0;c=c|0;s=s|0;b=b|0;var u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0;E=k;k=k+16|0;g=E+8|0;h=E+12|0;w=E+4|0;o=E;a[h>>2]=0;a[w>>2]=0;a[o>>2]=0;v=i+64|0;B=a[v>>2]|0;d=r+(B*5|0)|0;a[g>>2]=d;B=f+(0-(B<<1))|0;d=(g0(i,d,B,w,o,h,g)|0)!=0;u=a[w>>2]|0;r=u;A:do{if(d&(u|0)!=0){d=i+24|0;f=a[o>>2]|0;do{if(!(W5[a[d>>2]&127](i,u,f,144340)|0)){if(!e){a[n>>2]=r;r=0;break A}}else{if(l|0)a[l>>2]=a[h>>2];if(!t)r=a[g>>2]|0;else{r=a[g>>2]|0;a[t>>2]=r}if(!(g0(i,r,B,w,o,h,g)|0)){a[n>>2]=a[g>>2];r=0;break A}f=a[w>>2]|0;if(f|0){r=f;u=f;f=a[o>>2]|0;break}if(!e){r=1;break A}a[n>>2]=a[g>>2];r=0;break A}}while(0);if(W5[a[d>>2]&127](i,u,f,144348)|0){f=a[h>>2]|0;r=f;if((((v0(i,f,B)|0)&-33)+-65|0)>>>0>=26){a[n>>2]=r;r=0;break}if(c|0)a[c>>2]=r;r=a[g>>2]|0;if(s|0)a[s>>2]=y5[A&63](i,f,r+(0-(a[v>>2]|0))|0)|0;if(!(g0(i,r,B,w,o,h,g)|0)){a[n>>2]=a[g>>2];r=0;break}r=a[w>>2]|0;if(!r){r=1;break}u=r;f=a[o>>2]|0}if((e|0)!=0|(W5[a[d>>2]&127](i,u,f,144357)|0)==0){a[n>>2]=r;r=0;break}f=a[h>>2]|0;r=a[g>>2]|0;u=f;if(!(W5[a[d>>2]&127](i,f,r+(0-(a[v>>2]|0))|0,107657)|0)){if(!(W5[a[d>>2]&127](i,f,r+(0-(a[v>>2]|0))|0,107649)|0)){a[n>>2]=u;r=0;break}if(b)a[b>>2]=0}else if(b)a[b>>2]=1;while(1){if(!(E0(v0(i,r,B)|0)|0))break;r=r+(a[v>>2]|0)|0}a[g>>2]=r;if((r|0)==(B|0))r=1;else{a[n>>2]=r;r=0}}else{a[n>>2]=a[g>>2];r=0}}while(0);k=E;return r|0}function g0(A,e,i,r,f,n,l){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;var t=0,c=0;A:do{if((e|0)!=(i|0)){if(!(E0(v0(A,e,i)|0)|0)){a[l>>2]=e;e=0;break}c=A+64|0;do{e=e+(a[c>>2]|0)|0}while((E0(v0(A,e,i)|0)|0)!=0);if((e|0)==(i|0)){a[r>>2]=0;e=1;break}a[r>>2]=e;e:while(1){t=v0(A,e,i)|0;switch(t|0){case-1:{t=11;break e}case 61:{t=12;break e}default:{}}if(E0(t)|0){t=14;break}e=e+(a[c>>2]|0)|0}if((t|0)==11){a[l>>2]=e;e=0;break}else if((t|0)==12)a[f>>2]=e;else if((t|0)==14){a[f>>2]=e;do{e=e+(a[c>>2]|0)|0;t=v0(A,e,i)|0}while((E0(t)|0)!=0);if((t|0)!=61){a[l>>2]=e;e=0;break}}if((e|0)==(a[r>>2]|0)){a[l>>2]=e;e=0;break}do{e=e+(a[c>>2]|0)|0;t=v0(A,e,i)|0}while((E0(t)|0)!=0);switch(t|0){case 34:case 39:break;default:{a[l>>2]=e;e=0;break A}}f=e+(a[c>>2]|0)|0;a[n>>2]=f;e=t<<24>>24;e:while(1){t=v0(A,f,i)|0;if((t|0)==(e|0)){t=30;break}if((t+-48|0)>>>0>9&((t&-33)+-65|0)>>>0>25)switch(t|0){case 45:case 46:case 95:break;default:{t=28;break e}}f=f+(a[c>>2]|0)|0}if((t|0)==28){a[l>>2]=f;e=0;break}else if((t|0)==30){a[l>>2]=f+(a[c>>2]|0);e=1;break}}else{a[r>>2]=0;e=1}}while(0);return e|0}function v0(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0;l=k;k=k+16|0;t=l+4|0;f=l+8|0;n=l;a[t>>2]=e;a[n>>2]=f;z5[a[A+56>>2]&127](A,t,i,n,f+1|0)|0;k=l;return((a[n>>2]|0)==(f|0)?-1:r[f>>0]|0)|0}function E0(A){A=A|0;switch(A|0){case 9:case 10:case 13:case 32:{A=1;break}default:A=0}return A|0}function C0(){return 60092}function I0(A,e,i){A=A|0;e=e|0;i=i|0;i=D$(i)|0;if((i|0)==-1)i=0;else{r[A+69>>0]=i;a[A>>2]=69;a[A+4>>2]=70;a[A+48>>2]=31;a[A+72>>2]=e;a[e>>2]=A;i=1}return i|0}function Z0(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;return J$(60456,A,0,e,i,r)|0}function G0(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;return J$(60456,A,1,e,i,r)|0}function m0(A,e,i,r,f,a,n,l,t,c){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;n=n|0;l=l|0;t=t|0;c=c|0;return B0(40,A,e,i,r,f,a,n,l,t,c)|0}function Q0(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0;l=k;k=k+144|0;t=l+4|0;f=l+8|0;n=l;a[t>>2]=e;a[n>>2]=f;z5[a[A+56>>2]&127](A,t,i,n,f+127|0)|0;do{if((a[t>>2]|0)==(i|0)){r[a[n>>2]>>0]=0;if(o0(f,144315)|0?(a[A+64>>2]|0)==2:0)break;A=D$(f)|0;if((A|0)!=-1)A=a[60456+(A<<2)>>2]|0;else A=0}else A=0}while(0);k=l;return A|0}function L0(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;A=gb(A,e,i,f)|0;if(A|0)r[A+72+58>>0]=23;return A|0}function y0(A){A=A|0;a[A>>2]=15;a[A+16>>2]=1;a[A+12>>2]=0;a[A+20>>2]=0;return}function W0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0;switch(e|0){case 15:{a[A>>2]=16;A=0;break}case 12:{a[A>>2]=16;A=1;break}case 11:{a[A>>2]=16;A=55;break}case 13:{a[A>>2]=16;A=56;break}case 14:{A=0;break}case 16:{if(!(W5[a[f+24>>2]&127](f,i+(a[f+64>>2]<<1)|0,r,144368)|0))n=9;else{a[A>>2]=17;A=3}break}case 29:{a[A>>2]=18;A=2;break}default:n=9}if((n|0)==9)A=M0(A,e)|0;return A|0}function z0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0;switch(e|0){case 14:case 15:{A=0;break}case 11:{A=55;break}case 13:{A=56;break}case 16:{if(!(W5[a[f+24>>2]&127](f,i+(a[f+64>>2]<<1)|0,r,144368)|0))n=7;else{a[A>>2]=17;A=3}break}case 29:{a[A>>2]=18;A=2;break}default:n=7}if((n|0)==7)A=M0(A,e)|0;return A|0}function Y0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=3;break}case 41:case 18:{a[A>>2]=19;A=4;break}default:A=M0(A,e)|0}return A|0}function D0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;return 0}function M0(A,e){A=A|0;e=e|0;if((e|0)==28&(a[A+16>>2]|0)==0)A=59;else{a[A>>2]=18;A=-1}return A|0}function F0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0;A:do{switch(e|0){case 15:{A=3;break}case 25:{a[A>>2]=20;A=7;break}case 17:{a[A>>2]=21;A=8;break}case 18:{n=f+24|0;if(W5[a[n>>2]&127](f,i,r,144376)|0){a[A>>2]=22;A=3;break A}if(!(W5[a[n>>2]&127](f,i,r,144383)|0))l=8;else{a[A>>2]=23;A=3}break}default:l=8}}while(0);if((l|0)==8)A=M0(A,e)|0;return A|0}function V0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0;A:do{switch(e|0){case-4:case 15:{A=0;break}case 16:{n=f+24|0;l=f+64|0;if(W5[a[n>>2]&127](f,i+(a[l>>2]<<1)|0,r,144390)|0){a[A>>2]=24;A=11;break A}if(W5[a[n>>2]&127](f,i+(a[l>>2]<<1)|0,r,144397)|0){a[A>>2]=25;A=33;break A}if(W5[a[n>>2]&127](f,i+(a[l>>2]<<1)|0,r,144405)|0){a[A>>2]=26;A=39;break A}if(!(W5[a[n>>2]&127](f,i+(a[l>>2]<<1)|0,r,144413)|0))t=14;else{a[A>>2]=27;A=17}break}case 11:{A=55;break}case 13:{A=56;break}case 28:{A=60;break}case 26:{a[A>>2]=28;A=3;break}default:t=14}}while(0);if((t|0)==14)A=M0(A,e)|0;return A|0}function J0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;f=e+-11|0;switch(f>>>1|f<<31|0){case 2:{A=0;break}case 0:{A=55;break}case 1:{A=56;break}case 9:{a[A>>2]=18;A=2;break}default:A=M0(A,e)|0}return A|0}function p0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=3;break}case 27:{a[A>>2]=29;A=5;break}default:A=M0(A,e)|0}return A|0}function N0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=3;break}case 27:{a[A>>2]=22;A=6;break}default:A=M0(A,e)|0}return A|0}function R0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=3;break}case 25:{a[A>>2]=20;A=7;break}case 17:{a[A>>2]=21;A=8;break}default:A=M0(A,e)|0}return A|0}function X0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=11;break}case 22:{a[A>>2]=30;A=11;break}case 18:{a[A>>2]=31;A=9;break}default:A=M0(A,e)|0}return A|0}function H0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=33;break}case 41:case 18:{a[A>>2]=32;A=34;break}default:A=M0(A,e)|0}return A|0}function U0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=39;break}case 41:case 18:{a[A>>2]=33;A=40;break}default:A=M0(A,e)|0}return A|0}function x0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=17;break}case 18:{a[A>>2]=34;A=18;break}default:A=M0(A,e)|0}return A|0}function T0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=3;break}case 17:{a[A>>2]=21;A=8;break}default:A=M0(A,e)|0}return A|0}function j0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0;A:do{switch(e|0){case 15:{A=17;break}case 18:{n=f+24|0;if(W5[a[n>>2]&127](f,i,r,144376)|0){a[A>>2]=35;A=17;break A}if(!(W5[a[n>>2]&127](f,i,r,144383)|0))l=6;else{a[A>>2]=36;A=17}break}default:l=6}}while(0);if((l|0)==6)A=M0(A,e)|0;return A|0}function P0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=17;break}case 27:{a[A>>2]=37;a[A+8>>2]=17;A=19;break}default:A=M0(A,e)|0}return A|0}function S0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=17;break}case 27:{a[A>>2]=38;A=21;break}default:A=M0(A,e)|0}return A|0}function O0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=17;break}case 27:{a[A>>2]=37;a[A+8>>2]=17;A=19;break}case 17:{a[A>>2]=a[A+16>>2]|0?20:39;A=20;break}default:A=M0(A,e)|0}return A|0}function K0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=a[A+8>>2]|0;break}case 17:{a[A>>2]=a[A+16>>2]|0?20:39;A=a[A+8>>2]|0;break}default:A=M0(A,e)|0}return A|0}function _0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0;switch(e|0){case 33:{a[A>>2]=40;i=0;break}case 34:{i=A+12|0;r=a[i>>2]|0;if(!r)n=7;else{a[i>>2]=r+-1;i=0}break}case 15:{i=0;break}case 26:{n=7;break}case-4:{if(!(a[A+12>>2]|0))i=0;else n=7;break}default:i=V0(A,e,i,r,f)|0}if((n|0)==7)i=M0(A,e)|0;return i|0}function q0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0;A:do{switch(e|0){case 15:{A=0;break}case 18:{n=f+24|0;if(W5[a[n>>2]&127](f,i,r,144422)|0){a[A>>2]=41;A=0;break A}if(!(W5[a[n>>2]&127](f,i,r,144430)|0))l=6;else{a[A>>2]=42;A=0}break}default:l=6}}while(0);if((l|0)==6)A=M0(A,e)|0;return A|0}function $0(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=0;break}case 25:{a[A>>2]=39;A=A+12|0;a[A>>2]=(a[A>>2]|0)+1;A=0;break}default:A=M0(A,e)|0}return A|0}function A2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=0;break}case 25:{a[A>>2]=39;A=58;break}default:A=M0(A,e)|0}return A|0}function e2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0;A:do{switch(e|0){case 15:{A=39;break}case 18:{n=f+24|0;if(W5[a[n>>2]&127](f,i,r,144437)|0){a[A>>2]=37;a[A+8>>2]=39;A=42;break A}if(!(W5[a[n>>2]&127](f,i,r,144443)|0))l=7;else{a[A>>2]=37;a[A+8>>2]=39;A=41}break}case 23:{a[A>>2]=43;a[A+4>>2]=1;A=44;break}default:l=7}}while(0);if((l|0)==7)A=M0(A,e)|0;return A|0}function i2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0;switch(e|0){case 15:{A=39;break}case 20:{if(!(W5[a[f+24>>2]&127](f,i+(a[f+64>>2]|0)|0,r,144447)|0))n=9;else{a[A>>2]=44;A=43}break}case 23:{a[A+4>>2]=2;a[A>>2]=45;A=44;break}case 41:case 18:{a[A>>2]=46;A=51;break}case 30:{a[A>>2]=46;A=53;break}case 31:{a[A>>2]=46;A=52;break}case 32:{a[A>>2]=46;A=54;break}default:n=9}if((n|0)==9)A=M0(A,e)|0;return A|0}function r2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=39;break}case 24:{a[A>>2]=37;a[A+8>>2]=39;A=45;break}case 36:{a[A>>2]=37;a[A+8>>2]=39;A=46;break}case 21:{a[A>>2]=47;A=39;break}default:A=M0(A,e)|0}return A|0}function f2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=39;break}case 23:{A=A+4|0;a[A>>2]=(a[A>>2]|0)+1;A=44;break}case 41:case 18:{a[A>>2]=46;A=51;break}case 30:{a[A>>2]=46;A=53;break}case 31:{a[A>>2]=46;A=52;break}case 32:{a[A>>2]=46;A=54;break}default:A=M0(A,e)|0}return A|0}function a2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=39;break}case 24:{r=A+4|0;f=(a[r>>2]|0)+-1|0;a[r>>2]=f;if(!f){a[A>>2]=37;a[A+8>>2]=39;A=45}else A=45;break}case 36:{r=A+4|0;f=(a[r>>2]|0)+-1|0;a[r>>2]=f;if(!f){a[A>>2]=37;a[A+8>>2]=39;A=46}else A=46;break}case 35:{r=A+4|0;f=(a[r>>2]|0)+-1|0;a[r>>2]=f;if(!f){a[A>>2]=37;a[A+8>>2]=39;A=47}else A=47;break}case 37:{r=A+4|0;f=(a[r>>2]|0)+-1|0;a[r>>2]=f;if(!f){a[A>>2]=37;a[A+8>>2]=39;A=48}else A=48;break}case 38:{a[A>>2]=45;A=50;break}case 21:{a[A>>2]=45;A=49;break}default:A=M0(A,e)|0}return A|0}function n2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=39;break}case 41:case 18:{a[A>>2]=48;A=51;break}default:A=M0(A,e)|0}return A|0}function l2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=39;break}case 36:{a[A>>2]=37;a[A+8>>2]=39;A=46;break}case 21:{a[A>>2]=47;A=39;break}default:A=M0(A,e)|0}return A|0}function t2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=33;break}case 17:{a[A>>2]=a[A+16>>2]|0?20:39;A=33;break}case 41:case 18:{a[A>>2]=49;A=22;break}default:A=M0(A,e)|0}return A|0}function c2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0;A:do{switch(e|0){case 15:{n=33;break}case 18:{l=f+24|0;n=0;while(1){t=a[l>>2]|0;if((n|0)>=8)break;if(W5[t&127](f,i,r,a[62304+(n<<2)>>2]|0)|0){c=6;break}n=n+1|0}if((c|0)==6){a[A>>2]=50;n=n+23|0;break A}if(!(W5[t&127](f,i,r,144413)|0))c=10;else{a[A>>2]=51;n=33}break}case 23:{a[A>>2]=52;n=33;break}default:c=10}}while(0);if((c|0)==10)n=M0(A,e)|0;return n|0}function s2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0;A:do{switch(e|0){case 15:{A=33;break}case 20:{n=f+24|0;l=f+64|0;if(W5[a[n>>2]&127](f,i+(a[l>>2]|0)|0,r,144454)|0){a[A>>2]=32;A=35;break A}if(W5[a[n>>2]&127](f,i+(a[l>>2]|0)|0,r,144462)|0){a[A>>2]=32;A=36;break A}if(!(W5[a[n>>2]&127](f,i+(a[l>>2]|0)|0,r,144471)|0))t=9;else{a[A>>2]=53;A=33}break}case 27:{a[A>>2]=32;A=37;break}default:t=9}}while(0);if((t|0)==9)A=M0(A,e)|0;return A|0}function b2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=33;break}case 23:{a[A>>2]=54;A=33;break}default:A=M0(A,e)|0}return A|0}function u2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=33;break}case 41:case 18:case 19:{a[A>>2]=55;A=31;break}default:A=M0(A,e)|0}return A|0}function w2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=33;break}case 24:{a[A>>2]=50;A=33;break}case 21:{a[A>>2]=52;A=33;break}default:A=M0(A,e)|0}return A|0}function k2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=33;break}case 18:{a[A>>2]=56;A=32;break}default:A=M0(A,e)|0}return A|0}function o2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=33;break}case 24:{a[A>>2]=50;A=33;break}case 21:{a[A>>2]=54;A=33;break}default:A=M0(A,e)|0}return A|0}function h2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=33;break}case 27:{a[A>>2]=32;A=38;break}default:A=M0(A,e)|0}return A|0}function d2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=11;break}case 18:{a[A>>2]=57;A=10;break}default:A=M0(A,e)|0}return A|0}function B2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0;A:do{switch(e|0){case 15:{A=11;break}case 18:{n=f+24|0;if(W5[a[n>>2]&127](f,i,r,144376)|0){a[A>>2]=58;A=11;break A}if(!(W5[a[n>>2]&127](f,i,r,144383)|0))l=7;else{a[A>>2]=59;A=11}break}case 27:{a[A>>2]=37;a[A+8>>2]=11;A=12;break}default:l=7}}while(0);if((l|0)==7)A=M0(A,e)|0;return A|0}function g2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=11;break}case 27:{a[A>>2]=60;A=13;break}default:A=M0(A,e)|0}return A|0}function v2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=11;break}case 27:{a[A>>2]=58;A=14;break}default:A=M0(A,e)|0}return A|0}function E2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0;switch(e|0){case 15:{A=11;break}case 17:{a[A>>2]=a[A+16>>2]|0?20:39;A=15;break}case 18:{if(!(W5[a[f+24>>2]&127](f,i,r,144525)|0))n=5;else{a[A>>2]=61;A=11}break}default:n=5}if((n|0)==5)A=M0(A,e)|0;return A|0}function C2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=11;break}case 18:{a[A>>2]=37;a[A+8>>2]=11;A=16;break}default:A=M0(A,e)|0}return A|0}function I2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0;A:do{switch(e|0){case 15:{A=11;break}case 18:{n=f+24|0;if(W5[a[n>>2]&127](f,i,r,144376)|0){a[A>>2]=62;A=11;break A}if(!(W5[a[n>>2]&127](f,i,r,144383)|0))l=7;else{a[A>>2]=63;A=11}break}case 27:{a[A>>2]=37;a[A+8>>2]=11;A=12;break}default:l=7}}while(0);if((l|0)==7)A=M0(A,e)|0;return A|0}function Z2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=11;break}case 27:{a[A>>2]=64;A=13;break}default:A=M0(A,e)|0}return A|0}function G2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=11;break}case 27:{a[A>>2]=62;A=14;break}default:A=M0(A,e)|0}return A|0}function m2(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;switch(e|0){case 15:{A=11;break}case 17:{a[A>>2]=a[A+16>>2]|0?20:39;A=15;break}default:A=M0(A,e)|0}return A|0}function Q2(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0;I=k;k=k+16|0;o=I;do{if(A>>>0<245){b=A>>>0<11?16:A+11&-8;A=b>>>3;w=a[47519]|0;i=w>>>A;if(i&3|0){e=(i&1^1)+A|0;A=190116+(e<<1<<2)|0;i=A+8|0;r=a[i>>2]|0;f=r+8|0;n=a[f>>2]|0;if((n|0)==(A|0))a[47519]=w&~(1<>2]=A;a[i>>2]=n}C=e<<3;a[r+4>>2]=C|3;C=r+C+4|0;a[C>>2]=a[C>>2]|1;C=f;k=I;return C|0}u=a[47521]|0;if(b>>>0>u>>>0){if(i|0){e=2<>>12&16;e=e>>>t;i=e>>>5&8;e=e>>>i;n=e>>>2&4;e=e>>>n;A=e>>>1&2;e=e>>>A;r=e>>>1&1;r=(i|t|n|A|r)+(e>>>r)|0;e=190116+(r<<1<<2)|0;A=e+8|0;n=a[A>>2]|0;t=n+8|0;i=a[t>>2]|0;if((i|0)==(e|0)){A=w&~(1<>2]=e;a[A>>2]=i;A=w}C=r<<3;l=C-b|0;a[n+4>>2]=b|3;f=n+b|0;a[f+4>>2]=l|1;a[n+C>>2]=l;if(u|0){r=a[47524]|0;e=u>>>3;i=190116+(e<<1<<2)|0;e=1<>2]|0}a[A>>2]=r;a[e+12>>2]=r;a[r+8>>2]=e;a[r+12>>2]=i}a[47521]=l;a[47524]=f;C=t;k=I;return C|0}c=a[47520]|0;if(c){i=(c&0-c)+-1|0;t=i>>>12&16;i=i>>>t;l=i>>>5&8;i=i>>>l;s=i>>>2&4;i=i>>>s;r=i>>>1&2;i=i>>>r;A=i>>>1&1;A=a[190380+((l|t|s|r|A)+(i>>>A)<<2)>>2]|0;i=(a[A+4>>2]&-8)-b|0;r=a[A+16+(((a[A+16>>2]|0)==0&1)<<2)>>2]|0;if(!r){s=A;l=i}else{do{t=(a[r+4>>2]&-8)-b|0;s=t>>>0>>0;i=s?t:i;A=s?r:A;r=a[r+16+(((a[r+16>>2]|0)==0&1)<<2)>>2]|0}while((r|0)!=0);s=A;l=i}t=s+b|0;if(t>>>0>s>>>0){f=a[s+24>>2]|0;e=a[s+12>>2]|0;do{if((e|0)==(s|0)){A=s+20|0;e=a[A>>2]|0;if(!e){A=s+16|0;e=a[A>>2]|0;if(!e){i=0;break}}while(1){i=e+20|0;r=a[i>>2]|0;if(r|0){e=r;A=i;continue}i=e+16|0;r=a[i>>2]|0;if(!r)break;else{e=r;A=i}}a[A>>2]=0;i=e}else{i=a[s+8>>2]|0;a[i+12>>2]=e;a[e+8>>2]=i;i=e}}while(0);do{if(f|0){e=a[s+28>>2]|0;A=190380+(e<<2)|0;if((s|0)==(a[A>>2]|0)){a[A>>2]=i;if(!i){a[47520]=c&~(1<>2]|0)!=(s|0)&1)<<2)>>2]=i;if(!i)break}a[i+24>>2]=f;e=a[s+16>>2]|0;if(e|0){a[i+16>>2]=e;a[e+24>>2]=i}e=a[s+20>>2]|0;if(e|0){a[i+20>>2]=e;a[e+24>>2]=i}}}while(0);if(l>>>0<16){C=l+b|0;a[s+4>>2]=C|3;C=s+C+4|0;a[C>>2]=a[C>>2]|1}else{a[s+4>>2]=b|3;a[t+4>>2]=l|1;a[t+l>>2]=l;if(u|0){r=a[47524]|0;e=u>>>3;i=190116+(e<<1<<2)|0;e=1<>2]|0}a[A>>2]=r;a[e+12>>2]=r;a[r+8>>2]=e;a[r+12>>2]=i}a[47521]=l;a[47524]=t}C=s+8|0;k=I;return C|0}else u=b}else u=b}else u=b}else if(A>>>0<=4294967231){A=A+11|0;b=A&-8;s=a[47520]|0;if(s){r=0-b|0;A=A>>>8;if(A)if(b>>>0>16777215)c=31;else{w=(A+1048320|0)>>>16&8;E=A<>>16&4;E=E<>>16&2;c=14-(u|w|c)+(E<>>15)|0;c=b>>>(c+7|0)&1|c<<1}else c=0;i=a[190380+(c<<2)>>2]|0;A:do{if(!i){i=0;A=0;E=57}else{A=0;t=i;l=b<<((c|0)==31?0:25-(c>>>1)|0);i=0;while(1){f=(a[t+4>>2]&-8)-b|0;if(f>>>0>>0)if(!f){r=0;i=t;A=t;E=61;break A}else{A=t;r=f}f=a[t+20>>2]|0;t=a[t+16+(l>>>31<<2)>>2]|0;i=(f|0)==0|(f|0)==(t|0)?i:f;f=(t|0)==0;if(f){E=57;break}else l=l<<((f^1)&1)}}}while(0);if((E|0)==57){if((i|0)==0&(A|0)==0){A=2<>>12&16;w=w>>>t;l=w>>>5&8;w=w>>>l;c=w>>>2&4;w=w>>>c;u=w>>>1&2;w=w>>>u;i=w>>>1&1;A=0;i=a[190380+((l|t|c|u|i)+(w>>>i)<<2)>>2]|0}if(!i){t=A;l=r}else E=61}if((E|0)==61)while(1){E=0;u=(a[i+4>>2]&-8)-b|0;w=u>>>0>>0;r=w?u:r;A=w?i:A;i=a[i+16+(((a[i+16>>2]|0)==0&1)<<2)>>2]|0;if(!i){t=A;l=r;break}else E=61}if((t|0)!=0?l>>>0<((a[47521]|0)-b|0)>>>0:0){n=t+b|0;if(n>>>0<=t>>>0){C=0;k=I;return C|0}f=a[t+24>>2]|0;e=a[t+12>>2]|0;do{if((e|0)==(t|0)){A=t+20|0;e=a[A>>2]|0;if(!e){A=t+16|0;e=a[A>>2]|0;if(!e){e=0;break}}while(1){i=e+20|0;r=a[i>>2]|0;if(r|0){e=r;A=i;continue}i=e+16|0;r=a[i>>2]|0;if(!r)break;else{e=r;A=i}}a[A>>2]=0}else{C=a[t+8>>2]|0;a[C+12>>2]=e;a[e+8>>2]=C}}while(0);do{if(f){A=a[t+28>>2]|0;i=190380+(A<<2)|0;if((t|0)==(a[i>>2]|0)){a[i>>2]=e;if(!e){r=s&~(1<>2]|0)!=(t|0)&1)<<2)>>2]=e;if(!e){r=s;break}}a[e+24>>2]=f;A=a[t+16>>2]|0;if(A|0){a[e+16>>2]=A;a[A+24>>2]=e}A=a[t+20>>2]|0;if(A){a[e+20>>2]=A;a[A+24>>2]=e;r=s}else r=s}else r=s}while(0);do{if(l>>>0>=16){a[t+4>>2]=b|3;a[n+4>>2]=l|1;a[n+l>>2]=l;e=l>>>3;if(l>>>0<256){i=190116+(e<<1<<2)|0;A=a[47519]|0;e=1<>2]|0}a[A>>2]=n;a[e+12>>2]=n;a[n+8>>2]=e;a[n+12>>2]=i;break}e=l>>>8;if(e)if(l>>>0>16777215)e=31;else{E=(e+1048320|0)>>>16&8;C=e<>>16&4;C=C<>>16&2;e=14-(v|E|e)+(C<>>15)|0;e=l>>>(e+7|0)&1|e<<1}else e=0;i=190380+(e<<2)|0;a[n+28>>2]=e;A=n+16|0;a[A+4>>2]=0;a[A>>2]=0;A=1<>2]=n;a[n+24>>2]=i;a[n+12>>2]=n;a[n+8>>2]=n;break}A=l<<((e|0)==31?0:25-(e>>>1)|0);i=a[i>>2]|0;while(1){if((a[i+4>>2]&-8|0)==(l|0)){E=97;break}r=i+16+(A>>>31<<2)|0;e=a[r>>2]|0;if(!e){E=96;break}else{A=A<<1;i=e}}if((E|0)==96){a[r>>2]=n;a[n+24>>2]=i;a[n+12>>2]=n;a[n+8>>2]=n;break}else if((E|0)==97){E=i+8|0;C=a[E>>2]|0;a[C+12>>2]=n;a[E>>2]=n;a[n+8>>2]=C;a[n+12>>2]=i;a[n+24>>2]=0;break}}else{C=l+b|0;a[t+4>>2]=C|3;C=t+C+4|0;a[C>>2]=a[C>>2]|1}}while(0);C=t+8|0;k=I;return C|0}else u=b}else u=b}else u=-1}while(0);i=a[47521]|0;if(i>>>0>=u>>>0){e=i-u|0;A=a[47524]|0;if(e>>>0>15){C=A+u|0;a[47524]=C;a[47521]=e;a[C+4>>2]=e|1;a[A+i>>2]=e;a[A+4>>2]=u|3}else{a[47521]=0;a[47524]=0;a[A+4>>2]=i|3;C=A+i+4|0;a[C>>2]=a[C>>2]|1}C=A+8|0;k=I;return C|0}t=a[47522]|0;if(t>>>0>u>>>0){v=t-u|0;a[47522]=v;C=a[47525]|0;E=C+u|0;a[47525]=E;a[E+4>>2]=v|1;a[C+4>>2]=u|3;C=C+8|0;k=I;return C|0}if(!(a[47637]|0)){a[47639]=4096;a[47638]=4096;a[47640]=-1;a[47641]=-1;a[47642]=0;a[47630]=0;a[47637]=o&-16^1431655768;A=4096}else A=a[47639]|0;c=u+48|0;s=u+47|0;l=A+s|0;f=0-A|0;b=l&f;if(b>>>0<=u>>>0){C=0;k=I;return C|0}A=a[47629]|0;if(A|0?(w=a[47627]|0,o=w+b|0,o>>>0<=w>>>0|o>>>0>A>>>0):0){C=0;k=I;return C|0}A:do{if(!(a[47630]&4)){i=a[47525]|0;e:do{if(i){r=190524;while(1){A=a[r>>2]|0;if(A>>>0<=i>>>0?(B=r+4|0,(A+(a[B>>2]|0)|0)>>>0>i>>>0):0)break;A=a[r+8>>2]|0;if(!A){E=118;break e}else r=A}e=l-t&f;if(e>>>0<2147483647){A=D6(e|0)|0;if((A|0)==((a[r>>2]|0)+(a[B>>2]|0)|0)){if((A|0)!=(-1|0)){l=e;n=A;E=135;break A}}else{r=A;E=126}}else e=0}else E=118}while(0);do{if((E|0)==118){i=D6(0)|0;if((i|0)!=(-1|0)?(e=i,h=a[47638]|0,d=h+-1|0,e=((d&e|0)==0?0:(d+e&0-h)-e|0)+b|0,h=a[47627]|0,d=e+h|0,e>>>0>u>>>0&e>>>0<2147483647):0){B=a[47629]|0;if(B|0?d>>>0<=h>>>0|d>>>0>B>>>0:0){e=0;break}A=D6(e|0)|0;if((A|0)==(i|0)){l=e;n=i;E=135;break A}else{r=A;E=126}}else e=0}}while(0);do{if((E|0)==126){i=0-e|0;if(!(c>>>0>e>>>0&(e>>>0<2147483647&(r|0)!=(-1|0))))if((r|0)==(-1|0)){e=0;break}else{l=e;n=r;E=135;break A}A=a[47639]|0;A=s-e+A&0-A;if(A>>>0>=2147483647){l=e;n=r;E=135;break A}if((D6(A|0)|0)==(-1|0)){D6(i|0)|0;e=0;break}else{l=A+e|0;n=r;E=135;break A}}}while(0);a[47630]=a[47630]|4;E=133}else{e=0;E=133}}while(0);if(((E|0)==133?b>>>0<2147483647:0)?(n=D6(b|0)|0,B=D6(0)|0,g=B-n|0,v=g>>>0>(u+40|0)>>>0,!((n|0)==(-1|0)|v^1|n>>>0>>0&((n|0)!=(-1|0)&(B|0)!=(-1|0))^1)):0){l=v?g:e;E=135}if((E|0)==135){e=(a[47627]|0)+l|0;a[47627]=e;if(e>>>0>(a[47628]|0)>>>0)a[47628]=e;c=a[47525]|0;do{if(c){e=190524;while(1){A=a[e>>2]|0;i=e+4|0;r=a[i>>2]|0;if((n|0)==(A+r|0)){E=143;break}f=a[e+8>>2]|0;if(!f)break;else e=f}if(((E|0)==143?(a[e+12>>2]&8|0)==0:0)?n>>>0>c>>>0&A>>>0<=c>>>0:0){a[i>>2]=r+l;C=(a[47522]|0)+l|0;v=c+8|0;v=(v&7|0)==0?0:0-v&7;E=c+v|0;v=C-v|0;a[47525]=E;a[47522]=v;a[E+4>>2]=v|1;a[c+C+4>>2]=40;a[47526]=a[47641];break}if(n>>>0<(a[47523]|0)>>>0)a[47523]=n;A=n+l|0;e=190524;while(1){if((a[e>>2]|0)==(A|0)){E=151;break}e=a[e+8>>2]|0;if(!e){A=190524;break}}if((E|0)==151)if(!(a[e+12>>2]&8)){a[e>>2]=n;b=e+4|0;a[b>>2]=(a[b>>2]|0)+l;b=n+8|0;b=n+((b&7|0)==0?0:0-b&7)|0;e=A+8|0;e=A+((e&7|0)==0?0:0-e&7)|0;s=b+u|0;t=e-b-u|0;a[b+4>>2]=u|3;do{if((c|0)!=(e|0)){if((a[47524]|0)==(e|0)){C=(a[47521]|0)+t|0;a[47521]=C;a[47524]=s;a[s+4>>2]=C|1;a[s+C>>2]=C;break}A=a[e+4>>2]|0;if((A&3|0)==1){l=A&-8;r=A>>>3;A:do{if(A>>>0<256){A=a[e+8>>2]|0;i=a[e+12>>2]|0;if((i|0)==(A|0)){a[47519]=a[47519]&~(1<>2]=i;a[i+8>>2]=A;break}}else{n=a[e+24>>2]|0;A=a[e+12>>2]|0;do{if((A|0)==(e|0)){r=e+16|0;i=r+4|0;A=a[i>>2]|0;if(!A){A=a[r>>2]|0;if(!A){A=0;break}else i=r}while(1){r=A+20|0;f=a[r>>2]|0;if(f|0){A=f;i=r;continue}r=A+16|0;f=a[r>>2]|0;if(!f)break;else{A=f;i=r}}a[i>>2]=0}else{C=a[e+8>>2]|0;a[C+12>>2]=A;a[A+8>>2]=C}}while(0);if(!n)break;i=a[e+28>>2]|0;r=190380+(i<<2)|0;do{if((a[r>>2]|0)!=(e|0)){a[n+16+(((a[n+16>>2]|0)!=(e|0)&1)<<2)>>2]=A;if(!A)break A}else{a[r>>2]=A;if(A|0)break;a[47520]=a[47520]&~(1<>2]=n;i=e+16|0;r=a[i>>2]|0;if(r|0){a[A+16>>2]=r;a[r+24>>2]=A}i=a[i+4>>2]|0;if(!i)break;a[A+20>>2]=i;a[i+24>>2]=A}}while(0);e=e+l|0;f=l+t|0}else f=t;e=e+4|0;a[e>>2]=a[e>>2]&-2;a[s+4>>2]=f|1;a[s+f>>2]=f;e=f>>>3;if(f>>>0<256){i=190116+(e<<1<<2)|0;A=a[47519]|0;e=1<>2]|0}a[A>>2]=s;a[e+12>>2]=s;a[s+8>>2]=e;a[s+12>>2]=i;break}e=f>>>8;do{if(!e)e=0;else{if(f>>>0>16777215){e=31;break}E=(e+1048320|0)>>>16&8;C=e<>>16&4;C=C<>>16&2;e=14-(v|E|e)+(C<>>15)|0;e=f>>>(e+7|0)&1|e<<1}}while(0);r=190380+(e<<2)|0;a[s+28>>2]=e;A=s+16|0;a[A+4>>2]=0;a[A>>2]=0;A=a[47520]|0;i=1<>2]=s;a[s+24>>2]=r;a[s+12>>2]=s;a[s+8>>2]=s;break}A=f<<((e|0)==31?0:25-(e>>>1)|0);i=a[r>>2]|0;while(1){if((a[i+4>>2]&-8|0)==(f|0)){E=192;break}r=i+16+(A>>>31<<2)|0;e=a[r>>2]|0;if(!e){E=191;break}else{A=A<<1;i=e}}if((E|0)==191){a[r>>2]=s;a[s+24>>2]=i;a[s+12>>2]=s;a[s+8>>2]=s;break}else if((E|0)==192){E=i+8|0;C=a[E>>2]|0;a[C+12>>2]=s;a[E>>2]=s;a[s+8>>2]=C;a[s+12>>2]=i;a[s+24>>2]=0;break}}else{C=(a[47522]|0)+t|0;a[47522]=C;a[47525]=s;a[s+4>>2]=C|1}}while(0);C=b+8|0;k=I;return C|0}else A=190524;while(1){e=a[A>>2]|0;if(e>>>0<=c>>>0?(C=e+(a[A+4>>2]|0)|0,C>>>0>c>>>0):0)break;A=a[A+8>>2]|0}f=C+-47|0;A=f+8|0;A=f+((A&7|0)==0?0:0-A&7)|0;f=c+16|0;A=A>>>0>>0?c:A;e=A+8|0;i=l+-40|0;v=n+8|0;v=(v&7|0)==0?0:0-v&7;E=n+v|0;v=i-v|0;a[47525]=E;a[47522]=v;a[E+4>>2]=v|1;a[n+i+4>>2]=40;a[47526]=a[47641];i=A+4|0;a[i>>2]=27;a[e>>2]=a[47631];a[e+4>>2]=a[47632];a[e+8>>2]=a[47633];a[e+12>>2]=a[47634];a[47631]=n;a[47632]=l;a[47634]=0;a[47633]=e;e=A+24|0;do{E=e;e=e+4|0;a[e>>2]=7}while((E+8|0)>>>0>>0);if((A|0)!=(c|0)){n=A-c|0;a[i>>2]=a[i>>2]&-2;a[c+4>>2]=n|1;a[A>>2]=n;e=n>>>3;if(n>>>0<256){i=190116+(e<<1<<2)|0;A=a[47519]|0;e=1<>2]|0}a[A>>2]=c;a[e+12>>2]=c;a[c+8>>2]=e;a[c+12>>2]=i;break}e=n>>>8;if(e)if(n>>>0>16777215)i=31;else{E=(e+1048320|0)>>>16&8;C=e<>>16&4;C=C<>>16&2;i=14-(v|E|i)+(C<>>15)|0;i=n>>>(i+7|0)&1|i<<1}else i=0;r=190380+(i<<2)|0;a[c+28>>2]=i;a[c+20>>2]=0;a[f>>2]=0;e=a[47520]|0;A=1<>2]=c;a[c+24>>2]=r;a[c+12>>2]=c;a[c+8>>2]=c;break}A=n<<((i|0)==31?0:25-(i>>>1)|0);i=a[r>>2]|0;while(1){if((a[i+4>>2]&-8|0)==(n|0)){E=213;break}r=i+16+(A>>>31<<2)|0;e=a[r>>2]|0;if(!e){E=212;break}else{A=A<<1;i=e}}if((E|0)==212){a[r>>2]=c;a[c+24>>2]=i;a[c+12>>2]=c;a[c+8>>2]=c;break}else if((E|0)==213){E=i+8|0;C=a[E>>2]|0;a[C+12>>2]=c;a[E>>2]=c;a[c+8>>2]=C;a[c+12>>2]=i;a[c+24>>2]=0;break}}}else{C=a[47523]|0;if((C|0)==0|n>>>0>>0)a[47523]=n;a[47631]=n;a[47632]=l;a[47634]=0;a[47528]=a[47637];a[47527]=-1;a[47532]=190116;a[47531]=190116;a[47534]=190124;a[47533]=190124;a[47536]=190132;a[47535]=190132;a[47538]=190140;a[47537]=190140;a[47540]=190148;a[47539]=190148;a[47542]=190156;a[47541]=190156;a[47544]=190164;a[47543]=190164;a[47546]=190172;a[47545]=190172;a[47548]=190180;a[47547]=190180;a[47550]=190188;a[47549]=190188;a[47552]=190196;a[47551]=190196;a[47554]=190204;a[47553]=190204;a[47556]=190212;a[47555]=190212;a[47558]=190220;a[47557]=190220;a[47560]=190228;a[47559]=190228;a[47562]=190236;a[47561]=190236;a[47564]=190244;a[47563]=190244;a[47566]=190252;a[47565]=190252;a[47568]=190260;a[47567]=190260;a[47570]=190268;a[47569]=190268;a[47572]=190276;a[47571]=190276;a[47574]=190284;a[47573]=190284;a[47576]=190292;a[47575]=190292;a[47578]=190300;a[47577]=190300;a[47580]=190308;a[47579]=190308;a[47582]=190316;a[47581]=190316;a[47584]=190324;a[47583]=190324;a[47586]=190332;a[47585]=190332;a[47588]=190340;a[47587]=190340;a[47590]=190348;a[47589]=190348;a[47592]=190356;a[47591]=190356;a[47594]=190364;a[47593]=190364;C=l+-40|0;v=n+8|0;v=(v&7|0)==0?0:0-v&7;E=n+v|0;v=C-v|0;a[47525]=E;a[47522]=v;a[E+4>>2]=v|1;a[n+C+4>>2]=40;a[47526]=a[47641]}}while(0);e=a[47522]|0;if(e>>>0>u>>>0){v=e-u|0;a[47522]=v;C=a[47525]|0;E=C+u|0;a[47525]=E;a[E+4>>2]=v|1;a[C+4>>2]=u|3;C=C+8|0;k=I;return C|0}}a[(N2()|0)>>2]=12;C=0;k=I;return C|0}function L2(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0,c=0;if(!A)return;i=A+-8|0;f=a[47523]|0;A=a[A+-4>>2]|0;e=A&-8;c=i+e|0;do{if(!(A&1)){r=a[i>>2]|0;if(!(A&3))return;l=i+(0-r)|0;n=r+e|0;if(l>>>0>>0)return;if((a[47524]|0)==(l|0)){A=c+4|0;e=a[A>>2]|0;if((e&3|0)!=3){t=l;e=n;break}a[47521]=n;a[A>>2]=e&-2;a[l+4>>2]=n|1;a[l+n>>2]=n;return}i=r>>>3;if(r>>>0<256){A=a[l+8>>2]|0;e=a[l+12>>2]|0;if((e|0)==(A|0)){a[47519]=a[47519]&~(1<>2]=e;a[e+8>>2]=A;t=l;e=n;break}}f=a[l+24>>2]|0;A=a[l+12>>2]|0;do{if((A|0)==(l|0)){i=l+16|0;e=i+4|0;A=a[e>>2]|0;if(!A){A=a[i>>2]|0;if(!A){A=0;break}else e=i}while(1){i=A+20|0;r=a[i>>2]|0;if(r|0){A=r;e=i;continue}i=A+16|0;r=a[i>>2]|0;if(!r)break;else{A=r;e=i}}a[e>>2]=0}else{t=a[l+8>>2]|0;a[t+12>>2]=A;a[A+8>>2]=t}}while(0);if(f){e=a[l+28>>2]|0;i=190380+(e<<2)|0;if((a[i>>2]|0)==(l|0)){a[i>>2]=A;if(!A){a[47520]=a[47520]&~(1<>2]|0)!=(l|0)&1)<<2)>>2]=A;if(!A){t=l;e=n;break}}a[A+24>>2]=f;e=l+16|0;i=a[e>>2]|0;if(i|0){a[A+16>>2]=i;a[i+24>>2]=A}e=a[e+4>>2]|0;if(e){a[A+20>>2]=e;a[e+24>>2]=A;t=l;e=n}else{t=l;e=n}}else{t=l;e=n}}else{t=i;l=i}}while(0);if(l>>>0>=c>>>0)return;A=c+4|0;r=a[A>>2]|0;if(!(r&1))return;if(!(r&2)){if((a[47525]|0)==(c|0)){c=(a[47522]|0)+e|0;a[47522]=c;a[47525]=t;a[t+4>>2]=c|1;if((t|0)!=(a[47524]|0))return;a[47524]=0;a[47521]=0;return}if((a[47524]|0)==(c|0)){c=(a[47521]|0)+e|0;a[47521]=c;a[47524]=l;a[t+4>>2]=c|1;a[l+c>>2]=c;return}f=(r&-8)+e|0;i=r>>>3;do{if(r>>>0<256){e=a[c+8>>2]|0;A=a[c+12>>2]|0;if((A|0)==(e|0)){a[47519]=a[47519]&~(1<>2]=A;a[A+8>>2]=e;break}}else{n=a[c+24>>2]|0;A=a[c+12>>2]|0;do{if((A|0)==(c|0)){i=c+16|0;e=i+4|0;A=a[e>>2]|0;if(!A){A=a[i>>2]|0;if(!A){i=0;break}else e=i}while(1){i=A+20|0;r=a[i>>2]|0;if(r|0){A=r;e=i;continue}i=A+16|0;r=a[i>>2]|0;if(!r)break;else{A=r;e=i}}a[e>>2]=0;i=A}else{i=a[c+8>>2]|0;a[i+12>>2]=A;a[A+8>>2]=i;i=A}}while(0);if(n|0){A=a[c+28>>2]|0;e=190380+(A<<2)|0;if((a[e>>2]|0)==(c|0)){a[e>>2]=i;if(!i){a[47520]=a[47520]&~(1<>2]|0)!=(c|0)&1)<<2)>>2]=i;if(!i)break}a[i+24>>2]=n;A=c+16|0;e=a[A>>2]|0;if(e|0){a[i+16>>2]=e;a[e+24>>2]=i}A=a[A+4>>2]|0;if(A|0){a[i+20>>2]=A;a[A+24>>2]=i}}}}while(0);a[t+4>>2]=f|1;a[l+f>>2]=f;if((t|0)==(a[47524]|0)){a[47521]=f;return}}else{a[A>>2]=r&-2;a[t+4>>2]=e|1;a[l+e>>2]=e;f=e}A=f>>>3;if(f>>>0<256){i=190116+(A<<1<<2)|0;e=a[47519]|0;A=1<>2]|0}a[e>>2]=t;a[A+12>>2]=t;a[t+8>>2]=A;a[t+12>>2]=i;return}A=f>>>8;if(A)if(f>>>0>16777215)A=31;else{l=(A+1048320|0)>>>16&8;c=A<>>16&4;c=c<>>16&2;A=14-(n|l|A)+(c<>>15)|0;A=f>>>(A+7|0)&1|A<<1}else A=0;r=190380+(A<<2)|0;a[t+28>>2]=A;a[t+20>>2]=0;a[t+16>>2]=0;e=a[47520]|0;i=1<>>1)|0);i=a[r>>2]|0;while(1){if((a[i+4>>2]&-8|0)==(f|0)){A=73;break}r=i+16+(e>>>31<<2)|0;A=a[r>>2]|0;if(!A){A=72;break}else{e=e<<1;i=A}}if((A|0)==72){a[r>>2]=t;a[t+24>>2]=i;a[t+12>>2]=t;a[t+8>>2]=t;break}else if((A|0)==73){l=i+8|0;c=a[l>>2]|0;a[c+12>>2]=t;a[l>>2]=t;a[t+8>>2]=c;a[t+12>>2]=i;a[t+24>>2]=0;break}}else{a[47520]=e|i;a[r>>2]=t;a[t+24>>2]=r;a[t+12>>2]=t;a[t+8>>2]=t}}while(0);c=(a[47527]|0)+-1|0;a[47527]=c;if(!c)A=190532;else return;while(1){A=a[A>>2]|0;if(!A)break;else A=A+8|0}a[47527]=-1;return}function y2(A,e){A=A|0;e=e|0;var i=0;if(A){i=U(e,A)|0;if((e|A)>>>0>65535)i=((i>>>0)/(A>>>0)|0|0)==(e|0)?i:-1}else i=0;A=Q2(i)|0;if(!A)return A|0;if(!(a[A+-4>>2]&3))return A|0;Y6(A|0,0,i|0)|0;return A|0}function W2(A,e){A=A|0;e=e|0;var i=0,r=0;if(!A){e=Q2(e)|0;return e|0}if(e>>>0>4294967231){a[(N2()|0)>>2]=12;e=0;return e|0}i=z2(A+-8|0,e>>>0<11?16:e+11&-8)|0;if(i|0){e=i+8|0;return e|0}i=Q2(e)|0;if(!i){e=0;return e|0}r=a[A+-4>>2]|0;r=(r&-8)-((r&3|0)==0?8:4)|0;W6(i|0,A|0,(r>>>0>>0?r:e)|0)|0;L2(A);e=i;return e|0}function z2(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0;b=A+4|0;u=a[b>>2]|0;i=u&-8;t=A+i|0;if(!(u&3)){if(e>>>0<256){A=0;return A|0}if(i>>>0>=(e+4|0)>>>0?(i-e|0)>>>0<=a[47639]<<1>>>0:0)return A|0;A=0;return A|0}if(i>>>0>=e>>>0){i=i-e|0;if(i>>>0<=15)return A|0;s=A+e|0;a[b>>2]=u&1|e|2;a[s+4>>2]=i|3;u=t+4|0;a[u>>2]=a[u>>2]|1;Y2(s,i);return A|0}if((a[47525]|0)==(t|0)){s=(a[47522]|0)+i|0;i=s-e|0;r=A+e|0;if(s>>>0<=e>>>0){A=0;return A|0}a[b>>2]=u&1|e|2;a[r+4>>2]=i|1;a[47525]=r;a[47522]=i;return A|0}if((a[47524]|0)==(t|0)){r=(a[47521]|0)+i|0;if(r>>>0>>0){A=0;return A|0}i=r-e|0;if(i>>>0>15){s=A+e|0;r=A+r|0;a[b>>2]=u&1|e|2;a[s+4>>2]=i|1;a[r>>2]=i;r=r+4|0;a[r>>2]=a[r>>2]&-2;r=s}else{a[b>>2]=u&1|r|2;r=A+r+4|0;a[r>>2]=a[r>>2]|1;r=0;i=0}a[47521]=i;a[47524]=r;return A|0}r=a[t+4>>2]|0;if(r&2|0){A=0;return A|0}c=(r&-8)+i|0;if(c>>>0>>0){A=0;return A|0}s=c-e|0;f=r>>>3;do{if(r>>>0<256){r=a[t+8>>2]|0;i=a[t+12>>2]|0;if((i|0)==(r|0)){a[47519]=a[47519]&~(1<>2]=i;a[i+8>>2]=r;break}}else{l=a[t+24>>2]|0;i=a[t+12>>2]|0;do{if((i|0)==(t|0)){f=t+16|0;r=f+4|0;i=a[r>>2]|0;if(!i){i=a[f>>2]|0;if(!i){f=0;break}else n=f}else n=r;while(1){f=i+20|0;r=a[f>>2]|0;if(r|0){i=r;n=f;continue}r=i+16|0;f=a[r>>2]|0;if(!f)break;else{i=f;n=r}}a[n>>2]=0;f=i}else{f=a[t+8>>2]|0;a[f+12>>2]=i;a[i+8>>2]=f;f=i}}while(0);if(l|0){i=a[t+28>>2]|0;r=190380+(i<<2)|0;if((a[r>>2]|0)==(t|0)){a[r>>2]=f;if(!f){a[47520]=a[47520]&~(1<>2]|0)!=(t|0)&1)<<2)>>2]=f;if(!f)break}a[f+24>>2]=l;i=t+16|0;r=a[i>>2]|0;if(r|0){a[f+16>>2]=r;a[r+24>>2]=f}i=a[i+4>>2]|0;if(i|0){a[f+20>>2]=i;a[i+24>>2]=f}}}}while(0);if(s>>>0<16){a[b>>2]=c|u&1|2;u=A+c+4|0;a[u>>2]=a[u>>2]|1;return A|0}else{t=A+e|0;a[b>>2]=u&1|e|2;a[t+4>>2]=s|3;u=A+c+4|0;a[u>>2]=a[u>>2]|1;Y2(t,s);return A|0}return 0}function Y2(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;t=A+e|0;i=a[A+4>>2]|0;do{if(!(i&1)){f=a[A>>2]|0;if(!(i&3))return;l=A+(0-f)|0;e=f+e|0;if((a[47524]|0)==(l|0)){A=t+4|0;i=a[A>>2]|0;if((i&3|0)!=3)break;a[47521]=e;a[A>>2]=i&-2;a[l+4>>2]=e|1;a[t>>2]=e;return}r=f>>>3;if(f>>>0<256){A=a[l+8>>2]|0;i=a[l+12>>2]|0;if((i|0)==(A|0)){a[47519]=a[47519]&~(1<>2]=i;a[i+8>>2]=A;break}}n=a[l+24>>2]|0;A=a[l+12>>2]|0;do{if((A|0)==(l|0)){r=l+16|0;i=r+4|0;A=a[i>>2]|0;if(!A){A=a[r>>2]|0;if(!A){A=0;break}else i=r}while(1){r=A+20|0;f=a[r>>2]|0;if(f|0){A=f;i=r;continue}r=A+16|0;f=a[r>>2]|0;if(!f)break;else{A=f;i=r}}a[i>>2]=0}else{f=a[l+8>>2]|0;a[f+12>>2]=A;a[A+8>>2]=f}}while(0);if(n){i=a[l+28>>2]|0;r=190380+(i<<2)|0;if((a[r>>2]|0)==(l|0)){a[r>>2]=A;if(!A){a[47520]=a[47520]&~(1<>2]|0)!=(l|0)&1)<<2)>>2]=A;if(!A)break}a[A+24>>2]=n;i=l+16|0;r=a[i>>2]|0;if(r|0){a[A+16>>2]=r;a[r+24>>2]=A}i=a[i+4>>2]|0;if(i){a[A+20>>2]=i;a[i+24>>2]=A}}}else l=A}while(0);A=t+4|0;r=a[A>>2]|0;if(!(r&2)){if((a[47525]|0)==(t|0)){t=(a[47522]|0)+e|0;a[47522]=t;a[47525]=l;a[l+4>>2]=t|1;if((l|0)!=(a[47524]|0))return;a[47524]=0;a[47521]=0;return}if((a[47524]|0)==(t|0)){t=(a[47521]|0)+e|0;a[47521]=t;a[47524]=l;a[l+4>>2]=t|1;a[l+t>>2]=t;return}f=(r&-8)+e|0;i=r>>>3;do{if(r>>>0<256){A=a[t+8>>2]|0;e=a[t+12>>2]|0;if((e|0)==(A|0)){a[47519]=a[47519]&~(1<>2]=e;a[e+8>>2]=A;break}}else{n=a[t+24>>2]|0;e=a[t+12>>2]|0;do{if((e|0)==(t|0)){i=t+16|0;A=i+4|0;e=a[A>>2]|0;if(!e){e=a[i>>2]|0;if(!e){i=0;break}else A=i}while(1){i=e+20|0;r=a[i>>2]|0;if(r|0){e=r;A=i;continue}i=e+16|0;r=a[i>>2]|0;if(!r)break;else{e=r;A=i}}a[A>>2]=0;i=e}else{i=a[t+8>>2]|0;a[i+12>>2]=e;a[e+8>>2]=i;i=e}}while(0);if(n|0){e=a[t+28>>2]|0;A=190380+(e<<2)|0;if((a[A>>2]|0)==(t|0)){a[A>>2]=i;if(!i){a[47520]=a[47520]&~(1<>2]|0)!=(t|0)&1)<<2)>>2]=i;if(!i)break}a[i+24>>2]=n;e=t+16|0;A=a[e>>2]|0;if(A|0){a[i+16>>2]=A;a[A+24>>2]=i}e=a[e+4>>2]|0;if(e|0){a[i+20>>2]=e;a[e+24>>2]=i}}}}while(0);a[l+4>>2]=f|1;a[l+f>>2]=f;if((l|0)==(a[47524]|0)){a[47521]=f;return}}else{a[A>>2]=r&-2;a[l+4>>2]=e|1;a[l+e>>2]=e;f=e}e=f>>>3;if(f>>>0<256){i=190116+(e<<1<<2)|0;A=a[47519]|0;e=1<>2]|0}a[A>>2]=l;a[e+12>>2]=l;a[l+8>>2]=e;a[l+12>>2]=i;return}e=f>>>8;if(e)if(f>>>0>16777215)e=31;else{n=(e+1048320|0)>>>16&8;t=e<>>16&4;t=t<>>16&2;e=14-(r|n|e)+(t<>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;r=190380+(e<<2)|0;a[l+28>>2]=e;a[l+20>>2]=0;a[l+16>>2]=0;A=a[47520]|0;i=1<>2]=l;a[l+24>>2]=r;a[l+12>>2]=l;a[l+8>>2]=l;return}A=f<<((e|0)==31?0:25-(e>>>1)|0);i=a[r>>2]|0;while(1){if((a[i+4>>2]&-8|0)==(f|0)){e=69;break}r=i+16+(A>>>31<<2)|0;e=a[r>>2]|0;if(!e){e=68;break}else{A=A<<1;i=e}}if((e|0)==68){a[r>>2]=l;a[l+24>>2]=i;a[l+12>>2]=l;a[l+8>>2]=l;return}else if((e|0)==69){n=i+8|0;t=a[n>>2]|0;a[t+12>>2]=l;a[n>>2]=l;a[l+8>>2]=t;a[l+12>>2]=i;a[l+24>>2]=0;return}}function D2(A,e){A=A|0;e=e|0;if(A>>>0<9){e=Q2(e)|0;return e|0}else{e=M2(A,e)|0;return e|0}return 0}function M2(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0;A=A>>>0>16?A:16;if(A+-1&A){i=16;while(1)if(i>>>0>>0)i=i<<1;else{A=i;break}}if((-64-A|0)>>>0<=e>>>0){a[(N2()|0)>>2]=12;l=0;return l|0}n=e>>>0<11?16:e+11&-8;i=Q2(n+12+A|0)|0;if(!i){l=0;return l|0}f=i+-8|0;do{if(A+-1&i){r=(i+A+-1&0-A)+-8|0;e=f;r=(r-e|0)>>>0>15?r:r+A|0;e=r-e|0;A=i+-4|0;t=a[A>>2]|0;i=(t&-8)-e|0;if(!(t&3)){a[r>>2]=(a[f>>2]|0)+e;a[r+4>>2]=i;A=r;e=r;break}else{t=r+4|0;a[t>>2]=i|a[t>>2]&1|2;i=r+i+4|0;a[i>>2]=a[i>>2]|1;a[A>>2]=e|a[A>>2]&1|2;a[t>>2]=a[t>>2]|1;Y2(f,e);A=r;e=r;break}}else{A=f;e=f}}while(0);A=A+4|0;i=a[A>>2]|0;if(i&3|0?(l=i&-8,l>>>0>(n+16|0)>>>0):0){t=l-n|0;f=e+n|0;a[A>>2]=n|i&1|2;a[f+4>>2]=t|3;l=e+l+4|0;a[l>>2]=a[l>>2]|1;Y2(f,t)}t=e+8|0;return t|0}function F2(A){A=A|0;var e=0,i=0;e=k;k=k+16|0;i=e;a[i>>2]=R2(a[A+60>>2]|0)|0;A=p2(pA(6,i|0)|0)|0;k=e;return A|0}function V2(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0;s=k;k=k+32|0;f=s;t=s+16|0;a[t>>2]=e;n=t+4|0;c=A+48|0;b=a[c>>2]|0;a[n>>2]=i-((b|0)!=0&1);l=A+44|0;a[t+8>>2]=a[l>>2];a[t+12>>2]=b;a[f>>2]=a[A+60>>2];a[f+4>>2]=t;a[f+8>>2]=2;f=p2(QA(145,f|0)|0)|0;if((f|0)>=1){t=a[n>>2]|0;if(f>>>0>t>>>0){n=a[l>>2]|0;l=A+4|0;a[l>>2]=n;a[A+8>>2]=n+(f-t);if(!(a[c>>2]|0))f=i;else{a[l>>2]=n+1;r[e+(i+-1)>>0]=r[n>>0]|0;f=i}}}else a[A>>2]=a[A>>2]|f&48^16;k=s;return f|0}function J2(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;f=k;k=k+32|0;n=f;r=f+20|0;a[n>>2]=a[A+60>>2];a[n+4>>2]=0;a[n+8>>2]=e;a[n+12>>2]=r;a[n+16>>2]=i;if((p2(mA(140,n|0)|0)|0)<0){a[r>>2]=-1;A=-1}else A=a[r>>2]|0;k=f;return A|0}function p2(A){A=A|0;if(A>>>0>4294963200){a[(N2()|0)>>2]=0-A;A=-1}return A|0}function N2(){return 190572}function R2(A){A=A|0;return A|0}function X2(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0;n=k;k=k+32|0;f=n;a[A+36>>2]=18;if((a[A>>2]&64|0)==0?(a[f>>2]=a[A+60>>2],a[f+4>>2]=21523,a[f+8>>2]=n+16,JA(54,f|0)|0):0)r[A+75>>0]=-1;f=H2(A,e,i)|0;k=n;return f|0}function H2(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0;u=k;k=k+48|0;s=u+16|0;n=u;f=u+32|0;t=A+28|0;r=a[t>>2]|0;a[f>>2]=r;c=A+20|0;r=(a[c>>2]|0)-r|0;a[f+4>>2]=r;a[f+8>>2]=e;a[f+12>>2]=i;r=r+i|0;l=A+60|0;a[n>>2]=a[l>>2];a[n+4>>2]=f;a[n+8>>2]=2;n=p2(LA(146,n|0)|0)|0;A:do{if((r|0)!=(n|0)){e=2;while(1){if((n|0)<0)break;r=r-n|0;o=a[f+4>>2]|0;w=n>>>0>o>>>0;f=w?f+8|0:f;e=e+(w<<31>>31)|0;o=n-(w?o:0)|0;a[f>>2]=(a[f>>2]|0)+o;w=f+4|0;a[w>>2]=(a[w>>2]|0)-o;a[s>>2]=a[l>>2];a[s+4>>2]=f;a[s+8>>2]=e;n=p2(LA(146,s|0)|0)|0;if((r|0)==(n|0)){b=3;break A}}a[A+16>>2]=0;a[t>>2]=0;a[c>>2]=0;a[A>>2]=a[A>>2]|32;if((e|0)==2)i=0;else i=i-(a[f+4>>2]|0)|0}else b=3}while(0);if((b|0)==3){o=a[A+44>>2]|0;a[A+16>>2]=o+(a[A+48>>2]|0);a[t>>2]=o;a[c>>2]=o}k=u;return i|0}function U2(A,e){A=A|0;e=e|0;var i=0,r=0;i=k;k=k+16|0;r=i;a[r>>2]=A;a[r+4>>2]=e;e=p2(NA(91,r|0)|0)|0;k=i;return e|0}function x2(){return}function T2(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0;t=k;k=k+32|0;l=t;do{if((n&4095|0)==0&(((n|0)<0)<<31>>31&-4096|0)==0){if(e>>>0>2147483646){a[(N2()|0)>>2]=12;A=-1;break}a[l>>2]=A;a[l+4>>2]=e;a[l+8>>2]=i;a[l+12>>2]=r;a[l+16>>2]=f;a[l+20>>2]=n>>12;A=p2(yA(192,l|0)|0)|0}else{a[(N2()|0)>>2]=22;A=-1}}while(0);k=t;return A|0}function j2(A,e){A=A|0;e=e|0;var i=0,f=0,n=0;f=e&255;A:do{if(!f)A=A+(P2(A)|0)|0;else{if(A&3){i=e&255;do{n=r[A>>0]|0;if(n<<24>>24==0?1:n<<24>>24==i<<24>>24)break A;A=A+1|0}while((A&3|0)!=0)}f=U(f,16843009)|0;i=a[A>>2]|0;e:do{if(!((i&-2139062144^-2139062144)&i+-16843009))do{n=i^f;if((n&-2139062144^-2139062144)&n+-16843009|0)break e;A=A+4|0;i=a[A>>2]|0}while(!((i&-2139062144^-2139062144)&i+-16843009|0))}while(0);i=e&255;while(1){n=r[A>>0]|0;if(n<<24>>24==0?1:n<<24>>24==i<<24>>24)break;else A=A+1|0}}}while(0);return A|0}function P2(A){A=A|0;var e=0,i=0,f=0;f=A;A:do{if(!(f&3))i=4;else{e=f;while(1){if(!(r[A>>0]|0)){A=e;break A}A=A+1|0;e=A;if(!(e&3)){i=4;break}}}}while(0);if((i|0)==4){while(1){e=a[A>>2]|0;if(!((e&-2139062144^-2139062144)&e+-16843009))A=A+4|0;else break}if((e&255)<<24>>24)do{A=A+1|0}while((r[A>>0]|0)!=0)}return A-f|0}function S2(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0;l=k;k=k+48|0;n=l+16|0;f=l;r=l+32|0;if(!(e&4194368))r=0;else{a[r>>2]=i;t=(a[r>>2]|0)+(4-1)&~(4-1);i=a[t>>2]|0;a[r>>2]=t+4;r=i}a[f>>2]=A;a[f+4>>2]=e|32768;a[f+8>>2]=r;r=VA(5,f|0)|0;if(!((e&524288|0)==0|(r|0)<0)){a[n>>2]=r;a[n+4>>2]=2;a[n+8>>2]=1;DA(221,n|0)|0}t=p2(r)|0;k=l;return t|0}function O2(A,e){A=A|0;e=e|0;var i=0,f=0;f=0;while(1){if((n[144531+f>>0]|0)==(A|0)){A=2;break}i=f+1|0;if((i|0)==87){i=144619;f=87;A=5;break}else f=i}if((A|0)==2)if(!f)i=144619;else{i=144619;A=5}if((A|0)==5)while(1){do{A=i;i=i+1|0}while((r[A>>0]|0)!=0);f=f+-1|0;if(!f)break;else A=5}return K2(i,a[e+20>>2]|0)|0}function K2(A,e){A=A|0;e=e|0;return _2(A,e)|0}function _2(A,e){A=A|0;e=e|0;if(!e)e=0;else e=q2(a[e>>2]|0,a[e+4>>2]|0,A)|0;return(e|0?e:A)|0}function q2(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0;k=(a[A>>2]|0)+1794895138|0;l=$2(a[A+8>>2]|0,k)|0;f=$2(a[A+12>>2]|0,k)|0;n=$2(a[A+16>>2]|0,k)|0;A:do{if((l>>>0>>2>>>0?(w=e-(l<<2)|0,f>>>0>>0&n>>>0>>0):0)?((n|f)&3|0)==0:0){w=f>>>2;u=n>>>2;b=0;while(1){c=l>>>1;s=b+c|0;t=s<<1;n=t+w|0;f=$2(a[A+(n<<2)>>2]|0,k)|0;n=$2(a[A+(n+1<<2)>>2]|0,k)|0;if(!(n>>>0>>0&f>>>0<(e-n|0)>>>0)){f=0;break A}if(r[A+(n+f)>>0]|0){f=0;break A}f=A1(i,A+n|0)|0;if(!f)break;f=(f|0)<0;if((l|0)==1){f=0;break A}else{b=f?b:s;l=f?c:l-c|0}}f=t+u|0;n=$2(a[A+(f<<2)>>2]|0,k)|0;f=$2(a[A+(f+1<<2)>>2]|0,k)|0;if(f>>>0>>0&n>>>0<(e-f|0)>>>0)f=(r[A+(f+n)>>0]|0)==0?A+f|0:0;else f=0}else f=0}while(0);return f|0}function $2(A,e){A=A|0;e=e|0;var i=0;i=Q6(A|0)|0;return((e|0)==0?A:i)|0}function A1(A,e){A=A|0;e=e|0;var i=0,f=0;i=r[A>>0]|0;f=r[e>>0]|0;if(i<<24>>24==0?1:i<<24>>24!=f<<24>>24)A=f;else{do{A=A+1|0;e=e+1|0;i=r[A>>0]|0;f=r[e>>0]|0}while(!(i<<24>>24==0?1:i<<24>>24!=f<<24>>24));A=f}return(i&255)-(A&255)|0}function e1(A){A=A|0;return O2(A,a[(i1()|0)+188>>2]|0)|0}function i1(){return r1()|0}function r1(){return 62976}function f1(A,e,i){A=+A;e=+e;i=i|0;var r=0.0,f=0.0,a=0.0;a=A*A;r=a*(a*a)*(a*1.58969099521155e-10+-2.5050760253406863e-08)+(a*(a*2.7557313707070068e-06+-1.984126982985795e-04)+.00833333333332249);f=a*A;if(!i)A=f*(a*r+-.16666666666666632)+A;else A=A-(f*.16666666666666632+(a*(e*.5-f*r)-e));return+A}function a1(A){A=+A;var e=0,i=0,r=0,f=0,n=0.0,l=0.0,t=0.0,c=0.0,b=0.0;s[u>>3]=A;e=a[u>>2]|0;i=a[u+4>>2]|0;r=(i|0)<0;do{if(r|i>>>0<1048576){if((e|0)==0&(i&2147483647|0)==0){A=-1.0/(A*A);break}if(r){A=(A-A)/0.0;break}else{s[u>>3]=A*18014398509481984.0;i=a[u+4>>2]|0;r=-1077;e=a[u>>2]|0;f=9;break}}else if(i>>>0<=2146435071)if((e|0)==0&0==0&(i|0)==1072693248)A=0.0;else{r=-1023;f=9}}while(0);if((f|0)==9){f=i+614242|0;a[u>>2]=e;a[u+4>>2]=(f&1048575)+1072079006;b=+s[u>>3]+-1.0;t=b*(b*.5);l=b/(b+2.0);c=l*l;n=c*c;s[u>>3]=b-t;i=a[u+4>>2]|0;a[u>>2]=0;a[u+4>>2]=i;A=+s[u>>3];n=b-A-t+l*(t+(n*(n*(n*.15313837699209373+.22222198432149784)+.3999999999940942)+c*(n*(n*(n*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)));c=A*1.4426950407214463;t=+(r+(f>>>20)|0);l=c+t;A=l+(c+(t-l)+(n*1.4426950407214463+(n+A)*1.6751713164886512e-10))}return+A}function n1(A,e){A=+A;e=e|0;var i=0,r=0,f=0;s[u>>3]=A;i=a[u>>2]|0;r=a[u+4>>2]|0;f=Z6(i|0,r|0,52)|0;switch(f&2047){case 0:{if(A!=0.0){A=+n1(A*18446744073709551616.0,e);i=(a[e>>2]|0)+-64|0}else i=0;a[e>>2]=i;break}case 2047:break;default:{a[e>>2]=(f&2047)+-1022;a[u>>2]=i;a[u+4>>2]=r&-2146435073|1071644672;A=+s[u>>3]}}return+A}function l1(A,e){A=+A;e=+e;var i=0.0,r=0.0,f=0.0,a=0.0;i=A*A;r=i*i;f=i*.5;a=1.0-f;return+(a+(1.0-a-f+(i*(i*(i*(i*2.480158728947673e-05+-.001388888888887411)+.0416666666666666)+r*r*(i*(2.087572321298175e-09-i*1.1359647557788195e-11)+-2.7557314351390663e-07))-A*e)))}function t1(A){A=+A;var e=0,i=0,r=0,f=0,n=0.0,l=0.0,t=0.0,c=0.0,b=0.0;s[u>>3]=A;e=a[u>>2]|0;i=a[u+4>>2]|0;r=(i|0)<0;do{if(r|i>>>0<1048576){if((e|0)==0&(i&2147483647|0)==0){A=-1.0/(A*A);break}if(r){A=(A-A)/0.0;break}else{s[u>>3]=A*18014398509481984.0;i=a[u+4>>2]|0;r=-1077;e=a[u>>2]|0;f=9;break}}else if(i>>>0<=2146435071)if((e|0)==0&0==0&(i|0)==1072693248)A=0.0;else{r=-1023;f=9}}while(0);if((f|0)==9){f=i+614242|0;a[u>>2]=e;a[u+4>>2]=(f&1048575)+1072079006;t=+s[u>>3]+-1.0;l=t*(t*.5);c=t/(t+2.0);b=c*c;n=b*b;s[u>>3]=t-l;i=a[u+4>>2]|0;a[u>>2]=0;a[u+4>>2]=i;A=+s[u>>3];n=t-A-l+c*(l+(n*(n*(n*.15313837699209373+.22222198432149784)+.3999999999940942)+b*(n*(n*(n*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)));b=A*.4342944818781689;l=+(r+(f>>>20)|0);c=l*.30102999566361177;t=c+b;A=t+(b+(c-t)+(n*.4342944818781689+(l*3.694239077158931e-13+(n+A)*2.5082946711645275e-11)))}return+A}function c1(A,e){A=+A;e=e|0;var i=0,r=0.0,f=0.0,n=0.0,l=0,t=0.0,c=0,b=0,w=0,o=0,h=0,d=0,B=0.0;d=k;k=k+48|0;c=d+16|0;b=d;s[u>>3]=A;i=a[u>>2]|0;l=a[u+4>>2]|0;w=Z6(i|0,l|0,63)|0;h=l&2147483647;do{if(h>>>0<1074752123)if((l&1048575|0)!=598523){i=(w|0)!=0;if(h>>>0<1073928573)if(i){n=A+1.5707963267341256;t=n+6.077100506506192e-11;s[e>>3]=t;s[e+8>>3]=n-t+6.077100506506192e-11;i=-1;break}else{n=A+-1.5707963267341256;t=n+-6.077100506506192e-11;s[e>>3]=t;s[e+8>>3]=n-t+-6.077100506506192e-11;i=1;break}else if(i){n=A+3.1415926534682512;t=n+1.2154201013012384e-10;s[e>>3]=t;s[e+8>>3]=n-t+1.2154201013012384e-10;i=-2;break}else{n=A+-3.1415926534682512;t=n+-1.2154201013012384e-10;s[e>>3]=t;s[e+8>>3]=n-t+-1.2154201013012384e-10;i=2;break}}else o=21;else{if(h>>>0<1075594812)if(h>>>0<1075183037){if((h|0)==1074977148){o=21;break}if(!w){n=A+-4.712388980202377;t=n+-1.8231301519518578e-10;s[e>>3]=t;s[e+8>>3]=n-t+-1.8231301519518578e-10;i=3;break}else{n=A+4.712388980202377;t=n+1.8231301519518578e-10;s[e>>3]=t;s[e+8>>3]=n-t+1.8231301519518578e-10;i=-3;break}}else{if((h|0)==1075388923){o=21;break}if(!w){n=A+-6.2831853069365025;t=n+-2.430840202602477e-10;s[e>>3]=t;s[e+8>>3]=n-t+-2.430840202602477e-10;i=4;break}else{n=A+6.2831853069365025;t=n+2.430840202602477e-10;s[e>>3]=t;s[e+8>>3]=n-t+2.430840202602477e-10;i=-4;break}}if(h>>>0>=1094263291){if(h>>>0>2146435071){t=A-A;s[e+8>>3]=t;s[e>>3]=t;i=0;break}a[u>>2]=i;a[u+4>>2]=l&1048575|1096810496;A=+s[u>>3];i=0;do{t=+(~~A|0);s[c+(i<<3)>>3]=t;A=(A-t)*16777216.0;i=i+1|0}while((i|0)!=2);s[c+16>>3]=A;if(A==0.0){i=1;while(1)if(+s[c+(i<<3)>>3]==0.0)i=i+-1|0;else break}else i=2;i=s1(c,b,(h>>>20)+-1046|0,i+1|0,1)|0;A=+s[b>>3];if(!w){s[e>>3]=A;s[e+8>>3]=+s[b+8>>3];break}else{s[e>>3]=-A;s[e+8>>3]=-+s[b+8>>3];i=0-i|0;break}}else o=21}}while(0);if((o|0)==21){n=A*.6366197723675814+6755399441055744.0+-6755399441055744.0;i=~~n;r=A-n*1.5707963267341256;f=n*6.077100506506192e-11;A=r-f;s[e>>3]=A;s[u>>3]=A;o=Z6(a[u>>2]|0,a[u+4>>2]|0,52)|0;l=h>>>20;if((l-(o&2047)|0)>16){f=n*6.077100506303966e-11;t=r-f;f=n*2.0222662487959506e-21-(r-t-f);A=t-f;s[e>>3]=A;s[u>>3]=A;h=Z6(a[u>>2]|0,a[u+4>>2]|0,52)|0;B=n*2.0222662487111665e-21;r=t-B;n=n*8.4784276603689e-32-(t-r-B);if((l-(h&2047)|0)>49){A=r-n;s[e>>3]=A;f=n}else r=t}s[e+8>>3]=r-A-f}k=d;return i|0}function s1(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0.0,l=0.0,t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,W=0,z=0,Y=0,D=0,M=0.0;D=k;k=k+560|0;Q=D+480|0;G=D+320|0;Y=D+160|0;W=D;L=a[63220+(f<<2)>>2]|0;o=r+-1|0;Z=(i+-3|0)/24|0;Z=(Z|0)>0?Z:0;m=U(Z,-24)|0;t=i+-24+m|0;if((L+o|0)>=0){u=L+r|0;c=Z-o|0;b=0;while(1){if((c|0)<0)n=0.0;else n=+(a[63236+(c<<2)>>2]|0);s[G+(b<<3)>>3]=n;b=b+1|0;if((b|0)==(u|0))break;else c=c+1|0}}w=(r|0)>0;u=0;while(1){if(w){b=u+o|0;n=0.0;c=0;do{n=n+ +s[A+(c<<3)>>3]*+s[G+(b-c<<3)>>3];c=c+1|0}while((c|0)!=(r|0))}else n=0.0;s[W+(u<<3)>>3]=n;if((u|0)<(L|0))u=u+1|0;else break}g=(t|0)>0;v=24-t|0;E=23-t|0;C=(r|0)>0;I=(t|0)==0;c=L;A:while(1){n=+s[W+(c<<3)>>3];w=(c|0)>0;if(w){b=c;u=0;while(1){l=+(~~(n*5.9604644775390625e-08)|0);a[Q+(u<<2)>>2]=~~(n-l*16777216.0);B=b;b=b+-1|0;n=+s[W+(b<<3)>>3]+l;if((B|0)<=1)break;else u=u+1|0}}n=+b1(n,t);n=n-+y(+(n*.125))*8.0;b=~~n;n=n-+(b|0);do{if(!g)if(!I)if(!(n>=.5)){o=0;B=b;break}else{u=2;z=20;break}else{u=a[Q+(c+-1<<2)>>2]>>23;z=19;break}else{B=Q+(c+-1<<2)|0;u=a[B>>2]|0;z=u>>v;u=u-(z<>2]=u;u=u>>E;b=z+b|0;z=19}}while(0);if((z|0)==19){z=0;if((u|0)>0)z=20;else{o=u;B=b}}if((z|0)==20){z=0;B=b+1|0;if(w){b=0;d=0;do{o=Q+(d<<2)|0;h=a[o>>2]|0;if(!b)if(!h)b=0;else{b=1;w=16777216;z=23}else{w=16777215;z=23}if((z|0)==23){z=0;a[o>>2]=w-h}d=d+1|0}while((d|0)!=(c|0))}else b=0;e:do{if(g){switch(t|0){case 1:{w=8388607;break}case 2:{w=4194303;break}default:break e}d=Q+(c+-1<<2)|0;a[d>>2]=a[d>>2]&w}}while(0);if((u|0)==2){n=1.0-n;if(!b)o=2;else{o=2;n=n-+b1(1.0,t)}}else o=u}if(!(n==0.0)){z=42;break}if((c|0)>(L|0)){b=0;u=c;do{u=u+-1|0;b=a[Q+(u<<2)>>2]|b}while((u|0)>(L|0));if(b){z=41;break}else b=1}else b=1;while(1)if(!(a[Q+(L-b<<2)>>2]|0))b=b+1|0;else break;w=b+c|0;if((b|0)<=0){c=w;continue}while(1){u=c+1|0;b=c+r|0;s[G+(b<<3)>>3]=+(a[63236+(u+Z<<2)>>2]|0);if(C){n=0.0;c=0;do{n=n+ +s[A+(c<<3)>>3]*+s[G+(b-c<<3)>>3];c=c+1|0}while((c|0)!=(r|0))}else n=0.0;s[W+(u<<3)>>3]=n;if((u|0)<(w|0))c=u;else{c=w;continue A}}}if((z|0)==41)while(1){z=0;t=t+-24|0;c=c+-1|0;if(!(a[Q+(c<<2)>>2]|0))z=41;else{w=c;break}}else if((z|0)==42){n=+b1(n,0-t|0);if(n>=16777216.0){l=+(~~(n*5.9604644775390625e-08)|0);a[Q+(c<<2)>>2]=~~(n-l*16777216.0);t=m+i|0;c=c+1|0;n=l}a[Q+(c<<2)>>2]=~~n;w=c}u=(w|0)>-1;if(u){n=+b1(1.0,t);t=w;while(1){s[W+(t<<3)>>3]=n*+(a[Q+(t<<2)>>2]|0);if((t|0)>0){n=n*5.9604644775390625e-08;t=t+-1|0}else break}if(u){c=w;while(1){b=w-c|0;t=0;n=0.0;while(1){n=n+ +s[10904+(t<<3)>>3]*+s[W+(t+c<<3)>>3];if((t|0)>=(L|0)|(t|0)>=(b|0))break;else t=t+1|0}s[Y+(b<<3)>>3]=n;if((c|0)>0)c=c+-1|0;else break}}}switch(f|0){case 0:{if(u){n=0.0;t=w;while(1){n=n+ +s[Y+(t<<3)>>3];if((t|0)>0)t=t+-1|0;else break}}else n=0.0;l=(o|0)==0?n:-n;z=73;break}case 2:case 1:{if(u){n=0.0;t=w;while(1){n=n+ +s[Y+(t<<3)>>3];if((t|0)>0)t=t+-1|0;else break}}else n=0.0;c=(o|0)==0;s[e>>3]=c?n:-n;n=+s[Y>>3]-n;if((w|0)>=1){t=1;while(1){n=n+ +s[Y+(t<<3)>>3];if((t|0)==(w|0))break;else t=t+1|0}}l=c?n:-n;e=e+8|0;z=73;break}case 3:{if((w|0)>0){t=w;n=+s[Y+(w<<3)>>3];do{z=t;t=t+-1|0;W=Y+(t<<3)|0;l=+s[W>>3];M=n;n=l+n;s[Y+(z<<3)>>3]=M+(l-n);s[W>>3]=n}while((z|0)>1);c=(w|0)>1;if(c){t=w;n=+s[Y+(w<<3)>>3];do{z=t;t=t+-1|0;W=Y+(t<<3)|0;M=+s[W>>3];l=n;n=M+n;s[Y+(z<<3)>>3]=l+(M-n);s[W>>3]=n}while((z|0)>2);if(c){t=w;l=0.0;while(1){l=l+ +s[Y+(t<<3)>>3];if((t|0)>2)t=t+-1|0;else break}}else l=0.0}else l=0.0}else l=0.0;n=+s[Y>>3];if(!o){s[e>>3]=n;n=+s[Y+8>>3]}else{s[e>>3]=-n;l=-l;n=-+s[Y+8>>3]}s[e+8>>3]=n;e=e+16|0;z=73;break}default:{}}if((z|0)==73)s[e>>3]=l;k=D;return B&7|0}function b1(A,e){A=+A;e=e|0;var i=0,r=0;if((e|0)<=1023){if((e|0)<-1022){A=A*2.2250738585072014e-308;r=(e|0)<-2044;i=e+2044|0;A=r?A*2.2250738585072014e-308:A;e=r?(i|0)>-1022?i:-1022:e+1022|0}}else{A=A*8988465674311579538646525.0e283;i=(e|0)>2046;r=e+-2046|0;A=i?A*8988465674311579538646525.0e283:A;e=i?(r|0)<1023?r:1023:e+-1023|0}i=G6(e+1023|0,0,52)|0;r=L;a[u>>2]=i;a[u+4>>2]=r;return+(A*+s[u>>3])}function u1(A){A=+A;var e=0,i=0,r=0,f=0.0,n=0.0;s[u>>3]=A;i=a[u+4>>2]|0;e=i&2147483647;do{if(e>>>0>2146435071)A=A+A;else{if(e>>>0<1048576){s[u>>3]=A*18014398509481984.0;i=a[u+4>>2]|0;e=i&2147483647;if(!e)break;else r=696219795}else r=715094163;a[u>>2]=0;a[u+4>>2]=((e>>>0)/3|0)+r|i&-2147483648;f=+s[u>>3];n=f*f*(f/A);s[u>>3]=(n*(n*n)*(n*.14599619288661245+-.758397934778766)+(n*(n*1.6214297201053545+-1.8849797954337717)+1.87595182427177))*f;i=d6(a[u>>2]|0,a[u+4>>2]|0,-2147483648,0)|0;r=L;a[u>>2]=i&-1073741824;a[u+4>>2]=r;f=+s[u>>3];A=A/(f*f);A=(A-f)/(f+f+A)*f+f}}while(0);return+A}function w1(A,e){A=+A;e=+e;var i=0,r=0;s[u>>3]=A;r=a[u>>2]|0;i=a[u+4>>2]|0;s[u>>3]=e;i=a[u+4>>2]&-2147483648|i&2147483647;a[u>>2]=r;a[u+4>>2]=i;return+ +s[u>>3]}function k1(A,e){A=+A;e=+e;return+ +w1(A,e)}function o1(A,e){A=+A;e=e|0;return+ +b1(A,e)}function h1(A,e){A=+A;e=+e;return+ +d1(A,e)}function d1(A,e){A=+A;e=+e;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,b=0,w=0,k=0,o=0,h=0;s[u>>3]=A;l=a[u>>2]|0;c=a[u+4>>2]|0;s[u>>3]=e;w=a[u>>2]|0;k=a[u+4>>2]|0;r=Z6(l|0,c|0,52)|0;r=r&2047;b=Z6(w|0,k|0,52)|0;b=b&2047;o=c&-2147483648;n=G6(w|0,k|0,1)|0;t=L;A:do{if(!((n|0)==0&(t|0)==0)?(f=B1(e)|0,i=L&2147483647,!((r|0)==2047|(i>>>0>2146435072|(i|0)==2146435072&f>>>0>0))):0){i=G6(l|0,c|0,1)|0;f=L;if(!(f>>>0>t>>>0|(f|0)==(t|0)&i>>>0>n>>>0))return+((i|0)==(n|0)&(f|0)==(t|0)?A*0.0:A);if(!r){i=G6(l|0,c|0,12)|0;f=L;if((f|0)>-1|(f|0)==-1&i>>>0>4294967295){r=0;do{r=r+-1|0;i=G6(i|0,f|0,1)|0;f=L}while((f|0)>-1|(f|0)==-1&i>>>0>4294967295)}else r=0;l=G6(l|0,c|0,1-r|0)|0;n=L}else n=c&1048575|1048576;if(!b){f=G6(w|0,k|0,12)|0;t=L;if((t|0)>-1|(t|0)==-1&f>>>0>4294967295){i=0;do{i=i+-1|0;f=G6(f|0,t|0,1)|0;t=L}while((t|0)>-1|(t|0)==-1&f>>>0>4294967295)}else i=0;w=G6(w|0,k|0,1-i|0)|0;b=i;c=L}else c=k&1048575|1048576;f=B6(l|0,n|0,w|0,c|0)|0;i=L;t=(i|0)>-1|(i|0)==-1&f>>>0>4294967295;e:do{if((r|0)>(b|0)){while(1){if(t){if((f|0)==0&(i|0)==0)break}else{f=l;i=n}l=G6(f|0,i|0,1)|0;n=L;r=r+-1|0;f=B6(l|0,n|0,w|0,c|0)|0;i=L;t=(i|0)>-1|(i|0)==-1&f>>>0>4294967295;if((r|0)<=(b|0))break e}e=A*0.0;break A}}while(0);if(t){if((f|0)==0&(i|0)==0){e=A*0.0;break}}else{i=n;f=l}if(i>>>0<1048576|(i|0)==1048576&f>>>0<0)do{f=G6(f|0,i|0,1)|0;i=L;r=r+-1|0}while(i>>>0<1048576|(i|0)==1048576&f>>>0<0);if((r|0)>0){k=d6(f|0,i|0,0,-1048576)|0;i=L;r=G6(r|0,0,52)|0;i=i|L;r=k|r}else{r=Z6(f|0,i|0,1-r|0)|0;i=L}a[u>>2]=r;a[u+4>>2]=i|o;e=+s[u>>3]}else h=3}while(0);if((h|0)==3){e=A*e;e=e/e}return+e}function B1(A){A=+A;var e=0;s[u>>3]=A;e=a[u>>2]|0;L=a[u+4>>2]|0;return e|0}function g1(A,e){A=+A;e=+e;var i=0.0,r=0,f=0,n=0,l=0,t=0.0,c=0,b=0,w=0,o=0,h=0,d=0,B=0,g=0;h=k;k=k+32|0;c=h+24|0;b=h+16|0;w=h+8|0;o=h;s[u>>3]=A;g=a[u>>2]|0;n=a[u+4>>2]|0;s[u>>3]=e;r=a[u>>2]|0;n=n&2147483647;f=a[u+4>>2]&2147483647;l=n>>>0>>0|(n|0)==(f|0)&g>>>0>>0;B=l?r:g;d=l?f:n;r=l?g:r;f=l?n:f;n=Z6(B|0,d|0,52)|0;l=Z6(r|0,f|0,52)|0;a[u>>2]=B;a[u+4>>2]=d;A=+s[u>>3];a[u>>2]=r;a[u+4>>2]=f;t=+s[u>>3];do{if((l|0)!=2047){if(!((r|0)==0&(f|0)==0|(n|0)==2047)){if((n-l|0)>64){A=A+t;break}if((n|0)>1533){i=5260135901548373507240989.0e186;e=A*1.90109156629516e-211;A=t*1.90109156629516e-211}else{g=(l|0)<573;i=g?1.90109156629516e-211:1.0;e=g?A*5260135901548373507240989.0e186:A;A=g?t*5260135901548373507240989.0e186:t}v1(c,b,e);v1(w,o,A);A=i*+z(+(+s[o>>3]+ +s[b>>3]+ +s[w>>3]+ +s[c>>3]))}}else A=t}while(0);k=h;return+A}function v1(A,e,i){A=A|0;e=e|0;i=+i;var r=0.0,f=0.0;f=i*134217729.0;f=f+(i-f);r=i-f;i=i*i;s[A>>3]=i;s[e>>3]=r*r+(f*f-i+f*2.0*r);return}function E1(A,e,i){A=+A;e=e|0;i=i|0;var r=0.0,f=0,n=0,l=0.0,t=0,c=0;t=k;k=k+16|0;n=t;s[u>>3]=A;f=a[u+4>>2]&2147483647;do{if(f>>>0<1072243196)if(f>>>0<1044816030){s[e>>3]=A;s[i>>3]=1.0;break}else{s[e>>3]=+f1(A,0.0,0);s[i>>3]=+l1(A,0.0);break}else{if(f>>>0>2146435071){l=A-A;s[i>>3]=l;s[e>>3]=l;break}f=c1(A,n)|0;c=n+8|0;r=+f1(+s[n>>3],+s[c>>3],1);A=+l1(+s[n>>3],+s[c>>3]);switch(f&3){case 0:{s[e>>3]=r;l=A;break}case 1:{s[e>>3]=A;l=-r;break}case 2:{s[e>>3]=-r;l=-A;break}case 3:{s[e>>3]=-A;l=r;break}default:{}}s[i>>3]=l}}while(0);k=t;return}function C1(A,e){A=+A;e=e|0;return+ +n1(A,e)}function I1(A){A=A|0;if(A>>>0<131072)A=(n[146423+((n[146423+(A>>>8)>>0]|0)<<5|A>>>3&31)>>0]|0)>>>(A&7)&1;else A=0;return A|0}function Z1(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,a=0;if(!i)f=0;else{f=r[A>>0]|0;A:do{if(!(f<<24>>24))f=0;else while(1){i=i+-1|0;a=r[e>>0]|0;if(!(f<<24>>24==a<<24>>24&((i|0)!=0&a<<24>>24!=0)))break A;A=A+1|0;e=e+1|0;f=r[A>>0]|0;if(!(f<<24>>24)){f=0;break}}}while(0);f=(f&255)-(n[e>>0]|0)|0}return f|0}function G1(A,e){A=A|0;e=e|0;A=j2(A,e)|0;return((r[A>>0]|0)==(e&255)<<24>>24?A:0)|0}function m1(A){A=A|0;return((A|0)==32|(A+-9|0)>>>0<5)&1|0}function Q1(A,e,i){A=A|0;e=e|0;i=i|0;i=y1(A,e,i,-1,0)|0;return i|0}function L1(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0;l=e&255;f=(i|0)!=0;A:do{if(f&(A&3|0)!=0){n=e&255;while(1){if((r[A>>0]|0)==n<<24>>24){t=6;break A}A=A+1|0;i=i+-1|0;f=(i|0)!=0;if(!(f&(A&3|0)!=0)){t=5;break}}}else t=5}while(0);if((t|0)==5)if(f)t=6;else i=0;A:do{if((t|0)==6){n=e&255;if((r[A>>0]|0)!=n<<24>>24){f=U(l,16843009)|0;e:do{if(i>>>0>3)while(1){l=a[A>>2]^f;if((l&-2139062144^-2139062144)&l+-16843009|0)break;A=A+4|0;i=i+-4|0;if(i>>>0<=3){t=11;break e}}else t=11}while(0);if((t|0)==11)if(!i){i=0;break}while(1){if((r[A>>0]|0)==n<<24>>24)break A;A=A+1|0;i=i+-1|0;if(!i){i=0;break}}}}}while(0);return(i|0?A:0)|0}function y1(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0;c=k;k=k+128|0;l=c;a[l>>2]=0;t=l+4|0;a[t>>2]=A;a[l+44>>2]=A;n=l+8|0;a[n>>2]=(A|0)<0?-1:A+2147483647|0;a[l+76>>2]=-1;W1(l,0);i=z1(l,i,1,r,f)|0;if(e|0)a[e>>2]=A+((a[t>>2]|0)+(a[l+108>>2]|0)-(a[n>>2]|0));k=c;return i|0}function W1(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;a[A+104>>2]=e;i=a[A+8>>2]|0;r=a[A+4>>2]|0;f=i-r|0;a[A+108>>2]=f;a[A+100>>2]=(e|0)!=0&(f|0)>(e|0)?r+e|0:i;return}function z1(A,e,i,f,l){A=A|0;e=e|0;i=i|0;f=f|0;l=l|0;var t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0;A:do{if(e>>>0>36){a[(N2()|0)>>2]=22;l=0;f=0}else{d=A+4|0;h=A+100|0;do{t=a[d>>2]|0;if(t>>>0<(a[h>>2]|0)>>>0){a[d>>2]=t+1;t=n[t>>0]|0}else t=Y1(A)|0}while((m1(t)|0)!=0);e:do{switch(t|0){case 43:case 45:{t=((t|0)==45)<<31>>31;c=a[d>>2]|0;if(c>>>0<(a[h>>2]|0)>>>0){a[d>>2]=c+1;o=t;t=n[c>>0]|0;break e}else{o=t;t=Y1(A)|0;break e}}default:o=0}}while(0);c=(e|0)==0;do{if((e|16|0)==16&(t|0)==48){t=a[d>>2]|0;if(t>>>0<(a[h>>2]|0)>>>0){a[d>>2]=t+1;t=n[t>>0]|0}else t=Y1(A)|0;if((t|32|0)!=120)if(c){e=8;w=46;break}else{w=32;break}t=a[d>>2]|0;if(t>>>0<(a[h>>2]|0)>>>0){a[d>>2]=t+1;t=n[t>>0]|0}else t=Y1(A)|0;if((n[149592+t>>0]|0)>15){f=(a[h>>2]|0)==0;if(!f)a[d>>2]=(a[d>>2]|0)+-1;if(!i){W1(A,0);l=0;f=0;break A}if(f){l=0;f=0;break A}a[d>>2]=(a[d>>2]|0)+-1;l=0;f=0;break A}else{e=16;w=46}}else{e=c?10:e;if(e>>>0>(n[149592+t>>0]|0)>>>0)w=32;else{if(a[h>>2]|0)a[d>>2]=(a[d>>2]|0)+-1;W1(A,0);a[(N2()|0)>>2]=22;l=0;f=0;break A}}}while(0);e:do{if((w|0)==32)if((e|0)==10){e=t+-48|0;if(e>>>0<10){t=0;c=e;do{t=(t*10|0)+c|0;e=a[d>>2]|0;if(e>>>0<(a[h>>2]|0)>>>0){a[d>>2]=e+1;e=n[e>>0]|0}else e=Y1(A)|0;c=e+-48|0}while(c>>>0<10&t>>>0<429496729);i=0}else{e=t;t=0;i=0}s=e+-48|0;if(s>>>0<10){c=e;do{e=h6(t|0,i|0,10,0)|0;b=L;u=((s|0)<0)<<31>>31;k=~u;if(b>>>0>k>>>0|(b|0)==(k|0)&e>>>0>~s>>>0){e=10;w=72;break e}t=d6(e|0,b|0,s|0,u|0)|0;i=L;e=a[d>>2]|0;if(e>>>0<(a[h>>2]|0)>>>0){a[d>>2]=e+1;c=n[e>>0]|0}else c=Y1(A)|0;s=c+-48|0}while(s>>>0<10&(i>>>0<429496729|(i|0)==429496729&t>>>0<2576980378));if(s>>>0>9){c=o;e=i}else{e=10;w=72}}else{c=o;e=i}}else w=46}while(0);e:do{if((w|0)==46){if(!(e+-1&e)){w=r[149848+((e*23|0)>>>5&7)>>0]|0;i=r[149592+t>>0]|0;c=i&255;if(e>>>0>c>>>0){t=0;s=c;do{t=s|t<>2]|0;if(c>>>0<(a[h>>2]|0)>>>0){a[d>>2]=c+1;c=n[c>>0]|0}else c=Y1(A)|0;i=r[149592+c>>0]|0;s=i&255}while(t>>>0<134217728&e>>>0>s>>>0);s=0}else{c=t;s=0;t=0}b=Z6(-1,-1,w|0)|0;u=L;if(e>>>0<=(i&255)>>>0|(u>>>0>>0|(u|0)==(s|0)&b>>>0>>0)){i=s;w=72;break}else c=s;while(1){t=G6(t|0,c|0,w|0)|0;s=L;t=t|i&255;c=a[d>>2]|0;if(c>>>0<(a[h>>2]|0)>>>0){a[d>>2]=c+1;c=n[c>>0]|0}else c=Y1(A)|0;i=r[149592+c>>0]|0;if(e>>>0<=(i&255)>>>0|(s>>>0>u>>>0|(s|0)==(u|0)&t>>>0>b>>>0)){i=s;w=72;break e}else c=s}}i=r[149592+t>>0]|0;c=i&255;if(e>>>0>c>>>0){t=0;s=c;do{t=s+(U(t,e)|0)|0;c=a[d>>2]|0;if(c>>>0<(a[h>>2]|0)>>>0){a[d>>2]=c+1;c=n[c>>0]|0}else c=Y1(A)|0;i=r[149592+c>>0]|0;s=i&255}while(t>>>0<119304647&e>>>0>s>>>0);s=0}else{c=t;t=0;s=0}if(e>>>0>(i&255)>>>0){w=E6(-1,-1,e|0,0)|0;k=L;u=s;while(1){if(u>>>0>k>>>0|(u|0)==(k|0)&t>>>0>w>>>0){i=u;w=72;break e}s=h6(t|0,u|0,e|0,0)|0;b=L;i=i&255;if(b>>>0>4294967295|(b|0)==-1&s>>>0>~i>>>0){i=u;w=72;break e}t=d6(s|0,b|0,i|0,0)|0;s=L;c=a[d>>2]|0;if(c>>>0<(a[h>>2]|0)>>>0){a[d>>2]=c+1;c=n[c>>0]|0}else c=Y1(A)|0;i=r[149592+c>>0]|0;if(e>>>0<=(i&255)>>>0){i=s;w=72;break}else u=s}}else{i=s;w=72}}}while(0);if((w|0)==72)if(e>>>0>(n[149592+c>>0]|0)>>>0){do{t=a[d>>2]|0;if(t>>>0<(a[h>>2]|0)>>>0){a[d>>2]=t+1;t=n[t>>0]|0}else t=Y1(A)|0}while(e>>>0>(n[149592+t>>0]|0)>>>0);a[(N2()|0)>>2]=34;c=(f&1|0)==0&0==0?o:0;e=l;t=f}else{c=o;e=i}if(a[h>>2]|0)a[d>>2]=(a[d>>2]|0)+-1;if(!(e>>>0>>0|(e|0)==(l|0)&t>>>0>>0)){if(!((f&1|0)!=0|0!=0|(c|0)!=0)){a[(N2()|0)>>2]=34;f=d6(f|0,l|0,-1,-1)|0;l=L;break}if(e>>>0>l>>>0|(e|0)==(l|0)&t>>>0>f>>>0){a[(N2()|0)>>2]=34;break}}f=((c|0)<0)<<31>>31;f=B6(t^c|0,e^f|0,c|0,f|0)|0;l=L}}while(0);L=l;return f|0}function Y1(A){A=A|0;var e=0,i=0,f=0,l=0,t=0,c=0;i=A+104|0;l=a[i>>2]|0;if((l|0)!=0?(a[A+108>>2]|0)>=(l|0):0)t=4;else{e=D1(A)|0;if((e|0)>=0){f=a[i>>2]|0;i=A+8|0;if(f){c=a[i>>2]|0;l=a[A+4>>2]|0;i=f-(a[A+108>>2]|0)|0;f=c;if((c-l|0)<(i|0))i=f;else i=l+(i+-1)|0}else{f=a[i>>2]|0;i=f}a[A+100>>2]=i;i=A+4|0;if(!f)i=a[i>>2]|0;else{i=a[i>>2]|0;c=A+108|0;a[c>>2]=f+1-i+(a[c>>2]|0)}i=i+-1|0;if((e|0)!=(n[i>>0]|0|0))r[i>>0]=e}else t=4}if((t|0)==4){a[A+100>>2]=0;e=-1}return e|0}function D1(A){A=A|0;var e=0,i=0;i=k;k=k+16|0;e=i;if((M1(A)|0)==0?(y5[a[A+32>>2]&63](A,e,1)|0)==1:0)A=n[e>>0]|0;else A=-1;k=i;return A|0}function M1(A){A=A|0;var e=0,i=0;e=A+74|0;i=r[e>>0]|0;r[e>>0]=i+255|i;e=A+20|0;i=A+28|0;if((a[e>>2]|0)>>>0>(a[i>>2]|0)>>>0)y5[a[A+36>>2]&63](A,0,0)|0;a[A+16>>2]=0;a[i>>2]=0;a[e>>2]=0;e=a[A>>2]|0;if(!(e&4)){i=(a[A+44>>2]|0)+(a[A+48>>2]|0)|0;a[A+8>>2]=i;a[A+4>>2]=i;e=e<<27>>31}else{a[A>>2]=e|32;e=-1}return e|0}function F1(A){A=A|0;return(A+-48|0)>>>0<10|0}function V1(A){A=A|0;return((A+-48|0)>>>0<10|(J1(A)|0)!=0)&1|0}function J1(A){A=A|0;return((A|32)+-97|0)>>>0<26|0}function p1(A,e){A=A|0;e=e|0;var i=0,f=0,a=0;i=r[A>>0]|0;A:do{if(!(i<<24>>24))i=0;else{a=i&255;while(1){f=r[e>>0]|0;if(!(f<<24>>24))break A;if(i<<24>>24!=f<<24>>24?(a=N1(a)|0,(a|0)!=(N1(f&255)|0)):0)break A;A=A+1|0;e=e+1|0;i=r[A>>0]|0;if(!(i<<24>>24)){i=0;break}else a=i&255}}}while(0);a=N1(i&255)|0;return a-(N1(n[e>>0]|0)|0)|0}function N1(A){A=A|0;var e=0;e=(R1(A)|0)==0;return(e?A:A|32)|0}function R1(A){A=A|0;return(A+-65|0)>>>0<26|0}function X1(A){A=A|0;return H1(A,0)|0}function H1(A,e){A=A|0;e=e|0;var i=0,a=0,t=0,c=0,s=0,b=0,u=0;s=(e<<1)+-1|0;b=e+-1|0;A:do{if(!((A+-43008|0)>>>0<22272|((A+-11776|0)>>>0<30784|((A+-1536|0)>>>0<2560|(U1(A)|0)==0)))){i=(e|0)!=0;if(i&(A+-4256|0)>>>0<46){if((A|0)>4293)switch(A|0){case 4295:case 4301:break;default:break A}A=A+7264|0;break}if((A+-11520|0)>>>0<38&(i^1)){A=A+-7264|0;break}else i=0;do{t=r[66346+(i<<2)+2>>0]|0;c=t<<24>>24;a=A-(l[66346+(i<<2)>>1]|0)|0;if((a-(b&c)|0)>>>0<(n[66346+(i<<2)+3>>0]|0)>>>0){u=11;break}i=i+1|0}while((i|0)!=61);if((u|0)==11)if(t<<24>>24==1){A=e+A-(a&1)|0;break}else{A=(U(s,c)|0)+A|0;break}t=1-e|0;i=f[65858+(t<<1)>>1]|0;e:do{if(i<<16>>16){a=0;while(1){if((i&65535|0)==(A|0))break;a=a+1|0;i=f[65858+(a<<2)+(t<<1)>>1]|0;if(!(i<<16>>16))break e}A=l[65858+(a<<2)+(e<<1)>>1]|0;break A}}while(0);return((A+-66600+(e*40|0)|0)>>>0<40?A+-40+(e*80|0)|0:A)|0}}while(0);return A|0}function U1(A){A=A|0;if(A>>>0<131072)A=(n[149857+((n[149857+(A>>>8)>>0]|0)<<5|A>>>3&31)>>0]|0)>>>(A&7)&1;else A=A>>>0<196606&1;return A|0}function x1(A){A=A|0;var e=0;e=A;while(1)if(!(a[e>>2]|0))break;else e=e+4|0;return e-A>>2|0}function T1(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,a=0,l=0;if(!i)A=0;else{f=r[A>>0]|0;A:do{if(!(f<<24>>24))A=0;else{l=A;A=f;f=f&255;while(1){i=i+-1|0;a=r[e>>0]|0;if(!((i|0)!=0&a<<24>>24!=0))break A;if(A<<24>>24!=a<<24>>24?(f=N1(f)|0,(f|0)!=(N1(a&255)|0)):0)break A;l=l+1|0;e=e+1|0;f=r[l>>0]|0;if(!(f<<24>>24)){A=0;break}else{A=f;f=f&255}}}}while(0);A=N1(A&255)|0;A=A-(N1(n[e>>0]|0)|0)|0}return A|0}function j1(A){A=A|0;if(A>>>0>=255)if((A+-57344|0)>>>0<8185|(A>>>0<8232|(A+-8234|0)>>>0<47062))A=1;else return(A&65534|0)!=65534&(A+-65532|0)>>>0<1048580&1|0;else A=(A+1&127)>>>0>32&1;return A|0}function P1(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0;s=k;k=k+16|0;n=s;t=(f|0)==0?190640:f;f=a[t>>2]|0;A:do{if(!e)if(!f)f=0;else c=17;else{l=(A|0)==0?n:A;if(!i)f=-2;else{if(!f){f=r[e>>0]|0;if(f<<24>>24>-1){a[l>>2]=f&255;f=f<<24>>24!=0&1;break}n=(a[a[(_1()|0)+188>>2]>>2]|0)==0;f=r[e>>0]|0;if(n){a[l>>2]=f<<24>>24&57343;f=1;break}f=(f&255)+-194|0;if(f>>>0>50){c=17;break}f=a[62384+(f<<2)>>2]|0;n=i+-1|0;if(n){e=e+1|0;c=11}}else{n=i;c=11}e:do{if((c|0)==11){A=r[e>>0]|0;b=(A&255)>>>3;if((b+-16|b+(f>>26))>>>0>7){c=17;break A}while(1){e=e+1|0;f=(A&255)+-128|f<<6;n=n+-1|0;if((f|0)>=0)break;if(!n)break e;A=r[e>>0]|0;if((A&-64)<<24>>24!=-128){c=17;break A}}a[t>>2]=0;a[l>>2]=f;f=i-n|0;break A}}while(0);a[t>>2]=f;f=-2}}}while(0);if((c|0)==17){a[t>>2]=0;a[(N2()|0)>>2]=84;f=-1}k=s;return f|0}function S1(A,e){A=A|0;e=e|0;if(!A)A=0;else A=O1(A,e,0)|0;return A|0}function O1(A,e,i){A=A|0;e=e|0;i=i|0;do{if(A){if(e>>>0<128){r[A>>0]=e;A=1;break}if(!(a[a[(K1()|0)+188>>2]>>2]|0))if((e&-128|0)==57216){r[A>>0]=e;A=1;break}else{a[(N2()|0)>>2]=84;A=-1;break}if(e>>>0<2048){r[A>>0]=e>>>6|192;r[A+1>>0]=e&63|128;A=2;break}if(e>>>0<55296|(e&-8192|0)==57344){r[A>>0]=e>>>12|224;r[A+1>>0]=e>>>6&63|128;r[A+2>>0]=e&63|128;A=3;break}if((e+-65536|0)>>>0<1048576){r[A>>0]=e>>>18|240;r[A+1>>0]=e>>>12&63|128;r[A+2>>0]=e>>>6&63|128;r[A+3>>0]=e&63|128;A=4;break}else{a[(N2()|0)>>2]=84;A=-1;break}}else A=1}while(0);return A|0}function K1(){return r1()|0}function _1(){return r1()|0}function q1(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0;o=k;k=k+272|0;u=o+8|0;w=o;do{if(!(r[e>>0]|0)){e=SA(152833)|0;if(e|0?r[e>>0]|0:0)break;e=SA(152840+(A*12|0)|0)|0;if(e|0?r[e>>0]|0:0)break;e=SA(152912)|0;if(e|0?r[e>>0]|0:0)break;e=152917}}while(0);i=0;A:do{switch(r[e+i>>0]|0){case 47:case 0:break A;default:{}}i=i+1|0}while(i>>>0<15);f=r[e>>0]|0;if(f<<24>>24!=46?(r[e+i>>0]|0)==0:0)if(f<<24>>24==67)b=15;else{s=e;b=16}else{e=152917;b=15}if((b|0)==15)if(!(r[e+1>>0]|0))b=18;else{s=e;b=16}A:do{if((b|0)==16)if((A1(s,152917)|0)!=0?(A1(s,152925)|0)!=0:0){e=a[47661]|0;if(e|0)do{if(!(A1(s,e+8|0)|0))break A;e=a[e+24>>2]|0}while((e|0)!=0);CA(190648);e=a[47661]|0;e:do{if(e|0){while(1){if(!(A1(s,e+8|0)|0))break;e=a[e+24>>2]|0;if(!e)break e}RA(190648);break A}}while(0);e:do{if(((a[47646]|0)==0?(n=SA(152931)|0,(n|0)!=0):0)?(r[n>>0]|0)!=0:0){t=254-i|0;c=i+1|0;f=n;while(1){l=j2(f,58)|0;e=r[l>>0]|0;n=l-f+((e<<24>>24!=0)<<31>>31)|0;if(n>>>0>>0){W6(u|0,f|0,n|0)|0;f=u+n|0;r[f>>0]=47;W6(f+1|0,s|0,i|0)|0;r[u+(c+n)>>0]=0;f=IA(u|0,w|0)|0;if(f|0)break;e=r[l>>0]|0}f=l+(e<<24>>24!=0&1)|0;if(!(r[f>>0]|0)){b=41;break e}}e=Q2(28)|0;if(!e){U2(f,a[w>>2]|0)|0;b=41;break}else{a[e>>2]=f;a[e+4>>2]=a[w>>2];w=e+8|0;W6(w|0,s|0,i|0)|0;r[w+i>>0]=0;a[e+24>>2]=a[47661];a[47661]=e;break}}else b=41}while(0);if((b|0)==41){e=Q2(28)|0;if(e){a[e>>2]=a[15584];a[e+4>>2]=a[15585];w=e+8|0;W6(w|0,s|0,i|0)|0;r[w+i>>0]=0;a[e+24>>2]=a[47661];a[47661]=e}}RA(190648);e=(A|0)==0&(e|0)==0?62336:e}else{e=s;b=18}}while(0);do{if((b|0)==18){if((A|0)==0?(r[e+1>>0]|0)==46:0){e=62336;break}e=0}}while(0);k=o;return e|0}function $1(A,e){A=A|0;e=e|0;A4(A,e)|0;return A|0}function A4(A,e){A=A|0;e=e|0;var i=0,f=0;i=e;A:do{if(!((i^A)&3)){if(i&3)do{i=r[e>>0]|0;r[A>>0]=i;if(!(i<<24>>24))break A;e=e+1|0;A=A+1|0}while((e&3|0)!=0);i=a[e>>2]|0;if(!((i&-2139062144^-2139062144)&i+-16843009)){f=A;while(1){e=e+4|0;A=f+4|0;a[f>>2]=i;i=a[e>>2]|0;if((i&-2139062144^-2139062144)&i+-16843009|0)break;else f=A}}f=8}else f=8}while(0);if((f|0)==8){f=r[e>>0]|0;r[A>>0]=f;if(f<<24>>24)do{e=e+1|0;A=A+1|0;f=r[e>>0]|0;r[A>>0]=f}while(f<<24>>24!=0)}return A|0}function e4(A){A=A|0;return((A|0)==32|(A|0)==9)&1|0}function i4(A){A=A|0;if(!A)A=0;else A=(r4(63500,A)|0)!=0&1;return A|0}function r4(A,e){A=A|0;e=e|0;var i=0;if(!e)A=A+((x1(A)|0)<<2)|0;else{while(1){i=a[A>>2]|0;if((i|0)==0|(i|0)==(e|0))break;else A=A+4|0}A=i|0?A:0}return A|0}function f4(A,e){A=A|0;e=e|0;do{switch(e|0){case 1:{A=a4(A)|0;break}case 2:{A=U1(A)|0;break}case 3:{A=n4(A)|0;break}case 4:{A=l4(A)|0;break}case 5:{A=F1(A)|0;break}case 6:{A=t4(A)|0;break}case 7:{A=c4(A)|0;break}case 8:{A=j1(A)|0;break}case 9:{A=I1(A)|0;break}case 10:{A=i4(A)|0;break}case 11:{A=s4(A)|0;break}case 12:{A=b4(A)|0;break}default:A=0}}while(0);return A|0}function a4(A){A=A|0;if(!(F1(A)|0))A=(U1(A)|0)!=0&1;else A=1;return A|0}function n4(A){A=A|0;return e4(A)|0}function l4(A){A=A|0;return((A+-65529|0)>>>0<3|((A&-2|0)==8232|(A>>>0<32|(A+-127|0)>>>0<33)))&1|0}function t4(A){A=A|0;if(!(i4(A)|0))A=(j1(A)|0)!=0&1;else A=0;return A|0}function c4(A){A=A|0;return(X1(A)|0)!=(A|0)|0}function s4(A){A=A|0;return(u4(A)|0)!=(A|0)|0}function b4(A){A=A|0;return((A+-48|0)>>>0<10|((A|32)+-97|0)>>>0<6)&1|0}function u4(A){A=A|0;return H1(A,1)|0}function w4(A){A=A|0;return(A+-97|0)>>>0<26|0}function k4(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0;u=k;k=k+128|0;n=u+124|0;b=u;l=b;t=63588;c=l+124|0;do{a[l>>2]=a[t>>2];l=l+4|0;t=t+4|0}while((l|0)<(c|0));if((e+-1|0)>>>0>2147483646)if(!e){A=n;e=1;s=4}else{a[(N2()|0)>>2]=75;e=-1}else s=4;if((s|0)==4){s=-2-A|0;s=e>>>0>s>>>0?s:e;a[b+48>>2]=s;n=b+20|0;a[n>>2]=A;a[b+44>>2]=A;e=A+s|0;A=b+16|0;a[A>>2]=e;a[b+28>>2]=e;e=o4(b,i,f)|0;if(s){b=a[n>>2]|0;r[b+(((b|0)==(a[A>>2]|0))<<31>>31)>>0]=0}}k=u;return e|0}function o4(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0;B=k;k=k+224|0;u=B+120|0;o=B+80|0;h=B;d=B+136|0;f=o;n=f+40|0;do{a[f>>2]=0;f=f+4|0}while((f|0)<(n|0));a[u>>2]=a[i>>2];if((h4(0,e,u,h,o)|0)<0)i=-1;else{if((a[A+76>>2]|0)>-1)w=d4(A)|0;else w=0;i=a[A>>2]|0;b=i&32;if((r[A+74>>0]|0)<1)a[A>>2]=i&-33;f=A+48|0;if(!(a[f>>2]|0)){n=A+44|0;l=a[n>>2]|0;a[n>>2]=d;t=A+28|0;a[t>>2]=d;c=A+20|0;a[c>>2]=d;a[f>>2]=80;s=A+16|0;a[s>>2]=d+80;i=h4(A,e,u,h,o)|0;if(l){y5[a[A+36>>2]&63](A,0,0)|0;i=(a[c>>2]|0)==0?-1:i;a[n>>2]=l;a[f>>2]=0;a[s>>2]=0;a[t>>2]=0;a[c>>2]=0}}else i=h4(A,e,u,h,o)|0;f=a[A>>2]|0;a[A>>2]=f|b;if(w|0)B4(A);i=(f&32|0)==0?i:-1}k=B;return i|0}function h4(A,e,i,n,l){A=A|0;e=e|0;i=i|0;n=n|0;l=l|0;var t=0,c=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,y=0,W=0,z=0,Y=0,D=0;D=k;k=k+64|0;y=D+16|0;W=D;m=D+24|0;z=D+8|0;Y=D+20|0;a[y>>2]=e;I=(A|0)!=0;Z=m+40|0;G=Z;m=m+39|0;Q=z+4|0;c=0;t=0;o=0;A:while(1){do{if((t|0)>-1)if((c|0)>(2147483647-t|0)){a[(N2()|0)>>2]=75;t=-1;break}else{t=c+t|0;break}}while(0);c=r[e>>0]|0;if(!(c<<24>>24)){C=86;break}else b=e;e:while(1){switch(c<<24>>24){case 37:{c=b;C=9;break e}case 0:{c=b;break e}default:{}}E=b+1|0;a[y>>2]=E;c=r[E>>0]|0;b=E}e:do{if((C|0)==9)while(1){C=0;if((r[b+1>>0]|0)!=37)break e;c=c+1|0;b=b+2|0;a[y>>2]=b;if((r[b>>0]|0)==37)C=9;else break}}while(0);c=c-e|0;if(I)g4(A,e,c);if(c|0){e=b;continue}u=b+1|0;c=(r[u>>0]|0)+-48|0;if(c>>>0<10){E=(r[b+2>>0]|0)==36;g=E?c:-1;o=E?1:o;u=E?b+3|0:u}else g=-1;a[y>>2]=u;c=r[u>>0]|0;E=(c<<24>>24)+-32|0;if(E>>>0>31|(1<>24)+-32|b;u=u+1|0;a[y>>2]=u;c=r[u>>0]|0;E=(c<<24>>24)+-32|0}while(!(E>>>0>31|(1<>24==42){w=u+1|0;c=(r[w>>0]|0)+-48|0;if(c>>>0<10?(r[u+2>>0]|0)==36:0){a[l+(c<<2)>>2]=10;c=a[n+((r[w>>0]|0)+-48<<3)>>2]|0;o=1;u=u+3|0}else{if(o|0){t=-1;break}if(I){o=(a[i>>2]|0)+(4-1)&~(4-1);c=a[o>>2]|0;a[i>>2]=o+4;o=0;u=w}else{c=0;o=0;u=w}}a[y>>2]=u;v=(c|0)<0;c=v?0-c|0:c;v=v?b|8192:b}else{c=v4(y)|0;if((c|0)<0){t=-1;break}v=b;u=a[y>>2]|0}do{if((r[u>>0]|0)==46){if((r[u+1>>0]|0)!=42){a[y>>2]=u+1;b=v4(y)|0;u=a[y>>2]|0;break}w=u+2|0;b=(r[w>>0]|0)+-48|0;if(b>>>0<10?(r[u+3>>0]|0)==36:0){a[l+(b<<2)>>2]=10;b=a[n+((r[w>>0]|0)+-48<<3)>>2]|0;u=u+4|0;a[y>>2]=u;break}if(o|0){t=-1;break A}if(I){E=(a[i>>2]|0)+(4-1)&~(4-1);b=a[E>>2]|0;a[i>>2]=E+4}else b=0;a[y>>2]=w;u=w}else b=-1}while(0);B=0;while(1){if(((r[u>>0]|0)+-65|0)>>>0>57){t=-1;break A}E=u+1|0;a[y>>2]=E;w=r[(r[u>>0]|0)+-65+(152944+(B*58|0))>>0]|0;h=w&255;if((h+-1|0)>>>0<8){B=h;u=E}else break}if(!(w<<24>>24)){t=-1;break}d=(g|0)>-1;do{if(w<<24>>24==19)if(d){t=-1;break A}else C=48;else{if(d){a[l+(g<<2)>>2]=h;d=n+(g<<3)|0;g=a[d+4>>2]|0;C=W;a[C>>2]=a[d>>2];a[C+4>>2]=g;C=48;break}if(!I){t=0;break A}E4(W,h,i)}}while(0);if((C|0)==48?(C=0,!I):0){c=0;e=E;continue}u=r[u>>0]|0;u=(B|0)!=0&(u&15|0)==3?u&-33:u;g=v&-65537;v=(v&8192|0)==0?v:g;e:do{switch(u|0){case 110:switch((B&255)<<24>>24){case 0:{a[a[W>>2]>>2]=t;c=0;e=E;continue A}case 1:{a[a[W>>2]>>2]=t;c=0;e=E;continue A}case 2:{c=a[W>>2]|0;a[c>>2]=t;a[c+4>>2]=((t|0)<0)<<31>>31;c=0;e=E;continue A}case 3:{f[a[W>>2]>>1]=t;c=0;e=E;continue A}case 4:{r[a[W>>2]>>0]=t;c=0;e=E;continue A}case 6:{a[a[W>>2]>>2]=t;c=0;e=E;continue A}case 7:{c=a[W>>2]|0;a[c>>2]=t;a[c+4>>2]=((t|0)<0)<<31>>31;c=0;e=E;continue A}default:{c=0;e=E;continue A}}case 112:{u=120;b=b>>>0>8?b:8;e=v|8;C=60;break}case 88:case 120:{e=v;C=60;break}case 111:{u=W;e=a[u>>2]|0;u=a[u+4>>2]|0;d=I4(e,u,Z)|0;B=G-d|0;w=0;h=153408;b=(v&8|0)==0|(b|0)>(B|0)?b:B+1|0;B=v;C=66;break}case 105:case 100:{u=W;e=a[u>>2]|0;u=a[u+4>>2]|0;if((u|0)<0){e=B6(0,0,e|0,u|0)|0;u=L;w=W;a[w>>2]=e;a[w+4>>2]=u;w=1;h=153408;C=65;break e}else{w=(v&2049|0)!=0&1;h=(v&2048|0)==0?(v&1|0)==0?153408:153410:153409;C=65;break e}}case 117:{u=W;w=0;h=153408;e=a[u>>2]|0;u=a[u+4>>2]|0;C=65;break}case 99:{r[m>>0]=a[W>>2];e=m;w=0;h=153408;d=Z;u=1;b=g;break}case 109:{u=e1(a[(N2()|0)>>2]|0)|0;C=70;break}case 115:{u=a[W>>2]|0;u=u|0?u:153418;C=70;break}case 67:{a[z>>2]=a[W>>2];a[Q>>2]=0;a[W>>2]=z;d=-1;u=z;C=74;break}case 83:{e=a[W>>2]|0;if(!b){G4(A,32,c,0,v);e=0;C=83}else{d=b;u=e;C=74}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{c=m4(A,+s[W>>3],c,b,v,u)|0;e=E;continue A}default:{w=0;h=153408;d=Z;u=b;b=v}}}while(0);e:do{if((C|0)==60){v=W;g=a[v>>2]|0;v=a[v+4>>2]|0;d=C4(g,v,Z,u&32)|0;h=(e&8|0)==0|(g|0)==0&(v|0)==0;w=h?0:2;h=h?153408:153408+(u>>4)|0;B=e;e=g;u=v;C=66}else if((C|0)==65){d=Z4(e,u,Z)|0;B=v;C=66}else if((C|0)==70){C=0;v=L1(u,0,b)|0;B=(v|0)==0;e=u;w=0;h=153408;d=B?u+b|0:v;u=B?b:v-u|0;b=g}else if((C|0)==74){C=0;h=u;e=0;b=0;while(1){w=a[h>>2]|0;if(!w)break;b=S1(Y,w)|0;if((b|0)<0|b>>>0>(d-e|0)>>>0)break;e=b+e|0;if(d>>>0>e>>>0)h=h+4|0;else break}if((b|0)<0){t=-1;break A}G4(A,32,c,e,v);if(!e){e=0;C=83}else{w=0;while(1){b=a[u>>2]|0;if(!b){C=83;break e}b=S1(Y,b)|0;w=b+w|0;if((w|0)>(e|0)){C=83;break e}g4(A,Y,b);if(w>>>0>=e>>>0){C=83;break}else u=u+4|0}}}}while(0);if((C|0)==66){C=0;u=(e|0)!=0|(u|0)!=0;v=(b|0)!=0|u;u=G-d+((u^1)&1)|0;e=v?d:Z;d=Z;u=v?(b|0)>(u|0)?b:u:b;b=(b|0)>-1?B&-65537:B}else if((C|0)==83){C=0;G4(A,32,c,e,v^8192);c=(c|0)>(e|0)?c:e;e=E;continue}g=d-e|0;B=(u|0)<(g|0)?g:u;v=B+w|0;c=(c|0)<(v|0)?v:c;G4(A,32,c,v,b);g4(A,h,w);G4(A,48,c,v,b^65536);G4(A,48,B,g,0);g4(A,e,g);G4(A,32,c,v,b^8192);e=E}A:do{if((C|0)==86)if(!A)if(o){t=1;while(1){e=a[l+(t<<2)>>2]|0;if(!e)break;E4(n+(t<<3)|0,e,i);e=t+1|0;if((t|0)<9)t=e;else{t=e;break}}if((t|0)<10)while(1){if(a[l+(t<<2)>>2]|0){t=-1;break A}if((t|0)<9)t=t+1|0;else{t=1;break}}else t=1}else t=0}while(0);k=D;return t|0}function d4(A){A=A|0;return 0}function B4(A){A=A|0;return}function g4(A,e,i){A=A|0;e=e|0;i=i|0;if(!(a[A>>2]&32))L4(e,i,A)|0;return}function v4(A){A=A|0;var e=0,i=0,f=0;i=a[A>>2]|0;f=(r[i>>0]|0)+-48|0;if(f>>>0<10){e=0;do{e=f+(e*10|0)|0;i=i+1|0;a[A>>2]=i;f=(r[i>>0]|0)+-48|0}while(f>>>0<10)}else e=0;return e|0}function E4(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0.0;A:do{if(e>>>0<=20)do{switch(e|0){case 9:{r=(a[i>>2]|0)+(4-1)&~(4-1);e=a[r>>2]|0;a[i>>2]=r+4;a[A>>2]=e;break A}case 10:{r=(a[i>>2]|0)+(4-1)&~(4-1);e=a[r>>2]|0;a[i>>2]=r+4;r=A;a[r>>2]=e;a[r+4>>2]=((e|0)<0)<<31>>31;break A}case 11:{r=(a[i>>2]|0)+(4-1)&~(4-1);e=a[r>>2]|0;a[i>>2]=r+4;r=A;a[r>>2]=e;a[r+4>>2]=0;break A}case 12:{r=(a[i>>2]|0)+(8-1)&~(8-1);e=r;f=a[e>>2]|0;e=a[e+4>>2]|0;a[i>>2]=r+8;r=A;a[r>>2]=f;a[r+4>>2]=e;break A}case 13:{f=(a[i>>2]|0)+(4-1)&~(4-1);r=a[f>>2]|0;a[i>>2]=f+4;r=(r&65535)<<16>>16;f=A;a[f>>2]=r;a[f+4>>2]=((r|0)<0)<<31>>31;break A}case 14:{f=(a[i>>2]|0)+(4-1)&~(4-1);r=a[f>>2]|0;a[i>>2]=f+4;f=A;a[f>>2]=r&65535;a[f+4>>2]=0;break A}case 15:{f=(a[i>>2]|0)+(4-1)&~(4-1);r=a[f>>2]|0;a[i>>2]=f+4;r=(r&255)<<24>>24;f=A;a[f>>2]=r;a[f+4>>2]=((r|0)<0)<<31>>31;break A}case 16:{f=(a[i>>2]|0)+(4-1)&~(4-1);r=a[f>>2]|0;a[i>>2]=f+4;f=A;a[f>>2]=r&255;a[f+4>>2]=0;break A}case 17:{f=(a[i>>2]|0)+(8-1)&~(8-1);n=+s[f>>3];a[i>>2]=f+8;s[A>>3]=n;break A}case 18:{f=(a[i>>2]|0)+(8-1)&~(8-1);n=+s[f>>3];a[i>>2]=f+8;s[A>>3]=n;break A}default:break A}}while(0)}while(0);return}function C4(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;if(!((A|0)==0&(e|0)==0))do{i=i+-1|0;r[i>>0]=n[153456+(A&15)>>0]|0|f;A=Z6(A|0,e|0,4)|0;e=L}while(!((A|0)==0&(e|0)==0));return i|0}function I4(A,e,i){A=A|0;e=e|0;i=i|0;if(!((A|0)==0&(e|0)==0))do{i=i+-1|0;r[i>>0]=A&7|48;A=Z6(A|0,e|0,3)|0;e=L}while(!((A|0)==0&(e|0)==0));return i|0}function Z4(A,e,i){A=A|0;e=e|0;i=i|0;var f=0;if(e>>>0>0|(e|0)==0&A>>>0>4294967295){while(1){f=C6(A|0,e|0,10,0)|0;i=i+-1|0;r[i>>0]=f&255|48;f=A;A=E6(A|0,e|0,10,0)|0;if(!(e>>>0>9|(e|0)==9&f>>>0>4294967295))break;else e=L}e=A}else e=A;if(e)while(1){i=i+-1|0;r[i>>0]=(e>>>0)%10|0|48;if(e>>>0<10)break;else e=(e>>>0)/10|0}return i|0}function G4(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var a=0,n=0;n=k;k=k+256|0;a=n;if((i|0)>(r|0)&(f&73728|0)==0){f=i-r|0;Y6(a|0,e|0,(f>>>0<256?f:256)|0)|0;if(f>>>0>255){e=i-r|0;do{g4(A,a,256);f=f+-256|0}while(f>>>0>255);f=e&255}g4(A,a,f)}k=n;return}function m4(A,e,i,f,l,t){A=A|0;e=+e;i=i|0;f=f|0;l=l|0;t=t|0;var c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0.0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,y=0,W=0,z=0,Y=0,D=0;D=k;k=k+560|0;b=D+8|0;v=D;Y=D+524|0;z=Y;u=D+512|0;a[v>>2]=0;W=u+12|0;Q4(e)|0;if((L|0)<0){e=-e;Q=1;m=153425}else{Q=(l&2049|0)!=0&1;m=(l&2048|0)==0?(l&1|0)==0?153426:153431:153428}Q4(e)|0;do{if(0==0&(L&2146435072|0)==2146435072){Y=(t&32|0)!=0;c=Q+3|0;G4(A,32,i,c,l&-65537);g4(A,m,Q);g4(A,e!=e|0.0!=0.0?Y?153593:153452:Y?153444:153448,3);G4(A,32,i,c,l^8192)}else{d=+C1(e,v)*2.0;c=d!=0.0;if(c)a[v>>2]=(a[v>>2]|0)+-1;C=t|32;if((C|0)==97){o=t&32;B=(o|0)==0?m:m+9|0;h=Q|2;c=12-f|0;do{if(!(f>>>0>11|(c|0)==0)){e=8.0;do{c=c+-1|0;e=e*16.0}while((c|0)!=0);if((r[B>>0]|0)==45){e=-(e+(-d-e));break}else{e=d+e-e;break}}else e=d}while(0);s=a[v>>2]|0;c=(s|0)<0?0-s|0:s;c=Z4(c,((c|0)<0)<<31>>31,W)|0;if((c|0)==(W|0)){c=u+11|0;r[c>>0]=48}r[c+-1>>0]=(s>>31&2)+43;w=c+-2|0;r[w>>0]=t+15;b=(f|0)<1;u=(l&8|0)==0;c=Y;do{y=~~e;s=c+1|0;r[c>>0]=o|n[153456+y>>0];e=(e-+(y|0))*16.0;if((s-z|0)==1?!(u&(b&e==0.0)):0){r[s>>0]=46;c=c+2|0}else c=s}while(e!=0.0);if((f|0)!=0?(-2-z+c|0)<(f|0):0){s=c-z|0;c=f+2|0}else{c=c-z|0;s=c}W=W-w|0;z=W+h+c|0;G4(A,32,i,z,l);g4(A,B,h);G4(A,48,i,z,l^65536);g4(A,Y,s);G4(A,48,c-s|0,0,0);g4(A,w,W);G4(A,32,i,z,l^8192);c=z;break}s=(f|0)<0?6:f;if(c){c=(a[v>>2]|0)+-28|0;a[v>>2]=c;e=d*268435456.0}else{e=d;c=a[v>>2]|0}y=(c|0)<0?b:b+288|0;b=y;do{Z=~~e>>>0;a[b>>2]=Z;b=b+4|0;e=(e-+(Z>>>0))*1.0e9}while(e!=0.0);if((c|0)>0){u=y;o=b;while(1){w=(c|0)<29?c:29;c=o+-4|0;if(c>>>0>=u>>>0){b=0;do{I=G6(a[c>>2]|0,0,w|0)|0;I=d6(I|0,L|0,b|0,0)|0;Z=L;E=C6(I|0,Z|0,1e9,0)|0;a[c>>2]=E;b=E6(I|0,Z|0,1e9,0)|0;c=c+-4|0}while(c>>>0>=u>>>0);if(b){u=u+-4|0;a[u>>2]=b}}b=o;while(1){if(b>>>0<=u>>>0)break;c=b+-4|0;if(!(a[c>>2]|0))b=c;else break}c=(a[v>>2]|0)-w|0;a[v>>2]=c;if((c|0)>0)o=b;else break}}else u=y;if((c|0)<0){f=((s+25|0)/9|0)+1|0;g=(C|0)==102;do{B=0-c|0;B=(B|0)<9?B:9;if(u>>>0>>0){w=(1<>>B;h=0;c=u;do{Z=a[c>>2]|0;a[c>>2]=(Z>>>B)+h;h=U(Z&w,o)|0;c=c+4|0}while(c>>>0>>0);c=(a[u>>2]|0)==0?u+4|0:u;if(!h){u=c;c=b}else{a[b>>2]=h;u=c;c=b+4|0}}else{u=(a[u>>2]|0)==0?u+4|0:u;c=b}b=g?y:u;b=(c-b>>2|0)>(f|0)?b+(f<<2)|0:c;c=(a[v>>2]|0)+B|0;a[v>>2]=c}while((c|0)<0);c=u;f=b}else{c=u;f=b}Z=y;if(c>>>0>>0){b=(Z-c>>2)*9|0;w=a[c>>2]|0;if(w>>>0>=10){u=10;do{u=u*10|0;b=b+1|0}while(w>>>0>=u>>>0)}}else b=0;g=(C|0)==103;E=(s|0)!=0;u=s-((C|0)!=102?b:0)+((E&g)<<31>>31)|0;if((u|0)<(((f-Z>>2)*9|0)+-9|0)){u=u+9216|0;B=y+4+(((u|0)/9|0)+-1024<<2)|0;u=(u|0)%9|0;if((u|0)<8){w=10;while(1){w=w*10|0;if((u|0)<7)u=u+1|0;else break}}else w=10;o=a[B>>2]|0;h=(o>>>0)%(w>>>0)|0;u=(B+4|0)==(f|0);if(!(u&(h|0)==0)){d=(((o>>>0)/(w>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;I=(w|0)/2|0;e=h>>>0>>0?.5:u&(h|0)==(I|0)?1.0:1.5;if(Q){I=(r[m>>0]|0)==45;e=I?-e:e;d=I?-d:d}u=o-h|0;a[B>>2]=u;if(d+e!=d){I=u+w|0;a[B>>2]=I;if(I>>>0>999999999){b=B;while(1){u=b+-4|0;a[b>>2]=0;if(u>>>0>>0){c=c+-4|0;a[c>>2]=0}I=(a[u>>2]|0)+1|0;a[u>>2]=I;if(I>>>0>999999999)b=u;else break}}else u=B;b=(Z-c>>2)*9|0;o=a[c>>2]|0;if(o>>>0>=10){w=10;do{w=w*10|0;b=b+1|0}while(o>>>0>=w>>>0)}}else u=B}else u=B;u=u+4|0;u=f>>>0>u>>>0?u:f;I=c}else{u=f;I=c}C=u;while(1){if(C>>>0<=I>>>0){v=0;break}c=C+-4|0;if(!(a[c>>2]|0))C=c;else{v=1;break}}f=0-b|0;do{if(g){c=s+((E^1)&1)|0;if((c|0)>(b|0)&(b|0)>-5){w=t+-1|0;s=c+-1-b|0}else{w=t+-2|0;s=c+-1|0}c=l&8;if(!c){if(v?(G=a[C+-4>>2]|0,(G|0)!=0):0)if(!((G>>>0)%10|0)){u=0;c=10;do{c=c*10|0;u=u+1|0}while(!((G>>>0)%(c>>>0)|0|0))}else u=0;else u=9;c=((C-Z>>2)*9|0)+-9|0;if((w|32|0)==102){B=c-u|0;B=(B|0)>0?B:0;s=(s|0)<(B|0)?s:B;B=0;break}else{B=c+b-u|0;B=(B|0)>0?B:0;s=(s|0)<(B|0)?s:B;B=0;break}}else B=c}else{w=t;B=l&8}}while(0);g=s|B;o=(g|0)!=0&1;h=(w|32|0)==102;if(h){E=0;c=(b|0)>0?b:0}else{c=(b|0)<0?f:b;c=Z4(c,((c|0)<0)<<31>>31,W)|0;u=W;if((u-c|0)<2)do{c=c+-1|0;r[c>>0]=48}while((u-c|0)<2);r[c+-1>>0]=(b>>31&2)+43;c=c+-2|0;r[c>>0]=w;E=c;c=u-c|0}c=Q+1+s+o+c|0;G4(A,32,i,c,l);g4(A,m,Q);G4(A,48,i,c,l^65536);if(h){w=I>>>0>y>>>0?y:I;B=Y+9|0;o=B;h=Y+8|0;u=w;do{b=Z4(a[u>>2]|0,0,B)|0;if((u|0)==(w|0)){if((b|0)==(B|0)){r[h>>0]=48;b=h}}else if(b>>>0>Y>>>0){Y6(Y|0,48,b-z|0)|0;do{b=b+-1|0}while(b>>>0>Y>>>0)}g4(A,b,o-b|0);u=u+4|0}while(u>>>0<=y>>>0);if(g|0)g4(A,153472,1);if(u>>>0>>0&(s|0)>0)while(1){b=Z4(a[u>>2]|0,0,B)|0;if(b>>>0>Y>>>0){Y6(Y|0,48,b-z|0)|0;do{b=b+-1|0}while(b>>>0>Y>>>0)}g4(A,b,(s|0)<9?s:9);u=u+4|0;b=s+-9|0;if(!(u>>>0>>0&(s|0)>9)){s=b;break}else s=b}G4(A,48,s+9|0,9,0)}else{g=v?C:I+4|0;if((s|0)>-1){v=Y+9|0;B=(B|0)==0;f=v;o=0-z|0;h=Y+8|0;w=I;do{b=Z4(a[w>>2]|0,0,v)|0;if((b|0)==(v|0)){r[h>>0]=48;b=h}do{if((w|0)==(I|0)){u=b+1|0;g4(A,b,1);if(B&(s|0)<1){b=u;break}g4(A,153472,1);b=u}else{if(b>>>0<=Y>>>0)break;Y6(Y|0,48,b+o|0)|0;do{b=b+-1|0}while(b>>>0>Y>>>0)}}while(0);z=f-b|0;g4(A,b,(s|0)>(z|0)?z:s);s=s-z|0;w=w+4|0}while(w>>>0>>0&(s|0)>-1)}G4(A,48,s+18|0,18,0);g4(A,E,W-E|0)}G4(A,32,i,c,l^8192)}}while(0);k=D;return((c|0)<(i|0)?i:c)|0}function Q4(A){A=+A;var e=0;s[u>>3]=A;e=a[u>>2]|0;L=a[u+4>>2]|0;return e|0}function L4(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0,c=0;f=i+16|0;n=a[f>>2]|0;if(!n)if(!(y4(i)|0)){n=a[f>>2]|0;l=5}else f=0;else l=5;A:do{if((l|0)==5){c=i+20|0;t=a[c>>2]|0;f=t;if((n-t|0)>>>0>>0){f=y5[a[i+36>>2]&63](i,A,e)|0;break}e:do{if((r[i+75>>0]|0)>-1){t=e;while(1){if(!t){l=0;n=A;break e}n=t+-1|0;if((r[A+n>>0]|0)==10)break;else t=n}f=y5[a[i+36>>2]&63](i,A,t)|0;if(f>>>0>>0)break A;l=t;n=A+t|0;e=e-t|0;f=a[c>>2]|0}else{l=0;n=A}}while(0);W6(f|0,n|0,e|0)|0;a[c>>2]=(a[c>>2]|0)+e;f=l+e|0}}while(0);return f|0}function y4(A){A=A|0;var e=0,i=0;e=A+74|0;i=r[e>>0]|0;r[e>>0]=i+255|i;e=a[A>>2]|0;if(!(e&8)){a[A+8>>2]=0;a[A+4>>2]=0;i=a[A+44>>2]|0;a[A+28>>2]=i;a[A+20>>2]=i;a[A+16>>2]=i+(a[A+48>>2]|0);A=0}else{a[A>>2]=e|32;A=-1}return A|0}function W4(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;r=A+20|0;f=a[r>>2]|0;A=(a[A+16>>2]|0)-f|0;A=A>>>0>i>>>0?i:A;W6(f|0,e|0,A|0)|0;a[r>>2]=(a[r>>2]|0)+A;return i|0}function z4(A){A=A|0;var e=0,i=0,f=0,a=0;f=r[A>>0]|0;e=1;i=153474;a=97;while(1){if(f<<24>>24==a<<24>>24?(A1(A,i)|0)==0:0)break;i=i+6|0;a=r[i>>0]|0;if(!(a<<24>>24)){e=0;break}else e=e+1|0}return e|0}function Y4(A){A=A|0;var e=0;e=(w4(A)|0)==0;return(e?A:A&95)|0}function D4(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0;l=k;k=k+16|0;n=l;do{if(A>>>0>6)e=0;else{CA(190656);if((A|0)!=6){e=M4(A,e)|0;RA(190656);break}if(!e){e=197132;A=0}else{A=n;i=153547;f=A+16|0;do{r[A>>0]=r[i>>0]|0;A=A+1|0;i=i+1|0}while((A|0)<(f|0));f=0;do{A=j2(e,59)|0;i=A-e|0;if((i|0)<16){W6(n|0,e|0,i|0)|0;r[n+i>>0]=0;e=(r[A>>0]|0)==0?e:A+1|0}M4(f,n)|0;f=f+1|0}while((f|0)!=6);e=197132;A=0}while(1){f=a[190616+(A<<2)>>2]|0;f=f|0?f+8|0:153563;i=P2(f)|0;W6(e|0,f|0,i|0)|0;f=e+i|0;r[f>>0]=59;A=A+1|0;if((A|0)==6)break;else e=e+(i+1)|0}r[f>>0]=0;RA(190656);e=197132}}while(0);k=l;return e|0}function M4(A,e){A=A|0;e=e|0;if(!e)A=a[190616+(A<<2)>>2]|0;else{e=q1(A,e)|0;a[190616+(A<<2)>>2]=e;A=e}return(A|0?A+8|0:153563)|0}function F4(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,a=0;A:do{if(!i)A=0;else{while(1){f=r[A>>0]|0;a=r[e>>0]|0;if(f<<24>>24!=a<<24>>24)break;i=i+-1|0;if(!i){A=0;break A}else{A=A+1|0;e=e+1|0}}A=(f&255)-(a&255)|0}}while(0);return A|0}function V4(A){A=A|0;return J4(A)|0}function J4(A){A=A|0;return m6(A|0)|0}function p4(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0;if((a[i+76>>2]|0)>-1)u=d4(i)|0;else u=0;f=e+-1|0;if((e|0)<2){w=i+74|0;b=r[w>>0]|0;r[w>>0]=b+255|b;if(u|0)B4(i);if(!f)r[A>>0]=0;else A=0}else{A:do{if(f){s=i+4|0;b=i+8|0;e=A;while(1){l=a[s>>2]|0;k=l;o=(a[b>>2]|0)-k|0;t=L1(l,10,o)|0;c=(t|0)==0;t=c?o:1-k+t|0;t=t>>>0>>0?t:f;W6(e|0,l|0,t|0)|0;l=(a[s>>2]|0)+t|0;a[s>>2]=l;e=e+t|0;t=f-t|0;if(!(c&(t|0)!=0)){w=17;break A}if(l>>>0>=(a[b>>2]|0)>>>0){f=D1(i)|0;if((f|0)<0)break;else c=f}else{a[s>>2]=l+1;c=n[l>>0]|0}f=t+-1|0;l=e+1|0;r[e>>0]=c;if(!((f|0)!=0&(c&255|0)!=10)){e=l;w=17;break A}else e=l}if((e|0)!=(A|0)?(a[i>>2]&16|0)!=0:0)w=17;else A=0}else{e=A;w=17}}while(0);if((w|0)==17)if(!A)A=0;else r[e>>0]=0;if(u)B4(i)}return A|0}function N4(A,e){A=A|0;e=e|0;var i=0;i=r[e>>0]|0;do{if(i<<24>>24){A=G1(A,i<<24>>24)|0;if(A){if(r[e+1>>0]|0)if(r[A+1>>0]|0){if(!(r[e+2>>0]|0)){A=R4(A,e)|0;break}if(r[A+2>>0]|0){if(!(r[e+3>>0]|0)){A=X4(A,e)|0;break}if(r[A+3>>0]|0)if(!(r[e+4>>0]|0)){A=H4(A,e)|0;break}else{A=U4(A,e)|0;break}else A=0}else A=0}else A=0}else A=0}}while(0);return A|0}function R4(A,e){A=A|0;e=e|0;var i=0,f=0,a=0;a=(n[e>>0]|0)<<8|(n[e+1>>0]|0);f=n[A>>0]|0;while(1){e=A+1|0;i=r[e>>0]|0;if(!(i<<24>>24))break;f=f<<8&65280|i&255;if((f|0)==(a|0))break;else A=e}return(i<<24>>24?A:0)|0}function X4(A,e){A=A|0;e=e|0;var i=0,f=0;f=(n[e+1>>0]|0)<<16|(n[e>>0]|0)<<24|(n[e+2>>0]|0)<<8;i=A+2|0;e=r[i>>0]|0;A=(n[A+1>>0]|0)<<16|(n[A>>0]|0)<<24|(e&255)<<8;if(!((A|0)==(f|0)|e<<24>>24==0))do{i=i+1|0;e=r[i>>0]|0;A=(A|e&255)<<8}while(!((A|0)==(f|0)|e<<24>>24==0));return(e<<24>>24?i+-2|0:0)|0}function H4(A,e){A=A|0;e=e|0;var i=0,f=0;f=(n[e+1>>0]|0)<<16|(n[e>>0]|0)<<24|(n[e+2>>0]|0)<<8|(n[e+3>>0]|0);e=A+3|0;i=r[e>>0]|0;A=(n[A+1>>0]|0)<<16|(n[A>>0]|0)<<24|(n[A+2>>0]|0)<<8|i&255;if(!(i<<24>>24==0|(A|0)==(f|0)))do{e=e+1|0;i=r[e>>0]|0;A=A<<8|i&255}while(!(i<<24>>24==0|(A|0)==(f|0)));return(i<<24>>24?e+-3|0:0)|0}function U4(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0;E=k;k=k+1056|0;g=E+1024|0;v=E;a[g>>2]=0;a[g+4>>2]=0;a[g+8>>2]=0;a[g+12>>2]=0;a[g+16>>2]=0;a[g+20>>2]=0;a[g+24>>2]=0;a[g+28>>2]=0;i=r[e>>0]|0;A:do{if(i<<24>>24){B=0;do{if(!(r[A+B>>0]|0)){i=0;break A}d=g+(((i&255)>>>5&255)<<2)|0;a[d>>2]=a[d>>2]|1<<(i&31);B=B+1|0;a[v+((i&255)<<2)>>2]=B;i=r[e+B>>0]|0}while(i<<24>>24!=0);b=B>>>0>1;if(b){f=0;s=-1;n=1;e:while(1){l=1;i=f;while(1){f=n;i:while(1){c=1;while(1){n=r[e+(c+s)>>0]|0;t=r[e+f>>0]|0;if(n<<24>>24!=t<<24>>24)break i;if((c|0)==(l|0))break;c=c+1|0;f=c+i|0;if(f>>>0>=B>>>0){u=l;i=s;break e}}i=l+i|0;f=i+1|0;if(f>>>0>=B>>>0){u=l;i=s;break e}}l=f-s|0;if((n&255)<=(t&255))break;n=f+1|0;if(n>>>0>=B>>>0){u=l;i=s;break e}else i=f}n=i+2|0;if(n>>>0>=B>>>0){u=1;break}else{f=i+1|0;s=i}}if(b){l=0;b=-1;t=1;while(1){f=1;n=l;while(1){l=t;e:while(1){s=1;while(1){t=r[e+(s+b)>>0]|0;c=r[e+l>>0]|0;if(t<<24>>24!=c<<24>>24)break e;if((s|0)==(f|0))break;s=s+1|0;l=s+n|0;if(l>>>0>=B>>>0){t=u;n=b;l=26;break A}}n=f+n|0;l=n+1|0;if(l>>>0>=B>>>0){t=u;n=b;l=26;break A}}f=l-b|0;if((t&255)>=(c&255))break;t=l+1|0;if(t>>>0>=B>>>0){t=u;n=b;l=26;break A}else n=l}t=n+2|0;if(t>>>0>=B>>>0){t=u;f=1;l=26;break}else{l=n+1|0;b=n}}}else{t=u;f=1;n=-1;l=26}}else{t=1;i=-1;f=1;n=-1;l=26}}else{t=1;i=-1;B=0;f=1;n=-1;l=26}}while(0);A:do{if((l|0)==26){h=(n+1|0)>>>0>(i+1|0)>>>0;f=h?f:t;h=h?n:i;d=h+1|0;if(!(F4(e,e+f|0,d)|0))o=B-f|0;else{f=B-h+-1|0;o=0;f=(h>>>0>f>>>0?h:f)+1|0}s=B|63;b=B+-1|0;u=(o|0)!=0;w=B-f|0;i=A;c=0;n=A;while(1){l=i;do{if((n-l|0)>>>0>>0){t=L1(n,0,s)|0;if(t)if((t-l|0)>>>0>>0){i=0;break A}else break;else{t=n+s|0;break}}else t=n}while(0);n=r[i+b>>0]|0;e:do{if(!(1<<(n&31)&a[g+(((n&255)>>>5&255)<<2)>>2])){l=0;n=B}else{n=B-(a[v+((n&255)<<2)>>2]|0)|0;if(n|0){l=0;n=u&(c|0)!=0&n>>>0>>0?w:n;break}n=d>>>0>c>>>0?d:c;l=r[e+n>>0]|0;i:do{if(!(l<<24>>24))n=d;else{while(1){if(l<<24>>24!=(r[i+n>>0]|0))break;n=n+1|0;l=r[e+n>>0]|0;if(!(l<<24>>24)){n=d;break i}}l=0;n=n-h|0;break e}}while(0);while(1){if(n>>>0<=c>>>0)break A;n=n+-1|0;if((r[e+n>>0]|0)!=(r[i+n>>0]|0)){l=o;n=f;break}}}}while(0);i=i+n|0;c=l;n=t}}}while(0);k=E;return i|0}function x4(A,e,i){A=A|0;e=e|0;i=i|0;T4(A,e,i)|0;return A|0}function T4(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0;n=e;A:do{if(!((n^A)&3)){f=(i|0)!=0;if(f&(n&3|0)!=0)do{n=r[e>>0]|0;r[A>>0]=n;if(!(n<<24>>24))break A;i=i+-1|0;e=e+1|0;A=A+1|0;f=(i|0)!=0}while(f&(e&3|0)!=0);if(f){if(r[e>>0]|0){e:do{if(i>>>0>3){f=e;while(1){e=a[f>>2]|0;if((e&-2139062144^-2139062144)&e+-16843009|0){e=f;break e}a[A>>2]=e;i=i+-4|0;e=f+4|0;A=A+4|0;if(i>>>0>3)f=e;else break}}}while(0);l=11}}else i=0}else l=11}while(0);A:do{if((l|0)==11)if(!i)i=0;else while(1){l=r[e>>0]|0;r[A>>0]=l;if(!(l<<24>>24))break A;i=i+-1|0;A=A+1|0;if(!i){i=0;break}else e=e+1|0}}while(0);Y6(A|0,0,i|0)|0;return A|0}function j4(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0;n=k;k=k+32|0;f=n;a[f>>2]=0;a[f+4>>2]=0;a[f+8>>2]=0;a[f+12>>2]=0;a[f+16>>2]=0;a[f+20>>2]=0;a[f+24>>2]=0;a[f+28>>2]=0;i=r[e>>0]|0;do{if(!(i<<24>>24))e=0;else{if(!(r[e+1>>0]|0)){e=A;while(1)if((r[e>>0]|0)==i<<24>>24)e=e+1|0;else break;e=e-A|0;break}do{l=f+(((i&255)>>>5&255)<<2)|0;a[l>>2]=a[l>>2]|1<<(i&31);e=e+1|0;i=r[e>>0]|0}while(i<<24>>24!=0);i=r[A>>0]|0;A:do{if(!(i<<24>>24))e=A;else{e=A;do{if(!(a[f+(((i&255)>>>5&255)<<2)>>2]&1<<(i&31)))break A;e=e+1|0;i=r[e>>0]|0}while(i<<24>>24!=0)}}while(0);e=e-A|0}}while(0);k=n;return e|0}function P4(A){A=A|0;var e=0,i=0;e=k;k=k+16|0;i=e;a[i>>2]=R2(A)|0;A=pA(6,i|0)|0;A=p2((A|0)==-4?0:A)|0;k=e;return A|0}function S4(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;r=k;k=k+16|0;f=r;a[f>>2]=i;i=O4(A,e,f)|0;k=r;return i|0}function O4(A,e,i){A=A|0;e=e|0;i=i|0;return k4(A,2147483647,e,i)|0}function K4(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0;b=k;k=k+208|0;c=b+8|0;s=b;l=U(i,e)|0;t=s;a[t>>2]=1;a[t+4>>2]=0;A:do{if(l|0){t=0-i|0;a[c+4>>2]=i;a[c>>2]=i;f=2;e=i;n=i;while(1){e=e+i+n|0;a[c+(f<<2)>>2]=e;if(e>>>0>>0){u=n;f=f+1|0;n=e;e=u}else break}n=A+l+t|0;if(n>>>0>A>>>0){l=n;f=1;e=1;do{do{if((e&3|0)!=3){e=f+-1|0;if((a[c+(e<<2)>>2]|0)>>>0<(l-A|0)>>>0)_4(A,i,r,f,c);else $4(A,i,r,s,f,0,c);if((f|0)==1){A3(s,1);f=0;break}else{A3(s,e);f=1;break}}else{_4(A,i,r,f,c);q4(s,2);f=f+2|0}}while(0);e=a[s>>2]|1;a[s>>2]=e;A=A+i|0}while(A>>>0>>0)}else{f=1;e=1}$4(A,i,r,s,f,0,c);n=s+4|0;while(1){if((f|0)==1&(e|0)==1){if(!(a[n>>2]|0))break A}else if((f|0)>=2){A3(s,2);u=f+-2|0;a[s>>2]=a[s>>2]^7;q4(s,1);$4(A+(0-(a[c+(u<<2)>>2]|0))+t|0,i,r,s,f+-1|0,1,c);A3(s,1);e=a[s>>2]|1;a[s>>2]=e;l=A+t|0;$4(l,i,r,s,u,1,c);A=l;f=u;continue}e=e3(s)|0;q4(s,e);A=A+t|0;f=e+f|0;e=a[s>>2]|0}}}while(0);k=b;return}function _4(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0;u=k;k=k+240|0;b=u;a[b>>2]=A;A:do{if((r|0)>1){s=0-e|0;n=A;c=r;r=1;while(1){l=n+s|0;t=c+-2|0;n=l+(0-(a[f+(t<<2)>>2]|0))|0;if((Q5[i&127](A,n)|0)>-1?(Q5[i&127](A,l)|0)>-1:0)break A;A=r+1|0;r=b+(r<<2)|0;if((Q5[i&127](n,l)|0)>-1){a[r>>2]=n;r=c+-1|0}else{a[r>>2]=l;n=l;r=t}if((r|0)<=1){r=A;break A}c=r;r=A;A=a[b>>2]|0}}else r=1}while(0);r3(e,b,r);k=u;return}function q4(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;f=A+4|0;if(e>>>0>31){r=a[f>>2]|0;a[A>>2]=r;a[f>>2]=0;e=e+-32|0;i=0}else{i=a[f>>2]|0;r=a[A>>2]|0}a[A>>2]=i<<32-e|r>>>e;a[f>>2]=i>>>e;return}function $4(A,e,i,r,f,n,l){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;var t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0;o=k;k=k+240|0;u=o+232|0;w=o;h=a[r>>2]|0;a[u>>2]=h;c=a[r+4>>2]|0;s=u+4|0;a[s>>2]=c;a[w>>2]=A;A:do{if((h|0)!=1|(c|0)!=0?(b=0-e|0,t=A+(0-(a[l+(f<<2)>>2]|0))|0,(Q5[i&127](t,A)|0)>=1):0){r=1;n=(n|0)==0;c=t;while(1){if(n&(f|0)>1){n=A+b|0;t=a[l+(f+-2<<2)>>2]|0;if((Q5[i&127](n,c)|0)>-1){t=10;break A}if((Q5[i&127](n+(0-t)|0,c)|0)>-1){t=10;break A}}n=r+1|0;a[w+(r<<2)>>2]=c;h=e3(u)|0;q4(u,h);f=h+f|0;if(!((a[u>>2]|0)!=1|(a[s>>2]|0)!=0)){r=n;A=c;t=10;break A}A=c+(0-(a[l+(f<<2)>>2]|0))|0;if((Q5[i&127](A,a[w>>2]|0)|0)<1){A=c;r=n;n=0;t=9;break}else{h=c;r=n;n=1;c=A;A=h}}}else{r=1;t=9}}while(0);if((t|0)==9?(n|0)==0:0)t=10;if((t|0)==10){r3(e,w,r);_4(A,e,i,f,l)}k=o;return}function A3(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;f=A+4|0;if(e>>>0>31){r=a[A>>2]|0;a[f>>2]=r;a[A>>2]=0;e=e+-32|0;i=0}else{i=a[A>>2]|0;r=a[f>>2]|0}a[f>>2]=i>>>(32-e|0)|r<>2]=i<>2]|0)+-1|0)|0;if(!e){e=i3(a[A+4>>2]|0)|0;return((e|0)==0?0:e+32|0)|0}else return e|0;return 0}function i3(A){A=A|0;var e=0;if(A)if(!(A&1)){e=A;A=0;do{A=A+1|0;e=e>>>1}while(!(e&1|0))}else A=0;else A=32;return A|0}function r3(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0;l=k;k=k+256|0;r=l;A:do{if((i|0)>=2?(n=e+(i<<2)|0,a[n>>2]=r,A|0):0)while(1){f=A>>>0<256?A:256;W6(r|0,a[e>>2]|0,f|0)|0;r=0;do{t=e+(r<<2)|0;r=r+1|0;W6(a[t>>2]|0,a[e+(r<<2)>>2]|0,f|0)|0;a[t>>2]=(a[t>>2]|0)+f}while((r|0)!=(i|0));A=A-f|0;if(!A)break A;r=a[n>>2]|0}}while(0);k=l;return}function f3(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;r=k;k=k+16|0;f=r;a[f>>2]=i;i=o4(A,e,f)|0;k=r;return i|0}function a3(A){A=A|0;var e=0,i=0,f=0;f=k;k=k+16|0;i=f;EA(0,i|0)|0;e=0;i=(a[i+4>>2]|0)*65537^(i>>>4)+A;while(1){r[A+e>>0]=(i&15)+65|i<<1&32;e=e+1|0;if((e|0)==6)break;else i=i>>>5}k=f;return A|0}function n3(A,e,i){A=A|0;e=e|0;i=i|0;i=y1(A,e,i,-2147483648,0)|0;return i|0}function l3(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0;l=k;k=k+32|0;f=l;i=r[e>>0]|0;A:do{if(i<<24>>24!=0?(r[e+1>>0]|0)!=0:0){a[f>>2]=0;a[f+4>>2]=0;a[f+8>>2]=0;a[f+12>>2]=0;a[f+16>>2]=0;a[f+20>>2]=0;a[f+24>>2]=0;a[f+28>>2]=0;do{t=f+(((i&255)>>>5&255)<<2)|0;a[t>>2]=a[t>>2]|1<<(i&31);e=e+1|0;i=r[e>>0]|0}while(i<<24>>24!=0);i=r[A>>0]|0;if(!(i<<24>>24))e=A;else{e=A;do{if(a[f+(((i&255)>>>5&255)<<2)>>2]&1<<(i&31)|0)break A;e=e+1|0;i=r[e>>0]|0}while(i<<24>>24!=0)}}else n=3}while(0);if((n|0)==3)e=j2(A,i<<24>>24)|0;k=l;return e-A|0}function t3(A,e){A=A|0;e=e|0;var i=0;if(!A){A=a[47666]|0;if(!A)A=0;else i=3}else i=3;do{if((i|0)==3){A=A+(j4(A,e)|0)|0;if(!(r[A>>0]|0)){a[47666]=0;A=0;break}e=A+(l3(A,e)|0)|0;a[47666]=e;if(!(r[e>>0]|0)){a[47666]=0;break}else{a[47666]=e+1;r[e>>0]=0;break}}}while(0);return A|0}function c3(A,e,i){A=A|0;e=e|0;i=i|0;var f=0;f=e&255;do{if(!i){e=0;break}i=i+-1|0;e=A+i|0}while((r[e>>0]|0)!=f<<24>>24);return e|0}function s3(A,e,i){A=A|0;e=e|0;i=i|0;var f=0;if(!A){A=a[i>>2]|0;if(!A)A=0;else f=3}else f=3;do{if((f|0)==3){A=A+(j4(A,e)|0)|0;if(!(r[A>>0]|0)){a[i>>2]=0;A=0;break}e=A+(l3(A,e)|0)|0;a[i>>2]=e;if(!(r[e>>0]|0)){a[i>>2]=0;break}else{a[i>>2]=e+1;r[e>>0]=0;break}}}while(0);return A|0}function b3(A){A=A|0;var e=0,i=0;i=(P2(A)|0)+1|0;e=Q2(i)|0;if(!e)e=0;else W6(e|0,A|0,i|0)|0;return e|0}function u3(A,e){A=A|0;e=e|0;return c3(A,e,(P2(A)|0)+1|0)|0}function w3(A,e){A=A|0;e=e|0;$1(A+(P2(A)|0)|0,e)|0;return A|0}function k3(A,e){A=A|0;e=e|0;e=A+(l3(A,e)|0)|0;return(r[e>>0]|0?e:0)|0}function o3(A){A=A|0;var e=0;if((a[A+76>>2]|0)>-1){e=(d4(A)|0)==0;A=(a[A>>2]|0)>>>4&1}else A=(a[A>>2]|0)>>>4&1;return A|0}function h3(A){A=A|0;var e=0,i=0,r=0,f=0,n=0;if((a[A+76>>2]|0)>-1)f=d4(A)|0;else f=0;d3(A);n=(a[A>>2]&1|0)!=0;if(!n){r=B3()|0;i=a[A+52>>2]|0;e=A+56|0;if(i|0)a[i+56>>2]=a[e>>2];e=a[e>>2]|0;if(e|0)a[e+52>>2]=i;if((a[r>>2]|0)==(A|0))a[r>>2]=e;g3()}e=v3(A)|0;e=m5[a[A+12>>2]&63](A)|0|e;i=a[A+92>>2]|0;if(i|0)L2(i);if(n){if(f|0)B4(A)}else L2(A);return e|0}function d3(A){A=A|0;var e=0;if(a[A+68>>2]|0){e=a[A+116>>2]|0;A=A+112|0;if(e|0)a[e+112>>2]=a[A>>2];A=a[A>>2]|0;if(!A)A=(C3()|0)+232|0;else A=A+116|0;a[A>>2]=e}return}function B3(){CA(190668);return 190676}function g3(){RA(190668);return}function v3(A){A=A|0;var e=0,i=0;do{if(A){if((a[A+76>>2]|0)<=-1){e=E3(A)|0;break}i=(d4(A)|0)==0;e=E3(A)|0;if(!i)B4(A)}else{if(!(a[15711]|0))e=0;else e=v3(a[15711]|0)|0;A=a[(B3()|0)>>2]|0;if(A)do{if((a[A+76>>2]|0)>-1)i=d4(A)|0;else i=0;if((a[A+20>>2]|0)>>>0>(a[A+28>>2]|0)>>>0)e=E3(A)|0|e;if(i|0)B4(A);A=a[A+56>>2]|0}while((A|0)!=0);g3()}}while(0);return e|0}function E3(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0;e=A+20|0;l=A+28|0;if((a[e>>2]|0)>>>0>(a[l>>2]|0)>>>0?(y5[a[A+36>>2]&63](A,0,0)|0,(a[e>>2]|0)==0):0)A=-1;else{i=A+4|0;r=a[i>>2]|0;f=A+8|0;n=a[f>>2]|0;if(r>>>0>>0)y5[a[A+40>>2]&63](A,r-n|0,1)|0;a[A+16>>2]=0;a[l>>2]=0;a[e>>2]=0;a[f>>2]=0;a[i>>2]=0;A=0}return A|0}function C3(){return r1()|0}function I3(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;w=k;k=k+64|0;u=w+40|0;s=w+24|0;c=w+16|0;n=w;b=w+56|0;f=r[e>>0]|0;if(L1(153580,f<<24>>24,4)|0){i=Q2(1156)|0;if(!i)i=0;else{l=i;t=l+124|0;do{a[l>>2]=0;l=l+4|0}while((l|0)<(t|0));if(!(G1(e,43)|0))a[i>>2]=f<<24>>24==114?8:4;if(G1(e,101)|0){a[n>>2]=A;a[n+4>>2]=2;a[n+8>>2]=1;DA(221,n|0)|0;f=r[e>>0]|0}if(f<<24>>24==97){a[c>>2]=A;a[c+4>>2]=3;f=DA(221,c|0)|0;if(!(f&1024)){a[s>>2]=A;a[s+4>>2]=4;a[s+8>>2]=f|1024;DA(221,s|0)|0}e=a[i>>2]|128;a[i>>2]=e}else e=a[i>>2]|0;a[i+60>>2]=A;a[i+44>>2]=i+132;a[i+48>>2]=1024;f=i+75|0;r[f>>0]=-1;if((e&8|0)==0?(a[u>>2]=A,a[u+4>>2]=21523,a[u+8>>2]=b,(JA(54,u|0)|0)==0):0)r[f>>0]=10;a[i+32>>2]=15;a[i+36>>2]=18;a[i+40>>2]=16;a[i+12>>2]=17;if(!(a[47645]|0))a[i+76>>2]=-1;Z3(i)|0}}else{a[(N2()|0)>>2]=22;i=0}k=w;return i|0}function Z3(A){A=A|0;var e=0,i=0;e=B3()|0;a[A+56>>2]=a[e>>2];i=a[e>>2]|0;if(i|0)a[i+52>>2]=A;a[e>>2]=A;g3();return A|0}function G3(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,l=0,t=0,c=0;c=k;k=k+16|0;f=c;A:do{if(!e)A=0;else{do{if(i|0){t=(A|0)==0?f:A;A=r[e>>0]|0;if(A<<24>>24>-1){a[t>>2]=A&255;A=A<<24>>24!=0&1;break A}l=(a[a[(m3()|0)+188>>2]>>2]|0)==0;A=r[e>>0]|0;if(l){a[t>>2]=A<<24>>24&57343;A=1;break A}A=(A&255)+-194|0;if(A>>>0<=50){f=e+1|0;l=a[62384+(A<<2)>>2]|0;if(i>>>0<4?l&-2147483648>>>((i*6|0)+-6|0)|0:0)break;A=n[f>>0]|0;i=A>>>3;if((i+-16|i+(l>>26))>>>0<=7){A=A+-128|l<<6;if((A|0)>=0){a[t>>2]=A;A=2;break A}f=(n[e+2>>0]|0)+-128|0;if(f>>>0<=63){f=f|A<<6;if((f|0)>=0){a[t>>2]=f;A=3;break A}A=(n[e+3>>0]|0)+-128|0;if(A>>>0<=63){a[t>>2]=A|f<<6;A=4;break A}}}}}}while(0);a[(N2()|0)>>2]=84;A=-1}}while(0);k=c;return A|0}function m3(){return r1()|0}function Q3(A,e){A=A|0;e=e|0;var i=0;i=P2(A)|0;return((L3(A,1,i,e)|0)!=(i|0))<<31>>31|0}function L3(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0;f=U(i,e)|0;i=(e|0)==0?0:i;if((a[r+76>>2]|0)>-1){n=(d4(r)|0)==0;A=L4(A,f,r)|0;if(!n)B4(r)}else A=L4(A,f,r)|0;if((A|0)!=(f|0))i=(A>>>0)/(e>>>0)|0;return i|0}function y3(A,e){A=A|0;e=e|0;var i=0,f=0,l=0,t=0,c=0,s=0,b=0;b=k;k=k+16|0;c=b;s=e&255;r[c>>0]=s;f=A+16|0;l=a[f>>2]|0;if(!l)if(!(y4(A)|0)){l=a[f>>2]|0;t=4}else i=-1;else t=4;do{if((t|0)==4){t=A+20|0;f=a[t>>2]|0;if(f>>>0>>0?(i=e&255,(i|0)!=(r[A+75>>0]|0)):0){a[t>>2]=f+1;r[f>>0]=s;break}if((y5[a[A+36>>2]&63](A,c,1)|0)==1)i=n[c>>0]|0;else i=-1}}while(0);k=b;return i|0}function W3(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;r=k;k=k+16|0;f=r;a[f>>2]=A;a[f+4>>2]=e;a[f+8>>2]=i;i=p2(MA(3,f|0)|0)|0;k=r;return i|0}function z3(){var A=0,e=0;e=k;k=k+16|0;A=YA(20,e|0)|0;k=e;return A|0}function Y3(A,e){A=A|0;e=e|0;var i=0,f=0,a=0;i=A;f=153565;a=i+15|0;do{r[i>>0]=r[f>>0]|0;i=i+1|0;f=f+1|0}while((i|0)<(a|0));if(!e){r[A+14>>0]=48;r[A+15>>0]=0}else{f=e;i=14;while(1){i=i+1|0;if(f>>>0<10)break;else f=(f>>>0)/10|0}r[A+i>>0]=0;while(1){i=i+-1|0;r[A+i>>0]=(e>>>0)%10|0|48;if(e>>>0<10)break;else e=(e>>>0)/10|0}}return}function D3(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0;n=k;k=k+48|0;f=n+40|0;r=n+8|0;i=n;a[i>>2]=A;a[i+4>>2]=e;i=zA(197,i|0)|0;if((i|0)==-9?(a[r>>2]=A,a[r+4>>2]=1,(DA(221,r|0)|0)>=0):0){Y3(r,A);a[f>>2]=r;a[f+4>>2]=e;e=p2(WA(195,f|0)|0)|0}else e=p2(i)|0;k=n;return e|0}function M3(A,e){A=A|0;e=e|0;var i=0,r=0;i=k;k=k+16|0;r=i;a[r>>2]=A;a[r+4>>2]=e;e=p2(FA(33,r|0)|0)|0;k=i;return e|0}function F3(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0;t=k;k=k+48|0;l=t+32|0;n=t+16|0;i=t;if(L1(153580,r[e>>0]|0,4)|0){f=V3(e)|0;a[i>>2]=A;a[i+4>>2]=f|32768;a[i+8>>2]=438;i=p2(VA(5,i|0)|0)|0;if((i|0)>=0){if(f&524288|0){a[n>>2]=i;a[n+4>>2]=2;a[n+8>>2]=1;DA(221,n|0)|0}A=I3(i,e)|0;if(!A){a[l>>2]=i;pA(6,l|0)|0;A=0}}else A=0}else{a[(N2()|0)>>2]=22;A=0}k=t;return A|0}function V3(A){A=A|0;var e=0,i=0,f=0;i=(G1(A,43)|0)==0;e=r[A>>0]|0;i=i?e<<24>>24!=114&1:2;f=(G1(A,120)|0)==0;i=f?i:i|128;A=(G1(A,101)|0)==0;A=A?i:i|524288;A=e<<24>>24==114?A:A|64;A=e<<24>>24==119?A|512:A;return(e<<24>>24==97?A|1024:A)|0}function J3(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;r=k;k=k+16|0;f=r;a[f>>2]=i;i=p3(A,e,f)|0;k=r;return i|0}function p3(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0;n=k;k=k+128|0;r=n;f=r;l=f+124|0;do{a[f>>2]=0;f=f+4|0}while((f|0)<(l|0));a[r+32>>2]=41;a[r+44>>2]=A;a[r+76>>2]=-1;a[r+84>>2]=A;l=R3(r,e,i)|0;k=n;return l|0}function N3(A,e,i){A=A|0;e=e|0;i=i|0;return S3(A,e,i)|0}function R3(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,l=0,t=0,b=0,u=0,w=0.0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0;X=k;k=k+288|0;F=X+8|0;V=X+17|0;J=X;p=X+16|0;if((a[A+76>>2]|0)>-1)R=d4(A)|0;else R=0;f=r[e>>0]|0;A:do{if(f<<24>>24){m=A+4|0;Q=A+100|0;y=A+108|0;W=A+8|0;z=V+10|0;Y=V+33|0;G=F+4|0;D=V+1|0;M=V+1|0;b=e;g=0;e=0;t=0;l=0;e:while(1){i:do{if(!(m1(f&255)|0)){f=f<<24>>24==37;r:do{if(f){o=b+1|0;u=r[o>>0]|0;f:do{switch(u<<24>>24){case 37:break r;case 42:{Z=0;b=b+2|0;break}default:{f=(u&255)+-48|0;if(f>>>0<10?(r[b+2>>0]|0)==36:0){Z=X3(i,f)|0;b=b+3|0;break f}b=(a[i>>2]|0)+(4-1)&~(4-1);Z=a[b>>2]|0;a[i>>2]=b+4;b=o}}}while(0);f=r[b>>0]|0;u=f&255;if((u+-48|0)>>>0<10){o=0;do{o=(o*10|0)+-48+u|0;b=b+1|0;f=r[b>>0]|0;u=f&255}while((u+-48|0)>>>0<10)}else o=0;f=f<<24>>24==109;I=(Z|0)!=0;t=f?0:t;l=f?0:l;b=f?b+1|0:b;f=I&f;u=b+1|0;switch(r[b>>0]|0){case 104:{C=(r[u>>0]|0)==104;h=C?-2:-1;b=C?b+2|0:u;break}case 108:{C=(r[u>>0]|0)==108;h=C?3:1;b=C?b+2|0:u;break}case 106:{h=3;b=u;break}case 116:case 122:{h=1;b=u;break}case 76:{h=2;b=u;break}case 110:case 112:case 67:case 83:case 91:case 99:case 115:case 88:case 71:case 70:case 69:case 65:case 103:case 102:case 101:case 97:case 120:case 117:case 111:case 105:case 100:{h=0;break}default:{N=135;break e}}B=n[b>>0]|0;v=(B&47|0)==3;B=v?B|32:B;v=v?1:h;d=B&255;switch(d<<24>>24){case 99:{o=(o|0)>1?o:1;C=g;break}case 91:{C=g;break}case 110:{H3(Z,v,g,((g|0)<0)<<31>>31);u=g;break i}default:{W1(A,0);do{u=a[m>>2]|0;if(u>>>0<(a[Q>>2]|0)>>>0){a[m>>2]=u+1;u=n[u>>0]|0}else u=Y1(A)|0}while((m1(u)|0)!=0);if(!(a[Q>>2]|0))u=a[m>>2]|0;else{u=(a[m>>2]|0)+-1|0;a[m>>2]=u}C=(a[y>>2]|0)+g+u-(a[W>>2]|0)|0}}W1(A,o);u=a[m>>2]|0;h=a[Q>>2]|0;if(u>>>0>>0)a[m>>2]=u+1;else{if((Y1(A)|0)<0){N=135;break e}h=a[Q>>2]|0}if(h|0)a[m>>2]=(a[m>>2]|0)+-1;f:do{switch(d<<24>>24){case 91:case 99:case 115:{E=(B|0)==99;a:do{if((B|16|0)==115){Y6(D|0,-1,256)|0;r[V>>0]=0;if((B|0)==115){r[Y>>0]=0;r[z>>0]=0;r[z+1>>0]=0;r[z+2>>0]=0;r[z+3>>0]=0;r[z+4>>0]=0}}else{B=b+1|0;u=(r[B>>0]|0)==94;g=u&1;b=u?b+2|0:B;Y6(M|0,u&1|0,256)|0;r[V>>0]=0;u=r[b>>0]|0;switch(u<<24>>24){case 45:{u=46;N=63;break}case 93:{u=94;N=63;break}default:{}}while(1){if((N|0)==63){N=0;r[V+u>>0]=g^1;u=b+1|0;b=u;u=r[u>>0]|0}n:do{switch(u<<24>>24){case 0:{N=135;break e}case 93:break a;case 45:{B=b+1|0;u=r[B>>0]|0;switch(u<<24>>24){case 93:case 0:{u=45;break n}default:{}}b=r[b+-1>>0]|0;if((b&255)<(u&255)){d=(g^1)&255;b=b&255;do{b=b+1|0;r[V+b>>0]=d;u=r[B>>0]|0}while((b|0)<(u&255|0));b=B}else b=B;break}default:{}}}while(0);u=(u&255)+1|0;N=63}}}while(0);u=E?o+1|0:31;B=(v|0)==1;a:do{if(B){if(f){l=Q2(u<<2)|0;if(!l){t=0;l=0;f=1;N=135;break e}}else l=Z;a[F>>2]=0;a[G>>2]=0;d=u;t=0;n:while(1){h=(l|0)==0;do{l:while(1){u=a[m>>2]|0;if(u>>>0<(a[Q>>2]|0)>>>0){a[m>>2]=u+1;u=n[u>>0]|0}else u=Y1(A)|0;if(!(r[V+(u+1)>>0]|0))break n;r[p>>0]=u;switch(P1(J,p,1,F)|0){case-1:{t=0;N=135;break e}case-2:break;default:break l}}if(!h){a[l+(t<<2)>>2]=a[J>>2];t=t+1|0}}while(!(f&(t|0)==(d|0)));t=d<<1|1;u=W2(l,t<<2)|0;if(!u){t=0;f=1;N=135;break e}else{v=d;d=t;l=u;t=v}}if(!(U3(F)|0)){t=0;N=135;break e}else{u=t;t=0;d=l}}else{if(f){t=Q2(u)|0;if(!t){t=0;l=0;f=1;N=135;break e}else{h=u;l=0}while(1){do{u=a[m>>2]|0;if(u>>>0<(a[Q>>2]|0)>>>0){a[m>>2]=u+1;u=n[u>>0]|0}else u=Y1(A)|0;if(!(r[V+(u+1)>>0]|0)){u=l;d=0;l=0;break a}r[t+l>>0]=u;l=l+1|0}while((l|0)!=(h|0));l=h<<1|1;u=W2(t,l)|0;if(!u){l=0;f=1;N=135;break e}else{v=h;h=l;t=u;l=v}}}if(!Z){t=h;while(1){l=a[m>>2]|0;if(l>>>0>>0){a[m>>2]=l+1;l=n[l>>0]|0}else l=Y1(A)|0;if(!(r[V+(l+1)>>0]|0)){u=0;t=0;d=0;l=0;break a}t=a[Q>>2]|0}}else{u=0;t=h;while(1){l=a[m>>2]|0;if(l>>>0>>0){a[m>>2]=l+1;l=n[l>>0]|0}else l=Y1(A)|0;if(!(r[V+(l+1)>>0]|0)){t=Z;d=0;l=0;break a}r[Z+u>>0]=l;u=u+1|0;t=a[Q>>2]|0}}}}while(0);if(!(a[Q>>2]|0))h=a[m>>2]|0;else{h=(a[m>>2]|0)+-1|0;a[m>>2]=h}h=h-(a[W>>2]|0)+(a[y>>2]|0)|0;if(!h){N=137;break e}if(!((h|0)==(o|0)|E^1)){N=137;break e}do{if(f)if(B){a[Z>>2]=d;break}else{a[Z>>2]=t;break}}while(0);if(!E){if(d|0)a[d+(u<<2)>>2]=0;if(!t){t=0;break f}r[t+u>>0]=0}break}case 120:case 88:case 112:{u=16;N=123;break}case 111:{u=8;N=123;break}case 117:case 100:{u=10;N=123;break}case 105:{u=0;N=123;break}case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:{w=+x3(A,v,0);if((a[y>>2]|0)==((a[W>>2]|0)-(a[m>>2]|0)|0)){N=137;break e}if(Z)switch(v|0){case 0:{c[Z>>2]=w;break f}case 1:{s[Z>>3]=w;break f}case 2:{s[Z>>3]=w;break f}default:break f}break}default:{}}}while(0);do{if((N|0)==123){N=0;u=z1(A,u,0,-1,-1)|0;if((a[y>>2]|0)==((a[W>>2]|0)-(a[m>>2]|0)|0)){N=137;break e}if(I&(B|0)==112){a[Z>>2]=u;break}else{H3(Z,v,u,L);break}}}while(0);e=e+(I&1)|0;u=(a[y>>2]|0)+C+(a[m>>2]|0)-(a[W>>2]|0)|0;break i}}while(0);b=b+(f&1)|0;W1(A,0);f=a[m>>2]|0;if(f>>>0<(a[Q>>2]|0)>>>0){a[m>>2]=f+1;f=n[f>>0]|0}else f=Y1(A)|0;if((f|0)!=(n[b>>0]|0)){N=22;break e}u=g+1|0}else{while(1){f=b+1|0;if(!(m1(n[f>>0]|0)|0))break;else b=f}W1(A,0);do{f=a[m>>2]|0;if(f>>>0<(a[Q>>2]|0)>>>0){a[m>>2]=f+1;f=n[f>>0]|0}else f=Y1(A)|0}while((m1(f)|0)!=0);if(!(a[Q>>2]|0))f=a[m>>2]|0;else{f=(a[m>>2]|0)+-1|0;a[m>>2]=f}u=(a[y>>2]|0)+g+f-(a[W>>2]|0)|0}}while(0);b=b+1|0;f=r[b>>0]|0;if(!(f<<24>>24))break A;else g=u}if((N|0)==22){if(a[Q>>2]|0)a[m>>2]=(a[m>>2]|0)+-1;if((e|0)!=0|(f|0)>-1)break;else{f=0;N=136}}else if((N|0)==135){f=f&1;if(!e)N=136}else if((N|0)==137)f=f&1;if((N|0)==136)e=-1;if(f){L2(t);L2(l)}}else e=0}while(0);if(R|0)B4(A);k=X;return e|0}function X3(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;r=k;k=k+16|0;i=r;a[i>>2]=a[A>>2];while(1){f=(a[i>>2]|0)+(4-1)&~(4-1);A=a[f>>2]|0;a[i>>2]=f+4;if(e>>>0>1)e=e+-1|0;else break}k=r;return A|0}function H3(A,e,i,n){A=A|0;e=e|0;i=i|0;n=n|0;A:do{if(A|0)switch(e|0){case-2:{r[A>>0]=i;break A}case-1:{f[A>>1]=i;break A}case 0:{a[A>>2]=i;break A}case 1:{a[A>>2]=i;break A}case 3:{e=A;a[e>>2]=i;a[e+4>>2]=n;break A}default:break A}}while(0);return}function U3(A){A=A|0;if(!A)A=1;else A=(a[A>>2]|0)==0&1;return A|0}function x3(A,e,i){A=A|0;e=e|0;i=i|0;var f=0.0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0;switch(e|0){case 0:{b=-149;u=24;c=4;break}case 1:{b=-1074;u=53;c=4;break}case 2:{b=-1074;u=53;c=4;break}default:f=0.0}A:do{if((c|0)==4){k=A+4|0;w=A+100|0;do{e=a[k>>2]|0;if(e>>>0<(a[w>>2]|0)>>>0){a[k>>2]=e+1;e=n[e>>0]|0}else e=Y1(A)|0}while((m1(e)|0)!=0);e:do{switch(e|0){case 43:case 45:{t=1-(((e|0)==45&1)<<1)|0;e=a[k>>2]|0;if(e>>>0<(a[w>>2]|0)>>>0){a[k>>2]=e+1;l=n[e>>0]|0;break e}else{l=Y1(A)|0;break e}}default:{l=e;t=1}}}while(0);e=0;do{if((l|32|0)!=(r[153584+e>>0]|0))break;do{if(e>>>0<7){l=a[k>>2]|0;if(l>>>0<(a[w>>2]|0)>>>0){a[k>>2]=l+1;l=n[l>>0]|0;break}else{l=Y1(A)|0;break}}}while(0);e=e+1|0}while(e>>>0<8);e:do{switch(e|0){case 8:break;case 3:{c=23;break}default:{s=(i|0)!=0;if(s&e>>>0>3)if((e|0)==8)break e;else{c=23;break e}i:do{if(!e){e=0;do{if((l|32|0)!=(r[153593+e>>0]|0))break i;do{if(e>>>0<2){l=a[k>>2]|0;if(l>>>0<(a[w>>2]|0)>>>0){a[k>>2]=l+1;l=n[l>>0]|0;break}else{l=Y1(A)|0;break}}}while(0);e=e+1|0}while(e>>>0<3)}}while(0);switch(e|0){case 3:{e=a[k>>2]|0;if(e>>>0<(a[w>>2]|0)>>>0){a[k>>2]=e+1;e=n[e>>0]|0}else e=Y1(A)|0;if((e|0)==40)e=1;else{if(!(a[w>>2]|0)){f=E;break A}a[k>>2]=(a[k>>2]|0)+-1;f=E;break A}while(1){l=a[k>>2]|0;if(l>>>0<(a[w>>2]|0)>>>0){a[k>>2]=l+1;l=n[l>>0]|0}else l=Y1(A)|0;if(!((l+-48|0)>>>0<10|(l+-65|0)>>>0<26)?!((l|0)==95|(l+-97|0)>>>0<26):0)break;e=e+1|0}if((l|0)==41){f=E;break A}l=(a[w>>2]|0)==0;if(!l)a[k>>2]=(a[k>>2]|0)+-1;if(!s){a[(N2()|0)>>2]=22;W1(A,0);f=0.0;break A}if(!e){f=E;break A}while(1){e=e+-1|0;if(!l)a[k>>2]=(a[k>>2]|0)+-1;if(!e){f=E;break A}}}case 0:{if((l|0)==48){e=a[k>>2]|0;if(e>>>0<(a[w>>2]|0)>>>0){a[k>>2]=e+1;e=n[e>>0]|0}else e=Y1(A)|0;if((e|32|0)==120){f=+T3(A,u,b,t,i);break A}if(!(a[w>>2]|0))e=48;else{a[k>>2]=(a[k>>2]|0)+-1;e=48}}else e=l;f=+j3(A,e,u,b,t,i);break A}default:{if(a[w>>2]|0)a[k>>2]=(a[k>>2]|0)+-1;a[(N2()|0)>>2]=22;W1(A,0);f=0.0;break A}}}}}while(0);if((c|0)==23){l=(a[w>>2]|0)==0;if(!l)a[k>>2]=(a[k>>2]|0)+-1;if((i|0)!=0&e>>>0>3)do{if(!l)a[k>>2]=(a[k>>2]|0)+-1;e=e+-1|0}while(e>>>0>3)}f=+(t|0)*C}}while(0);return+f}function T3(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var l=0.0,t=0,c=0,s=0.0,b=0,u=0,w=0,k=0.0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0;Z=A+4|0;t=a[Z>>2]|0;I=A+100|0;if(t>>>0<(a[I>>2]|0)>>>0){a[Z>>2]=t+1;c=n[t>>0]|0;b=0}else{c=Y1(A)|0;b=0}A:while(1){switch(c|0){case 46:{C=8;break A}case 48:break;default:{B=0;w=0;k=1.0;l=0.0;t=0;u=c;g=b;E=0;v=0;b=0;c=0;break A}}t=a[Z>>2]|0;if(t>>>0<(a[I>>2]|0)>>>0){a[Z>>2]=t+1;c=n[t>>0]|0;b=1;continue}else{c=Y1(A)|0;b=1;continue}}if((C|0)==8){t=a[Z>>2]|0;if(t>>>0<(a[I>>2]|0)>>>0){a[Z>>2]=t+1;c=n[t>>0]|0}else c=Y1(A)|0;if((c|0)==48){b=0;c=0;do{t=a[Z>>2]|0;if(t>>>0<(a[I>>2]|0)>>>0){a[Z>>2]=t+1;u=n[t>>0]|0}else u=Y1(A)|0;b=d6(b|0,c|0,-1,-1)|0;c=L}while((u|0)==48);B=1;w=0;k=1.0;l=0.0;t=0;g=1;E=0;v=0}else{B=1;w=0;k=1.0;l=0.0;t=0;u=c;g=b;E=0;v=0;b=0;c=0}}while(1){h=u+-48|0;o=u|32;if(h>>>0>=10){d=(u|0)==46;if(!(d|(o+-97|0)>>>0<6))break;if(d)if(!B){B=1;s=k;d=g;b=v;c=E;h=v;o=E}else{u=46;break}else C=20}else C=20;if((C|0)==20){C=0;u=(u|0)>57?o+-87|0:h;do{if(!((E|0)<0|(E|0)==0&v>>>0<8))if((E|0)<0|(E|0)==0&v>>>0<14){k=k*.0625;s=k;l=l+k*+(u|0);break}else{g=(w|0)!=0|(u|0)==0;w=g?w:1;s=k;l=g?l:l+k*.5;break}else{s=k;t=u+(t<<4)|0}}while(0);h=d6(v|0,E|0,1,0)|0;d=1;o=L}u=a[Z>>2]|0;if(u>>>0<(a[I>>2]|0)>>>0){a[Z>>2]=u+1;k=s;u=n[u>>0]|0;g=d;E=o;v=h;continue}else{k=s;u=Y1(A)|0;g=d;E=o;v=h;continue}}do{if(!g){t=(a[I>>2]|0)==0;if(!t)a[Z>>2]=(a[Z>>2]|0)+-1;if(f){if(!t)a[Z>>2]=(a[Z>>2]|0)+-1;if(!((B|0)==0|t))a[Z>>2]=(a[Z>>2]|0)+-1}else W1(A,0);l=+(r|0)*0.0}else{o=(B|0)==0;h=o?v:b;o=o?E:c;if((E|0)<0|(E|0)==0&v>>>0<8){b=v;c=E;while(1){t=t<<4;C=b;b=d6(b|0,c|0,1,0)|0;if(!((c|0)<0|(c|0)==0&C>>>0<7)){w=t;break}else c=L}}else w=t;if((u|32|0)==112){c=P3(A,f)|0;t=L;if((c|0)==0&(t|0)==-2147483648){if(!f){W1(A,0);l=0.0;break}if(!(a[I>>2]|0)){c=0;t=0}else{a[Z>>2]=(a[Z>>2]|0)+-1;c=0;t=0}}}else if(!(a[I>>2]|0)){c=0;t=0}else{a[Z>>2]=(a[Z>>2]|0)+-1;c=0;t=0}b=G6(h|0,o|0,2)|0;b=d6(b|0,L|0,-32,-1)|0;b=d6(b|0,L|0,c|0,t|0)|0;t=L;if(!w){l=+(r|0)*0.0;break}Z=0-i|0;f=((Z|0)<0)<<31>>31;if((t|0)>(f|0)|(t|0)==(f|0)&b>>>0>Z>>>0){a[(N2()|0)>>2]=34;l=+(r|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}Z=i+-106|0;f=((Z|0)<0)<<31>>31;if((t|0)<(f|0)|(t|0)==(f|0)&b>>>0>>0){a[(N2()|0)>>2]=34;l=+(r|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if((w|0)>-1){c=w;do{Z=!(l>=.5);c=c<<1|(Z^1)&1;l=l+(Z?l:l+-1.0);b=d6(b|0,t|0,-1,-1)|0;t=L}while((c|0)>-1);k=l;u=c}else{k=l;u=w}Z=((e|0)<0)<<31>>31;i=B6(32,0,i|0,((i|0)<0)<<31>>31|0)|0;t=d6(i|0,L|0,b|0,t|0)|0;i=L;if((i|0)<(Z|0)|(i|0)==(Z|0)&t>>>0>>0)if((t|0)>0)C=59;else{c=0;t=84;C=61}else{t=e;C=59}if((C|0)==59)if((t|0)<53){c=t;t=84-t|0;C=61}else{s=0.0;l=+(r|0)}if((C|0)==61){l=+(r|0);s=+k1(+b1(1.0,t),l);t=c}r=(u&1|0)==0&(k!=0.0&(t|0)<32);l=(r?0.0:k)*l+(s+l*+((u+(r&1)|0)>>>0))-s;if(!(l!=0.0))a[(N2()|0)>>2]=34;l=+o1(l,b)}}while(0);return+l}function j3(A,e,i,r,f,l){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;l=l|0;var t=0.0,c=0.0,s=0,b=0,u=0,w=0,o=0,h=0,d=0.0,B=0.0,g=0.0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,y=0,z=0,Y=0,D=0,M=0,F=0,V=0.0;F=k;k=k+512|0;Y=F;D=r+i|0;M=0-D|0;Q=A+4|0;y=A+100|0;s=0;A:while(1){switch(e|0){case 46:{G=6;break A}case 48:break;default:{E=0;o=s;h=0;w=0;break A}}e=a[Q>>2]|0;if(e>>>0<(a[y>>2]|0)>>>0){a[Q>>2]=e+1;e=n[e>>0]|0;s=1;continue}else{e=Y1(A)|0;s=1;continue}}if((G|0)==6){e=a[Q>>2]|0;if(e>>>0<(a[y>>2]|0)>>>0){a[Q>>2]=e+1;e=n[e>>0]|0}else e=Y1(A)|0;if((e|0)==48){s=0;e=0;while(1){s=d6(s|0,e|0,-1,-1)|0;w=L;e=a[Q>>2]|0;if(e>>>0<(a[y>>2]|0)>>>0){a[Q>>2]=e+1;e=n[e>>0]|0}else e=Y1(A)|0;if((e|0)==48)e=w;else{E=1;o=1;h=s;break}}}else{E=1;o=s;h=0;w=0}}a[Y>>2]=0;u=e+-48|0;b=(e|0)==46;A:do{if(b|u>>>0<10){m=Y+496|0;C=0;s=0;v=0;I=E;Z=o;G=u;o=0;u=0;e:while(1){do{if(b)if(!I){I=1;h=o;w=u}else break e;else{o=d6(o|0,u|0,1,0)|0;u=L;E=(e|0)!=48;if((s|0)>=125){if(!E)break;a[m>>2]=a[m>>2]|1;break}b=Y+(s<<2)|0;if(!C)e=G;else e=e+-48+((a[b>>2]|0)*10|0)|0;a[b>>2]=e;C=C+1|0;Z=(C|0)==9;C=Z?0:C;s=s+(Z&1)|0;v=E?o:v;Z=1}}while(0);e=a[Q>>2]|0;if(e>>>0<(a[y>>2]|0)>>>0){a[Q>>2]=e+1;e=n[e>>0]|0}else e=Y1(A)|0;G=e+-48|0;b=(e|0)==46;if(!(b|G>>>0<10)){E=I;b=Z;G=29;break A}}e=C;b=(Z|0)!=0;G=37}else{C=0;s=0;v=0;b=o;o=0;u=0;G=29}}while(0);do{if((G|0)==29){m=(E|0)==0;h=m?o:h;w=m?u:w;b=(b|0)!=0;if(!(b&(e|32|0)==101))if((e|0)>-1){e=C;G=37;break}else{e=C;G=39;break}b=P3(A,l)|0;e=L;if((b|0)==0&(e|0)==-2147483648){if(!l){W1(A,0);t=0.0;break}if(!(a[y>>2]|0)){b=0;e=0}else{a[Q>>2]=(a[Q>>2]|0)+-1;b=0;e=0}}Z=d6(b|0,e|0,h|0,w|0)|0;e=C;w=L;G=41}}while(0);if((G|0)==37)if(a[y>>2]|0){a[Q>>2]=(a[Q>>2]|0)+-1;if(b){Z=h;G=41}else G=40}else G=39;if((G|0)==39)if(b){Z=h;G=41}else G=40;do{if((G|0)==40){a[(N2()|0)>>2]=22;W1(A,0);t=0.0}else if((G|0)==41){b=a[Y>>2]|0;if(!b){t=+(f|0)*0.0;break}if(((u|0)<0|(u|0)==0&o>>>0<10)&((Z|0)==(o|0)&(w|0)==(u|0))?(i|0)>30|(b>>>i|0)==0:0){t=+(f|0)*+(b>>>0);break}A=(r|0)/-2|0;y=((A|0)<0)<<31>>31;if((w|0)>(y|0)|(w|0)==(y|0)&Z>>>0>A>>>0){a[(N2()|0)>>2]=34;t=+(f|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}A=r+-106|0;y=((A|0)<0)<<31>>31;if((w|0)<(y|0)|(w|0)==(y|0)&Z>>>0>>0){a[(N2()|0)>>2]=34;t=+(f|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(e){if((e|0)<9){u=Y+(s<<2)|0;b=a[u>>2]|0;while(1){b=b*10|0;if((e|0)>=8)break;else e=e+1|0}a[u>>2]=b}s=s+1|0}if((v|0)<9?(v|0)<=(Z|0)&(Z|0)<18:0){if((Z|0)==9){t=+(f|0)*+((a[Y>>2]|0)>>>0);break}if((Z|0)<9){t=+(f|0)*+((a[Y>>2]|0)>>>0)/+(a[63712+(8-Z<<2)>>2]|0);break}A=i+27+(U(Z,-3)|0)|0;e=a[Y>>2]|0;if((A|0)>30|(e>>>A|0)==0){t=+(f|0)*+(e>>>0)*+(a[63712+(Z+-10<<2)>>2]|0);break}}e=(Z|0)%9|0;if(!e){e=0;u=0}else{v=(Z|0)>-1?e:e+9|0;o=a[63712+(8-v<<2)>>2]|0;if(s){h=1e9/(o|0)|0;u=0;w=0;b=Z;e=0;do{Q=Y+(e<<2)|0;y=a[Q>>2]|0;A=((y>>>0)/(o>>>0)|0)+u|0;a[Q>>2]=A;u=U(h,(y>>>0)%(o>>>0)|0)|0;A=(e|0)==(w|0)&(A|0)==0;b=A?b+-9|0:b;w=A?w+1&127:w;e=e+1|0}while((e|0)!=(s|0));if(!u)u=w;else{a[Y+(s<<2)>>2]=u;u=w;s=s+1|0}}else{u=0;s=0;b=Z}e=0;Z=9-v+b|0}A:while(1){v=(Z|0)<18;E=(Z|0)==18;C=Y+(u<<2)|0;while(1){if(!v){if(!E){b=Z;break A}if((a[C>>2]|0)>>>0>=9007199){b=18;break A}}b=0;I=s;s=s+127|0;while(1){w=s&127;o=Y+(w<<2)|0;s=G6(a[o>>2]|0,0,29)|0;s=d6(s|0,L|0,b|0,0)|0;b=L;if(b>>>0>0|(b|0)==0&s>>>0>1e9){h=E6(s|0,b|0,1e9,0)|0;s=C6(s|0,b|0,1e9,0)|0}else h=0;a[o>>2]=s;A=(w|0)==(u|0);I=(s|0)==0&(((w|0)!=(I+127&127|0)|A)^1)?w:I;if(A)break;else{b=h;s=w+-1|0}}e=e+-29|0;if(h|0)break;else s=I}u=u+127&127;s=I+127&127;b=Y+((I+126&127)<<2)|0;if((u|0)==(I|0))a[b>>2]=a[b>>2]|a[Y+(s<<2)>>2];else s=I;a[Y+(u<<2)>>2]=h;Z=Z+9|0}A:while(1){C=s+1&127;I=Y+((s+127&127)<<2)|0;while(1){h=(b|0)==18;E=(b|0)>27?9:1;Z=u;while(1){o=0;while(1){u=o+Z&127;if((u|0)==(s|0)){z=2;G=88;break}u=a[Y+(u<<2)>>2]|0;w=a[63744+(o<<2)>>2]|0;if(u>>>0>>0){z=2;G=88;break}if(u>>>0>w>>>0)break;u=o+1|0;if((o|0)<1)o=u;else{z=u;G=88;break}}if((G|0)==88?(G=0,h&(z|0)==2):0){t=0.0;w=0;break A}e=E+e|0;if((Z|0)==(s|0))Z=s;else break}h=(1<>>E;o=0;u=Z;w=Z;do{Q=Y+(w<<2)|0;y=a[Q>>2]|0;A=(y>>>E)+o|0;a[Q>>2]=A;o=U(y&h,v)|0;A=(w|0)==(u|0)&(A|0)==0;b=A?b+-9|0:b;u=A?u+1&127:u;w=w+1&127}while((w|0)!=(s|0));if(!o)continue;if((C|0)!=(u|0))break;a[I>>2]=a[I>>2]|1}a[Y+(s<<2)>>2]=o;s=C}do{u=w+Z&127;b=s+1&127;if((u|0)==(s|0)){a[Y+(b+-1<<2)>>2]=0;s=b}t=t*1.0e9+ +((a[Y+(u<<2)>>2]|0)>>>0);w=w+1|0}while((w|0)!=2);g=+(f|0);c=t*g;w=e+53|0;o=w-r|0;h=(o|0)<(i|0);u=h?(o|0)>0?o:0:i;if((u|0)<53){V=+k1(+b1(1.0,105-u|0),c);d=+h1(c,+b1(1.0,53-u|0));B=V;t=d;d=V+(c-d)}else{B=0.0;t=0.0;d=c}b=Z+2&127;if((b|0)!=(s|0)){b=a[Y+(b<<2)>>2]|0;do{if(b>>>0>=5e8){if((b|0)!=5e8){t=g*.75+t;break}if((Z+3&127|0)==(s|0)){t=g*.5+t;break}else{t=g*.75+t;break}}else{if((b|0)==0?(Z+3&127|0)==(s|0):0)break;t=g*.25+t}}while(0);if((53-u|0)>1?!(+h1(t,1.0)!=0.0):0)c=t+1.0;else c=t}else c=t;t=d+c-B;do{if((w&2147483647|0)>(-2-D|0)){D=!(+W(+t)>=9007199254740992.0);e=e+((D^1)&1)|0;t=D?t:t*.5;if((e+50|0)<=(M|0)?!(c!=0.0&(h&((u|0)!=(o|0)|D))):0)break;a[(N2()|0)>>2]=34}}while(0);t=+o1(t,e)}}while(0);k=F;return+t}function P3(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,l=0,t=0;l=A+4|0;i=a[l>>2]|0;t=A+100|0;if(i>>>0<(a[t>>2]|0)>>>0){a[l>>2]=i+1;i=n[i>>0]|0}else i=Y1(A)|0;switch(i|0){case 43:case 45:{r=(i|0)==45&1;i=a[l>>2]|0;if(i>>>0<(a[t>>2]|0)>>>0){a[l>>2]=i+1;i=n[i>>0]|0}else i=Y1(A)|0;if((e|0)!=0&(i+-48|0)>>>0>9?(a[t>>2]|0)!=0:0)a[l>>2]=(a[l>>2]|0)+-1;break}default:r=0}if((i+-48|0)>>>0>9)if(!(a[t>>2]|0)){r=-2147483648;i=0}else{a[l>>2]=(a[l>>2]|0)+-1;r=-2147483648;i=0}else{f=0;do{f=i+-48+(f*10|0)|0;i=a[l>>2]|0;if(i>>>0<(a[t>>2]|0)>>>0){a[l>>2]=i+1;i=n[i>>0]|0}else i=Y1(A)|0}while((i+-48|0)>>>0<10&(f|0)<214748364);e=((f|0)<0)<<31>>31;if((i+-48|0)>>>0<10)do{e=h6(f|0,e|0,10,0)|0;f=L;i=d6(i|0,((i|0)<0)<<31>>31|0,-48,-1)|0;f=d6(i|0,L|0,e|0,f|0)|0;e=L;i=a[l>>2]|0;if(i>>>0<(a[t>>2]|0)>>>0){a[l>>2]=i+1;i=n[i>>0]|0}else i=Y1(A)|0}while((i+-48|0)>>>0<10&((e|0)<21474836|(e|0)==21474836&f>>>0<2061584302));if((i+-48|0)>>>0<10)do{i=a[l>>2]|0;if(i>>>0<(a[t>>2]|0)>>>0){a[l>>2]=i+1;i=n[i>>0]|0}else i=Y1(A)|0}while((i+-48|0)>>>0<10);if(a[t>>2]|0)a[l>>2]=(a[l>>2]|0)+-1;t=(r|0)!=0;i=B6(0,0,f|0,e|0)|0;r=t?L:e;i=t?i:f}L=r;return i|0}function S3(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0;r=A+84|0;n=a[r>>2]|0;l=i+256|0;f=L1(n,0,l)|0;f=(f|0)==0?l:f-n|0;i=f>>>0>>0?f:i;W6(e|0,n|0,i|0)|0;a[A+4>>2]=n+i;e=n+f|0;a[A+8>>2]=e;a[r>>2]=e;return i|0}function O3(A,e,i){A=A|0;e=e|0;i=i|0;return K3(A,e,i)|0}function K3(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;if((a[A+76>>2]|0)>-1){r=(d4(A)|0)==0;e=_3(A,e,i)|0;if(!r)B4(A)}else e=_3(A,e,i)|0;return e|0}function _3(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;if((i|0)==1)e=e-(a[A+8>>2]|0)+(a[A+4>>2]|0)|0;r=A+20|0;f=A+28|0;if((a[r>>2]|0)>>>0>(a[f>>2]|0)>>>0?(y5[a[A+36>>2]&63](A,0,0)|0,(a[r>>2]|0)==0):0)e=-1;else{a[A+16>>2]=0;a[f>>2]=0;a[r>>2]=0;if((y5[a[A+40>>2]&63](A,e,i)|0)<0)e=-1;else{a[A+8>>2]=0;a[A+4>>2]=0;a[A>>2]=a[A>>2]&-17;e=0}}return e|0}function q3(A){A=A|0;var e=0,i=0,f=0,a=0,n=0,l=0;while(1){f=r[A>>0]|0;e=f<<24>>24;a=A+1|0;if(!(m1(e)|0))break;else A=a}switch(e|0){case 45:{A=1;n=5;break}case 43:{A=0;n=5;break}default:{l=0;i=A;A=f}}if((n|0)==5){l=A;i=a;A=r[a>>0]|0}e=(A<<24>>24)+-48|0;if(e>>>0<10){A=0;do{i=i+1|0;A=(A*10|0)-e|0;e=(r[i>>0]|0)+-48|0}while(e>>>0<10)}else A=0;return(l|0?A:0-A|0)|0}function $3(A){A=A|0;return+ +A8(A,0)}function A8(A,e){A=A|0;e=e|0;return+ +e8(A,e,1)}function e8(A,e,i){A=A|0;e=e|0;i=i|0;var r=0.0,f=0,n=0,l=0,t=0;t=k;k=k+128|0;l=t;f=l;n=f+124|0;do{a[f>>2]=0;f=f+4|0}while((f|0)<(n|0));f=l+4|0;a[f>>2]=A;n=l+8|0;a[n>>2]=-1;a[l+44>>2]=A;a[l+76>>2]=-1;W1(l,0);r=+x3(l,i,1);i=(a[f>>2]|0)-(a[n>>2]|0)+(a[l+108>>2]|0)|0;if(e|0)a[e>>2]=i|0?A+i|0:A;k=t;return+r}function i8(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var a=0,n=0,l=0;A:do{if(!i)e=0;else{l=e;while(1){n=i>>>1;e=l+(U(n,r)|0)|0;a=Q5[f&127](A,e)|0;if(!a)break A;if((i|0)==1){e=0;break A}a=(a|0)<0;i=a?n:i-n|0;if(!i){e=0;break}else l=a?l:e}}}while(0);return e|0}function r8(A,e){A=A|0;e=e|0;var i=0,r=0,a=0;a=A+2|0;r=A+4|0;i=h6((l[e+2>>1]|0)<<16|(l[e>>1]|0)|0,l[e+4>>1]|0|0,(l[a>>1]|0)<<16|(l[A>>1]|0)|0,l[r>>1]|0|0)|0;e=d6(i|0,L|0,l[e+6>>1]|0|0,0)|0;i=L;f[A>>1]=e;A=Z6(e|0,i|0,16)|0;f[a>>1]=A;f[r>>1]=i;L=i&65535;return e|0}function f8(A){A=A|0;var e=0;e=186608;a[e>>2]=A+-1;a[e+4>>2]=0;return}function a8(){var A=0,e=0,i=0;e=186608;e=h6(a[e>>2]|0,a[e+4>>2]|0,1284865837,1481765933)|0;e=d6(e|0,L|0,1,0)|0;A=L;i=186608;a[i>>2]=e;a[i+4>>2]=A;A=Z6(e|0,A|0,33)|0;return A|0}function n8(A){A=A|0;f[96876]=f[32922]|0;f[96877]=f[32923]|0;f[96878]=f[32924]|0;f[32922]=f[A>>1]|0;f[32923]=f[A+2>>1]|0;f[32924]=f[A+4>>1]|0;return 193752}function l8(A){A=A|0;var e=0,i=0;e=k;k=k+16|0;i=e;f[i>>1]=13070;f[i+2>>1]=A;f[i+4>>1]=A>>>16;n8(i)|0;k=e;return}function t8(A){A=A|0;var e=0;e=r8(A,65850)|0;e=G6(e|0,L|0,4)|0;A=L|1072693248;a[u>>2]=e;a[u+4>>2]=A;return+(+s[u>>3]+-1.0)}function c8(){return+ +t8(65844)}function s8(A,e){A=A|0;e=e|0;if(!A)e=y2(1,24)|0;else{a[e>>2]=0;a[e+4>>2]=0;a[e+8>>2]=0;a[e+12>>2]=0;a[e+16>>2]=0;a[e+20>>2]=0}return e|0}function b8(A){A=A|0;var e=0,i=0;e=a[A>>2]|0;if(e|0)do{L2(a[e>>2]|0);i=e;e=a[e+4>>2]|0;L2(i)}while((e|0)!=0);L2(A);return}function u8(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0;l=A+16|0;A:do{if(!(a[l>>2]|0)){s=A+12|0;n=a[s>>2]|0;if(n>>>0>>0){do{if(e)if(!i){a[l>>2]=1;e=0;break A}else{l=A+8|0;a[l>>2]=i;n=1024;e=i;break}else{n=f<<3;n=n>>>0>1024?n:1024;c=Q2(8)|0;if(!c){a[l>>2]=1;e=0;break A}e=Q2(n)|0;a[c>>2]=e;i=e;if(!e){L2(c);a[l>>2]=1;e=0;break A}a[c+4>>2]=0;l=A+4|0;t=a[l>>2]|0;if(t|0)a[t+4>>2]=c;if(!(a[A>>2]|0))a[A>>2]=c;a[l>>2]=c;l=A+8|0;a[l>>2]=i}}while(0);a[s>>2]=n}else{l=A+8|0;e=a[l>>2]|0;i=e}i=i+f&3;i=((i|0)==0?0:4-i|0)+f|0;a[l>>2]=e+i;a[s>>2]=n-i;if(r)Y6(e|0,0,i|0)|0}else e=0}while(0);return e|0}function w8(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0;E=k;k=k+48|0;t=E;g=k8()|0;A:do{if(!g)e=12;else{v=s8(0,0)|0;if(!v){o8(g);e=12;break}r=t+8|0;a[r>>2]=0;a[r+4>>2]=0;a[r+8>>2]=0;a[r+12>>2]=0;a[r+16>>2]=0;a[t>>2]=v;a[t+4>>2]=g;a[t+16>>2]=e;a[t+32>>2]=i;r=t+28|0;a[r>>2]=-1;e=h8(t)|0;e:do{if(!e){l=t+20|0;f=a[l>>2]|0;a[A>>2]=f+-1;c=a[t+8>>2]|0;e=a[r>>2]|0;if((e|0)<(f|0)){n=y2(1,68)|0;if(n){d=e>>>31^1;a[n+60>>2]=d;a[n+28>>2]=f;if((i&8|0)==0|(d|0)!=0){e=d8(0,g,c,n)|0;if(e|0){l=0;t=0;f=0;r=0;break}f=a[n+40>>2]|0;if((f|0)>0){e=(f<<2)+4|0;r=Q2(e)|0;if(!r){l=0;t=0;e=12;f=0;r=0;break}a[n+32>>2]=r;Y6(r|0,-1,e|0)|0}else r=0;d=y2(f<<1|1,4)|0;a[n+36>>2]=d;if(!d){l=0;t=0;e=12;f=0;r=0;break}e=y2(a[l>>2]|0,12)|0;if(!e){l=0;t=0;e=12;f=0;r=0;break}a[n+16>>2]=e;e=d8(v,g,c,n)|0;if(!e)e=r;else{l=0;t=0;f=0;r=0;break}}else e=0;d=t+24|0;e=B8(v,g,c,d,e)|0;if(!e){e=a[d>>2]|0;a[d>>2]=e+1;e=g8(v,0,0,e)|0;if((e|0)!=0?(B=v8(v,c,e)|0,(B|0)!=0):0){e=E8(v,g,B)|0;if(!e){r=a[d>>2]|0;e=r<<2;o=Q2(e)|0;if(o){h=Q2(e)|0;if(h){if((r|0)>0)Y6(o|0,0,r<<2|0)|0;C8(B,0,o,0)|0;f=a[d>>2]|0;if((f|0)>0){e=0;r=0;do{a[h+(r<<2)>>2]=e;w=o+(r<<2)|0;e=e+1+(a[w>>2]|0)|0;a[w>>2]=0;r=r+1|0}while((r|0)<(f|0));b=e}else b=0;u=y2(b+1|0,32)|0;if(u){a[n>>2]=u;w=n+4|0;a[w>>2]=b;e=C8(B,u,o,h)|0;if(!e){a[n+20>>2]=0;f=B+24|0;e=a[f>>2]|0;r=0;while(1){r=r+1|0;if((a[e>>2]|0)<=-1)break;else e=e+32|0}s=y2(r,32)|0;if(!s){l=o;t=h;e=12;f=o;r=h}else{a[n+8>>2]=s;r=a[f>>2]|0;f=a[r>>2]|0;if((f|0)>-1){e=0;do{a[s+(e<<5)+8>>2]=u+(a[h+(f<<2)>>2]<<5);a[s+(e<<5)+12>>2]=f;t=s+(e<<5)+16|0;a[t>>2]=0;c=r+12|0;l=a[c>>2]|0;if(l|0){f=0;do{C=f;f=f+1|0}while((a[l+(C<<2)>>2]|0)>-1);f=f<<2;l=Q2(f)|0;a[t>>2]=l;if(!l){l=o;t=h;e=12;f=o;r=h;break e}W6(l|0,a[c>>2]|0,f|0)|0}a[s+(e<<5)+20>>2]=a[r+16>>2];e=e+1|0;r=r+32|0;f=a[r>>2]|0}while((f|0)>-1)}else e=0;a[s+(e<<5)+8>>2]=0;a[w>>2]=b;a[n+12>>2]=u+(a[h+(a[a[B+28>>2]>>2]<<2)>>2]<<5);a[n+52>>2]=a[d>>2];a[n+56>>2]=i;b8(v);o8(g);L2(o);L2(h);a[A+4>>2]=n;e=0;break A}}else{l=o;t=h;f=o;r=h}}else{l=o;t=h;e=12;f=o;r=h}}else{l=o;t=h;e=12;f=o;r=0}}else{l=o;t=0;e=12;f=0;r=0}}else{l=0;t=0;f=0;r=0}}else{l=0;t=0;e=12;f=0;r=0}}else{l=0;t=0;f=0;r=0}}else{l=0;t=0;e=12;f=0;r=0}}else{n=0;l=0;t=0;e=6;f=0;r=0}}else{n=0;l=0;t=0;f=0;r=0}}while(0);b8(v);o8(g);if(l|0)L2(f);if(t|0)L2(r);a[A+4>>2]=n;I8(A)}}while(0);k=E;return e|0}function k8(){var A=0,e=0;A=Q2(20)|0;do{if(A){e=Q2(2048)|0;a[A+16>>2]=e;if(!e){L2(A);A=0;break}else{a[A>>2]=512;a[A+4>>2]=1024e3;a[A+8>>2]=128;a[A+12>>2]=0;break}}}while(0);return A|0}function o8(A){A=A|0;L2(a[A+16>>2]|0);L2(A);return}function h8(A){A=A|0;var e=0,i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0;v=k;k=k+16|0;o=v+4|0;h=v;d=a[A+32>>2]&1;B=A+16|0;i=a[B>>2]|0;g=a[A+4>>2]|0;e=Q8(g,0)|0;A:do{if(!e){b=(d|0)!=0;u=A+8|0;w=A+12|0;e=0;s=1;e:while(1){n=0;l=e;f=0;i:while(1){e=r[i>>0]|0;if(b){if(e<<24>>24==40)break;if((l|0)!=0&e<<24>>24==41)c=13;else c=14}else if(e<<24>>24==92)switch(r[i+1>>0]|0){case 40:break i;case 41:{c=13;break}default:c=14}else c=14;if((c|0)==13){c=0;t=g8(a[A>>2]|0,-1,-1,-1)|0;a[u>>2]=t;if(!t){e=12;break A}else t=f}else if((c|0)==14){c=0;e=H8(A,i)|0;if(e|0)break A;t=f;i=a[w>>2]|0}r:while(1){f:while(1){e=r[i>>0]|0;switch(e<<24>>24){case 42:case 92:break;default:{if(!b)break f;switch(e<<24>>24){case 123:case 63:case 43:break;default:break f}}}e=e<<24>>24==92;if(b&e)break;f=i+1|0;if(e)switch(r[f>>0]|0){case 123:case 63:case 43:break;default:break f}i=e?f:i;if((!b?(i|0)==((a[B>>2]|0)+1|0):0)?(r[i+-1>>0]|0)==94:0)break;if((r[i>>0]|0)==123){i=U8(i+1|0,d,o,h)|0;if(!i){c=28;break e}e=a[h>>2]|0;f=a[A>>2]|0;if(!e)e=g8(f,-1,-1,-1)|0;else c=36}else{a[o>>2]=0;a[h>>2]=-1;e=r[i>>0]|0;if(e<<24>>24==43){a[o>>2]=1;e=r[i>>0]|0}if(e<<24>>24==63){a[h>>2]=1;e=1}else e=-1;i=i+1|0;f=a[A>>2]|0;c=36}if((c|0)==36){c=0;e=J8(f,a[u>>2]|0,a[o>>2]|0,e,0)|0}a[u>>2]=e;if(!e){e=12;break A}}e=v8(a[A>>2]|0,n,a[u>>2]|0)|0;f=r[i>>0]|0;f:do{if(b){if(f<<24>>24==124){c=40;break r}if((l|0)!=0&f<<24>>24==41|f<<24>>24==0)c=47;else{n=e;f=t;continue i}}else{switch(f<<24>>24){case 0:{c=47;break f}case 92:break;default:{n=e;f=t;continue i}}switch(r[i+1>>0]|0){case 124:case 41:break;default:{n=e;f=t;continue i}}e=p8(a[A>>2]|0,t,e)|0;if((r[i+1>>0]|0)==124){f=2;break r}if(!l){e=8;break A}i=i+2|0;f=92}}while(0);if((c|0)==47){c=0;e=p8(a[A>>2]|0,t,e)|0;i=f<<24>>24==41?i+1|0:i}e=x8(A,e,L8(g)|0)|0;if(e|0)break A;e=f<<24>>24==0;f=(l|0)<1;if(f&e){c=50;break e}if(f|e){e=8;break A}n=y8(g)|0;l=l+-1|0;t=y8(g)|0}if((c|0)==40){f=1;e=p8(a[A>>2]|0,t,e)|0}n=0;i=i+f|0;f=e}e=m8(g,f)|0;if(e|0)break A;e=m8(g,n)|0;if(e|0)break A;e=Q8(g,s)|0;if(e|0)break A;e=l+1|0;s=s+1|0;i=b?i+1|0:i+2|0}if((c|0)==28){e=10;break}else if((c|0)==50){a[A+20>>2]=s;e=0;break}}}while(0);k=v;return e|0}function d8(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0;I=G8(e)|0;Z=(A|0)==0|(f|0)==0;if(!Z){a[f+48>>2]=0;a[a[f+36>>2]>>2]=-1}l=a[f+28>>2]|0;G=Q2((l<<3)+8|0)|0;do{if(!G)n=12;else{a[G>>2]=-1;m=Q2((l<<2)+4|0)|0;if(!m){L2(G);n=12;break}a[m>>2]=-1;n=0;while(1)if(n>>>0>l>>>0)break;else n=n+1|0;m8(e,i)|0;n=Q8(e,0)|0;A:do{if((n|0)!=0|(G8(e)|0)<=(I|0)){i=G;w=0;l=0;u=0;b=-1}else{v=f+32|0;E=f+36|0;C=f+16|0;i=G;w=0;l=0;u=0;g=1;b=-1;B=0;while(1){e:do{switch(L8(e)|0){case 6:{t=L8(e)|0;n=0;do{c=i+(n<<2)|0;n=n+1|0}while((a[c>>2]|0)>-1);a[c>>2]=t<<1|1;a[i+(n<<2)>>2]=-1;n=0;while(1)if((a[m+(n<<2)>>2]|0)>-1)n=n+1|0;else break;a[m+(n+-1<<2)>>2]=-1;n=0;c=g;t=B;break}case 0:{h=y8(e)|0;d=h+12|0;c=a[d>>2]|0;if((c|0)>-1){n=0;do{t=i+(n<<2)|0;n=n+1|0}while((a[t>>2]|0)>-1);a[t>>2]=c<<1;a[i+(n<<2)>>2]=-1;if(!Z){n=0;while(1)if((a[m+(n<<2)>>2]|0)>-1)n=n+1|0;else break;t=(a[C>>2]|0)+(c*12|0)+8|0;a[t>>2]=0;if((n|0)>0){n=Q2((n<<2)+4|0)|0;if(!n){n=12;c=g;t=B;break e}a[t>>2]=n;t=a[m>>2]|0;if((t|0)>-1){s=0;c=n;do{a[c>>2]=t;s=s+1|0;t=a[m+(s<<2)>>2]|0;c=n+(s<<2)|0}while((t|0)>-1);n=c}a[n>>2]=-1}}n=Q8(e,a[d>>2]|0)|0;if(n|0){c=g;t=B;break e}n=Q8(e,6)|0;if(n|0){c=g;t=B;break e}}i:do{switch(a[h>>2]|0){case 0:{o=a[a[h+4>>2]>>2]|0;if((o|0)>-1|(o|0)==-4?(a[i>>2]|0)>-1:0){if(Z){a[h+20>>2]=1;n=0}else{n=N8(A,h,u)|0;a[(a[v>>2]|0)+(u<<2)>>2]=B;if((b|0)>-1){c=a[E>>2]|0;t=0;while(1){s=c+(t<<2)|0;k=t+1|0;if((a[s>>2]|0)>-1)t=k;else break}a[s>>2]=u;a[c+(k<<2)>>2]=b;a[c+(t+2<<2)>>2]=-1;l=l+1|0;b=-1}R8(i,f,u)}a[i>>2]=-1;o=g+1|0;k=B;w=w+1|0;u=g}else{o=g;n=0;k=B}break}case 1:{c=a[h+4>>2]|0;s=a[c>>2]|0;c=a[c+4>>2]|0;n=m8(e,h)|0;if(!n){n=Q8(e,5)|0;if(!n){n=m8(e,c)|0;if(!n){n=Q8(e,0)|0;if(!n){t=s+20|0;n=Q8(e,(a[t>>2]|0)+g|0)|0;if(!n){if((a[t>>2]|0)>0){t=(a[c+20>>2]|0)>0;n=t?g:-1;t=g+(t&1)|0}else{n=-1;t=g}n=Q8(e,n)|0;if(!n){n=Q8(e,4)|0;if(!n){n=m8(e,s)|0;if(!n){o=t;n=Q8(e,0)|0;k=B}else{o=t;k=B}}else{o=t;k=B}}else{o=t;k=B}}else{o=g;k=B}}else{o=g;k=B}}else{o=g;k=B}}else{o=g;k=B}}else{o=g;k=B}break}case 2:{t=a[h+4>>2]|0;if(Z){if((a[i>>2]|0)>-1)n=1;else n=(r[t+12>>0]&1)!=0;n=Q8(e,n&1)|0;if(n|0){o=g;k=B;break i}}else{n=Q8(e,u)|0;if(n|0){o=g;k=B;break i}n=Q8(e,r[t+12>>0]&1)|0;if(n|0){o=g;k=B;break i}}n=m8(e,h)|0;if(!n){n=Q8(e,1)|0;if(!n){n=m8(e,a[t>>2]|0)|0;if(!n){n=Q8(e,0)|0;if(!n){if((a[i>>2]|0)<=-1?(r[t+12>>0]&1)==0:0){o=g;n=0;k=0;break i}if(Z)n=0;else{n=N8(A,h,u)|0;a[(a[v>>2]|0)+(u<<2)>>2]=(r[t+12>>0]&1)==0?B:1;if((b|0)>-1){c=a[E>>2]|0;t=0;while(1){s=c+(t<<2)|0;k=t+1|0;if((a[s>>2]|0)>-1)t=k;else break}a[s>>2]=u;a[c+(k<<2)>>2]=b;a[c+(t+2<<2)>>2]=-1;l=l+1|0;b=-1}R8(i,f,u)}a[i>>2]=-1;o=g+1|0;k=0;w=w+1|0;u=g}else{o=g;k=B}}else{o=g;k=B}}else{o=g;k=B}}else{o=g;k=B}break}case 3:{c=a[h+4>>2]|0;s=a[c>>2]|0;c=a[c+4>>2]|0;t=(a[i>>2]|0)>-1;o=g+1|0;n=Q8(e,t?o:g)|0;if(!n){n=Q8(e,t?g:u)|0;if(!n){n=m8(e,i)|0;if(!n){n=Q8(e,(a[i>>2]|0)>>>31^1)|0;if(!n){n=m8(e,h)|0;if(!n){n=m8(e,c)|0;if(!n){n=m8(e,s)|0;if(!n){n=Q8(e,3)|0;if(!n){n=m8(e,c)|0;if(!n){n=Q8(e,0)|0;if(!n){n=Q8(e,2)|0;if(n|0){o=g;k=B;break i}n=m8(e,s)|0;if(n|0){o=g;k=B;break i}n=Q8(e,0)|0;if(n|0){o=g;k=B;break i}if((a[i>>2]|0)>-1){if(Z)n=0;else{n=N8(A,h,u)|0;a[(a[v>>2]|0)+(u<<2)>>2]=B;if((b|0)>-1){c=a[E>>2]|0;t=0;while(1){s=c+(t<<2)|0;k=t+1|0;if((a[s>>2]|0)>-1)t=k;else break}a[s>>2]=u;a[c+(k<<2)>>2]=b;a[c+(t+2<<2)>>2]=-1;l=l+1|0;b=-1}R8(i,f,u)}a[i>>2]=-1;w=w+1|0;u=g;t=o}else{n=0;t=g}g=(a[h+16>>2]|0)>0;o=g?t+2|0:t;k=B;u=g?t+1|0:u}else{o=g;k=B}}else{o=g;k=B}}else{o=g;k=B}}else{o=g;k=B}}else{o=g;k=B}}else{o=g;k=B}}else{o=g;k=B}}else{o=g;k=B}}else{o=g;k=B}}else{o=g;k=B}break}default:{o=g;n=0;k=B}}}while(0);c=a[d>>2]|0;if((c|0)>-1){t=0;do{s=m+(t<<2)|0;t=t+1|0}while((a[s>>2]|0)>-1);a[s>>2]=c;a[m+(t<<2)>>2]=-1;c=o;t=k}else{c=o;t=k}break}case 1:{n=y8(e)|0;if(Z){t=a[(a[a[n+4>>2]>>2]|0)+20>>2]|0;a[n+20>>2]=(L8(e)|0)+t;t=0;b=-1}else{h=L8(e)|0;d=L8(e)|0;t=h;b=(h|0)==0?b:d}n=0;c=g;t=Z?B:(t|0)==0&1;break}case 4:{t=L8(e)|0;c=L8(e)|0;n=0;u=(t|0)>-1?t:u;t=B;break}case 5:{n=y8(e)|0;if(Z){c=a[n+4>>2]|0;a[n+20>>2]=(a[(a[c+4>>2]|0)+20>>2]|0)+(a[(a[c>>2]|0)+20>>2]|0);n=0;c=g;t=B}else{n=0;c=g;t=B}break}case 2:{while(1)if((a[i>>2]|0)>-1)i=i+4|0;else{n=0;c=g;t=B;break}break}case 3:{c=y8(e)|0;k=y8(e)|0;n=y8(e)|0;i=L8(e)|0;if(Z){d=a[n+4>>2]|0;B=n+16|0;a[n+20>>2]=(a[(a[d>>2]|0)+20>>2]|0)+i+(a[(a[d+4>>2]|0)+20>>2]|0)+((a[B>>2]|0)>0?2:0);n=B}else n=n+16|0;i=y8(e)|0;t=L8(e)|0;s=L8(e)|0;if((a[n>>2]|0)>0){if(Z)n=0;else{n=X8(A,c,t)|0;a[(a[v>>2]|0)+(t<<2)>>2]=1;if(!n)n=X8(A,k,s)|0;a[(a[v>>2]|0)+(s<<2)>>2]=1}w=w+2|0;c=g;t=1}else{n=0;c=g;t=1}break}default:{n=0;c=g;t=B}}}while(0);if((n|0)!=0|(G8(e)|0)<=(I|0))break A;else{g=c;B=t}}}}while(0);if(!Z?(R8(i,f,u),(b|0)>-1):0){t=a[f+36>>2]|0;i=0;while(1){c=t+(i<<2)|0;s=i+1|0;if((a[c>>2]|0)>-1)i=s;else break}a[c>>2]=u;a[t+(s<<2)>>2]=b;a[t+(i+2<<2)>>2]=-1;l=l+1|0}a[f+48>>2]=w;a[f+40>>2]=w;a[f+44>>2]=l;L2(G);L2(m)}}while(0);return n|0}function B8(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0;Z=k;k=k+16|0;g=Z+12|0;I=Z+8|0;v=Z+4|0;E=Z;C=G8(e)|0;a[g>>2]=0;a[I>>2]=0;i=m8(e,i)|0;A:do{if(!i){i=Q8(e,0)|0;if(!i){e:do{if((G8(e)|0)>(C|0)){n=0;t=0;c=0;i:while(1){h=L8(e)|0;d=y8(e)|0;r:do{switch(h|0){case 0:{switch(a[d>>2]|0){case 0:{i=a[d+4>>2]|0;d=a[i>>2]|0;if(!((d|0)>-1|(d|0)==-4)){i=c;break r}d=i+8|0;i=(a[d>>2]|0)+c|0;a[d>>2]=i;if((i|0)<=(a[I>>2]|0)){i=c;break r}a[I>>2]=i;i=c;break r}case 3:{l=a[d+4>>2]|0;i=m8(e,a[l+4>>2]|0)|0;if(i|0)break e;i=Q8(e,0)|0;if(i|0)break e;i=m8(e,a[l>>2]|0)|0;if(i|0)break e;break}case 1:{l=a[d+4>>2]|0;i=m8(e,a[l+4>>2]|0)|0;if(i|0)break e;i=Q8(e,0)|0;if(i|0)break e;i=m8(e,a[l>>2]|0)|0;if(i|0)break e;break}case 2:{l=a[d+4>>2]|0;i=Q8(e,c)|0;if(i|0)break e;i=m8(e,d)|0;if(i|0)break e;i=Q8(e,1)|0;if(i|0)break e;i=m8(e,a[l>>2]|0)|0;if(i|0)break e;i=Q8(e,0)|0;if(i|0)break e;if((a[l+4>>2]|0)<=1?(a[l+8>>2]|0)<=1:0)i=c;else{a[g>>2]=0;i=0}t=t+1|0;break r}default:{i=c;break r}}i=Q8(e,0)|0;if(!i)i=c;else break e;break}case 1:{o=d+4|0;w=a[o>>2]|0;h=L8(e)|0;a[g>>2]=h;u=w+4|0;c=a[u>>2]|0;if((c|0)<=1)if((a[w+8>>2]|0)>1){a[v>>2]=0;if((c|0)>0)B=30;else{i=h;l=0;B=37}}else i=h;else{a[v>>2]=0;B=30}f:do{if((B|0)==30){i=V8(A,e,a[w>>2]|0,(c|0)>1?1:2,g,f,E,I)|0;if(!i){l=0;s=h;b=1}else{B=34;break i}while(1){i=a[E>>2]|0;if(!l)l=i;else l=v8(A,l,i)|0;if(!l){i=12;B=34;break i}c=a[u>>2]|0;if((b|0)>=(c|0)){i=s;B=37;break f}s=a[g>>2]|0;b=b+1|0;i=V8(A,e,a[w>>2]|0,(b|0)<(c|0)?1:2,g,f,E,I)|0;if(i|0){B=34;break i}}}}while(0);if((B|0)==37){B=0;u=w+8|0;s=a[u>>2]|0;if((s|0)==-1){s=a[g>>2]|0;i=V8(A,e,a[w>>2]|0,0,g,0,v,I)|0;if(i|0)break i;c=J8(A,a[v>>2]|0,0,-1,0)|0;a[v>>2]=c;if(!c){i=12;break i}else i=s}else if((c|0)<(s|0)){s=c;c=0;while(1){b=a[g>>2]|0;i=V8(A,e,a[w>>2]|0,0,g,0,E,I)|0;if(i|0){B=49;break i}if(!c){i=a[E>>2]|0;a[v>>2]=i}else{i=v8(A,a[E>>2]|0,c)|0;a[v>>2]=i}if(!i){i=12;B=49;break i}c=g8(A,-1,-1,-1)|0;if(!c){i=12;B=49;break i}c=p8(A,c,i)|0;a[v>>2]=c;if(!c){i=12;B=49;break i}s=s+1|0;if((s|0)>=(a[u>>2]|0)){i=b;break}}}else c=0;a[g>>2]=i;if(l){if(c){l=v8(A,l,c)|0;B=54}}else{l=c;B=54}if((B|0)==54){B=0;if(!l){i=12;break i}}a[o>>2]=a[l+4>>2];a[d>>2]=a[l>>2]}t=t+-1|0;l=i-h+n|0;if(!t){a[g>>2]=l;n=l;t=0;i=l}else n=l;break}default:i=c}}while(0);if((G8(e)|0)>(C|0))c=i;else{i=0;break e}}break A}else{i=0;n=0}}while(0);C=(a[r>>2]|0)+n|0;I=a[I>>2]|0;a[r>>2]=(I|0)>(C|0)?I:C}}}while(0);k=Z;return i|0}function g8(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0;f=u8(A,0,0,1,20)|0;A=F8(A,0,f)|0;if(!A)A=0;else{a[f>>2]=e;a[f+4>>2]=i;a[f+8>>2]=r}return A|0}function v8(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;if(e){r=u8(A,0,0,1,8)|0;A=F8(A,1,r)|0;if(!A)i=0;else{a[r>>2]=e;a[r+4>>2]=i;a[A+16>>2]=(a[i+16>>2]|0)+(a[e+16>>2]|0);i=A}}return i|0}function E8(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0;w=k;k=k+16|0;c=w+4|0;s=w;b=G8(e)|0;i=m8(e,i)|0;A:do{if(!i){i=Q8(e,0)|0;if(!i)if((G8(e)|0)>(b|0)){e:while(1){l=L8(e)|0;t=y8(e)|0;i:do{switch(l|0){case 0:switch(a[t>>2]|0){case 0:{n=a[t+4>>2]|0;f=a[n>>2]|0;if((f|0)==-4){a[t+8>>2]=0;i=n+8|0;l=W8(A,a[i>>2]|0,0,1114111,0,0,-1)|0;a[t+24>>2]=l;if(!l){i=12;break A}l=W8(A,a[i>>2]|0,0,1114111,0,0,a[n+4>>2]|0)|0;a[t+28>>2]=l;if(!l){i=12;break A}else break i}i=t+8|0;if((f|0)<0){a[i>>2]=1;l=z8(A)|0;a[t+24>>2]=l;if(!l){i=12;break A}l=z8(A)|0;a[t+28>>2]=l;if(!l){i=12;break A}else break i}else{a[i>>2]=0;i=n+8|0;r=n+4|0;l=W8(A,a[i>>2]|0,f,a[r>>2]|0,0,0,-1)|0;a[t+24>>2]=l;if(!l){i=12;break A}l=W8(A,a[i>>2]|0,a[n>>2]|0,a[r>>2]|0,a[n+12>>2]|0,a[n+16>>2]|0,-1)|0;a[t+28>>2]=l;if(!l){i=12;break A}else break i}}case 3:{i=m8(e,t)|0;if(i|0)break A;i=Q8(e,1)|0;if(i|0)break A;r=t+4|0;i=m8(e,a[(a[r>>2]|0)+4>>2]|0)|0;if(i|0)break A;i=Q8(e,0)|0;if(i|0)break A;i=m8(e,a[a[r>>2]>>2]|0)|0;if(i|0)break A;i=Q8(e,0)|0;if(!i)break i;else break A}case 1:{i=m8(e,t)|0;if(i|0)break A;i=Q8(e,2)|0;if(i|0)break A;r=t+4|0;i=m8(e,a[(a[r>>2]|0)+4>>2]|0)|0;if(i|0)break A;i=Q8(e,0)|0;if(i|0)break A;i=m8(e,a[a[r>>2]>>2]|0)|0;if(i|0)break A;i=Q8(e,0)|0;if(!i)break i;else break A}case 2:{i=m8(e,t)|0;if(i|0)break A;i=Q8(e,3)|0;if(i|0)break A;i=m8(e,a[a[t+4>>2]>>2]|0)|0;if(i|0)break A;i=Q8(e,0)|0;if(!i)break i;else break A}default:break i}case 1:{i=a[t+4>>2]|0;r=a[i>>2]|0;f=i+4|0;n=a[f>>2]|0;if(!(a[r+8>>2]|0))l=(a[n+8>>2]|0)!=0;else l=1;a[t+8>>2]=l&1;l=Y8(A,a[r+24>>2]|0,a[n+24>>2]|0,0,0)|0;a[t+24>>2]=l;if(!l){i=12;break A}l=Y8(A,a[(a[i>>2]|0)+28>>2]|0,a[(a[f>>2]|0)+28>>2]|0,0,0)|0;a[t+28>>2]=l;if(!l){i=12;break A}break}case 3:{l=a[t+4>>2]|0;i=a[l>>2]|0;if(!(a[l+4>>2]|0))r=1;else r=(a[i+8>>2]|0)!=0&1;a[t+8>>2]=r;a[t+24>>2]=a[i+24>>2];a[t+28>>2]=a[i+28>>2];break}case 2:{n=a[t+4>>2]|0;i=a[n>>2]|0;r=i+8|0;if(!(a[r>>2]|0))f=0;else f=(a[(a[n+4>>2]|0)+8>>2]|0)!=0;a[t+8>>2]=f&1;if(a[r>>2]|0){i=D8(e,i,0,0,c)|0;if(i|0)break e;r=Q2((a[c>>2]<<2)+4|0)|0;if(!r){i=12;break e}a[r>>2]=-1;a[s>>2]=0;i=D8(e,a[n>>2]|0,r,s,0)|0;if(i|0){u=45;break e}i=n+4|0;l=t+24|0;a[l>>2]=Y8(A,a[(a[i>>2]|0)+24>>2]|0,a[(a[n>>2]|0)+24>>2]|0,r,a[s>>2]|0)|0;L2(r);if(!(a[l>>2]|0)){i=12;break e}else f=i}else{a[t+24>>2]=a[i+24>>2];f=n+4|0}i=a[f>>2]|0;if(a[i+8>>2]|0){i=D8(e,i,0,0,c)|0;if(i|0)break e;r=Q2((a[c>>2]<<2)+4|0)|0;if(!r){i=12;break e}a[r>>2]=-1;a[s>>2]=0;i=D8(e,a[f>>2]|0,r,s,0)|0;if(i|0){u=52;break e}t=t+28|0;a[t>>2]=Y8(A,a[(a[n>>2]|0)+28>>2]|0,a[(a[f>>2]|0)+28>>2]|0,r,a[s>>2]|0)|0;L2(r);if(!(a[t>>2]|0)){i=12;break e}}else a[t+28>>2]=a[i+28>>2];break}default:{}}}while(0);if((G8(e)|0)<=(b|0)){i=0;break A}}if((u|0)==45)L2(r);else if((u|0)==52)L2(r)}else i=0}}while(0);k=w;return i|0}function C8(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0;A:while(1){switch(a[A>>2]|0){case 2:{A=a[A+4>>2]|0;if((a[A+8>>2]|0)==-1?(l=a[A>>2]|0,l=Z8(a[l+28>>2]|0,a[l+24>>2]|0,e,i,r)|0,(l|0)!=0):0){A=l;break A}break}case 3:{f=a[A+4>>2]|0;A=C8(a[f>>2]|0,e,i,r)|0;if(A|0)break A;A=f+4|0;break}case 1:{f=a[A+4>>2]|0;n=f+4|0;A=Z8(a[(a[f>>2]|0)+28>>2]|0,a[(a[n>>2]|0)+24>>2]|0,e,i,r)|0;if(A|0)break A;A=C8(a[f>>2]|0,e,i,r)|0;if(!A)A=n;else break A;break}default:{A=0;break A}}A=a[A>>2]|0}return A|0}function I8(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0;l=a[A+4>>2]|0;if(l|0){r=l+4|0;A=a[l>>2]|0;if(a[r>>2]|0){i=0;do{if(a[A+(i<<5)+8>>2]|0){e=a[A+(i<<5)+16>>2]|0;if(e){L2(e);A=a[l>>2]|0}e=a[A+(i<<5)+28>>2]|0;if(e){L2(e);A=a[l>>2]|0}}i=i+1|0}while(i>>>0<(a[r>>2]|0)>>>0)}if(A|0)L2(A);i=l+8|0;A=a[i>>2]|0;if(A|0){if(a[A+8>>2]|0){while(1){e=a[A+16>>2]|0;if(e|0)L2(e);if(!(a[A+40>>2]|0))break;else A=A+32|0}A=a[i>>2]|0}L2(A)}f=l+16|0;A=a[f>>2]|0;if(A|0){n=l+28|0;e=a[n>>2]|0;if(e){r=0;do{i=a[A+(r*12|0)+8>>2]|0;if(i){L2(i);e=a[n>>2]|0;A=a[f>>2]|0}r=r+1|0}while(r>>>0>>0)}L2(A)}A=a[l+32>>2]|0;if(A|0)L2(A);A=a[l+20>>2]|0;if(A|0)L2(A);A=a[l+36>>2]|0;if(A|0)L2(A);L2(l)}return}function Z8(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0;n=a[A>>2]|0;l=(n|0)>-1;A:do{if(!i)if(l){l=e+32|0;do{if((a[e>>2]|0)>-1?(Z=r+(n<<2)|0,a[Z>>2]=(a[Z>>2]|0)+1,(a[l>>2]|0)>-1):0){n=l;do{Z=r+(a[A>>2]<<2)|0;a[Z>>2]=(a[Z>>2]|0)+1;n=n+32|0}while((a[n>>2]|0)>-1)}A=A+32|0;n=a[A>>2]|0}while((n|0)>-1);n=0}else n=0;else if(l)while(1){l=a[e>>2]|0;e:do{if((l|0)>-1){o=A+4|0;h=A+8|0;d=A+16|0;B=A+20|0;g=A+24|0;v=A+28|0;E=A+12|0;r=-1;n=e;while(1){k=l;while(1){if((k|0)!=(r|0))break;n=n+32|0;l=a[n>>2]|0;if((l|0)>-1)k=l;else break e}b=i+(a[f+(a[A>>2]<<2)>>2]<<5)|0;while(1){l=b+8|0;if(!(a[l>>2]|0))break;else b=b+32|0}a[b+40>>2]=0;a[b>>2]=a[o>>2];a[b+4>>2]=a[h>>2];a[l>>2]=i+(a[f+(k<<2)>>2]<<5);a[b+12>>2]=k;l=a[B>>2]|0;r=a[n+16>>2]|a[d>>2]|(l|0?4:0)|(a[g>>2]|0?8:0);t=b+20|0;a[t>>2]=r;c=a[v>>2]|0;if((c|0)>-1){a[t>>2]=r|256;l=c}a[b+24>>2]=l;r=a[g>>2]|0;if(!r)a[b+28>>2]=0;else{l=0;do{w=l;l=l+1|0}while((a[r+(w<<2)>>2]|0)!=0);l=Q2(l<<2)|0;a[b+28>>2]=l;if(!l){n=12;break A}s=a[g>>2]|0;r=a[s>>2]|0;if(r){c=0;t=l;do{a[t>>2]=r;c=c+1|0;r=a[s+(c<<2)>>2]|0;t=l+(c<<2)|0}while((r|0)!=0);l=t}a[l>>2]=0}r=a[E>>2]|0;if(!r)l=0;else{l=0;while(1)if((a[r+(l<<2)>>2]|0)>-1)l=l+1|0;else break}s=n+12|0;t=a[s>>2]|0;if(!t)r=0;else{r=0;while(1)if((a[t+(r<<2)>>2]|0)>-1)r=r+1|0;else break}c=b+16|0;t=a[c>>2]|0;if(t|0)L2(t);a[c>>2]=0;l=r+l|0;if((l|0)>0){w=Q2((l<<2)+4|0)|0;a[c>>2]=w;if(!w){n=12;break A}r=a[E>>2]|0;if((r|0)!=0?(C=a[r>>2]|0,(C|0)>-1):0){l=0;t=C;do{a[w+(l<<2)>>2]=t;l=l+1|0;t=a[r+(l<<2)>>2]|0}while((t|0)>-1);u=l}else u=0;c=a[s>>2]|0;if((c|0)!=0?(I=a[c>>2]|0,(I|0)>-1):0){s=(u|0)>0;l=u;t=0;b=I;do{i:do{if(s){r=0;while(1){if((a[w+(r<<2)>>2]|0)==(b|0))break i;r=r+1|0;if((r|0)>=(u|0)){Z=39;break}}}else Z=39}while(0);if((Z|0)==39){Z=0;a[w+(l<<2)>>2]=b;l=l+1|0}t=t+1|0;b=a[c+(t<<2)>>2]|0}while((b|0)>-1)}else l=u;a[w+(l<<2)>>2]=-1}n=n+32|0;l=a[n>>2]|0;if((l|0)<=-1)break;else r=k}}}while(0);A=A+32|0;if((a[A>>2]|0)<=-1){n=0;break}}else n=0}while(0);return n|0}function G8(A){A=A|0;return a[A+12>>2]|0}function m8(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;i=k;k=k+16|0;r=i+4|0;f=i;a[f>>2]=e;a[r>>2]=a[f>>2];e=M8(A,r)|0;k=i;return e|0}function Q8(A,e){A=A|0;e=e|0;var i=0,r=0,f=0;i=k;k=k+16|0;r=i+4|0;f=i;a[f>>2]=e;a[r>>2]=a[f>>2];e=M8(A,r)|0;k=i;return e|0}function L8(A){A=A|0;var e=0,i=0;e=a[A+16>>2]|0;i=A+12|0;A=(a[i>>2]|0)+-1|0;a[i>>2]=A;return a[e+(A<<2)>>2]|0}function y8(A){A=A|0;var e=0,i=0;e=a[A+16>>2]|0;i=A+12|0;A=(a[i>>2]|0)+-1|0;a[i>>2]=A;return a[e+(A<<2)>>2]|0}function W8(A,e,i,r,f,n,l){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;l=l|0;A=u8(A,0,0,1,64)|0;if(!A)A=0;else{a[A>>2]=e;a[A+4>>2]=i;a[A+8>>2]=r;a[A+20>>2]=f;a[A+24>>2]=n;a[A+28>>2]=l;a[A+32>>2]=-1;a[A+36>>2]=-1;a[A+40>>2]=-1}return A|0}function z8(A){A=A|0;A=u8(A,0,0,1,32)|0;if(!A)A=0;else{a[A>>2]=-1;a[A+4>>2]=-1;a[A+8>>2]=-1}return A|0}function Y8(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0;k=(r|0)==0;if(k)w=0;else{n=0;while(1)if((a[r+(n<<2)>>2]|0)>-1)n=n+1|0;else{w=n;break}}l=0;while(1)if((a[e+(l<<5)>>2]|0)>-1)l=l+1|0;else{n=0;break}while(1)if((a[i+(n<<5)>>2]|0)>-1)n=n+1|0;else break;n=u8(A,0,0,1,(n+l<<5)+32|0)|0;A:do{if(!n)n=0;else{l=a[e>>2]|0;if((l|0)>-1){u=(w|0)>0;t=0;while(1){a[n+(t<<5)>>2]=l;a[n+(t<<5)+4>>2]=a[e+(t<<5)+4>>2];a[n+(t<<5)+8>>2]=a[e+(t<<5)+8>>2];a[n+(t<<5)+16>>2]=a[e+(t<<5)+16>>2]|f;a[n+(t<<5)+20>>2]=a[e+(t<<5)+20>>2];a[n+(t<<5)+24>>2]=a[e+(t<<5)+24>>2];a[n+(t<<5)+28>>2]=a[e+(t<<5)+28>>2];b=e+(t<<5)+12|0;c=a[b>>2]|0;l=(c|0)==0;if(k&l)l=0;else{if(l)s=0;else{l=0;while(1)if((a[c+(l<<2)>>2]|0)>-1)l=l+1|0;else{s=l;break}}l=u8(A,0,0,0,(s+w<<2)+4|0)|0;if(!l){n=0;break A}if((s|0)>0){b=a[b>>2]|0;c=0;do{a[l+(c<<2)>>2]=a[b+(c<<2)>>2];c=c+1|0}while((c|0)!=(s|0))}else s=0;if(u){c=0;do{a[l+(c+s<<2)>>2]=a[r+(c<<2)>>2];c=c+1|0}while((c|0)!=(w|0));c=w}else c=0;a[l+(c+s<<2)>>2]=-1}a[n+(t<<5)+12>>2]=l;t=t+1|0;l=a[e+(t<<5)>>2]|0;if((l|0)<=-1){w=t;break}}}else w=0;t=a[i>>2]|0;l=n+(w<<5)|0;if((t|0)>-1){u=0;b=w;do{a[l>>2]=t;a[n+(b<<5)+4>>2]=a[i+(u<<5)+4>>2];a[n+(b<<5)+8>>2]=a[i+(u<<5)+8>>2];a[n+(b<<5)+16>>2]=a[i+(u<<5)+16>>2];a[n+(b<<5)+20>>2]=a[i+(u<<5)+20>>2];a[n+(b<<5)+24>>2]=a[i+(u<<5)+24>>2];a[n+(b<<5)+28>>2]=a[i+(u<<5)+28>>2];c=i+(u<<5)+12|0;l=a[c>>2]|0;if(!l)l=0;else{t=0;while(1)if((a[l+(t<<2)>>2]|0)>-1)t=t+1|0;else break;l=u8(A,0,0,0,(t<<2)+4|0)|0;if(!l){n=0;break A}if((t|0)>0){s=a[c>>2]|0;c=0;do{a[l+(c<<2)>>2]=a[s+(c<<2)>>2];c=c+1|0}while((c|0)!=(t|0))}else t=0;a[l+(t<<2)>>2]=-1}a[n+(b<<5)+12>>2]=l;u=u+1|0;t=a[i+(u<<5)>>2]|0;b=u+w|0;l=n+(b<<5)|0}while((t|0)>-1)}a[l>>2]=-1}}while(0);return n|0}function D8(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0;k=G8(A)|0;o=(f|0)!=0;if(o)a[f>>2]=0;e=m8(A,e)|0;A:do{if(!e){u=(i|0)==0;b=(r|0)==0;if((G8(A)|0)>(k|0))while(1){e=y8(A)|0;e:do{switch(a[e>>2]|0){case 0:{e=a[e+4>>2]|0;switch(a[e>>2]|0){case-3:break;case-2:{if(b)break e;a[r>>2]=a[r>>2]|a[e+4>>2];break e}default:break e}l=a[e+4>>2]|0;if((l|0)>-1){i:do{if(!u){e=0;while(1){t=i+(e<<2)|0;c=a[t>>2]|0;if((c|0)<=-1)break;if((c|0)==(l|0))break i;else e=e+1|0}a[t>>2]=l;a[i+(e+1<<2)>>2]=-1}}while(0);if(o)a[f>>2]=(a[f>>2]|0)+1}break}case 3:{e=a[e+4>>2]|0;l=a[e>>2]|0;if(a[l+8>>2]|0){s=l;w=6;break e}e=a[e+4>>2]|0;if(a[e+8>>2]|0){s=e;w=6}break}case 1:{e=a[e+4>>2]|0;l=m8(A,a[e>>2]|0)|0;if(l|0){n=l;break A}s=a[e+4>>2]|0;w=6;break}case 2:{e=a[a[e+4>>2]>>2]|0;if(a[e+8>>2]|0){s=e;w=6}break}default:{}}}while(0);if((w|0)==6?(w=0,n=m8(A,s)|0,n|0):0)break A;if((G8(A)|0)<=(k|0)){n=0;break A}}else n=0}else n=e}while(0);return n|0}function M8(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,n=0,l=0,t=0,c=0,s=0;s=k;k=k+16|0;n=s;i=A+12|0;r=a[i>>2]|0;c=a[A>>2]|0;if((r|0)>=(c|0)){i=a[A+4>>2]|0;if((c|0)<(i|0)?(f=(a[A+8>>2]|0)+c|0,f=(f|0)>(i|0)?i:f,l=A+16|0,t=W2(a[l>>2]|0,f<<2)|0,(t|0)!=0):0){a[A>>2]=f;a[l>>2]=t;a[n>>2]=a[e>>2];M8(A,n)|0;i=0}else i=12}else{a[(a[A+16>>2]|0)+(r<<2)>>2]=a[e>>2];a[i>>2]=(a[i>>2]|0)+1;i=0}k=s;return i|0}function F8(A,e,i){A=A|0;e=e|0;i=i|0;A=u8(A,0,0,1,32)|0;if((i|0)!=0&(A|0)!=0){a[A+4>>2]=i;a[A>>2]=e;a[A+8>>2]=-1;a[A+12>>2]=-1}else A=0;return A|0}function V8(A,e,i,f,n,l,t,c){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;l=l|0;t=t|0;c=c|0;var s=0,b=0,u=0,w=0,k=0,o=0,h=0,d=0;d=G8(e)|0;m8(e,i)|0;i=Q8(e,0)|0;A:do{if(!i){h=(f&1|0)==0;o=(f&2|0)!=0;k=0;b=1;i=t;while(1){if((G8(e)|0)>(d|0))w=i;else{f=k;i=0;break A}e:while(1){i:while(1){switch(L8(e)|0){case 1:{t=7;break i}case 0:{i=y8(e)|0;switch(a[i>>2]|0){case 0:{t=9;break e}case 3:{t=19;break e}case 1:{t=26;break e}case 2:{t=33;break i}default:{}}break}default:{}}if((G8(e)|0)<=(d|0)){f=k;i=0;break A}}if((t|0)==7)i=y8(e)|0;else if((t|0)==33){f=a[i+4>>2]|0;i=m8(e,a[f>>2]|0)|0;if(i|0){f=k;break A}i=Q8(e,0)|0;if(i|0){f=k;break A}i=J8(A,a[f>>2]|0,a[f+4>>2]|0,a[f+8>>2]|0,r[f+12>>0]&1)|0;a[w>>2]=i;if(!i){f=k;i=12;break A}i=a[i+4>>2]|0}if((G8(e)|0)>(d|0))w=i;else{f=k;i=0;break A}}if((t|0)==9){u=a[i+4>>2]|0;t=a[u+8>>2]|0;f=a[u>>2]|0;i=a[u+4>>2]|0;if(!((f|0)>-1|(f|0)==-4))if(h|(f|0)!=-3)if((f|0)==-3)if(o&(b|0)!=0){a[l+(i<<2)>>2]=1;f=-3;s=k;b=0}else{f=-3;s=k}else s=k;else{i=-1;f=-1;t=-1;s=k}else{t=(a[n>>2]|0)+t|0;s=k+1|0}i=g8(A,f,i,t)|0;a[w>>2]=i;if(!i)i=12;else{i=a[i+4>>2]|0;a[i+12>>2]=a[u+12>>2];a[i+16>>2]=a[u+16>>2];i=0}if((t|0)>(a[c>>2]|0)){a[c>>2]=t;f=w}else f=w}else if((t|0)==19){t=a[i+4>>2]|0;f=t+4|0;i=p8(A,a[t>>2]|0,a[f>>2]|0)|0;a[w>>2]=i;if(!i){f=k;i=12;break A}u=a[i+4>>2]|0;i=m8(e,a[f>>2]|0)|0;if(i|0){f=k;break A}i=Q8(e,0)|0;if(i|0){f=k;break A}i=m8(e,u+4|0)|0;if(i|0){f=k;break A}i=Q8(e,1)|0;if(i|0){f=k;break A}i=m8(e,a[t>>2]|0)|0;if(i|0){f=k;break A}s=k;f=u;i=Q8(e,0)|0}else if((t|0)==26){u=a[i+4>>2]|0;t=u+4|0;i=v8(A,a[u>>2]|0,a[t>>2]|0)|0;a[w>>2]=i;if(!i){f=k;i=12;break A}f=a[i+4>>2]|0;a[f>>2]=0;s=f+4|0;a[s>>2]=0;i=m8(e,a[t>>2]|0)|0;if(i|0){f=k;break A}i=Q8(e,0)|0;if(i|0){f=k;break A}i=m8(e,s)|0;if(i|0){f=k;break A}i=Q8(e,1)|0;if(i|0){f=k;break A}i=m8(e,a[u>>2]|0)|0;if(i|0){f=k;break A}s=k;i=Q8(e,0)|0}if(!i){k=s;i=f}else{f=s;break}}}else f=0}while(0);a[n>>2]=(a[n>>2]|0)+f;return i|0}function J8(A,e,i,f,n){A=A|0;e=e|0;i=i|0;f=f|0;n=n|0;var l=0;l=u8(A,0,0,1,16)|0;A=F8(A,2,l)|0;if(!A)A=0;else{a[l>>2]=e;a[l+4>>2]=i;a[l+8>>2]=f;l=l+12|0;r[l>>0]=r[l>>0]&-2|n&1;a[A+16>>2]=a[e+16>>2]}return A|0}function p8(A,e,i){A=A|0;e=e|0;i=i|0;var r=0;if(e){r=u8(A,0,0,1,8)|0;A=F8(A,3,r)|0;if((i|0)!=0&(A|0)!=0){a[r>>2]=e;a[r+4>>2]=i;a[A+16>>2]=(a[i+16>>2]|0)+(a[e+16>>2]|0);i=A}else i=0}return i|0}function N8(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;r=u8(A,0,0,0,8)|0;if(((r|0)!=0?(i=g8(A,-3,i,-1)|0,a[r>>2]=i,(i|0)!=0):0)?(f=u8(A,0,0,0,32)|0,a[r+4>>2]=f,(f|0)!=0):0){A=e+4|0;a[f+4>>2]=a[A>>2];a[f>>2]=a[e>>2];a[f+8>>2]=-1;a[f+12>>2]=-1;f=f+16|0;a[f>>2]=0;a[f+4>>2]=0;a[f+8>>2]=0;a[f+12>>2]=0;a[A>>2]=r;a[e>>2]=1;A=0}else A=12;return A|0}function R8(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;f=a[A>>2]|0;if((f|0)>-1){n=a[e+16>>2]|0;r=0;e=f;do{f=e>>>1;a[((e&1|0)==0?n+(f*12|0)|0:n+(f*12|0)+4|0)>>2]=i;r=r+1|0;e=a[A+(r<<2)>>2]|0}while((e|0)>-1)}a[A>>2]=-1;return}function X8(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;r=u8(A,0,0,0,8)|0;if(((r|0)!=0?(i=g8(A,-3,i,-1)|0,a[r+4>>2]=i,(i|0)!=0):0)?(f=u8(A,0,0,0,32)|0,a[r>>2]=f,(f|0)!=0):0){A=e+4|0;a[f+4>>2]=a[A>>2];a[f>>2]=a[e>>2];a[f+8>>2]=-1;a[f+12>>2]=-1;f=f+16|0;a[f>>2]=0;a[f+4>>2]=0;a[f+8>>2]=0;a[f+12>>2]=0;a[A>>2]=r;a[e>>2]=1;A=0}else A=12;return A|0}function H8(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0;b=k;k=k+16|0;c=b;t=A+32|0;l=a[t>>2]|0;n=l&1;A:do{switch(r[e>>0]|0){case 91:{i=j8(A,e+1|0)|0;break}case 92:{i=e+1|0;f=P8(i)|0;if(f|0){i=H8(A,f)|0;a[A+12>>2]=e+2;break A}f=r[i>>0]|0;switch(f|0){case 0:{i=5;break A}case 98:{f=g8(a[A>>2]|0,-2,64,-1)|0;break}case 66:{f=g8(a[A>>2]|0,-2,128,-1)|0;break}case 60:{f=g8(a[A>>2]|0,-2,16,-1)|0;break}case 62:{f=g8(a[A>>2]|0,-2,32,-1)|0;break}case 120:{l=e+2|0;t=(r[l>>0]|0)==123;n=t?8:2;l=t?e+3|0:l;i=0;f=0;do{e=S8(r[l+i>>0]|0)|0;if((e|0)<0)break;f=e+(f<<4)|0;i=i+1|0}while((f|0)<1114112&(i|0)<(n|0));i=l+i|0;if(t){if((r[i>>0]|0)!=125){i=9;break A}i=i+1|0}c=a[A>>2]|0;t=A+24|0;s=a[t>>2]|0;a[t>>2]=s+1;f=g8(c,f,f,s)|0;i=i+-1|0;break}case 63:case 43:case 123:if(!n){i=13;break A}else{s=37;break A}case 124:{if(n|0){s=37;break A}i=g8(a[A>>2]|0,-1,-1,-1)|0;s=45;break A}default:{if(!((n|0)==0&(f+-49|0)>>>0<9)){s=37;break A}c=f+-48|0;s=a[A>>2]|0;t=A+24|0;f=a[t>>2]|0;a[t>>2]=f+1;f=g8(s,-4,c,f)|0;s=A+28|0;t=a[s>>2]|0;a[s>>2]=(c|0)<(t|0)?t:c}}e=i+1|0;i=f;s=45;break}case 46:{i=a[A>>2]|0;n=A+24|0;f=a[n>>2]|0;a[n>>2]=f+1;if(l&4){f=g8(i,0,9,f)|0;s=a[A>>2]|0;i=a[n>>2]|0;a[n>>2]=i+1;i=g8(s,11,1114111,i)|0;if((f|0)!=0&(i|0)!=0)i=p8(a[A>>2]|0,f,i)|0;else i=0}else i=g8(i,0,1114111,f)|0;e=e+1|0;s=45;break}case 94:{if((n|0)==0?(a[A+16>>2]|0)!=(e|0):0){i=e;s=37;break A}e=e+1|0;i=g8(a[A>>2]|0,-2,1,-1)|0;s=45;break}case 36:{i=e+1|0;if((n|0)==0?r[i>>0]|0:0){i=e;s=37;break A}e=i;i=g8(a[A>>2]|0,-2,2,-1)|0;s=45;break}case 63:case 43:case 123:case 42:{if(!n){i=e;s=37}else i=13;break}case 124:{if(!n){i=e;s=37}else s=36;break}case 0:{s=36;break}default:{i=e;s=37}}}while(0);if((s|0)==36){i=g8(a[A>>2]|0,-1,-1,-1)|0;s=45}else if((s|0)==37){l=G3(c,i,-1)|0;if((l|0)<0)i=2;else{do{if(a[t>>2]&2){if((s4(a[c>>2]|0)|0)==0?(c4(a[c>>2]|0)|0)==0:0){s=43;break}t=a[A>>2]|0;u=X1(a[c>>2]|0)|0;n=X1(a[c>>2]|0)|0;f=A+24|0;n=g8(t,u,n,a[f>>2]|0)|0;u=a[A>>2]|0;t=u4(a[c>>2]|0)|0;e=u4(a[c>>2]|0)|0;e=g8(u,t,e,a[f>>2]|0)|0;if((n|0)!=0&(e|0)!=0)n=p8(a[A>>2]|0,n,e)|0;else n=0}else s=43}while(0);if((s|0)==43){n=a[c>>2]|0;f=A+24|0;n=g8(a[A>>2]|0,n,n,a[f>>2]|0)|0}a[f>>2]=(a[f>>2]|0)+1;e=i+l|0;i=n;s=45}}if((s|0)==45)if(!i)i=12;else{a[A+8>>2]=i;a[A+12>>2]=e;i=0}k=b;return i|0}function U8(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0;c=k;k=k+16|0;t=c+4|0;n=c;A=T8(A,t)|0;if((r[A>>0]|0)==44){A=T8(A+1|0,n)|0;l=a[n>>2]|0;n=a[t>>2]|0}else{t=a[t>>2]|0;a[n>>2]=t;l=t;n=t}do{if(!(n>>>0>255|((l|0)>255|(l|0)>-1&(l|0)<(n|0)))){if(!e)if((r[A>>0]|0)==92)A=A+1|0;else{A=0;break}if((r[A>>0]|0)==125){a[i>>2]=n;a[f>>2]=l;A=A+1|0}else A=0}else A=0}while(0);k=c;return A|0}function x8(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0;if((a[e+12>>2]|0)>-1){r=g8(a[A>>2]|0,-1,-1,-1)|0;if((r|0)!=0?(f=v8(a[A>>2]|0,r,e)|0,(f|0)!=0):0){r=a[e+16>>2]|0;a[f+16>>2]=r;n=6}else r=12}else{f=e;r=a[e+16>>2]|0;n=6}if((n|0)==6){a[f+12>>2]=i;a[f+16>>2]=r+1;a[A+8>>2]=f;r=0}return r|0}function T8(A,e){A=A|0;e=e|0;var i=0,f=0,n=0;a[e>>2]=-1;if(((r[A>>0]|0)+-48|0)>>>0<10){a[e>>2]=0;i=A;n=0;f=r[A>>0]|0;while(1){n=(n*10|0)+-48+(f<<24>>24)|0;a[e>>2]=n;A=i+1|0;f=r[A>>0]|0;if((n|0)>255|((f<<24>>24)+-48|0)>>>0>9)break;else i=A}}return A|0}function j8(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0;B=k;k=k+288|0;i=B+264|0;n=B;a[i>>2]=a[A>>2];l=i+8|0;a[l>>2]=0;a[i+12>>2]=32;o=Q2(128)|0;d=i+4|0;a[d>>2]=o;if(!o)e=12;else{f=n+4|0;a[f>>2]=0;o=(r[e>>0]|0)==94;a[n>>2]=o&1;e=O8(A,o?e+1|0:e,i,n)|0;A:do{if(!e){o=(a[n>>2]|0)==0;if(!o){K4(a[d>>2]|0,a[l>>2]|0,4,111);e=_8(i)|0;if(!e){e=12;i=0;break}a[e>>2]=1114112;a[e+4>>2]=1114112;a[e+8>>2]=-1;e=a[f>>2]|0;if(e){i=e<<2;f=u8(a[A>>2]|0,0,0,0,i+4|0)|0;if(!f){e=12;i=0;break}W6(f|0,n+8|0,i|0)|0;a[f+(e<<2)>>2]=0}else f=0}else f=0;b=a[l>>2]|0;if((b|0)>0){u=a[d>>2]|0;w=A+24|0;i=0;e=0;s=0;while(1){c=a[u+(s<<2)>>2]|0;n=a[c>>2]|0;l=c+4|0;t=a[l>>2]|0;do{if(!o)if((n|0)>(e|0)){a[c>>2]=e;a[l>>2]=n+-1;e=t+1|0;h=14;break}else{c=t+1|0;e=(c|0)>=(e|0)?c:e;break}else h=14}while(0);if((h|0)==14){h=0;a[c+8>>2]=a[w>>2];a[c+16>>2]=f;c=F8(a[A>>2]|0,0,c)|0;i=p8(a[A>>2]|0,i,c)|0;if(!i){e=12;i=0;break A}}s=s+1|0;if((s|0)>=(b|0)){e=0;break}}}else{e=0;i=0}}else i=0}while(0);L2(a[d>>2]|0);d=A+24|0;a[d>>2]=(a[d>>2]|0)+1;a[A+8>>2]=i}k=B;return e|0}function P8(A){A=A|0;var e=0;e=r[A>>0]|0;A=0;while(1){if((r[63752+(A<<3)>>0]|0)==e<<24>>24)break;A=A+1|0;if((A|0)==12){A=12;break}}return a[63752+(A<<3)+4>>2]|0}function S8(A){A=A|0;var e=0;e=A+-48|0;if(e>>>0<10)return e|0;else{e=A|32;return((e+-97|0)>>>0<6?e+-87|0:-1)|0}return 0}function O8(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0;g=k;k=k+32|0;w=g;h=g+4|0;t=G3(w,e,-1)|0;n=r[e>>0]|0;A:do{if((t|0)>=1){d=f+4|0;u=A+32|0;l=e;c=t;e:while(1){t=(l|0)==(e|0);if(!(t|n<<24>>24!=93)){B=5;break}i:do{if(!(t|n<<24>>24!=45)){switch(r[l+1>>0]|0){case 93:break i;case 45:break;default:{n=11;break A}}if((r[l+2>>0]|0)==93){n=11;break A}}}while(0);i:do{if(n<<24>>24==91){switch(r[l+1>>0]|0){case 61:case 46:{n=3;break A}case 58:break;default:{B=17;break i}}t=l+2|0;n=0;r:while(1){switch(r[t+n>>0]|0){case 0:{B=16;break e}case 58:break r;default:{}}if((n|0)<13)n=n+1|0;else{B=16;break e}}W6(h|0,t|0,n|0)|0;r[h+n>>0]=0;c=z4(h)|0;if(!c){B=16;break e}l=t+(n+2)|0;if((r[t+(n+1)>>0]|0)!=93){B=16;break e}if(!(a[f>>2]|0)){n=1114111;b=0;s=1;B=25}else{n=a[d>>2]|0;if((n|0)>63){n=12;break A}a[d>>2]=n+1;a[f+8+(n<<2)>>2]=c}}else B=17}while(0);if((B|0)==17){B=0;t=a[w>>2]|0;l=l+c|0;if((r[l>>0]|0)==45?(o=l+1|0,(r[o>>0]|0)!=93):0){l=G3(w,o,-1)|0;n=a[w>>2]|0;if((l|0)<1|(t|0)>(n|0)){n=11;break A}c=0;b=t;l=o+l|0;s=0;B=25}else{c=0;n=t;b=t;s=0;B=25}}if((B|0)==25){B=0;t=_8(i)|0;if(!t){n=12;break A}a[t>>2]=b;a[t+4>>2]=n;a[t+12>>2]=c;a[t+8>>2]=-1;if(!(s|(a[u>>2]&2|0)==0)?(q8(i,b,n)|0)!=0:0){n=12;break A}}c=G3(w,l,-1)|0;n=r[l>>0]|0;if((c|0)<1){B=3;break A}}if((B|0)==5){a[A+12>>2]=l+1;n=0;break}else if((B|0)==16){n=4;break}}else B=3}while(0);if((B|0)==3)n=n<<24>>24?2:7;k=g;return n|0}function K8(A,e){A=A|0;e=e|0;return(a[a[A>>2]>>2]|0)-(a[a[e>>2]>>2]|0)|0}function _8(A){A=A|0;var e=0,i=0,r=0,f=0,n=0,l=0,t=0;l=A+8|0;i=a[l>>2]|0;r=A+12|0;f=a[r>>2]|0;if((i|0)>=(f|0))if((f|0)<=32767?(a[r>>2]=f<<1,n=A+4|0,e=W2(a[n>>2]|0,f<<3)|0,(e|0)!=0):0){a[n>>2]=e;i=a[l>>2]|0;t=6}else e=0;else{e=a[A+4>>2]|0;t=6}if((t|0)==6){a[l>>2]=i+1;t=u8(a[A>>2]|0,0,0,1,20)|0;a[e+(i<<2)>>2]=t;e=t}return e|0}function q8(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0,n=0,l=0;A:do{if((e|0)>(i|0))e=0;else while(1){e:do{if(!(c4(e)|0)){if(!(s4(e)|0)){e=e+1|0;break}f=u4(e)|0;r=f;while(1){n=e+1|0;r=r+1|0;if((e|0)>=(i|0)){l=f;e=n;n=12;break e}if((u4(n)|0)==(r|0))e=n;else{l=f;e=n;n=12;break}}}else{f=X1(e)|0;r=f;while(1){n=e+1|0;r=r+1|0;if((e|0)>=(i|0)){l=f;e=n;n=12;break e}if((X1(n)|0)==(r|0))e=n;else{l=f;e=n;n=12;break}}}}while(0);if((n|0)==12){n=0;f=_8(A)|0;if(!f){e=-1;break A}a[f>>2]=l;a[f+4>>2]=r+-1;a[f+8>>2]=-1}if((e|0)>(i|0)){e=0;break}}}while(0);return e|0}function $8(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0;u=k;k=k+16|0;s=u;t=a[A+4>>2]|0;c=t+56|0;l=(a[c>>2]&8|0)==0?i:0;A=a[t+40>>2]|0;if((A|0)>0&(l|0)!=0){A=Q2(A<<2)|0;if(!A)A=12;else{n=A;i=A;b=3}}else{n=0;i=0;b=3}if((b|0)==3){if(!(a[t+60>>2]|0))A=e6(t,e,n,f,s)|0;else A=A6(t,e,n,f,s)|0;if(!A)i6(l,r,a[c>>2]|0,t,n,a[s>>2]|0);if(n)L2(i)}k=u;return A|0}function A6(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0,U=0,x=0,T=0,j=0,P=0;P=k;k=k+16|0;T=P;a[T>>2]=0;w=r&1;U=r&2;x=A+56|0;u=a[x>>2]&4;j=s8(0,0)|0;A:do{if(j){o=u8(j,0,0,0,32)|0;if(!o){b8(j);r=12;break}a[o+24>>2]=0;a[o+28>>2]=0;H=A+40|0;h=a[H>>2]|0;if(h){r=Q2(h<<2)|0;if(!r){b=0;s=0;c=r;r=12;t=0;l=0;n=0}else{c=r;t=r;L=6}}else{c=0;t=0;L=6}e:do{if((L|0)==6){r=a[A+28>>2]|0;if(r){r=Q2(r<<3)|0;if(!r){b=r;s=0;r=12;l=0;n=0;break}else{b=r;l=r}}else{b=0;l=0}X=A+52|0;r=a[X>>2]|0;if(r){r=Q2(r<<2)|0;if(!r){s=r;r=12;n=0;break}else{s=r;n=r}}else{s=0;n=0}V=A+8|0;J=A+12|0;p=(i|0)==0;N=(i|0)!=0;R=A+32|0;F=(u|0)!=0;M=(w|0)==0;B=e;r=1;d=-1;E=-1;u=h;Q=0;i:while(1){if((u|0)>0){w=0;do{a[c+(w<<2)>>2]=-1;if(!p){a[i+(w<<2)>>2]=-1;u=a[H>>2]|0}w=w+1|0}while((w|0)<(u|0))}u=a[X>>2]|0;if((u|0)>0)Y6(n|0,0,u<<2|0)|0;Y=r+d|0;r=G3(T,B,4)|0;if((r|0)<1)if((r|0)<0){r=1;break e}else r=1;z=B+r|0;D=a[T>>2]|0;u=a[V>>2]|0;w=u+8|0;if(a[w>>2]|0){C=(Y|0)!=0;I=(Q|0)==95;Z=(Y|0)==0;m=F&(Q|0)==10;G=(Y|0)<1&M;v=u;u=0;g=0;B=w;while(1){d=v+20|0;w=a[d>>2]|0;r:do{if(w)if((w&1|0)==0|G|m){if(w&2|0?(W=a[T>>2]|0,!((W|U|0)==0|F&(W|0)==10)):0){h=g;break}do{if(w&16|0){if(I){h=g;break r}if(a4(Q)|0){h=g;break r}w=a[T>>2]|0;if((w|0)==95)break;if(!(a4(w)|0)){h=g;break r}}}while(0);w=a[d>>2]|0;if(w&32){if(I){w=a[T>>2]|0;if((w|0)==95){h=g;break}}else{W=(a4(Q)|0)==0;w=a[T>>2]|0;if(W|(w|0)==95){h=g;break}}if(a4(w)|0){h=g;break}w=a[d>>2]|0}h=a[T>>2]|0;do{if((h|0)!=0&(C&(w&64|0)!=0)){if(I)w=1;else{w=(a4(Q)|0)!=0;h=a[T>>2]|0}if((h|0)==95)if(w){h=g;break r}else break;else if(w^(a4(h)|0)!=0)break;else{h=g;break r}}}while(0);if(!(a[d>>2]&128)){L=49;break}w=a[T>>2]|0;if(Z|(w|0)==0){h=g;break}if(I)h=1;else{h=(a4(Q)|0)!=0;w=a[T>>2]|0}if((w|0)==95)if(h){L=49;break}else{h=g;break}else if(h^(a4(w)|0)!=0){h=g;break}else{L=49;break}}else h=g;else L=49}while(0);do{if((L|0)==49){L=0;if(!g){u=a[v+16>>2]|0;h=a[B>>2]|0;break}h=o+28|0;w=a[h>>2]|0;if(!w){w=u8(j,0,0,0,32)|0;if(!w){L=53;break i}a[w+24>>2]=o;a[w+28>>2]=0;W=u8(j,0,0,0,a[H>>2]<<2)|0;a[w+20>>2]=W;if(!W){L=60;break i}a[h>>2]=w;o=w}else o=w;a[o>>2]=Y;a[o+4>>2]=z;a[o+8>>2]=a[B>>2];a[o+12>>2]=a[v+12>>2];a[o+16>>2]=a[T>>2];if((a[H>>2]|0)>0){h=a[o+20>>2]|0;w=0;do{a[h+(w<<2)>>2]=a[c+(w<<2)>>2];w=w+1|0}while((w|0)<(a[H>>2]|0))}w=a[v+16>>2]|0;if(!w)h=g;else{h=a[w>>2]|0;if((h|0)<=-1){h=g;break}d=a[o+20>>2]|0;do{w=w+4|0;a[d+(h<<2)>>2]=Y;h=a[w>>2]|0}while((h|0)>-1);h=g}}}while(0);B=v+40|0;if(!(a[B>>2]|0))break;else{v=v+32|0;g=h}}if(u){w=a[u>>2]|0;if((w|0)>-1)do{a[c+(w<<2)>>2]=Y;u=u+4|0;w=a[u>>2]|0}while((w|0)>-1)}else u=0;if(!h)L=171;else{B=Y;d=z;C=h;I=u;L=79}}else{u=0;L=171}r:while(1){if((L|0)==79){if((C|0)==(a[J>>2]|0)){if((E|0)>=(B|0)){if(!(N&(E|0)==(B|0))){u=I;L=171;continue}u=a[H>>2]|0;if(!(f6(u,a[R>>2]|0,c,i)|0)){u=I;L=171;continue}}else{if(p){E=B;u=I;L=171;continue}u=a[H>>2]|0}if((u|0)>0)u=0;else{E=B;u=I;L=171;continue}while(1){a[i+(u<<2)>>2]=a[c+(u<<2)>>2];u=u+1|0;if((u|0)>=(a[H>>2]|0)){E=B;u=I;L=171;continue r}}}v=C+8|0;if((a[v>>2]|0)!=0?(a[C+20>>2]&256|0)!=0:0){w=a[C+24>>2]|0;i6(w+1|0,b,a[x>>2]&-9,A,c,B);W=a[b+(w<<3)>>2]|0;w=(a[b+(w<<3)+4>>2]|0)-W|0;if(Z1(e+W|0,d+-1|0,w)|0){u=I;L=171;continue}W=(w|0)==0;u=W&1;h=a[C+12>>2]|0;if(W?a[s+(h<<2)>>2]|0:0){u=I;L=171;continue}a[s+(h<<2)>>2]=u;w=w+-1|0;d=d+w|0;w=w+B|0;h=a[T>>2]|0;u=G3(T,d,4)|0;if((u|0)<1)if((u|0)<0){r=1;break e}else u=1;y=d+u|0;W=u}else{h=a[T>>2]|0;if(!h){u=I;L=171;continue}u=G3(T,d,4)|0;if((u|0)<1)if((u|0)<0){r=1;break e}else u=1;w=B;y=d+u|0;W=u}B=w+r|0;if(!(a[v>>2]|0)){r=W;u=I;L=171;continue}Z=(B|0)!=0;G=(h|0)==95;m=(B|0)==0;L=F&(h|0)==10;Q=(B|0)<1&M;g=0;u=I;while(1){f:do{if((a[C>>2]|0)>>>0<=h>>>0){if((a[C+4>>2]|0)>>>0>>0)break;d=C+20|0;r=a[d>>2]|0;do{if(r|0){if(!((r&1|0)==0|Q|L))break f;if(r&2|0?(I=a[T>>2]|0,!((I|U|0)==0|F&(I|0)==10)):0)break f;do{if(r&16|0){if(G)break f;if(a4(h)|0)break f;r=a[T>>2]|0;if((r|0)==95)break;if(!(a4(r)|0))break f}}while(0);r=a[d>>2]|0;if(r&32){if(G){r=a[T>>2]|0;if((r|0)==95)break f}else{I=(a4(h)|0)==0;r=a[T>>2]|0;if(I|(r|0)==95)break f}if(a4(r)|0)break f;r=a[d>>2]|0}w=a[T>>2]|0;do{if((w|0)!=0&(Z&(r&64|0)!=0)){if(G)r=1;else{r=(a4(h)|0)!=0;w=a[T>>2]|0}if((w|0)==95)if(r)break f;else break;else if(r^(a4(w)|0)!=0)break;else break f}}while(0);do{if(a[d>>2]&128|0){r=a[T>>2]|0;if(m|(r|0)==0)break f;if(G)w=1;else{w=(a4(h)|0)!=0;r=a[T>>2]|0}if((r|0)==95)if(w)break;else break f;else if(w^(a4(r)|0)!=0)break f;else break}}while(0);r=a[d>>2]|0;do{if(r&4){if(a[x>>2]&2|0)break;if(!(f4(h,a[C+24>>2]|0)|0))break f;r=a[d>>2]|0}}while(0);do{if(r&4|0){if(!(a[x>>2]&2))break;I=u4(h)|0;r=C+24|0;if(f4(I,a[r>>2]|0)|0)break;I=X1(h)|0;if(!(f4(I,a[r>>2]|0)|0))break f}}while(0);if(!(a[d>>2]&8))break;if(r6(a[C+28>>2]|0,h,a[x>>2]&2)|0)break f}}while(0);if(!g){g=a[v>>2]|0;u=a[C+16>>2]|0;break}w=o+28|0;r=a[w>>2]|0;if(!r){r=u8(j,0,0,0,32)|0;if(!r){L=145;break i}a[r+24>>2]=o;a[r+28>>2]=0;I=u8(j,0,0,0,a[H>>2]<<2)|0;a[r+20>>2]=I;if(!I){L=152;break i}a[w>>2]=r;o=r}else o=r;a[o>>2]=B;a[o+4>>2]=y;a[o+8>>2]=a[v>>2];a[o+12>>2]=a[C+12>>2];a[o+16>>2]=a[T>>2];if((a[H>>2]|0)>0){w=a[o+20>>2]|0;r=0;do{a[w+(r<<2)>>2]=a[c+(r<<2)>>2];r=r+1|0}while((r|0)<(a[H>>2]|0))}r=a[C+16>>2]|0;if(!r)break;w=a[r>>2]|0;if((w|0)<=-1)break;d=a[o+20>>2]|0;do{a[d+(w<<2)>>2]=B;r=r+4|0;w=a[r>>2]|0}while((w|0)>-1)}}while(0);v=C+40|0;if(!(a[v>>2]|0))break;else C=C+32|0}if(!g){r=W;L=171;continue}if(u){r=a[u>>2]|0;if((r|0)>-1){do{u=u+4|0;a[c+(r<<2)>>2]=B;r=a[u>>2]|0}while((r|0)>-1);h=E;w=y;r=W}else{h=E;w=y;r=W}}else{h=E;w=y;r=W;u=0}}else if((L|0)==171){L=0;d=a[o+24>>2]|0;if(!d)break;g=a[o+8>>2]|0;if(a[g+20>>2]&256|0)a[s+(a[o+12>>2]<<2)>>2]=0;B=a[o>>2]|0;v=a[o+4>>2]|0;a[T>>2]=a[o+16>>2];h=a[H>>2]|0;if((h|0)>0){o=a[o+20>>2]|0;w=0;do{a[c+(w<<2)>>2]=a[o+(w<<2)>>2];w=w+1|0}while((w|0)<(h|0));o=d;h=E;w=v}else{o=d;h=E;w=v}}d=w;E=h;C=g;I=u;L=79}u=(E|0)>-1;if(u|(a[T>>2]|0)==0){L=180;break}a[T>>2]=D;B=z;d=Y;u=a[H>>2]|0;Q=D}if((L|0)==53){b8(j);if(c|0)L2(t);if(b|0)L2(l);if(!s){r=12;break A}L2(n);r=12;break A}else if((L|0)==60){b8(j);if(c|0)L2(t);if(b|0)L2(l);if(!s){r=12;break A}L2(n);r=12;break A}else if((L|0)==145){b8(j);if(c|0)L2(t);if(b|0)L2(l);if(!s){r=12;break A}L2(n);r=12;break A}else if((L|0)==152){b8(j);if(c|0)L2(t);if(b|0)L2(l);if(!s){r=12;break A}L2(n);r=12;break A}else if((L|0)==180){a[f>>2]=E;r=(u^1)&1;break}}}while(0);b8(j);if(c|0)L2(t);if(b|0)L2(l);if(s)L2(n)}else r=12}while(0);k=P;return r|0}function e6(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,o=0,h=0,d=0,B=0,g=0,v=0,E=0,C=0,I=0,Z=0,G=0,m=0,Q=0,L=0,y=0,W=0,z=0,Y=0,D=0,M=0,F=0,V=0,J=0,p=0,N=0,R=0,X=0,H=0,x=0,T=0,j=0,P=0,S=0;S=k;k=k+16|0;T=S;a[T>>2]=0;s=r&1;X=r&2;H=A+56|0;c=a[H>>2]&4;if(!i)N=0;else N=a[A+40>>2]|0;R=N<<2;t=a[A+52>>2]|0;l=t<<3;n=l+8|0;r=R+12+l+(n+(U(R,t)|0)<<1)|0;j=Q2(r)|0;if(!j)r=12;else{Y6(j|0,0,r|0)|0;r=j+R|0;b=r&3;b=r+((b|0)==0?0:4-b|0)|0;r=b+n|0;u=r&3;u=r+((u|0)==0?0:4-u|0)|0;r=u+n|0;p=r&3;p=r+((p|0)==0?0:4-p|0)|0;r=p+l|0;n=r&3;l=(t|0)>0;if(l){r=r+((n|0)==0?0:4-n|0)|0;n=0;while(1){a[u+(n<<3)+4>>2]=r;r=r+R|0;a[b+(n<<3)+4>>2]=r;n=n+1|0;if((n|0)>=(t|0))break;else r=r+R|0}if(l){r=0;do{a[p+(r<<3)>>2]=-1;r=r+1|0}while((r|0)<(t|0))}}r=G3(T,e,4)|0;if((r|0)<1)if((r|0)<0)r=1;else{t=1;P=11}else{t=r;P=11}A:do{if((P|0)==11){J=A+8|0;V=(c|0)!=0;W=(s|0)==0;z=(N|0)>0;Y=A+12|0;D=(N|0)<1;M=A+44|0;F=A+32|0;L=A+36|0;y=(N|0)==0;l=0;E=e+t|0;v=0;c=0;r=-1;n=b;m=j;I=b;C=u;while(1){if((r|0)<0){A=a[J>>2]|0;s=A+8|0;e:do{if(a[s>>2]|0){o=(v|0)!=0;h=(l|0)==95;d=(v|0)==0;g=V&(l|0)==10;B=(v|0)<1&W;while(1){i:while(1){w=A+12|0;if((a[p+(a[w>>2]<<3)>>2]|0)>=(v|0))break;u=A+20|0;e=a[u>>2]|0;if(!e){P=46;break}r:do{if((e&1|0)==0|B|g){if(e&2|0?(Q=a[T>>2]|0,!((Q|X|0)==0|V&(Q|0)==10)):0)break;do{if(e&16|0){if(h)break r;if(a4(l)|0)break r;e=a[T>>2]|0;if((e|0)==95)break;if(!(a4(e)|0))break r}}while(0);e=a[u>>2]|0;if(e&32){if(h){e=a[T>>2]|0;if((e|0)==95)break}else{Q=(a4(l)|0)==0;e=a[T>>2]|0;if(Q|(e|0)==95)break}if(a4(e)|0)break;e=a[u>>2]|0}b=a[T>>2]|0;do{if((b|0)!=0&(o&(e&64|0)!=0)){if(h)e=1;else{e=(a4(l)|0)!=0;b=a[T>>2]|0}if((b|0)==95)if(e)break r;else break;else if(e^(a4(b)|0)!=0)break;else break r}}while(0);if(!(a[u>>2]&128)){P=46;break i}e=a[T>>2]|0;if(d|(e|0)==0)break;if(h)b=1;else{b=(a4(l)|0)!=0;e=a[T>>2]|0}if((e|0)==95)if(b){P=46;break i}else break;else if(b^(a4(e)|0)!=0)break;else{P=46;break i}}}while(0);s=A+40|0;if(!(a[s>>2]|0))break e;else A=A+32|0}if((P|0)==46){P=0;a[n>>2]=a[s>>2];if(z)Y6(a[n+4>>2]|0,-1,R|0)|0;s=a[A+16>>2]|0;if(s|0?(x=a[s>>2]|0,(x|0)>-1):0){b=n+4|0;e=x;do{if((e|0)<(N|0))a[(a[b>>2]|0)+(e<<2)>>2]=v;s=s+4|0;e=a[s>>2]|0}while((e|0)>-1)}s=(a[n>>2]|0)!=(a[Y>>2]|0);if(s|D){c=s?c:1;r=s?r:v;s=n+4|0}else{s=n+4|0;c=a[s>>2]|0;r=0;do{a[i+(r<<2)>>2]=a[c+(r<<2)>>2];r=r+1|0}while((r|0)!=(N|0));c=1;r=v}Q=a[w>>2]|0;a[p+(Q<<3)>>2]=v;a[p+(Q<<3)+4>>2]=s;n=n+8|0}s=A+40|0;if(!(a[s>>2]|0))break;else A=A+32|0}}}while(0);a[n>>2]=0;n=a[T>>2]|0;if(!n)break;else l=n}else{if(y)break;l=a[T>>2]|0;if(!((n|0)!=(I|0)&(l|0)!=0))break}Q=v+t|0;n=G3(T,E,4)|0;if((n|0)<1)if((n|0)<0){r=1;break A}else t=1;else t=n;G=E+t|0;if((c|0)!=0&(a[M>>2]|0)!=0){if(!(a[I>>2]|0))n=C;else{w=a[L>>2]|0;o=a[w>>2]|0;h=(o|0)>-1;u=I;n=C;do{b=u+4|0;e:do{if(h){s=0;e=o;do{A=a[w+((s|1)<<2)>>2]|0;if((e|0)>=(N|0))break e;c=a[b>>2]|0;if((a[c+(A<<2)>>2]|0)==(a[i+(A<<2)>>2]|0)?(a[c+(e<<2)>>2]|0)<(a[i+(e<<2)>>2]|0):0)break e;s=s+2|0;e=a[w+(s<<2)>>2]|0}while((e|0)>-1);s=b;P=75}else{s=b;c=a[b>>2]|0;P=75}}while(0);if((P|0)==75){P=0;a[n>>2]=a[u>>2];E=n+4|0;Z=a[E>>2]|0;a[E>>2]=c;a[s>>2]=Z;n=n+8|0}u=u+8|0}while((a[u>>2]|0)!=0)}a[n>>2]=0;Z=I;c=0}else{Z=C;C=I}s=a[C>>2]|0;if(!s){s=m;n=Z}else{d=(Q|0)!=0;B=(l|0)==95;g=(Q|0)==0;E=V&(l|0)==10;v=(Q|0)<1&W;h=C;A=m;n=Z;while(1){e=s+8|0;if(a[e>>2]|0){o=h+4|0;w=A;u=e;while(1){e:do{if((a[s>>2]|0)>>>0<=l>>>0?(a[s+4>>2]|0)>>>0>=l>>>0:0){b=s+20|0;A=a[b>>2]|0;do{if(A|0){if(!((A&1|0)==0|v|E)){A=w;break e}if(A&2|0?(m=a[T>>2]|0,!((m|X|0)==0|V&(m|0)==10)):0){A=w;break e}do{if(A&16|0){if(B){A=w;break e}if(a4(l)|0){A=w;break e}A=a[T>>2]|0;if((A|0)==95)break;if(!(a4(A)|0)){A=w;break e}}}while(0);A=a[b>>2]|0;if(A&32){if(B){A=a[T>>2]|0;if((A|0)==95){A=w;break e}}else{m=(a4(l)|0)==0;A=a[T>>2]|0;if(m|(A|0)==95){A=w;break e}}if(a4(A)|0){A=w;break e}A=a[b>>2]|0}e=a[T>>2]|0;do{if((e|0)!=0&(d&(A&64|0)!=0)){if(B)A=1;else{A=(a4(l)|0)!=0;e=a[T>>2]|0}if((e|0)==95)if(A){A=w;break e}else break;else if(A^(a4(e)|0)!=0)break;else{A=w;break e}}}while(0);do{if(a[b>>2]&128|0){A=a[T>>2]|0;if(g|(A|0)==0){A=w;break e}if(B)e=1;else{e=(a4(l)|0)!=0;A=a[T>>2]|0}if((A|0)==95)if(e)break;else{A=w;break e}else if(e^(a4(A)|0)!=0){A=w;break e}else break}}while(0);A=a[b>>2]|0;do{if(A&4){if(a[H>>2]&2|0)break;if(!(f4(l,a[s+24>>2]|0)|0)){A=w;break e}A=a[b>>2]|0}}while(0);do{if(A&4|0){if(!(a[H>>2]&2))break;m=u4(l)|0;A=s+24|0;if(f4(m,a[A>>2]|0)|0)break;m=X1(l)|0;if(!(f4(m,a[A>>2]|0)|0)){A=w;break e}}}while(0);if(!(a[b>>2]&8))break;if(r6(a[s+28>>2]|0,l,a[H>>2]&2)|0){A=w;break e}}}while(0);if(z){e=a[o>>2]|0;A=0;do{a[w+(A<<2)>>2]=a[e+(A<<2)>>2];A=A+1|0}while((A|0)!=(N|0))}A=a[s+16>>2]|0;do{if(A|0){e=a[A>>2]|0;if((e|0)<=-1)break;do{if((e|0)<(N|0))a[w+(e<<2)>>2]=Q;A=A+4|0;e=a[A>>2]|0}while((e|0)>-1)}}while(0);A=a[s+12>>2]|0;e=p+(A<<3)|0;if((a[e>>2]|0)>=(Q|0)){A=a[p+(A<<3)+4>>2]|0;e=a[A>>2]|0;if(!(f6(N,a[F>>2]|0,w,e)|0)){A=w;break}a[A>>2]=w;if((a[u>>2]|0)!=(a[Y>>2]|0)){A=e;break}if(z)r=0;else{c=1;A=e;r=Q;break}while(1){a[i+(r<<2)>>2]=a[w+(r<<2)>>2];r=r+1|0;if((r|0)==(N|0)){c=1;A=e;r=Q;break e}}}m=a[u>>2]|0;a[n>>2]=m;I=n+4|0;b=a[I>>2]|0;a[I>>2]=w;a[e>>2]=Q;a[p+(A<<3)+4>>2]=I;do{if((a[Y>>2]|0)==(m|0)){if((r|0)==-1)if(z)r=0;else{r=Q;c=1;break}else{if(!z)break;if((a[w>>2]|0)>(a[i>>2]|0))break;else r=0}do{a[i+(r<<2)>>2]=a[w+(r<<2)>>2];r=r+1|0}while((r|0)<(N|0));r=Q;c=1}}while(0);A=b;n=n+8|0}else A=w}while(0);u=s+40|0;if(!(a[u>>2]|0))break;else{s=s+32|0;w=A}}}h=h+8|0;s=a[h>>2]|0;if(!s){s=A;break}}}a[n>>2]=0;E=G;v=Q;m=s;I=Z}a[f>>2]=r;r=r>>>31}}while(0);L2(j)}k=S;return r|0}function i6(A,e,i,r,f,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;n=n|0;var l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0;if((i&8|0)==0&(n|0)>-1?(u=a[r+16>>2]|0,w=a[r+28>>2]|0,b=(A|0)!=0&(w|0)!=0,b):0){s=a[r+48>>2]|0;c=0;do{i=a[u+(c*12|0)>>2]|0;if((i|0)==(s|0))t=n;else t=a[f+(i<<2)>>2]|0;l=e+(c<<3)|0;a[l>>2]=t;i=a[u+(c*12|0)+4>>2]|0;if((i|0)==(s|0))i=n;else i=a[f+(i<<2)>>2]|0;r=e+(c<<3)+4|0;a[r>>2]=i;if((i|0)==-1|(t|0)==-1){a[r>>2]=-1;a[l>>2]=-1}c=c+1|0}while(c>>>0>>0&c>>>0>>0);if(b){i=0;do{t=e+(i<<3)+4|0;c=a[u+(i*12|0)+8>>2]|0;if(c|0?(k=a[c>>2]|0,(k|0)>-1):0){s=e+(i<<3)|0;l=0;f=k;r=a[s>>2]|0;do{if(!((r|0)>=(a[e+(f<<3)>>2]|0)?(a[t>>2]|0)<=(a[e+(f<<3)+4>>2]|0):0)){a[t>>2]=-1;a[s>>2]=-1;r=-1}l=l+1|0;f=a[c+(l<<2)>>2]|0}while((f|0)>-1)}i=i+1|0}while(i>>>0>>0&i>>>0>>0)}else i=0}else i=0;if(i>>>0>>0)Y6(e+(i<<3)|0,-1,A-i<<3|0)|0;return}function r6(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;r=a[A>>2]|0;A:do{if(!r)i=0;else{f=(i|0)==0;i=r;while(1){if(f){if(f4(e,i)|0){i=1;break A}}else{r=X1(e)|0;if(f4(r,a[A>>2]|0)|0){i=1;break A}r=u4(e)|0;if(f4(r,a[A>>2]|0)|0){i=1;break A}}A=A+4|0;i=a[A>>2]|0;if(!i){i=0;break}}}}while(0);return i|0}function f6(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0,l=0;A:do{if((A|0)>0){f=0;while(1){l=a[i+(f<<2)>>2]|0;n=a[r+(f<<2)>>2]|0;if(!(a[e+(f<<2)>>2]|0)){if((l|0)<(n|0)){f=1;break A}if((l|0)>(n|0)){f=0;break A}}else{if((l|0)>(n|0)){f=1;break A}if((l|0)<(n|0)){f=0;break A}}f=f+1|0;if((f|0)>=(A|0)){f=0;break}}}else f=0}while(0);return f|0}function a6(A,e,i,f){A=A|0;e=e|0;i=i|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0;s=U(i,e)|0;i=(e|0)==0?0:i;if((a[f+76>>2]|0)>-1)c=d4(f)|0;else c=0;n=f+74|0;l=r[n>>0]|0;r[n>>0]=l+255|l;n=f+4|0;l=a[n>>2]|0;u=(a[f+8>>2]|0)-l|0;t=u>>>0>>0?u:s;if((u|0)>0){W6(A|0,l|0,t|0)|0;a[n>>2]=l+t;n=s-t|0;A=A+t|0}else n=s;A:do{if(!n)b=13;else{t=f+32|0;while(1){if(M1(f)|0)break;l=y5[a[t>>2]&63](f,A,n)|0;if((l+1|0)>>>0<2)break;n=n-l|0;if(!n){b=13;break A}else A=A+l|0}if(c|0)B4(f);i=((s-n|0)>>>0)/(e>>>0)|0}}while(0);if((b|0)==13)if(c)B4(f);return i|0}function n6(A){A=A|0;var e=0;if((a[A+76>>2]|0)>-1){e=(d4(A)|0)==0;A=l6(A)|0}else A=l6(A)|0;return A|0}function l6(A){A=A|0;var e=0;if(!(a[A>>2]&128))e=1;else e=(a[A+20>>2]|0)>>>0>(a[A+28>>2]|0)>>>0?2:1;e=y5[a[A+40>>2]&63](A,0,e)|0;if((e|0)>=0)e=e-(a[A+8>>2]|0)+(a[A+4>>2]|0)+(a[A+20>>2]|0)-(a[A+28>>2]|0)|0;return e|0}function t6(A){A=A|0;(a[A+76>>2]|0)>-1?d4(A)|0:0;return a[A+60>>2]|0}function c6(A){A=A|0;var e=0,i=0,f=0,n=0;f=a[15679]|0;if((a[f+76>>2]|0)>-1)n=d4(f)|0;else n=0;do{if((Q3(A,f)|0)<0)A=-1;else{if((r[f+75>>0]|0)!=10?(e=f+20|0,i=a[e>>2]|0,i>>>0<(a[f+16>>2]|0)>>>0):0){a[e>>2]=i+1;r[i>>0]=10;A=0;break}A=(y3(f,10)|0)>>31}}while(0);if(n|0)B4(f);return A|0}function s6(){var A=0,e=0,i=0,f=0,n=0,l=0,t=0,c=0,s=0;s=k;k=k+48|0;t=s+24|0;l=s+16|0;n=s;e=s+28|0;A=e;i=153686;f=A+20|0;do{r[A>>0]=r[i>>0]|0;A=A+1|0;i=i+1|0}while((A|0)<(f|0));i=e+13|0;A=0;while(1){a3(i)|0;a[n>>2]=e;a[n+4>>2]=32962;a[n+8>>2]=384;f=p2(VA(5,n|0)|0)|0;if((f|0)>-1){c=4;break}if((A|0)<99)A=A+1|0;else{A=0;break}}if((c|0)==4){a[l>>2]=e;GA(10,l|0)|0;A=I3(f,153706)|0;if(!A){a[t>>2]=f;pA(6,t|0)|0;A=0}}k=s;return A|0}function b6(A){A=A|0;var e=0,i=0,r=0;if((a[A+76>>2]|0)>=0?(d4(A)|0)!=0:0){e=A+4|0;i=a[e>>2]|0;if(i>>>0<(a[A+8>>2]|0)>>>0){a[e>>2]=i+1;e=n[i>>0]|0}else e=D1(A)|0}else r=3;do{if((r|0)==3){e=A+4|0;i=a[e>>2]|0;if(i>>>0<(a[A+8>>2]|0)>>>0){a[e>>2]=i+1;e=n[i>>0]|0;break}else{e=D1(A)|0;break}}}while(0);return e|0}function u6(A,e){A=A|0;e=e|0;var i=0,f=0,n=0,l=0,t=0,c=0,s=0;if((a[e+76>>2]|0)>=0?(d4(e)|0)!=0:0){f=A&255;i=A&255;if((i|0)!=(r[e+75>>0]|0)?(t=e+20|0,c=a[t>>2]|0,c>>>0<(a[e+16>>2]|0)>>>0):0){a[t>>2]=c+1;r[c>>0]=f}else i=y3(e,A)|0;B4(e)}else s=3;do{if((s|0)==3){f=A&255;i=A&255;if((i|0)!=(r[e+75>>0]|0)?(n=e+20|0,l=a[n>>2]|0,l>>>0<(a[e+16>>2]|0)>>>0):0){a[n>>2]=l+1;r[l>>0]=f;break}i=y3(e,A)|0}}while(0);return i|0}function w6(A){A=A|0;return n6(A)|0}function k6(){}function o6(A,e){A=A|0;e=e|0;var i=0,r=0,f=0,a=0;a=A&65535;f=e&65535;i=U(f,a)|0;r=A>>>16;A=(i>>>16)+(U(f,r)|0)|0;f=e>>>16;e=U(f,a)|0;return(L=(A>>>16)+(U(f,r)|0)+(((A&65535)+e|0)>>>16)|0,A+e<<16|i&65535|0)|0}function h6(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,a=0;f=A;a=i;i=o6(f,a)|0;A=L;return(L=(U(e,a)|0)+(U(r,f)|0)+A|A&0,i|0|0)|0}function d6(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;i=A+i>>>0;return(L=e+r+(i>>>0>>0|0)>>>0,i|0)|0}function B6(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;r=e-r-(i>>>0>A>>>0|0)>>>0;return(L=r,A-i>>>0|0)|0}function g6(A){A=A|0;var e=0;e=r[h+(A&255)>>0]|0;if((e|0)<8)return e|0;e=r[h+(A>>8&255)>>0]|0;if((e|0)<8)return e+8|0;e=r[h+(A>>16&255)>>0]|0;if((e|0)<8)return e+16|0;return(r[h+(A>>>24)>>0]|0)+24|0}function v6(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;var n=0,l=0,t=0,c=0,s=0,b=0,u=0,w=0,k=0,o=0;b=A;c=e;s=c;l=i;w=r;t=w;if(!s){n=(f|0)!=0;if(!t){if(n){a[f>>2]=(b>>>0)%(l>>>0);a[f+4>>2]=0}w=0;f=(b>>>0)/(l>>>0)>>>0;return(L=w,f)|0}else{if(!n){w=0;f=0;return(L=w,f)|0}a[f>>2]=A|0;a[f+4>>2]=e&0;w=0;f=0;return(L=w,f)|0}}n=(t|0)==0;do{if(l){if(!n){n=(j(t|0)|0)-(j(s|0)|0)|0;if(n>>>0<=31){u=n+1|0;t=31-n|0;e=n-31>>31;l=u;A=b>>>(u>>>0)&e|s<>>(u>>>0)&e;n=0;t=b<>2]=A|0;a[f+4>>2]=c|e&0;w=0;f=0;return(L=w,f)|0}n=l-1|0;if(n&l|0){t=(j(l|0)|0)+33-(j(s|0)|0)|0;o=64-t|0;u=32-t|0;c=u>>31;k=t-32|0;e=k>>31;l=t;A=u-1>>31&s>>>(k>>>0)|(s<>>(t>>>0))&e;e=e&s>>>(t>>>0);n=b<>>(k>>>0))&c|b<>31;break}if(f|0){a[f>>2]=n&b;a[f+4>>2]=0}if((l|0)==1){k=c|e&0;o=A|0|0;return(L=k,o)|0}else{o=g6(l|0)|0;k=s>>>(o>>>0)|0;o=s<<32-o|b>>>(o>>>0)|0;return(L=k,o)|0}}else{if(n){if(f|0){a[f>>2]=(s>>>0)%(l>>>0);a[f+4>>2]=0}k=0;o=(s>>>0)/(l>>>0)>>>0;return(L=k,o)|0}if(!b){if(f|0){a[f>>2]=0;a[f+4>>2]=(s>>>0)%(t>>>0)}k=0;o=(s>>>0)/(t>>>0)>>>0;return(L=k,o)|0}n=t-1|0;if(!(n&t)){if(f|0){a[f>>2]=A|0;a[f+4>>2]=n&s|e&0}k=0;o=s>>>((g6(t|0)|0)>>>0);return(L=k,o)|0}n=(j(t|0)|0)-(j(s|0)|0)|0;if(n>>>0<=30){e=n+1|0;t=31-n|0;l=e;A=s<>>(e>>>0);e=s>>>(e>>>0);n=0;t=b<>2]=A|0;a[f+4>>2]=c|e&0;k=0;o=0;return(L=k,o)|0}}while(0);if(!l){s=t;c=0;t=0}else{u=i|0|0;b=w|r&0;s=d6(u|0,b|0,-1,-1)|0;i=L;c=t;t=0;do{r=c;c=n>>>31|c<<1;n=t|n<<1;r=A<<1|r>>>31|0;w=A>>>31|e<<1|0;B6(s|0,i|0,r|0,w|0)|0;o=L;k=o>>31|((o|0)<0?-1:0)<<1;t=k&1;A=B6(r|0,w|0,k&u|0,(((o|0)<0?-1:0)>>31|((o|0)<0?-1:0)<<1)&b|0)|0;e=L;l=l-1|0}while((l|0)!=0);s=c;c=0}l=0;if(f|0){a[f>>2]=A;a[f+4>>2]=e}k=(n|0)>>>31|(s|l)<<1|(l<<1|n>>>31)&0|c;o=(n<<1|0>>>31)&-2|t;return(L=k,o)|0}function E6(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;return v6(A,e,i,r,0)|0}function C6(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0,n=0;n=k;k=k+16|0;f=n|0;v6(A,e,i,r,f)|0;k=n;return(L=a[f+4>>2]|0,a[f>>2]|0)|0}function I6(A,e,i){A=A|0;e=e|0;i=i|0;if((i|0)<32){L=e>>i;return A>>>i|(e&(1<>i-32|0}function Z6(A,e,i){A=A|0;e=e|0;i=i|0;if((i|0)<32){L=e>>>i;return A>>>i|(e&(1<>>i-32|0}function G6(A,e,i){A=A|0;e=e|0;i=i|0;if((i|0)<32){L=e<>>32-i;return A<>8&255|0}function Q6(A){A=A|0;return(A&255)<<24|(A>>8&255)<<16|(A>>16&255)<<8|A>>>24|0}function L6(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;var f=0;g=g+1|0;a[A>>2]=g;while((f|0)<(r|0)){if(!(a[i+(f<<3)>>2]|0)){a[i+(f<<3)>>2]=g;a[i+((f<<3)+4)>>2]=e;a[i+((f<<3)+8)>>2]=0;L=r;return i|0}f=f+1|0}r=r*2|0;i=W2(i|0,8*(r+1|0)|0)|0;i=L6(A|0,e|0,i|0,r|0)|0;L=r;return i|0}function y6(A,e,i){A=A|0;e=e|0;i=i|0;var r=0,f=0;while((f|0)<(i|0)){r=a[e+(f<<3)>>2]|0;if(!r)break;if((r|0)==(A|0))return a[e+((f<<3)+4)>>2]|0;f=f+1|0}return 0}function W6(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0;if((i|0)>=8192)return jA(A|0,e|0,i|0)|0;l=A|0;n=A+i|0;if((A&3)==(e&3)){while(A&3){if(!i)return l|0;r[A>>0]=r[e>>0]|0;A=A+1|0;e=e+1|0;i=i-1|0}i=n&-4|0;f=i-64|0;while((A|0)<=(f|0)){a[A>>2]=a[e>>2];a[A+4>>2]=a[e+4>>2];a[A+8>>2]=a[e+8>>2];a[A+12>>2]=a[e+12>>2];a[A+16>>2]=a[e+16>>2];a[A+20>>2]=a[e+20>>2];a[A+24>>2]=a[e+24>>2];a[A+28>>2]=a[e+28>>2];a[A+32>>2]=a[e+32>>2];a[A+36>>2]=a[e+36>>2];a[A+40>>2]=a[e+40>>2];a[A+44>>2]=a[e+44>>2];a[A+48>>2]=a[e+48>>2];a[A+52>>2]=a[e+52>>2];a[A+56>>2]=a[e+56>>2];a[A+60>>2]=a[e+60>>2];A=A+64|0;e=e+64|0}while((A|0)<(i|0)){a[A>>2]=a[e>>2];A=A+4|0;e=e+4|0}}else{i=n-4|0;while((A|0)<(i|0)){r[A>>0]=r[e>>0]|0;r[A+1>>0]=r[e+1>>0]|0;r[A+2>>0]=r[e+2>>0]|0;r[A+3>>0]=r[e+3>>0]|0;A=A+4|0;e=e+4|0}}while((A|0)<(n|0)){r[A>>0]=r[e>>0]|0;A=A+1|0;e=e+1|0}return l|0}function z6(A,e,i){A=A|0;e=e|0;i=i|0;var f=0;if((e|0)<(A|0)&(A|0)<(e+i|0)){f=A;e=e+i|0;A=A+i|0;while((i|0)>0){A=A-1|0;e=e-1|0;i=i-1|0;r[A>>0]=r[e>>0]|0}A=f}else W6(A,e,i)|0;return A|0}function Y6(A,e,i){A=A|0;e=e|0;i=i|0;var f=0,n=0,l=0,t=0;l=A+i|0;e=e&255;if((i|0)>=67){while(A&3){r[A>>0]=e;A=A+1|0}f=l&-4|0;n=f-64|0;t=e|e<<8|e<<16|e<<24;while((A|0)<=(n|0)){a[A>>2]=t;a[A+4>>2]=t;a[A+8>>2]=t;a[A+12>>2]=t;a[A+16>>2]=t;a[A+20>>2]=t;a[A+24>>2]=t;a[A+28>>2]=t;a[A+32>>2]=t;a[A+36>>2]=t;a[A+40>>2]=t;a[A+44>>2]=t;a[A+48>>2]=t;a[A+52>>2]=t;a[A+56>>2]=t;a[A+60>>2]=t;A=A+64|0}while((A|0)<(f|0)){a[A>>2]=t;A=A+4|0}}while((A|0)<(l|0)){r[A>>0]=e;A=A+1|0}return l-i|0}function D6(A){A=A|0;var e=0,i=0;i=A+15&-16|0;e=a[b>>2]|0;A=e+i|0;if((i|0)>0&(A|0)<(e|0)|(A|0)<0){_()|0;ZA(12);return-1}a[b>>2]=A;if((A|0)>(K()|0)?(O()|0)==0:0){a[b>>2]=e;ZA(12);return-1}return e|0}function M6(A){A=A|0;return+C5[A&1]()}function F6(A,e,i,r){A=A|0;e=+e;i=+i;r=+r;return+I5[A&7](+e,+i,+r)}function V6(A,e){A=A|0;e=e|0;return+Z5[A&1](e|0)}function J6(A){A=A|0;return G5[A&3]()|0}function p6(A,e){A=A|0;e=e|0;return m5[A&63](e|0)|0}function N6(A,e,i){A=A|0;e=e|0;i=i|0;return Q5[A&127](e|0,i|0)|0}function R6(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=+r;f=+f;return L5[A&3](e|0,i|0,+r,+f)|0}function X6(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;return y5[A&63](e|0,i|0,r|0)|0}function H6(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;return W5[A&127](e|0,i|0,r|0,f|0)|0}function U6(A,e,i,r,f,a){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;return z5[A&127](e|0,i|0,r|0,f|0,a|0)|0}function x6(A,e,i,r,f,a,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;n=n|0;return Y5[A&1](e|0,i|0,r|0,f|0,a|0,n|0)|0}function T6(A,e,i,r,f,a,n,l,t,c,s){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;n=n|0;l=l|0;t=t|0;c=c|0;s=s|0;return D5[A&3](e|0,i|0,r|0,f|0,a|0,n|0,l|0,t|0,c|0,s|0)|0}function j6(A){A=A|0;M5[A&15]()}function P6(A,e){A=A|0;e=e|0;F5[A&127](e|0)}function S6(A,e,i){A=A|0;e=e|0;i=i|0;V5[A&63](e|0,i|0)}function O6(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;J5[A&127](e|0,i|0,r|0)}function K6(A,e,i,r,f,a,n){A=A|0;e=e|0;i=i|0;r=r|0;f=+f;a=+a;n=n|0;p5[A&15](e|0,i|0,r|0,+f,+a,n|0)}function _6(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;N5[A&31](e|0,i|0,r|0,f|0)}function q6(A,e,i,r,f,a){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;R5[A&15](e|0,i|0,r|0,f|0,a|0)}function $6(A,e,i,r,f,a,n){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;n=n|0;X5[A&15](e|0,i|0,r|0,f|0,a|0,n|0)}function A5(A,e,i,r,f,a,n,l,t,c){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;n=n|0;l=l|0;t=t|0;c=c|0;H5[A&0](e|0,i|0,r|0,f|0,a|0,n|0,l|0,t|0,c|0)}function e5(){P(0);return 0.0}function i5(A,e,i){A=+A;e=+e;i=+i;P(1);return 0.0}function r5(A){A=A|0;P(2);return 0.0}function f5(){P(3);return 0}function a5(A){A=A|0;P(4);return 0}function n5(A,e){A=A|0;e=e|0;P(5);return 0}function l5(A,e,i,r){A=A|0;e=e|0;i=+i;r=+r;P(6);return 0}function t5(A,e,i){A=A|0;e=e|0;i=i|0;P(7);return 0}function c5(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;P(8);return 0}function s5(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;P(9);return 0}function b5(A,e,i,r,f,a){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;P(10);return 0}function u5(A,e,i,r,f,a,n,l,t,c){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;n=n|0;l=l|0;t=t|0;c=c|0;P(11);return 0}function w5(){P(12)}function k5(A){A=A|0;P(13)}function o5(A,e){A=A|0;e=e|0;P(14)}function h5(A,e,i){A=A|0;e=e|0;i=i|0;P(15)}function d5(A,e,i,r,f,a){A=A|0;e=e|0;i=i|0;r=+r;f=+f;a=a|0;P(16)}function B5(A,e,i,r){A=A|0;e=e|0;i=i|0;r=r|0;P(17)}function g5(A,e,i,r,f){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;P(18)}function v5(A,e,i,r,f,a){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;P(19)}function E5(A,e,i,r,f,a,n,l,t){A=A|0;e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;n=n|0;l=l|0;t=t|0;P(20)}var C5=[e5,cR];var I5=[i5,EM,vM,CM,IM,i5,i5,i5];var Z5=[r5,hR];var G5=[f5,Rj,tV,$V];var m5=[a5,hy,JL,mH,QH,Kh,$h,Ge,me,dr,Br,gr,vr,Er,Cr,Ir,Zr,F2,OI,hv,pD,XD,XH,$F,gh,cd,Bh,fV,cV,vh,be,qF,he,de,uc,Q2,a5,a5,a5,a5,a5,a5,a5,a5,a5,a5,a5,a5,a5,a5,a5,a5,a5,a5,a5,a5,a5,a5,a5,a5,a5,a5,a5,a5];var Q5=[n5,mh,Oh,Ad,tN,cN,AN,Kp,Yp,Pl,Sl,Ol,Kl,_l,ql,At,et,it,rt,ft,at,nt,lt,tt,ct,st,bt,ut,wt,kt,ot,ht,dt,Bt,gt,vt,Et,Ct,It,Zt,Eq,Cq,Zq,Pq,Sq,Oq,Kq,_q,qq,$q,A$,T$,j$,S$,t$,c$,b$,kv,QL,oy,xy,vW,pW,OY,PY,ND,HD,px,ST,Kj,BP,vP,CP,IP,GP,ZP,VP,SS,$S,eO,n_,du,Wg,yg,Lg,EE,sd,eV,ME,KE,TE,jE,PC,Q3,u6,rR,dX,Ho,_a,Oo,_o,ue,A1,Zf,jl,tc,cc,W2,Eb,Cb,Ib,K8,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5];var L5=[l5,rK,tK,l5];var y5=[t5,CH,G_,Lk,Vk,Tk,Kk,Sh,qh,bJ,fX,Fa,Gq,O$,u$,V2,J2,X2,H2,W4,ao,pH,w_,fT,AO,ju,Su,_u,qk,gE,S4,NB,f3,aR,lJ,Gi,ac,Y$,I0,d0,Q0,N3,t5,t5,t5,t5,t5,t5,t5,t5,t5,t5,t5,t5,t5,t5,t5,t5,t5,t5,t5,t5,t5,t5];var W5=[c5,ZH,WP,m_,Wk,pk,Po,xB,So,wh,Lh,Wh,Xh,Rh,ed,ad,ld,eJ,nX,Ai,qe,Kr,Ja,nn,an,mb,Qb,Lb,dq,Bq,gq,vq,Iq,Qq,p$,N$,R$,X$,H$,U$,x$,P$,_$,e$,i$,r$,f$,a$,n$,l$,s$,k$,eo,Td,IE,lR,$c,is,cs,vs,ys,Fs,Ds,Vs,gb,L0,nb,M$,F$,Z0,G0,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5];var z5=[s5,Qh,Dp,eN,Lq,yq,Tq,jq,k0,q$,$$,o$,h$,Zb,Gb,W0,z0,Y0,D0,F0,V0,J0,p0,N0,X0,H0,U0,x0,T0,R0,d2,B2,t2,e2,j0,P0,S0,K0,O0,_0,q0,$0,A2,i2,r2,f2,a2,n2,l2,c2,s2,b2,u2,h2,k2,w2,o2,I2,g2,v2,E2,C2,Z2,G2,m2,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5,s5];var Y5=[b5,Jt];var D5=[u5,h0,m0,u5];var M5=[w5,tR,aV,nV,lV,bV,uV,wV,Xa,w5,w5,w5,w5,w5,w5,w5];var F5=[k5,$I,AZ,fZ,aZ,nZ,mZ,QZ,_Z,qZ,$Z,AG,eG,iG,rG,oG,hG,gG,vG,EG,CG,IG,ZG,GG,JG,pG,NG,XG,HG,UG,xG,TG,jG,PG,SG,am,nm,lm,cm,sm,bm,um,wm,km,om,hm,dm,gm,Ym,Dm,Mm,Fm,jm,Pm,Sm,Km,cQ,sQ,bQ,wQ,kQ,oQ,hQ,dQ,BQ,gQ,vQ,EQ,WQ,zQ,YQ,DQ,tL,rL,fH,HX,xx,dx,QT,VT,RU,HU,ZT,GT,pX,NX,xU,qU,Ax,bx,zh,up,Wp,kp,wp,qp,JJ,RJ,Gr,Wr,KQ,UD,Ex,Gx,Tx,L2,V_,go,ZE,dI,Ra,Bi,ge,iJ,ln,Vt,rc,fc,sc,k5,k5,k5,k5,k5,k5,k5,k5,k5];var V5=[o5,aG,sG,QG,YG,em,Gm,Xm,iQ,QQ,NQ,id,Mp,sN,iN,_p,Lp,yp,nN,lN,Lr,Yr,gJ,to,vE,sV,se,Jl,Ft,nc,lc,bc,wc,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5];var J5=[h5,lZ,tZ,bZ,KZ,fG,nG,cG,mG,LG,zG,KG,_G,Am,vm,Em,Zm,Vm,Jm,Rm,_m,qm,eQ,CQ,IQ,mQ,MQ,FQ,pQ,LY,yY,WY,IH,yk,Jk,oo,Yh,nd,Xd,TB,bE,aF,AJ,uJ,NJ,aX,tX,$e,_e,mr,Qr,yr,zr,Dr,Va,Zl,Il,Fo,ch,vd,Od,qd,rV,nR,aJ,ke,Be,Gl,Ql,Ll,Vl,pl,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5];var p5=[d5,pC,NC,RC,XC,HC,UC,xC,TC,d5,d5,d5,d5,d5,d5,d5];var N5=[B5,cZ,lG,yG,RG,qG,tm,Cm,pm,$m,uQ,ZQ,VQ,$Q,qQ,_Q,OQ,SQ,PQ,GZ,jQ,TQ,yh,zp,$p,mq,K$,w$,K4,we,oe,V$];var R5=[g5,dG,OG,im,Bm,Om,RD,CE,ve,g5,g5,g5,g5,g5,g5,g5];var X5=[v5,sZ,tG,WG,$G,Im,Nm,AQ,GQ,JQ,Ee,v5,v5,v5,v5,v5];var H5=[E5];return{___errno_location:N2,___muldi3:h6,___udivdi3:E6,___uremdi3:C6,_bitshift64Ashr:I6,_bitshift64Lshr:Z6,_bitshift64Shl:G6,_dtextract:Uk,_free:L2,_htons:V4,_i64Add:d6,_i64Subtract:B6,_llvm_bswap_i16:m6,_llvm_bswap_i32:Q6,_malloc:Q2,_memalign:D2,_memcpy:W6,_memmove:z6,_memset:Y6,_realloc:W2,_saveSetjmp:L6,_sbrk:D6,_testSetjmp:y6,_vizCreateFile:_I,_vizLastErrorMessage:KI,_vizRenderFromString:qI,dynCall_d:M6,dynCall_dddd:F6,dynCall_di:V6,dynCall_i:J6,dynCall_ii:p6,dynCall_iii:N6,dynCall_iiidd:R6,dynCall_iiii:X6,dynCall_iiiii:H6,dynCall_iiiiii:U6,dynCall_iiiiiii:x6,dynCall_iiiiiiiiiii:T6,dynCall_v:j6,dynCall_vi:P6,dynCall_vii:S6,dynCall_viii:O6,dynCall_viiiddi:K6,dynCall_viiii:_6,dynCall_viiiii:q6,dynCall_viiiiii:$6,dynCall_viiiiiiiii:A5,establishStackSpace:TI,getTempRet0:SI,runPostSets:k6,setTempRet0:PI,setThrew:jI,stackAlloc:HI,stackRestore:xI,stackSave:UI}}(A.asmGlobalArg,A.asmLibraryArg,Y),re=(A.___errno_location=ie.___errno_location,A.___muldi3=ie.___muldi3,A.___udivdi3=ie.___udivdi3,A.___uremdi3=ie.___uremdi3,A._bitshift64Ashr=ie._bitshift64Ashr,A._bitshift64Lshr=ie._bitshift64Lshr,A._bitshift64Shl=ie._bitshift64Shl,A._dtextract=ie._dtextract,A._free=ie._free),fe=(A._htons=ie._htons,A._i64Add=ie._i64Add,A._i64Subtract=ie._i64Subtract,A._llvm_bswap_i16=ie._llvm_bswap_i16,A._llvm_bswap_i32=ie._llvm_bswap_i32,A._malloc=ie._malloc),ae=A._memalign=ie._memalign,ne=(A._memcpy=ie._memcpy,A._memmove=ie._memmove,A._memset=ie._memset),le=(A._realloc=ie._realloc,A._saveSetjmp=ie._saveSetjmp,A._sbrk=ie._sbrk,A._testSetjmp=ie._testSetjmp,A._vizCreateFile=ie._vizCreateFile,A._vizLastErrorMessage=ie._vizLastErrorMessage,A._vizRenderFromString=ie._vizRenderFromString,A.establishStackSpace=ie.establishStackSpace,A.getTempRet0=ie.getTempRet0,A.runPostSets=ie.runPostSets,A.setTempRet0=ie.setTempRet0,A.setThrew=ie.setThrew,A.stackAlloc=ie.stackAlloc),te=A.stackRestore=ie.stackRestore,ce=A.stackSave=ie.stackSave;A.dynCall_d=ie.dynCall_d,A.dynCall_dddd=ie.dynCall_dddd,A.dynCall_di=ie.dynCall_di,A.dynCall_i=ie.dynCall_i,A.dynCall_ii=ie.dynCall_ii,A.dynCall_iii=ie.dynCall_iii,A.dynCall_iiidd=ie.dynCall_iiidd,A.dynCall_iiii=ie.dynCall_iiii,A.dynCall_iiiii=ie.dynCall_iiiii,A.dynCall_iiiiii=ie.dynCall_iiiiii,A.dynCall_iiiiiii=ie.dynCall_iiiiiii,A.dynCall_iiiiiiiiiii=ie.dynCall_iiiiiiiiiii,A.dynCall_v=ie.dynCall_v,A.dynCall_vi=ie.dynCall_vi,A.dynCall_vii=ie.dynCall_vii,A.dynCall_viii=ie.dynCall_viii,A.dynCall_viiiddi=ie.dynCall_viiiddi,A.dynCall_viiii=ie.dynCall_viiii,A.dynCall_viiiii=ie.dynCall_viiiii,A.dynCall_viiiiii=ie.dynCall_viiiiii,A.dynCall_viiiiiiiii=ie.dynCall_viiiiiiiii;if(A.asm=ie,A.ccall=function(e,i,r,f,a){var n=function(e){var i=A[\"_\"+e];return B(i,\"Cannot call unknown function \"+e+\", make sure it is exported\"),i}(e),l=[],t=0;if(f)for(var c=0;c0||(!function(){if(A.preRun)for(\"function\"==typeof A.preRun&&(A.preRun=[A.preRun]);A.preRun.length;)e=A.preRun.shift(),q.unshift(e);var e;_(q)}(),bA>0||A.calledRun||(A.setStatus?(A.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){A.setStatus(\"\")},1),i()},1)):i()))}function de(e){throw A.onAbort&&A.onAbort(e),void 0!==e?(A.print(e),A.printErr(e),e=JSON.stringify(e)):e=\"\",d=!0,1,\"abort(\"+e+\"). Build with -s ASSERTIONS=1 for more info.\"}if(A.then=function(e){if(A.calledRun)e(A);else{var i=A.onRuntimeInitialized;A.onRuntimeInitialized=function(){i&&i(),e(A)}}return A},oe.prototype=new Error,oe.prototype.constructor=oe,wA=function e(){A.calledRun||he(),A.calledRun||(wA=e)},A.run=he,A.exit=function(i,r){r&&A.noExitRuntime&&0===i||(A.noExitRuntime||(d=!0,i,H=ee,_(eA),!0,A.onExit&&A.onExit(i)),s&&e.exit(i),A.quit(i,new oe(i)))},A.abort=de,A.preInit)for(\"function\"==typeof A.preInit&&(A.preInit=[A.preInit]);A.preInit.length>0;)A.preInit.pop()();return A.noExitRuntime=!0,he(),A};function n(A){var e,i=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],r=void 0===i.format?\"svg\":i.format,f=void 0===i.engine?\"dot\":i.engine,a=i.scale,t=i.totalMemory,c=void 0===i.files?[]:i.files,s=void 0===i.images?[]:i.images;for(e=0;e\\\\n\\\\n\\'});return\"png-image-element\"==r?n.svgXmlToPngImageElement(l(A,\"svg\",f,t,c),a):l(A,r,f,t,c)}function l(A,e,i,r,f){var n,l=a({TOTAL_MEMORY:r});for(n=0;n1?window.devicePixelRatio:1);var r=new Image;try{if(\"object\"==typeof fabric&&fabric.loadSVGFromString)fabric.loadSVGFromString(A,function(A,f){if(0==A.length){if(void 0!==i)return void i(new Error(\"Error loading SVG with Fabric\"));throw new Error(\"Error loading SVG with Fabric\")}var a=document.createElement(\"canvas\");a.width=f.width,a.height=f.height;var n=new fabric.Canvas(a,{enableRetinaScaling:!1}),l=fabric.util.groupSVGElements(A,f);n.add(l).renderAll(),r.src=n.toDataURL({multiplier:e}),r.width=f.width,r.height=f.height,void 0!==i&&i(null,r)});else{var f=new Image;f.onload=function(){var A=document.createElement(\"canvas\");A.width=f.width*e,A.height=f.height*e,A.getContext(\"2d\").drawImage(f,0,0,A.width,A.height),r.src=A.toDataURL(\"image/png\"),r.width=f.width,r.height=f.height,void 0!==i&&i(null,r)},f.onerror=function(A){var e;if(e=\"error\"in A?A.error:new Error(\"Error loading SVG\"),void 0===i)throw e;i(e)},f.src=\"data:image/svg+xml;base64,\"+btoa(encodeURIComponent(A).replace(/%([0-9A-F]{2})/g,function(A,e){return String.fromCharCode(\"0x\"+e)}))}}catch(A){if(void 0===i)throw A;i(A)}if(void 0===i)return r},n.svgXmlToPngBase64=function(A,e,i){n.svgXmlToPngImageElement(A,e,function(A,e){A?i(A):i(null,e.src.slice(\"data:image/png;base64,\".length))})},A.exports?A.exports=n:f.Viz=n}(this)}).call(this,i(3),i(4).Buffer)},function(A,e){var i,r,f=A.exports={};function a(){throw new Error(\"setTimeout has not been defined\")}function n(){throw new Error(\"clearTimeout has not been defined\")}function l(A){if(i===setTimeout)return setTimeout(A,0);if((i===a||!i)&&setTimeout)return i=setTimeout,setTimeout(A,0);try{return i(A,0)}catch(e){try{return i.call(null,A,0)}catch(e){return i.call(this,A,0)}}}!function(){try{i=\"function\"==typeof setTimeout?setTimeout:a}catch(A){i=a}try{r=\"function\"==typeof clearTimeout?clearTimeout:n}catch(A){r=n}}();var t,c=[],s=!1,b=-1;function u(){s&&t&&(s=!1,t.length?c=t.concat(c):b=-1,c.length&&w())}function w(){if(!s){var A=l(u);s=!0;for(var e=c.length;e;){for(t=c,c=[];++b1)for(var i=1;i \\n * @license MIT\\n */\\nvar r=i(6),f=i(7),a=i(8);function n(){return t.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function l(A,e){if(n()=n())throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+n().toString(16)+\" bytes\");return 0|A}function k(A,e){if(t.isBuffer(A))return A.length;if(\"undefined\"!=typeof ArrayBuffer&&\"function\"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(A)||A instanceof ArrayBuffer))return A.byteLength;\"string\"!=typeof A&&(A=\"\"+A);var i=A.length;if(0===i)return 0;for(var r=!1;;)switch(e){case\"ascii\":case\"latin1\":case\"binary\":return i;case\"utf8\":case\"utf-8\":case void 0:return R(A).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*i;case\"hex\":return i>>>1;case\"base64\":return X(A).length;default:if(r)return R(A).length;e=(\"\"+e).toLowerCase(),r=!0}}function o(A,e,i){var r=A[e];A[e]=A[i],A[i]=r}function h(A,e,i,r,f){if(0===A.length)return-1;if(\"string\"==typeof i?(r=i,i=0):i>2147483647?i=2147483647:i<-2147483648&&(i=-2147483648),i=+i,isNaN(i)&&(i=f?0:A.length-1),i<0&&(i=A.length+i),i>=A.length){if(f)return-1;i=A.length-1}else if(i<0){if(!f)return-1;i=0}if(\"string\"==typeof e&&(e=t.from(e,r)),t.isBuffer(e))return 0===e.length?-1:d(A,e,i,r,f);if(\"number\"==typeof e)return e&=255,t.TYPED_ARRAY_SUPPORT&&\"function\"==typeof Uint8Array.prototype.indexOf?f?Uint8Array.prototype.indexOf.call(A,e,i):Uint8Array.prototype.lastIndexOf.call(A,e,i):d(A,[e],i,r,f);throw new TypeError(\"val must be string, number or Buffer\")}function d(A,e,i,r,f){var a,n=1,l=A.length,t=e.length;if(void 0!==r&&(\"ucs2\"===(r=String(r).toLowerCase())||\"ucs-2\"===r||\"utf16le\"===r||\"utf-16le\"===r)){if(A.length<2||e.length<2)return-1;n=2,l/=2,t/=2,i/=2}function c(A,e){return 1===n?A[e]:A.readUInt16BE(e*n)}if(f){var s=-1;for(a=i;al&&(i=l-t),a=i;a>=0;a--){for(var b=!0,u=0;uf&&(r=f):r=f;var a=e.length;if(a%2!=0)throw new TypeError(\"Invalid hex string\");r>a/2&&(r=a/2);for(var n=0;n>8,f=i%256,a.push(f),a.push(r);return a}(e,A.length-i),A,i,r)}function Z(A,e,i){return 0===e&&i===A.length?r.fromByteArray(A):r.fromByteArray(A.slice(e,i))}function G(A,e,i){i=Math.min(A.length,i);for(var r=[],f=e;f239?4:c>223?3:c>191?2:1;if(f+b<=i)switch(b){case 1:c<128&&(s=c);break;case 2:128==(192&(a=A[f+1]))&&(t=(31&c)<<6|63&a)>127&&(s=t);break;case 3:a=A[f+1],n=A[f+2],128==(192&a)&&128==(192&n)&&(t=(15&c)<<12|(63&a)<<6|63&n)>2047&&(t<55296||t>57343)&&(s=t);break;case 4:a=A[f+1],n=A[f+2],l=A[f+3],128==(192&a)&&128==(192&n)&&128==(192&l)&&(t=(15&c)<<18|(63&a)<<12|(63&n)<<6|63&l)>65535&&t<1114112&&(s=t)}null===s?(s=65533,b=1):s>65535&&(s-=65536,r.push(s>>>10&1023|55296),s=56320|1023&s),r.push(s),f+=b}return function(A){var e=A.length;if(e<=m)return String.fromCharCode.apply(String,A);var i=\"\",r=0;for(;rthis.length)return\"\";if((void 0===i||i>this.length)&&(i=this.length),i<=0)return\"\";if((i>>>=0)<=(e>>>=0))return\"\";for(A||(A=\"utf8\");;)switch(A){case\"hex\":return y(this,e,i);case\"utf8\":case\"utf-8\":return G(this,e,i);case\"ascii\":return Q(this,e,i);case\"latin1\":case\"binary\":return L(this,e,i);case\"base64\":return Z(this,e,i);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return W(this,e,i);default:if(r)throw new TypeError(\"Unknown encoding: \"+A);A=(A+\"\").toLowerCase(),r=!0}}.apply(this,arguments)},t.prototype.equals=function(A){if(!t.isBuffer(A))throw new TypeError(\"Argument must be a Buffer\");return this===A||0===t.compare(this,A)},t.prototype.inspect=function(){var A=\"\",i=e.INSPECT_MAX_BYTES;return this.length>0&&(A=this.toString(\"hex\",0,i).match(/.{2}/g).join(\" \"),this.length>i&&(A+=\" ... \")),\"\"},t.prototype.compare=function(A,e,i,r,f){if(!t.isBuffer(A))throw new TypeError(\"Argument must be a Buffer\");if(void 0===e&&(e=0),void 0===i&&(i=A?A.length:0),void 0===r&&(r=0),void 0===f&&(f=this.length),e<0||i>A.length||r<0||f>this.length)throw new RangeError(\"out of range index\");if(r>=f&&e>=i)return 0;if(r>=f)return-1;if(e>=i)return 1;if(this===A)return 0;for(var a=(f>>>=0)-(r>>>=0),n=(i>>>=0)-(e>>>=0),l=Math.min(a,n),c=this.slice(r,f),s=A.slice(e,i),b=0;bf)&&(i=f),A.length>0&&(i<0||e<0)||e>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");r||(r=\"utf8\");for(var a=!1;;)switch(r){case\"hex\":return B(this,A,e,i);case\"utf8\":case\"utf-8\":return g(this,A,e,i);case\"ascii\":return v(this,A,e,i);case\"latin1\":case\"binary\":return E(this,A,e,i);case\"base64\":return C(this,A,e,i);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return I(this,A,e,i);default:if(a)throw new TypeError(\"Unknown encoding: \"+r);r=(\"\"+r).toLowerCase(),a=!0}},t.prototype.toJSON=function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};var m=4096;function Q(A,e,i){var r=\"\";i=Math.min(A.length,i);for(var f=e;fr)&&(i=r);for(var f=\"\",a=e;ai)throw new RangeError(\"Trying to access beyond buffer length\")}function Y(A,e,i,r,f,a){if(!t.isBuffer(A))throw new TypeError(\\'\"buffer\" argument must be a Buffer instance\\');if(e>f||eA.length)throw new RangeError(\"Index out of range\")}function D(A,e,i,r){e<0&&(e=65535+e+1);for(var f=0,a=Math.min(A.length-i,2);f>>8*(r?f:1-f)}function M(A,e,i,r){e<0&&(e=4294967295+e+1);for(var f=0,a=Math.min(A.length-i,4);f>>8*(r?f:3-f)&255}function F(A,e,i,r,f,a){if(i+r>A.length)throw new RangeError(\"Index out of range\");if(i<0)throw new RangeError(\"Index out of range\")}function V(A,e,i,r,a){return a||F(A,0,i,4),f.write(A,e,i,r,23,4),i+4}function J(A,e,i,r,a){return a||F(A,0,i,8),f.write(A,e,i,r,52,8),i+8}t.prototype.slice=function(A,e){var i,r=this.length;if((A=~~A)<0?(A+=r)<0&&(A=0):A>r&&(A=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e0&&(f*=256);)r+=this[A+--e]*f;return r},t.prototype.readUInt8=function(A,e){return e||z(A,1,this.length),this[A]},t.prototype.readUInt16LE=function(A,e){return e||z(A,2,this.length),this[A]|this[A+1]<<8},t.prototype.readUInt16BE=function(A,e){return e||z(A,2,this.length),this[A]<<8|this[A+1]},t.prototype.readUInt32LE=function(A,e){return e||z(A,4,this.length),(this[A]|this[A+1]<<8|this[A+2]<<16)+16777216*this[A+3]},t.prototype.readUInt32BE=function(A,e){return e||z(A,4,this.length),16777216*this[A]+(this[A+1]<<16|this[A+2]<<8|this[A+3])},t.prototype.readIntLE=function(A,e,i){A|=0,e|=0,i||z(A,e,this.length);for(var r=this[A],f=1,a=0;++a=(f*=128)&&(r-=Math.pow(2,8*e)),r},t.prototype.readIntBE=function(A,e,i){A|=0,e|=0,i||z(A,e,this.length);for(var r=e,f=1,a=this[A+--r];r>0&&(f*=256);)a+=this[A+--r]*f;return a>=(f*=128)&&(a-=Math.pow(2,8*e)),a},t.prototype.readInt8=function(A,e){return e||z(A,1,this.length),128&this[A]?-1*(255-this[A]+1):this[A]},t.prototype.readInt16LE=function(A,e){e||z(A,2,this.length);var i=this[A]|this[A+1]<<8;return 32768&i?4294901760|i:i},t.prototype.readInt16BE=function(A,e){e||z(A,2,this.length);var i=this[A+1]|this[A]<<8;return 32768&i?4294901760|i:i},t.prototype.readInt32LE=function(A,e){return e||z(A,4,this.length),this[A]|this[A+1]<<8|this[A+2]<<16|this[A+3]<<24},t.prototype.readInt32BE=function(A,e){return e||z(A,4,this.length),this[A]<<24|this[A+1]<<16|this[A+2]<<8|this[A+3]},t.prototype.readFloatLE=function(A,e){return e||z(A,4,this.length),f.read(this,A,!0,23,4)},t.prototype.readFloatBE=function(A,e){return e||z(A,4,this.length),f.read(this,A,!1,23,4)},t.prototype.readDoubleLE=function(A,e){return e||z(A,8,this.length),f.read(this,A,!0,52,8)},t.prototype.readDoubleBE=function(A,e){return e||z(A,8,this.length),f.read(this,A,!1,52,8)},t.prototype.writeUIntLE=function(A,e,i,r){(A=+A,e|=0,i|=0,r)||Y(this,A,e,i,Math.pow(2,8*i)-1,0);var f=1,a=0;for(this[e]=255&A;++a=0&&(a*=256);)this[e+f]=A/a&255;return e+i},t.prototype.writeUInt8=function(A,e,i){return A=+A,e|=0,i||Y(this,A,e,1,255,0),t.TYPED_ARRAY_SUPPORT||(A=Math.floor(A)),this[e]=255&A,e+1},t.prototype.writeUInt16LE=function(A,e,i){return A=+A,e|=0,i||Y(this,A,e,2,65535,0),t.TYPED_ARRAY_SUPPORT?(this[e]=255&A,this[e+1]=A>>>8):D(this,A,e,!0),e+2},t.prototype.writeUInt16BE=function(A,e,i){return A=+A,e|=0,i||Y(this,A,e,2,65535,0),t.TYPED_ARRAY_SUPPORT?(this[e]=A>>>8,this[e+1]=255&A):D(this,A,e,!1),e+2},t.prototype.writeUInt32LE=function(A,e,i){return A=+A,e|=0,i||Y(this,A,e,4,4294967295,0),t.TYPED_ARRAY_SUPPORT?(this[e+3]=A>>>24,this[e+2]=A>>>16,this[e+1]=A>>>8,this[e]=255&A):M(this,A,e,!0),e+4},t.prototype.writeUInt32BE=function(A,e,i){return A=+A,e|=0,i||Y(this,A,e,4,4294967295,0),t.TYPED_ARRAY_SUPPORT?(this[e]=A>>>24,this[e+1]=A>>>16,this[e+2]=A>>>8,this[e+3]=255&A):M(this,A,e,!1),e+4},t.prototype.writeIntLE=function(A,e,i,r){if(A=+A,e|=0,!r){var f=Math.pow(2,8*i-1);Y(this,A,e,i,f-1,-f)}var a=0,n=1,l=0;for(this[e]=255&A;++a>0)-l&255;return e+i},t.prototype.writeIntBE=function(A,e,i,r){if(A=+A,e|=0,!r){var f=Math.pow(2,8*i-1);Y(this,A,e,i,f-1,-f)}var a=i-1,n=1,l=0;for(this[e+a]=255&A;--a>=0&&(n*=256);)A<0&&0===l&&0!==this[e+a+1]&&(l=1),this[e+a]=(A/n>>0)-l&255;return e+i},t.prototype.writeInt8=function(A,e,i){return A=+A,e|=0,i||Y(this,A,e,1,127,-128),t.TYPED_ARRAY_SUPPORT||(A=Math.floor(A)),A<0&&(A=255+A+1),this[e]=255&A,e+1},t.prototype.writeInt16LE=function(A,e,i){return A=+A,e|=0,i||Y(this,A,e,2,32767,-32768),t.TYPED_ARRAY_SUPPORT?(this[e]=255&A,this[e+1]=A>>>8):D(this,A,e,!0),e+2},t.prototype.writeInt16BE=function(A,e,i){return A=+A,e|=0,i||Y(this,A,e,2,32767,-32768),t.TYPED_ARRAY_SUPPORT?(this[e]=A>>>8,this[e+1]=255&A):D(this,A,e,!1),e+2},t.prototype.writeInt32LE=function(A,e,i){return A=+A,e|=0,i||Y(this,A,e,4,2147483647,-2147483648),t.TYPED_ARRAY_SUPPORT?(this[e]=255&A,this[e+1]=A>>>8,this[e+2]=A>>>16,this[e+3]=A>>>24):M(this,A,e,!0),e+4},t.prototype.writeInt32BE=function(A,e,i){return A=+A,e|=0,i||Y(this,A,e,4,2147483647,-2147483648),A<0&&(A=4294967295+A+1),t.TYPED_ARRAY_SUPPORT?(this[e]=A>>>24,this[e+1]=A>>>16,this[e+2]=A>>>8,this[e+3]=255&A):M(this,A,e,!1),e+4},t.prototype.writeFloatLE=function(A,e,i){return V(this,A,e,!0,i)},t.prototype.writeFloatBE=function(A,e,i){return V(this,A,e,!1,i)},t.prototype.writeDoubleLE=function(A,e,i){return J(this,A,e,!0,i)},t.prototype.writeDoubleBE=function(A,e,i){return J(this,A,e,!1,i)},t.prototype.copy=function(A,e,i,r){if(i||(i=0),r||0===r||(r=this.length),e>=A.length&&(e=A.length),e||(e=0),r>0&&r=this.length)throw new RangeError(\"sourceStart out of bounds\");if(r<0)throw new RangeError(\"sourceEnd out of bounds\");r>this.length&&(r=this.length),A.length-e=0;--f)A[f+e]=this[f+i];else if(a<1e3||!t.TYPED_ARRAY_SUPPORT)for(f=0;f>>=0,i=void 0===i?this.length:i>>>0,A||(A=0),\"number\"==typeof A)for(a=e;a55295&&i<57344){if(!f){if(i>56319){(e-=3)>-1&&a.push(239,191,189);continue}if(n+1===r){(e-=3)>-1&&a.push(239,191,189);continue}f=i;continue}if(i<56320){(e-=3)>-1&&a.push(239,191,189),f=i;continue}i=65536+(f-55296<<10|i-56320)}else f&&(e-=3)>-1&&a.push(239,191,189);if(f=null,i<128){if((e-=1)<0)break;a.push(i)}else if(i<2048){if((e-=2)<0)break;a.push(i>>6|192,63&i|128)}else if(i<65536){if((e-=3)<0)break;a.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error(\"Invalid code point\");if((e-=4)<0)break;a.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return a}function X(A){return r.toByteArray(function(A){if((A=function(A){return A.trim?A.trim():A.replace(/^\\\\s+|\\\\s+$/g,\"\")}(A).replace(p,\"\")).length<2)return\"\";for(;A.length%4!=0;)A+=\"=\";return A}(A))}function H(A,e,i,r){for(var f=0;f=e.length||f>=A.length);++f)e[f+i]=A[f];return f}}).call(this,i(5))},function(A,e){var i;i=function(){return this}();try{i=i||new Function(\"return this\")()}catch(A){\"object\"==typeof window&&(i=window)}A.exports=i},function(A,e,i){\"use strict\";e.byteLength=function(A){var e=c(A),i=e[0],r=e[1];return 3*(i+r)/4-r},e.toByteArray=function(A){for(var e,i=c(A),r=i[0],n=i[1],l=new a(function(A,e,i){return 3*(e+i)/4-i}(0,r,n)),t=0,s=n>0?r-4:r,b=0;b>16&255,l[t++]=e>>8&255,l[t++]=255&e;2===n&&(e=f[A.charCodeAt(b)]<<2|f[A.charCodeAt(b+1)]>>4,l[t++]=255&e);1===n&&(e=f[A.charCodeAt(b)]<<10|f[A.charCodeAt(b+1)]<<4|f[A.charCodeAt(b+2)]>>2,l[t++]=e>>8&255,l[t++]=255&e);return l},e.fromByteArray=function(A){for(var e,i=A.length,f=i%3,a=[],n=0,l=i-f;nl?l:n+16383));1===f?(e=A[i-1],a.push(r[e>>2]+r[e<<4&63]+\"==\")):2===f&&(e=(A[i-2]<<8)+A[i-1],a.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+\"=\"));return a.join(\"\")};for(var r=[],f=[],a=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,n=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",l=0,t=n.length;l0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var i=A.indexOf(\"=\");return-1===i&&(i=e),[i,i===e?0:4-i%4]}function s(A,e,i){for(var f,a,n=[],l=e;l>18&63]+r[a>>12&63]+r[a>>6&63]+r[63&a]);return n.join(\"\")}f[\"-\".charCodeAt(0)]=62,f[\"_\".charCodeAt(0)]=63},function(A,e){e.read=function(A,e,i,r,f){var a,n,l=8*f-r-1,t=(1<>1,s=-7,b=i?f-1:0,u=i?-1:1,w=A[e+b];for(b+=u,a=w&(1<<-s)-1,w>>=-s,s+=l;s>0;a=256*a+A[e+b],b+=u,s-=8);for(n=a&(1<<-s)-1,a>>=-s,s+=r;s>0;n=256*n+A[e+b],b+=u,s-=8);if(0===a)a=1-c;else{if(a===t)return n?NaN:1/0*(w?-1:1);n+=Math.pow(2,r),a-=c}return(w?-1:1)*n*Math.pow(2,a-r)},e.write=function(A,e,i,r,f,a){var n,l,t,c=8*a-f-1,s=(1<>1,u=23===f?Math.pow(2,-24)-Math.pow(2,-77):0,w=r?0:a-1,k=r?1:-1,o=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(l=isNaN(e)?1:0,n=s):(n=Math.floor(Math.log(e)/Math.LN2),e*(t=Math.pow(2,-n))<1&&(n--,t*=2),(e+=n+b>=1?u/t:u*Math.pow(2,1-b))*t>=2&&(n++,t/=2),n+b>=s?(l=0,n=s):n+b>=1?(l=(e*t-1)*Math.pow(2,f),n+=b):(l=e*Math.pow(2,b-1)*Math.pow(2,f),n=0));f>=8;A[i+w]=255&l,w+=k,l/=256,f-=8);for(n=n<0;A[i+w]=255&n,w+=k,n/=256,c-=8);A[i+w-k]|=128*o}},function(A,e){var i={}.toString;A.exports=Array.isArray||function(A){return\"[object Array]\"==i.call(A)}},function(A,e){},function(A,e,i){\"use strict\";i.r(e);var r=i(2),f=i.n(r);function a(A){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:\" \";const r=A.indexOf(i,e);return r3&&void 0!==arguments[3]?arguments[3]:\" \";const f=[];let a=i,n=A;for(;n--;){\" \"===e[a]&&a++;const A=b(e,a,r),i=A.value,n=A.end;f.push(i),a=n}return{values:f,end:a}}function w(A,e){const i=s(A,e+5),r=i.value,f=u(4,A,i.end+1),a=f.values,n=f.end,t=l(a,4),c=t[0],b=t[1],w=t[2];return{vertex:{vertex:{key:r},height:t[3],left:c,top:b,width:w},end:A.indexOf(\"\\\\n\",n+1)}}function k(A,e){const i=s(A,e+5),r=i.value,f=s(A,i.end+1),n=f.value,l=b(A,f.end+1),c=u(2*l.value,A,l.end+1),w=c.values,k=s(A,c.end+1),o=k.value,h=k.end,d=[];for(let A=0;A{const e=t[A];e&&(B[e]=!0)}),{edge:{edge:a({from:r,to:n},B),pathPoints:d},end:A.indexOf(\"\\\\n\",h+1)}}function o(A){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const i=[],r=[];let f=0;const a=function(A,e){const i=u(2,A,e+6),r=l(i.values,2),f=r[0],a=r[1],n=b(A,i.end+1,\"\\\\n\"),t=n.value;return{end:n.end,graph:{height:t,scale:f,width:a}}}(A,f),n=a.end,t=a.graph;for(f=n+1;\"s\"!==A[f];)if(\"n\"!==A[f])if(\"e\"!==A[f])c(A,f);else{if(!e){f=A.indexOf(\"\\\\n\",f)+1;continue}const r=k(A,f),a=r.end,n=r.edge;i.push(n),f=a+1}else{const e=w(A,f),i=e.end,a=e.vertex;r.push(a),f=i+1}return{graph:t,vertices:r,edges:e?i:null}}function h(A,e,i){return e in A?Object.defineProperty(A,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):A[e]=i,A}const d=\"}\",B={nodesep:1.5,rankdir:\"LR\",ranksep:5,sep:.5,shape:\"box\",splines:\"true\"};function g(A){const e=function(A){for(var e=1;e2&&void 0!==arguments[2]&&arguments[2]?\\' [style=\"bidir\",dir=both]\\':\"\";return Array.isArray(e)?`\"${A}\"->{ ${e.map(A=>`\"${A}\"`).join(\" \")} };`:`\"${A}\"->\"${e}\"${i};`}let C,I,Z;var G;!function(A){A.Error=\"Error\",A.LayoutError=\"LayoutError\"}(C||(C={})),function(A){A.Done=\"Done\",A.DotOnly=\"DotOnly\",A.Edges=\"Edges\",A.NotStarted=\"NotStarted\",A.Positions=\"Positions\"}(I||(I={})),function(A){A[A.DotOnly=I.DotOnly]=\"DotOnly\",A[A.Edges=I.Edges]=\"Edges\",A[A.Positions=I.Positions]=\"Positions\"}(Z||(Z={})),function(A){A.Ok=\"Ok\",A.Warn=\"Warn\",A.Error=\"Error\"}(G||(G={}));const m=.015;function Q(A,e){return Math.abs(A-e)/e{if(A.isBidirectional)return void r.push(A);const e=f.get(A.from)||[];e.push(A.to),f.set(A.from,e)});const a=e.map(v),n=r.map(A=>E(A.from,A.to,!0)),l=[];return f.forEach((A,e)=>{l.push(E(e,A))}),[g(i),\" \",a.join(\"\\\\n \"),\" \",n.join(\"\\\\n \"),\" \",l.join(\"\\\\n \"),d].join(\"\\\\n \")}(e,i,r),n=(r||{}).totalMemory,l={totalMemory:void 0===n?void 0:n,engine:A===Z.Edges?\"neato\":\"dot\",format:\"plain\"},t=o(f()(a,l),A!==Z.Positions),c=t.edges,s=t.graph,b=t.vertices,u=function(A,e){const i={};let r;A.forEach(A=>{i[String(A.vertex.key)]=A});for(let A=0;A1?\"vertices\":\"vertex\";return{validity:G.Error,message:`Missing ${A}: ${f.join(\", \")}`}}return r||{validity:G.Ok,message:null}}(i,b);if(u.validity===G.Error){return{graph:s,edges:c,vertices:b,layoutError:!0,layoutErrorMessage:u.message}}return u.validity===G.Warn?{graph:s,edges:c,vertices:b,layoutErrorMessage:u.message}:{edges:c,graph:s,vertices:b}}function y(A,e,i){return e in A?Object.defineProperty(A,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):A[e]=i,A}function W(A,e){if(null==A)return{};var i,r,f=function(A,e){if(null==A)return{};var i,r,f={},a=Object.keys(A);for(r=0;r=0||(f[i]=A[i]);return f}(A,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(A);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(A,i)&&(f[i]=A[i])}return f}const z=self;let Y;function D(A,e){const i=e.colno,r=e.error,f=e.filename,a=e.lineno,n=e.message,l={type:C.Error,meta:Y,errorMessage:{colno:i,error:r,errorType:A,filename:f,lineno:a,message:n}};z.postMessage(l)}z.onmessage=function(A){const e=A.data,i=e.edges,r=e.meta,f=e.options,a=e.vertices;Y=r;const n=L(r.phase,i,a,f),l=n.layoutError,t=W(n,[\"layoutError\"]),c=function(A){for(var e=1;e\n {name}\n {value}\n \n );\n}\n\nfunction Message(props: SubPartProps) {\n const { className, error, wrap, wrapperClassName } = props;\n const cssClass = `ErrorMessage--msg ${className || ''}`;\n const msg =\n typeof error === 'string' ? (\n

{error}

\n ) : (\n

{error.message}

\n );\n if (wrap) {\n return
{msg}
;\n }\n return msg;\n}\n\nMessage.defaultProps = {\n className: undefined,\n wrap: false,\n wrapperClassName: undefined,\n};\n\nfunction Details(props: SubPartProps) {\n const { className, error, wrap, wrapperClassName } = props;\n if (typeof error === 'string') {\n return null;\n }\n const { httpStatus, httpStatusText, httpUrl, httpQuery, httpBody } = error;\n const bodyExcerpt = httpBody && httpBody.length > 1024 ? `${httpBody.slice(0, 1021).trim()}...` : httpBody;\n const details = (\n
\n \n \n {httpStatus ? : null}\n {httpStatusText ? : null}\n {httpUrl ? : null}\n {httpQuery ? : null}\n {bodyExcerpt ? : null}\n \n
\n
\n );\n\n if (wrap) {\n return
{details}
;\n }\n return details;\n}\n\nDetails.defaultProps = {\n className: undefined,\n wrap: false,\n wrapperClassName: undefined,\n};\n\nexport default function ErrorMessage({\n className,\n detailClassName,\n error,\n messageClassName,\n}: ErrorMessageProps) {\n if (!error) {\n return null;\n }\n if (typeof error === 'string') {\n return ;\n }\n return (\n
\n \n
\n
\n );\n}\n\nErrorMessage.defaultProps = {\n className: undefined,\n detailClassName: undefined,\n messageClassName: undefined,\n};\n\nErrorMessage.Message = Message;\nErrorMessage.Details = Details;\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport sitePrefix from '../site-prefix';\n\nconst origin = process.env.NODE_ENV === 'test' ? global.location.origin : window.location.origin;\n\n/**\n * Generate the URL prefix from `sitePrefix` and use it for all subsequent calls\n * to `prefixUrl()`. `sitePrefix` should be an absolute URL, e.g. with an origin.\n * `pathPrefix` is just the path portion and should not have a trailing slash:\n *\n * - `\"http://localhost:3000/\"` to `\"\"`\n * - `\"http://localhost:3000/abc/\"` to `\"/abc\"`\n * - `\"http://localhost:3000/abc/def/\"` to `\"/abc/def\"`\n */\n// exported for tests\nexport function getPathPrefix(orig?: string, sitePref?: string) {\n const o = orig == null ? '' : orig.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n const s = sitePref == null ? '' : sitePref;\n const rx = new RegExp(`^${o}|/$`, 'ig');\n return s.replace(rx, '');\n}\n\nconst pathPrefix = getPathPrefix(origin, sitePrefix);\n\n/**\n * Add the path prefix to the URL. See [site-prefix.js](../site-prefix.js) and\n * the `` tag in [index.html](../../public/index.html) for details.\n *\n * @param {string} value The URL to have the prefix added to.\n * @return {string} The resultant URL.\n */\nexport default function prefixUrl(value?: string) {\n const s = value == null ? '' : String(value);\n return `${pathPrefix}${s}`;\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport ErrorMessage from '../common/ErrorMessage';\nimport prefixUrl from '../../utils/prefix-url';\n\ntype NotFoundProps = {\n error: any;\n};\n\nexport default function NotFound({ error }: NotFoundProps) {\n return (\n
\n

Error

\n {error && }\n Back home\n
\n );\n}\n","// Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport queryString from 'query-string';\n\nimport prefixUrl from '../../../utils/prefix-url';\n\nimport { TNil } from '../../../types';\n\nexport const ROUTE_PATH = prefixUrl('/trace/:id');\n\nexport function getUrl(id: string, uiFind?: string): string {\n const traceUrl = prefixUrl(`/trace/${id}`);\n if (!uiFind) return traceUrl;\n\n return `${traceUrl}?${queryString.stringify({ uiFind })}`;\n}\n\nexport function getLocation(id: string, state: Record | TNil, uiFind?: string) {\n return {\n state,\n pathname: getUrl(id),\n search: uiFind && queryString.stringify({ uiFind }),\n };\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Form, Input } from 'antd';\nimport { RouteComponentProps, Router as RouterHistory, withRouter } from 'react-router-dom';\n\nimport { getUrl } from '../TracePage/url';\n\nimport './TraceIDSearchInput.css';\n\ntype Props = RouteComponentProps & {\n history: RouterHistory;\n};\n\nclass TraceIDSearchInput extends React.PureComponent {\n goToTrace = (event: React.FormEvent) => {\n event.preventDefault();\n const target = event.target as any;\n const value = target.elements.idInput.value;\n if (value) {\n this.props.history.push(getUrl(value));\n }\n };\n\n render() {\n return (\n
\n \n
\n );\n }\n}\n\nexport default withRouter(TraceIDSearchInput);\n","// Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { matchPath } from 'react-router-dom';\n\nimport prefixUrl from '../../utils/prefix-url';\n\nexport const ROUTE_PATH = prefixUrl('/dependencies');\n\nconst ROUTE_MATCHER = { path: ROUTE_PATH, strict: true, exact: true };\n\nexport function matches(path: string) {\n return Boolean(matchPath(path, ROUTE_MATCHER));\n}\n\nexport function getUrl() {\n return ROUTE_PATH;\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { TVertex } from '@jaegertracing/plexus/lib/types';\n\nimport PathElem from './PathElem';\n\nexport { default as PathElem } from './PathElem';\n\nexport enum EViewModifier {\n None,\n Hovered,\n Selected,\n Emphasized = 1 << 2, // eslint-disable-line no-bitwise\n PathHovered = 1 << 3, // eslint-disable-line no-bitwise\n}\n\nexport enum EDdgDensity {\n ExternalVsInternal = 'ext-vs-int',\n MostConcise = 'mc',\n OnePerLevel = 'per-level',\n PreventPathEntanglement = 'ppe',\n UpstreamVsDownstream = 'up-vs-down',\n}\n\nexport enum ECheckedStatus {\n Empty = 'Empty',\n Full = 'Full',\n Partial = 'Partial',\n}\n\nexport enum EDirection {\n Upstream = -1,\n Downstream = 1,\n}\n\nexport type TDdgPayloadEntry = {\n operation: string;\n service: string;\n};\n\nexport type TDdgPayloadPath = {\n path: TDdgPayloadEntry[];\n // TODO: Everett Tech Debt: Fix KeyValuePair types\n attributes: {\n key: 'exemplar_trace_id'; // eslint-disable-line camelcase\n value: string;\n }[];\n};\n\nexport type TDdgPayload = {\n dependencies: TDdgPayloadPath[];\n};\n\nexport type TDdgService = {\n name: string;\n operations: Map;\n};\n\nexport type TDdgOperation = {\n name: string;\n pathElems: PathElem[];\n service: TDdgService;\n};\n\nexport type TDdgServiceMap = Map;\n\nexport type TDdgPath = {\n focalIdx: number;\n members: PathElem[];\n traceIDs: string[];\n};\n\nexport type TDdgDistanceToPathElems = Map;\n\nexport type TDdgModel = {\n distanceToPathElems: TDdgDistanceToPathElems;\n hash: string;\n paths: TDdgPath[];\n services: TDdgServiceMap;\n visIdxToPathElem: PathElem[];\n};\n\nexport type TDdgVertex = TVertex<{\n isFocalNode: boolean;\n key: string;\n operation: string | string[] | null;\n service: string;\n}>;\n\nexport type TDdgSparseUrlState = {\n density: EDdgDensity;\n end?: number;\n hash?: string;\n operation?: string;\n service?: string;\n showOp?: boolean;\n start?: number;\n visEncoding?: string;\n};\n\nexport type TDdgModelParams = {\n service: string;\n operation?: string;\n start: number;\n end: number;\n};\n\nexport type TDdgActionMeta = {\n query: TDdgModelParams;\n};\n\nexport type TDdgAddViewModifierPayload = TDdgModelParams & {\n // Number instead of EViewModifier so that multiple views can be changed at once.\n viewModifier: number;\n visibilityIndices: number[];\n};\n\nexport type TDdgClearViewModifiersFromIndicesPayload = TDdgAddViewModifierPayload & { viewModifier?: void };\n\nexport type TDdgRemoveViewModifierFromIndicesPayload = TDdgAddViewModifierPayload;\n\nexport type TDdgRemoveViewModifierPayload = TDdgAddViewModifierPayload & { visibilityIndices?: void };\n\nexport type TDdgViewModifierRemovalPayload =\n | TDdgClearViewModifiersFromIndicesPayload\n | TDdgRemoveViewModifierFromIndicesPayload\n | TDdgRemoveViewModifierPayload;\n\nexport type THop = { distance: number; fullness: ECheckedStatus };\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { TDdgOperation, TDdgPath } from './types';\n\nexport default class PathElem {\n memberIdx: number;\n memberOf: TDdgPath;\n operation: TDdgOperation;\n private _visibilityIdx?: number;\n\n constructor({\n path,\n operation,\n memberIdx,\n }: {\n path: TDdgPath;\n operation: TDdgOperation;\n memberIdx: number;\n }) {\n this.memberIdx = memberIdx;\n this.memberOf = path;\n this.operation = operation;\n }\n\n get distance() {\n return this.memberIdx - this.memberOf.focalIdx;\n }\n\n get externalPath(): PathElem[] {\n const result: PathElem[] = [];\n let current: PathElem | null | undefined = this;\n while (current) {\n result.push(current);\n current = current.externalSideNeighbor;\n }\n if (this.distance < 0) result.reverse();\n return result;\n }\n\n get externalSideNeighbor(): PathElem | null | undefined {\n if (!this.distance) return null;\n return this.memberOf.members[this.memberIdx + Math.sign(this.distance)];\n }\n\n get focalPath(): PathElem[] {\n const result: PathElem[] = [];\n let current: PathElem | null = this;\n while (current) {\n result.push(current);\n current = current.focalSideNeighbor;\n }\n if (this.distance > 0) result.reverse();\n return result;\n }\n\n get focalSideNeighbor(): PathElem | null {\n if (!this.distance) return null;\n return this.memberOf.members[this.memberIdx - Math.sign(this.distance)];\n }\n\n get isExternal(): boolean {\n return (\n Boolean(this.distance) && (this.memberIdx === 0 || this.memberIdx === this.memberOf.members.length - 1)\n );\n }\n\n set visibilityIdx(visibilityIdx: number) {\n if (this._visibilityIdx == null) {\n this._visibilityIdx = visibilityIdx;\n } else {\n throw new Error('Visibility Index cannot be changed once set');\n }\n }\n\n get visibilityIdx(): number {\n if (this._visibilityIdx == null) {\n throw new Error('Visibility Index was never set for this PathElem');\n }\n return this._visibilityIdx;\n }\n\n private toJSONHelper = () => ({\n memberIdx: this.memberIdx,\n operation: this.operation.name,\n service: this.operation.service.name,\n visibilityIdx: this._visibilityIdx,\n });\n\n /*\n * Because the memberOf on a PathElem contains an array of all of its members which in turn all contain\n * memberOf back to the path, some assistance is necessary when creating error messages. toJSON is called by\n * JSON.stringify and expected to return a JSON object. To that end, this method simplifies the\n * representation of the PathElems in memberOf's path to remove the circular reference.\n */\n toJSON() {\n return {\n ...this.toJSONHelper(),\n memberOf: {\n focalIdx: this.memberOf.focalIdx,\n members: this.memberOf.members.map(member => member.toJSONHelper()),\n },\n };\n }\n\n // `toJSON` is called by `JSON.stringify` while `toString` is used by template strings and string concat\n toString() {\n return JSON.stringify(this.toJSON(), null, 2);\n }\n\n // `[Symbol.toStringTag]` is used when attempting to use an object as a key on an object, where a full\n // stringified JSON would reduce clarity\n get [Symbol.toStringTag]() {\n return `PathElem ${this._visibilityIdx}`;\n }\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport _isEmpty from 'lodash/isEmpty';\nimport memoizeOne from 'memoize-one';\nimport queryString from 'query-string';\nimport { matchPath } from 'react-router-dom';\n\nimport { EDdgDensity, TDdgSparseUrlState } from '../../model/ddg/types';\nimport prefixUrl from '../../utils/prefix-url';\n\nexport const ROUTE_PATH = prefixUrl('/deep-dependencies');\n\nconst ROUTE_MATCHER = { path: ROUTE_PATH, strict: true, exact: true };\n\nexport function matches(path: string) {\n return Boolean(matchPath(path, ROUTE_MATCHER));\n}\n\nexport function getUrl(args?: { [key: string]: unknown; showOp?: boolean }, baseUrl: string = ROUTE_PATH) {\n if (args && !_isEmpty(args)) {\n const stringifyArgs =\n Reflect.has(args, 'showOp') && args.showOp !== undefined\n ? {\n ...args,\n showOp: args.showOp ? 1 : 0,\n }\n : args;\n return `${baseUrl}?${queryString.stringify(stringifyArgs)}`;\n }\n return baseUrl;\n}\n\nfunction firstParam(arg: string | string[]): string {\n if (Array.isArray(arg)) {\n const returnVal = arg[0];\n console.warn(`Found multiple query parameters: \"${arg}\", using \"${returnVal}\"`); // eslint-disable-line no-console\n return returnVal;\n }\n return arg;\n}\n\nexport const getUrlState = memoizeOne(function getUrlState(search: string): TDdgSparseUrlState {\n const {\n density = EDdgDensity.PreventPathEntanglement,\n end,\n hash,\n operation,\n service,\n showOp,\n start,\n visEncoding,\n } = queryString.parse(search);\n const rv: TDdgSparseUrlState = {\n density: firstParam(density) as EDdgDensity,\n };\n if (end) {\n rv.end = Number.parseInt(firstParam(end), 10);\n }\n if (hash) {\n rv.hash = firstParam(hash);\n }\n if (operation) {\n rv.operation = firstParam(operation);\n }\n if (service) {\n rv.service = firstParam(service);\n }\n if (showOp) {\n rv.showOp = Boolean(+firstParam(showOp));\n }\n if (start) {\n rv.start = Number.parseInt(firstParam(start), 10);\n }\n if (visEncoding) {\n rv.visEncoding = firstParam(visEncoding);\n }\n return rv;\n});\n\nexport const sanitizeUrlState = memoizeOne(function sanitizeUrlStateImpl(\n state: TDdgSparseUrlState,\n hash?: string\n): TDdgSparseUrlState {\n if (hash && state.hash === hash) {\n return state;\n }\n const { visEncoding, ...sanitized } = state; // eslint-disable-line @typescript-eslint/no-unused-vars\n return sanitized;\n});\n","// Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport memoizeOne from 'memoize-one';\nimport queryString from 'query-string';\nimport { matchPath } from 'react-router-dom';\n\nimport prefixUrl from '../../utils/prefix-url';\n\nimport { SearchQuery } from '../../types/search';\n\nfunction eqEq(a: string | number | null | undefined, b: string | number | null | undefined) {\n return (a == null && b == null) || String(a) === String(b);\n}\n\nexport const ROUTE_PATH = prefixUrl('/search');\n\nconst ROUTE_MATCHER = { path: ROUTE_PATH, strict: true, exact: true };\n\nexport function matches(path: string) {\n return Boolean(matchPath(path, ROUTE_MATCHER));\n}\n\ntype TUrlState = Record> & {\n traceID?: string | string[];\n spanLinks?: Record;\n};\n\nexport function getUrl(query?: TUrlState) {\n const searchUrl = prefixUrl(`/search`);\n if (!query) return searchUrl;\n\n const { traceID, spanLinks, ...rest } = query;\n let ids = traceID;\n if (spanLinks && traceID) {\n ids = (Array.isArray(traceID) ? traceID : [traceID]).filter((id: string) => !spanLinks[id]);\n }\n const stringifyArg = {\n ...rest,\n span:\n spanLinks &&\n Object.keys(spanLinks).reduce((res: string[], trace: string) => {\n return [...res, `${spanLinks[trace]}@${trace}`];\n }, []),\n traceID: ids && ids.length ? ids : undefined,\n };\n return `${searchUrl}?${queryString.stringify(stringifyArg)}`;\n}\n\nexport const getUrlState: (search: string) => TUrlState = memoizeOne(function getUrlState(\n search: string\n): TUrlState {\n const { traceID, span, ...rest } = queryString.parse(search);\n const rv: TUrlState = { ...rest };\n const traceIDs = new Set(!traceID || Array.isArray(traceID) ? traceID : [traceID]);\n const spanLinks: Record = {};\n if (span && span.length) {\n (Array.isArray(span) ? span : [span]).forEach(s => {\n const [spansStr, trace] = s.split('@');\n traceIDs.add(trace);\n if (spansStr) {\n if (spanLinks[trace]) spanLinks[trace] = spanLinks[trace].concat(' ', spansStr);\n else spanLinks[trace] = spansStr;\n }\n });\n rv.spanLinks = spanLinks;\n }\n if (traceIDs.size) rv.traceID = [...traceIDs];\n return rv;\n});\n\nexport function isSameQuery(a: SearchQuery, b: SearchQuery) {\n if (Boolean(a) !== Boolean(b)) {\n return false;\n }\n return (\n eqEq(a.end, b.end) &&\n eqEq(a.limit, b.limit) &&\n eqEq(a.lookback, b.lookback) &&\n eqEq(a.maxDuration, b.maxDuration) &&\n eqEq(a.minDuration, b.minDuration) &&\n eqEq(a.operation, b.operation) &&\n eqEq(a.service, b.service) &&\n eqEq(a.start, b.start) &&\n eqEq(a.tags, b.tags)\n );\n}\n","// Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport queryString from 'query-string';\nimport { matchPath } from 'react-router-dom';\n\nimport getValidState from './getValidState';\nimport TTraceDiffState from '../../types/TTraceDiffState';\nimport prefixUrl from '../../utils/prefix-url';\n\nexport type TDiffRouteParams = {\n a?: string | undefined;\n b?: string | undefined;\n};\n\nexport const ROUTE_PATH = prefixUrl('/trace/:a?\\\\.\\\\.\\\\.:b?');\n\nconst ROUTE_MATCHER = { path: ROUTE_PATH, strict: true, exact: true };\n\nexport function matches(path: string) {\n return Boolean(matchPath(path, ROUTE_MATCHER));\n}\n\nexport function getUrl(state: TTraceDiffState) {\n const { a = undefined, b = undefined, cohort } = getValidState(state);\n const search = queryString.stringify({ cohort });\n return prefixUrl(`/trace/${a || ''}...${b || ''}${search ? '?' : ''}${search}`);\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { TNil } from '../../types';\nimport TTraceDiffState from '../../types/TTraceDiffState';\n\nexport default function getValidState(state: TTraceDiffState) {\n const { a: stA, b: stB, cohort: stCohort } = state;\n const cohortSet = new Set(\n ([] as (string | TNil)[])\n .concat(stA, stB, stCohort)\n .filter((str: string | TNil): str is string => Boolean(str))\n );\n const cohort: string[] = Array.from(cohortSet);\n const a = cohort[0];\n const b = cohort[1];\n return { a, b, cohort };\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport const TOP_NAV_HEIGHT = 46 as 46;\n\nexport const FALLBACK_DAG_MAX_NUM_SERVICES = 100 as 100;\nexport const FALLBACK_TRACE_NAME = '' as '';\n\nexport const FETCH_DONE = 'FETCH_DONE' as 'FETCH_DONE';\nexport const FETCH_ERROR = 'FETCH_ERROR' as 'FETCH_ERROR';\nexport const FETCH_LOADING = 'FETCH_LOADING' as 'FETCH_LOADING';\n\nexport const fetchedState = {\n DONE: FETCH_DONE,\n ERROR: FETCH_ERROR,\n LOADING: FETCH_LOADING,\n};\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport deepFreeze from 'deep-freeze';\n\nimport { FALLBACK_DAG_MAX_NUM_SERVICES } from './index';\n\nexport default deepFreeze(\n Object.defineProperty(\n {\n archiveEnabled: false,\n dependencies: {\n dagMaxNumServices: FALLBACK_DAG_MAX_NUM_SERVICES,\n menuEnabled: true,\n },\n linkPatterns: [],\n menu: [\n {\n label: 'About Jaeger',\n items: [\n {\n label: 'Website/Docs',\n url: 'https://www.jaegertracing.io/',\n },\n {\n label: 'Blog',\n url: 'https://medium.com/jaegertracing/',\n },\n {\n label: 'Twitter',\n url: 'https://twitter.com/JaegerTracing',\n },\n {\n label: 'Discussion Group',\n url: 'https://groups.google.com/forum/#!forum/jaeger-tracing',\n },\n {\n label: 'Online Chat',\n url: 'https://gitter.im/jaegertracing/Lobby',\n },\n {\n label: 'GitHub',\n url: 'https://github.com/jaegertracing/',\n },\n ],\n },\n ],\n search: {\n maxLookback: {\n label: '2 Days',\n value: '2d',\n },\n maxLimit: 1500,\n },\n tracking: {\n gaID: null,\n trackErrors: true,\n },\n },\n // fields that should be individually merged vs wholesale replaced\n '__mergeFields',\n { value: ['dependencies', 'search', 'tracking'] }\n )\n);\n\nexport const deprecations = [\n {\n formerKey: 'dependenciesMenuEnabled',\n currentKey: 'dependencies.menuEnabled',\n },\n {\n formerKey: 'gaTrackingID',\n currentKey: 'tracking.gaID',\n },\n];\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport _get from 'lodash/get';\n\nimport processDeprecation from './process-deprecation';\nimport defaultConfig, { deprecations } from '../../constants/default-config';\n\nlet haveWarnedFactoryFn = false;\nlet haveWarnedDeprecations = false;\n\n/**\n * Merge the embedded config from the query service (if present) with the\n * default config from `../../constants/default-config`.\n */\nexport default function getConfig() {\n const getJaegerUiConfig = window.getJaegerUiConfig;\n if (typeof getJaegerUiConfig !== 'function') {\n if (!haveWarnedFactoryFn) {\n // eslint-disable-next-line no-console\n console.warn('Embedded config not available');\n haveWarnedFactoryFn = true;\n }\n return { ...defaultConfig };\n }\n const embedded = getJaegerUiConfig();\n if (!embedded) {\n return { ...defaultConfig };\n }\n // check for deprecated config values\n if (Array.isArray(deprecations)) {\n deprecations.forEach(deprecation => processDeprecation(embedded, deprecation, !haveWarnedDeprecations));\n haveWarnedDeprecations = true;\n }\n const rv = { ...defaultConfig, ...embedded };\n // __mergeFields config values should be merged instead of fully replaced\n const keys = defaultConfig.__mergeFields || [];\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (typeof embedded[key] === 'object' && embedded[key] !== null) {\n rv[key] = { ...defaultConfig[key], ...embedded[key] };\n }\n }\n return rv;\n}\n\nexport function getConfigValue(path: string) {\n return _get(getConfig(), path);\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport _get from 'lodash/get';\nimport _has from 'lodash/has';\nimport _set from 'lodash/set';\nimport _unset from 'lodash/unset';\n\ninterface IDeprecation {\n formerKey: string;\n currentKey: string;\n}\n\n/**\n * Processes a deprecated config property with respect to a configuration.\n * NOTE: This mutates `config`.\n *\n * If the deprecated config property is found to be set on `config`, it is\n * moved to the new config property unless a conflicting setting exists. If\n * `issueWarning` is `true`, warnings are issues when:\n *\n * - The deprecated config property is found to be set on `config`\n * - The value at the deprecated config property is moved to the new property\n * - The value at the deprecated config property is ignored in favor of the value at the new property\n */\nexport default function processDeprecation(\n config: Record,\n deprecation: IDeprecation,\n issueWarning: boolean\n) {\n const { formerKey, currentKey } = deprecation;\n if (_has(config, formerKey)) {\n let isTransfered = false;\n let isIgnored = false;\n if (!_has(config, currentKey)) {\n // the new key is not set so transfer the value at the old key\n const value = _get(config, formerKey);\n _set(config, currentKey, value);\n isTransfered = true;\n } else {\n isIgnored = true;\n }\n _unset(config, formerKey);\n\n if (issueWarning) {\n const warnings = [`\"${formerKey}\" is deprecated, instead use \"${currentKey}\"`];\n if (isTransfered) {\n warnings.push(`The value at \"${formerKey}\" has been moved to \"${currentKey}\"`);\n }\n if (isIgnored) {\n warnings.push(\n `The value at \"${formerKey}\" is being ignored in favor of the value at \"${currentKey}\"`\n );\n }\n // eslint-disable-next-line no-console\n console.warn(warnings.join('\\n'));\n }\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React from 'react';\nimport { Dropdown, Icon, Menu } from 'antd';\nimport _has from 'lodash/has';\nimport { connect } from 'react-redux';\nimport { RouteComponentProps, Link, withRouter } from 'react-router-dom';\n\nimport TraceIDSearchInput from './TraceIDSearchInput';\nimport * as dependencyGraph from '../DependencyGraph/url';\nimport * as deepDependencies from '../DeepDependencies/url';\nimport * as searchUrl from '../SearchTracePage/url';\nimport * as diffUrl from '../TraceDiff/url';\nimport { ReduxState } from '../../types';\nimport { ConfigMenuItem, ConfigMenuGroup } from '../../types/config';\nimport { getConfigValue } from '../../utils/config/get-config';\nimport prefixUrl from '../../utils/prefix-url';\n\ntype Props = RouteComponentProps & ReduxState;\n\nconst NAV_LINKS = [\n {\n to: searchUrl.getUrl(),\n matches: searchUrl.matches,\n text: 'Search',\n },\n {\n to: (props: Props) => diffUrl.getUrl(props.traceDiff),\n matches: diffUrl.matches,\n text: 'Compare',\n },\n];\n\nif (getConfigValue('dependencies.menuEnabled')) {\n NAV_LINKS.push({\n to: dependencyGraph.getUrl(),\n matches: dependencyGraph.matches,\n text: 'System Architecture',\n });\n}\n\nif (getConfigValue('deepDependencies.menuEnabled')) {\n NAV_LINKS.push({\n to: deepDependencies.getUrl(),\n matches: deepDependencies.matches,\n text: 'Service Dependencies',\n });\n}\n\nfunction getItemLink(item: ConfigMenuItem) {\n const { label, anchorTarget, url } = item;\n return (\n \n
\n {label}\n \n \n );\n}\n\nfunction CustomNavDropdown({ label, items }: ConfigMenuGroup) {\n const menuItems = {items.map(getItemLink)};\n return (\n \n \n {label} \n \n \n );\n}\n\nfunction isItem(itemOrGroup: ConfigMenuItem | ConfigMenuGroup): itemOrGroup is ConfigMenuItem {\n return !_has(itemOrGroup, 'items');\n}\n\nexport function TopNavImpl(props: Props) {\n const { config, router } = props;\n const { pathname } = router.location;\n const menuItems = Array.isArray(config.menu) ? config.menu : [];\n return (\n
\n \n {menuItems.map(m => {\n if (isItem(m)) {\n return getItemLink(m);\n }\n return (\n \n \n \n );\n })}\n \n \n \n Jaeger UI\n \n \n \n \n {NAV_LINKS.map(({ matches, to, text }) => {\n const url = typeof to === 'string' ? to : to(props);\n const key = matches(pathname) ? pathname : url;\n return (\n \n {text}\n \n );\n })}\n \n
\n );\n}\n\nTopNavImpl.CustomNavDropdown = CustomNavDropdown;\n\n// export for tests\nexport function mapStateToProps(state: ReduxState) {\n return state;\n}\n\nexport default withRouter(connect(mapStateToProps)(TopNavImpl));\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/* eslint-disable camelcase */\nimport { RavenTransportOptions } from 'raven-js';\n\nimport prefixUrl from '../prefix-url';\n\nconst UNKNOWN_SYM = { sym: '??', word: '??' };\n\nconst NAV_SYMBOLS = [\n { sym: 'dp', word: 'dependencies', rx: /^\\/dep/i },\n { sym: 'tr', word: 'trace', rx: /^\\/trace/i },\n { sym: 'sd', word: 'search', rx: /^\\/search\\?./i },\n { sym: 'sr', word: 'search', rx: /^\\/search/i },\n { sym: 'rt', word: 'home', rx: /^\\/$/ },\n];\n\nconst FETCH_SYMBOLS = [\n { sym: 'svc', word: '', rx: /^\\/api\\/services$/i },\n { sym: 'op', word: '', rx: /^\\/api\\/.*?operations$/i },\n { sym: 'sr', word: '', rx: /^\\/api\\/traces\\?/i },\n { sym: 'tr', word: '', rx: /^\\/api\\/traces\\/./i },\n { sym: 'dp', word: '', rx: /^\\/api\\/dep/i },\n { sym: '__IGNORE__', word: '', rx: /\\.js(\\.map)?$/i },\n];\n\n// eslint-disable-next-line no-console\nconst warn = console.warn.bind(console);\n\n// common aspect of local URLs\nconst origin = window.location.origin + prefixUrl('');\n\n// truncate and use \"~\" instead of ellipsis bc it's shorter\nfunction truncate(str: string, len: number, front: boolean = false) {\n if (str.length > len) {\n if (!front) {\n return `${str.slice(0, len - 1)}~`;\n }\n return `~${str.slice(1 - len)}`;\n }\n return str;\n}\n\n// Replace newlines with \"|\" and collapse whitespace to \" \"\nfunction collapseWhitespace(value: string) {\n return value\n .trim()\n .replace(/\\n/g, '|')\n .replace(/\\s\\s+/g, ' ')\n .trim();\n}\n\n// shorten URLs to eitehr a short code or a word\nfunction getSym(syms: typeof NAV_SYMBOLS | typeof FETCH_SYMBOLS, str: string) {\n for (let i = 0; i < syms.length; i++) {\n const { rx } = syms[i];\n if (rx.test(str)) {\n return syms[i];\n }\n }\n warn(`Unable to find symbol for: \"${str}\"`);\n return UNKNOWN_SYM;\n}\n\n// Convert an error message to a shorter string with the first \"error\" removed,\n// a leading \"! \" added, and the first \":\" replaced with \"!\".\n//\n// Error: Houston we have a problem\n// ! Houston we have a problem\n//\n// Error: HTTP Error: Fetch failed\n// ! HTTP Error: Fetch failed\n//\n// TypeError: Awful things are happening\n// ! Type! Awful things are happening\n//\n// The real error message\n// ! The real error message\nfunction convErrorMessage(message: string, maxLen: number = 0) {\n let msg = collapseWhitespace(message);\n const parts = ['! '];\n const j = msg.indexOf(':');\n if (j > -1) {\n const start = msg\n .slice(0, j)\n .replace(/error/i, '')\n .trim();\n if (start) {\n parts.push(start, '! ');\n }\n msg = msg.slice(j + 1);\n }\n parts.push(msg.trim());\n const rv = parts.join('');\n return maxLen ? truncate(rv, maxLen) : parts.join('');\n}\n\n// Convert an exception to the error message and a compacted stack trace. The\n// message is truncated to 149 characters. The strack trace is compacted to the\n// following format:\n// From (array of objects):\n// { filename: 'http://origin/static/js/main.js', function: 'aFn' }\n// { filename: 'http://origin/static/js/main.js', function: 'bFn' }\n// { filename: 'http://origin/static/js/chunk.js', function: 'cFn' }\n// { filename: 'http://origin/static/js/chunk.js', function: 'dFn' }\n// To (string):\n// > main.js\n// aFn\n// bFn\n// > chunk.js\n// cFn\n// dFn\n//\ninterface IConvException {\n type: string;\n value: number;\n stacktrace: {\n frames: {\n filename: string;\n function: string;\n }[];\n };\n}\nfunction convException(errValue: IConvException) {\n const message = convErrorMessage(`${errValue.type}: ${errValue.value}`, 149);\n const frames = errValue.stacktrace.frames.map(fr => {\n const filename = fr.filename.replace(origin, '').replace(/^\\/static\\/js\\//i, '');\n const fn = collapseWhitespace(fr.function || '??');\n return { filename, fn };\n });\n const joiner = [];\n let lastFile = '';\n for (let i = frames.length - 1; i >= 0; i--) {\n const { filename, fn } = frames[i];\n if (lastFile !== filename) {\n joiner.push(`> ${filename}`);\n lastFile = filename;\n }\n joiner.push(fn);\n }\n return { message, stack: joiner.join('\\n') };\n}\n\n// Convert a navigation breadcrumb to one of the following string tokens:\n// \"dp\" - dependencies page\n// \"tr\" - trace page\n// \"sd\" - search page with search results\n// \"sr\" - search page\n// \"rt\" - the root page\nfunction convNav(to: string) {\n const sym = getSym(NAV_SYMBOLS, to);\n return sym.sym;\n}\n\n// Convert a HTTP fetch breadcrumb to a string token in one of the two\n// following forms:\n// \"[SYM]\"\n// \"[SYM|NNN]\"\n// Where \"SYM\" is one of:\n// \"svc\" - fetch the services for the search page\n// \"op\" - fetch the operations for a service\n// \"sr\" - execute a search\n// \"tr\" - fetch a trace\n// \"dp\" - fetch the dependency data\n// And, \"NNN\" is a non-200 status code.\ntype TCrumbData = {\n url: string;\n status_code: number;\n to: string;\n};\nfunction convFetch(data: TCrumbData) {\n const { url, status_code } = data;\n const statusStr = status_code === 200 ? '' : `|${status_code}`;\n const sym = getSym(FETCH_SYMBOLS, url);\n if (sym.sym === '__IGNORE__') {\n return null;\n }\n return `[${sym.sym}${statusStr}]`;\n}\n\n// Reduce the selector to something similar, but more compact. This is an\n// informal reduction, i.e. the selector may actually function completely\n// differently, but it should suffice as a reference for UI events. The\n// intention is to trim the selector to something more compact but still\n// recognizable.\n//\n// Some examples of the conversion:\n//\n// div.ub-relative. > span > span.detail-row-expanded-accent\n// => .detail-row-expanded-accent\n//\n// header > div.TracePageHeader--titleRow > button.ant-btn.ub-mr2[type=\"button\"]\n// => .TracePageHeader--titleRow >.ant-btn[type=\"button\"]\n//\n// span.SpanTreeOffset.is-parent > span.SpanTreeOffset--iconWrapper\n// => .SpanTreeOffset.is-parent >.SpanTreeOffset--iconWrapper\n//\n// div > div > div.AccordianLogs > a.AccordianLogs--header.\n// => .AccordianLogs >.AccordianLogs--header\n//\n// body > div > div > div.ant-modal-wrap.\n// => .ant-modal-wrap\n//\n// a.ub-flex-auto.ub-mr2 > h1.TracePageHeader--title\n// => .TracePageHeader--title\nfunction compressCssSelector(selector: string) {\n return (\n selector\n // cut dangling dots, \"div. > div\" to \"div > div\"\n .replace(/\\.(?=\\s|$)/g, '')\n // cut ub-* class names, \"a.ub-p.is-ok\" to \"a.is-ok\"\n .replace(/\\.ub-[^. [:]+/g, '')\n // cut leading tags, \"div > a > .cls\" to \".cls\"\n .replace(/^(\\w+ > )+/, '')\n // cut tag names when there is also a class, \"a.is-ok\" to \".is-ok\"\n .replace(/(^| )\\w+?(?=\\.)/g, '$1')\n // cut the first space in child selectors, \".is-ok > .yuh\" to \".is-ok >.yuh\"\n .replace(/ > /g, ' >')\n );\n}\n\n// Convert the breadcrumbs to a compact string, discarding quite a lot of\n// information.\n//\n// Navigation and HTTP fetch breadcrumbs are described above in `convFetch()`\n// and `convNav()`.\n//\n// Previously logged errors captured by sentry are truncated to 58 characters\n// and placed on their own line. Further, the first occurrence of \"error\" is\n// removed and the first \":\" is replaced with \"!\". E.g. the message:\n// \"Error: some error here with a very long message that will be truncated\"\n// Becomes:\n// \"\\n! some error here with a very long message that will be t~\\n\"\n//\n// UI breadcrumbs are reduced to the first letter after the \"ui.\". And,\n// repeated tokens are compacted to the form:\n// \"tN\"\n// Where \"t\" is the event type (\"c\" is click, \"i\" is input) and \"N\" is the\n// total number of times it occured in that sequence. E.g. \"c2\" indicates\n// two \"ui.click\" breadcrumbs.\n//\n// The chronological ordering of the breadcrumbs is older events precede newer\n// events. This ordering was kept because it's easier to see which page events\n// occurred on.\ninterface ICrumb {\n category: string;\n data: TCrumbData;\n message: string;\n selector: string;\n}\nfunction convBreadcrumbs(crumbs: ICrumb[]) {\n if (!Array.isArray(crumbs) || !crumbs.length) {\n return '';\n }\n // the last UI breadcrumb has the CSS selector included\n let iLastUi = -1;\n for (let i = crumbs.length - 1; i >= 0; i--) {\n if (crumbs[i].category.slice(0, 2) === 'ui') {\n iLastUi = i;\n break;\n }\n }\n let joiner: string[] = [];\n // note when we're on a newline to avoid extra newlines\n let onNewLine = true;\n for (let i = 0; i < crumbs.length; i++) {\n const c = crumbs[i];\n const cStart = c.category.split('.')[0];\n switch (cStart) {\n case 'fetch': {\n const fetched = convFetch(c.data);\n if (fetched) {\n joiner.push(fetched);\n onNewLine = false;\n }\n break;\n }\n\n case 'navigation': {\n const nav = `${onNewLine ? '' : '\\n'}\\n${convNav(c.data.to)}\\n`;\n joiner.push(nav);\n onNewLine = true;\n break;\n }\n\n case 'ui': {\n if (i === iLastUi) {\n const selector = compressCssSelector(c.message);\n joiner.push(`${c.category[3]}{${selector}}`);\n } else {\n joiner.push(c.category[3]);\n }\n onNewLine = false;\n break;\n }\n\n case 'sentry': {\n const msg = convErrorMessage(c.message, 58);\n joiner.push(`${onNewLine ? '' : '\\n'}${msg}\\n`);\n onNewLine = true;\n break;\n }\n\n default:\n // skip\n }\n }\n joiner = joiner.filter(Boolean);\n // combine repeating UI chars, e.g. [\"c\",\"c\",\"c\",\"c\"] -> [\"c\",\"4\"]\n let c = '';\n let ci = -1;\n const compacted = joiner.reduce((accum: string[], value: string, j: number): string[] => {\n if (value === c) {\n return accum;\n }\n if (c) {\n if (j - ci > 1) {\n accum.push(String(j - ci));\n }\n c = '';\n ci = -1;\n }\n accum.push(value);\n if (value.length === 1) {\n c = value;\n ci = j;\n }\n return accum;\n }, []);\n if (c && ci !== joiner.length - 1) {\n compacted.push(String(joiner.length - ci));\n }\n return compacted\n .join('')\n .trim()\n .replace(/\\n\\n\\n/g, '\\n');\n}\n\n// Create the GA label value from the message, page, duration, git info, and\n// breadcrumbs. See <./README.md> for details.\nfunction getLabel(message: string, page: string, duration: number, git: string, breadcrumbs: ICrumb[]) {\n const header = [message, page, duration, git, ''].filter(v => v != null).join('\\n');\n const crumbs = convBreadcrumbs(breadcrumbs);\n return `${header}\\n${truncate(crumbs, 498 - header.length, true)}`;\n}\n\n// Convert the Raven exception data to something that can be sent to Google\n// Analytics. See <./README.md> for details.\nexport default function convRavenToGa({ data }: RavenTransportOptions) {\n const { breadcrumbs, exception, extra, request, tags } = data;\n const { message, stack } = convException(exception.values[0]);\n const url = truncate(request.url.replace(origin, ''), 50);\n const { word: page } = getSym(NAV_SYMBOLS, url);\n const value = Math.round(extra['session:duration'] / 1000);\n const category = `jaeger/${page}/error`;\n let action = [message, tags && tags.git, url, '', stack].filter(v => v != null).join('\\n');\n action = truncate(action, 499);\n const label = getLabel(message, page, value, tags && tags.git, breadcrumbs && breadcrumbs.values);\n return {\n message,\n category,\n action,\n label,\n value,\n };\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport _get from 'lodash/get';\nimport queryString from 'query-string';\nimport ReactGA from 'react-ga';\nimport Raven, { RavenOptions, RavenTransportOptions } from 'raven-js';\n\nimport convRavenToGa from './conv-raven-to-ga';\nimport getConfig from '../config/get-config';\nimport { TNil } from '../../types';\n\nconst EVENT_LENGTHS = {\n action: 499,\n category: 149,\n label: 499,\n};\n\n// Util so \"0\" and \"false\" become false\nconst isTruish = (value?: string | string[]) => Boolean(value) && value !== '0' && value !== 'false';\n\nconst isProd = process.env.NODE_ENV === 'production';\nconst isDev = process.env.NODE_ENV === 'development';\nconst isTest = process.env.NODE_ENV === 'test';\n\n// In test mode if development and envvar REACT_APP_GA_DEBUG is true-ish\nconst isDebugMode =\n (isDev && isTruish(process.env.REACT_APP_GA_DEBUG)) ||\n isTruish(queryString.parse(_get(window, 'location.search'))['ga-debug']);\n\nconst config = getConfig();\nconst gaID = _get(config, 'tracking.gaID');\n// enable for tests, debug or if in prod with a GA ID\nexport const isGaEnabled = isTest || isDebugMode || (isProd && Boolean(gaID));\nconst isErrorsEnabled = isDebugMode || (isGaEnabled && Boolean(_get(config, 'tracking.trackErrors')));\n\n/* istanbul ignore next */\nfunction logTrackingCalls() {\n const calls = ReactGA.testModeAPI.calls;\n for (let i = 0; i < calls.length; i++) {\n // eslint-disable-next-line no-console\n console.log('[react-ga]', ...calls[i]);\n }\n calls.length = 0;\n}\n\nexport function trackPageView(pathname: string, search: string | TNil) {\n if (isGaEnabled) {\n const pagePath = search ? `${pathname}${search}` : pathname;\n ReactGA.pageview(pagePath);\n if (isDebugMode) {\n logTrackingCalls();\n }\n }\n}\n\nexport function trackError(description: string) {\n if (isGaEnabled) {\n let msg = description;\n if (!/^jaeger/i.test(msg)) {\n msg = `jaeger/${msg}`;\n }\n msg = msg.slice(0, 149);\n ReactGA.exception({ description: msg, fatal: false });\n if (isDebugMode) {\n logTrackingCalls();\n }\n }\n}\n\nexport function trackEvent(\n category: string,\n action: string,\n labelOrValue?: string | number | TNil,\n value?: number | TNil\n) {\n if (isGaEnabled) {\n const event: {\n action: string;\n category: string;\n label?: string;\n value?: number;\n } = {\n category: !/^jaeger/i.test(category)\n ? `jaeger/${category}`.slice(0, EVENT_LENGTHS.category)\n : category.slice(0, EVENT_LENGTHS.category),\n action: action.slice(0, EVENT_LENGTHS.action),\n };\n if (labelOrValue != null) {\n if (typeof labelOrValue === 'string') {\n event.label = labelOrValue.slice(0, EVENT_LENGTHS.action);\n } else {\n // value should be an int\n event.value = Math.round(labelOrValue);\n }\n }\n if (value != null) {\n event.value = Math.round(value);\n }\n ReactGA.event(event);\n if (isDebugMode) {\n logTrackingCalls();\n }\n }\n}\n\nfunction trackRavenError(ravenData: RavenTransportOptions) {\n const { message, category, action, label, value } = convRavenToGa(ravenData);\n trackError(message);\n trackEvent(category, action, label, value);\n}\n\n// Tracking needs to be initialized when this file is imported, e.g. early in\n// the process of initializing the app, so Raven can wrap various resources,\n// like `fetch()`, and generate breadcrumbs from them.\n\nif (isGaEnabled) {\n let versionShort;\n let versionLong;\n if (process.env.REACT_APP_VSN_STATE) {\n try {\n const data = JSON.parse(process.env.REACT_APP_VSN_STATE);\n const joiner = [data.objName];\n if (data.changed.hasChanged) {\n joiner.push(data.changed.pretty);\n }\n versionShort = joiner.join(' ');\n versionLong = data.pretty;\n } catch (_) {\n versionShort = process.env.REACT_APP_VSN_STATE;\n versionLong = process.env.REACT_APP_VSN_STATE;\n }\n versionLong = versionLong.length > 99 ? `${versionLong.slice(0, 96)}...` : versionLong;\n } else {\n versionShort = 'unknown';\n versionLong = 'unknown';\n }\n const gaConfig = { testMode: isTest || isDebugMode, titleCase: false };\n ReactGA.initialize(gaID || 'debug-mode', gaConfig);\n ReactGA.set({\n appId: 'github.com/jaegertracing/jaeger-ui',\n appName: 'Jaeger UI',\n appVersion: versionLong,\n });\n const cookiesToDimensions = _get(config, 'tracking.cookiesToDimensions');\n if (cookiesToDimensions) {\n cookiesToDimensions.forEach(({ cookie, dimension }: { cookie: string; dimension: string }) => {\n const match = ` ${document.cookie}`.match(new RegExp(`[; ]${cookie}=([^\\\\s;]*)`));\n if (match) ReactGA.set({ [dimension]: match[1] });\n // eslint-disable-next-line no-console\n else console.warn(`${cookie} not present in cookies, could not set dimension: ${dimension}`);\n });\n }\n if (isErrorsEnabled) {\n const ravenConfig: RavenOptions = {\n autoBreadcrumbs: {\n xhr: true,\n console: false,\n dom: true,\n location: true,\n },\n environment: process.env.NODE_ENV || 'unkonwn',\n transport: trackRavenError,\n };\n if (versionShort && versionShort !== 'unknown') {\n ravenConfig.tags = {\n git: versionShort,\n };\n }\n Raven.config('https://fakedsn@omg.com/1', ravenConfig).install();\n window.onunhandledrejection = function trackRejectedPromise(evt) {\n Raven.captureException(evt.reason);\n };\n }\n if (isDebugMode) {\n logTrackingCalls();\n }\n}\n\nexport const context = isErrorsEnabled ? Raven : null;\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Layout } from 'antd';\nimport cx from 'classnames';\nimport Helmet from 'react-helmet';\nimport { connect } from 'react-redux';\nimport { RouteComponentProps, withRouter } from 'react-router-dom';\n\nimport TopNav from './TopNav';\nimport { ReduxState } from '../../types';\nimport { EmbeddedState } from '../../types/embedded';\nimport { trackPageView } from '../../utils/tracking';\n\nimport './Page.css';\n\ntype TProps = RouteComponentProps & {\n children: React.ReactNode;\n embedded: EmbeddedState;\n pathname: string;\n search: string;\n};\n\nconst { Header, Content } = Layout;\n\n// export for tests\nexport class PageImpl extends React.Component {\n componentDidMount() {\n const { pathname, search } = this.props;\n trackPageView(pathname, search);\n }\n\n componentWillReceiveProps(nextProps: TProps) {\n const { pathname, search } = this.props;\n const { pathname: nextPathname, search: nextSearch } = nextProps;\n if (pathname !== nextPathname || search !== nextSearch) {\n trackPageView(nextPathname, nextSearch);\n }\n }\n\n render() {\n const { embedded } = this.props;\n const contentCls = cx({ 'Page--content': !embedded });\n return (\n
\n \n \n {!embedded && (\n
\n \n
\n )}\n {this.props.children}\n
\n
\n );\n }\n}\n\n// export for tests\nexport function mapStateToProps(state: ReduxState) {\n const { embedded } = state;\n const { pathname, search } = state.router.location;\n return { embedded, pathname, search };\n}\n\nexport default withRouter(connect(mapStateToProps)(PageImpl));\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport cytoscape from 'cytoscape';\nimport cydagre from 'cytoscape-dagre';\nimport dagre from 'dagre';\n\ncydagre(cytoscape, dagre);\n\nexport default class DAG extends React.Component {\n static propTypes = {\n serviceCalls: PropTypes.arrayOf(\n PropTypes.shape({\n parent: PropTypes.string,\n child: PropTypes.string,\n callCount: PropTypes.number,\n })\n ),\n };\n\n static defaultProps = {\n serviceCalls: [],\n };\n\n componentDidMount() {\n const { serviceCalls } = this.props;\n const nodeMap = {};\n const nodes = [];\n const edges = [];\n serviceCalls.forEach(d => {\n if (!nodeMap[d.parent]) {\n nodes.push({ data: { id: d.parent } });\n nodeMap[d.parent] = true;\n }\n if (!nodeMap[d.child]) {\n nodes.push({ data: { id: d.child } });\n nodeMap[d.child] = true;\n }\n edges.push({\n data: { source: d.parent, target: d.child, label: `${d.callCount}` },\n });\n });\n cytoscape({\n container: document.getElementById('cy'),\n boxSelectionEnabled: false,\n autounselectify: true,\n layout: {\n name: 'dagre',\n },\n minZoom: 0.5,\n style: [\n {\n selector: 'node',\n style: {\n content: 'data(id)',\n 'text-opacity': 0.5,\n 'text-valign': 'center',\n 'text-halign': 'right',\n 'background-color': '#11939A',\n },\n },\n {\n selector: 'edge',\n style: {\n width: 4,\n label: 'data(label)',\n 'target-arrow-shape': 'triangle',\n 'line-color': 'gray',\n 'target-arrow-color': 'gray',\n 'curve-style': 'bezier',\n },\n },\n ],\n elements: {\n nodes,\n edges,\n },\n });\n }\n\n render() {\n return (\n \n );\n }\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport * as React from 'react';\nimport { ForceGraphLink } from 'react-vis-force';\n\ntype TLink = {\n source: string | { id: string };\n target: string | { id: string };\n value: number;\n};\n\ntype TProps = {\n className?: string;\n color?: string;\n edgeOffset?: number;\n link: TLink;\n opacity?: number;\n stroke?: string;\n strokeWidth?: number;\n targetRadius?: number;\n};\n\nfunction linkId(link: TLink) {\n const { source, target } = link;\n const srcId = typeof source === 'string' ? source : source.id;\n const targetId = typeof target === 'string' ? target : target.id;\n return `${srcId}=>${targetId}`;\n}\n\nexport default class ForceGraphArrowLink extends React.PureComponent {\n static defaultProps = {\n className: '',\n edgeOffset: 2,\n opacity: 0.6,\n stroke: '#999',\n strokeWidth: 1,\n targetRadius: 2,\n };\n\n render() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { link, targetRadius, edgeOffset: _, ...spreadable } = this.props;\n const id = `arrow-${linkId(link)}`;\n return (\n \n \n \n {Number(targetRadius) > 0 && (\n \n )}\n \n \n\n \n \n );\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React, { Component } from 'react';\nimport { InteractiveForceGraph, ForceGraphNode } from 'react-vis-force';\nimport { window } from 'global';\nimport { debounce } from 'lodash';\nimport ForceGraphArrowLink from './ForceGraphArrowLink';\n\nimport { nodesPropTypes, linksPropTypes } from '../../propTypes/dependencies';\n\n// export for tests\nexport const chargeStrength = ({ radius = 5, orphan }) => (orphan ? -20 * radius : -12 * radius);\n\nexport default class DependencyForceGraph extends Component {\n static propTypes = {\n nodes: nodesPropTypes.isRequired,\n links: linksPropTypes.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n width: window.innerWidth,\n height: window.innerHeight,\n };\n }\n\n componentWillMount() {\n this.onResize();\n this.debouncedResize = debounce((...args) => this.onResize(...args), 50);\n window.addEventListener('resize', this.debouncedResize);\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.debouncedResize);\n }\n\n onResize() {\n const width = window.innerWidth;\n let height = window.innerHeight;\n if (this.container) {\n height -= this.container.offsetTop;\n }\n\n this.setState({ width, height });\n }\n\n render() {\n const { nodes, links } = this.props;\n const { width, height } = this.state;\n const nodesMap = new Map(nodes.map(node => [node.id, node]));\n\n return (\n {\n this.container = c;\n }\n }\n style={{ position: 'relative' }}\n >\n 1 ? 0.1 : 0.12,\n y: width / height < 1 ? 0.1 : 0.12,\n },\n }}\n labelOffset={{\n x: ({ radius }) => radius + 2,\n y: ({ radius }) => radius / 2,\n }}\n nodeAttrs={['orphan']}\n highlightDependencies\n >\n {nodes.map(({ labelStyle, labelClass, showLabel, opacity, fill, ...node }) => (\n \n ))}\n {links.map(({ opacity, ...link }) => (\n ${link.target}`}\n opacity={opacity}\n link={link}\n targetRadius={nodesMap.get(link.target).radius}\n />\n ))}\n \n \n );\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport PropTypes from 'prop-types';\n\nexport const nodesPropTypes = PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n radius: PropTypes.number.isRequired,\n })\n);\n\nexport const linksPropTypes = PropTypes.arrayOf(\n PropTypes.shape({\n source: PropTypes.string.isRequired,\n target: PropTypes.string.isRequired,\n target_node_size: PropTypes.number,\n value: PropTypes.number.isRequired,\n })\n);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React from 'react';\nimport { Icon } from 'antd';\n\nimport './LoadingIndicator.css';\n\ntype LoadingIndicatorProps = {\n centered?: boolean;\n className?: string;\n small?: boolean;\n};\n\nexport default function LoadingIndicator(props: LoadingIndicatorProps) {\n const { centered, className, small, ...rest } = props;\n const cls = `\n LoadingIndicator\n ${centered ? 'is-centered' : ''}\n ${small ? 'is-small' : ''}\n ${className || ''}\n `;\n return ;\n}\n\nLoadingIndicator.defaultProps = {\n centered: false,\n className: undefined,\n small: false,\n};\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport fetch from 'isomorphic-fetch';\nimport moment from 'moment';\nimport queryString from 'query-string';\n\nimport prefixUrl from '../utils/prefix-url';\n\n// export for tests\nexport function getMessageFromError(errData, status) {\n if (errData.code != null && errData.msg != null) {\n if (errData.code === status) {\n return errData.msg;\n }\n return `${errData.code} - ${errData.msg}`;\n }\n try {\n return JSON.stringify(errData);\n } catch (_) {\n return String(errData);\n }\n}\n\nfunction getJSON(url, options = {}) {\n const { query = null, ...init } = options;\n init.credentials = 'same-origin';\n const queryStr = query ? `?${queryString.stringify(query)}` : '';\n return fetch(`${url}${queryStr}`, init).then(response => {\n if (response.status < 400) {\n return response.json();\n }\n return response.text().then(bodyText => {\n let data;\n let bodyTextFmt;\n let errorMessage;\n try {\n data = JSON.parse(bodyText);\n bodyTextFmt = JSON.stringify(data, null, 2);\n } catch (_) {\n data = null;\n bodyTextFmt = null;\n }\n if (data && Array.isArray(data.errors) && data.errors.length) {\n errorMessage = data.errors.map(err => getMessageFromError(err, response.status)).join('; ');\n } else {\n errorMessage = bodyText || `${response.status} - ${response.statusText}`;\n }\n if (typeof errorMessage === 'string') {\n errorMessage = errorMessage.trim();\n }\n const error = new Error(`HTTP Error: ${errorMessage}`);\n error.httpStatus = response.status;\n error.httpStatusText = response.statusText;\n error.httpBody = bodyTextFmt || bodyText;\n error.httpUrl = url;\n error.httpQuery = typeof query === 'string' ? query : queryString.stringify(query);\n throw error;\n });\n });\n}\n\nexport const DEFAULT_API_ROOT = prefixUrl('/api/');\nexport const ANALYTICS_ROOT = prefixUrl('/analytics/');\nexport const DEFAULT_DEPENDENCY_LOOKBACK = moment.duration(1, 'weeks').asMilliseconds();\n\nconst JaegerAPI = {\n apiRoot: DEFAULT_API_ROOT,\n archiveTrace(id) {\n return getJSON(`${this.apiRoot}archive/${id}`, { method: 'POST' });\n },\n fetchDeepDependencyGraph(query) {\n return getJSON(`${ANALYTICS_ROOT}v1/dependencies`, { query });\n },\n fetchDependencies(endTs = new Date().getTime(), lookback = DEFAULT_DEPENDENCY_LOOKBACK) {\n return getJSON(`${this.apiRoot}dependencies`, { query: { endTs, lookback } });\n },\n fetchServiceOperations(serviceName) {\n return getJSON(`${this.apiRoot}services/${encodeURIComponent(serviceName)}/operations`);\n },\n fetchServiceServerOps(service) {\n return getJSON(`${this.apiRoot}operations`, {\n query: {\n service,\n spanKind: 'server',\n },\n });\n },\n fetchServices() {\n return getJSON(`${this.apiRoot}services`);\n },\n fetchTrace(id) {\n return getJSON(`${this.apiRoot}traces/${id}`);\n },\n searchTraces(query) {\n return getJSON(`${this.apiRoot}traces`, { query });\n },\n};\n\nexport default JaegerAPI;\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { createAction } from 'redux-actions';\nimport JaegerAPI from '../api/jaeger';\n\nexport const fetchTrace = createAction(\n '@JAEGER_API/FETCH_TRACE',\n id => JaegerAPI.fetchTrace(id),\n id => ({ id })\n);\n\nexport const fetchMultipleTraces = createAction(\n '@JAEGER_API/FETCH_MULTIPLE_TRACES',\n ids => JaegerAPI.searchTraces({ traceID: ids }),\n ids => ({ ids })\n);\n\nexport const archiveTrace = createAction(\n '@JAEGER_API/ARCHIVE_TRACE',\n id => JaegerAPI.archiveTrace(id),\n id => ({ id })\n);\n\nexport const searchTraces = createAction(\n '@JAEGER_API/SEARCH_TRACES',\n query => JaegerAPI.searchTraces(query),\n query => ({ query })\n);\n\nexport const fetchServices = createAction('@JAEGER_API/FETCH_SERVICES', () => JaegerAPI.fetchServices());\n\nexport const fetchServiceOperations = createAction(\n '@JAEGER_API/FETCH_SERVICE_OPERATIONS',\n serviceName => JaegerAPI.fetchServiceOperations(serviceName),\n serviceName => ({ serviceName })\n);\n\nexport const fetchServiceServerOps = createAction(\n '@JAEGER_API/FETCH_SERVICE_SERVER_OP',\n serviceName => JaegerAPI.fetchServiceServerOps(serviceName),\n serviceName => ({ serviceName })\n);\n\nexport const fetchDeepDependencyGraph = createAction(\n '@JAEGER_API/FETCH_DEEP_DEPENDENCY_GRAPH',\n query => JaegerAPI.fetchDeepDependencyGraph(query),\n query => ({ query })\n);\n\nexport const fetchDependencies = createAction('@JAEGER_API/FETCH_DEPENDENCIES', () =>\n JaegerAPI.fetchDependencies()\n);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { createSelector } from 'reselect';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const formatDependenciesAsNodesAndLinks = createSelector(\n ({ dependencies }) => dependencies,\n dependencies => {\n const data = dependencies.reduce(\n (response, link) => {\n const { nodeMap } = response;\n let { links } = response;\n\n // add both the parent and child to the node map, or increment their\n // call count.\n nodeMap[link.parent] = nodeMap[link.parent] ? nodeMap[link.parent] + link.callCount : link.callCount;\n nodeMap[link.child] = nodeMap[link.child]\n ? response.nodeMap[link.child] + link.callCount\n : link.callCount;\n\n // filter out self-dependent\n if (link.parent !== link.child) {\n links = links.concat([\n {\n source: link.parent,\n target: link.child,\n callCount: link.callCount,\n value: Math.max(Math.sqrt(link.callCount / 10000), 1),\n target_node_size: Math.max(Math.log(nodeMap[link.child] / 1000), 3),\n },\n ]);\n }\n\n return { nodeMap, links };\n },\n { nodeMap: {}, links: [] }\n );\n\n data.nodes = Object.keys(data.nodeMap).map(id => ({\n callCount: data.nodeMap[id],\n radius: Math.max(Math.log(data.nodeMap[id] / 1000), 3),\n orphan: data.links.findIndex(link => id === link.source || id === link.target) === -1,\n id,\n }));\n\n const { nodes, links } = data;\n\n return { nodes, links };\n }\n);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React, { Component } from 'react';\nimport { Tabs } from 'antd';\nimport PropTypes from 'prop-types';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\n\nimport DAG from './DAG';\nimport DependencyForceGraph from './DependencyForceGraph';\nimport ErrorMessage from '../common/ErrorMessage';\nimport LoadingIndicator from '../common/LoadingIndicator';\nimport * as jaegerApiActions from '../../actions/jaeger-api';\nimport { FALLBACK_DAG_MAX_NUM_SERVICES } from '../../constants';\nimport { nodesPropTypes, linksPropTypes } from '../../propTypes/dependencies';\nimport { formatDependenciesAsNodesAndLinks } from '../../selectors/dependencies';\nimport { getConfigValue } from '../../utils/config/get-config';\n\nimport './index.css';\n\nconst TabPane = Tabs.TabPane;\n\n// export for tests\nexport const GRAPH_TYPES = {\n FORCE_DIRECTED: { type: 'FORCE_DIRECTED', name: 'Force Directed Graph' },\n DAG: { type: 'DAG', name: 'DAG' },\n};\n\nconst dagMaxNumServices = getConfigValue('dependencies.dagMaxNumServices') || FALLBACK_DAG_MAX_NUM_SERVICES;\n\n// export for tests\nexport class DependencyGraphPageImpl extends Component {\n static propTypes = {\n // eslint-disable-next-line react/forbid-prop-types\n dependencies: PropTypes.any.isRequired,\n fetchDependencies: PropTypes.func.isRequired,\n nodes: nodesPropTypes,\n links: linksPropTypes,\n loading: PropTypes.bool.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n error: PropTypes.object,\n };\n\n static defaultProps = {\n nodes: null,\n links: null,\n error: null,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n graphType: 'FORCE_DIRECTED',\n };\n }\n\n componentWillMount() {\n this.props.fetchDependencies();\n }\n\n handleGraphTypeChange = graphType => this.setState({ graphType });\n\n render() {\n const { nodes, links, error, dependencies, loading } = this.props;\n const { graphType } = this.state;\n if (loading) {\n return ;\n }\n if (error) {\n return ;\n }\n\n if (!nodes || !links) {\n return
No service dependencies found.
;\n }\n\n const GRAPH_TYPE_OPTIONS = [GRAPH_TYPES.FORCE_DIRECTED];\n\n if (dependencies.length <= dagMaxNumServices) {\n GRAPH_TYPE_OPTIONS.push(GRAPH_TYPES.DAG);\n }\n\n return (\n \n {GRAPH_TYPE_OPTIONS.map(opt => (\n \n
\n {opt.type === 'FORCE_DIRECTED' && }\n {opt.type === 'DAG' && }\n
\n
\n ))}\n \n );\n }\n}\n\n// export for tests\nexport function mapStateToProps(state) {\n const { dependencies, error, loading } = state.dependencies;\n let links;\n let nodes;\n if (dependencies && dependencies.length > 0) {\n const formatted = formatDependenciesAsNodesAndLinks({ dependencies });\n links = formatted.links;\n nodes = formatted.nodes;\n }\n return { loading, error, nodes, links, dependencies };\n}\n\n// export for tests\nexport function mapDispatchToProps(dispatch) {\n const { fetchDependencies } = bindActionCreators(jaegerApiActions, dispatch);\n return { fetchDependencies };\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(DependencyGraphPageImpl);\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport _throttle from 'lodash/throttle';\n\nimport { trackEvent } from '.';\n\n// export for tests\nexport const ACTION_FILTER_SET = 'set';\nexport const ACTION_FILTER_CLEAR = 'clear';\n\nconst getTrackFilterSet = (category: string) =>\n _throttle(trackEvent.bind(null, category, ACTION_FILTER_SET), 750, {\n leading: false,\n });\n\nconst getTrackFilterClear = (category: string) =>\n _throttle(trackEvent.bind(null, category, ACTION_FILTER_CLEAR), 750, {\n leading: false,\n });\n\nexport default function getTrackFilter(category: string) {\n const trackFilterSet = getTrackFilterSet(category);\n const trackFilterClear = getTrackFilterClear(category);\n return (value: any) => (value ? trackFilterSet() : trackFilterClear());\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { EDdgDensity, EDirection } from '../../model/ddg/types';\nimport { trackEvent } from '../../utils/tracking';\nimport getTrackFilter from '../../utils/tracking/getTrackFilter';\n\n// export for tests\nexport const CATEGORY_DENSITY_CHANGE = 'jaeger/ux/ddg/density-change';\nexport const CATEGORY_DENSITY_SELECTION = 'jaeger/ux/ddg/density-selection';\nexport const CATEGORY_DOWNSTREAM_HOPS_CHANGE = 'jaeger/ux/ddg/downstream-hops-change';\nexport const CATEGORY_DOWNSTREAM_HOPS_SELECTION = 'jaeger/ux/ddg/downstream-hops-selection';\nexport const CATEGORY_FILTER = 'jaeger/ux/ddg/filter';\nexport const CATEGORY_MATCH_INTERACTIONS = 'jaeger/ux/ddg/match-interactions';\nexport const CATEGORY_SEARCH = 'jaeger/ux/ddg/search';\nexport const CATEGORY_TOGGLE_SHOW_OP = 'jaeger/ux/ddg/toggle-show-op';\nexport const CATEGORY_UPSTREAM_HOPS_CHANGE = 'jaeger/ux/ddg/upstream-hops-change';\nexport const CATEGORY_UPSTREAM_HOPS_SELECTION = 'jaeger/ux/ddg/upstream-hops-selection';\nexport const CATEGORY_VERTEX_INTERACTIONS = 'jaeger/ux/ddg/vertex-interactions';\n\n// export for tests\nexport const ACTION_CLEAR_OPERATION = 'clear-operation';\nexport const ACTION_DECREASE = 'decrease';\nexport const ACTION_FOCUS_PATHS = 'focus-paths';\nexport const ACTION_HIDE = 'hide';\nexport const ACTION_HIDE_CHILDREN = 'hide-children';\nexport const ACTION_HIDE_PARENTS = 'hide-parents';\nexport const ACTION_INCREASE = 'increase';\nexport const ACTION_SET_FOCUS = 'set-focus';\nexport const ACTION_SET_OPERATION = 'set-operation';\nexport const ACTION_SET_SERVICE = 'set-service';\nexport const ACTION_SHOW = 'show';\nexport const ACTION_SHOW_CHILDREN = 'show-children';\nexport const ACTION_SHOW_PARENTS = 'show-parents';\nexport const ACTION_VIEW_TRACES = 'view-traces';\n\nexport function trackClearOperation() {\n trackEvent(CATEGORY_SEARCH, ACTION_CLEAR_OPERATION);\n}\n\nexport function trackDensityChange(\n prevDensity: EDdgDensity,\n nextDensity: EDdgDensity,\n densities: ({ option: EDdgDensity } & Record)[]\n) {\n if (prevDensity === nextDensity) return;\n\n let prevIndex: number | undefined;\n let nextIndex: number | undefined;\n densities.forEach(({ option: density }, i) => {\n if (density === prevDensity) prevIndex = i;\n if (density === nextDensity) nextIndex = i;\n });\n\n if (prevIndex === undefined) {\n console.warn(`Received unknown density ${prevDensity}`); // eslint-disable-line no-console\n }\n if (nextIndex === undefined) {\n console.warn(`Received unknown density ${nextDensity}`); // eslint-disable-line no-console\n return;\n }\n if (prevIndex === undefined) return;\n\n const action = prevIndex > nextIndex ? ACTION_INCREASE : ACTION_DECREASE;\n trackEvent(CATEGORY_DENSITY_CHANGE, action);\n trackEvent(CATEGORY_DENSITY_SELECTION, nextDensity);\n}\n\nexport const trackFilter = getTrackFilter(CATEGORY_FILTER);\n\nexport function trackFocusPaths() {\n trackEvent(CATEGORY_VERTEX_INTERACTIONS, ACTION_FOCUS_PATHS);\n}\n\nexport function trackHeaderSetOperation() {\n trackEvent(CATEGORY_SEARCH, ACTION_SET_OPERATION);\n}\n\nexport function trackHide(direction?: EDirection) {\n if (!direction) {\n trackEvent(CATEGORY_VERTEX_INTERACTIONS, ACTION_HIDE);\n } else if (direction === EDirection.Upstream) {\n trackEvent(CATEGORY_VERTEX_INTERACTIONS, ACTION_HIDE_PARENTS);\n } else {\n trackEvent(CATEGORY_VERTEX_INTERACTIONS, ACTION_HIDE_CHILDREN);\n }\n}\n\nexport function trackHopChange(\n prevFurthestFullDistance: number,\n nextFurthestFullDistance: number,\n direction: EDirection\n) {\n if (prevFurthestFullDistance === nextFurthestFullDistance) return;\n\n const changeAction =\n Math.abs(nextFurthestFullDistance) > Math.abs(prevFurthestFullDistance)\n ? ACTION_INCREASE\n : ACTION_DECREASE;\n const [selectionCategory, changeCategory] =\n direction === EDirection.Upstream\n ? [CATEGORY_UPSTREAM_HOPS_SELECTION, CATEGORY_UPSTREAM_HOPS_CHANGE]\n : [CATEGORY_DOWNSTREAM_HOPS_SELECTION, CATEGORY_DOWNSTREAM_HOPS_CHANGE];\n trackEvent(selectionCategory, `${nextFurthestFullDistance}`);\n trackEvent(changeCategory, changeAction);\n}\n\nexport function trackShow(direction: EDirection) {\n if (direction === EDirection.Upstream) {\n trackEvent(CATEGORY_VERTEX_INTERACTIONS, ACTION_SHOW_PARENTS);\n } else {\n trackEvent(CATEGORY_VERTEX_INTERACTIONS, ACTION_SHOW_CHILDREN);\n }\n}\n\nexport function trackSetFocus() {\n trackEvent(CATEGORY_VERTEX_INTERACTIONS, ACTION_SET_FOCUS);\n}\n\nexport function trackSetService() {\n trackEvent(CATEGORY_SEARCH, ACTION_SET_SERVICE);\n}\n\nexport function trackShowMatches() {\n trackEvent(CATEGORY_MATCH_INTERACTIONS, ACTION_SHOW);\n}\n\nexport function trackToggleShowOp(value: boolean) {\n const action = value ? ACTION_SHOW : ACTION_HIDE;\n trackEvent(CATEGORY_TOGGLE_SHOW_OP, action);\n}\n\nexport function trackVertexSetOperation() {\n trackEvent(CATEGORY_VERTEX_INTERACTIONS, ACTION_SET_OPERATION);\n}\n\nexport function trackViewTraces() {\n trackEvent(CATEGORY_VERTEX_INTERACTIONS, ACTION_VIEW_TRACES);\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/* eslint-disable no-bitwise */\n\nimport memoize from 'lru-memoize';\n\nimport { EDirection, TDdgModel } from './types';\n\nconst COUNT_INDICATOR = '~';\nconst DELIMITER = '.';\n// This bucket size was chosen as JavaScript uses 32-bit numbers for bitwise operators, so the maximum number\n// of indices that can be tracked in a single number is 32. Increasing from 31 visibility values per base36\n// number to 32 visibility values would require an additional base36 character, which reduces the efficiency.\n// For more info: https://repl.it/repls/IllfatedMaroonObservation\nconst VISIBILITY_BUCKET_SIZE = 31;\n\n/*\n * Converts string csv of base36 numbers into array of visible indices.\n *\n * @param {string} encoded - base36 csv visibility encoding.\n * @returns {number[]} - Visible indices for this encoding.\n */\nexport const decode: (encoded: string) => number[] = memoize(10)((encoded: string): number[] => {\n const rv: number[] = [];\n let i = 0;\n encoded.split(DELIMITER).forEach(tupleStr => {\n const [partial, c = '1'] = tupleStr.split(COUNT_INDICATOR);\n const count = parseInt(c, 36);\n const partialAsNumber = partial ? parseInt(partial, 36) : 0;\n // Because JavaScript bitwise operators wrap when exceeding 32 bits, the second check is necessary to\n // prevent an infinite loop if (partialAsNuber & i << 31) is truthy.\n for (let j = 0; partialAsNumber >= 1 << j && j < VISIBILITY_BUCKET_SIZE; j += 1) {\n if ((1 << j) & partialAsNumber) {\n for (let k = 0; k < count; k += 1) {\n rv.push((i + k) * VISIBILITY_BUCKET_SIZE + j);\n }\n }\n }\n i += count;\n });\n return rv;\n});\n\n/*\n * Given a visibility index, returns the index of the bucket that contains the given index and the power of\n * two that would reflect the given index being visible, relative to the bucket it resides in.\n *\n * @param {number} visibilityIdx - An index within the visibility key\n * @returns {object} - Two numbers relating to the given number.\n * bucketIdx - Index of the JavaScript number in getBuckets that contains the visibility data for the\n * given index.\n * visibilityValue - A power of two that can be used with getBuckets(key)[bucketIdx] to determine if the\n * given index is visible, or to change its visibility.\n */\nfunction convertAbsoluteIdxToRelativeValues(absIdx: number) {\n const csvIdx = Math.floor(absIdx / VISIBILITY_BUCKET_SIZE);\n const relativeIdx = absIdx % VISIBILITY_BUCKET_SIZE;\n const visibilityValue = 1 << relativeIdx;\n return { csvIdx, visibilityValue };\n}\n\n/*\n * Converts array of visible indices into string csv of base36 numbers.\n *\n * @param {number[]} decoded - Visible indices for this encoding.\n * @returns {string} - base36 csv visibility encoding.\n */\nexport const encode = (decoded: number[]): string => {\n const partials: number[] = [];\n decoded.forEach(visIdx => {\n const { csvIdx, visibilityValue } = convertAbsoluteIdxToRelativeValues(visIdx);\n partials[csvIdx] |= visibilityValue;\n });\n\n const condensed: [number, number][] = [];\n // for loop is necessary instead of forEach as partials can contain `empty`\n for (let i = 0; i < partials.length; i++) {\n const partial = partials[i];\n const tuple = condensed[condensed.length - 1];\n if (!tuple || tuple[0] !== partial) {\n condensed.push([partial, 1]);\n } else {\n tuple[1] += 1;\n }\n }\n\n return condensed\n .map(([partial, count]) => {\n const encoded = partial ? partial.toString(36) : '';\n const suffix = count !== 1 ? `${COUNT_INDICATOR}${count.toString(36)}` : '';\n return `${encoded}${suffix}`;\n })\n .join(DELIMITER);\n};\n\n/**\n * Creates a string csv of base36 such that all indices between 0 and the distance, inclusive, are visible,\n * and all other indices in that direction are hidden. Indices in the opposite direction are unchanged.\n *\n * @param {Object} kwarg - Object containing arguments to encodeDistance.\n * @param {TDdgModel} kwarg.ddgModel - Model used to determine which indices exist at difference distances.\n * @param {EDirection} kwarg.direction - Direction of affected indices.\n * @param {number} kwarg.distance - Range of indices to include.\n * @param {string} [kwarg.prevVisEncoding] - Previous visibility encoding. Encoded indices opposite of\n * affected direction will persist in new encoding. If absent, two hops is the default to preserve.\n * @returns {string} - New base36 csv visibility encoding.\n */\nexport const encodeDistance = ({\n ddgModel,\n direction,\n distance,\n prevVisEncoding,\n}: {\n ddgModel: TDdgModel;\n direction: EDirection;\n distance: number;\n prevVisEncoding?: string;\n}): string => {\n if (Math.sign(distance) === -1 * Math.sign(direction)) {\n throw new Error(`Distance (${distance}) and direction (${direction}) cannot have opposite signs`);\n }\n\n const { distanceToPathElems, visIdxToPathElem } = ddgModel;\n\n let nextVisible: number[];\n if (prevVisEncoding) {\n nextVisible = decode(prevVisEncoding).filter(\n idx => visIdxToPathElem[idx] && Math.sign(visIdxToPathElem[idx].distance) !== direction\n );\n } else {\n nextVisible = [\n ...(distanceToPathElems.get(-1 * direction) || []),\n ...(distanceToPathElems.get(-2 * direction) || []),\n ].map(({ visibilityIdx }) => visibilityIdx);\n }\n\n for (let i = 0; i !== distance + direction; i += direction) {\n const elems = distanceToPathElems.get(i);\n if (elems) {\n nextVisible.push(...elems.map(({ visibilityIdx }) => visibilityIdx));\n }\n }\n\n return encode(nextVisible);\n};\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport IoChevronDown from 'react-icons/lib/io/chevron-down';\n\nimport './ChevronDown.css';\n\ntype TProps = {\n className?: string;\n style?: React.CSSProperties;\n};\n\nfunction ChevronDown(props: TProps) {\n const { className, style } = props;\n const cls = `Ddg--Header--ChevronDown ${className || ''}`;\n return ;\n}\n\nexport default React.memo(ChevronDown);\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React, { PureComponent } from 'react';\nimport { Popover } from 'antd';\nimport SortAmountAsc from 'react-icons/lib/fa/sort-amount-asc.js';\nimport IoChevronRight from 'react-icons/lib/io/chevron-right';\n\nimport ChevronDown from '../ChevronDown';\nimport { trackHopChange } from '../../index.track';\nimport { ECheckedStatus, EDirection, THop } from '../../../../model/ddg/types';\n\nimport './Selector.css';\n\ntype TProps = {\n direction: EDirection;\n furthestDistance: number;\n furthestFullDistance: number;\n furthestFullness: ECheckedStatus;\n handleClick: (distance: number, direction: EDirection) => void;\n hops: THop[];\n};\n\nconst CLASSNAME = 'HopsSelector--Selector';\n\nexport default class Selector extends PureComponent {\n private handleClick(distance: number) {\n const { direction, furthestFullDistance, handleClick } = this.props;\n handleClick(distance, direction);\n trackHopChange(furthestFullDistance, distance, direction);\n }\n\n private makeBtn = (\n { distance, fullness, suffix = 'popover-content' }: THop & { suffix?: string },\n showChevron?: number\n ) => {\n const { direction } = this.props;\n return (\n \n {Boolean(showChevron) && }\n this.handleClick(distance)}\n >\n {Math.abs(distance)}\n \n \n );\n };\n\n render() {\n const { direction, furthestDistance, furthestFullness, handleClick, hops } = this.props;\n const streamText = direction === EDirection.Downstream ? 'Down' : 'Up';\n const streamLabel = `${streamText}stream hops`;\n const lowercaseLabel = streamLabel.toLowerCase();\n if (hops.length <= 1) {\n return No {lowercaseLabel};\n }\n\n const decrementBtn = (\n handleClick(furthestDistance - direction, direction)}\n >\n -\n \n );\n const incrementBtn = (\n handleClick(furthestDistance + direction, direction)}\n >\n +\n \n );\n const delimiterBtn = this.makeBtn({\n ...hops[hops.length - 1],\n suffix: 'delimiter',\n });\n const furthestBtn = this.makeBtn({\n distance: furthestDistance,\n fullness: furthestFullness,\n suffix: 'furthest',\n });\n\n return (\n \n \n \n {streamLabel}\n {furthestBtn}\n /\n {delimiterBtn}\n {/* */}\n \n \n \n );\n }\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React, { memo } from 'react';\n\nimport { decode } from '../../../../model/ddg/visibility-codec';\nimport { ECheckedStatus, EDirection, TDdgDistanceToPathElems, THop } from '../../../../model/ddg/types';\nimport Selector from './Selector';\n\ntype TProps = {\n distanceToPathElems?: TDdgDistanceToPathElems;\n handleClick: (distance: number, direction: EDirection) => void;\n visEncoding?: string;\n};\n\nexport default memo(function HopsSelector({ distanceToPathElems, handleClick, visEncoding }: TProps) {\n if (!distanceToPathElems) return
;\n\n const downstreamHops: THop[] = [];\n const upstreamHops: THop[] = [];\n let minFullDistance = 0;\n let minVisDistance = 0;\n let minVisDistanceFullness = ECheckedStatus.Empty;\n let maxFullDistance = 0;\n let maxVisDistance = 0;\n let maxVisDistanceFullness = ECheckedStatus.Empty;\n const visibleIndices = visEncoding && new Set(decode(visEncoding));\n\n distanceToPathElems.forEach((elems, distance) => {\n let fullness: ECheckedStatus;\n if (visibleIndices) {\n const visible = elems.filter(({ visibilityIdx }) => visibleIndices.has(visibilityIdx));\n if (visible.length === elems.length) {\n fullness = ECheckedStatus.Full;\n } else if (!visible.length) {\n fullness = ECheckedStatus.Empty;\n } else {\n fullness = ECheckedStatus.Partial;\n }\n } else {\n fullness = Math.abs(distance) <= 2 ? ECheckedStatus.Full : ECheckedStatus.Empty;\n }\n\n if (distance >= 0) downstreamHops.push({ distance, fullness });\n if (distance <= 0) upstreamHops.push({ distance, fullness });\n\n if (fullness !== ECheckedStatus.Empty) {\n if (distance >= maxVisDistance) {\n maxVisDistance = distance;\n maxVisDistanceFullness = fullness;\n }\n if (distance <= minVisDistance) {\n minVisDistance = distance;\n minVisDistanceFullness = fullness;\n }\n }\n\n if (fullness === ECheckedStatus.Full) {\n if (distance >= maxFullDistance) maxFullDistance = distance;\n if (distance <= minFullDistance) minFullDistance = distance;\n }\n });\n\n downstreamHops.sort(({ distance: a }, { distance: b }) => a - b);\n upstreamHops.sort(({ distance: a }, { distance: b }) => b - a);\n\n return (\n
\n \n \n
\n );\n});\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\n\nimport './BreakableText.css';\n\nconst WORD_RX = /\\W*\\w+\\W*/g;\n\ntype Props = {\n text: string;\n className?: string;\n wordRegexp?: RegExp;\n};\n\n// TODO typescript doesn't understand text or null as react nodes\n// https://github.com/Microsoft/TypeScript/issues/21699\nexport default function BreakableText(\n props: Props\n): any /* React.ReactNode /* React.ReactElement | React.ReactElement[] \\*\\/ */ {\n const { className, text, wordRegexp = WORD_RX } = props;\n if (!text) {\n return typeof text === 'string' ? text : null;\n }\n const spans = [];\n wordRegexp.exec('');\n // if the given text has no words, set the first match to the entire text\n let match: RegExpExecArray | string[] | null = wordRegexp.exec(text) || [text];\n while (match) {\n spans.push(\n \n {match[0]}\n \n );\n match = wordRegexp.exec(text);\n }\n return spans;\n}\n\nBreakableText.defaultProps = {\n className: 'BreakableText',\n wordRegexp: WORD_RX,\n};\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport memoize from 'lru-memoize';\n\ntype TIsHighlightGroupFn = (index: number) => boolean;\n\ntype THighlightMatchFn = (match: RegExpMatchArray) => React.ReactNode;\n\nfunction toHighlights(isHighlightGroup: TIsHighlightGroupFn, match: RegExpMatchArray) {\n const texts = match\n .map((tx: string, i: number) => {\n if (i === 0 || !tx) {\n // the first group is the full match, not a capturing group\n return null;\n }\n if (isHighlightGroup(i)) {\n return {tx};\n }\n return tx;\n })\n .filter(Boolean);\n return {texts};\n}\n\n// In the matches from the regular expressions created in `MatchHighlighter`,\n// text that should be highlighted is interleaved with text that shouldn't be\n// highlighted. E.g. alternating capturing groups should be highlighted,\n// regardless of how many capturing groups there are in the match. Therefore, we\n// need to establish if the first capturing group (i.e. match[1]) should be\n// highlighted or if it should start at match[2]. Then, we alternate, from there.\n// This results in either highlighting even groups (starting at match[2]) or odd\n// groups (starting at match[1]). However, we don't actually need to highlight\n// odd groups, but just the first group (match[1]), so we can simplify that test.\nconst highlightEvenGroups = toHighlights.bind(null, (index: number) => index % 2 === 0);\nconst highlightFirstGroup = toHighlights.bind(null, (index: number) => index === 1);\n\nconst ANY_LAZY = '(.*?)';\nconst ANY_GREEDY = '(.*)';\n\nfunction wordBreak(lowerLetter: string) {\n return `(\\\\b${lowerLetter}|${lowerLetter.toUpperCase()})`;\n}\n\nfunction letterClass(lowerLetter: string) {\n return `[${lowerLetter}${lowerLetter.toUpperCase()}]`;\n}\n\n/**\n * Create regular expressions used for highlighting matches between the query\n * and the text. This is derived from the match-sorter ranking system description:\n * https://github.com/kentcdodds/match-sorter#this-solution\n *\n * Several regular expressions are created from the filterText. These roughly\n * align with the ranking system described in the link. They are used to divide\n * input text into emphasized and non-emphasized sections.\n */\nclass MatchHighlighter {\n public static make(query: string) {\n return new MatchHighlighter(query);\n }\n\n private readonly matchers: [RegExp, THighlightMatchFn][];\n\n constructor(readonly query: string) {\n // istanbul ignore next\n if (!query) {\n this.matchers = [];\n return;\n }\n const tx = query.toLowerCase();\n const initialCap = `${tx[0].toUpperCase()}${tx.slice(1)}`;\n const letters = tx.split('');\n const startsWith = `^(${tx})`;\n const wordStartsWith = `(\\\\b${letters.map(letterClass).join('')}|${initialCap})`;\n const acronymLetters = letters.map(letter => wordBreak(letter)).join(ANY_LAZY);\n const constains = `(${tx})`;\n const anyLetters = letters.map(letter => `(${letter})`).join(ANY_LAZY);\n\n // given the query \"eg\", the following regular expressions will be created:\n this.matchers = [\n // case-insensitive match at start of text, would match \"ego\" but not \"lego\"\n // /^(eg)(.*)/i\n [new RegExp(`${startsWith}${ANY_GREEDY}`, 'i'), highlightFirstGroup],\n\n // case-insensitive match at start of word, with boundaries in camelCase counting as words\n // would match \"theEgg\" and \"the-egg\"\n // /(.*?)(\\b[eE][gG]|Eg)(.*)/\n [new RegExp(`${ANY_LAZY}${wordStartsWith}${ANY_GREEDY}`), highlightEvenGroups],\n\n // match an acronym, e.g. \"easy-going\" and \"easyGoing\" would both match \"eg\"\n // /(.*?)(\\be|E)(.*?)(\\bg|G)(.*)/\n [new RegExp(`${ANY_LAZY}${acronymLetters}${ANY_GREEDY}`), highlightEvenGroups],\n\n // case insensitive contains\n // /(.*?)(eg)(.*)/i\n [new RegExp(`${ANY_LAZY}${constains}${ANY_GREEDY}`, 'i'), highlightEvenGroups],\n\n // contains each letter, in sequence\n // /(.*?)(e)(.*?)(g)(.*)/i\n [new RegExp(`${ANY_LAZY}${anyLetters}${ANY_GREEDY}`, 'i'), highlightEvenGroups],\n ];\n }\n\n highlightMatches(text: string) {\n if (!text) {\n return text;\n }\n for (let i = 0; i < this.matchers.length; i++) {\n const [matcher, highlightMatch] = this.matchers[i];\n const match = text.match(matcher);\n if (match) {\n return highlightMatch(match);\n }\n }\n return text;\n }\n}\n\nconst getHighlighter = memoize(30)(MatchHighlighter.make);\n\nfunction highlightMatchesImpl(query: string, text: string) {\n if (!query) {\n return text;\n }\n return getHighlighter(query).highlightMatches(text);\n}\n\nexport default memoize(200)(highlightMatchesImpl);\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport cx from 'classnames';\nimport { ListChildComponentProps } from 'react-window';\n\nimport highlightMatches from './highlightMatches';\n\nimport './ListItem.css';\n\ninterface IListItemProps extends ListChildComponentProps {\n data: {\n focusedIndex: number | null;\n highlightQuery: string;\n options: string[];\n selectedValue: string | null;\n setValue: (value: string) => void;\n };\n}\n\nexport default class ListItem extends React.PureComponent {\n onClicked = () => {\n const { data, index } = this.props;\n const { options, setValue } = data;\n const value = options[index];\n setValue(value);\n };\n\n render() {\n const { data, index, style: styleOrig } = this.props;\n // omit the width from the style so the panel can scroll horizontally\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { width: _, ...style } = styleOrig;\n const { focusedIndex, highlightQuery, options, selectedValue } = data;\n const cls = cx('FilteredList--ListItem', {\n 'is-focused': index === focusedIndex,\n 'is-selected': options[index] === selectedValue,\n 'is-striped': index % 2,\n });\n return (\n \n {highlightMatches(highlightQuery, options[index])}\n
\n );\n }\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport _debounce from 'lodash/debounce';\nimport matchSorter from 'match-sorter';\nimport IoIosSearch from 'react-icons/lib/io/ios-search';\nimport { FixedSizeList as VList, ListOnItemsRenderedProps, ListOnScrollProps } from 'react-window';\nimport { Key as EKey } from 'ts-key-enum';\n\nimport ListItem from './ListItem';\n\nimport './index.css';\n\ntype TProps = {\n cancel: () => void;\n options: string[];\n value: string | null;\n setValue: (value: string) => void;\n};\n\ntype TState = {\n filterText: string;\n visibleStartIndex: number;\n visibleStopIndex: number;\n focusedIndex: number | null;\n};\n\nexport default class FilteredList extends React.PureComponent {\n inputRef: React.RefObject = React.createRef();\n vlistRef: React.RefObject = React.createRef();\n wrapperRef: React.RefObject = React.createRef();\n state: TState = {\n filterText: '',\n focusedIndex: null,\n visibleStartIndex: 0,\n visibleStopIndex: 0,\n };\n\n componentDidUpdate() {\n this.focusInput();\n }\n\n focusInput = () => {\n const { current } = this.inputRef;\n if (current) {\n current.focus();\n }\n };\n\n isMouseWithin() {\n const { current } = this.wrapperRef;\n return current != null && current.matches(':hover');\n }\n\n private getFilteredOptions = () => {\n const { options } = this.props;\n const { filterText } = this.state;\n return filterText ? matchSorter(options, filterText) : options;\n };\n\n private setValue = (value: string) => {\n this.props.setValue(value);\n this.setState({ filterText: '', focusedIndex: null });\n };\n\n private onKeyDown = (event: React.KeyboardEvent) => {\n const { focusedIndex: stFocused } = this.state;\n switch (event.key) {\n case EKey.Escape: {\n const { cancel } = this.props;\n this.setState({ filterText: '', focusedIndex: null });\n cancel();\n break;\n }\n case EKey.ArrowUp:\n case EKey.ArrowDown: {\n const { visibleStartIndex, visibleStopIndex } = this.state;\n let focusedIndex: number | void;\n if (stFocused == null) {\n focusedIndex = event.key === EKey.ArrowDown ? visibleStartIndex : visibleStopIndex;\n this.setState({ focusedIndex });\n } else {\n const offset = event.key === EKey.ArrowDown ? 1 : -1;\n const filteredOptions = this.getFilteredOptions();\n const i = stFocused + offset;\n focusedIndex = i > -1 ? i % filteredOptions.length : filteredOptions.length + i;\n this.setState({ focusedIndex });\n }\n const listInstance = this.vlistRef.current;\n if (listInstance && (focusedIndex < visibleStartIndex + 1 || focusedIndex > visibleStopIndex - 1)) {\n listInstance.scrollToItem(focusedIndex);\n }\n break;\n }\n case EKey.Enter: {\n const filteredOptions = this.getFilteredOptions();\n if (stFocused !== null) this.setValue(filteredOptions[stFocused]);\n else if (filteredOptions.length === 1) this.setValue(filteredOptions[0]);\n break;\n }\n default: // no-op\n }\n };\n\n private onListScrolled = _debounce((scrollInfo: ListOnScrollProps) => {\n if (!scrollInfo.scrollUpdateWasRequested) {\n this.setState({ focusedIndex: null });\n }\n }, 80);\n\n private onListItemsRendered = _debounce((viewInfo: ListOnItemsRenderedProps) => {\n const { visibleStartIndex, visibleStopIndex } = viewInfo;\n this.setState({ visibleStartIndex, visibleStopIndex });\n }, 80);\n\n private onFilterChanged = (event: React.ChangeEvent) => {\n this.setState({ filterText: event.target.value, focusedIndex: null });\n };\n\n render() {\n const { value } = this.props;\n const { filterText, focusedIndex } = this.state;\n const filteredOptions = this.getFilteredOptions();\n const data = {\n focusedIndex,\n highlightQuery: filterText,\n options: filteredOptions,\n selectedValue: value,\n setValue: this.setValue,\n };\n return (\n
\n \n \n {ListItem}\n \n
\n );\n }\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Icon, Popover } from 'antd';\nimport cx from 'classnames';\nimport IoChevronDown from 'react-icons/lib/io/chevron-down';\n\nimport BreakableText from '../../common/BreakableText';\nimport FilteredList from '../../common/FilteredList';\n\nimport './NameSelector.css';\n\ntype TOptional = {\n clearValue: () => void;\n required?: false;\n};\n\ntype TRequired = {\n clearValue?: never;\n required: true;\n};\n\ntype TProps = {\n label: string;\n placeholder?: boolean | string;\n options: string[];\n value: string | null;\n setValue: (value: string) => void;\n} & (TOptional | TRequired);\n\ntype TState = {\n popoverVisible: boolean;\n};\n\nexport const DEFAULT_PLACEHOLDER = 'Select a value…';\n\nexport default class NameSelector extends React.PureComponent {\n listRef: React.RefObject = React.createRef();\n state: TState = { popoverVisible: false };\n\n componentDidUpdate() {\n if (this.listRef.current && this.state.popoverVisible) {\n this.listRef.current.focusInput();\n }\n }\n\n private changeVisible(popoverVisible: boolean) {\n if (popoverVisible) {\n window.document.body.addEventListener('click', this.onBodyClicked);\n } else {\n window.document.body.removeEventListener('click', this.onBodyClicked);\n }\n this.setState({ popoverVisible });\n }\n\n private clearValue = (evt: React.MouseEvent) => {\n if (this.props.required) throw new Error('Cannot clear value of required NameSelector');\n\n evt.stopPropagation();\n this.props.clearValue();\n };\n\n setValue = (value: string) => {\n this.props.setValue(value);\n this.changeVisible(false);\n };\n\n private onBodyClicked = () => {\n if (this.listRef.current && !this.listRef.current.isMouseWithin()) {\n this.changeVisible(false);\n }\n };\n\n onFilterCancelled = () => {\n this.changeVisible(false);\n };\n\n onPopoverVisibleChanged = (popoverVisible: boolean) => {\n this.changeVisible(popoverVisible);\n };\n\n render() {\n const { label, options, placeholder = false, required = false, value } = this.props;\n const { popoverVisible } = this.state;\n\n const rootCls = cx('NameSelector', {\n 'is-active': popoverVisible,\n 'is-invalid': required && !value,\n });\n let useLabel = true;\n let text = value || '';\n if (!value && placeholder) {\n useLabel = false;\n text = typeof placeholder === 'string' ? placeholder : DEFAULT_PLACEHOLDER;\n }\n return (\n \n }\n trigger=\"click\"\n visible={popoverVisible}\n >\n

\n {useLabel && {label}:}\n \n \n {!required && value && (\n \n )}\n

\n \n );\n }\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\n\nimport './settingsIcon.css';\n\n// Adapted from the SVG at:\n// https://raw.githubusercontent.com/google/material-design-icons/master/image/svg/production/ic_tune_24px.svg\n//\n// Retrieved on August 9, 2019. Licensed as Apache 2.0\n// https://github.com/google/material-design-icons/blob/master/LICENSE\nexport default (\n \n \n \n);\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Checkbox, Popover, Radio } from 'antd';\nimport { CheckboxChangeEvent } from 'antd/lib/checkbox';\nimport { RadioChangeEvent } from 'antd/lib/radio';\n\nimport settingsIcon from './settingsIcon';\nimport ChevronDown from '../ChevronDown';\nimport { EDdgDensity } from '../../../../model/ddg/types';\nimport { trackDensityChange, trackToggleShowOp } from '../../index.track';\n\nimport './index.css';\n\ntype TProps = {\n density: EDdgDensity;\n setDensity: (density: EDdgDensity) => void;\n showOperations: boolean;\n toggleShowOperations: (enable: boolean) => void;\n};\n\nconst cssCls = (() => {\n const CLASSNAME_PREFIX = 'Ddg--LayoutSettings';\n return (namePart?: string) => (namePart ? `${CLASSNAME_PREFIX}--${namePart}` : CLASSNAME_PREFIX);\n})();\n\n// exported for tests\nexport const densityOptions = [\n {\n option: EDdgDensity.MostConcise,\n title: 'One node per resource',\n note: 'Most conscise',\n description:\n \"This setting represents each resource one time in the graph, regardless of whether or not it's upstream or downstream of the focal node. This results in the most dense graph layout, possible.\",\n },\n {\n option: EDdgDensity.UpstreamVsDownstream,\n title: 'Separate upstream from downstream nodes',\n description:\n 'This setting differentiates upstream nodes from downstream nodes. And, within the each section, a given resource is represented by only one node.',\n },\n {\n option: EDdgDensity.OnePerLevel,\n title: 'One resource per level',\n description:\n 'Represents each resource at most one time for any given level, or number of hops, from the focal node.',\n },\n {\n option: EDdgDensity.PreventPathEntanglement,\n title: 'Show paths to the focal node',\n description:\n 'Each unique path to the focal node, both upstream and downstream, is represented. A resource (e.g. a service or service:operation) can be represented more than once if it is present in more than one path to the focal node.',\n },\n {\n option: EDdgDensity.ExternalVsInternal,\n title: 'Separate internal from external nodes',\n note: 'Most detailed',\n description:\n 'This is similar to the setting, above, but this setting also differentiates internal from external nodes.',\n },\n];\n\nexport default class LayoutSettings extends React.PureComponent {\n private updateDensity = (event: RadioChangeEvent) => {\n const { density: prevDensity } = this.props;\n const { value: nextDensity } = event.target;\n if (prevDensity === nextDensity) return;\n trackDensityChange(prevDensity, nextDensity, densityOptions);\n this.props.setDensity(nextDensity);\n };\n\n private toggleShowOperations = (event: CheckboxChangeEvent) => {\n const { checked } = event.target;\n trackToggleShowOp(checked);\n this.props.toggleShowOperations(checked);\n };\n\n render() {\n const { density, showOperations } = this.props;\n const content = (\n \n \n \n \n \n \n \n \n {densityOptions.map((config, i) => (\n \n {i === 0 && (\n \n )}\n \n \n ))}\n \n
Aggregations\n \n
\n

Show operations

\n

\n Controls whether or not the operations are considered when creating nodes for the graph.\n

\n
\n \n
\n Graph density\n \n \n
\n

{config.title}

\n

\n {config.note && {config.note}}\n {config.note && ' – '}\n {config.description}\n

\n
\n \n
\n );\n return (\n \n
\n {settingsIcon}\n Layout\n \n
\n
\n );\n }\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport queryString from 'query-string';\n\nimport { History as RouterHistory, Location } from 'history';\n\nimport { TNil } from '../types';\n\nexport default function updateUiFind({\n history,\n location,\n trackFindFunction,\n uiFind,\n}: {\n history: RouterHistory;\n location: Location;\n trackFindFunction?: (uiFind: string | TNil) => void;\n uiFind?: string | TNil;\n}) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { uiFind: _oldUiFind, ...queryParams } = queryString.parse(location.search);\n if (trackFindFunction) trackFindFunction(uiFind);\n if (uiFind) (queryParams as Record).uiFind = uiFind;\n history.replace({\n ...location,\n search: `?${queryString.stringify(queryParams)}`,\n });\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Icon, Input } from 'antd';\nimport { History as RouterHistory, Location } from 'history';\nimport _debounce from 'lodash/debounce';\nimport _isString from 'lodash/isString';\nimport queryString from 'query-string';\nimport { connect } from 'react-redux';\nimport { RouteComponentProps, withRouter } from 'react-router-dom';\n\nimport updateUiFind from '../../utils/update-ui-find';\nimport { TNil, ReduxState } from '../../types/index';\n\ntype TOwnProps = RouteComponentProps & {\n allowClear?: boolean;\n forwardedRef?: React.Ref;\n inputProps: Record;\n history: RouterHistory;\n location: Location;\n match: any;\n trackFindFunction?: (str: string | TNil) => void;\n};\n\nexport type TExtractUiFindFromStateReturn = {\n uiFind: string | undefined;\n};\n\ntype TProps = TOwnProps & TExtractUiFindFromStateReturn;\n\ntype StateType = {\n ownInputValue: string | undefined;\n};\n\nexport class UnconnectedUiFindInput extends React.PureComponent {\n static defaultProps: Partial = {\n forwardedRef: undefined,\n inputProps: {},\n trackFindFunction: undefined,\n uiFind: undefined,\n };\n\n state = {\n ownInputValue: undefined,\n };\n\n updateUiFindQueryParam = _debounce((uiFind?: string) => {\n const { history, location, uiFind: prevUiFind, trackFindFunction } = this.props;\n if (uiFind === prevUiFind || (!prevUiFind && !uiFind)) return;\n updateUiFind({\n location,\n history,\n trackFindFunction,\n uiFind,\n });\n }, 250);\n\n clearUiFind = () => {\n this.updateUiFindQueryParam();\n this.updateUiFindQueryParam.flush();\n };\n\n handleInputBlur = () => {\n this.updateUiFindQueryParam.flush();\n this.setState({ ownInputValue: undefined });\n };\n\n handleInputChange = (evt: React.ChangeEvent) => {\n const { value } = evt.target;\n this.updateUiFindQueryParam(value);\n this.setState({ ownInputValue: value });\n };\n\n render() {\n const { allowClear, forwardedRef, inputProps } = this.props;\n\n const inputValue = _isString(this.state.ownInputValue) ? this.state.ownInputValue : this.props.uiFind;\n const suffix = (\n <>\n {allowClear && inputValue && inputValue.length && }\n {inputProps.suffix}\n \n );\n\n return (\n \n );\n }\n}\n\nexport function extractUiFindFromState(state: ReduxState): TExtractUiFindFromStateReturn {\n const { uiFind: uiFindFromUrl } = queryString.parse(state.router.location.search);\n const uiFind = Array.isArray(uiFindFromUrl) ? uiFindFromUrl.join(' ') : uiFindFromUrl;\n return { uiFind };\n}\n\nexport default withRouter(connect(extractUiFindFromState)(UnconnectedUiFindInput));\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Icon, Input, Tooltip } from 'antd';\nimport MdVisibility from 'react-icons/lib/md/visibility';\nimport MdVisibilityOff from 'react-icons/lib/md/visibility-off';\n\nimport HopsSelector from './HopsSelector';\nimport NameSelector from './NameSelector';\nimport LayoutSettings from './LayoutSettings';\nimport { trackFilter, trackHeaderSetOperation, trackShowMatches } from '../index.track';\nimport UiFindInput from '../../common/UiFindInput';\nimport { EDirection, TDdgDistanceToPathElems, EDdgDensity } from '../../../model/ddg/types';\n\nimport './index.css';\n\ntype TProps = {\n clearOperation: () => void;\n density: EDdgDensity;\n distanceToPathElems?: TDdgDistanceToPathElems;\n hiddenUiFindMatches?: Set;\n operation?: string;\n operations: string[] | undefined;\n service?: string;\n services?: string[] | null;\n setDensity: (density: EDdgDensity) => void;\n setDistance: (distance: number, direction: EDirection) => void;\n setOperation: (operation: string) => void;\n setService: (service: string) => void;\n showOperations: boolean;\n showParameters?: boolean;\n showVertices: (vertexKeys: string[]) => void;\n toggleShowOperations: (enable: boolean) => void;\n uiFindCount: number | undefined;\n visEncoding?: string;\n};\nexport default class Header extends React.PureComponent {\n private _uiFindInput: React.RefObject = React.createRef();\n\n static defaultProps = {\n showParameters: true,\n };\n\n focusUiFindInput = () => {\n if (this._uiFindInput.current) {\n this._uiFindInput.current.focus();\n }\n };\n\n getUiFindInfo = () => {\n const { hiddenUiFindMatches, uiFindCount } = this.props;\n\n if (uiFindCount === undefined) return null;\n\n let hasHidden = false;\n let hiddenInfo: React.ReactNode = null;\n let tipText = uiFindCount ? 'All matches are visible' : 'No matches';\n if (hiddenUiFindMatches && hiddenUiFindMatches.size) {\n const { size } = hiddenUiFindMatches;\n hasHidden = true;\n tipText = `Click to view ${size} hidden match${size !== 1 ? 'es' : ''}`;\n hiddenInfo = (\n \n {size}\n \n \n );\n }\n\n return (\n \n {/* arbitrary span is necessary as Tooltip alters child's styling */}\n \n \n {uiFindCount}\n {(uiFindCount !== 0 || hasHidden) && }\n {hiddenInfo}\n \n \n \n );\n };\n\n setOperation = (operation: string) => {\n trackHeaderSetOperation();\n this.props.setOperation(operation);\n };\n\n handleInfoClick = () => {\n trackShowMatches();\n const { hiddenUiFindMatches, showVertices } = this.props;\n if (hiddenUiFindMatches) showVertices(Array.from(hiddenUiFindMatches));\n };\n\n render() {\n const {\n clearOperation,\n density,\n distanceToPathElems,\n operation,\n operations,\n service,\n services,\n setDensity,\n setDistance,\n setService,\n showOperations,\n showParameters,\n toggleShowOperations,\n visEncoding,\n } = this.props;\n\n return (\n
\n {showParameters && (\n
\n \n {service && (\n \n )}\n
\n )}\n
\n \n \n
\n
\n \n \n {this.getUiFindInfo()}\n
\n
\n
\n
\n );\n }\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/*\n * CONTEXT\n * CSS3 does not support text wrap that adheres to border radius. Even if it did, CSS3 does not support\n * proportional height and width for containers that are sized by `fit-content`. Subsequently, we need to\n * calculate our own circle sizing.\n *\n * Ideally, we would fit as many words as we can per chord of the circle, with lines closer to the center\n * being wider than lines at the top or bottom. It would be very expensive to calculate the minimum radius for\n * hundreds or thousands of nodes that each have multiple words and therefore many possible chords.\n *\n * Instead, a much cheaper compromise is to calculate the smallest circle that contains one or two (depending\n * on if the operation is rendered) vertically-stacked, horizontally-centered rectangle(s).\n *\n * For one rectangle, the radius would be half of the diagonal of the rectangle.\n *\n * For two rectangles, we know the center would be on a line that vertically bisects the two given rectangles.\n * Which means we know cx.\n * The center should also be equidistant from the bottom left corner of the lower rectangle, and the top right\n * corner of the upper rectangle.\n * Which means we can calculate cy based on the widths and heights of the two rectangles.\n * With cx,cy and one point on the circle, such as the lower left corner of the lower rectangle, we can\n * calculate the radius.\n * One caveat: if cy is too low, the circle will not include the upper corners of the lower rectangle, or if\n * cy is too high, the circle will not include the lower corners of the upper rectangle.\n * In this case, the circle must be enlarged to fully encompass the overflowing rectangle, and the circle\n * would instead be exclusively based on that rectangle.\n *\n * There are multiple different rectangles that can be formed to contain a string. These are calculated by\n * calcRects. All different combinations of service and operation rectangles are used to calculate the\n * smallest radius containing both.\n */\n\nimport _memoize from 'lodash/memoize';\n\nimport { FONT, FONT_SIZE, LINE_HEIGHT, OP_PADDING_TOP, WORD_RX } from './constants';\n\ntype TRect = { height: number; width: number };\n\nlet svcSpan: HTMLSpanElement | undefined;\n\n/*\n * Mesaurements for the words comprising a service are measured by a span that is mounted out of a view.\n * Using a canvas would remove the requirement that the measuring container is part of the DOM, however canvas\n * measurements proved to be inaccurate by small yet impactful margins. The svcSpan and opSpan share the same\n * font and font size, but the service words are bolded (weight: '500'). To reduce clutter and time, the span\n * is only added once circles are being measured, and is reused for subsequent measurements.\n */\n// exported for tests\nexport function _initSvcSpan() {\n if (svcSpan) return svcSpan;\n svcSpan = document.createElement('span');\n svcSpan.style.position = 'absolute';\n svcSpan.style.top = `-${FONT_SIZE * LINE_HEIGHT}px`;\n svcSpan.style.fontFamily = FONT;\n svcSpan.style.fontWeight = '500';\n document.body.appendChild(svcSpan);\n return svcSpan;\n}\n\nlet opSpan: HTMLSpanElement | undefined;\n\n/*\n * Mesaurements for the words comprising a operation are measured by a span that is mounted out of a view.\n * Using a canvas would remove the requirement that the measuring container is part of the DOM, however canvas\n * measurements proved to be inaccurate by small yet impactful margins. The svcSpan and opSpan share the same\n * font and font size, but the operation words are not bolded. To reduce clutter and time, the span is only\n * added once circles are being measured, and is reused for subsequent measurements.\n */\n// exported for tests\nexport function _initOpSpan() {\n if (opSpan) return opSpan;\n opSpan = document.createElement('span');\n opSpan.style.position = 'absolute';\n opSpan.style.top = `-${FONT_SIZE * LINE_HEIGHT}px`;\n opSpan.style.fontFamily = FONT;\n opSpan.style.fontWeight = '500';\n document.body.appendChild(opSpan);\n return opSpan;\n}\n\n/*\n * Calculates the width of the smallest rectangle that can contain the given word lengths over a specified\n * number of lines.\n *\n * @param {number[]} lengths - The lengths of the words that need to be split across lines.\n * @param {number} lines - The number of lines to contain the given word lengths.\n * @param {[number=0]} longestThusFar - The longest line from previous calls to calcWidth in the same\n * recursive call stack.\n * @returns {number} - Width of narrowest rectangle that contains given words across given lines.\n */\nfunction calcWidth(lengths: number[], lines: number, longestThusFar: number = 0): number {\n // Base case: all words on one line means line length is total word length\n const total = lengths.reduce((sum, curr) => curr + sum, 0);\n if (lines === 1) return total;\n\n // The first line needs to be at least as long as the first word. Then as long as more words fit before the\n // minimum rectangle width, they must be included on the first line.\n const minRectWidth = Math.max(longestThusFar, total / lines);\n let firstOptionLength = 0;\n let i = 0;\n do {\n firstOptionLength += lengths[i++];\n } while (firstOptionLength + lengths[i] < minRectWidth);\n\n // The first option does not increase the overall length, but because future words may be lengthy, all\n // options from this first option until the line is the majority of the total length, or until there are as\n // many remaining words as there are remaining lines, must be considered.\n const firstLineOptions = [{ width: firstOptionLength, start: i }];\n while (lengths.length - i >= lines && firstLineOptions[firstLineOptions.length - 1].width < total / 2) {\n firstLineOptions.push({\n width: firstLineOptions[firstLineOptions.length - 1].width + lengths[i++],\n start: i,\n });\n }\n\n // Return the minimum width.\n return Math.min(\n // For each option, calculate the width of the words that are not on the first line, contained on one\n // fewer line than we started with.\n ...firstLineOptions.map(({ width, start }) =>\n // The width of the resulting rectangle for each option is either its own width, or the width of the\n // balance, whichever is greater.\n Math.max(calcWidth(lengths.slice(start), lines - 1, Math.max(longestThusFar, width)), width)\n )\n );\n}\n\n/*\n * Returns all measurements for possible bounding rectangles for the given string, up until the first\n * rectangle that is taller than it is wide. Once the height surpasses the width, there is no reason to\n * continue as the resulting radius is guaranteed to be increasing.\n *\n * @param {string} str - String which rectangles must contain.\n * @param {HTMLSpanElement} span - Span used to measure lengths of str.\n * @returns {TRect[]} - Possible bounding rectangles.\n */\nconst calcRects = _memoize(\n function calcRects(str: string | string[], span: HTMLSpanElement): TRect[] {\n const lengths = (Array.isArray(str) ? [`${str.length} Operations}`] : str.match(WORD_RX) || [str]).map(\n s => {\n span.innerHTML = s; // eslint-disable-line no-param-reassign\n return span.getClientRects()[0].width;\n }\n );\n\n const rects: TRect[] = [];\n for (let lines = 1; lines <= lengths.length; lines++) {\n const width = calcWidth(lengths, lines);\n const height = lines * FONT_SIZE * LINE_HEIGHT;\n if (!rects.length || width < rects[rects.length - 1].width) rects.push({ height, width });\n if (height > width) break;\n }\n return rects;\n },\n (str: string, span: HTMLSpanElement) => `${str}\\t${span.style.fontWeight}`\n);\n\nconst sq = (n: number): number => n ** 2;\nconst diagonal = (rect: TRect): number => Math.sqrt(sq(rect.height) + sq(rect.width));\n\ntype TSmallestRadiusRV = { radius: number; svcWidth: number; opWidth?: number; svcMarginTop: number };\n\n/*\n * Calculates the smallest radius that contains one of the svcRects and one of the opRects if provided.\n *\n * @param {TRect[]} svcRects - Possible bounding rectangles for service name.\n * @param {TRect[]} [opRects] - Possible bounding rectangles for operation name.\n * @returns {Object} - Object with smallest radius, widths of chosen service and operation rectangle, and how\n * much space to leave above first rectangle.\n */\nfunction smallestRadius(svcRects: TRect[], opRects?: TRect[]): TSmallestRadiusRV {\n // If there isn't an operation, the radius is simply half the shortest diagonal of the svcRects.\n if (!opRects) {\n let minDiagonal = diagonal(svcRects[0]);\n let { height, width } = svcRects[0];\n\n for (let i = 1; i < svcRects.length; i++) {\n const radius = diagonal(svcRects[i]);\n if (radius < minDiagonal) {\n minDiagonal = radius;\n width = svcRects[i].width;\n height = svcRects[i].height;\n }\n }\n\n return {\n radius: minDiagonal / 2,\n svcWidth: width,\n svcMarginTop: (minDiagonal - height) / 2,\n };\n }\n\n // Otherwise, calculate the smallest radius of possible radii from all combinations of svcRect and opRect.\n let rv: TSmallestRadiusRV | undefined;\n svcRects.forEach(svcRect => {\n opRects.forEach(opRect => {\n let radius;\n let svcMarginTop;\n const totalHeight = svcRect.height + opRect.height + OP_PADDING_TOP;\n\n // Calculate height of point on bisecting line, relative to bottom of opRect\n const cy = (sq(svcRect.width / 2) - sq(opRect.width / 2)) / (2 * totalHeight) + totalHeight / 2;\n\n // If the center is too low, the top of the opRect will not be within the circle.\n if (cy < opRect.height / 2) {\n radius = diagonal(opRect) / 2;\n svcMarginTop = radius - OP_PADDING_TOP - opRect.height / 2 - svcRect.height;\n\n // If the center is too high, the bottom of the svcRect will not be within the circle.\n } else if (cy > totalHeight - svcRect.height / 2) {\n radius = diagonal(svcRect) / 2;\n svcMarginTop = radius - svcRect.height / 2;\n\n // else both rectangles are enclosed.\n } else {\n radius = Math.sqrt(sq(opRect.width / 2) + sq(cy));\n svcMarginTop = radius - totalHeight + cy;\n }\n\n if (!rv || rv.radius > radius) {\n rv = { radius, svcWidth: svcRect.width, opWidth: opRect.width, svcMarginTop };\n }\n });\n });\n\n /* istanbul ignore next : Unreachable error to appease TS */\n if (!rv) throw new Error('Given 0 svcRects and/or 0 opRects');\n return rv;\n}\n\nconst calcPositioning: (\n service: string,\n operation?: string | string[] | null\n) => TSmallestRadiusRV = _memoize(\n function calcPositioningImpl(service: string, operation?: string | string[] | null) {\n const svcRects = calcRects(service, _initSvcSpan());\n const opRects = operation ? calcRects(operation, _initOpSpan()) : undefined;\n\n return smallestRadius(svcRects, opRects);\n },\n (service: string, operation?: string | null) => `${service}\\t${operation}`\n);\n\nexport default calcPositioning;\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { getUrl as getSearchUrl } from '../../../SearchTracePage/url';\n\n// Constants for calculating circular node positioning\nexport const FONT_SIZE = 14;\nexport const FONT = `${FONT_SIZE}px Helvetica Nueue`;\nexport const LINE_HEIGHT = 1.5;\nexport const OP_PADDING_TOP = 5;\nexport const RADIUS = 75;\nexport const WORD_RX = /\\W*\\w+\\W*/g;\n\n// While browsers suport URLs of unlimited length, many server clients do not handle more than this max\nexport const MAX_LENGTH = 2083;\nexport const MAX_LINKED_TRACES = 35;\nexport const MIN_LENGTH = getSearchUrl().length;\nexport const PARAM_NAME_LENGTH = '&traceID='.length;\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\n\nimport './node-icons.css';\n\nexport const setFocusIcon = (\n \n \n \n \n \n \n \n \n);\n\nexport const focalNodeIcon = (\n \n \n \n \n);\n","// Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React from 'react';\nimport cx from 'classnames';\nimport IoAndroidOpen from 'react-icons/lib/io/android-open';\n\nimport './NewWindowIcon.css';\n\ntype Props = {\n isLarge?: boolean;\n};\n\nexport default function NewWindowIcon(props: Props) {\n const { isLarge, ...rest } = props;\n const cls = cx('NewWindowIcon', { 'is-large': isLarge });\n return ;\n}\n\nNewWindowIcon.defaultProps = {\n isLarge: false,\n};\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Checkbox, Popover } from 'antd';\nimport cx from 'classnames';\nimport { TLayoutVertex } from '@jaegertracing/plexus/lib/types';\nimport IoAndroidLocate from 'react-icons/lib/io/android-locate';\nimport MdVisibilityOff from 'react-icons/lib/md/visibility-off';\n\nimport calcPositioning from './calc-positioning';\nimport {\n MAX_LENGTH,\n MAX_LINKED_TRACES,\n MIN_LENGTH,\n OP_PADDING_TOP,\n PARAM_NAME_LENGTH,\n RADIUS,\n WORD_RX,\n} from './constants';\nimport { setFocusIcon } from './node-icons';\nimport { trackSetFocus, trackViewTraces, trackVertexSetOperation } from '../../index.track';\nimport { getUrl } from '../../url';\nimport BreakableText from '../../../common/BreakableText';\nimport FilteredList from '../../../common/FilteredList';\nimport NewWindowIcon from '../../../common/NewWindowIcon';\nimport { getUrl as getSearchUrl } from '../../../SearchTracePage/url';\nimport {\n ECheckedStatus,\n EDdgDensity,\n EDirection,\n EViewModifier,\n TDdgVertex,\n PathElem,\n} from '../../../../model/ddg/types';\n\nimport './index.css';\n\ntype TProps = {\n focalNodeUrl: string | null;\n focusPathsThroughVertex: (vertexKey: string) => void;\n getGenerationVisibility: (vertexKey: string, direction: EDirection) => ECheckedStatus | null;\n getVisiblePathElems: (vertexKey: string) => PathElem[] | undefined;\n hideVertex: (vertexKey: string) => void;\n isFocalNode: boolean;\n isPositioned: boolean;\n operation: string | string[] | null;\n service: string;\n setOperation: (operation: string) => void;\n setViewModifier: (visIndices: number[], viewModifier: EViewModifier, isEnabled: boolean) => void;\n updateGenerationVisibility: (vertexKey: string, direction: EDirection) => void;\n vertexKey: string;\n};\n\ntype TState = {\n childrenVisibility?: ECheckedStatus | null;\n parentVisibility?: ECheckedStatus | null;\n};\n\nexport default class DdgNodeContent extends React.PureComponent {\n state: TState = {};\n\n static measureNode() {\n const diameter = 2 * (RADIUS + 1);\n\n return {\n height: diameter,\n width: diameter,\n };\n }\n\n static getNodeRenderer({\n baseUrl,\n density,\n extraUrlArgs,\n focusPathsThroughVertex,\n getGenerationVisibility,\n getVisiblePathElems,\n hideVertex,\n setOperation,\n setViewModifier,\n updateGenerationVisibility,\n }: {\n baseUrl: string;\n density: EDdgDensity;\n extraUrlArgs?: { [key: string]: unknown };\n focusPathsThroughVertex: (vertexKey: string) => void;\n getGenerationVisibility: (vertexKey: string, direction: EDirection) => ECheckedStatus | null;\n getVisiblePathElems: (vertexKey: string) => PathElem[] | undefined;\n hideVertex: (vertexKey: string) => void;\n setOperation: (operation: string) => void;\n setViewModifier: (visIndices: number[], viewModifier: EViewModifier, enable: boolean) => void;\n updateGenerationVisibility: (vertexKey: string, direction: EDirection) => void;\n }) {\n return function renderNode(vertex: TDdgVertex, _: unknown, lv: TLayoutVertex | null) {\n const { isFocalNode, key, operation, service } = vertex;\n return (\n \n );\n };\n }\n\n hoveredIndices: Set = new Set();\n\n componentWillUnmount() {\n if (this.hoveredIndices.size) {\n this.props.setViewModifier(Array.from(this.hoveredIndices), EViewModifier.Hovered, false);\n this.hoveredIndices.clear();\n }\n }\n\n private focusPaths = () => {\n const { focusPathsThroughVertex, vertexKey } = this.props;\n focusPathsThroughVertex(vertexKey);\n };\n\n private hideVertex = () => {\n const { hideVertex, vertexKey } = this.props;\n hideVertex(vertexKey);\n };\n\n private setOperation = (operation: string) => {\n trackVertexSetOperation();\n this.props.setOperation(operation);\n };\n\n private updateChildren = () => {\n const { updateGenerationVisibility, vertexKey } = this.props;\n updateGenerationVisibility(vertexKey, EDirection.Downstream);\n };\n\n private updateParents = () => {\n const { updateGenerationVisibility, vertexKey } = this.props;\n updateGenerationVisibility(vertexKey, EDirection.Upstream);\n };\n\n private viewTraces = () => {\n trackViewTraces();\n const { vertexKey, getVisiblePathElems } = this.props;\n const elems = getVisiblePathElems(vertexKey);\n if (elems) {\n const urlIds: Set = new Set();\n let currLength = MIN_LENGTH;\n // Because there is a limit on traceIDs, attempt to get some from each elem rather than all from one.\n const allIDs = elems.map(({ memberOf }) => memberOf.traceIDs.slice());\n while (allIDs.length) {\n const ids = allIDs.shift();\n if (ids && ids.length) {\n const id = ids.pop();\n if (id && !urlIds.has(id)) {\n // Keep track of the length, then break if it is too long, to avoid opening a tab with a URL that\n // the backend cannot process, even if there are more traceIDs\n currLength += PARAM_NAME_LENGTH + id.length;\n if (currLength > MAX_LENGTH) {\n break;\n }\n urlIds.add(id);\n if (urlIds.size >= MAX_LINKED_TRACES) {\n break;\n }\n }\n allIDs.push(ids);\n }\n }\n window.open(getSearchUrl({ traceID: Array.from(urlIds) }), '_blank');\n }\n };\n\n private onMouseUx = (event: React.MouseEvent) => {\n const { getGenerationVisibility, getVisiblePathElems, setViewModifier, vertexKey } = this.props;\n const hovered = event.type === 'mouseover';\n const visIndices = hovered\n ? (getVisiblePathElems(vertexKey) || []).map(({ visibilityIdx }) => {\n this.hoveredIndices.add(visibilityIdx);\n return visibilityIdx;\n })\n : Array.from(this.hoveredIndices);\n setViewModifier(visIndices, EViewModifier.Hovered, hovered);\n\n if (hovered) {\n this.setState({\n childrenVisibility: getGenerationVisibility(vertexKey, EDirection.Downstream),\n parentVisibility: getGenerationVisibility(vertexKey, EDirection.Upstream),\n });\n } else this.hoveredIndices.clear();\n };\n\n render() {\n const { childrenVisibility, parentVisibility } = this.state;\n const { focalNodeUrl, isFocalNode, isPositioned, operation, service } = this.props;\n\n const { radius, svcWidth, opWidth, svcMarginTop } = calcPositioning(service, operation);\n const scaleFactor = RADIUS / radius;\n const transform = `translate(${RADIUS - radius}px, ${RADIUS - radius}px) scale(${scaleFactor})`;\n\n return (\n
\n \n
\n \n \n \n {operation && (\n \n {Array.isArray(operation) ? (\n {}}\n options={operation}\n value={null}\n setValue={this.setOperation}\n />\n }\n placement=\"bottom\"\n title=\"Select Operation to Filter Graph\"\n >\n {`${operation.length} Operations`}\n \n ) : (\n \n )}\n
\n )}\n
\n \n
\n {focalNodeUrl && (\n \n {setFocusIcon}\n Set focus\n \n )}\n \n \n \n \n View traces\n \n {!isFocalNode && (\n \n \n \n \n Focus paths through this node\n \n )}\n {!isFocalNode && (\n \n \n \n \n Hide node\n \n )}\n {parentVisibility && (\n \n \n \n \n View Parents\n \n )}\n {childrenVisibility && (\n \n \n \n \n View Children\n \n )}\n
\n \n );\n }\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport cx from 'classnames';\nimport { TLayoutVertex } from '@jaegertracing/plexus/lib/types';\n\nimport { TDdgVertex, EViewModifier } from '../../../model/ddg/types';\n\nimport './getNodeRenderers.css';\n\nexport default function getNodeRenderers(findMatches: Set, viewModifiers: Map) {\n function vectorBorder(lv: TLayoutVertex) {\n // eslint-disable-next-line no-bitwise\n const isHovered = (viewModifiers.get(lv.vertex.key) || 0) & EViewModifier.Hovered;\n // eslint-disable-next-line no-bitwise\n const isPathHovered = (viewModifiers.get(lv.vertex.key) || 0) & EViewModifier.PathHovered;\n const className = cx('DdgNode--VectorBorder', {\n 'is-findMatch': findMatches.has(lv.vertex.key),\n 'is-hovered': isHovered,\n 'is-pathHovered': isPathHovered,\n 'is-focalNode': lv.vertex.isFocalNode,\n });\n return (\n \n );\n }\n\n function htmlEmphasis(lv: TLayoutVertex) {\n const matchClasses = cx({\n 'is-findMatch': findMatches.has(lv.vertex.key),\n 'is-focalNode': lv.vertex.isFocalNode,\n });\n if (!matchClasses) {\n return null;\n }\n return
;\n }\n\n if (!findMatches.size) {\n return {\n vectorBorder,\n htmlEmphasis,\n vectorFindColorBand: null,\n };\n }\n\n function vectorFindColorBand(lv: TLayoutVertex) {\n if (!findMatches.has(lv.vertex.key)) {\n return null;\n }\n return (\n \n );\n }\n\n return {\n htmlEmphasis,\n vectorBorder,\n vectorFindColorBand,\n };\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport default function getEdgeId(from: string, to: string) {\n return `${from}\\v${to}`;\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport GraphModel from './index';\nimport getEdgeId from './getEdgeId';\nimport { EViewModifier } from '../types';\n\nfunction getKeyFromVisIdx(graph: GraphModel, visIdx: number) {\n const pe = graph.visIdxToPathElem[visIdx];\n if (!pe) {\n throw new Error(`Invalid vis ids: ${visIdx}`);\n }\n const vertex = graph.pathElemToVertex.get(pe);\n if (!vertex) {\n throw new Error(`Path elem without vertex: ${pe}`);\n }\n return vertex.key;\n}\n\nexport default function getDerivedViewModifiers(\n this: GraphModel,\n visEncoding: string | undefined,\n viewModifiers: Map\n) {\n const edges = new Map();\n const vertices = new Map();\n const visibleIndices = this.getVisibleIndices(visEncoding);\n\n const pushVertexVm = (vm: number, key: string) => {\n // eslint-disable-next-line no-bitwise\n vertices.set(key, (vertices.get(key) || 0) | vm);\n };\n\n const pushEdgeVm = (vm: number, from: string, to: string) => {\n const edgeId = getEdgeId(from, to);\n // eslint-disable-next-line no-bitwise\n edges.set(edgeId, (edges.get(edgeId) || 0) | vm);\n };\n\n viewModifiers.forEach((vm, visIdx) => {\n if (!visibleIndices.has(visIdx)) {\n return;\n }\n pushVertexVm(vm, getKeyFromVisIdx(this, visIdx));\n if (vm !== EViewModifier.Hovered) {\n return;\n }\n const hoveredPe = this.visIdxToPathElem[visIdx];\n /* istanbul ignore next : getKeyFromVisIdx would have thrown if visIdx was invalid */\n if (!hoveredPe) throw new Error(`Invalid vis index: ${visIdx}`);\n const members = hoveredPe.memberOf.members;\n let lastKey: string | null = null;\n for (let i = 0; i < members.length; i++) {\n const pe = members[i];\n if (!visibleIndices.has(pe.visibilityIdx)) {\n lastKey = null;\n continue;\n }\n const key = getKeyFromVisIdx(this, members[i].visibilityIdx);\n pushVertexVm(EViewModifier.PathHovered, key);\n if (lastKey) {\n pushEdgeVm(EViewModifier.PathHovered, lastKey, key);\n }\n lastKey = key;\n }\n });\n return { edges, vertices };\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport GraphModel from '.';\nimport { PathElem, EDdgDensity } from '../types';\n\ntype TPathElemToStr = (pe: PathElem) => string;\n\nexport const FOCAL_KEY = 'focalKey';\n\nfunction fmtElemShowOp(pe: PathElem) {\n return pe.distance === 0 ? FOCAL_KEY : `${pe.operation.service.name}\\t${pe.operation.name}`;\n}\n\nfunction fmtElemSvcOnly(pe: PathElem) {\n return pe.distance === 0 ? FOCAL_KEY : pe.operation.service.name;\n}\n\nfunction getPpeHasher(elemToStr: TPathElemToStr) {\n return (pe: PathElem) => pe.focalPath.map(elemToStr).join('\\n');\n}\n\nfunction getExtVsIntHasher(elemToStr: TPathElemToStr) {\n return (pe: PathElem) => `${getPpeHasher(elemToStr)(pe)}${pe.isExternal ? '; is-external' : ''}`;\n}\n\n// This function is bound to a GraphModel and returns a different hasher based on the model's layout settings\nexport default function getPathElemHasher(this: GraphModel): TPathElemToStr {\n const elemToStr = this.showOp ? fmtElemShowOp : fmtElemSvcOnly;\n\n switch (this.density) {\n case EDdgDensity.MostConcise: {\n return (pe: PathElem) => {\n const { members, focalIdx } = pe.memberOf;\n const focalElem = members[focalIdx];\n if (pe.operation.service.name === focalElem.operation.service.name) {\n if (pe === focalElem || !this.showOp) return FOCAL_KEY;\n\n const focalVertex = this.vertices.get(FOCAL_KEY);\n // istanbul ignore next : Unreachable error to appease TS, transformDdgData would have thrown\n if (!focalVertex) throw new Error('No focal vertex found');\n const focalElems = this.vertexToPathElems.get(focalVertex);\n // istanbul ignore next : Unreachable error to appease TS, transformDdgData would have thrown\n if (!focalElems) throw new Error('No focal elems found');\n\n // Because pathElems are processed in increasing order of absolute distance, the following set will\n // never be incomplete.\n const focalOps = new Set(Array.from(focalElems).map(({ operation }) => operation.name));\n if (focalOps.has(pe.operation.name)) return FOCAL_KEY;\n }\n return elemToStr(pe);\n };\n }\n case EDdgDensity.UpstreamVsDownstream: {\n return (pe: PathElem) =>\n pe.distance ? `${elemToStr(pe)}; direction=${Math.sign(pe.distance)}` : FOCAL_KEY;\n }\n case EDdgDensity.OnePerLevel: {\n return (pe: PathElem) => (pe.distance ? `${elemToStr(pe)}; distance=${pe.distance}` : FOCAL_KEY);\n }\n case EDdgDensity.PreventPathEntanglement: {\n return getPpeHasher(elemToStr);\n }\n case EDdgDensity.ExternalVsInternal: {\n return getExtVsIntHasher(elemToStr);\n }\n default: {\n throw new Error(\n `Density: ${this.density} has not been implemented, try one of these: ${JSON.stringify(\n EDdgDensity,\n null,\n 2\n )}`\n );\n }\n }\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport memoize from 'lru-memoize';\n\nimport { TEdge } from '@jaegertracing/plexus/lib/types';\n\nimport getDerivedViewModifiers from './getDerivedViewModifiers';\nimport getEdgeId from './getEdgeId';\nimport getPathElemHasher, { FOCAL_KEY } from './getPathElemHasher';\nimport { decode, encode } from '../visibility-codec';\n\nimport {\n PathElem,\n ECheckedStatus,\n EDdgDensity,\n EDirection,\n TDdgDistanceToPathElems,\n TDdgModel,\n TDdgVertex,\n} from '../types';\n\nexport { default as getEdgeId } from './getEdgeId';\n\nexport default class GraphModel {\n readonly getDerivedViewModifiers = memoize(3)(getDerivedViewModifiers.bind(this));\n private readonly getPathElemHasher = getPathElemHasher;\n readonly density: EDdgDensity;\n readonly distanceToPathElems: TDdgDistanceToPathElems;\n readonly pathElemToEdge: Map;\n readonly pathElemToVertex: Map;\n readonly showOp: boolean;\n readonly vertexToPathElems: Map>;\n readonly vertices: Map;\n readonly visIdxToPathElem: PathElem[];\n\n constructor({ ddgModel, density, showOp }: { ddgModel: TDdgModel; density: EDdgDensity; showOp: boolean }) {\n this.density = density;\n this.distanceToPathElems = new Map(ddgModel.distanceToPathElems);\n this.pathElemToEdge = new Map();\n this.pathElemToVertex = new Map();\n this.showOp = showOp;\n this.vertexToPathElems = new Map();\n this.vertices = new Map();\n this.visIdxToPathElem = ddgModel.visIdxToPathElem.slice();\n\n const focalOperations: Set = new Set();\n const hasher = this.getPathElemHasher();\n const edgesById = new Map();\n\n this.visIdxToPathElem.forEach(pathElem => {\n // If there is a compatible vertex for this pathElem, use it, else, make a new vertex\n const key = hasher(pathElem);\n const isFocalNode = !pathElem.distance;\n const operation = this.showOp ? pathElem.operation.name : null;\n if (isFocalNode && operation) focalOperations.add(operation);\n\n let vertex: TDdgVertex | undefined = this.vertices.get(key);\n if (!vertex) {\n vertex = {\n key,\n isFocalNode,\n service: pathElem.operation.service.name,\n operation,\n };\n this.vertices.set(key, vertex);\n this.vertexToPathElems.set(vertex, new Set([pathElem]));\n } else {\n const pathElemsForVertex = this.vertexToPathElems.get(vertex);\n /* istanbul ignore next */\n if (!pathElemsForVertex) {\n throw new Error(`Vertex exists without pathElems, vertex: ${vertex}`);\n }\n // Link vertex back to this pathElem\n pathElemsForVertex.add(pathElem);\n }\n // Link pathElem to its vertex\n this.pathElemToVertex.set(pathElem, vertex);\n\n // If the newly-visible PathElem is not the focalNode, it needs to be connected to the rest of the graph\n const connectedElem = pathElem.focalSideNeighbor;\n if (connectedElem) {\n const connectedVertex = this.pathElemToVertex.get(connectedElem);\n // If the connectedElem does not have a vertex, then the current pathElem cannot be connected to the\n // focalNode\n if (!connectedVertex) {\n throw new Error(`Non-focal pathElem cannot be connected to graph. PathElem: ${pathElem}`);\n }\n\n // Create edge connecting current vertex to connectedVertex\n const from = pathElem.distance > 0 ? connectedVertex.key : vertex.key;\n const to = pathElem.distance > 0 ? vertex.key : connectedVertex.key;\n const edgeId = getEdgeId(from, to);\n let edge = edgesById.get(edgeId);\n if (!edge) {\n edge = { from, to };\n edgesById.set(edgeId, edge);\n }\n this.pathElemToEdge.set(pathElem, edge);\n }\n });\n\n if (focalOperations.size > 1) {\n const focalVertex = this.vertices.get(FOCAL_KEY);\n // istanbul ignore next : focalVertex cannot be missing if focalOperations.size is not 0\n if (focalVertex) focalVertex.operation = Array.from(focalOperations);\n }\n\n Object.freeze(this.distanceToPathElems);\n Object.freeze(this.pathElemToEdge);\n Object.freeze(this.pathElemToVertex);\n Object.freeze(this.vertexToPathElems);\n Object.freeze(this.vertices);\n Object.freeze(this.visIdxToPathElem);\n }\n\n private getDefaultVisiblePathElems() {\n return ([] as PathElem[]).concat(\n this.distanceToPathElems.get(-2) || [],\n this.distanceToPathElems.get(-1) || [],\n this.distanceToPathElems.get(0) || [],\n this.distanceToPathElems.get(1) || [],\n this.distanceToPathElems.get(2) || []\n );\n }\n\n private getGeneration = (vertexKey: string, direction: EDirection, visEncoding?: string): PathElem[] => {\n const rv: PathElem[] = [];\n const elems = this.getVertexVisiblePathElems(vertexKey, visEncoding);\n if (!elems) return rv;\n\n elems.forEach(({ focalSideNeighbor, memberIdx, memberOf }) => {\n const generationMember = memberOf.members[memberIdx + direction];\n if (generationMember && generationMember !== focalSideNeighbor) rv.push(generationMember);\n });\n return rv;\n };\n\n public getGenerationVisibility = (\n vertexKey: string,\n direction: EDirection,\n visEncoding?: string\n ): ECheckedStatus | null => {\n const generation = this.getGeneration(vertexKey, direction, visEncoding);\n if (!generation.length) return null;\n\n const visibleIndices = this.getVisibleIndices(visEncoding);\n const visibleGeneration = generation.filter(({ visibilityIdx }) => visibleIndices.has(visibilityIdx));\n\n if (visibleGeneration.length === generation.length) return ECheckedStatus.Full;\n if (visibleGeneration.length) return ECheckedStatus.Partial;\n return ECheckedStatus.Empty;\n };\n\n private getVisiblePathElems(visEncoding?: string) {\n if (visEncoding == null) return this.getDefaultVisiblePathElems();\n return decode(visEncoding)\n .map(visIdx => this.visIdxToPathElem[visIdx])\n .filter(Boolean);\n }\n\n public getVisibleIndices(visEncoding?: string): Set {\n return new Set(this.getVisiblePathElems(visEncoding).map(({ visibilityIdx }) => visibilityIdx));\n }\n\n public getVisible: (visEncoding?: string) => { edges: TEdge[]; vertices: TDdgVertex[] } = memoize(10)(\n (visEncoding?: string): { edges: TEdge[]; vertices: TDdgVertex[] } => {\n const edges: Set = new Set();\n const vertices: Set = new Set();\n const pathElems = this.getVisiblePathElems(visEncoding);\n pathElems.forEach(pathElem => {\n const edge = this.pathElemToEdge.get(pathElem);\n if (edge) edges.add(edge);\n const vertex = this.pathElemToVertex.get(pathElem);\n if (vertex && !vertex.isFocalNode) vertices.add(vertex);\n });\n\n if (this.visIdxToPathElem.length) {\n const focalVertex = this.vertices.get(FOCAL_KEY);\n // istanbul ignore next : If there are pathElems without a focal vertex the constructor would throw\n if (!focalVertex) throw new Error('No focal vertex found');\n const visibleFocalElems = this.getVertexVisiblePathElems(FOCAL_KEY, visEncoding);\n if (visibleFocalElems && visibleFocalElems.length) {\n if (!this.showOp) vertices.add(focalVertex);\n else {\n const visibleFocalOps = Array.from(\n new Set(visibleFocalElems.map(({ operation }) => operation.name))\n );\n const potentiallyPartialFocalVertex = {\n ...focalVertex,\n operation: visibleFocalOps.length === 1 ? visibleFocalOps[0] : visibleFocalOps,\n };\n vertices.add(potentiallyPartialFocalVertex);\n }\n }\n }\n\n return {\n edges: Array.from(edges),\n vertices: Array.from(vertices),\n };\n }\n );\n\n private static getUiFindMatches(vertices: TDdgVertex[], uiFind?: string): Set {\n const keySet: Set = new Set();\n if (!uiFind || /^\\s+$/.test(uiFind)) return keySet;\n\n const uiFindArr = uiFind\n .trim()\n .toLowerCase()\n .split(/\\s+/);\n for (let i = 0; i < vertices.length; i++) {\n const { service, operation } = vertices[i];\n const svc = service.toLowerCase();\n const ops =\n operation && (Array.isArray(operation) ? operation : [operation]).map(op => op.toLowerCase());\n for (let j = 0; j < uiFindArr.length; j++) {\n if (svc.includes(uiFindArr[j]) || (ops && ops.some(op => op.includes(uiFindArr[j])))) {\n keySet.add(vertices[i].key);\n break;\n }\n }\n }\n\n return keySet;\n }\n\n public getHiddenUiFindMatches: (uiFind?: string, visEncoding?: string) => Set = memoize(10)(\n (uiFind?: string, visEncoding?: string): Set => {\n const visible = new Set(this.getVisible(visEncoding).vertices);\n const hidden: TDdgVertex[] = Array.from(this.vertices.values()).filter(\n vertex => !visible.has(vertex) && !vertex.isFocalNode\n );\n\n if (this.visIdxToPathElem.length) {\n const focalVertex = this.vertices.get(FOCAL_KEY);\n // istanbul ignore next : If there are pathElems without a focal vertex the constructor would throw\n if (!focalVertex) throw new Error('No focal vertex found');\n const focalElems = this.vertexToPathElems.get(focalVertex);\n // istanbul ignore next : If there are pathElems without a focal vertex the constructor would throw\n if (!focalElems) throw new Error('No focal elems found');\n const visibleFocalElems = new Set(this.getVertexVisiblePathElems(FOCAL_KEY, visEncoding));\n const hiddenFocalOperations = Array.from(focalElems)\n .filter(elem => !visibleFocalElems.has(elem))\n .map(({ operation }) => operation.name);\n if (hiddenFocalOperations.length) {\n hidden.push({\n ...focalVertex,\n operation: hiddenFocalOperations,\n });\n }\n }\n\n return GraphModel.getUiFindMatches(hidden, uiFind);\n }\n );\n\n public getVisibleUiFindMatches: (uiFind?: string, visEncoding?: string) => Set = memoize(10)(\n (uiFind?: string, visEncoding?: string): Set => {\n const { vertices } = this.getVisible(visEncoding);\n return GraphModel.getUiFindMatches(vertices, uiFind);\n }\n );\n\n private getVisWithoutElems(elems: PathElem[], visEncoding?: string) {\n const visible = this.getVisibleIndices(visEncoding);\n elems.forEach(({ externalPath }) => {\n externalPath.forEach(({ visibilityIdx }) => {\n visible.delete(visibilityIdx);\n });\n });\n\n return encode(Array.from(visible));\n }\n\n public getVisWithoutVertex(vertexKey: string, visEncoding?: string): string | undefined {\n const elems = this.getVertexVisiblePathElems(vertexKey, visEncoding);\n if (elems && elems.length) return this.getVisWithoutElems(elems, visEncoding);\n return undefined;\n }\n\n private getVisWithElems(elems: PathElem[], visEncoding?: string) {\n const visible = this.getVisibleIndices(visEncoding);\n elems.forEach(({ focalPath }) =>\n focalPath.forEach(({ visibilityIdx }) => {\n visible.add(visibilityIdx);\n })\n );\n\n return encode(Array.from(visible));\n }\n\n public getVisWithUpdatedGeneration(\n vertexKey: string,\n direction: EDirection,\n visEncoding?: string\n ): { visEncoding: string; update: ECheckedStatus } | null {\n const generationElems = this.getGeneration(vertexKey, direction, visEncoding);\n const currCheckedStatus = this.getGenerationVisibility(vertexKey, direction, visEncoding);\n if (!generationElems.length || !currCheckedStatus) return null;\n\n if (currCheckedStatus === ECheckedStatus.Full) {\n return {\n visEncoding: this.getVisWithoutElems(generationElems, visEncoding),\n update: ECheckedStatus.Empty,\n };\n }\n\n return {\n visEncoding: this.getVisWithElems(generationElems, visEncoding),\n update: ECheckedStatus.Full,\n };\n }\n\n public getVisWithVertices(vertexKeys: string[], visEncoding?: string) {\n const elemSet: PathElem[] = [];\n vertexKeys.forEach(vertexKey => {\n const vertex = this.vertices.get(vertexKey);\n if (!vertex) throw new Error(`${vertexKey} does not exist in graph`);\n const elems = this.vertexToPathElems.get(vertex);\n // istanbul ignore next : If a vertex exists it must have elems\n if (!elems) throw new Error(`${vertexKey} does not exist in graph`);\n\n elemSet.push(...elems);\n });\n\n return this.getVisWithElems(elemSet, visEncoding);\n }\n\n public getVertexVisiblePathElems(\n vertexKey: string,\n visEncoding: string | undefined\n ): PathElem[] | undefined {\n const vertex = this.vertices.get(vertexKey);\n if (vertex) {\n const pathElems = this.vertexToPathElems.get(vertex);\n if (pathElems && pathElems.size) {\n const visIndices = this.getVisibleIndices(visEncoding);\n return Array.from(pathElems).filter(elem => {\n return visIndices.has(elem.visibilityIdx);\n });\n }\n }\n return undefined;\n }\n}\n\nexport const makeGraph = memoize(10)(\n (ddgModel: TDdgModel, showOp: boolean, density: EDdgDensity) =>\n new GraphModel({ ddgModel, density, showOp })\n);\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { TRendererUtils } from '@jaegertracing/plexus/lib/Digraph/types';\nimport { TLayoutEdge } from '@jaegertracing/plexus/lib/types';\n\nimport { getEdgeId } from '../../../model/ddg/GraphModel';\n\nimport { EViewModifier } from '../../../model/ddg/types';\n\n// exported for tests\nexport const baseCase = { className: 'Ddg--Edge' };\nexport const matchMiss = { className: 'Ddg--Edge', markerEnd: null };\n\nexport default function getSetOnEdge(edgesViewModifiers: Map) {\n if (!edgesViewModifiers.size) {\n return baseCase;\n }\n return function setOnEdge(lv: TLayoutEdge, utils: TRendererUtils) {\n const edgeId = getEdgeId(lv.edge.from, lv.edge.to);\n // eslint-disable-next-line no-bitwise\n if ((edgesViewModifiers.get(edgeId) || 0) & EViewModifier.PathHovered) {\n const markerEnd = `url(#${utils.getGlobalId('arrow-hovered')})`;\n return { markerEnd, className: 'Ddg--Edge is-pathHovered' };\n }\n return matchMiss;\n };\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React, { PureComponent } from 'react';\nimport memoize from 'memoize-one';\nimport { Digraph, LayoutManager } from '@jaegertracing/plexus';\nimport { TSetProps, TFromGraphStateFn, TDefEntry } from '@jaegertracing/plexus/lib/Digraph/types';\nimport { TEdge } from '@jaegertracing/plexus/lib/types';\nimport TNonEmptyArray from '@jaegertracing/plexus/lib/types/TNonEmptyArray';\n\nimport DdgNodeContent from './DdgNodeContent';\nimport getNodeRenderers from './getNodeRenderers';\nimport getSetOnEdge from './getSetOnEdge';\nimport {\n ECheckedStatus,\n EDdgDensity,\n EDirection,\n EViewModifier,\n PathElem,\n TDdgVertex,\n} from '../../../model/ddg/types';\n\nimport './index.css';\n\ntype TProps = {\n baseUrl: string;\n density: EDdgDensity;\n edges: TEdge[];\n edgesViewModifiers: Map;\n extraUrlArgs?: { [key: string]: unknown };\n focusPathsThroughVertex: (vertexKey: string) => void;\n getGenerationVisibility: (vertexKey: string, direction: EDirection) => ECheckedStatus | null;\n getVisiblePathElems: (vertexKey: string) => PathElem[] | undefined;\n hideVertex: (vertexKey: string) => void;\n setOperation: (operation: string) => void;\n setViewModifier: (visIndices: number[], viewModifier: EViewModifier, enable: boolean) => void;\n uiFindMatches: Set | undefined;\n updateGenerationVisibility: (vertexKey: string, direction: EDirection) => void;\n vertices: TDdgVertex[];\n verticesViewModifiers: Map;\n};\n\n// exported for tests\n// The dichotomy between w/ & w/o VMs assumes that any edge VM neccesitates unmodified edges are de-emphasized\nexport const setOnEdgesContainer: Record>> = {\n withViewModifiers: [{ className: 'Ddg--Edges is-withViewModifiers' }],\n withoutViewModifiers: [Digraph.propsFactories.scaleStrokeOpacityStrongest, { className: 'Ddg--Edges' }],\n};\n\n// exported for tests\n// The dichotomy between w/ & w/o VMs assumes that any vertex VM makes unmodified vertices de-emphasized\nexport const setOnVectorBorderContainerWithViewModifiers: TSetProps<\n TFromGraphStateFn\n> = {\n className: 'DdgVectorBorders is-withViewModifiers',\n};\n\nconst edgesDefs: TNonEmptyArray> = [\n { localId: 'arrow' },\n { localId: 'arrow-hovered', setOnEntry: { className: 'Ddg--Arrow is-pathHovered' } },\n];\n\nexport default class Graph extends PureComponent {\n private getNodeRenderers = memoize(getNodeRenderers);\n private getNodeContentRenderer = memoize(DdgNodeContent.getNodeRenderer);\n private getSetOnEdge = memoize(getSetOnEdge);\n\n private layoutManager: LayoutManager = new LayoutManager({\n nodesep: 0.55,\n ranksep: 1.5,\n rankdir: 'TB',\n shape: 'circle',\n splines: 'polyline',\n useDotEdges: true,\n });\n\n private emptyFindSet: Set = new Set();\n\n componentWillUnmount() {\n this.layoutManager.stopAndRelease();\n }\n\n render() {\n const {\n baseUrl,\n density,\n edges,\n edgesViewModifiers,\n extraUrlArgs,\n focusPathsThroughVertex,\n getGenerationVisibility,\n getVisiblePathElems,\n hideVertex,\n setOperation,\n setViewModifier,\n uiFindMatches,\n updateGenerationVisibility,\n vertices,\n verticesViewModifiers,\n } = this.props;\n const nodeRenderers = this.getNodeRenderers(uiFindMatches || this.emptyFindSet, verticesViewModifiers);\n\n return (\n \n minimap\n zoom\n minimapClassName=\"u-miniMap\"\n layoutManager={this.layoutManager}\n edges={edges}\n vertices={vertices}\n measurableNodesKey=\"nodes/content\"\n layers={[\n {\n key: 'nodes/find-emphasis/vector-color-band',\n layerType: 'svg',\n renderNode: nodeRenderers.vectorFindColorBand,\n },\n {\n key: 'nodes/find-emphasis/html',\n layerType: 'html',\n renderNode: nodeRenderers.htmlEmphasis,\n },\n {\n key: 'nodes/vector-border',\n layerType: 'svg',\n renderNode: nodeRenderers.vectorBorder,\n setOnContainer: verticesViewModifiers.size\n ? setOnVectorBorderContainerWithViewModifiers\n : Digraph.propsFactories.scaleStrokeOpacityStrongest,\n },\n {\n key: 'edges',\n layerType: 'svg',\n edges: true,\n defs: edgesDefs,\n markerEndId: 'arrow',\n setOnContainer: edgesViewModifiers.size\n ? setOnEdgesContainer.withViewModifiers\n : setOnEdgesContainer.withoutViewModifiers,\n setOnEdge: this.getSetOnEdge(edgesViewModifiers),\n },\n {\n key: 'nodes/content',\n layerType: 'html',\n measurable: true,\n measureNode: DdgNodeContent.measureNode,\n renderNode: this.getNodeContentRenderer({\n baseUrl,\n density,\n extraUrlArgs,\n focusPathsThroughVertex,\n getGenerationVisibility,\n getVisiblePathElems,\n hideVertex,\n setOperation,\n setViewModifier,\n updateGenerationVisibility,\n }),\n },\n ]}\n />\n );\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/**\n * Util to generate an object of key:value pairs where key is\n * `commonPrefix/topLevelTypes[i]` and value is `topLevelTypes[i]` for all `i`\n * in `topLevelTypes`.\n *\n * @example generateActionTypes('a', ['b']) -> {'a/b': 'b'}\n *\n * @param commonPrefix A string that is prepended to each value in\n * `topLevelTypes` to create a property name\n * @param topLevelTypes An array of strings to generate property names from and\n * to assign as the corresponding values.\n * @returns {{[string]: string}}\n */\nexport default function generateActionTypes(\n commonPrefix: string,\n topLevelTypes: string[]\n): Record {\n const rv: Record = {};\n topLevelTypes.forEach(type => {\n const fullType = `${commonPrefix}/${type}`;\n rv[type] = fullType;\n });\n return rv;\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport _identity from 'lodash/identity';\nimport { createActions, ActionFunctionAny, Action } from 'redux-actions';\n\nimport {\n TDdgAddViewModifierPayload,\n TDdgClearViewModifiersFromIndicesPayload,\n TDdgRemoveViewModifierFromIndicesPayload,\n TDdgRemoveViewModifierPayload,\n TDdgViewModifierRemovalPayload,\n} from '../model/ddg/types';\nimport generateActionTypes from '../utils/generate-action-types';\n\nexport const actionTypes = generateActionTypes('@jaeger-ui/DEEP-DEPENDENCY-GRAPH', [\n 'ADD_VIEW_MODIFIER',\n 'CLEAR_VIEW_MODIFIERS_FROM_INDICES',\n 'REMOVE_VIEW_MODIFIER',\n 'REMOVE_VIEW_MODIFIER_FROM_INDICES',\n]);\n\nconst addViewModifier: (kwarg: TDdgAddViewModifierPayload) => TDdgAddViewModifierPayload = _identity;\nconst clearViewModifiersFromIndices: (\n kwarg: TDdgClearViewModifiersFromIndicesPayload\n) => TDdgClearViewModifiersFromIndicesPayload = _identity;\nconst removeViewModifier: (kwarg: TDdgRemoveViewModifierPayload) => TDdgRemoveViewModifierPayload = _identity;\nconst removeViewModifierFromIndices: (\n kwarg: TDdgRemoveViewModifierFromIndicesPayload\n) => TDdgRemoveViewModifierFromIndicesPayload = _identity;\n\nconst fullActions = createActions({\n [actionTypes.ADD_VIEW_MODIFIER]: addViewModifier,\n [actionTypes.CLEAR_VIEW_MODIFIERS_FROM_INDICES]: clearViewModifiersFromIndices,\n [actionTypes.REMOVE_VIEW_MODIFIER]: removeViewModifier,\n [actionTypes.REMOVE_VIEW_MODIFIER_FROM_INDICES]: removeViewModifierFromIndices,\n});\n\nexport default (fullActions as any).jaegerUi.deepDependencyGraph as Record<\n string,\n ActionFunctionAny>\n>;\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { TDdgModelParams } from './types';\n\nexport default function getStateEntryKey({ service, operation = '*', start, end }: TDdgModelParams) {\n return `${service}\\n${operation}\\n${start}\\n${end}`;\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { History as RouterHistory, Location } from 'history';\nimport _get from 'lodash/get';\nimport { bindActionCreators, Dispatch } from 'redux';\nimport { connect } from 'react-redux';\n\nimport { trackClearOperation, trackFocusPaths, trackHide, trackSetService, trackShow } from './index.track';\nimport Header from './Header';\nimport Graph from './Graph';\nimport { getUrl, getUrlState, sanitizeUrlState, ROUTE_PATH } from './url';\nimport ErrorMessage from '../common/ErrorMessage';\nimport LoadingIndicator from '../common/LoadingIndicator';\nimport { extractUiFindFromState, TExtractUiFindFromStateReturn } from '../common/UiFindInput';\nimport { getUrl as getSearchUrl } from '../SearchTracePage/url';\nimport ddgActions from '../../actions/ddg';\nimport * as jaegerApiActions from '../../actions/jaeger-api';\nimport { fetchedState } from '../../constants';\nimport getStateEntryKey from '../../model/ddg/getStateEntryKey';\nimport GraphModel, { makeGraph } from '../../model/ddg/GraphModel';\nimport {\n ECheckedStatus,\n EDdgDensity,\n EDirection,\n EViewModifier,\n TDdgModelParams,\n TDdgSparseUrlState,\n} from '../../model/ddg/types';\nimport { encode, encodeDistance } from '../../model/ddg/visibility-codec';\nimport { getConfigValue } from '../../utils/config/get-config';\nimport { ReduxState } from '../../types';\nimport { TDdgStateEntry } from '../../types/TDdgState';\n\nimport './index.css';\n\nexport type TDispatchProps = {\n addViewModifier?: (kwarg: TDdgModelParams & { viewModifier: number; visibilityIndices: number[] }) => void;\n fetchDeepDependencyGraph?: (query: TDdgModelParams) => void;\n fetchServices?: () => void;\n fetchServiceServerOps?: (service: string) => void;\n removeViewModifierFromIndices?: (\n kwarg: TDdgModelParams & { viewModifier: number; visibilityIndices: number[] }\n ) => void;\n};\n\nexport type TReduxProps = TExtractUiFindFromStateReturn & {\n graph: GraphModel | undefined;\n graphState?: TDdgStateEntry;\n serverOpsForService?: Record;\n services?: string[] | null;\n showOp: boolean;\n urlState: TDdgSparseUrlState;\n};\n\nexport type TOwnProps = {\n baseUrl: string;\n extraUrlArgs?: { [key: string]: unknown };\n history: RouterHistory;\n location: Location;\n showSvcOpsHeader: boolean;\n};\n\nexport type TProps = TDispatchProps & TReduxProps & TOwnProps;\n\n// export for tests\nexport class DeepDependencyGraphPageImpl extends React.PureComponent {\n static defaultProps = {\n showSvcOpsHeader: true,\n baseUrl: ROUTE_PATH,\n };\n\n static fetchModelIfStale(props: TProps) {\n const { fetchDeepDependencyGraph, graphState = null, urlState } = props;\n const { service, operation } = urlState;\n if (!graphState && service && fetchDeepDependencyGraph) {\n fetchDeepDependencyGraph({ service, operation, start: 0, end: 0 });\n }\n }\n\n constructor(props: TProps) {\n super(props);\n DeepDependencyGraphPageImpl.fetchModelIfStale(props);\n\n const { fetchServices, fetchServiceServerOps, serverOpsForService, services, urlState } = props;\n const { service } = urlState;\n\n if (!services && fetchServices) {\n fetchServices();\n }\n if (\n service &&\n serverOpsForService &&\n !Reflect.has(serverOpsForService, service) &&\n fetchServiceServerOps\n ) {\n fetchServiceServerOps(service);\n }\n }\n\n componentWillReceiveProps(nextProps: TProps) {\n DeepDependencyGraphPageImpl.fetchModelIfStale(nextProps);\n }\n\n clearOperation = () => {\n trackClearOperation();\n this.updateUrlState({ operation: undefined });\n };\n\n focusPathsThroughVertex = (vertexKey: string) => {\n const elems = this.getVisiblePathElems(vertexKey);\n if (!elems) return;\n\n trackFocusPaths();\n const indices = ([] as number[]).concat(\n ...elems.map(({ memberOf }) => memberOf.members.map(({ visibilityIdx }) => visibilityIdx))\n );\n this.updateUrlState({ visEncoding: encode(indices) });\n };\n\n getGenerationVisibility = (vertexKey: string, direction: EDirection): ECheckedStatus | null => {\n const { graph, urlState } = this.props;\n if (graph) {\n return graph.getGenerationVisibility(vertexKey, direction, urlState.visEncoding);\n }\n return null;\n };\n\n getVisiblePathElems = (key: string) => {\n const { graph, urlState } = this.props;\n if (graph) {\n return graph.getVertexVisiblePathElems(key, urlState.visEncoding);\n }\n return undefined;\n };\n\n hideVertex = (vertexKey: string) => {\n const { graph, urlState } = this.props;\n if (!graph) return;\n\n const visEncoding = graph.getVisWithoutVertex(vertexKey, urlState.visEncoding);\n if (!visEncoding) return;\n\n trackHide();\n this.updateUrlState({ visEncoding });\n };\n\n setDensity = (density: EDdgDensity) => this.updateUrlState({ density });\n\n setDistance = (distance: number, direction: EDirection) => {\n const { graphState } = this.props;\n const { visEncoding } = this.props.urlState;\n\n if (graphState && graphState.state === fetchedState.DONE) {\n const { model: ddgModel } = graphState;\n\n this.updateUrlState({\n visEncoding: encodeDistance({\n ddgModel,\n direction,\n distance,\n prevVisEncoding: visEncoding,\n }),\n });\n }\n };\n\n setOperation = (operation: string) => {\n this.updateUrlState({ operation, visEncoding: undefined });\n };\n\n setService = (service: string) => {\n const { fetchServiceServerOps, serverOpsForService } = this.props;\n if (serverOpsForService && !Reflect.has(serverOpsForService, service) && fetchServiceServerOps) {\n fetchServiceServerOps(service);\n }\n this.updateUrlState({ operation: undefined, service, visEncoding: undefined });\n trackSetService();\n };\n\n setViewModifier = (visibilityIndices: number[], viewModifier: EViewModifier, enable: boolean) => {\n const { addViewModifier, graph, removeViewModifierFromIndices, urlState } = this.props;\n const fn = enable ? addViewModifier : removeViewModifierFromIndices;\n const { service, operation } = urlState;\n if (!fn || !graph || !service) return;\n fn({\n operation,\n service,\n viewModifier,\n visibilityIndices,\n end: 0,\n start: 0,\n });\n };\n\n showVertices = (vertexKeys: string[]) => {\n const { graph, urlState } = this.props;\n const { visEncoding } = urlState;\n if (!graph) return;\n this.updateUrlState({ visEncoding: graph.getVisWithVertices(vertexKeys, visEncoding) });\n };\n\n toggleShowOperations = (enable: boolean) => this.updateUrlState({ showOp: enable });\n\n updateGenerationVisibility = (vertexKey: string, direction: EDirection) => {\n const { graph, urlState } = this.props;\n if (!graph) return;\n\n const result = graph.getVisWithUpdatedGeneration(vertexKey, direction, urlState.visEncoding);\n if (!result) return;\n\n const { visEncoding, update } = result;\n if (update === ECheckedStatus.Empty) trackHide(direction);\n else trackShow(direction);\n this.updateUrlState({ visEncoding });\n };\n\n updateUrlState = (newValues: Partial) => {\n const { baseUrl, extraUrlArgs, graphState, history, uiFind, urlState } = this.props;\n const getUrlArg = { uiFind, ...urlState, ...newValues, ...extraUrlArgs };\n const hash = _get(graphState, 'model.hash');\n if (hash) getUrlArg.hash = hash;\n history.push(getUrl(getUrlArg, baseUrl));\n };\n\n render() {\n const {\n baseUrl,\n extraUrlArgs,\n graph,\n graphState,\n serverOpsForService,\n services,\n showOp,\n uiFind,\n urlState,\n showSvcOpsHeader,\n } = this.props;\n const { density, operation, service, visEncoding } = urlState;\n const distanceToPathElems =\n graphState && graphState.state === fetchedState.DONE ? graphState.model.distanceToPathElems : undefined;\n const uiFindMatches = graph && graph.getVisibleUiFindMatches(uiFind, visEncoding);\n const hiddenUiFindMatches = graph && graph.getHiddenUiFindMatches(uiFind, visEncoding);\n\n let content: React.ReactElement | null = null;\n if (!graphState) {\n content =

Enter query above

;\n } else if (graphState.state === fetchedState.DONE && graph) {\n const { edges, vertices } = graph.getVisible(visEncoding);\n const { viewModifiers } = graphState;\n const { edges: edgesViewModifiers, vertices: verticesViewModifiers } = graph.getDerivedViewModifiers(\n visEncoding,\n viewModifiers\n );\n if (vertices.length > 1) {\n // TODO: using `key` here is a hack, debug digraph to fix the underlying issue\n content = (\n \n );\n } else if (\n graphState.model.distanceToPathElems.has(-1) ||\n graphState.model.distanceToPathElems.has(1)\n ) {\n content = (\n <>\n

There is nothing visible to show

\n

Select at least one hop to view

\n \n );\n } else {\n const lookback = getConfigValue('search.maxLookback.value');\n const checkLink = getSearchUrl({\n lookback,\n minDuration: '0ms',\n operation,\n service,\n tags: '{\"span.kind\":\"server\"}',\n });\n content = (\n <>\n

There are no dependencies

\n

\n No traces were found that contain {service}\n {operation && `:${operation}`} and any other service where span.kind is ‘server’.\n

\n

\n Confirm by searching\n

\n \n );\n }\n } else if (graphState.state === fetchedState.LOADING) {\n content = ;\n } else if (graphState.state === fetchedState.ERROR) {\n content = (\n <>\n \n

If you are using an adblocker, whitelist Jaeger and retry.

\n \n );\n } else {\n content = (\n <>\n

Unknown graphState:

\n

{JSON.stringify(graphState, null, 2)}

\n \n );\n }\n\n return (\n
\n
\n \n
\n
{content}
\n
\n );\n }\n}\n\n// export for tests\nexport function mapStateToProps(state: ReduxState, ownProps: TOwnProps): TReduxProps {\n const { services: stServices } = state;\n const { services, serverOpsForService } = stServices;\n const urlState = getUrlState(ownProps.location.search);\n const { density, operation, service, showOp: urlStateShowOp } = urlState;\n const showOp = urlStateShowOp !== undefined ? urlStateShowOp : operation !== undefined;\n let graphState: TDdgStateEntry | undefined;\n if (service) {\n graphState = _get(state.ddg, getStateEntryKey({ service, operation, start: 0, end: 0 }));\n }\n let graph: GraphModel | undefined;\n if (graphState && graphState.state === fetchedState.DONE) {\n graph = makeGraph(graphState.model, showOp, density);\n }\n return {\n graph,\n graphState,\n serverOpsForService,\n services,\n showOp,\n urlState: sanitizeUrlState(urlState, _get(graphState, 'model.hash')),\n ...extractUiFindFromState(state),\n };\n}\n\n// export for tests\nexport function mapDispatchToProps(dispatch: Dispatch): TDispatchProps {\n const { fetchDeepDependencyGraph, fetchServiceServerOps, fetchServices } = bindActionCreators(\n jaegerApiActions,\n dispatch\n );\n const { addViewModifier, removeViewModifierFromIndices } = bindActionCreators(ddgActions, dispatch);\n\n return {\n addViewModifier,\n fetchDeepDependencyGraph,\n fetchServiceServerOps,\n fetchServices,\n removeViewModifierFromIndices,\n };\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(DeepDependencyGraphPageImpl);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport const DEFAULT_OPERATION = 'all' as 'all';\nexport const DEFAULT_LOOKBACK = '1h' as '1h';\nexport const DEFAULT_LIMIT = 20 as 20;\n\nexport const FORM_CHANGE_ACTION_TYPE = '@@redux-form/CHANGE' as '@@redux-form/CHANGE';\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Store } from 'redux';\n\nimport * as constants from '../../constants/search-form';\nimport { trackEvent } from '../../utils/tracking';\nimport { ReduxState } from '../../types';\n\nexport const ACTION_SET = 'set';\nexport const ACTION_CLEAR = 'clear';\nexport const ACTION_DEFAULT = 'default';\n\nexport const CATEGORY_SORTBY = `jaeger/ux/search/results/sortby`;\nexport const FORM_CATEGORY_BASE = 'jaeger/ux/search/form';\nexport const CATEGORY_OPERATION = `${FORM_CATEGORY_BASE}/operation`;\nexport const CATEGORY_LOOKBACK = `${FORM_CATEGORY_BASE}/lookback`;\nexport const CATEGORY_TAGS = `${FORM_CATEGORY_BASE}/tags`;\nexport const CATEGORY_MIN_DURATION = `${FORM_CATEGORY_BASE}/min_duration`;\nexport const CATEGORY_MAX_DURATION = `${FORM_CATEGORY_BASE}/max_duration`;\nexport const CATEGORY_LIMIT = `${FORM_CATEGORY_BASE}/limit`;\n\nexport function trackFormInput(\n resultsLimit: number,\n operation: string,\n tags: any,\n minDuration: number,\n maxDuration: number,\n lookback: string\n) {\n trackEvent(CATEGORY_OPERATION, operation === constants.DEFAULT_OPERATION ? ACTION_DEFAULT : ACTION_SET);\n trackEvent(CATEGORY_LIMIT, resultsLimit === constants.DEFAULT_LIMIT ? ACTION_DEFAULT : ACTION_SET);\n trackEvent(CATEGORY_MAX_DURATION, maxDuration ? ACTION_SET : ACTION_CLEAR);\n trackEvent(CATEGORY_MIN_DURATION, minDuration ? ACTION_SET : ACTION_CLEAR);\n trackEvent(CATEGORY_TAGS, tags ? ACTION_SET : ACTION_CLEAR);\n trackEvent(CATEGORY_LOOKBACK, lookback);\n}\n\nexport const middlewareHooks = {\n [constants.FORM_CHANGE_ACTION_TYPE]: (store: Store, action: any) => {\n if (action.meta.form === 'sortBy') {\n trackEvent(CATEGORY_SORTBY, action.payload);\n }\n },\n};\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/* eslint-disable import/no-extraneous-dependencies */\n\nimport * as React from 'react';\nimport { Icon } from 'antd';\nimport VirtualizedSelect from 'react-virtualized-select';\n\nimport 'react-select/dist/react-select.css';\nimport 'react-virtualized/styles.css';\nimport 'react-virtualized-select/styles.css';\n\nimport './VirtSelect.css';\n\n/*\ntype option = {\n disabled: boolean,\n className: string,\n [key: string]: any,\n}\n\ntype RenderOptionArgs = {\n focusedOption: option,\n focusOption: (obj: Object) => void,\n key: string,\n labelKey: string,\n option: option,\n selectValue: (obj: Object) => void,\n style: object,\n valueArray: object[] | null | undefined,\n};\n */\n\ntype RenderArrowArgs = {\n isOpen: boolean;\n};\n\nfunction renderOption({\n focusedOption,\n focusOption,\n key,\n labelKey,\n option,\n selectValue,\n style,\n valueArray,\n}: // react-Virtualized-select is deprecated and I cannot unravel its types\n// maybe time to use react-select which supports async\n// TODO discuss 👆\nany) /* RenderOptionArgs) \\*\\/: JSX.Element */ {\n const className = ['VirtSelect--option'];\n if (option === focusedOption) {\n className.push('is-focused');\n }\n if (option.disabled) {\n className.push('is-disabled');\n }\n if (valueArray && valueArray.indexOf(option) >= 0) {\n className.push('is-selected');\n }\n if (option.className) {\n className.push(option.className);\n }\n const events = option.disabled\n ? {}\n : {\n onClick: () => selectValue(option),\n onMouseEnter: () => focusOption(option),\n };\n return (\n
\n {option[labelKey]}\n
\n );\n}\n\nfunction renderArrow({ isOpen }: RenderArrowArgs) {\n return ;\n}\n\nexport default function VirtSelect(props: object) {\n return (\n \n );\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport moment from 'moment';\nimport _round from 'lodash/round';\n\nimport { toFloatPrecision } from './number';\n\nconst TODAY = 'Today';\nconst YESTERDAY = 'Yesterday';\n\nexport const STANDARD_DATE_FORMAT = 'YYYY-MM-DD';\nexport const STANDARD_TIME_FORMAT = 'HH:mm';\nexport const STANDARD_DATETIME_FORMAT = 'MMMM D YYYY, HH:mm:ss.SSS';\nexport const ONE_MILLISECOND = 1000;\nexport const ONE_SECOND = 1000 * ONE_MILLISECOND;\nexport const DEFAULT_MS_PRECISION = Math.log10(ONE_MILLISECOND);\n\n/**\n * @param {number} timestamp\n * @param {number} initialTimestamp\n * @param {number} totalDuration\n * @return {number} 0-100 percentage\n */\nexport function getPercentageOfDuration(duration: number, totalDuration: number) {\n return (duration / totalDuration) * 100;\n}\n\nconst quantizeDuration = (duration: number, floatPrecision: number, conversionFactor: number) =>\n toFloatPrecision(duration / conversionFactor, floatPrecision) * conversionFactor;\n\n/**\n * @param {number} duration (in microseconds)\n * @return {string} formatted, unit-labelled string with time in milliseconds\n */\nexport function formatDate(duration: number) {\n return moment(duration / ONE_MILLISECOND).format(STANDARD_DATE_FORMAT);\n}\n\n/**\n * @param {number} duration (in microseconds)\n * @return {string} formatted, unit-labelled string with time in milliseconds\n */\nexport function formatTime(duration: number) {\n return moment(duration / ONE_MILLISECOND).format(STANDARD_TIME_FORMAT);\n}\n\n/**\n * @param {number} duration (in microseconds)\n * @return {string} formatted, unit-labelled string with time in milliseconds\n */\nexport function formatDatetime(duration: number) {\n return moment(duration / ONE_MILLISECOND).format(STANDARD_DATETIME_FORMAT);\n}\n\n/**\n * @param {number} duration (in microseconds)\n * @return {string} formatted, unit-labelled string with time in milliseconds\n */\nexport function formatMillisecondTime(duration: number) {\n const targetDuration = quantizeDuration(duration, DEFAULT_MS_PRECISION, ONE_MILLISECOND);\n return `${moment.duration(targetDuration / ONE_MILLISECOND).asMilliseconds()}ms`;\n}\n\n/**\n * @param {number} duration (in microseconds)\n * @return {string} formatted, unit-labelled string with time in seconds\n */\nexport function formatSecondTime(duration: number) {\n const targetDuration = quantizeDuration(duration, DEFAULT_MS_PRECISION, ONE_SECOND);\n return `${moment.duration(targetDuration / ONE_MILLISECOND).asSeconds()}s`;\n}\n\n/**\n * Humanizes the duration based on the inputUnit\n *\n * Example:\n * 5000ms => 5s\n * 1000μs => 1ms\n */\nexport function formatDuration(duration: number, inputUnit: string = 'microseconds'): string {\n let d = duration;\n if (inputUnit === 'microseconds') {\n d = duration / 1000;\n }\n let units = 'ms';\n if (d >= 1000) {\n units = 's';\n d /= 1000;\n }\n return _round(d, 2) + units;\n}\n\nexport function formatRelativeDate(value: any, fullMonthName: boolean = false) {\n const m = moment.isMoment(value) ? value : moment(value);\n const monthFormat = fullMonthName ? 'MMMM' : 'MMM';\n const dt = new Date();\n if (dt.getFullYear() !== m.year()) {\n return m.format(`${monthFormat} D, YYYY`);\n }\n const mMonth = m.month();\n const mDate = m.date();\n const date = dt.getDate();\n if (mMonth === dt.getMonth() && mDate === date) {\n return TODAY;\n }\n dt.setDate(date - 1);\n if (mMonth === dt.getMonth() && mDate === dt.getDate()) {\n return YESTERDAY;\n }\n return m.format(`${monthFormat} D`);\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/**\n * given a number and a desired precision for the floating\n * side, return the number at the new precision.\n *\n * toFloatPrecision(3.55, 1) // 3.5\n * toFloatPrecision(0.04422, 2) // 0.04\n * toFloatPrecision(6.24e6, 2) // 6240000.00\n *\n * does not support numbers that use \"e\" notation on toString.\n *\n * @param {number} number\n * @param {number} precision\n * @return {number} number at new floating precision\n */\n// eslint-disable-next-line import/prefer-default-export\nexport function toFloatPrecision(number: number, precision: number): number {\n const log10Length = Math.floor(Math.log10(Math.abs(number))) + 1;\n const targetPrecision = precision + log10Length;\n\n if (targetPrecision <= 0) {\n return Math.trunc(number);\n }\n\n return Number(number.toPrecision(targetPrecision));\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Popover } from 'antd';\nimport cx from 'classnames';\nimport * as React from 'react';\n\nimport './redux-form-field-adapter.css';\n\nconst noop = () => {};\n\nexport default function reduxFormFieldAdapter({\n AntInputComponent,\n onChangeAdapter,\n isValidatedInput = false,\n}: {\n AntInputComponent: React.ComponentType;\n onChangeAdapter: (evt: React.ChangeEvent) => any;\n isValidatedInput: boolean;\n}) {\n return function _reduxFormFieldAdapter(props: any) {\n const {\n input: { onBlur, onChange, onFocus, value },\n children,\n ...rest\n } = props;\n const isInvalid = !rest.meta.active && Boolean(rest.meta.error);\n const content = (\n onChange(onChangeAdapter(arg)) : onChange}\n value={value}\n {...rest}\n >\n {children}\n \n );\n return isValidatedInput ? (\n \n {content}\n \n ) : (\n content\n );\n };\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Form, Input, Button, Popover, Select } from 'antd';\nimport _get from 'lodash/get';\nimport logfmtParser from 'logfmt/lib/logfmt_parser';\nimport { stringify as logfmtStringify } from 'logfmt/lib/stringify';\nimport moment from 'moment';\nimport memoizeOne from 'memoize-one';\nimport PropTypes from 'prop-types';\nimport queryString from 'query-string';\nimport IoHelp from 'react-icons/lib/io/help';\nimport { connect } from 'react-redux';\nimport { bindActionCreators } from 'redux';\nimport { Field, reduxForm, formValueSelector } from 'redux-form';\nimport store from 'store';\n\nimport * as markers from './SearchForm.markers';\nimport { trackFormInput } from './SearchForm.track';\nimport VirtSelect from '../common/VirtSelect';\nimport * as jaegerApiActions from '../../actions/jaeger-api';\nimport { formatDate, formatTime } from '../../utils/date';\nimport reduxFormFieldAdapter from '../../utils/redux-form-field-adapter';\nimport { DEFAULT_OPERATION, DEFAULT_LIMIT, DEFAULT_LOOKBACK } from '../../constants/search-form';\nimport { getConfigValue } from '../../utils/config/get-config';\nimport './SearchForm.css';\n\nconst FormItem = Form.Item;\nconst Option = Select.Option;\n\nconst AdaptedInput = reduxFormFieldAdapter({ AntInputComponent: Input });\nconst AdaptedSelect = reduxFormFieldAdapter({ AntInputComponent: Select });\nconst AdaptedVirtualSelect = reduxFormFieldAdapter({\n AntInputComponent: VirtSelect,\n onChangeAdapter: option => (option ? option.value : null),\n});\nconst ValidatedAdaptedInput = reduxFormFieldAdapter({ AntInputComponent: Input, isValidatedInput: true });\n\nexport function getUnixTimeStampInMSFromForm({ startDate, startDateTime, endDate, endDateTime }) {\n const start = `${startDate} ${startDateTime}`;\n const end = `${endDate} ${endDateTime}`;\n return {\n start: `${moment(start, 'YYYY-MM-DD HH:mm').valueOf()}000`,\n end: `${moment(end, 'YYYY-MM-DD HH:mm').valueOf()}000`,\n };\n}\n\nexport function convTagsLogfmt(tags) {\n if (!tags) {\n return null;\n }\n const data = logfmtParser.parse(tags);\n Object.keys(data).forEach(key => {\n const value = data[key];\n // make sure all values are strings\n // https://github.com/jaegertracing/jaeger/issues/550#issuecomment-352850811\n if (typeof value !== 'string') {\n data[key] = String(value);\n }\n });\n return JSON.stringify(data);\n}\n\nexport function lookbackToTimestamp(lookback, from) {\n const unit = lookback.substr(-1);\n return (\n moment(from)\n .subtract(parseInt(lookback, 10), unit)\n .valueOf() * 1000\n );\n}\n\nconst lookbackOptions = [\n {\n label: 'Hour',\n value: '1h',\n },\n {\n label: '2 Hours',\n value: '2h',\n },\n {\n label: '3 Hours',\n value: '3h',\n },\n {\n label: '6 Hours',\n value: '6h',\n },\n {\n label: '12 Hours',\n value: '12h',\n },\n {\n label: '24 Hours',\n value: '24h',\n },\n {\n label: '2 Days',\n value: '2d',\n },\n {\n label: '3 Days',\n value: '3d',\n },\n {\n label: '5 Days',\n value: '5d',\n },\n {\n label: '7 Days',\n value: '7d',\n },\n {\n label: '2 Weeks',\n value: '2w',\n },\n {\n label: '3 Weeks',\n value: '3w',\n },\n {\n label: '4 Weeks',\n value: '4w',\n },\n];\n\nexport const optionsWithinMaxLookback = memoizeOne(maxLookback => {\n const now = new Date();\n const minTimestamp = lookbackToTimestamp(maxLookback.value, now);\n const lookbackToTimestampMap = new Map();\n const options = lookbackOptions.filter(({ value }) => {\n const lookbackTimestamp = lookbackToTimestamp(value, now);\n lookbackToTimestampMap.set(value, lookbackTimestamp);\n return lookbackTimestamp >= minTimestamp;\n });\n const lastInRangeIndex = options.length - 1;\n const lastInRangeOption = options[lastInRangeIndex];\n if (lastInRangeOption.label !== maxLookback.label) {\n if (lookbackToTimestampMap.get(lastInRangeOption.value) !== minTimestamp) {\n options.push(maxLookback);\n } else {\n options.splice(lastInRangeIndex, 1, maxLookback);\n }\n }\n return options.map(({ label, value }) => (\n \n ));\n});\n\nexport function traceIDsToQuery(traceIDs) {\n if (!traceIDs) {\n return null;\n }\n return traceIDs.split(',');\n}\n\nexport const placeholderDurationFields = 'e.g. 1.2s, 100ms, 500us';\nexport function validateDurationFields(value) {\n if (!value) return undefined;\n return /\\d[\\d\\\\.]*(us|ms|s|m|h)$/.test(value)\n ? undefined\n : {\n content: `Please enter a number followed by a duration unit, ${placeholderDurationFields}`,\n title: 'Please match the requested format.',\n };\n}\n\nexport function convertQueryParamsToFormDates({ start, end }) {\n let queryStartDate;\n let queryStartDateTime;\n let queryEndDate;\n let queryEndDateTime;\n if (end) {\n const endUnixNs = parseInt(end, 10);\n queryEndDate = formatDate(endUnixNs);\n queryEndDateTime = formatTime(endUnixNs);\n }\n if (start) {\n const startUnixNs = parseInt(start, 10);\n queryStartDate = formatDate(startUnixNs);\n queryStartDateTime = formatTime(startUnixNs);\n }\n\n return {\n queryStartDate,\n queryStartDateTime,\n queryEndDate,\n queryEndDateTime,\n };\n}\n\nexport function submitForm(fields, searchTraces) {\n const {\n resultsLimit,\n service,\n startDate,\n startDateTime,\n endDate,\n endDateTime,\n operation,\n tags,\n minDuration,\n maxDuration,\n lookback,\n } = fields;\n // Note: traceID is ignored when the form is submitted\n store.set('lastSearch', { service, operation });\n\n let start;\n let end;\n if (lookback !== 'custom') {\n const now = new Date();\n start = lookbackToTimestamp(lookback, now);\n end = now * 1000;\n } else {\n const times = getUnixTimeStampInMSFromForm({\n startDate,\n startDateTime,\n endDate,\n endDateTime,\n });\n start = times.start;\n end = times.end;\n }\n\n trackFormInput(resultsLimit, operation, tags, minDuration, maxDuration, lookback);\n\n searchTraces({\n service,\n operation: operation !== DEFAULT_OPERATION ? operation : undefined,\n limit: resultsLimit,\n lookback,\n start,\n end,\n tags: convTagsLogfmt(tags) || undefined,\n minDuration: minDuration || null,\n maxDuration: maxDuration || null,\n });\n}\n\nexport class SearchFormImpl extends React.PureComponent {\n render() {\n const {\n handleSubmit,\n invalid,\n searchMaxLookback,\n selectedLookback,\n selectedService = '-',\n services,\n submitting: disabled,\n } = this.props;\n const selectedServicePayload = services.find(s => s.name === selectedService);\n const opsForSvc = (selectedServicePayload && selectedServicePayload.operations) || [];\n const noSelectedService = selectedService === '-' || !selectedService;\n const tz = selectedLookback === 'custom' ? new Date().toTimeString().replace(/^.*?GMT/, 'UTC') : null;\n return (\n
\n \n Service ({services.length})\n \n }\n >\n ({ label: v.name, value: v.name })),\n required: true,\n }}\n />\n \n \n Operation ({opsForSvc ? opsForSvc.length : 0})\n \n }\n >\n ({ label: v, value: v, title: v })),\n required: true,\n }}\n />\n \n\n \n Tags{' '}\n \n Values should be in the{' '}\n \n logfmt\n {' '}\n format.\n ,\n
    \n
  • Use space for conjunctions
  • \n
  • Values containing whitespace should be enclosed in quotes
  • \n
,\n ]}\n content={\n
\n \n error=true db.statement="select * from User"\n \n
\n }\n >\n \n \n
\n }\n >\n \n \n\n \n \n {optionsWithinMaxLookback(searchMaxLookback)}\n \n \n \n\n {selectedLookback === 'custom' && [\n \n Start Time{' '}\n \n Times are expressed in {tz}\n \n }\n >\n \n \n \n }\n >\n \n \n ,\n\n \n End Time{' '}\n \n Times are expressed in {tz}\n \n }\n >\n \n \n \n }\n >\n \n \n ,\n ]}\n\n \n \n \n\n \n \n \n\n \n \n \n\n \n Find Traces\n \n \n );\n }\n}\n\nSearchFormImpl.propTypes = {\n handleSubmit: PropTypes.func.isRequired,\n invalid: PropTypes.bool,\n submitting: PropTypes.bool,\n searchMaxLookback: PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n }).isRequired,\n services: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n operations: PropTypes.arrayOf(PropTypes.string),\n })\n ),\n selectedService: PropTypes.string,\n selectedLookback: PropTypes.string,\n};\n\nSearchFormImpl.defaultProps = {\n invalid: false,\n services: [],\n submitting: false,\n selectedService: null,\n selectedLookback: null,\n};\n\nexport const searchSideBarFormSelector = formValueSelector('searchSideBar');\n\nexport function mapStateToProps(state) {\n const {\n service,\n limit,\n start,\n end,\n operation,\n tag: tagParams,\n tags: logfmtTags,\n maxDuration,\n minDuration,\n lookback,\n traceID: traceIDParams,\n } = queryString.parse(state.router.location.search);\n\n const nowInMicroseconds = moment().valueOf() * 1000;\n const today = formatDate(nowInMicroseconds);\n const currentTime = formatTime(nowInMicroseconds);\n const lastSearch = store.get('lastSearch');\n let lastSearchService;\n let lastSearchOperation;\n\n if (lastSearch) {\n // last search is only valid if the service is in the list of services\n const { operation: lastOp, service: lastSvc } = lastSearch;\n if (lastSvc && lastSvc !== '-') {\n if (state.services.services.includes(lastSvc)) {\n lastSearchService = lastSvc;\n if (lastOp && lastOp !== '-') {\n const ops = state.services.operationsForService[lastSvc];\n if (lastOp === 'all' || (ops && ops.includes(lastOp))) {\n lastSearchOperation = lastOp;\n }\n }\n }\n }\n }\n\n const {\n queryStartDate,\n queryStartDateTime,\n queryEndDate,\n queryEndDateTime,\n } = convertQueryParamsToFormDates({ start, end });\n\n let tags;\n // continue to parse tagParams to remain backward compatible with older URLs\n // but, parse to logfmt format instead of the former \"key:value|k2:v2\"\n if (tagParams) {\n // eslint-disable-next-line no-inner-declarations\n function convFormerTag(accum, value) {\n const parts = value.split(':', 2);\n const key = parts[0];\n if (key) {\n // eslint-disable-next-line no-param-reassign\n accum[key] = parts[1] == null ? '' : parts[1];\n return true;\n }\n return false;\n }\n\n let data;\n if (Array.isArray(tagParams)) {\n data = tagParams.reduce((accum, str) => {\n convFormerTag(accum, str);\n return accum;\n }, {});\n } else if (typeof tagParams === 'string') {\n const target = {};\n data = convFormerTag(target, tagParams) ? target : null;\n }\n if (data) {\n try {\n tags = logfmtStringify(data);\n } catch (_) {\n tags = 'Parse Error';\n }\n } else {\n tags = 'Parse Error';\n }\n }\n if (logfmtTags) {\n let data;\n try {\n data = JSON.parse(logfmtTags);\n tags = logfmtStringify(data);\n } catch (_) {\n tags = 'Parse Error';\n }\n }\n let traceIDs;\n if (traceIDParams) {\n traceIDs = traceIDParams instanceof Array ? traceIDParams.join(',') : traceIDParams;\n }\n\n return {\n destroyOnUnmount: false,\n initialValues: {\n service: service || lastSearchService || '-',\n resultsLimit: limit || DEFAULT_LIMIT,\n lookback: lookback || DEFAULT_LOOKBACK,\n startDate: queryStartDate || today,\n startDateTime: queryStartDateTime || '00:00',\n endDate: queryEndDate || today,\n endDateTime: queryEndDateTime || currentTime,\n operation: operation || lastSearchOperation || DEFAULT_OPERATION,\n tags,\n minDuration: minDuration || null,\n maxDuration: maxDuration || null,\n traceIDs: traceIDs || null,\n },\n searchMaxLookback: _get(state, 'config.search.maxLookback'),\n selectedService: searchSideBarFormSelector(state, 'service'),\n selectedLookback: searchSideBarFormSelector(state, 'lookback'),\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n const { searchTraces } = bindActionCreators(jaegerApiActions, dispatch);\n return {\n onSubmit: fields => submitForm(fields, searchTraces),\n };\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(\n reduxForm({\n form: 'searchSideBar',\n })(SearchFormImpl)\n);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// eslint-disable-next-line import/prefer-default-export\nexport const SUBMIT_BTN = 'submit-btn';\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { trackEvent } from '../../../utils/tracking';\n\n// export for tests\nexport const CATEGORY_ALT_VIEW = 'jaeger/ux/search-results/alt-view';\nexport const CATEGORY_CONVERSIONS = 'jaeger/ux/search-results/conversions';\n\nexport enum EAltViewActions {\n Ddg = 'ddg',\n Traces = 'traces',\n}\n\nexport function trackAltView(view: EAltViewActions) {\n trackEvent(CATEGORY_ALT_VIEW, view);\n}\n\nexport function trackConversions(view: EAltViewActions) {\n trackEvent(CATEGORY_CONVERSIONS, view);\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Button } from 'antd';\n\nimport { trackConversions, EAltViewActions } from './index.track';\nimport { getUrl, getUrlState } from '../../DeepDependencies/url';\nimport { getConfigValue } from '../../../utils/config/get-config';\n\ntype Props = {\n onDdgViewClicked: () => void;\n traceResultsView: boolean;\n};\n\nfunction viewAllDep({ ctrlKey, metaKey }: React.MouseEvent) {\n trackConversions(EAltViewActions.Ddg);\n const { density, operation, service, showOp } = getUrlState(window.location.search);\n window.open(getUrl({ density, operation, service, showOp }), ctrlKey || metaKey ? '_blank' : '_self');\n}\n\nexport default function AltViewOptions(props: Props) {\n const { onDdgViewClicked, traceResultsView } = props;\n const toggleBtn = (\n \n );\n if (traceResultsView || !getConfigValue('deepDependencies.menuEnabled')) return toggleBtn;\n return (\n <>\n {toggleBtn}\n \n \n );\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\n\nimport BreakableText from './BreakableText';\nimport LoadingIndicator from './LoadingIndicator';\nimport { fetchedState, FALLBACK_TRACE_NAME } from '../../constants';\n\nimport { FetchedState, TNil } from '../../types';\nimport { ApiError } from '../../types/api-error';\n\nimport './TraceName.css';\n\ntype Props = {\n className?: string;\n error?: ApiError | TNil;\n state?: FetchedState | TNil;\n traceName?: string | TNil;\n};\n\nexport default function TraceName(props: Props) {\n const { className, error, state, traceName } = props;\n const isErred = state === fetchedState.ERROR;\n let title: string | React.ReactNode = traceName || FALLBACK_TRACE_NAME;\n let errorCssClass = '';\n if (isErred) {\n errorCssClass = 'is-error';\n let titleStr = '';\n if (error) {\n titleStr = typeof error === 'string' ? error : error.message || String(error);\n }\n if (!titleStr) {\n titleStr = 'Error: Unknown error';\n }\n title = titleStr;\n title = ;\n } else if (state === fetchedState.LOADING) {\n title = ;\n } else {\n const text: string = String(traceName || FALLBACK_TRACE_NAME);\n title = ;\n }\n return {title};\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Checkbox } from 'antd';\nimport { Link } from 'react-router-dom';\n\nimport TraceName from '../../common/TraceName';\nimport { fetchedState } from '../../../constants';\nimport { formatDuration } from '../../../utils/date';\n\nimport { FetchedState, TNil } from '../../../types';\nimport { ApiError } from '../../../types/api-error';\n\nimport './ResultItemTitle.css';\n\ntype Props = {\n duration?: number;\n durationPercent?: number;\n error?: ApiError;\n isInDiffCohort: boolean;\n linkTo: string | TNil;\n state?: FetchedState | TNil;\n targetBlank?: boolean;\n toggleComparison: (traceID: string, isInDiffCohort: boolean) => void;\n traceID: string;\n traceName?: string;\n disableComparision?: boolean;\n};\n\nconst DEFAULT_DURATION_PERCENT = 0;\n\nconst stopCheckboxPropagation = (evt: React.MouseEvent) => evt.stopPropagation();\n\nexport default class ResultItemTitle extends React.PureComponent {\n static defaultProps: Partial = {\n disableComparision: false,\n durationPercent: DEFAULT_DURATION_PERCENT,\n error: undefined,\n state: undefined,\n targetBlank: false,\n };\n\n toggleComparison = () => {\n const { isInDiffCohort, toggleComparison, traceID } = this.props;\n toggleComparison(traceID, isInDiffCohort);\n };\n\n render() {\n const {\n disableComparision,\n duration,\n durationPercent,\n error,\n isInDiffCohort,\n linkTo,\n state,\n targetBlank,\n traceID,\n traceName,\n } = this.props;\n // Use a div when the ResultItemTitle doesn't link to anything\n let WrapperComponent: string | typeof Link = 'div';\n const wrapperProps: Record = { className: 'ResultItemTitle--item ub-flex-auto' };\n if (linkTo) {\n wrapperProps.to = linkTo;\n WrapperComponent = Link;\n if (targetBlank) {\n wrapperProps.target = '_blank';\n wrapperProps.rel = 'noopener noreferrer';\n }\n }\n const isErred = state === fetchedState.ERROR;\n // Separate propagation management and toggle manegement due to ant-design#16400\n const checkboxProps = {\n className: 'ResultItemTitle--item ub-flex-none',\n checked: !isErred && isInDiffCohort,\n disabled: isErred,\n onChange: this.toggleComparison,\n onClick: stopCheckboxPropagation,\n };\n\n return (\n
\n {!disableComparision && }\n {/* TODO: Shouldn't need cast */}\n \n \n {duration != null && {formatDuration(duration)}}\n

\n \n {traceID.slice(0, 7)}\n

\n
\n
\n );\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Button } from 'antd';\nimport { Link } from 'react-router-dom';\n\nimport ResultItemTitle from './ResultItemTitle';\nimport { getUrl } from '../../TraceDiff/url';\nimport { getUrl as getTracePageUrl } from '../../TracePage/url';\nimport { fetchedState } from '../../../constants';\n\nimport { FetchedTrace } from '../../../types';\n\nimport './DiffSelection.css';\n\ntype Props = {\n toggleComparison: (traceID: string, isInDiffCohort: boolean) => void;\n traces: FetchedTrace[];\n};\n\n// Exported for tests\nexport const CTA_MESSAGE =

Compare traces by selecting result items

;\n\nexport default class DiffSelection extends React.PureComponent {\n render() {\n const { toggleComparison, traces } = this.props;\n const cohort = traces.filter(ft => ft.state !== fetchedState.ERROR).map(ft => ft.id);\n const compareHref = cohort.length > 1 ? getUrl({ cohort }) : null;\n const compareBtn = (\n \n );\n return (\n
\n {traces.length > 0 && (\n
\n {traces.map(fetchedTrace => {\n const { data, error, id, state } = fetchedTrace;\n return (\n \n );\n })}\n
\n )}\n
\n {traces.length > 0 ? (\n \n {compareHref ? {compareBtn} : compareBtn}\n

{cohort.length} Selected for comparison

\n
\n ) : (\n CTA_MESSAGE\n )}\n
\n
\n );\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nconst COLORS_HEX = [\n '#17B8BE',\n '#F8DCA1',\n '#B7885E',\n '#FFCB99',\n '#F89570',\n '#829AE3',\n '#E79FD5',\n '#1E96BE',\n '#89DAC1',\n '#B3AD9E',\n '#12939A',\n '#DDB27C',\n '#88572C',\n '#FF9833',\n '#EF5D28',\n '#162A65',\n '#DA70BF',\n '#125C77',\n '#4DC19C',\n '#776E57',\n];\n\n// TS needs the precise return type\nfunction strToRgb(s: string): [number, number, number] {\n if (s.length !== 7) {\n return [0, 0, 0];\n }\n const r = s.slice(1, 3);\n const g = s.slice(3, 5);\n const b = s.slice(5);\n return [parseInt(r, 16), parseInt(g, 16), parseInt(b, 16)];\n}\n\nexport class ColorGenerator {\n colorsHex: string[];\n colorsRgb: [number, number, number][];\n cache: Map;\n currentIdx: number;\n\n constructor(colorsHex: string[] = COLORS_HEX) {\n this.colorsHex = colorsHex;\n this.colorsRgb = colorsHex.map(strToRgb);\n this.cache = new Map();\n this.currentIdx = 0;\n }\n\n _getColorIndex(key: string): number {\n let i = this.cache.get(key);\n if (i == null) {\n i = this.currentIdx;\n this.cache.set(key, this.currentIdx);\n this.currentIdx = ++this.currentIdx % this.colorsHex.length;\n }\n return i;\n }\n\n /**\n * Will assign a color to an arbitrary key.\n * If the key has been used already, it will\n * use the same color.\n */\n getColorByKey(key: string) {\n const i = this._getColorIndex(key);\n return this.colorsHex[i];\n }\n\n /**\n * Retrieve the RGB values associated with a key. Adds the key and associates\n * it with a color if the key is not recognized.\n * @return {number[]} An array of three ints [0, 255] representing a color.\n */\n getRgbColorByKey(key: string): [number, number, number] {\n const i = this._getColorIndex(key);\n return this.colorsRgb[i];\n }\n\n clear() {\n this.cache.clear();\n this.currentIdx = 0;\n }\n}\n\nexport default new ColorGenerator();\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Col, Divider, Row, Tag } from 'antd';\nimport { Link } from 'react-router-dom';\n\nimport { sortBy } from 'lodash';\nimport moment from 'moment';\n\nimport { trackConversions, EAltViewActions } from './index.track';\nimport * as markers from './ResultItem.markers';\nimport ResultItemTitle from './ResultItemTitle';\nimport colorGenerator from '../../../utils/color-generator';\nimport { formatRelativeDate } from '../../../utils/date';\n\nimport { KeyValuePair, Trace } from '../../../types/trace';\n\nimport './ResultItem.css';\n\ntype Props = {\n durationPercent: number;\n isInDiffCohort: boolean;\n linkTo: string;\n toggleComparison: (traceID: string) => void;\n trace: Trace;\n disableComparision: boolean;\n};\n\nconst isErrorTag = ({ key, value }: KeyValuePair) => key === 'error' && (value === true || value === 'true');\nconst trackTraceConversions = () => trackConversions(EAltViewActions.Traces);\n\nexport default class ResultItem extends React.PureComponent {\n render() {\n const {\n disableComparision,\n durationPercent,\n isInDiffCohort,\n linkTo,\n toggleComparison,\n trace,\n } = this.props;\n const { duration, services, startTime, spans, traceName, traceID } = trace;\n const mDate = moment(startTime / 1000);\n const timeStr = mDate.format('h:mm:ss a');\n const fromNow = mDate.fromNow();\n const numSpans = spans.length;\n const numErredSpans = spans.filter(sp => sp.tags.some(isErrorTag)).length;\n return (\n
\n \n \n \n \n \n {numSpans} Span{numSpans > 1 && 's'}\n \n {Boolean(numErredSpans) && (\n \n {numErredSpans} Error{numErredSpans > 1 && 's'}\n \n )}\n \n \n
    \n {sortBy(services, s => s.name).map(service => {\n const { name, numberOfSpans: count } = service;\n return (\n
  • \n \n {name} ({count})\n \n
  • \n );\n })}\n
\n \n \n {formatRelativeDate(startTime / 1000)}\n \n {timeStr.slice(0, -3)} {timeStr.slice(-2)}\n
\n {fromNow}\n \n
\n \n
\n );\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport const NUM_SPANS = 'num-spans';\nexport const SERVICE_TAGS = 'service-tags';\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React from 'react';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\nimport dimensions from 'react-dimensions';\nimport { XYPlot, XAxis, YAxis, MarkSeries, Hint } from 'react-vis';\nimport { compose, withState, withProps } from 'recompose';\n\nimport { FALLBACK_TRACE_NAME } from '../../../constants';\nimport { ONE_MILLISECOND, formatDuration } from '../../../utils/date';\n\nimport './react-vis.css';\nimport './ScatterPlot.css';\n\nfunction ScatterPlotImpl(props) {\n const { data, containerWidth, onValueClick, overValue, onValueOver, onValueOut } = props;\n return (\n
\n \n moment(t / ONE_MILLISECOND).format('hh:mm:ss a')}\n />\n formatDuration(t)} />\n \n {overValue && (\n \n

{overValue.name || FALLBACK_TRACE_NAME}

\n
\n )}\n \n
\n );\n}\n\nconst valueShape = PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n traceID: PropTypes.string,\n size: PropTypes.number,\n name: PropTypes.string,\n});\n\nScatterPlotImpl.propTypes = {\n containerWidth: PropTypes.number,\n data: PropTypes.arrayOf(valueShape).isRequired,\n overValue: valueShape,\n onValueClick: PropTypes.func.isRequired,\n onValueOut: PropTypes.func.isRequired,\n onValueOver: PropTypes.func.isRequired,\n};\n\nScatterPlotImpl.defaultProps = {\n containerWidth: null,\n overValue: null,\n};\n\nconst ScatterPlot = compose(\n withState('overValue', 'setOverValue', null),\n withProps(({ setOverValue }) => ({\n onValueOver: value => setOverValue(value),\n onValueOut: () => setOverValue(null),\n }))\n)(ScatterPlotImpl);\n\nexport { ScatterPlotImpl };\n\nexport default dimensions()(ScatterPlot);\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport memoizeOne from 'memoize-one';\nimport objectHash from 'object-hash';\n\nimport {\n PathElem,\n TDdgModel,\n TDdgPayload,\n TDdgPayloadEntry,\n TDdgPath,\n TDdgDistanceToPathElems,\n TDdgServiceMap,\n} from './types';\n\nconst stringifyEntry = ({ service, operation }: TDdgPayloadEntry) => `${service}\\v${operation}`;\n\n// TODO: Everett Tech Debt: Fix KeyValuePair types\nfunction group(arg: { key: string; value: any }[]): Record {\n const result: Record = {};\n arg.forEach(({ key, value }) => {\n if (!result[key]) result[key] = [];\n result[key].push(value);\n });\n return result;\n}\n\nfunction transformDdgData(\n { dependencies }: TDdgPayload,\n { service: focalService, operation: focalOperation }: { service: string; operation?: string }\n): TDdgModel {\n const serviceMap: TDdgServiceMap = new Map();\n const distanceToPathElems: TDdgDistanceToPathElems = new Map();\n const pathCompareValues: Map = new Map();\n const hashArg: string[] = [];\n\n const paths = dependencies\n .sort(({ path: a }, { path: b }) => {\n let aCompareValue = pathCompareValues.get(a);\n if (!aCompareValue) {\n aCompareValue = a.map(stringifyEntry).join();\n pathCompareValues.set(a, aCompareValue);\n }\n let bCompareValue = pathCompareValues.get(b);\n if (!bCompareValue) {\n bCompareValue = b.map(stringifyEntry).join();\n pathCompareValues.set(b, bCompareValue);\n }\n if (aCompareValue > bCompareValue) return 1;\n if (aCompareValue < bCompareValue) return -1;\n return 0;\n })\n .map(({ path: payloadPath, attributes }) => {\n // Default value necessary as sort is not called if there is only one path\n hashArg.push(pathCompareValues.get(payloadPath) || payloadPath.map(stringifyEntry).join());\n\n // eslint-disable-next-line camelcase\n const { exemplar_trace_id: traceIDs } = group(attributes);\n\n // Path with stand-in values is necessary for assigning PathElem.memberOf\n const path: TDdgPath = { focalIdx: -1, members: [], traceIDs };\n\n path.members = payloadPath.map(({ operation: operationName, service: serviceName }, i) => {\n // Ensure pathElem.service exists, else create it\n let service = serviceMap.get(serviceName);\n if (!service) {\n service = {\n name: serviceName,\n operations: new Map(),\n };\n serviceMap.set(serviceName, service);\n }\n\n // Ensure service has operation, else add it\n let operation = service.operations.get(operationName);\n if (!operation) {\n operation = {\n name: operationName,\n service,\n pathElems: [],\n };\n service.operations.set(operationName, operation);\n }\n\n // Set focalIdx to first occurrence of focalNode\n if (\n path.focalIdx === -1 &&\n serviceName === focalService &&\n (focalOperation == null || operationName === focalOperation)\n ) {\n path.focalIdx = i;\n }\n\n const pathElem = new PathElem({ path, operation, memberIdx: i });\n operation.pathElems.push(pathElem);\n return pathElem;\n });\n\n if (path.focalIdx === -1) {\n throw new Error('A payload path lacked the focalNode');\n }\n\n // Track all pathElems by their distance for visibilityIdx assignment and hop management\n // This needs to be a separate loop as path.focalIdx must be set before distance can be calculated\n path.members.forEach(member => {\n const elems = distanceToPathElems.get(member.distance);\n if (elems) {\n elems.push(member);\n } else {\n distanceToPathElems.set(member.distance, [member]);\n }\n });\n\n return path;\n });\n\n // Assign visibility indices such there is a positive, dependent correlation between visibilityIdx and distance\n let downstream = 0;\n let downstreamElems: PathElem[] | void;\n let upstream = 1;\n let upstreamElems: PathElem[] | void;\n const visIdxToPathElem: PathElem[] = [];\n function setIdx(pathElem: PathElem) {\n pathElem.visibilityIdx = visIdxToPathElem.length; // eslint-disable-line no-param-reassign\n visIdxToPathElem.push(pathElem);\n }\n do {\n downstreamElems = distanceToPathElems.get(downstream--);\n upstreamElems = distanceToPathElems.get(upstream++);\n if (downstreamElems) downstreamElems.forEach(setIdx);\n if (upstreamElems) upstreamElems.forEach(setIdx);\n } while (downstreamElems || upstreamElems);\n\n const hash = objectHash(hashArg).slice(0, 16);\n\n return {\n paths,\n hash,\n distanceToPathElems,\n services: serviceMap,\n visIdxToPathElem,\n };\n}\n\nexport default memoizeOne(transformDdgData);\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport _find from 'lodash/find';\nimport _get from 'lodash/get';\n\nimport { TNil } from '../types';\nimport { Span } from '../types/trace';\n\nfunction getFirstAncestor(span: Span): Span | TNil {\n return _get(\n _find(\n span.references,\n ({ span: ref, refType }) => ref && ref.spanID && (refType === 'CHILD_OF' || refType === 'FOLLOWS_FROM')\n ),\n 'span'\n );\n}\n\nexport default function spanAncestorIds(span: Span | TNil): string[] {\n const ancestorIDs: string[] = [];\n if (!span) return ancestorIDs;\n let ref = getFirstAncestor(span);\n while (ref) {\n ancestorIDs.push(ref.spanID);\n ref = getFirstAncestor(ref);\n }\n return ancestorIDs;\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport memoizeOne from 'memoize-one';\n\nimport spanAncestorIds from '../../utils/span-ancestor-ids';\n\nimport { TDdgPayloadEntry, TDdgPayloadPath, TDdgPayload } from './types';\nimport { FetchedTrace } from '../../types';\nimport { Span } from '../../types/trace';\n\nfunction transformTracesToPaths(\n traces: Record,\n focalService: string,\n focalOperation?: string\n): TDdgPayload {\n const dependencies: TDdgPayloadPath[] = [];\n Object.values(traces).forEach(({ data }) => {\n if (data) {\n const spanMap: Map = new Map();\n const { traceID } = data;\n data.spans\n .filter(span => {\n spanMap.set(span.spanID, span);\n return !span.hasChildren;\n })\n .forEach(leaf => {\n const spans = spanAncestorIds(leaf).map(id => {\n const span = spanMap.get(id);\n if (!span) throw new Error(`Ancestor spanID ${id} not found in trace ${traceID}`);\n return span;\n });\n spans.reverse();\n spans.push(leaf);\n\n const path: TDdgPayloadEntry[] = spans\n .filter(span => span.tags.find(({ key, value }) => key === 'span.kind' && value === 'server'))\n .map(({ processID, operationName: operation }) => ({\n service: data.processes[processID].serviceName,\n operation,\n }));\n\n if (\n path.some(\n ({ service, operation }) =>\n service === focalService && (!focalOperation || operation === focalOperation)\n )\n ) {\n // TODO: Paths should be deduped with all traceIDs #503\n dependencies.push({\n path,\n attributes: [\n {\n key: 'exemplar_trace_id',\n value: traceID,\n },\n ],\n });\n }\n });\n }\n });\n return { dependencies };\n}\n\nexport default memoizeOne(transformTracesToPaths);\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport _get from 'lodash/get';\nimport memoizeOne from 'memoize-one';\nimport queryString from 'query-string';\nimport { connect } from 'react-redux';\n\nimport { DeepDependencyGraphPageImpl, TOwnProps, TProps, TReduxProps } from '.';\nimport { getUrlState, sanitizeUrlState } from './url';\nimport { ROUTE_PATH } from '../SearchTracePage/url';\nimport GraphModel, { makeGraph } from '../../model/ddg/GraphModel';\nimport { fetchedState } from '../../constants';\nimport { extractUiFindFromState } from '../common/UiFindInput';\nimport transformDdgData from '../../model/ddg/transformDdgData';\nimport transformTracesToPaths from '../../model/ddg/transformTracesToPaths';\n\nimport { TDdgStateEntry } from '../../types/TDdgState';\nimport { ReduxState } from '../../types';\n\n// Required for proper memoization of subsequent function calls\nconst svcOp = memoizeOne((service, operation) => ({ service, operation }));\n\n// export for tests\nexport function mapStateToProps(state: ReduxState, ownProps: TOwnProps): TReduxProps {\n const urlState = getUrlState(ownProps.location.search);\n const { density, operation, service, showOp: urlStateShowOp } = urlState;\n const showOp = urlStateShowOp !== undefined ? urlStateShowOp : operation !== undefined;\n let graphState: TDdgStateEntry | undefined;\n let graph: GraphModel | undefined;\n if (service) {\n const payload = transformTracesToPaths(state.trace.traces, service, operation);\n graphState = {\n model: transformDdgData(payload, svcOp(service, operation)),\n state: fetchedState.DONE,\n viewModifiers: new Map(),\n };\n graph = makeGraph(graphState.model, showOp, density);\n }\n\n return {\n graph,\n graphState,\n showOp,\n urlState: sanitizeUrlState(urlState, _get(graphState, 'model.hash')),\n ...extractUiFindFromState(state),\n };\n}\n\n// export for tests\nexport class TracesDdgImpl extends React.PureComponent {\n render(): React.ReactNode {\n const { location } = this.props;\n const urlArgs = queryString.parse(location.search);\n const { end, start, limit, lookback, maxDuration, minDuration, view } = urlArgs;\n const extraArgs = { end, start, limit, lookback, maxDuration, minDuration, view };\n return (\n \n );\n }\n}\n\nexport default connect(mapStateToProps)(TracesDdgImpl);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport const MOST_RECENT = 'MOST_RECENT';\nexport const LONGEST_FIRST = 'LONGEST_FIRST';\nexport const SHORTEST_FIRST = 'SHORTEST_FIRST';\nexport const MOST_SPANS = 'MOST_SPANS';\nexport const LEAST_SPANS = 'LEAST_SPANS';\n","// Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport _flatMap from 'lodash/flatMap';\nimport queryString from 'query-string';\n\nimport { EmbeddedState } from '../types/embedded';\n\nfunction getStrings(value: string): string;\nfunction getStrings(value: object): string[];\nfunction getStrings(value: string | object): string | string[] {\n return typeof value === 'string' ? value : _flatMap(value, getStrings);\n}\n\nconst VALUE_ENABLED = '1';\nexport const VERSION_0 = 'v0';\n\n// uiEmbed=v0\n// uiSearchHideGraph=1\n// uiTimelineCollapseTitle=1\n// uiTimelineHideMinimap=1\n// uiTimelineHideSummary=1\nconst STATE_PARAMS_V0 = {\n searchHideGraph: 'uiSearchHideGraph',\n timeline: {\n collapseTitle: 'uiTimelineCollapseTitle',\n hideMinimap: 'uiTimelineHideMinimap',\n hideSummary: 'uiTimelineHideSummary',\n },\n};\n\nconst PARAM_KEYS_V0 = getStrings(STATE_PARAMS_V0);\n\nexport function getEmbeddedState(search: string): null | EmbeddedState {\n const { uiEmbed, ...rest } = queryString.parse(search);\n if (uiEmbed !== VERSION_0) {\n return null;\n }\n return {\n version: VERSION_0,\n searchHideGraph: rest[STATE_PARAMS_V0.searchHideGraph] === VALUE_ENABLED,\n timeline: {\n collapseTitle: rest[STATE_PARAMS_V0.timeline.collapseTitle] === VALUE_ENABLED,\n hideMinimap: rest[STATE_PARAMS_V0.timeline.hideMinimap] === VALUE_ENABLED,\n hideSummary: rest[STATE_PARAMS_V0.timeline.hideSummary] === VALUE_ENABLED,\n },\n };\n}\n\nexport function stripEmbeddedState(state: Record) {\n const { uiEmbed = undefined, ...rv } = state;\n if (uiEmbed === VERSION_0) {\n PARAM_KEYS_V0.forEach(Reflect.deleteProperty.bind(null, rv));\n }\n return rv;\n}\n","// TODO: @ flow\n\n// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Select } from 'antd';\nimport { History as RouterHistory, Location } from 'history';\nimport { Link, withRouter } from 'react-router-dom';\nimport { Field, formValueSelector, reduxForm } from 'redux-form';\nimport queryString from 'query-string';\n\nimport AltViewOptions from './AltViewOptions';\nimport DiffSelection from './DiffSelection';\nimport * as markers from './index.markers';\nimport { trackAltView } from './index.track';\nimport ResultItem from './ResultItem';\nimport ScatterPlot from './ScatterPlot';\nimport { getUrl } from '../url';\nimport LoadingIndicator from '../../common/LoadingIndicator';\nimport NewWindowIcon from '../../common/NewWindowIcon';\nimport SearchResultsDDG from '../../DeepDependencies/traces';\nimport { getLocation } from '../../TracePage/url';\nimport * as orderBy from '../../../model/order-by';\nimport { getPercentageOfDuration } from '../../../utils/date';\nimport { stripEmbeddedState } from '../../../utils/embedded-url';\nimport reduxFormFieldAdapter from '../../../utils/redux-form-field-adapter';\n\nimport type { FetchedTrace } from '../../../types';\nimport type { SearchQuery } from '../../../types/search';\n\nimport './index.css';\n\ntype SearchResultsProps = {\n cohortAddTrace: string => void,\n cohortRemoveTrace: string => void,\n diffCohort: FetchedTrace[],\n disableComparisons: boolean,\n goToTrace: string => void,\n hideGraph: boolean,\n history: RouterHistory,\n loading: boolean,\n location: Location,\n maxTraceDuration: number,\n queryOfResults?: SearchQuery,\n showStandaloneLink: boolean,\n skipMessage?: boolean,\n spanLinks?: Record | undefined | null,\n traces: TraceSummary[],\n};\n\nconst Option = Select.Option;\n\n/**\n * Contains the dropdown to sort and filter trace search results\n */\nfunction SelectSortImpl() {\n return (\n \n );\n}\n\nconst SelectSort = reduxForm({\n form: 'traceResultsSort',\n initialValues: {\n sortBy: orderBy.MOST_RECENT,\n },\n})(SelectSortImpl);\n\nexport const sortFormSelector = formValueSelector('traceResultsSort');\n\nexport class UnconnectedSearchResults extends React.PureComponent {\n props: SearchResultsProps;\n\n static defaultProps = { skipMessage: false, spanLinks: undefined, queryOfResults: undefined };\n\n toggleComparison = (traceID: string, remove: boolean) => {\n const { cohortAddTrace, cohortRemoveTrace } = this.props;\n if (remove) {\n cohortRemoveTrace(traceID);\n } else {\n cohortAddTrace(traceID);\n }\n };\n\n onDdgViewClicked = () => {\n const { location, history } = this.props;\n const urlState = queryString.parse(location.search);\n const view = urlState.view && urlState.view === 'ddg' ? 'traces' : 'ddg';\n trackAltView(view);\n history.push(getUrl({ ...urlState, view }));\n };\n\n render() {\n const {\n diffCohort,\n disableComparisons,\n goToTrace,\n hideGraph,\n history,\n loading,\n location,\n maxTraceDuration,\n queryOfResults,\n showStandaloneLink,\n skipMessage,\n spanLinks,\n traces,\n } = this.props;\n\n const traceResultsView = queryString.parse(location.search).view !== 'ddg';\n\n const diffSelection = !disableComparisons && (\n \n );\n if (loading) {\n return (\n \n {diffCohort.length > 0 && diffSelection}\n \n \n );\n }\n if (!Array.isArray(traces) || !traces.length) {\n return (\n \n {diffCohort.length > 0 && diffSelection}\n {!skipMessage && (\n
\n No trace results. Try another query.\n
\n )}\n
\n );\n }\n const cohortIds = new Set(diffCohort.map(datum => datum.id));\n const searchUrl = queryOfResults ? getUrl(stripEmbeddedState(queryOfResults)) : getUrl();\n return (\n
\n
\n {!hideGraph && traceResultsView && (\n
\n ({\n x: t.startTime,\n y: t.duration,\n traceID: t.traceID,\n size: t.spans.length,\n name: t.traceName,\n }))}\n onValueClick={t => {\n goToTrace(t.traceID);\n }}\n />\n
\n )}\n
\n

\n {traces.length} Trace{traces.length > 1 && 's'}\n

\n {traceResultsView && }\n \n {showStandaloneLink && (\n \n \n \n )}\n
\n
\n {!traceResultsView && (\n
\n \n
\n )}\n {traceResultsView && diffSelection}\n {traceResultsView && (\n
    \n {traces.map(trace => (\n
  • \n \n
  • \n ))}\n
\n )}\n
\n );\n }\n}\n\nexport default withRouter(UnconnectedSearchResults);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// eslint-disable-next-line import/prefer-default-export\nexport const NO_RESULTS = 'no-results';\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { createAction } from 'redux-actions';\n\nimport readJsonFile from '../utils/readJsonFile';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const loadJsonTraces = createAction(\n '@FILE_READER_API/LOAD_JSON',\n fileList => readJsonFile(fileList),\n fileList => ({ fileList })\n);\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport default function readJsonFile(fileList: { file: File }) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n if (typeof reader.result !== 'string') {\n reject(new Error('Invalid result type'));\n return;\n }\n try {\n resolve(JSON.parse(reader.result));\n } catch (error) {\n reject(new Error(`Error parsing JSON: ${error.message}`));\n }\n };\n reader.onerror = () => {\n // eslint-disable-next-line no-console\n const errMessage = reader.error ? `: ${String(reader.error)}` : '';\n reject(new Error(`Error reading the JSON file${errMessage}`));\n };\n reader.onabort = () => {\n // eslint-disable-next-line no-console\n reject(new Error(`Reading the JSON file has been aborted`));\n };\n try {\n reader.readAsText(fileList.file);\n } catch (error) {\n // eslint-disable-next-line no-console\n reject(new Error(`Error reading the JSON file: ${error.message}`));\n }\n });\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Action } from 'redux-actions';\n\nexport default function guardReducer(fn: (state: TState, value: TPayload) => TState) {\n return function reducer(state: TState, { payload }: Action) {\n if (!payload) {\n return state;\n }\n return fn(state, payload);\n };\n}\n\nexport function guardReducerWithMeta(\n fn: (state: TState, action: { meta: TMeta; payload: TPayload }) => TState\n) {\n return function reducer(state: TState, action: Action & { meta: TMeta }) {\n if (!action.payload || !action.meta) {\n return state;\n }\n return fn(state, action as { meta: TMeta; payload: TPayload });\n };\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Action, ActionFunctionAny, createActions, handleActions } from 'redux-actions';\n\nimport TTraceDiffState from '../../types/TTraceDiffState';\nimport generateActionTypes from '../../utils/generate-action-types';\nimport guardReducer from '../../utils/guardReducer';\n\n// payloads\ntype TTraceIdValue = { traceID: string };\ntype TNewStateValue = { newState: TTraceDiffState };\ntype TTraceDiffActions = {\n [actionName: string]: ActionFunctionAny>;\n};\n\nexport function newInitialState(): TTraceDiffState {\n return {\n cohort: [],\n a: null,\n b: null,\n };\n}\n\nexport const actionTypes = generateActionTypes('@jaeger-ui/trace-diff', [\n 'COHORT_ADD_TRACE',\n 'COHORT_REMOVE_TRACE',\n 'DIFF_SET_A',\n 'DIFF_SET_B',\n 'FORCE_STATE',\n]);\n\nconst fullActions = createActions({\n [actionTypes.COHORT_ADD_TRACE]: (traceID: string) => ({ traceID }),\n [actionTypes.COHORT_REMOVE_TRACE]: (traceID: string) => ({ traceID }),\n [actionTypes.DIFF_SET_A]: (traceID: string) => ({ traceID }),\n [actionTypes.DIFF_SET_B]: (traceID: string) => ({ traceID }),\n [actionTypes.FORCE_STATE]: (newState: TTraceDiffState) => ({ newState }),\n});\n\nexport const actions = (fullActions as any).jaegerUi.traceDiff as TTraceDiffActions;\n\nfunction cohortAddTrace(state: TTraceDiffState, { traceID }: TTraceIdValue) {\n if (state.cohort.indexOf(traceID) >= 0) {\n return state;\n }\n const cohort = state.cohort.slice();\n cohort.push(traceID);\n return { ...state, cohort };\n}\n\nfunction cohortRemoveTrace(state: TTraceDiffState, { traceID }: TTraceIdValue) {\n const i = state.cohort.indexOf(traceID);\n if (i < 0) {\n return state;\n }\n const cohort = state.cohort.slice();\n cohort.splice(i, 1);\n const a = state.a === traceID ? null : state.a;\n const b = state.b === traceID ? null : state.b;\n return { ...state, a, b, cohort };\n}\n\nfunction diffSetA(state: TTraceDiffState, { traceID }: TTraceIdValue): TTraceDiffState {\n return { ...state, a: traceID };\n}\n\nfunction diffSetB(state: TTraceDiffState, { traceID }: TTraceIdValue): TTraceDiffState {\n return { ...state, b: traceID };\n}\n\nfunction forceState(state: TTraceDiffState, { newState }: TNewStateValue) {\n return newState;\n}\n\nexport default handleActions(\n {\n [actionTypes.COHORT_ADD_TRACE]: guardReducer(cohortAddTrace),\n [actionTypes.COHORT_REMOVE_TRACE]: guardReducer(cohortRemoveTrace),\n [actionTypes.DIFF_SET_A]: guardReducer(diffSetA),\n [actionTypes.DIFF_SET_B]: guardReducer(diffSetB),\n [actionTypes.FORCE_STATE]: guardReducer(forceState),\n },\n newInitialState()\n);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { LEAST_SPANS, LONGEST_FIRST, MOST_RECENT, MOST_SPANS, SHORTEST_FIRST } from './order-by';\n\nimport { Trace } from '../types/trace';\n\nconst comparators: Record number> = {\n [MOST_RECENT]: (a, b) => +(b.startTime > a.startTime) || +(a.startTime === b.startTime) - 1,\n [SHORTEST_FIRST]: (a, b) => +(a.duration > b.duration) || +(a.duration === b.duration) - 1,\n [LONGEST_FIRST]: (a, b) => +(b.duration > a.duration) || +(a.duration === b.duration) - 1,\n [MOST_SPANS]: (a, b) => +(b.spans.length > a.spans.length) || +(a.spans.length === b.spans.length) - 1,\n [LEAST_SPANS]: (a, b) => +(a.spans.length > b.spans.length) || +(a.spans.length === b.spans.length) - 1,\n};\n\n/**\n * Sorts `Trace[]`, in place.\n *\n * @param {Trace[]} traces The `Trace` array to sort.\n * @param {string} sortBy A sort specification, see ./order-by.js.\n */\n// eslint-disable-next-line import/prefer-default-export\nexport function sortTraces(traces: Trace[], sortBy: string) {\n const comparator = comparators[sortBy] || comparators[LONGEST_FIRST];\n traces.sort(comparator);\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Upload, Icon } from 'antd';\n\nconst Dragger = Upload.Dragger;\n\ntype FileLoaderProps = {\n loadJsonTraces: (fileList: FileList) => void;\n};\n\nexport default function FileLoader(props: FileLoaderProps) {\n return (\n \n

\n \n

\n

Click or drag files to this area.

\n

JSON files containing one or more traces are supported.

\n
\n );\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/* eslint-disable react/require-default-props */\n\nimport React, { Component } from 'react';\nimport { Col, Row, Tabs } from 'antd';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { bindActionCreators } from 'redux';\nimport store from 'store';\nimport memoizeOne from 'memoize-one';\n\nimport SearchForm from './SearchForm';\nimport SearchResults, { sortFormSelector } from './SearchResults';\nimport { isSameQuery, getUrl, getUrlState } from './url';\nimport * as jaegerApiActions from '../../actions/jaeger-api';\nimport * as fileReaderActions from '../../actions/file-reader-api';\nimport ErrorMessage from '../common/ErrorMessage';\nimport LoadingIndicator from '../common/LoadingIndicator';\nimport { getLocation as getTraceLocation } from '../TracePage/url';\nimport { actions as traceDiffActions } from '../TraceDiff/duck';\nimport { fetchedState } from '../../constants';\nimport { sortTraces } from '../../model/search';\nimport { stripEmbeddedState } from '../../utils/embedded-url';\nimport FileLoader from './FileLoader';\n\nimport './index.css';\nimport JaegerLogo from '../../img/jaeger-logo.svg';\n\nconst TabPane = Tabs.TabPane;\n\n// export for tests\nexport class SearchTracePageImpl extends Component {\n componentDidMount() {\n const {\n diffCohort,\n fetchMultipleTraces,\n fetchServiceOperations,\n fetchServices,\n isHomepage,\n queryOfResults,\n searchTraces,\n urlQueryParams,\n } = this.props;\n if (!isHomepage && urlQueryParams && !isSameQuery(urlQueryParams, queryOfResults)) {\n searchTraces(urlQueryParams);\n }\n const needForDiffs = diffCohort.filter(ft => ft.state == null).map(ft => ft.id);\n if (needForDiffs.length) {\n fetchMultipleTraces(needForDiffs);\n }\n fetchServices();\n const { service } = store.get('lastSearch') || {};\n if (service && service !== '-') {\n fetchServiceOperations(service);\n }\n }\n\n goToTrace = traceID => {\n const { queryOfResults } = this.props;\n const searchUrl = queryOfResults ? getUrl(stripEmbeddedState(queryOfResults)) : getUrl();\n this.props.history.push(getTraceLocation(traceID, { fromSearch: searchUrl }));\n };\n\n render() {\n const {\n cohortAddTrace,\n cohortRemoveTrace,\n diffCohort,\n embedded,\n errors,\n isHomepage,\n loadingServices,\n loadingTraces,\n maxTraceDuration,\n services,\n traceResults,\n queryOfResults,\n loadJsonTraces,\n urlQueryParams,\n } = this.props;\n const hasTraceResults = traceResults && traceResults.length > 0;\n const showErrors = errors && !loadingTraces;\n const showLogo = isHomepage && !hasTraceResults && !loadingTraces && !errors;\n return (\n \n {!embedded && (\n \n
\n \n \n {!loadingServices && services ? : }\n \n \n \n \n \n
\n \n )}\n \n {showErrors && (\n
\n

There was an error querying for traces:

\n {errors.map(err => (\n \n ))}\n
\n )}\n {!showErrors && (\n \n )}\n {showLogo && (\n \n )}\n \n
\n );\n }\n}\nSearchTracePageImpl.propTypes = {\n isHomepage: PropTypes.bool,\n // eslint-disable-next-line react/forbid-prop-types\n traceResults: PropTypes.array,\n // eslint-disable-next-line react/forbid-prop-types\n diffCohort: PropTypes.array,\n cohortAddTrace: PropTypes.func,\n cohortRemoveTrace: PropTypes.func,\n embedded: PropTypes.shape({\n searchHideGraph: PropTypes.bool,\n }),\n maxTraceDuration: PropTypes.number,\n loadingServices: PropTypes.bool,\n loadingTraces: PropTypes.bool,\n urlQueryParams: PropTypes.shape({\n service: PropTypes.string,\n limit: PropTypes.string,\n }),\n queryOfResults: PropTypes.shape({\n service: PropTypes.string,\n limit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n }),\n services: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n operations: PropTypes.arrayOf(PropTypes.string),\n })\n ),\n searchTraces: PropTypes.func,\n history: PropTypes.shape({\n push: PropTypes.func,\n }),\n fetchMultipleTraces: PropTypes.func,\n fetchServiceOperations: PropTypes.func,\n fetchServices: PropTypes.func,\n errors: PropTypes.arrayOf(\n PropTypes.shape({\n message: PropTypes.string,\n })\n ),\n loadJsonTraces: PropTypes.func,\n};\n\nconst stateTraceXformer = memoizeOne(stateTrace => {\n const { traces: traceMap, search } = stateTrace;\n const { query, results, state, error: traceError } = search;\n\n const loadingTraces = state === fetchedState.LOADING;\n const traces = results.map(id => traceMap[id].data);\n const maxDuration = Math.max.apply(null, traces.map(tr => tr.duration));\n return { traces, maxDuration, traceError, loadingTraces, query };\n});\n\nconst stateTraceDiffXformer = memoizeOne((stateTrace, stateTraceDiff) => {\n const { traces } = stateTrace;\n const { cohort } = stateTraceDiff;\n return cohort.map(id => traces[id] || { id });\n});\n\nconst sortedTracesXformer = memoizeOne((traces, sortBy) => {\n const traceResults = traces.slice();\n sortTraces(traceResults, sortBy);\n return traceResults;\n});\n\nconst stateServicesXformer = memoizeOne(stateServices => {\n const {\n loading: loadingServices,\n services: serviceList,\n operationsForService: opsBySvc,\n error: serviceError,\n } = stateServices;\n const services =\n serviceList &&\n serviceList.map(name => ({\n name,\n operations: opsBySvc[name] || [],\n }));\n return { loadingServices, services, serviceError };\n});\n\n// export to test\nexport function mapStateToProps(state) {\n const { embedded, router, services: stServices, traceDiff } = state;\n const query = getUrlState(router.location.search);\n const isHomepage = !Object.keys(query).length;\n const { query: queryOfResults, traces, maxDuration, traceError, loadingTraces } = stateTraceXformer(\n state.trace\n );\n const diffCohort = stateTraceDiffXformer(state.trace, traceDiff);\n const { loadingServices, services, serviceError } = stateServicesXformer(stServices);\n const errors = [];\n if (traceError) {\n errors.push(traceError);\n }\n if (serviceError) {\n errors.push(serviceError);\n }\n const sortBy = sortFormSelector(state, 'sortBy');\n const traceResults = sortedTracesXformer(traces, sortBy);\n return {\n queryOfResults,\n diffCohort,\n embedded,\n isHomepage,\n loadingServices,\n loadingTraces,\n services,\n traceResults,\n errors: errors.length ? errors : null,\n maxTraceDuration: maxDuration,\n sortTracesBy: sortBy,\n urlQueryParams: Object.keys(query).length > 0 ? query : null,\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n const { fetchMultipleTraces, fetchServiceOperations, fetchServices, searchTraces } = bindActionCreators(\n jaegerApiActions,\n dispatch\n );\n const { loadJsonTraces } = bindActionCreators(fileReaderActions, dispatch);\n const { cohortAddTrace, cohortRemoveTrace } = bindActionCreators(traceDiffActions, dispatch);\n return {\n cohortAddTrace,\n cohortRemoveTrace,\n fetchMultipleTraces,\n fetchServiceOperations,\n fetchServices,\n searchTraces,\n loadJsonTraces,\n };\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(SearchTracePageImpl);\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\n\nimport './EmphasizedNode.css';\n\ntype Props = {\n height: number;\n width: number;\n};\n\nexport default class EmphasizedNode extends React.PureComponent {\n render() {\n const { height, width } = this.props;\n return (\n <>\n \n \n \n \n \n );\n }\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\n\nimport { Button, Tooltip } from 'antd';\nimport { TooltipPlacement } from 'antd/lib/tooltip/index';\nimport cx from 'classnames';\nimport copy from 'copy-to-clipboard';\n\nimport './CopyIcon.css';\n\ntype PropsType = {\n className?: string;\n copyText: string;\n icon?: string;\n placement?: TooltipPlacement;\n tooltipTitle: string;\n};\n\ntype StateType = {\n hasCopied: boolean;\n};\n\nexport default class CopyIcon extends React.PureComponent {\n static defaultProps: Partial = {\n className: undefined,\n icon: 'copy',\n placement: 'left',\n };\n\n state = {\n hasCopied: false,\n };\n\n handleClick = () => {\n this.setState({\n hasCopied: true,\n });\n copy(this.props.copyText);\n };\n\n handleTooltipVisibilityChange = (visible: boolean) => {\n if (!visible && this.state.hasCopied) {\n this.setState({\n hasCopied: false,\n });\n }\n };\n\n render() {\n return (\n \n \n \n );\n }\n}\n","// Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Popover } from 'antd';\nimport cx from 'classnames';\nimport { TLayoutVertex } from '@jaegertracing/plexus/lib/types';\n\nimport EmphasizedNode from '../../common/EmphasizedNode';\nimport CopyIcon from '../../common/CopyIcon';\nimport { DiffCounts } from '../../../model/trace-dag/types';\nimport TDagVertex from '../../../model/trace-dag/types/TDagVertex';\n\nimport './renderNode.css';\n\ntype Props = {\n a: number;\n b: number;\n operation: string;\n service: string;\n};\n\nconst abs = Math.abs;\nconst max = Math.max;\n\nexport class DiffNode extends React.PureComponent {\n render() {\n const { a, b, operation, service } = this.props;\n const isSame = a === b;\n const className = cx({\n 'is-same': isSame,\n 'is-changed': !isSame,\n 'is-more': b > a && a > 0,\n 'is-added': a === 0,\n 'is-less': a > b && b > 0,\n 'is-removed': b === 0,\n });\n const chgSign = a < b ? '+' : '-';\n const table = (\n \n \n \n \n \n \n \n {isSame ? null : (\n \n )}\n \n \n \n
\n {isSame ? null : {chgSign}}\n {isSame ? a : abs(b - a)}\n \n {service}\n \n
\n {chgSign}\n {a === 0 || b === 0 ? 100 : abs(((a - b) / max(a, b)) * 100).toFixed(0)}\n %\n {operation}
\n );\n\n return (\n \n {table}\n \n );\n }\n}\n\nexport default function renderNode(vertex: TDagVertex) {\n const { data, operation, service } = vertex.data;\n return ;\n}\n\nexport function getNodeEmphasisRenderer(keys: Set) {\n return function drawEmphasizedNode(lv: TLayoutVertex) {\n if (!keys.has(lv.vertex.key)) {\n return null;\n }\n return ;\n };\n}\n","// Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { TEdge } from '@jaegertracing/plexus/lib/types';\n\nimport DagNode from './DagNode';\nimport { NodeID } from './types';\nimport TDagVertex from './types/TDagVertex';\n\nexport default function convPlexus(nodesMap: Map>) {\n const vertices: TDagVertex[] = [];\n const edges: TEdge[] = [];\n const nodes = [...nodesMap.values()];\n for (let i = 0; i < nodes.length; i++) {\n const dagNode = nodes[i];\n vertices.push({\n key: dagNode.id,\n data: dagNode,\n });\n if (!dagNode.parentID) {\n continue;\n }\n edges.push({\n from: dagNode.parentID,\n to: dagNode.id,\n });\n }\n return { edges, vertices };\n}\n","// Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { NodeID, DenseSpan } from './types';\nimport { TNil } from '../../types';\n\nexport default class DagNode {\n static getID(service: string, operation: string, hasChildren: boolean, parentID?: string | TNil): NodeID {\n const name = `${service}\\t${operation}${hasChildren ? '' : '\\t__LEAF__'}`;\n return parentID ? `${parentID}\\v${name}` : name;\n }\n\n service: string;\n operation: string;\n parentID: NodeID | TNil;\n id: NodeID;\n count: number;\n members: DenseSpan[];\n children: Set;\n data: T;\n\n constructor(service: string, operation: string, hasChildren: boolean, parentID: NodeID | TNil, data: T) {\n this.service = service;\n this.operation = operation;\n this.parentID = parentID;\n this.id = DagNode.getID(service, operation, hasChildren, parentID);\n this.count = 0;\n this.members = [];\n this.children = new Set();\n this.data = data;\n }\n\n addMember(member: DenseSpan) {\n this.members.push(member);\n }\n}\n","// Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport const HTTP_METHOD = 'http.method' as 'http.method';\nexport const PEER_SERVICE = 'peer.service' as 'peer.service';\nexport const SPAN_KIND = 'span.kind' as 'span.kind';\n","// Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { DenseSpan } from './types';\nimport * as tagKeys from '../../constants/tag-keys';\n\n// -\tif span\n// -\tis client span\n// -\tis leaf\n// -\thas parent.operation startsWith self-tag peer.service\n// -\thas parent.operation endsWith self.operation\n// -\tset self.service = self-tag peer.service\nfunction fixLeafService(denseSpan: DenseSpan, map: Map) {\n const { children, operation, parentID, tags } = denseSpan;\n const parent = parentID != null && map.get(parentID);\n const kind = tags[tagKeys.SPAN_KIND];\n const peerSvc = tags[tagKeys.PEER_SERVICE];\n if (!parent || children.size > 0 || kind !== 'client' || !peerSvc) {\n return;\n }\n const { operation: parentOp } = parent;\n if (parentOp.indexOf(peerSvc) === 0 && parentOp.slice(-operation.length) === operation) {\n // eslint-disable-next-line no-param-reassign\n denseSpan.service = peerSvc;\n }\n}\n\n// -\tif span\n// -\tis server span\n// -\tparent is client span\n// -\tparent has one child (self)\n// -\t(parent.operation OR parent-tag peer.service) startsWith self.service\n// -\tset parent.skipToChild = true\nfunction skipClient(denseSpan: DenseSpan, map: Map) {\n const { parentID, service, tags } = denseSpan;\n const parent = parentID != null && map.get(parentID);\n if (!parent) {\n return;\n }\n const kind = tags[tagKeys.SPAN_KIND];\n const parentKind = parent.tags[tagKeys.SPAN_KIND];\n const parentPeerSvc = parent.tags[tagKeys.PEER_SERVICE] || '';\n if (kind === 'server' && parentKind === 'client' && parent.children.size === 1) {\n parent.skipToChild = parent.operation.indexOf(service) === 0 || parentPeerSvc.indexOf(service) === 0;\n }\n}\n\n// -\tif span\n// -\tis server span\n// -\thas operation === tag http.method\n// -\t(parent.operation OR parent-tag peer.service) startsWith self.service\n// - fix self.operation\nfunction fixHttpOperation(denseSpan: DenseSpan, map: Map) {\n const { parentID, operation, service, tags } = denseSpan;\n const parent = parentID != null && map.get(parentID);\n if (!parent) {\n return;\n }\n const kind = tags[tagKeys.SPAN_KIND];\n const httpMethod = tags[tagKeys.HTTP_METHOD];\n if (kind !== 'server' || operation !== httpMethod) {\n return;\n }\n const parentPeerSvc = parent.tags[tagKeys.PEER_SERVICE] || '';\n if (parent.operation.indexOf(service) === 0 || parentPeerSvc.indexOf(service) === 0) {\n const rx = new RegExp(`^${service}(::)?`);\n const endpoint = parent.operation.replace(rx, '');\n // eslint-disable-next-line no-param-reassign\n denseSpan.operation = `${httpMethod} ${endpoint}`;\n }\n}\n\n// -\tif span\n// - has no tags\n// - has only one child\n// - parent.process === self.process\n// - set self.skipToChild = true\nfunction skipAnnotationSpans(denseSpan: DenseSpan, map: Map) {\n const { children, parentID, span } = denseSpan;\n if (children.size !== 1 || span.tags.length !== 0) {\n return;\n }\n const parent = parentID != null && map.get(parentID);\n const childID = [...children][0];\n const child = childID != null && map.get(childID);\n if (!parent || !child) {\n return;\n }\n // eslint-disable-next-line no-param-reassign\n denseSpan.skipToChild = parent.span.processID === span.processID;\n}\n\n// -\tif span\n// - is a client span\n// - has only one child\n// - the child is a server span\n// - parent.span.processID === self.span.processID\n// - set parent.skipToChild = true\nfunction skipClientSpans(denseSpan: DenseSpan, map: Map) {\n const { children, parentID, span, tags } = denseSpan;\n if (children.size !== 1 || tags[tagKeys.SPAN_KIND] !== 'client') {\n return;\n }\n const parent = parentID != null && map.get(parentID);\n const childID = [...children][0];\n const child = childID != null && map.get(childID);\n if (!parent || !child) {\n return;\n }\n // eslint-disable-next-line no-param-reassign\n denseSpan.skipToChild =\n child.tags[tagKeys.SPAN_KIND] === 'client' && parent.span.processID === span.processID;\n}\n\nexport default function denseTransforms(denseSpan: DenseSpan, map: Map) {\n fixLeafService(denseSpan, map);\n skipClient(denseSpan, map);\n fixHttpOperation(denseSpan, map);\n skipAnnotationSpans(denseSpan, map);\n skipClientSpans(denseSpan, map);\n}\n","// Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport denseTransforms from './denseTransforms';\nimport { DenseSpan } from './types';\nimport { Span, Trace } from '../../types/trace';\n\nfunction convSpans(spans: Span[]) {\n const map: Map = new Map();\n const roots: Set = new Set();\n const ids: string[] = [];\n spans.forEach(span => {\n const { spanID: id, operationName: operation, process, references, tags: spanTags } = span;\n ids.push(id);\n const { serviceName: service } = process;\n const tags = spanTags.reduce((accum: Record, tag) => {\n const { key, value } = tag;\n // eslint-disable-next-line no-param-reassign\n accum[key] = value;\n return accum;\n }, {});\n let parentID: string | null = null;\n if (references && references.length) {\n const { refType, spanID } = references[0];\n if (refType !== 'CHILD_OF' && refType !== 'FOLLOWS_FROM') {\n // eslint-disable-next-line no-console\n console.warn(`Unrecognized ref type: ${refType}`);\n } else {\n parentID = spanID;\n }\n }\n\n const denseSpan = {\n id,\n operation,\n parentID,\n service,\n span,\n tags,\n children: new Set(),\n skipToChild: false,\n };\n const parent = parentID && map.get(parentID);\n if (!parent) {\n // some root spans have a parent ID but it is missing\n roots.add(id);\n } else {\n parent.children.add(id);\n }\n map.set(id, denseSpan);\n });\n return { ids, map, roots };\n}\n\nfunction makeDense(spanIDs: string[], map: Map) {\n spanIDs.forEach(id => {\n const denseSpan = map.get(id);\n // make flow happy\n if (denseSpan) {\n denseTransforms(denseSpan, map);\n }\n });\n}\n\nexport default class DenseTrace {\n trace: Trace;\n rootIDs: Set;\n denseSpansMap: Map;\n\n constructor(trace: Trace) {\n this.trace = trace;\n const { ids, map, roots } = convSpans(trace.spans);\n makeDense(ids, map);\n this.rootIDs = roots;\n this.denseSpansMap = map;\n }\n}\n","// Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport DagNode from './DagNode';\nimport DenseTrace from './DenseTrace';\nimport { DiffCounts, NodeID } from './types';\nimport { TNil } from '../../types';\nimport { Trace } from '../../types/trace';\n\nexport default class TraceDag {\n static newFromTrace(trace: Trace) {\n const dt: TraceDag = new TraceDag();\n dt._initFromTrace(trace, undefined);\n return dt;\n }\n\n static diff(a: TraceDag, b: TraceDag) {\n const dt: TraceDag = new TraceDag();\n let key: 'a' | 'b' = 'a';\n\n function pushDagNode(src: DagNode) {\n const node = dt._getDagNode(src.service, src.operation, src.children.size > 0, src.parentID, {\n a: 0,\n b: 0,\n });\n const { data } = node;\n data[key] = src.count;\n node.members.push(...src.members);\n node.count = data.b - data.a;\n if (!node.parentID) {\n dt.rootIDs.add(node.id);\n }\n }\n key = 'a';\n [...a.nodesMap.values()].forEach(pushDagNode);\n key = 'b';\n [...b.nodesMap.values()].forEach(pushDagNode);\n return dt;\n }\n\n denseTrace: DenseTrace | null;\n nodesMap: Map>;\n rootIDs: Set;\n\n constructor() {\n this.denseTrace = null;\n this.nodesMap = new Map();\n this.rootIDs = new Set();\n }\n\n _initFromTrace(trace: Trace, data: T) {\n this.denseTrace = new DenseTrace(trace);\n [...this.denseTrace.rootIDs].forEach(id => this._addDenseSpan(id, null, data));\n }\n\n _getDagNode(\n service: string,\n operation: string,\n hasChildren: boolean,\n parentID: NodeID | TNil,\n data: T\n ): DagNode {\n const nodeID = DagNode.getID(service, operation, hasChildren, parentID);\n const existing = this.nodesMap.get(nodeID);\n if (existing) {\n return existing;\n }\n const node = new DagNode(service, operation, hasChildren, parentID, data);\n this.nodesMap.set(nodeID, node);\n if (!parentID) {\n this.rootIDs.add(nodeID);\n } else {\n const parentDag = this.nodesMap.get(parentID);\n if (parentDag) {\n parentDag.children.add(nodeID);\n }\n }\n return node;\n }\n\n _addDenseSpan(spanID: string, parentNodeID: NodeID | TNil, data: T) {\n const denseSpan = this.denseTrace && this.denseTrace.denseSpansMap.get(spanID);\n if (!denseSpan) {\n // eslint-disable-next-line no-console\n console.warn(`Missing dense span: ${spanID}`);\n return;\n }\n const { children, operation, service, skipToChild } = denseSpan;\n let nodeID: string | TNil = null;\n if (!skipToChild) {\n const node = this._getDagNode(service, operation, children.size > 0, parentNodeID, data);\n node.count++;\n node.addMember(denseSpan);\n nodeID = node.id;\n } else {\n nodeID = parentNodeID;\n }\n [...children].forEach(id => this._addDenseSpan(id, nodeID, data));\n }\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { KeyValuePair, Span } from '../types/trace';\nimport { TNil } from '../types';\n\nexport default function filterSpans(textFilter: string, spans: Span[] | TNil) {\n if (!spans) {\n return null;\n }\n\n // if a span field includes at least one filter in includeFilters, the span is a match\n const includeFilters: string[] = [];\n\n // values with keys that include text in any one of the excludeKeys will be ignored\n const excludeKeys: string[] = [];\n\n // split textFilter by whitespace, remove empty strings, and extract includeFilters and excludeKeys\n textFilter\n .split(/\\s+/)\n .filter(Boolean)\n .forEach(w => {\n if (w[0] === '-') {\n excludeKeys.push(w.substr(1).toLowerCase());\n } else {\n includeFilters.push(w.toLowerCase());\n }\n });\n\n const isTextInFilters = (filters: Array, text: string) =>\n filters.some(filter => text.toLowerCase().includes(filter));\n\n const isTextInKeyValues = (kvs: Array) =>\n kvs\n ? kvs.some(kv => {\n // ignore checking key and value for a match if key is in excludeKeys\n if (isTextInFilters(excludeKeys, kv.key)) return false;\n // match if key or value matches an item in includeFilters\n return (\n isTextInFilters(includeFilters, kv.key) || isTextInFilters(includeFilters, kv.value.toString())\n );\n })\n : false;\n\n const isSpanAMatch = (span: Span) =>\n isTextInFilters(includeFilters, span.operationName) ||\n isTextInFilters(includeFilters, span.process.serviceName) ||\n isTextInKeyValues(span.tags) ||\n span.logs.some(log => isTextInKeyValues(log.fields)) ||\n isTextInKeyValues(span.process.tags) ||\n includeFilters.some(filter => filter === span.spanID);\n\n // declare as const because need to disambiguate the type\n const rv: Set = new Set(spans.filter(isSpanAMatch).map((span: Span) => span.spanID));\n return rv;\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { TVertexKey } from '@jaegertracing/plexus/lib/types';\nimport _get from 'lodash/get';\nimport _map from 'lodash/map';\nimport memoizeOne from 'memoize-one';\n\nimport convPlexus from '../../../model/trace-dag/convPlexus';\nimport TraceDag from '../../../model/trace-dag/TraceDag';\nimport { DiffCounts } from '../../../model/trace-dag/types';\nimport TDagVertex from '../../../model/trace-dag/types/TDagVertex';\nimport { Trace } from '../../../types/trace';\nimport filterSpans from '../../../utils/filter-spans';\n\nfunction getUiFindVertexKeysFn(uiFind: string, vertices: TDagVertex[]): Set {\n if (!uiFind) return new Set();\n const newVertexKeys: Set = new Set();\n vertices.forEach(({ key, data: { members } }) => {\n if (_get(filterSpans(uiFind, _map(members, 'span')), 'size')) {\n newVertexKeys.add(key);\n }\n });\n return newVertexKeys;\n}\n\nexport const getUiFindVertexKeys = memoizeOne(getUiFindVertexKeysFn);\n\nfunction getEdgesAndVerticesFn(aData: Trace, bData: Trace) {\n const aTraceDag = TraceDag.newFromTrace(aData);\n const bTraceDag = TraceDag.newFromTrace(bData);\n const diffDag = TraceDag.diff(aTraceDag, bTraceDag);\n return convPlexus(diffDag.nodesMap);\n}\n\nexport const getEdgesAndVertices = memoizeOne(getEdgesAndVerticesFn);\n","// Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { cacheAs, Digraph, LayoutManager } from '@jaegertracing/plexus';\nimport cx from 'classnames';\nimport { connect } from 'react-redux';\n\nimport renderNode, { getNodeEmphasisRenderer } from './renderNode';\nimport { getUiFindVertexKeys, getEdgesAndVertices } from './traceDiffGraphUtils';\nimport ErrorMessage from '../../common/ErrorMessage';\nimport LoadingIndicator from '../../common/LoadingIndicator';\nimport UiFindInput, { extractUiFindFromState, TExtractUiFindFromStateReturn } from '../../common/UiFindInput';\nimport { fetchedState } from '../../../constants';\nimport { FetchedTrace, TNil } from '../../../types';\n\nimport './TraceDiffGraph.css';\n\ntype Props = {\n a: FetchedTrace | TNil;\n b: FetchedTrace | TNil;\n} & TExtractUiFindFromStateReturn;\n\nconst { classNameIsSmall, scaleOpacity, scaleStrokeOpacity } = Digraph.propsFactories;\n\nexport class UnconnectedTraceDiffGraph extends React.PureComponent {\n layoutManager = new LayoutManager({ useDotEdges: true, splines: 'polyline' });\n\n cacheAs = cacheAs.makeScope();\n\n componentWillUnmount() {\n this.layoutManager.stopAndRelease();\n }\n\n render() {\n const { a, b, uiFind = '' } = this.props;\n if (!a || !b) {\n return

At least two Traces are needed

;\n }\n if (a.error || b.error) {\n return (\n
\n {a.error && (\n \n )}\n {b.error && (\n \n )}\n
\n );\n }\n if (a.state === fetchedState.LOADING || b.state === fetchedState.LOADING) {\n return ;\n }\n const aData = a.data;\n const bData = b.data;\n if (!aData || !bData) {\n return
;\n }\n const { edges, vertices } = getEdgesAndVertices(aData, bData);\n const keys = getUiFindVertexKeys(uiFind, vertices);\n const dagClassName = cx('TraceDiffGraph--dag', { 'is-uiFind-mode': uiFind });\n const inputProps: Record = {\n className: 'TraceDiffGraph--uiFind',\n suffix: uiFind.length ? String(keys.size) : undefined,\n };\n\n return (\n
\n \n \n
\n );\n }\n}\n\nexport default connect(extractUiFindFromState)(UnconnectedTraceDiffGraph);\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\n\nimport { getUrl } from '../../TracePage/url';\nimport NewWindowIcon from '../../common/NewWindowIcon';\n\ntype PropsType = {\n traceID: string;\n};\n\nfunction stopPropagation(event: React.MouseEvent) {\n event.stopPropagation();\n}\n\nexport default function TraceTimelineLink({ traceID }: PropsType) {\n return (\n \n \n \n );\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport moment from 'moment';\n\nimport { formatRelativeDate } from '../../utils/date';\n\ntype Props = {\n fullMonthName: boolean | undefined | null;\n includeTime: boolean | undefined | null;\n value: number | Date | any;\n};\n\n// TODO typescript doesn't understand text or null as react nodes\n// https://github.com/Microsoft/TypeScript/issues/21699\nexport default function RelativeDate(props: Props): any {\n const { value, includeTime, fullMonthName } = props;\n const m = moment.isMoment(value) ? value : moment(value);\n const dateStr = formatRelativeDate(m, Boolean(fullMonthName));\n const timeStr = includeTime ? `, ${m.format('h:mm:ss a')}` : '';\n return `${dateStr}${timeStr}`;\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Table, Tag } from 'antd';\n\nimport TraceTimelineLink from './TraceTimelineLink';\nimport RelativeDate from '../../common/RelativeDate';\nimport TraceName from '../../common/TraceName';\nimport { fetchedState } from '../../../constants';\nimport { formatDuration } from '../../../utils/date';\n\nimport { FetchedTrace, TNil } from '../../../types';\n\nimport './CohortTable.css';\n\ntype Props = {\n selection: Record;\n current: string | TNil;\n cohort: FetchedTrace[];\n selectTrace: (traceID: string) => void;\n};\n\nconst { Column } = Table;\n\nconst defaultRowSelection = {\n hideDefaultSelections: true,\n type: 'radio' as 'radio',\n};\n\nexport const NEED_MORE_TRACES_MESSAGE = (\n

\n Enter a Trace ID or perform a search and select from the results.\n

\n);\n\nexport default class CohortTable extends React.PureComponent {\n getCheckboxProps = (record: FetchedTrace) => {\n const { current, selection } = this.props;\n const { id, state } = record;\n if (state === fetchedState.ERROR || (id in selection && id !== current)) {\n return { disabled: true };\n }\n return {};\n };\n\n render() {\n const { cohort, current, selection, selectTrace } = this.props;\n const rowSelection = {\n ...defaultRowSelection,\n getCheckboxProps: this.getCheckboxProps,\n // TODO: Antd Table believes onChange can be called with a string or number, but that seems wrong\n onChange: (ids: number[] | string[]) => selectTrace(ids[0] as string),\n selectedRowKeys: current ? [current] : [],\n };\n\n return [\n \n {value && value.slice(0, 7)}}\n />\n {\n const { data, error, id, state } = record;\n const { traceName = undefined } = data || {};\n const { label = undefined } = selection[id] || {};\n return (\n \n {label != null && (\n \n {label}\n \n )}\n \n \n );\n }}\n />\n \n record.state === fetchedState.DONE && (\n \n )\n }\n />\n \n record.state === fetchedState.DONE && formatDuration(value)\n }\n />\n \n }\n />\n ,\n cohort.length < 2 && NEED_MORE_TRACES_MESSAGE,\n ];\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport IoChevronDown from 'react-icons/lib/io/chevron-down';\n\nimport TraceTimelineLink from './TraceTimelineLink';\nimport RelativeDate from '../../common/RelativeDate';\nimport TraceName from '../../common/TraceName';\nimport { fetchedState } from '../../../constants';\nimport { formatDuration } from '../../../utils/date';\n\nimport { FetchedState, TNil } from '../../../types';\nimport { ApiError } from '../../../types/api-error';\n\nimport './TraceHeader.css';\n\ntype Props = {\n duration: number | TNil;\n error?: ApiError;\n startTime: number | TNil;\n state: FetchedState | TNil;\n traceID: string | TNil;\n traceName: string | TNil;\n totalSpans: number | TNil;\n};\n\ntype AttrsProps = {\n startTime: number | TNil;\n duration: number | TNil;\n totalSpans: number | TNil;\n};\n\n// exported for tests\nexport function EmptyAttrs() {\n return (\n
    \n
  •  
  • \n
\n );\n}\n\n// exported for tests\nexport function Attrs(props: AttrsProps) {\n const { startTime, duration, totalSpans } = props;\n return (\n
    \n
  • \n \n \n \n
  • \n
  • \n Duration: \n {formatDuration(duration || 0)}\n
  • \n
  • \n Spans: {totalSpans || 0}\n
  • \n
\n );\n}\n\nexport default function TraceHeader(props: Props) {\n const { duration, error, startTime, state, traceID, totalSpans, traceName } = props;\n const AttrsComponent = state === fetchedState.DONE ? Attrs : EmptyAttrs;\n return (\n
\n

\n \n {traceID ? (\n \n {' '}\n \n {traceID.slice(0, 7)}\n \n \n \n ) : (\n Select a Trace...\n )}\n \n \n

\n \n
\n );\n}\n\nTraceHeader.defaultProps = {\n error: undefined,\n};\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Input } from 'antd';\n\ntype Props = {\n selectTrace: (traceID: string) => void;\n};\n\nconst { Search } = Input;\n\nexport default function TraceIdInput(props: Props) {\n const { selectTrace } = props;\n return ;\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Popover } from 'antd';\n\nimport CohortTable from './CohortTable';\nimport TraceHeader from './TraceHeader';\nimport TraceIdInput from './TraceIdInput';\n\nimport { FetchedTrace, TNil } from '../../../types';\n\nimport './TraceDiffHeader.css';\n\ntype Props = {\n a: FetchedTrace | TNil;\n b: FetchedTrace | TNil;\n cohort: FetchedTrace[];\n diffSetA: (traceId: string) => void;\n diffSetB: (traceId: string) => void;\n};\n\ntype State = {\n tableVisible: ('a' | 'b') | null;\n};\n\nexport default class TraceDiffHeader extends React.PureComponent {\n _toggleTableA: (showTable: boolean) => void;\n _toggleTableB: (showTable: boolean) => void;\n _diffSetA: (traceID: string) => void;\n _diffSetB: (traceID: string) => void;\n\n state = {\n tableVisible: null,\n };\n\n constructor(props: Props) {\n super(props);\n this._toggleTableA = this._toggleTable.bind(this, 'a');\n this._toggleTableB = this._toggleTable.bind(this, 'b');\n this._diffSetA = this._diffSetTrace.bind(this, 'a');\n this._diffSetB = this._diffSetTrace.bind(this, 'b');\n }\n\n _toggleTable(which: 'a' | 'b', visible: boolean) {\n const tableVisible = visible ? which : null;\n this.setState({ tableVisible });\n }\n\n _diffSetTrace(which: 'a' | 'b', id: string) {\n if (which === 'a') {\n this.props.diffSetA(id);\n } else {\n this.props.diffSetB(id);\n }\n this.setState({ tableVisible: null });\n }\n\n render() {\n const { a, b, cohort } = this.props;\n const { tableVisible } = this.state;\n const {\n data: aData = undefined,\n id: aId = undefined,\n state: aState = undefined,\n error: aError = undefined,\n } = a || {};\n const {\n data: bData = undefined,\n id: bId = undefined,\n state: bState = undefined,\n error: bError = undefined,\n } = b || {};\n const selection: Record = {};\n if (aId) selection[aId] = { label: 'A' };\n if (bId) selection[bId] = { label: 'B' };\n const cohortTableA = (\n \n );\n const cohortTableB = (\n \n );\n return (\n
\n
\n

A

\n
\n }\n content={cohortTableA}\n visible={tableVisible === 'a'}\n onVisibleChange={this._toggleTableA}\n >\n
\n \n
\n \n
\n

VS

\n
\n
\n

B

\n
\n }\n content={cohortTableB}\n visible={tableVisible === 'b'}\n onVisibleChange={this._toggleTableB}\n >\n
\n \n
\n \n
\n );\n }\n}\n","// Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { History as RouterHistory } from 'history';\nimport queryString from 'query-string';\nimport { connect } from 'react-redux';\nimport { match } from 'react-router-dom';\nimport { bindActionCreators, Dispatch } from 'redux';\n\nimport { actions as diffActions } from './duck';\nimport { getUrl, TDiffRouteParams } from './url';\nimport TraceDiffGraph from './TraceDiffGraph';\nimport TraceDiffHeader from './TraceDiffHeader';\nimport * as jaegerApiActions from '../../actions/jaeger-api';\nimport { TOP_NAV_HEIGHT } from '../../constants';\nimport { FetchedTrace, TNil, ReduxState } from '../../types';\nimport TTraceDiffState from '../../types/TTraceDiffState';\nimport pluckTruthy from '../../utils/ts/pluckTruthy';\n\nimport './TraceDiff.css';\n\ntype TStateProps = {\n a: string | undefined;\n b: string | undefined;\n cohort: string[];\n tracesData: Map;\n traceDiffState: TTraceDiffState;\n};\n\ntype TDispatchProps = {\n fetchMultipleTraces: (ids: string[]) => void;\n forceState: (state: TTraceDiffState) => void;\n};\n\ntype TOwnProps = {\n history: RouterHistory;\n match: match;\n};\n\ntype TState = {\n graphTopOffset: number;\n};\n\nfunction syncStates(\n urlValues: TTraceDiffState,\n reduxValues: TTraceDiffState,\n forceState: (newState: TTraceDiffState) => void\n) {\n const { a: urlA, b: urlB } = urlValues;\n const { a: reduxA, b: reduxB } = reduxValues;\n if (urlA !== reduxA || urlB !== reduxB) {\n forceState(urlValues);\n return;\n }\n const urlCohort = new Set(urlValues.cohort);\n const reduxCohort = new Set(reduxValues.cohort || []);\n if (urlCohort.size !== reduxCohort.size) {\n forceState(urlValues);\n return;\n }\n const needSync = Array.from(urlCohort).some(id => !reduxCohort.has(id));\n if (needSync) {\n forceState(urlValues);\n }\n}\n\n// export class TraceDiffImpl extends React.PureComponent {\nexport class TraceDiffImpl extends React.PureComponent {\n state = {\n graphTopOffset: TOP_NAV_HEIGHT,\n };\n\n headerWrapperElm: HTMLDivElement | TNil = null;\n\n componentDidMount() {\n this.processProps();\n }\n\n componentDidUpdate() {\n this.setGraphTopOffset();\n this.processProps();\n }\n\n headerWrapperRef = (elm: HTMLDivElement | TNil) => {\n this.headerWrapperElm = elm;\n this.setGraphTopOffset();\n };\n\n setGraphTopOffset() {\n if (this.headerWrapperElm) {\n const graphTopOffset = TOP_NAV_HEIGHT + this.headerWrapperElm.clientHeight;\n if (this.state.graphTopOffset !== graphTopOffset) {\n this.setState({ graphTopOffset });\n }\n } else {\n this.setState({ graphTopOffset: TOP_NAV_HEIGHT });\n }\n }\n\n processProps() {\n const { a, b, cohort, fetchMultipleTraces, forceState, tracesData, traceDiffState } = this.props;\n syncStates({ a, b, cohort }, traceDiffState, forceState);\n const cohortData = cohort.map(id => tracesData.get(id) || { id, state: null });\n const needForDiffs = cohortData.filter(ft => ft.state == null).map(ft => ft.id);\n if (needForDiffs.length) {\n fetchMultipleTraces(needForDiffs);\n }\n }\n\n diffSetUrl(change: { newA?: string | TNil; newB?: string | TNil }) {\n const { newA, newB } = change;\n const { a, b, cohort, history } = this.props;\n const url = getUrl({ a: newA || a, b: newB || b, cohort });\n history.push(url);\n }\n\n diffSetA = (id: string) => {\n const newA = id.toLowerCase();\n this.diffSetUrl({ newA });\n };\n\n diffSetB = (id: string) => {\n const newB = id.toLowerCase();\n this.diffSetUrl({ newB });\n };\n\n render() {\n const { a, b, cohort, tracesData } = this.props;\n const { graphTopOffset } = this.state;\n const traceA = a ? tracesData.get(a) || { id: a } : null;\n const traceB = b ? tracesData.get(b) || { id: b } : null;\n const cohortData: FetchedTrace[] = cohort.map(id => tracesData.get(id) || { id });\n return (\n \n
\n \n
\n
\n \n
\n
\n );\n }\n}\n\n// TODO(joe): simplify but do not invalidate the URL\nexport function mapStateToProps(state: ReduxState, ownProps: { match: match }) {\n const { a, b } = ownProps.match.params;\n const { cohort: origCohort = [] } = queryString.parse(state.router.location.search);\n const fullCohortSet: Set = new Set(pluckTruthy([a, b].concat(origCohort)));\n const cohort: string[] = Array.from(fullCohortSet);\n const { traces } = state.trace;\n const kvPairs = cohort.map<[string, FetchedTrace]>(id => [id, traces[id] || { id, state: null }]);\n const tracesData: Map = new Map(kvPairs);\n return {\n a,\n b,\n cohort,\n tracesData,\n traceDiffState: state.traceDiff,\n };\n}\n\n// export for tests\nexport function mapDispatchToProps(dispatch: Dispatch) {\n const { fetchMultipleTraces } = bindActionCreators(jaegerApiActions, dispatch);\n const { forceState } = bindActionCreators(diffActions, dispatch);\n return { fetchMultipleTraces, forceState };\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(TraceDiffImpl);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Icon, notification } from 'antd';\n\nimport ErrorMessage from '../../common/ErrorMessage';\nimport { TNil } from '../../../types';\nimport { TraceArchive } from '../../../types/archive';\n\nimport './index.css';\n\nenum ENotifiedState {\n Progress = 'ENotifiedState.Progress',\n Outcome = 'ENotifiedState.Outcome',\n}\n\n// const NOTIFIED_PROGRESS = 'NOTIFIED_PROGRESS';\n// const NOTIFIED_OUTCOME = 'NOTIFIED_OUTCOME';\n\n// type NotifiedState = 'NOTIFIED_PROGRESS' | 'NOTIFIED_OUTCOME' | null;\n\ntype Props = {\n // eslint-disable-next-line react/no-unused-prop-types\n archivedState: TraceArchive | TNil;\n // eslint-disable-next-line react/no-unused-prop-types\n acknowledge: () => void;\n};\n\ntype State = {\n notifiedState: ENotifiedState | null;\n};\n\nfunction getNextNotifiedState(props: Props) {\n const { archivedState } = props;\n if (!archivedState) {\n return null;\n }\n if (archivedState.isLoading) {\n return ENotifiedState.Progress;\n }\n return archivedState.isAcknowledged ? null : ENotifiedState.Outcome;\n}\n\nfunction updateNotification(oldState: ENotifiedState | null, nextState: ENotifiedState | null, props: Props) {\n if (oldState === nextState) {\n return;\n }\n if (oldState) {\n notification.close(oldState);\n }\n if (nextState === ENotifiedState.Progress) {\n notification.info({\n key: ENotifiedState.Progress,\n description: null,\n duration: 0,\n icon: ,\n message: 'Archiving trace...',\n });\n return;\n }\n const { acknowledge, archivedState } = props;\n if (nextState === ENotifiedState.Outcome) {\n if (archivedState && archivedState.error) {\n const error = typeof archivedState.error === 'string' ? archivedState.error : archivedState.error;\n notification.warn({\n key: ENotifiedState.Outcome,\n className: 'ArchiveNotifier--errorNotification',\n message: ,\n description: ,\n duration: null,\n icon: ,\n onClose: acknowledge,\n });\n } else if (archivedState && archivedState.isArchived) {\n notification.success({\n key: ENotifiedState.Outcome,\n description: null,\n duration: null,\n icon: ,\n message: 'This trace has been archived.',\n onClose: acknowledge,\n });\n } else {\n throw new Error('Unexpected condition');\n }\n }\n}\n\nfunction processProps(notifiedState: ENotifiedState | null, props: Props) {\n const nxNotifiedState = getNextNotifiedState(props);\n updateNotification(notifiedState, nxNotifiedState, props);\n return nxNotifiedState;\n}\n\nexport default class ArchiveNotifier extends React.PureComponent {\n constructor(props: Props) {\n super(props);\n const notifiedState = processProps(null, props);\n this.state = { notifiedState };\n }\n\n componentWillReceiveProps(nextProps: Props) {\n const notifiedState = processProps(this.state.notifiedState, nextProps);\n if (this.state.notifiedState !== notifiedState) {\n this.setState({ notifiedState });\n }\n }\n\n componentWillUnmount() {\n const { notifiedState } = this.state;\n if (notifiedState) {\n notification.close(notifiedState);\n }\n }\n\n render() {\n return null;\n }\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Because TypeScript doesn't believe in Array#filter(Boolean)\nexport default function pluckTruthy(values: (T | any)[]): T[] {\n const rv: T[] = [];\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n if (value) {\n rv.push(value);\n }\n }\n return rv;\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { createActions, handleActions, ActionFunctionAny } from 'redux-actions';\n\nimport { archiveTrace } from '../../../actions/jaeger-api';\nimport { ApiError } from '../../../types/api-error';\nimport { TracesArchive } from '../../../types/archive';\nimport generateActionTypes from '../../../utils/generate-action-types';\n\ntype ArchiveAction = {\n meta: {\n id: string;\n };\n payload?: ApiError | string;\n};\n\nconst initialState: TracesArchive = {};\n\nconst actionTypes = generateActionTypes('@jaeger-ui/archive-trace', ['ACKNOWLEDGE']);\n\nconst fullActions = createActions({\n [actionTypes.ACKNOWLEDGE]: traceID => traceID,\n});\n\nexport const actions: { [actionType: string]: ActionFunctionAny } = {\n ...(fullActions as any).jaegerUi.archiveTrace,\n archiveTrace,\n};\n\nfunction acknowledge(state: TracesArchive, { payload }: ArchiveAction) {\n const traceID = typeof payload === 'string' ? payload : null;\n if (!traceID) {\n // make flow happy\n throw new Error('Invalid state, missing traceID for archive acknowledge');\n }\n const traceArchive = state[traceID];\n if (traceArchive && traceArchive.isLoading) {\n // acknowledgement during loading is invalid (should not happen)\n return state;\n }\n const next = { ...traceArchive, isAcknowledged: true };\n return { ...state, [traceID]: next };\n}\n\nfunction archiveStarted(state: TracesArchive, { meta }: ArchiveAction) {\n return { ...state, [meta.id]: { isLoading: true } };\n}\n\nfunction archiveDone(state: TracesArchive, { meta }: ArchiveAction) {\n return { ...state, [meta.id]: { isArchived: true, isAcknowledged: false } };\n}\n\nfunction archiveErred(state: TracesArchive, { meta, payload }: ArchiveAction) {\n if (!payload) {\n // make flow happy\n throw new Error('Invalid state, missing API error details');\n }\n const traceArchive = { error: payload, isArchived: false, isError: true, isAcknowledged: false };\n return { ...state, [meta.id]: traceArchive };\n}\n\nexport default handleActions(\n {\n [actionTypes.ACKNOWLEDGE]: acknowledge,\n [`${archiveTrace}_PENDING`]: archiveStarted,\n [`${archiveTrace}_FULFILLED`]: archiveDone,\n [`${archiveTrace}_REJECTED`]: archiveErred,\n },\n initialState\n);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { trackEvent } from '../../utils/tracking';\nimport getTrackFilter from '../../utils/tracking/getTrackFilter';\n\n// export for tests\nexport const CATEGORY_FILTER = 'jaeger/ux/trace/filter';\nexport const CATEGORY_MATCH_INTERACTIONS = 'jaeger/ux/trace/match-interactions';\nexport const CATEGORY_RANGE = 'jaeger/ux/trace/range';\n\n// export for tests\nexport const ACTION_FOCUS = 'focus';\nexport const ACTION_NEXT = 'next';\nexport const ACTION_PREV = 'previous';\nexport const ACTION_RANGE_REFRAME = 'reframe';\nexport const ACTION_RANGE_SHIFT = 'shift';\n\nexport const trackFilter = getTrackFilter(CATEGORY_FILTER);\n\nexport function trackFocusMatches() {\n trackEvent(CATEGORY_MATCH_INTERACTIONS, ACTION_FOCUS);\n}\n\nexport function trackNextMatch() {\n trackEvent(CATEGORY_MATCH_INTERACTIONS, ACTION_NEXT);\n}\n\nexport function trackPrevMatch() {\n trackEvent(CATEGORY_MATCH_INTERACTIONS, ACTION_PREV);\n}\n\nfunction getRangeAction(current: [number, number], next: [number, number]) {\n const [curStart, curEnd] = current;\n const [nxStart, nxEnd] = next;\n if (curStart === nxStart || curEnd === nxEnd) {\n return ACTION_RANGE_SHIFT;\n }\n const dStart = (curStart - nxStart).toPrecision(7);\n const dEnd = (curEnd - nxEnd).toPrecision(7);\n if (dStart === dEnd) {\n return ACTION_RANGE_SHIFT;\n }\n return ACTION_RANGE_REFRAME;\n}\n\nexport function trackRange(source: string, current: [number, number], next: [number, number]) {\n const action = getRangeAction(current, next);\n trackEvent(CATEGORY_RANGE, action, source);\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport Combokeys from 'combokeys';\n\nimport keyboardMappings from './keyboard-mappings';\n\nexport type CombokeysHandler =\n | (() => void)\n | ((event: React.KeyboardEvent) => void)\n | ((event: React.KeyboardEvent, s: string) => void);\n\nexport type ShortcutCallbacks = {\n [name: string]: CombokeysHandler;\n};\n\nlet instance: Combokeys | undefined;\n\nfunction getInstance(): Combokeys {\n if (instance) {\n return instance;\n }\n const local = new Combokeys(document.body);\n instance = local;\n return local;\n}\n\nexport function merge(callbacks: ShortcutCallbacks) {\n const inst = getInstance();\n Object.keys(callbacks).forEach(name => {\n const keysHandler = callbacks[name];\n if (keysHandler) {\n inst.bind(keyboardMappings[name].binding, keysHandler);\n }\n });\n}\n\nexport function reset() {\n const combokeys = getInstance();\n combokeys.reset();\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nconst keyboardMappings: Record = {\n scrollPageDown: { binding: 's', label: 'Scroll down' },\n scrollPageUp: { binding: 'w', label: 'Scroll up' },\n scrollToNextVisibleSpan: { binding: 'f', label: 'Scroll to the next visible span' },\n scrollToPrevVisibleSpan: { binding: 'b', label: 'Scroll to the previous visible span' },\n panLeft: { binding: ['a', 'left'], label: 'Pan left' },\n panLeftFast: { binding: ['shift+a', 'shift+left'], label: 'Pan left — Large' },\n panRight: { binding: ['d', 'right'], label: 'Pan right' },\n panRightFast: { binding: ['shift+d', 'shift+right'], label: 'Pan right — Large' },\n zoomIn: { binding: 'up', label: 'Zoom in' },\n zoomInFast: { binding: 'shift+up', label: 'Zoom in — Large' },\n zoomOut: { binding: 'down', label: 'Zoom out' },\n zoomOutFast: { binding: 'shift+down', label: 'Zoom out — Large' },\n collapseAll: { binding: ']', label: 'Collapse All' },\n expandAll: { binding: '[', label: 'Expand All' },\n collapseOne: { binding: 'p', label: 'Collapse One Level' },\n expandOne: { binding: 'o', label: 'Expand One Level' },\n searchSpans: { binding: 'ctrl+b', label: 'Search Spans' },\n clearSearch: { binding: 'escape', label: 'Clear Search' },\n};\n\nexport default keyboardMappings;\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport Tween from './Tween';\n\nconst DURATION_MS = 350;\n\nlet lastTween: Tween | void;\n\n// TODO(joe): this util can be modified a bit to be generalized (e.g. take in\n// an element as a parameter and use scrollTop instead of window.scrollTo)\n\nfunction _onTweenUpdate({ done, value }: { done: boolean; value: number }) {\n window.scrollTo(window.scrollX, value);\n if (done) {\n lastTween = undefined;\n }\n}\n\nexport function scrollBy(yDelta: number, appendToLast: boolean = false) {\n const { scrollY } = window;\n let targetFrom = scrollY;\n if (appendToLast && lastTween) {\n const currentDirection = lastTween.to < scrollY ? 'up' : 'down';\n const nextDirection = yDelta < 0 ? 'up' : 'down';\n if (currentDirection === nextDirection) {\n targetFrom = lastTween.to;\n }\n }\n const to = targetFrom + yDelta;\n lastTween = new Tween({ to, duration: DURATION_MS, from: scrollY, onUpdate: _onTweenUpdate });\n}\n\nexport function scrollTo(y: number) {\n const { scrollY } = window;\n lastTween = new Tween({ duration: DURATION_MS, from: scrollY, to: y, onUpdate: _onTweenUpdate });\n}\n\nexport function cancel() {\n if (lastTween) {\n lastTween.cancel();\n lastTween = undefined;\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport ease from 'tween-functions';\n\nimport { TNil } from '../../types';\n\ninterface ITweenState {\n done: boolean;\n value: number;\n}\n\ntype TTweenCallback = (state: ITweenState) => void;\n\ntype TTweenOptions = {\n delay?: number;\n duration: number;\n from: number;\n onComplete?: TTweenCallback;\n onUpdate?: TTweenCallback;\n to: number;\n};\n\nexport default class Tween {\n callbackComplete: TTweenCallback | TNil;\n callbackUpdate: TTweenCallback | TNil;\n delay: number | TNil;\n duration: number;\n from: number;\n requestID: number | TNil;\n startTime: number;\n timeoutID: number | TNil;\n to: number;\n\n constructor({ duration, from, to, delay, onUpdate, onComplete }: TTweenOptions) {\n this.startTime = Date.now() + (delay || 0);\n this.duration = duration;\n this.from = from;\n this.to = to;\n if (!onUpdate && !onComplete) {\n this.callbackComplete = undefined;\n this.callbackUpdate = undefined;\n this.timeoutID = undefined;\n this.requestID = undefined;\n } else {\n this.callbackComplete = onComplete;\n this.callbackUpdate = onUpdate;\n if (delay) {\n // setTimeout from @types/node returns NodeJS.Timeout, so prefix with `window.`\n this.timeoutID = window.setTimeout(this._frameCallback, delay);\n this.requestID = undefined;\n } else {\n this.requestID = window.requestAnimationFrame(this._frameCallback);\n this.timeoutID = undefined;\n }\n }\n }\n\n _frameCallback = () => {\n this.timeoutID = undefined;\n this.requestID = undefined;\n const current = Object.freeze(this.getCurrent());\n if (this.callbackUpdate) {\n this.callbackUpdate(current);\n }\n if (this.callbackComplete && current.done) {\n this.callbackComplete(current);\n }\n if (current.done) {\n this.callbackComplete = undefined;\n this.callbackUpdate = undefined;\n } else {\n this.requestID = window.requestAnimationFrame(this._frameCallback);\n }\n };\n\n cancel() {\n if (this.timeoutID != null) {\n clearTimeout(this.timeoutID);\n this.timeoutID = undefined;\n }\n if (this.requestID != null) {\n window.cancelAnimationFrame(this.requestID);\n this.requestID = undefined;\n }\n this.callbackComplete = undefined;\n this.callbackUpdate = undefined;\n }\n\n getCurrent(): ITweenState {\n const t = Date.now() - this.startTime;\n if (t <= 0) {\n // still in the delay period\n return { done: false, value: this.from };\n }\n if (t >= this.duration) {\n // after the expiration\n return { done: true, value: this.to };\n }\n // mid-tween\n return { done: false, value: ease.easeOutQuint(t, this.from, this.to, this.duration) };\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { TNil } from '../../types';\nimport { Span, SpanReference, Trace } from '../../types/trace';\n\n/**\n * `Accessors` is necessary because `ScrollManager` needs to be created by\n * `TracePage` so it can be passed into the keyboard shortcut manager. But,\n * `ScrollManager` needs to know about the state of `ListView` and `Positions`,\n * which are very low-level. And, storing their state info in redux or\n * `TracePage#state` would be inefficient because the state info only rarely\n * needs to be accessed (when a keyboard shortcut is triggered). `Accessors`\n * allows that state info to be accessed in a loosely coupled fashion on an\n * as-needed basis.\n */\nexport type Accessors = {\n getViewRange: () => [number, number];\n getSearchedSpanIDs: () => Set | TNil;\n getCollapsedChildren: () => Set | TNil;\n getViewHeight: () => number;\n getBottomRowIndexVisible: () => number;\n getTopRowIndexVisible: () => number;\n getRowPosition: (rowIndex: number) => { height: number; y: number };\n mapRowIndexToSpanIndex: (rowIndex: number) => number;\n mapSpanIndexToRowIndex: (spanIndex: number) => number;\n};\n\ninterface IScroller {\n scrollTo: (rowIndex: number) => void;\n // TODO arg names throughout\n scrollBy: (rowIndex: number, opt?: boolean) => void;\n}\n\n/**\n * Returns `{ isHidden: true, ... }` if one of the parents of `span` is\n * collapsed, e.g. has children hidden.\n *\n * @param {Span} span The Span to check for.\n * @param {Set} childrenAreHidden The set of Spans known to have hidden\n * children, either because it is\n * collapsed or has a collapsed parent.\n * @param {Map }}\n */\nfunction isSpanHidden(span: Span, childrenAreHidden: Set, spansMap: Map) {\n const parentIDs = new Set();\n let { references }: { references: SpanReference[] | TNil } = span;\n let parentID: undefined | string;\n const checkRef = (ref: SpanReference) => {\n if (ref.refType === 'CHILD_OF' || ref.refType === 'FOLLOWS_FROM') {\n parentID = ref.spanID;\n parentIDs.add(parentID);\n return childrenAreHidden.has(parentID);\n }\n return false;\n };\n while (Array.isArray(references) && references.length) {\n const isHidden = references.some(checkRef);\n if (isHidden) {\n return { isHidden, parentIDs };\n }\n if (!parentID) {\n break;\n }\n const parent = spansMap.get(parentID);\n parentID = undefined;\n references = parent && parent.references;\n }\n return { parentIDs, isHidden: false };\n}\n\n/**\n * ScrollManager is intended for scrolling the TracePage. Has two modes, paging\n * and scrolling to the previous or next visible span.\n */\nexport default class ScrollManager {\n _trace: Trace | TNil;\n _scroller: IScroller;\n _accessors: Accessors | TNil;\n\n constructor(trace: Trace | TNil, scroller: IScroller) {\n this._trace = trace;\n this._scroller = scroller;\n this._accessors = undefined;\n }\n\n _scrollPast(rowIndex: number, direction: 1 | -1) {\n const xrs = this._accessors;\n /* istanbul ignore next */\n if (!xrs) {\n throw new Error('Accessors not set');\n }\n const isUp = direction < 0;\n const position = xrs.getRowPosition(rowIndex);\n if (!position) {\n // eslint-disable-next-line no-console\n console.warn('Invalid row index');\n return;\n }\n let { y } = position;\n const vh = xrs.getViewHeight();\n if (!isUp) {\n y += position.height;\n // scrollTop is based on the top of the window\n y -= vh;\n }\n y += direction * 0.5 * vh;\n this._scroller.scrollTo(y);\n }\n\n _scrollToVisibleSpan(direction: 1 | -1, startRow?: number) {\n const xrs = this._accessors;\n /* istanbul ignore next */\n if (!xrs) {\n throw new Error('Accessors not set');\n }\n if (!this._trace) {\n return;\n }\n const { duration, spans, startTime: traceStartTime } = this._trace;\n const isUp = direction < 0;\n let boundaryRow: number;\n if (startRow != null) {\n boundaryRow = startRow;\n } else if (isUp) {\n boundaryRow = xrs.getTopRowIndexVisible();\n } else {\n boundaryRow = xrs.getBottomRowIndexVisible();\n }\n const spanIndex = xrs.mapRowIndexToSpanIndex(boundaryRow);\n if ((spanIndex === 0 && isUp) || (spanIndex === spans.length - 1 && !isUp)) {\n return;\n }\n // fullViewSpanIndex is one row inside the view window unless already at the top or bottom\n let fullViewSpanIndex = spanIndex;\n if (spanIndex !== 0 && spanIndex !== spans.length - 1) {\n fullViewSpanIndex -= direction;\n }\n const [viewStart, viewEnd] = xrs.getViewRange();\n const checkVisibility = viewStart !== 0 || viewEnd !== 1;\n // use NaN as fallback to make flow happy\n const startTime = checkVisibility ? traceStartTime + duration * viewStart : NaN;\n const endTime = checkVisibility ? traceStartTime + duration * viewEnd : NaN;\n const findMatches = xrs.getSearchedSpanIDs();\n const _collapsed = xrs.getCollapsedChildren();\n const childrenAreHidden = _collapsed ? new Set(_collapsed) : null;\n // use empty Map as fallback to make flow happy\n const spansMap: Map = childrenAreHidden\n ? new Map(spans.map(s => [s.spanID, s] as [string, Span]))\n : new Map();\n const boundary = direction < 0 ? -1 : spans.length;\n let nextSpanIndex: number | undefined;\n for (let i = fullViewSpanIndex + direction; i !== boundary; i += direction) {\n const span = spans[i];\n const { duration: spanDuration, spanID, startTime: spanStartTime } = span;\n const spanEndTime = spanStartTime + spanDuration;\n if (checkVisibility && (spanStartTime > endTime || spanEndTime < startTime)) {\n // span is not visible within the view range\n continue;\n }\n if (findMatches && !findMatches.has(spanID)) {\n // skip to search matches (when searching)\n continue;\n }\n if (childrenAreHidden) {\n // make sure the span is not collapsed\n const { isHidden, parentIDs } = isSpanHidden(span, childrenAreHidden, spansMap);\n if (isHidden) {\n parentIDs.forEach(id => childrenAreHidden.add(id));\n continue;\n }\n }\n nextSpanIndex = i;\n break;\n }\n if (!nextSpanIndex || nextSpanIndex === boundary) {\n // might as well scroll to the top or bottom\n nextSpanIndex = boundary - direction;\n\n // If there are hidden children, scroll to the last visible span\n if (childrenAreHidden) {\n let isFallbackHidden: boolean;\n do {\n const { isHidden, parentIDs } = isSpanHidden(spans[nextSpanIndex], childrenAreHidden, spansMap);\n if (isHidden) {\n parentIDs.forEach(id => childrenAreHidden.add(id));\n nextSpanIndex--;\n }\n isFallbackHidden = isHidden;\n } while (isFallbackHidden);\n }\n }\n const nextRow = xrs.mapSpanIndexToRowIndex(nextSpanIndex);\n this._scrollPast(nextRow, direction);\n }\n\n /**\n * Sometimes the ScrollManager is created before the trace is loaded. This\n * setter allows the trace to be set asynchronously.\n */\n setTrace(trace: Trace | TNil) {\n this._trace = trace;\n }\n\n /**\n * `setAccessors` is bound in the ctor, so it can be passed as a prop to\n * children components.\n */\n setAccessors = (accessors: Accessors) => {\n this._accessors = accessors;\n };\n\n /**\n * Scrolls around one page down (0.95x). It is bounds in the ctor, so it can\n * be used as a keyboard shortcut handler.\n */\n scrollPageDown = () => {\n if (!this._scroller || !this._accessors) {\n return;\n }\n this._scroller.scrollBy(0.95 * this._accessors.getViewHeight(), true);\n };\n\n /**\n * Scrolls around one page up (0.95x). It is bounds in the ctor, so it can\n * be used as a keyboard shortcut handler.\n */\n scrollPageUp = () => {\n if (!this._scroller || !this._accessors) {\n return;\n }\n this._scroller.scrollBy(-0.95 * this._accessors.getViewHeight(), true);\n };\n\n /**\n * Scrolls to the next visible span, ignoring spans that do not match the\n * text filter, if there is one. It is bounds in the ctor, so it can\n * be used as a keyboard shortcut handler.\n */\n scrollToNextVisibleSpan = () => {\n this._scrollToVisibleSpan(1);\n };\n\n /**\n * Scrolls to the previous visible span, ignoring spans that do not match the\n * text filter, if there is one. It is bounds in the ctor, so it can\n * be used as a keyboard shortcut handler.\n */\n scrollToPrevVisibleSpan = () => {\n this._scrollToVisibleSpan(-1);\n };\n\n scrollToFirstVisibleSpan = () => {\n this._scrollToVisibleSpan(1, 0);\n };\n\n destroy() {\n this._trace = undefined;\n this._scroller = undefined as any;\n this._accessors = undefined;\n }\n}\n","// Copyright (c) 2019 The Jaeger Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport DRange from 'drange';\n\nimport { TEdge } from '@jaegertracing/plexus/lib/types';\nimport convPlexus from '../../../model/trace-dag/convPlexus';\nimport TraceDag from '../../../model/trace-dag/TraceDag';\nimport DagNode from '../../../model/trace-dag/DagNode';\nimport { Trace, Span, KeyValuePair } from '../../../types/trace';\nimport { TSumSpan, TEv } from './types';\n\nlet parentChildOfMap: Record;\n\nexport function isError(tags: Array) {\n if (tags) {\n const errorTag = tags.find(t => t.key === 'error');\n if (errorTag) {\n return errorTag.value;\n }\n }\n return false;\n}\n\nfunction extendFollowsFrom(edges: TEdge[], nodes: DagNode[]) {\n return edges.map(e => {\n let hasChildOf = true;\n if (typeof e.to === 'number') {\n const n = nodes[e.to];\n hasChildOf = n.members.some(\n m => m.span.references && m.span.references.some(r => r.refType === 'CHILD_OF')\n );\n }\n return { ...e, followsFrom: !hasChildOf };\n });\n}\n\nfunction getChildOfSpans(parentID: string, trace: Trace): Span[] {\n if (!parentChildOfMap) {\n parentChildOfMap = {};\n trace.spans.forEach(s => {\n if (s.references) {\n // Filter for CHILD_OF we don't want to calculate FOLLOWS_FROM (prod-cons)\n const parentIDs = s.references.filter(r => r.refType === 'CHILD_OF').map(r => r.spanID);\n parentIDs.forEach((pID: string) => {\n parentChildOfMap[pID] = parentChildOfMap[pID] || [];\n parentChildOfMap[pID].push(s);\n });\n }\n });\n }\n return parentChildOfMap[parentID] || [];\n}\n\nfunction getChildOfDrange(parentID: string, trace: Trace) {\n const childrenDrange = new DRange();\n getChildOfSpans(parentID, trace).forEach(s => {\n // -1 otherwise it will take for each child a micro (incluse,exclusive)\n childrenDrange.add(s.startTime, s.startTime + (s.duration <= 0 ? 0 : s.duration - 1));\n });\n return childrenDrange;\n}\n\nexport function calculateTraceDag(trace: Trace): TraceDag {\n const traceDag: TraceDag = new TraceDag();\n traceDag._initFromTrace(trace, {\n count: 0,\n errors: 0,\n time: 0,\n percent: 0,\n selfTime: 0,\n percentSelfTime: 0,\n });\n\n traceDag.nodesMap.forEach(n => {\n const ntime = n.members.reduce((p, m) => p + m.span.duration, 0);\n const numErrors = n.members.reduce((p, m) => (p + isError(m.span.tags) ? 1 : 0), 0);\n const childDurationsDRange = n.members.reduce((p, m) => {\n // Using DRange to handle overlapping spans (fork-join)\n const cdr = new DRange(m.span.startTime, m.span.startTime + m.span.duration).intersect(\n getChildOfDrange(m.span.spanID, trace)\n );\n return p + cdr.length;\n }, 0);\n const stime = ntime - childDurationsDRange;\n const nd = {\n count: n.members.length,\n errors: numErrors,\n time: ntime,\n percent: (100 / trace.duration) * ntime,\n selfTime: stime,\n percentSelfTime: (100 / ntime) * stime,\n };\n // eslint-disable-next-line no-param-reassign\n n.data = nd;\n });\n return traceDag;\n}\n\nexport default function calculateTraceDagEV(trace: Trace): TEv {\n const traceDag = calculateTraceDag(trace);\n const nodes = [...traceDag.nodesMap.values()];\n const ev = convPlexus(traceDag.nodesMap);\n ev.edges = extendFollowsFrom(ev.edges, nodes);\n return ev;\n}\n","// Copyright (c) 2018 The Jaeger Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Popover } from 'antd';\nimport { TLayoutVertex } from '@jaegertracing/plexus/lib/types';\n\nimport { TSumSpan } from './types';\nimport CopyIcon from '../../common/CopyIcon';\nimport TDagVertex from '../../../model/trace-dag/types/TDagVertex';\nimport colorGenerator from '../../../utils/color-generator';\n\nimport './OpNode.css';\nimport EmphasizedNode from '../../common/EmphasizedNode';\n\ntype Props = {\n count: number;\n errors: number;\n time: number;\n percent: number;\n selfTime: number;\n percentSelfTime: number;\n operation: string;\n service: string;\n mode: string;\n};\n\nexport const MODE_SERVICE = 'service';\nexport const MODE_TIME = 'time';\nexport const MODE_SELFTIME = 'selftime';\n\nexport const HELP_TABLE = (\n \n \n \n \n \n \n \n \n \n \n \n \n \n
Count / Error\n Service\n Avg
DurationOperationSelf time
\n);\n\nexport function round2(percent: number) {\n return Math.round(percent * 100) / 100;\n}\n\nexport default class OpNode extends React.PureComponent {\n render() {\n const { count, errors, time, percent, selfTime, percentSelfTime, operation, service, mode } = this.props;\n\n // Spans over 20 % time are full red - we have probably to reconsider better approach\n let backgroundColor;\n if (mode === MODE_TIME) {\n const percentBoosted = Math.min(percent / 20, 1);\n backgroundColor = [255, 0, 0, percentBoosted].join();\n } else if (mode === MODE_SELFTIME) {\n backgroundColor = [255, 0, 0, percentSelfTime / 100].join();\n } else {\n backgroundColor = colorGenerator\n .getRgbColorByKey(service)\n .concat(0.8)\n .join();\n }\n\n const table = (\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {count} / {errors}\n \n {service}\n \n {round2(time / 1000 / count)} ms
\n {time / 1000} ms ({round2(percent)} %)\n {operation}\n {selfTime / 1000} ms ({round2(percentSelfTime)} %)\n
\n );\n const popoverContent =
{table}
;\n\n return (\n \n {table}\n \n );\n }\n}\n\nexport function getNodeRenderer(mode: string) {\n return function drawNode(vertex: TDagVertex) {\n const { data, operation, service } = vertex.data;\n return ;\n };\n}\n\nexport function getNodeFindEmphasisRenderer(uiFindVertexKeys: Set | null | undefined) {\n return function renderFindEmphasis(lv: TLayoutVertex>) {\n if (!uiFindVertexKeys || !uiFindVertexKeys.has(lv.vertex.key)) {\n return null;\n }\n return ;\n };\n}\n\nexport function renderNodeVectorBorder(lv: TLayoutVertex>) {\n return (\n \n );\n}\n","// Copyright (c) 2018 The Jaeger Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Card, Icon, Button, Tooltip } from 'antd';\nimport cx from 'classnames';\nimport { Digraph, LayoutManager } from '@jaegertracing/plexus';\nimport cacheAs from '@jaegertracing/plexus/lib/cacheAs';\n\nimport {\n getNodeRenderer,\n getNodeFindEmphasisRenderer,\n renderNodeVectorBorder,\n MODE_SERVICE,\n MODE_TIME,\n MODE_SELFTIME,\n HELP_TABLE,\n} from './OpNode';\nimport { TEv, TSumSpan } from './types';\nimport TDagVertex from '../../../model/trace-dag/types/TDagVertex';\nimport { TNil } from '../../../types';\n\nimport './TraceGraph.css';\n\ntype Props = {\n headerHeight: number;\n ev?: TEv | TNil;\n uiFind: string | TNil;\n uiFindVertexKeys: Set | TNil;\n};\ntype State = {\n showHelp: boolean;\n mode: string;\n};\n\nconst { classNameIsSmall, scaleOpacity, scaleStrokeOpacity } = Digraph.propsFactories;\n\nexport function setOnEdgePath(e: any) {\n return e.followsFrom ? { strokeDasharray: 4 } : {};\n}\n\nconst HELP_CONTENT = (\n
\n {HELP_TABLE}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n ServiceColored by service
\n \n TimeColored by total time
\n \n SelftimeColored by self time
\n
\n
\n \n \n \n ChildOf\n \n \n \n FollowsFrom\n \n \n
\n
\n);\n\nexport default class TraceGraph extends React.PureComponent {\n state: State;\n\n cache: any;\n\n layoutManager: LayoutManager;\n\n static defaultProps = {\n ev: null,\n };\n\n constructor(props: Props) {\n super(props);\n this.state = {\n showHelp: false,\n mode: MODE_SERVICE,\n };\n this.layoutManager = new LayoutManager({ useDotEdges: true, splines: 'polyline' });\n }\n\n componentWillUnmount() {\n this.layoutManager.stopAndRelease();\n }\n\n toggleNodeMode(newMode: string) {\n this.setState({ mode: newMode });\n }\n\n showHelp = () => {\n this.setState({ showHelp: true });\n };\n\n closeSidebar = () => {\n this.setState({ showHelp: false });\n };\n\n render() {\n const { ev, headerHeight, uiFind, uiFindVertexKeys } = this.props;\n const { showHelp, mode } = this.state;\n if (!ev) {\n return

No trace found

;\n }\n\n const wrapperClassName = cx('TraceGraph--graphWrapper', { 'is-uiFind-mode': uiFind });\n\n return (\n
\n >\n minimap\n zoom\n className=\"TraceGraph--dag\"\n minimapClassName=\"u-miniMap\"\n layoutManager={this.layoutManager}\n measurableNodesKey=\"nodes\"\n layers={[\n {\n key: 'node-find-emphasis',\n layerType: 'svg',\n renderNode: getNodeFindEmphasisRenderer(uiFindVertexKeys),\n },\n {\n key: 'edges',\n edges: true,\n layerType: 'svg',\n defs: [{ localId: 'arrow' }],\n markerEndId: 'arrow',\n setOnContainer: [scaleOpacity, scaleStrokeOpacity],\n setOnEdge: setOnEdgePath,\n },\n {\n key: 'nodes-borders',\n layerType: 'svg',\n setOnContainer: scaleStrokeOpacity,\n renderNode: renderNodeVectorBorder,\n },\n {\n key: 'nodes',\n layerType: 'html',\n measurable: true,\n renderNode: cacheAs(`trace-graph/nodes/render/${mode}`, getNodeRenderer(mode)),\n },\n ]}\n setOnGraph={classNameIsSmall}\n edges={ev.edges}\n vertices={ev.vertices}\n />\n \n Experimental\n \n
\n
    \n
  • \n \n
  • \n
  • \n \n this.toggleNodeMode(MODE_SERVICE)}\n >\n S\n \n \n
  • \n
  • \n \n this.toggleNodeMode(MODE_TIME)}\n >\n T\n \n \n
  • \n
  • \n \n this.toggleNodeMode(MODE_SELFTIME)}\n >\n ST\n \n \n
  • \n
\n {showHelp && (\n \n \n \n }\n >\n {HELP_CONTENT}\n \n )}\n
\n
\n );\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport const OPEN = 'open';\nexport const CLOSE = 'close';\n\nexport function getToggleValue(value: any) {\n return value ? CLOSE : OPEN;\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { getToggleValue } from '../../../utils/tracking/common';\nimport { trackEvent } from '../../../utils/tracking';\n\n// export for tests\nexport const CATEGORY_ALT_VIEW = 'jaeger/ux/trace/alt-view';\nexport const CATEGORY_SLIM_HEADER = 'jaeger/ux/trace/slim-header';\n\n// export for tests\nexport const ACTION_GANTT = 'gantt';\nexport const ACTION_GRAPH = 'graph';\nexport const ACTION_JSON = 'json';\nexport const ACTION_RAW_JSON = 'rawJson';\n\n// use a closure instead of bind to prevent forwarding any arguments to trackEvent()\nexport const trackGanttView = () => trackEvent(CATEGORY_ALT_VIEW, ACTION_GANTT);\nexport const trackGraphView = () => trackEvent(CATEGORY_ALT_VIEW, ACTION_GRAPH);\nexport const trackJsonView = () => trackEvent(CATEGORY_ALT_VIEW, ACTION_JSON);\nexport const trackRawJsonView = () => trackEvent(CATEGORY_ALT_VIEW, ACTION_RAW_JSON);\n\nexport const trackSlimHeaderToggle = (isOpen: boolean) =>\n trackEvent(CATEGORY_SLIM_HEADER, getToggleValue(isOpen));\n","// Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Button, Dropdown, Icon, Menu } from 'antd';\nimport { Link } from 'react-router-dom';\n\nimport { trackGanttView, trackGraphView, trackJsonView, trackRawJsonView } from './TracePageHeader.track';\nimport prefixUrl from '../../../utils/prefix-url';\n\ntype Props = {\n onTraceGraphViewClicked: () => void;\n traceGraphView: boolean;\n traceID: string;\n};\n\nexport default function AltViewOptions(props: Props) {\n const { onTraceGraphViewClicked, traceGraphView, traceID } = props;\n const handleToggleView = () => {\n if (traceGraphView) trackGanttView();\n else trackGraphView();\n onTraceGraphViewClicked();\n };\n const menu = (\n \n \n \n {traceGraphView ? 'Trace Timeline' : 'Trace Graph'}\n \n \n \n \n Trace JSON\n \n \n \n \n Trace JSON (unadjusted)\n \n \n \n );\n return (\n \n \n \n );\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { OPEN } from '../../../utils/tracking/common';\nimport { trackEvent } from '../../../utils/tracking';\n\nconst CATEGORY = 'jaeger/ux/trace/kbd-modal';\n\nexport default trackEvent.bind(null, CATEGORY, OPEN);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Button, Modal, Table } from 'antd';\n\nimport keyboardMappings from '../keyboard-mappings';\nimport track from './KeyboardShortcutsHelp.track';\n\nimport './KeyboardShortcutsHelp.css';\n\ntype Props = {\n className: string;\n};\n\ntype State = {\n visible: boolean;\n};\n\nconst { Column } = Table;\n\nconst SYMBOL_CONV: Record = {\n up: '↑',\n right: '→',\n down: '↓',\n left: '←',\n shift: '⇧',\n};\n\nconst ODD_ROW_CLASS = 'KeyboardShortcutsHelp--oddRow';\n\nfunction convertKeys(keyConfig: string | string[]): string[][] {\n const config = Array.isArray(keyConfig) ? keyConfig : [keyConfig];\n return config.map(str => str.split('+').map(part => SYMBOL_CONV[part] || part.toUpperCase()));\n}\n\nconst padLeft = (text: string) => {text};\nconst padRight = (text: string) => {text};\nconst getRowClass = (_: any, index: number) => (index % 2 > 0 ? ODD_ROW_CLASS : '');\n\nlet kbdTable: React.ReactNode | null = null;\n\nfunction getHelpModal() {\n if (kbdTable) {\n return kbdTable;\n }\n const data: { key: string; kbds: any; description: string }[] = [];\n Object.keys(keyboardMappings).forEach(handle => {\n const { binding, label } = keyboardMappings[handle];\n const keyConfigs = convertKeys(binding);\n data.push(\n ...keyConfigs.map(config => ({\n key: String(config),\n kbds: {config.join(' ')},\n description: label,\n }))\n );\n });\n\n kbdTable = (\n \n \n \n \n );\n return kbdTable;\n}\n\nexport default class KeyboardShortcutsHelp extends React.PureComponent {\n state = {\n visible: false,\n };\n\n onCtaClicked = () => {\n track();\n this.setState({ visible: true });\n };\n\n onCloserClicked = () => this.setState({ visible: false });\n\n render() {\n const { className } = this.props;\n return (\n \n \n \n {getHelpModal()}\n \n \n );\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { TNil } from '../../../../types';\n\n// exported for tests\nexport const BG_COLOR = '#fff';\nexport const ITEM_ALPHA = 0.8;\nexport const MIN_ITEM_HEIGHT = 2;\nexport const MAX_TOTAL_HEIGHT = 200;\nexport const MIN_ITEM_WIDTH = 10;\nexport const MIN_TOTAL_HEIGHT = 60;\nexport const MAX_ITEM_HEIGHT = 6;\n\nexport default function renderIntoCanvas(\n canvas: HTMLCanvasElement,\n items: { valueWidth: number; valueOffset: number; serviceName: string }[],\n totalValueWidth: number,\n getFillColor: (serviceName: string) => [number, number, number]\n) {\n const fillCache: Map = new Map();\n const cHeight =\n items.length < MIN_TOTAL_HEIGHT ? MIN_TOTAL_HEIGHT : Math.min(items.length, MAX_TOTAL_HEIGHT);\n const cWidth = window.innerWidth * 2;\n // eslint-disable-next-line no-param-reassign\n canvas.width = cWidth;\n // eslint-disable-next-line no-param-reassign\n canvas.height = cHeight;\n const itemHeight = Math.min(MAX_ITEM_HEIGHT, Math.max(MIN_ITEM_HEIGHT, cHeight / items.length));\n const itemYChange = cHeight / items.length;\n\n const ctx = canvas.getContext('2d', { alpha: false }) as CanvasRenderingContext2D;\n ctx.fillStyle = BG_COLOR;\n ctx.fillRect(0, 0, cWidth, cHeight);\n for (let i = 0; i < items.length; i++) {\n const { valueWidth, valueOffset, serviceName } = items[i];\n const x = (valueOffset / totalValueWidth) * cWidth;\n let width = (valueWidth / totalValueWidth) * cWidth;\n if (width < MIN_ITEM_WIDTH) {\n width = MIN_ITEM_WIDTH;\n }\n let fillStyle = fillCache.get(serviceName);\n if (!fillStyle) {\n fillStyle = `rgba(${getFillColor(serviceName)\n .concat(ITEM_ALPHA)\n .join()})`;\n fillCache.set(serviceName, fillStyle);\n }\n ctx.fillStyle = fillStyle;\n ctx.fillRect(x, i * itemYChange, width, itemHeight);\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\n\nimport renderIntoCanvas from './render-into-canvas';\nimport colorGenerator from '../../../../utils/color-generator';\nimport { TNil } from '../../../../types';\n\nimport './CanvasSpanGraph.css';\n\ntype CanvasSpanGraphProps = {\n items: { valueWidth: number; valueOffset: number; serviceName: string }[];\n valueWidth: number;\n};\n\nconst getColor = (hex: string) => colorGenerator.getRgbColorByKey(hex);\n\nexport default class CanvasSpanGraph extends React.PureComponent {\n _canvasElm: HTMLCanvasElement | TNil;\n\n constructor(props: CanvasSpanGraphProps) {\n super(props);\n this._canvasElm = undefined;\n }\n\n componentDidMount() {\n this._draw();\n }\n\n componentDidUpdate() {\n this._draw();\n }\n\n _setCanvasRef = (elm: HTMLCanvasElement | TNil) => {\n this._canvasElm = elm;\n };\n\n _draw() {\n if (this._canvasElm) {\n const { valueWidth: totalValueWidth, items } = this.props;\n renderIntoCanvas(this._canvasElm, items, totalValueWidth, getColor);\n }\n }\n\n render() {\n return ;\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React from 'react';\n\nimport { formatDuration } from '../../../../utils/date';\n\nimport './TickLabels.css';\n\ntype TickLabelsProps = {\n numTicks: number;\n duration: number;\n};\n\nexport default function TickLabels(props: TickLabelsProps) {\n const { numTicks, duration } = props;\n\n const ticks = [];\n for (let i = 0; i < numTicks + 1; i++) {\n const portion = i / numTicks;\n const style = portion === 1 ? { right: '0%' } : { left: `${portion * 100}%` };\n ticks.push(\n
\n {formatDuration(duration * portion)}\n
\n );\n }\n\n return
{ticks}
;\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React from 'react';\n\nimport './GraphTicks.css';\n\ntype GraphTicksProps = {\n numTicks: number;\n};\n\nexport default function GraphTicks(props: GraphTicksProps) {\n const { numTicks } = props;\n const ticks = [];\n // i starts at 1, limit is `i < numTicks` so the first and last ticks aren't drawn\n for (let i = 1; i < numTicks; i++) {\n const x = `${(i / numTicks) * 100}%`;\n ticks.push();\n }\n\n return (\n \n {ticks}\n \n );\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React from 'react';\nimport cx from 'classnames';\n\nimport './Scrubber.css';\n\ntype ScrubberProps = {\n isDragging: boolean;\n position: number;\n onMouseDown: (evt: React.MouseEvent) => void;\n onMouseEnter: (evt: React.MouseEvent) => void;\n onMouseLeave: (evt: React.MouseEvent) => void;\n};\n\nexport default function Scrubber({\n isDragging,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n position,\n}: ScrubberProps) {\n const xPercent = `${position * 100}%`;\n const className = cx('Scrubber', { isDragging });\n return (\n \n \n {/* handleExpansion is only visible when `isDragging` is true */}\n \n \n \n \n \n );\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Button } from 'antd';\nimport cx from 'classnames';\nimport * as React from 'react';\n\nimport GraphTicks from './GraphTicks';\nimport Scrubber from './Scrubber';\nimport { TUpdateViewRangeTimeFunction, IViewRange, ViewRangeTimeUpdate } from '../../types';\nimport { TNil } from '../../../../types';\nimport DraggableManager, {\n DraggableBounds,\n DraggingUpdate,\n EUpdateTypes,\n} from '../../../../utils/DraggableManager';\n\nimport './ViewingLayer.css';\n\ntype ViewingLayerProps = {\n height: number;\n numTicks: number;\n updateViewRangeTime: TUpdateViewRangeTimeFunction;\n updateNextViewRangeTime: (update: ViewRangeTimeUpdate) => void;\n viewRange: IViewRange;\n};\n\ntype ViewingLayerState = {\n /**\n * Cursor line should not be drawn when the mouse is over the scrubber handle.\n */\n preventCursorLine: boolean;\n};\n\n/**\n * Designate the tags for the different dragging managers. Exported for tests.\n */\nexport const dragTypes = {\n /**\n * Tag for dragging the right scrubber, e.g. end of the current view range.\n */\n SHIFT_END: 'SHIFT_END',\n /**\n * Tag for dragging the left scrubber, e.g. start of the current view range.\n */\n SHIFT_START: 'SHIFT_START',\n /**\n * Tag for dragging a new view range.\n */\n REFRAME: 'REFRAME',\n};\n\n/**\n * Returns the layout information for drawing the view-range differential, e.g.\n * show what will change when the mouse is released. Basically, this is the\n * difference from the start of the drag to the current position.\n *\n * @returns {{ x: string, width: string, leadginX: string }}\n */\nfunction getNextViewLayout(start: number, position: number) {\n const [left, right] = start < position ? [start, position] : [position, start];\n return {\n x: `${left * 100}%`,\n width: `${(right - left) * 100}%`,\n leadingX: `${position * 100}%`,\n };\n}\n\n/**\n * `ViewingLayer` is rendered on top of the Canvas rendering of the minimap and\n * handles showing the current view range and handles mouse UX for modifying it.\n */\nexport default class ViewingLayer extends React.PureComponent {\n state: ViewingLayerState;\n\n _root: Element | TNil;\n\n /**\n * `_draggerReframe` handles clicking and dragging on the `ViewingLayer` to\n * redefined the view range.\n */\n _draggerReframe: DraggableManager;\n\n /**\n * `_draggerStart` handles dragging the left scrubber to adjust the start of\n * the view range.\n */\n _draggerStart: DraggableManager;\n\n /**\n * `_draggerEnd` handles dragging the right scrubber to adjust the end of\n * the view range.\n */\n _draggerEnd: DraggableManager;\n\n constructor(props: ViewingLayerProps) {\n super(props);\n\n this._draggerReframe = new DraggableManager({\n getBounds: this._getDraggingBounds,\n onDragEnd: this._handleReframeDragEnd,\n onDragMove: this._handleReframeDragUpdate,\n onDragStart: this._handleReframeDragUpdate,\n onMouseMove: this._handleReframeMouseMove,\n onMouseLeave: this._handleReframeMouseLeave,\n tag: dragTypes.REFRAME,\n });\n\n this._draggerStart = new DraggableManager({\n getBounds: this._getDraggingBounds,\n onDragEnd: this._handleScrubberDragEnd,\n onDragMove: this._handleScrubberDragUpdate,\n onDragStart: this._handleScrubberDragUpdate,\n onMouseEnter: this._handleScrubberEnterLeave,\n onMouseLeave: this._handleScrubberEnterLeave,\n tag: dragTypes.SHIFT_START,\n });\n\n this._draggerEnd = new DraggableManager({\n getBounds: this._getDraggingBounds,\n onDragEnd: this._handleScrubberDragEnd,\n onDragMove: this._handleScrubberDragUpdate,\n onDragStart: this._handleScrubberDragUpdate,\n onMouseEnter: this._handleScrubberEnterLeave,\n onMouseLeave: this._handleScrubberEnterLeave,\n tag: dragTypes.SHIFT_END,\n });\n\n this._root = undefined;\n this.state = {\n preventCursorLine: false,\n };\n }\n\n componentWillUnmount() {\n this._draggerReframe.dispose();\n this._draggerEnd.dispose();\n this._draggerStart.dispose();\n }\n\n _setRoot = (elm: SVGElement | TNil) => {\n this._root = elm;\n };\n\n _getDraggingBounds = (tag: string | TNil): DraggableBounds => {\n if (!this._root) {\n throw new Error('invalid state');\n }\n const { left: clientXLeft, width } = this._root.getBoundingClientRect();\n const [viewStart, viewEnd] = this.props.viewRange.time.current;\n let maxValue = 1;\n let minValue = 0;\n if (tag === dragTypes.SHIFT_START) {\n maxValue = viewEnd;\n } else if (tag === dragTypes.SHIFT_END) {\n minValue = viewStart;\n }\n return { clientXLeft, maxValue, minValue, width };\n };\n\n _handleReframeMouseMove = ({ value }: DraggingUpdate) => {\n this.props.updateNextViewRangeTime({ cursor: value });\n };\n\n _handleReframeMouseLeave = () => {\n this.props.updateNextViewRangeTime({ cursor: null });\n };\n\n _handleReframeDragUpdate = ({ value }: DraggingUpdate) => {\n const shift = value;\n const { time } = this.props.viewRange;\n const anchor = time.reframe ? time.reframe.anchor : shift;\n const update = { reframe: { anchor, shift } };\n this.props.updateNextViewRangeTime(update);\n };\n\n _handleReframeDragEnd = ({ manager, value }: DraggingUpdate) => {\n const { time } = this.props.viewRange;\n const anchor = time.reframe ? time.reframe.anchor : value;\n const [start, end] = value < anchor ? [value, anchor] : [anchor, value];\n manager.resetBounds();\n this.props.updateViewRangeTime(start, end, 'minimap');\n };\n\n _handleScrubberEnterLeave = ({ type }: DraggingUpdate) => {\n const preventCursorLine = type === EUpdateTypes.MouseEnter;\n this.setState({ preventCursorLine });\n };\n\n _handleScrubberDragUpdate = ({ event, tag, type, value }: DraggingUpdate) => {\n if (type === EUpdateTypes.DragStart) {\n event.stopPropagation();\n }\n if (tag === dragTypes.SHIFT_START) {\n this.props.updateNextViewRangeTime({ shiftStart: value });\n } else if (tag === dragTypes.SHIFT_END) {\n this.props.updateNextViewRangeTime({ shiftEnd: value });\n }\n };\n\n _handleScrubberDragEnd = ({ manager, tag, value }: DraggingUpdate) => {\n const [viewStart, viewEnd] = this.props.viewRange.time.current;\n let update: [number, number];\n if (tag === dragTypes.SHIFT_START) {\n update = [value, viewEnd];\n } else if (tag === dragTypes.SHIFT_END) {\n update = [viewStart, value];\n } else {\n // to satisfy flow\n throw new Error('bad state');\n }\n manager.resetBounds();\n this.setState({ preventCursorLine: false });\n this.props.updateViewRangeTime(update[0], update[1], 'minimap');\n };\n\n /**\n * Resets the zoom to fully zoomed out.\n */\n _resetTimeZoomClickHandler = () => {\n this.props.updateViewRangeTime(0, 1);\n };\n\n /**\n * Renders the difference between where the drag started and the current\n * position, e.g. the red or blue highlight.\n *\n * @returns React.Node[]\n */\n _getMarkers(from: number, to: number, isShift: boolean) {\n const layout = getNextViewLayout(from, to);\n const cls = cx({\n isShiftDrag: isShift,\n isReframeDrag: !isShift,\n });\n return [\n ,\n ,\n ];\n }\n\n render() {\n const { height, viewRange, numTicks } = this.props;\n const { preventCursorLine } = this.state;\n const { current, cursor, shiftStart, shiftEnd, reframe } = viewRange.time;\n const haveNextTimeRange = shiftStart != null || shiftEnd != null || reframe != null;\n const [viewStart, viewEnd] = current;\n let leftInactive = 0;\n if (viewStart) {\n leftInactive = viewStart * 100;\n }\n let rightInactive = 100;\n if (viewEnd) {\n rightInactive = 100 - viewEnd * 100;\n }\n let cursorPosition: string | undefined;\n if (!haveNextTimeRange && cursor != null && !preventCursorLine) {\n cursorPosition = `${cursor * 100}%`;\n }\n\n return (\n
\n {(viewStart !== 0 || viewEnd !== 1) && (\n \n Reset Selection\n \n )}\n \n {leftInactive > 0 && (\n \n )}\n {rightInactive > 0 && (\n \n )}\n \n {cursorPosition && (\n \n )}\n {shiftStart != null && this._getMarkers(viewStart, shiftStart, true)}\n {shiftEnd != null && this._getMarkers(viewEnd, shiftEnd, true)}\n \n \n {reframe != null && this._getMarkers(reframe.anchor, reframe.shift, false)}\n \n {/* fullOverlay updates the mouse cursor blocks mouse events */}\n {haveNextTimeRange &&
}\n
\n );\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\n\nimport CanvasSpanGraph from './CanvasSpanGraph';\nimport TickLabels from './TickLabels';\nimport ViewingLayer from './ViewingLayer';\nimport { TUpdateViewRangeTimeFunction, IViewRange, ViewRangeTimeUpdate } from '../../types';\nimport { Span, Trace } from '../../../../types/trace';\n\nconst DEFAULT_HEIGHT = 60;\nconst TIMELINE_TICK_INTERVAL = 4;\n\ntype SpanGraphProps = {\n height?: number;\n trace: Trace;\n viewRange: IViewRange;\n updateViewRangeTime: TUpdateViewRangeTimeFunction;\n updateNextViewRangeTime: (nextUpdate: ViewRangeTimeUpdate) => void;\n};\n\n/**\n * Store `items` in state so they are not regenerated every render. Otherwise,\n * the canvas graph will re-render itself every time.\n */\ntype SpanGraphState = {\n items: {\n valueOffset: number;\n valueWidth: number;\n serviceName: string;\n }[];\n};\n\nfunction getItem(span: Span) {\n return {\n valueOffset: span.relativeStartTime,\n valueWidth: span.duration,\n serviceName: span.process.serviceName,\n };\n}\n\nexport default class SpanGraph extends React.PureComponent {\n state: SpanGraphState;\n\n static defaultProps = {\n height: DEFAULT_HEIGHT,\n };\n\n constructor(props: SpanGraphProps) {\n super(props);\n const { trace } = props;\n this.state = {\n items: trace ? trace.spans.map(getItem) : [],\n };\n }\n\n componentWillReceiveProps(nextProps: SpanGraphProps) {\n const { trace } = nextProps;\n if (this.props.trace !== trace) {\n this.setState({\n items: trace ? trace.spans.map(getItem) : [],\n });\n }\n }\n\n render() {\n const { height, trace, viewRange, updateNextViewRangeTime, updateViewRangeTime } = this.props;\n if (!trace) {\n return
;\n }\n const { items } = this.state;\n return (\n
\n \n
\n \n \n
\n
\n );\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// eslint-disable-next-line import/prefer-default-export\nexport const IN_TRACE_SEARCH = 'in-trace-search';\n","// Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Button, Input } from 'antd';\nimport cx from 'classnames';\nimport IoAndroidLocate from 'react-icons/lib/io/android-locate';\n\nimport * as markers from './TracePageSearchBar.markers';\nimport { trackFilter } from '../index.track';\nimport UiFindInput from '../../common/UiFindInput';\nimport { TNil } from '../../../types';\n\nimport './TracePageSearchBar.css';\n\ntype TracePageSearchBarProps = {\n textFilter: string | TNil;\n prevResult: () => void;\n nextResult: () => void;\n clearSearch: () => void;\n focusUiFindMatches: () => void;\n resultCount: number;\n navigable: boolean;\n};\n\nexport function TracePageSearchBarFn(props: TracePageSearchBarProps & { forwardedRef: React.Ref }) {\n const {\n clearSearch,\n focusUiFindMatches,\n forwardedRef,\n navigable,\n nextResult,\n prevResult,\n resultCount,\n textFilter,\n } = props;\n\n const count = textFilter ? {resultCount} : null;\n\n const btnClass = cx('TracePageSearchBar--btn', { 'is-disabled': !textFilter });\n const uiFindInputInputProps = {\n 'data-test': markers.IN_TRACE_SEARCH,\n className: 'TracePageSearchBar--bar ub-flex-auto',\n name: 'search',\n suffix: count,\n };\n\n return (\n
\n {/* style inline because compact overwrites the display */}\n \n \n {navigable && (\n <>\n \n \n \n \n \n \n )}\n \n \n
\n );\n}\n\nexport default React.forwardRef((props: TracePageSearchBarProps, ref: React.Ref) => (\n \n));\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Divider } from 'antd';\n\nimport './LabeledList.css';\n\ntype LabeledListProps = {\n className?: string;\n dividerClassName?: string;\n items: { key: string; label: React.ReactNode; value: React.ReactNode }[];\n};\n\nexport default function LabeledList(props: LabeledListProps) {\n const { className, dividerClassName, items } = props;\n return (\n
    \n {items.map(({ key, label, value }, i) => {\n const divider = i < items.length - 1 && (\n
  • \n \n
  • \n );\n return [\n
  • \n {label}\n {value}\n
  • ,\n divider,\n ];\n })}\n
\n );\n}\n","// Copyright (c) 2020 The Jaeger Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Span } from '../types/trace';\n\ntype spansDict = { [index: string]: Span };\n\n// eslint-disable-next-line import/prefer-default-export\nexport function getTraceName(spans: Span[]) {\n const allTraceSpans: spansDict = spans.reduce((dict, span) => ({ ...dict, [span.spanID]: span }), {});\n const rootSpan = spans\n .filter(sp => {\n if (!sp.references || !sp.references.length) {\n return true;\n }\n const parentIDs = sp.references.filter(r => r.traceID === sp.traceID).map(r => r.spanID);\n\n // returns true if no parent from this trace found\n return !parentIDs.some(pID => Boolean(allTraceSpans[pID]));\n })\n .sort((sp1, sp2) => {\n const sp1ParentsNum = sp1.references ? sp1.references.length : 0;\n const sp2ParentsNum = sp2.references ? sp2.references.length : 0;\n\n return sp1ParentsNum - sp2ParentsNum || sp1.startTime - sp2.startTime;\n })[0];\n\n return rootSpan ? `${rootSpan.process.serviceName}: ${rootSpan.operationName}` : '';\n}\n","// Copyright (c) 2017 The Jaeger Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Span } from '../types/trace';\n\n/**\n * Searches the span.references to find 'CHILD_OF' reference type or returns null.\n * @param {Span} span The span whose parent is to be returned.\n * @return {Span|null} The parent span if there is one, null otherwise.\n */\n// eslint-disable-next-line import/prefer-default-export\nexport function getParent(span: Span) {\n const parentRef = span.references ? span.references.find(ref => ref.refType === 'CHILD_OF') : null;\n return parentRef ? parentRef.span : null;\n}\n","// Copyright (c) 2017 The Jaeger Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport _uniq from 'lodash/uniq';\nimport memoize from 'lru-memoize';\nimport { getConfigValue } from '../utils/config/get-config';\nimport { getParent } from './span';\nimport { TNil } from '../types';\nimport { Span, Link, KeyValuePair, Trace } from '../types/trace';\n\nconst parameterRegExp = /#\\{([^{}]*)\\}/g;\n\ntype ProcessedTemplate = {\n parameters: string[];\n template: (template: { [key: string]: any }) => string;\n};\n\ntype ProcessedLinkPattern = {\n object: any;\n type: (link: string) => boolean;\n key: (link: string) => boolean;\n value: (value: any) => boolean;\n url: ProcessedTemplate;\n text: ProcessedTemplate;\n parameters: string[];\n};\n\ntype TLinksRV = { url: string; text: string }[];\n\nfunction getParamNames(str: string) {\n const names = new Set();\n str.replace(parameterRegExp, (match, name) => {\n names.add(name);\n return match;\n });\n return Array.from(names);\n}\n\nfunction stringSupplant(str: string, encodeFn: (unencoded: any) => string, map: Record) {\n return str.replace(parameterRegExp, (_, name) => {\n const value = map[name];\n return value == null ? '' : encodeFn(value);\n });\n}\n\nexport function processTemplate(template: any, encodeFn: (unencoded: any) => string): ProcessedTemplate {\n if (typeof template !== 'string') {\n /*\n\n // kept on ice until #123 is implemented:\n if (template && Array.isArray(template.parameters) && (typeof template.template === 'function')) {\n return template;\n }\n\n */\n throw new Error('Invalid template');\n }\n return {\n parameters: getParamNames(template),\n template: stringSupplant.bind(null, template, encodeFn),\n };\n}\n\nexport function createTestFunction(entry: any) {\n if (typeof entry === 'string') {\n return (arg: any) => arg === entry;\n }\n if (Array.isArray(entry)) {\n return (arg: any) => entry.indexOf(arg) > -1;\n }\n /*\n\n // kept on ice until #123 is implemented:\n if (entry instanceof RegExp) {\n return (arg: any) => entry.test(arg);\n }\n if (typeof entry === 'function') {\n return entry;\n }\n\n */\n if (entry == null) {\n return () => true;\n }\n throw new Error(`Invalid value: ${entry}`);\n}\n\nconst identity = (a: any): typeof a => a;\n\nexport function processLinkPattern(pattern: any): ProcessedLinkPattern | TNil {\n try {\n const url = processTemplate(pattern.url, encodeURIComponent);\n const text = processTemplate(pattern.text, identity);\n return {\n object: pattern,\n type: createTestFunction(pattern.type),\n key: createTestFunction(pattern.key),\n value: createTestFunction(pattern.value),\n url,\n text,\n parameters: _uniq(url.parameters.concat(text.parameters)),\n };\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(`Ignoring invalid link pattern: ${error}`, pattern);\n return null;\n }\n}\n\nexport function getParameterInArray(name: string, array: KeyValuePair[]) {\n if (array) {\n return array.find(entry => entry.key === name);\n }\n return undefined;\n}\n\nexport function getParameterInAncestor(name: string, span: Span) {\n let currentSpan: Span | TNil = span;\n while (currentSpan) {\n const result =\n getParameterInArray(name, currentSpan.tags) || getParameterInArray(name, currentSpan.process.tags);\n if (result) {\n return result;\n }\n currentSpan = getParent(currentSpan);\n }\n return undefined;\n}\n\nfunction callTemplate(template: ProcessedTemplate, data: any) {\n return template.template(data);\n}\n\nexport function computeTraceLink(linkPatterns: ProcessedLinkPattern[], trace: Trace) {\n const result: TLinksRV = [];\n const validKeys = (Object.keys(trace) as (keyof Trace)[]).filter(\n key => typeof trace[key] === 'string' || typeof trace[key] === 'number'\n );\n\n linkPatterns\n .filter(pattern => pattern.type('traces'))\n .forEach(pattern => {\n const parameterValues: Record = {};\n const allParameters = pattern.parameters.every(parameter => {\n const key = parameter as keyof Trace;\n if (validKeys.includes(key)) {\n // At this point is safe to access to trace object using parameter variable because\n // we validated parameter against validKeys, this implies that parameter a keyof Trace.\n parameterValues[parameter] = trace[key];\n return true;\n }\n return false;\n });\n if (allParameters) {\n result.push({\n url: callTemplate(pattern.url, parameterValues),\n text: callTemplate(pattern.text, parameterValues),\n });\n }\n });\n\n return result;\n}\n\nexport function computeLinks(\n linkPatterns: ProcessedLinkPattern[],\n span: Span,\n items: KeyValuePair[],\n itemIndex: number\n) {\n const item = items[itemIndex];\n let type = 'logs';\n const processTags = span.process.tags === items;\n if (processTags) {\n type = 'process';\n }\n const spanTags = span.tags === items;\n if (spanTags) {\n type = 'tags';\n }\n const result: { url: string; text: string }[] = [];\n linkPatterns.forEach(pattern => {\n if (pattern.type(type) && pattern.key(item.key) && pattern.value(item.value)) {\n const parameterValues: Record = {};\n const allParameters = pattern.parameters.every(parameter => {\n let entry = getParameterInArray(parameter, items);\n if (!entry && !processTags) {\n // do not look in ancestors for process tags because the same object may appear in different places in the hierarchy\n // and the cache in getLinks uses that object as a key\n entry = getParameterInAncestor(parameter, span);\n }\n if (entry) {\n parameterValues[parameter] = entry.value;\n return true;\n }\n // eslint-disable-next-line no-console\n console.warn(\n `Skipping link pattern, missing parameter ${parameter} for key ${item.key} in ${type}.`,\n pattern.object\n );\n return false;\n });\n if (allParameters) {\n result.push({\n url: callTemplate(pattern.url, parameterValues),\n text: callTemplate(pattern.text, parameterValues),\n });\n }\n }\n });\n return result;\n}\n\nexport function createGetLinks(linkPatterns: ProcessedLinkPattern[], cache: WeakMap) {\n return (span: Span, items: KeyValuePair[], itemIndex: number) => {\n if (linkPatterns.length === 0) {\n return [];\n }\n const item = items[itemIndex];\n let result = cache.get(item);\n if (!result) {\n result = computeLinks(linkPatterns, span, items, itemIndex);\n cache.set(item, result);\n }\n return result;\n };\n}\n\nconst processedLinks: ProcessedLinkPattern[] = (getConfigValue('linkPatterns') || [])\n .map(processLinkPattern)\n .filter(Boolean);\n\nexport const getTraceLinks: (trace: Trace | undefined) => TLinksRV = memoize(10)(\n (trace: Trace | undefined) => {\n const result: TLinksRV = [];\n if (!trace) return result;\n return computeTraceLink(processedLinks, trace);\n }\n);\n\nexport default createGetLinks(processedLinks, new WeakMap());\n","// Copyright (c) 2019 The Jaeger Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Dropdown, Menu } from 'antd';\nimport * as React from 'react';\nimport { Link } from '../../types/trace';\nimport NewWindowIcon from './NewWindowIcon';\n\ntype ExternalLinksProps = {\n links: Link[];\n};\n\nconst LinkValue = (props: {\n href: string;\n title?: string;\n children?: React.ReactNode;\n className?: string;\n}) => (\n \n {props.children} \n \n);\n\n// export for testing\nexport const linkValueList = (links: Link[]) => (\n \n {links.map(({ text, url }, index) => (\n // `index` is necessary in the key because url can repeat\n // eslint-disable-next-line react/no-array-index-key\n \n {text}\n \n ))}\n \n);\n\nexport default function ExternalLinks(props: ExternalLinksProps) {\n const { links } = props;\n if (links.length === 1) {\n return ;\n }\n return (\n \n \n \n \n \n );\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Button, Input } from 'antd';\nimport _get from 'lodash/get';\nimport _maxBy from 'lodash/maxBy';\nimport _values from 'lodash/values';\nimport IoAndroidArrowBack from 'react-icons/lib/io/android-arrow-back';\nimport IoIosFilingOutline from 'react-icons/lib/io/ios-filing-outline';\nimport MdKeyboardArrowRight from 'react-icons/lib/md/keyboard-arrow-right';\nimport { Link } from 'react-router-dom';\n\nimport AltViewOptions from './AltViewOptions';\nimport KeyboardShortcutsHelp from './KeyboardShortcutsHelp';\nimport SpanGraph from './SpanGraph';\nimport TracePageSearchBar from './TracePageSearchBar';\nimport { TUpdateViewRangeTimeFunction, IViewRange, ViewRangeTimeUpdate } from '../types';\nimport LabeledList from '../../common/LabeledList';\nimport NewWindowIcon from '../../common/NewWindowIcon';\nimport TraceName from '../../common/TraceName';\nimport { getTraceName } from '../../../model/trace-viewer';\nimport { TNil } from '../../../types';\nimport { Trace } from '../../../types/trace';\nimport { formatDatetime, formatDuration } from '../../../utils/date';\nimport { getTraceLinks } from '../../../model/link-patterns';\n\nimport './TracePageHeader.css';\nimport ExternalLinks from '../../common/ExternalLinks';\n\ntype TracePageHeaderEmbedProps = {\n canCollapse: boolean;\n clearSearch: () => void;\n focusUiFindMatches: () => void;\n hideMap: boolean;\n hideSummary: boolean;\n linkToStandalone: string;\n nextResult: () => void;\n onArchiveClicked: () => void;\n onSlimViewClicked: () => void;\n onTraceGraphViewClicked: () => void;\n prevResult: () => void;\n resultCount: number;\n showArchiveButton: boolean;\n showShortcutsHelp: boolean;\n showStandaloneLink: boolean;\n showViewOptions: boolean;\n slimView: boolean;\n textFilter: string | TNil;\n toSearch: string | null;\n trace: Trace;\n traceGraphView: boolean;\n updateNextViewRangeTime: (update: ViewRangeTimeUpdate) => void;\n updateViewRangeTime: TUpdateViewRangeTimeFunction;\n viewRange: IViewRange;\n};\n\nexport const HEADER_ITEMS = [\n {\n key: 'timestamp',\n label: 'Trace Start',\n renderer: (trace: Trace) => {\n const dateStr = formatDatetime(trace.startTime);\n const match = dateStr.match(/^(.+)(:\\d\\d\\.\\d+)$/);\n return match ? (\n \n {match[1]}\n {match[2]}\n \n ) : (\n dateStr\n );\n },\n },\n {\n key: 'duration',\n label: 'Duration',\n renderer: (trace: Trace) => formatDuration(trace.duration),\n },\n {\n key: 'service-count',\n label: 'Services',\n renderer: (trace: Trace) => new Set(_values(trace.processes).map(p => p.serviceName)).size,\n },\n {\n key: 'depth',\n label: 'Depth',\n renderer: (trace: Trace) => _get(_maxBy(trace.spans, 'depth'), 'depth', 0) + 1,\n },\n {\n key: 'span-count',\n label: 'Total Spans',\n renderer: (trace: Trace) => trace.spans.length,\n },\n];\n\nexport function TracePageHeaderFn(props: TracePageHeaderEmbedProps & { forwardedRef: React.Ref }) {\n const {\n canCollapse,\n clearSearch,\n focusUiFindMatches,\n forwardedRef,\n hideMap,\n hideSummary,\n linkToStandalone,\n nextResult,\n onArchiveClicked,\n onSlimViewClicked,\n onTraceGraphViewClicked,\n prevResult,\n resultCount,\n showArchiveButton,\n showShortcutsHelp,\n showStandaloneLink,\n showViewOptions,\n slimView,\n textFilter,\n toSearch,\n trace,\n traceGraphView,\n updateNextViewRangeTime,\n updateViewRangeTime,\n viewRange,\n } = props;\n\n if (!trace) {\n return null;\n }\n\n const links = getTraceLinks(trace);\n\n const summaryItems =\n !hideSummary &&\n !slimView &&\n HEADER_ITEMS.map(item => {\n const { renderer, ...rest } = item;\n return { ...rest, value: renderer(trace) };\n });\n\n const title = (\n

\n {' '}\n {trace.traceID.slice(0, 7)}\n

\n );\n\n return (\n
\n
\n {toSearch && (\n \n \n \n )}\n {links && links.length > 0 && }\n {canCollapse ? (\n \n \n {title}\n \n ) : (\n title\n )}\n \n {showShortcutsHelp && }\n {showViewOptions && (\n \n )}\n {showArchiveButton && (\n \n )}\n {showStandaloneLink && (\n \n \n \n )}\n
\n {summaryItems && }\n {!hideMap && !slimView && (\n \n )}\n
\n );\n}\n\nexport default React.forwardRef((props: TracePageHeaderEmbedProps, ref: React.Ref) => (\n \n));\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Log } from '../../../../types/trace';\n\n/**\n * Which items of a {@link SpanDetail} component are expanded.\n */\nexport default class DetailState {\n isTagsOpen: boolean;\n isProcessOpen: boolean;\n logs: { isOpen: boolean; openedItems: Set };\n isWarningsOpen: boolean;\n isReferencesOpen: boolean;\n\n constructor(oldState?: DetailState) {\n const {\n isTagsOpen,\n isProcessOpen,\n isReferencesOpen,\n isWarningsOpen,\n logs,\n }: DetailState | Record = oldState || {};\n this.isTagsOpen = Boolean(isTagsOpen);\n this.isProcessOpen = Boolean(isProcessOpen);\n this.isReferencesOpen = Boolean(isReferencesOpen);\n this.isWarningsOpen = Boolean(isWarningsOpen);\n this.logs = {\n isOpen: Boolean(logs && logs.isOpen),\n openedItems: logs && logs.openedItems ? new Set(logs.openedItems) : new Set(),\n };\n }\n\n toggleTags() {\n const next = new DetailState(this);\n next.isTagsOpen = !this.isTagsOpen;\n return next;\n }\n\n toggleProcess() {\n const next = new DetailState(this);\n next.isProcessOpen = !this.isProcessOpen;\n return next;\n }\n\n toggleReferences() {\n const next = new DetailState(this);\n next.isReferencesOpen = !this.isReferencesOpen;\n return next;\n }\n\n toggleWarnings() {\n const next = new DetailState(this);\n next.isWarningsOpen = !this.isWarningsOpen;\n return next;\n }\n\n toggleLogs() {\n const next = new DetailState(this);\n next.logs.isOpen = !this.logs.isOpen;\n return next;\n }\n\n toggleLogItem(logItem: Log) {\n const next = new DetailState(this);\n if (next.logs.openedItems.has(logItem)) {\n next.logs.openedItems.delete(logItem);\n } else {\n next.logs.openedItems.add(logItem);\n }\n return next;\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Action, ActionFunctionAny, createActions, handleActions } from 'redux-actions';\n\nimport DetailState from './SpanDetail/DetailState';\nimport { TNil } from '../../../types';\nimport { Log, Span, Trace } from '../../../types/trace';\nimport TTraceTimeline from '../../../types/TTraceTimeline';\nimport filterSpans from '../../../utils/filter-spans';\nimport generateActionTypes from '../../../utils/generate-action-types';\nimport guardReducer from '../../../utils/guardReducer';\nimport spanAncestorIds from '../../../utils/span-ancestor-ids';\n\n// payloads\nexport type TSpanIdLogValue = { logItem: Log; spanID: string };\nexport type TSpanIdValue = { spanID: string };\ntype TSpansValue = { spans: Span[] };\ntype TTraceUiFindValue = { trace: Trace; uiFind: string | TNil; allowHide?: boolean };\nexport type TWidthValue = { width: number };\nexport type TActionTypes =\n | TSpanIdLogValue\n | TSpanIdValue\n | TSpansValue\n | TTraceUiFindValue\n | TWidthValue\n | {};\n\ntype TTimelineViewerActions = {\n [actionName: string]: ActionFunctionAny>;\n};\n\nfunction shouldDisableCollapse(allSpans: Span[], hiddenSpansIds: Set) {\n const allParentSpans = allSpans.filter(s => s.hasChildren);\n return allParentSpans.length === hiddenSpansIds.size;\n}\n\nexport function newInitialState(): TTraceTimeline {\n return {\n childrenHiddenIDs: new Set(),\n detailStates: new Map(),\n hoverIndentGuideIds: new Set(),\n shouldScrollToFirstUiFindMatch: false,\n spanNameColumnWidth: 0.25,\n traceID: null,\n };\n}\n\nexport const actionTypes = generateActionTypes('@jaeger-ui/trace-timeline-viewer', [\n 'ADD_HOVER_INDENT_GUIDE_ID',\n 'CHILDREN_TOGGLE',\n 'CLEAR_SHOULD_SCROLL_TO_FIRST_UI_FIND_MATCH',\n 'COLLAPSE_ALL',\n 'COLLAPSE_ONE',\n 'DETAIL_TOGGLE',\n 'DETAIL_TAGS_TOGGLE',\n 'DETAIL_PROCESS_TOGGLE',\n 'DETAIL_LOGS_TOGGLE',\n 'DETAIL_LOG_ITEM_TOGGLE',\n 'DETAIL_WARNINGS_TOGGLE',\n 'DETAIL_REFERENCES_TOGGLE',\n 'EXPAND_ALL',\n 'EXPAND_ONE',\n 'FOCUS_UI_FIND_MATCHES',\n 'REMOVE_HOVER_INDENT_GUIDE_ID',\n 'SET_SPAN_NAME_COLUMN_WIDTH',\n 'SET_TRACE',\n]);\n\nconst fullActions = createActions({\n [actionTypes.ADD_HOVER_INDENT_GUIDE_ID]: (spanID: string) => ({ spanID }),\n [actionTypes.CHILDREN_TOGGLE]: (spanID: string) => ({ spanID }),\n [actionTypes.CLEAR_SHOULD_SCROLL_TO_FIRST_UI_FIND_MATCH]: () => ({}),\n [actionTypes.COLLAPSE_ALL]: (spans: Span[]) => ({ spans }),\n [actionTypes.COLLAPSE_ONE]: (spans: Span[]) => ({ spans }),\n [actionTypes.DETAIL_LOG_ITEM_TOGGLE]: (spanID: string, logItem: Log) => ({ logItem, spanID }),\n [actionTypes.DETAIL_LOGS_TOGGLE]: (spanID: string) => ({ spanID }),\n [actionTypes.EXPAND_ALL]: () => ({}),\n [actionTypes.EXPAND_ONE]: (spans: Span[]) => ({ spans }),\n [actionTypes.DETAIL_PROCESS_TOGGLE]: (spanID: string) => ({ spanID }),\n [actionTypes.DETAIL_WARNINGS_TOGGLE]: (spanID: string) => ({ spanID }),\n [actionTypes.DETAIL_REFERENCES_TOGGLE]: (spanID: string) => ({ spanID }),\n [actionTypes.DETAIL_TAGS_TOGGLE]: (spanID: string) => ({ spanID }),\n [actionTypes.DETAIL_TOGGLE]: (spanID: string) => ({ spanID }),\n [actionTypes.FOCUS_UI_FIND_MATCHES]: (trace: Trace, uiFind: string | TNil, allowHide?: boolean) => ({\n trace,\n uiFind,\n allowHide,\n }),\n [actionTypes.REMOVE_HOVER_INDENT_GUIDE_ID]: (spanID: string) => ({ spanID }),\n [actionTypes.SET_SPAN_NAME_COLUMN_WIDTH]: (width: number) => ({ width }),\n [actionTypes.SET_TRACE]: (trace: Trace, uiFind: string | TNil) => ({ trace, uiFind }),\n});\n\nexport const actions = (fullActions as any).jaegerUi.traceTimelineViewer as TTimelineViewerActions;\n\nfunction calculateFocusedFindRowStates(uiFind: string, spans: Span[], allowHide: boolean = true) {\n const spansMap = new Map();\n const childrenHiddenIDs: Set = new Set();\n const detailStates: Map = new Map();\n let shouldScrollToFirstUiFindMatch: boolean = false;\n\n spans.forEach(span => {\n spansMap.set(span.spanID, span);\n if (allowHide) {\n childrenHiddenIDs.add(span.spanID);\n }\n });\n const matchedSpanIds = filterSpans(uiFind, spans);\n if (matchedSpanIds && matchedSpanIds.size) {\n matchedSpanIds.forEach(spanID => {\n const span = spansMap.get(spanID);\n detailStates.set(spanID, new DetailState());\n spanAncestorIds(span).forEach(ancestorID => childrenHiddenIDs.delete(ancestorID));\n });\n shouldScrollToFirstUiFindMatch = true;\n }\n return {\n childrenHiddenIDs,\n detailStates,\n shouldScrollToFirstUiFindMatch,\n };\n}\n\nfunction focusUiFindMatches(state: TTraceTimeline, { uiFind, trace, allowHide }: TTraceUiFindValue) {\n if (!uiFind) return state;\n return {\n ...state,\n ...calculateFocusedFindRowStates(uiFind, trace.spans, allowHide),\n };\n}\n\nfunction clearShouldScrollToFirstUiFindMatch(state: TTraceTimeline) {\n if (state.shouldScrollToFirstUiFindMatch) {\n return { ...state, shouldScrollToFirstUiFindMatch: false };\n }\n return state;\n}\n\nfunction setTrace(state: TTraceTimeline, { uiFind, trace }: TTraceUiFindValue) {\n const { traceID, spans } = trace;\n if (traceID === state.traceID) {\n return state;\n }\n const { spanNameColumnWidth } = state;\n\n return Object.assign(\n { ...newInitialState(), spanNameColumnWidth, traceID },\n uiFind ? calculateFocusedFindRowStates(uiFind, spans) : null\n );\n}\n\nfunction setColumnWidth(state: TTraceTimeline, { width }: TWidthValue): TTraceTimeline {\n return { ...state, spanNameColumnWidth: width };\n}\n\nfunction childrenToggle(state: TTraceTimeline, { spanID }: TSpanIdValue): TTraceTimeline {\n const childrenHiddenIDs = new Set(state.childrenHiddenIDs);\n if (childrenHiddenIDs.has(spanID)) {\n childrenHiddenIDs.delete(spanID);\n } else {\n childrenHiddenIDs.add(spanID);\n }\n return { ...state, childrenHiddenIDs };\n}\n\nexport function expandAll(state: TTraceTimeline): TTraceTimeline {\n const childrenHiddenIDs = new Set();\n return { ...state, childrenHiddenIDs };\n}\n\nexport function collapseAll(state: TTraceTimeline, { spans }: TSpansValue) {\n if (shouldDisableCollapse(spans, state.childrenHiddenIDs)) {\n return state;\n }\n const childrenHiddenIDs = spans.reduce((res, s) => {\n if (s.hasChildren) {\n res.add(s.spanID);\n }\n return res;\n }, new Set());\n return { ...state, childrenHiddenIDs };\n}\n\nexport function collapseOne(state: TTraceTimeline, { spans }: TSpansValue) {\n if (shouldDisableCollapse(spans, state.childrenHiddenIDs)) {\n return state;\n }\n let nearestCollapsedAncestor: Span | undefined;\n const childrenHiddenIDs = spans.reduce((res, curSpan) => {\n if (nearestCollapsedAncestor && curSpan.depth <= nearestCollapsedAncestor.depth) {\n res.add(nearestCollapsedAncestor.spanID);\n if (curSpan.hasChildren) {\n nearestCollapsedAncestor = curSpan;\n }\n } else if (curSpan.hasChildren && !res.has(curSpan.spanID)) {\n nearestCollapsedAncestor = curSpan;\n }\n return res;\n }, new Set(state.childrenHiddenIDs));\n // The last one\n if (nearestCollapsedAncestor) {\n childrenHiddenIDs.add(nearestCollapsedAncestor.spanID);\n }\n return { ...state, childrenHiddenIDs };\n}\n\nexport function expandOne(state: TTraceTimeline, { spans }: TSpansValue) {\n if (state.childrenHiddenIDs.size === 0) {\n return state;\n }\n let prevExpandedDepth = -1;\n let expandNextHiddenSpan = true;\n const childrenHiddenIDs = spans.reduce((res, s) => {\n if (s.depth <= prevExpandedDepth) {\n expandNextHiddenSpan = true;\n }\n if (expandNextHiddenSpan && res.has(s.spanID)) {\n res.delete(s.spanID);\n expandNextHiddenSpan = false;\n prevExpandedDepth = s.depth;\n }\n return res;\n }, new Set(state.childrenHiddenIDs));\n return { ...state, childrenHiddenIDs };\n}\n\nfunction detailToggle(state: TTraceTimeline, { spanID }: TSpanIdValue) {\n const detailStates = new Map(state.detailStates);\n if (detailStates.has(spanID)) {\n detailStates.delete(spanID);\n } else {\n detailStates.set(spanID, new DetailState());\n }\n return { ...state, detailStates };\n}\n\nfunction detailSubsectionToggle(\n subSection: 'tags' | 'process' | 'logs' | 'warnings' | 'references',\n state: TTraceTimeline,\n { spanID }: TSpanIdValue\n) {\n const old = state.detailStates.get(spanID);\n if (!old) {\n return state;\n }\n let detailState;\n if (subSection === 'tags') {\n detailState = old.toggleTags();\n } else if (subSection === 'process') {\n detailState = old.toggleProcess();\n } else if (subSection === 'warnings') {\n detailState = old.toggleWarnings();\n } else if (subSection === 'references') {\n detailState = old.toggleReferences();\n } else {\n detailState = old.toggleLogs();\n }\n const detailStates = new Map(state.detailStates);\n detailStates.set(spanID, detailState);\n return { ...state, detailStates };\n}\n\nconst detailTagsToggle = detailSubsectionToggle.bind(null, 'tags');\nconst detailProcessToggle = detailSubsectionToggle.bind(null, 'process');\nconst detailLogsToggle = detailSubsectionToggle.bind(null, 'logs');\nconst detailWarningsToggle = detailSubsectionToggle.bind(null, 'warnings');\nconst detailReferencesToggle = detailSubsectionToggle.bind(null, 'references');\n\nfunction detailLogItemToggle(state: TTraceTimeline, { spanID, logItem }: TSpanIdLogValue) {\n const old = state.detailStates.get(spanID);\n if (!old) {\n return state;\n }\n const detailState = old.toggleLogItem(logItem);\n const detailStates = new Map(state.detailStates);\n detailStates.set(spanID, detailState);\n return { ...state, detailStates };\n}\n\nfunction addHoverIndentGuideId(state: TTraceTimeline, { spanID }: TSpanIdValue) {\n const newHoverIndentGuideIds = new Set(state.hoverIndentGuideIds);\n newHoverIndentGuideIds.add(spanID);\n\n return { ...state, hoverIndentGuideIds: newHoverIndentGuideIds };\n}\n\nfunction removeHoverIndentGuideId(state: TTraceTimeline, { spanID }: TSpanIdValue) {\n const newHoverIndentGuideIds = new Set(state.hoverIndentGuideIds);\n newHoverIndentGuideIds.delete(spanID);\n\n return { ...state, hoverIndentGuideIds: newHoverIndentGuideIds };\n}\n\nexport default handleActions(\n {\n [actionTypes.ADD_HOVER_INDENT_GUIDE_ID]: guardReducer(addHoverIndentGuideId),\n [actionTypes.CHILDREN_TOGGLE]: guardReducer(childrenToggle),\n [actionTypes.CLEAR_SHOULD_SCROLL_TO_FIRST_UI_FIND_MATCH]: guardReducer(\n clearShouldScrollToFirstUiFindMatch\n ),\n [actionTypes.COLLAPSE_ALL]: guardReducer(collapseAll),\n [actionTypes.COLLAPSE_ONE]: guardReducer(collapseOne),\n [actionTypes.DETAIL_LOGS_TOGGLE]: guardReducer(detailLogsToggle),\n [actionTypes.DETAIL_LOG_ITEM_TOGGLE]: guardReducer(detailLogItemToggle),\n [actionTypes.DETAIL_PROCESS_TOGGLE]: guardReducer(detailProcessToggle),\n [actionTypes.DETAIL_WARNINGS_TOGGLE]: guardReducer(detailWarningsToggle),\n [actionTypes.DETAIL_REFERENCES_TOGGLE]: guardReducer(detailReferencesToggle),\n [actionTypes.DETAIL_TAGS_TOGGLE]: guardReducer(detailTagsToggle),\n [actionTypes.DETAIL_TOGGLE]: guardReducer(detailToggle),\n [actionTypes.EXPAND_ALL]: guardReducer(expandAll),\n [actionTypes.EXPAND_ONE]: guardReducer(expandOne),\n [actionTypes.FOCUS_UI_FIND_MATCHES]: guardReducer(focusUiFindMatches),\n [actionTypes.REMOVE_HOVER_INDENT_GUIDE_ID]: guardReducer(removeHoverIndentGuideId),\n [actionTypes.SET_SPAN_NAME_COLUMN_WIDTH]: guardReducer(setColumnWidth),\n [actionTypes.SET_TRACE]: guardReducer(setTrace),\n },\n newInitialState()\n);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React from 'react';\nimport { Tooltip, Icon } from 'antd';\n\nimport './TimelineCollapser.css';\n\ntype CollapserProps = {\n onCollapseAll: () => void;\n onCollapseOne: () => void;\n onExpandOne: () => void;\n onExpandAll: () => void;\n};\n\nfunction getTitle(value: string) {\n return {value};\n}\n\nexport default class TimelineCollapser extends React.PureComponent {\n containerRef: React.RefObject;\n\n constructor(props: CollapserProps) {\n super(props);\n this.containerRef = React.createRef();\n }\n\n // TODO: Something less hacky than createElement to help TypeScript / AntD\n getContainer = () => this.containerRef.current || document.createElement('div');\n\n render() {\n const { onExpandAll, onExpandOne, onCollapseAll, onCollapseOne } = this.props;\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport cx from 'classnames';\n\nimport { TNil } from '../../../../types';\nimport DraggableManager, { DraggableBounds, DraggingUpdate } from '../../../../utils/DraggableManager';\n\nimport './TimelineColumnResizer.css';\n\ntype TimelineColumnResizerProps = {\n min: number;\n max: number;\n onChange: (newSize: number) => void;\n position: number;\n};\n\ntype TimelineColumnResizerState = {\n dragPosition: number | TNil;\n};\n\nexport default class TimelineColumnResizer extends React.PureComponent<\n TimelineColumnResizerProps,\n TimelineColumnResizerState\n> {\n state: TimelineColumnResizerState;\n\n _dragManager: DraggableManager;\n _rootElm: Element | TNil;\n\n constructor(props: TimelineColumnResizerProps) {\n super(props);\n this._dragManager = new DraggableManager({\n getBounds: this._getDraggingBounds,\n onDragEnd: this._handleDragEnd,\n onDragMove: this._handleDragUpdate,\n onDragStart: this._handleDragUpdate,\n });\n this._rootElm = undefined;\n this.state = {\n dragPosition: null,\n };\n }\n\n componentWillUnmount() {\n this._dragManager.dispose();\n }\n\n _setRootElm = (elm: Element | TNil) => {\n this._rootElm = elm;\n };\n\n _getDraggingBounds = (): DraggableBounds => {\n if (!this._rootElm) {\n throw new Error('invalid state');\n }\n const { left: clientXLeft, width } = this._rootElm.getBoundingClientRect();\n const { min, max } = this.props;\n return {\n clientXLeft,\n width,\n maxValue: max,\n minValue: min,\n };\n };\n\n _handleDragUpdate = ({ value }: DraggingUpdate) => {\n this.setState({ dragPosition: value });\n };\n\n _handleDragEnd = ({ manager, value }: DraggingUpdate) => {\n manager.resetBounds();\n this.setState({ dragPosition: null });\n this.props.onChange(value);\n };\n\n render() {\n let left;\n let draggerStyle;\n let isDraggingCls = '';\n const { position } = this.props;\n const { dragPosition } = this.state;\n left = `${position * 100}%`;\n const gripStyle = { left };\n\n if (this._dragManager.isDragging() && this._rootElm && dragPosition != null) {\n isDraggingCls = cx({\n isDraggingLeft: dragPosition < position,\n isDraggingRight: dragPosition > position,\n });\n left = `${dragPosition * 100}%`;\n // Draw a highlight from the current dragged position back to the original\n // position, e.g. highlight the change. Draw the highlight via `left` and\n // `right` css styles (simpler than using `width`).\n const draggerLeft = `${Math.min(position, dragPosition) * 100}%`;\n // subtract 1px for draggerRight to deal with the right border being off\n // by 1px when dragging left\n const draggerRight = `calc(${(1 - Math.max(position, dragPosition)) * 100}% - 1px)`;\n draggerStyle = { left: draggerLeft, right: draggerRight };\n } else {\n draggerStyle = gripStyle;\n }\n return (\n
\n
\n \n
\n );\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport cx from 'classnames';\n\nimport { TUpdateViewRangeTimeFunction, IViewRangeTime, ViewRangeTimeUpdate } from '../../types';\nimport { TNil } from '../../../../types';\nimport DraggableManager, { DraggableBounds, DraggingUpdate } from '../../../../utils/DraggableManager';\n\nimport './TimelineViewingLayer.css';\n\ntype TimelineViewingLayerProps = {\n /**\n * `boundsInvalidator` is an arbitrary prop that lets the component know the\n * bounds for dragging need to be recalculated. In practice, the name column\n * width serves fine for this.\n */\n boundsInvalidator: any | null | undefined;\n updateNextViewRangeTime: (update: ViewRangeTimeUpdate) => void;\n updateViewRangeTime: TUpdateViewRangeTimeFunction;\n viewRangeTime: IViewRangeTime;\n};\n\ntype TDraggingLeftLayout = {\n isDraggingLeft: boolean;\n left: string;\n width: string;\n};\n\ntype TOutOfViewLayout = {\n isOutOfView: true;\n};\n\nfunction isOutOfView(layout: TDraggingLeftLayout | TOutOfViewLayout): layout is TOutOfViewLayout {\n return Reflect.has(layout, 'isOutOfView');\n}\n\n/**\n * Map from a sub range to the greater view range, e.g, when the view range is\n * the middle half ([0.25, 0.75]), a value of 0.25 befomes 3/8.\n * @returns {number}\n */\nfunction mapFromViewSubRange(viewStart: number, viewEnd: number, value: number) {\n return viewStart + value * (viewEnd - viewStart);\n}\n\n/**\n * Map a value from the view ([0, 1]) to a sub-range, e.g, when the view range is\n * the middle half ([0.25, 0.75]), a value of 3/8 becomes 1/4.\n * @returns {number}\n */\nfunction mapToViewSubRange(viewStart: number, viewEnd: number, value: number) {\n return (value - viewStart) / (viewEnd - viewStart);\n}\n\n/**\n * Get the layout for the \"next\" view range time, e.g. the difference from the\n * drag start and the drag end. This is driven by `shiftStart`, `shiftEnd` or\n * `reframe` on `props.viewRangeTime`, not by the current state of the\n * component. So, it reflects in-progress dragging from the span minimap.\n */\nfunction getNextViewLayout(start: number, position: number): TDraggingLeftLayout | TOutOfViewLayout {\n let [left, right] = start < position ? [start, position] : [position, start];\n if (left >= 1 || right <= 0) {\n return { isOutOfView: true };\n }\n if (left < 0) {\n left = 0;\n }\n if (right > 1) {\n right = 1;\n }\n return {\n isDraggingLeft: start > position,\n left: `${left * 100}%`,\n width: `${(right - left) * 100}%`,\n };\n}\n\n/**\n * Render the visual indication of the \"next\" view range.\n */\nfunction getMarkers(\n viewStart: number,\n viewEnd: number,\n from: number,\n to: number,\n isShift: boolean\n): React.ReactNode {\n const mappedFrom = mapToViewSubRange(viewStart, viewEnd, from);\n const mappedTo = mapToViewSubRange(viewStart, viewEnd, to);\n const layout = getNextViewLayout(mappedFrom, mappedTo);\n if (isOutOfView(layout)) {\n return null;\n }\n const { isDraggingLeft, left, width } = layout;\n const cls = cx({\n isDraggingLeft,\n isDraggingRight: !isDraggingLeft,\n isReframeDrag: !isShift,\n isShiftDrag: isShift,\n });\n return
;\n}\n\n/**\n * `TimelineViewingLayer` is rendered on top of the TimelineHeaderRow time\n * labels; it handles showing the current view range and handles mouse UX for\n * modifying it.\n */\nexport default class TimelineViewingLayer extends React.PureComponent {\n _draggerReframe: DraggableManager;\n _root: Element | TNil;\n\n constructor(props: TimelineViewingLayerProps) {\n super(props);\n this._draggerReframe = new DraggableManager({\n getBounds: this._getDraggingBounds,\n onDragEnd: this._handleReframeDragEnd,\n onDragMove: this._handleReframeDragUpdate,\n onDragStart: this._handleReframeDragUpdate,\n onMouseLeave: this._handleReframeMouseLeave,\n onMouseMove: this._handleReframeMouseMove,\n });\n this._root = undefined;\n }\n\n componentWillReceiveProps(nextProps: TimelineViewingLayerProps) {\n const { boundsInvalidator } = this.props;\n if (boundsInvalidator !== nextProps.boundsInvalidator) {\n this._draggerReframe.resetBounds();\n }\n }\n\n componentWillUnmount() {\n this._draggerReframe.dispose();\n }\n\n _setRoot = (elm: Element | TNil) => {\n this._root = elm;\n };\n\n _getDraggingBounds = (): DraggableBounds => {\n if (!this._root) {\n throw new Error('invalid state');\n }\n const { left: clientXLeft, width } = this._root.getBoundingClientRect();\n return { clientXLeft, width };\n };\n\n _handleReframeMouseMove = ({ value }: DraggingUpdate) => {\n const [viewStart, viewEnd] = this.props.viewRangeTime.current;\n const cursor = mapFromViewSubRange(viewStart, viewEnd, value);\n this.props.updateNextViewRangeTime({ cursor });\n };\n\n _handleReframeMouseLeave = () => {\n this.props.updateNextViewRangeTime({ cursor: undefined });\n };\n\n _handleReframeDragUpdate = ({ value }: DraggingUpdate) => {\n const { current, reframe } = this.props.viewRangeTime;\n const [viewStart, viewEnd] = current;\n const shift = mapFromViewSubRange(viewStart, viewEnd, value);\n const anchor = reframe ? reframe.anchor : shift;\n const update = { reframe: { anchor, shift } };\n this.props.updateNextViewRangeTime(update);\n };\n\n _handleReframeDragEnd = ({ manager, value }: DraggingUpdate) => {\n const { current, reframe } = this.props.viewRangeTime;\n const [viewStart, viewEnd] = current;\n const shift = mapFromViewSubRange(viewStart, viewEnd, value);\n const anchor = reframe ? reframe.anchor : shift;\n const [start, end] = shift < anchor ? [shift, anchor] : [anchor, shift];\n manager.resetBounds();\n this.props.updateViewRangeTime(start, end, 'timeline-header');\n };\n\n render() {\n const { viewRangeTime } = this.props;\n const { current, cursor, reframe, shiftEnd, shiftStart } = viewRangeTime;\n const [viewStart, viewEnd] = current;\n const haveNextTimeRange = reframe != null || shiftEnd != null || shiftStart != null;\n let cusrorPosition: string | TNil;\n if (!haveNextTimeRange && cursor != null && cursor >= viewStart && cursor <= viewEnd) {\n cusrorPosition = `${mapToViewSubRange(viewStart, viewEnd, cursor) * 100}%`;\n }\n return (\n \n {cusrorPosition != null && (\n
\n )}\n {reframe != null && getMarkers(viewStart, viewEnd, reframe.anchor, reframe.shift, false)}\n {shiftEnd != null && getMarkers(viewStart, viewEnd, viewEnd, shiftEnd, true)}\n {shiftStart != null && getMarkers(viewStart, viewEnd, viewStart, shiftStart, true)}\n
\n );\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Span } from '../../../types/trace';\n\nexport type ViewedBoundsFunctionType = (start: number, end: number) => { start: number; end: number };\n/**\n * Given a range (`min`, `max`) and factoring in a zoom (`viewStart`, `viewEnd`)\n * a function is created that will find the position of a sub-range (`start`, `end`).\n * The calling the generated method will return the result as a `{ start, end }`\n * object with values ranging in [0, 1].\n *\n * @param {number} min The start of the outer range.\n * @param {number} max The end of the outer range.\n * @param {number} viewStart The start of the zoom, on a range of [0, 1],\n * relative to the `min`, `max`.\n * @param {number} viewEnd The end of the zoom, on a range of [0, 1],\n * relative to the `min`, `max`.\n * @returns {(number, number) => Object} Created view bounds function\n */\nexport function createViewedBoundsFunc(viewRange: {\n min: number;\n max: number;\n viewStart: number;\n viewEnd: number;\n}) {\n const { min, max, viewStart, viewEnd } = viewRange;\n const duration = max - min;\n const viewMin = min + viewStart * duration;\n const viewMax = max - (1 - viewEnd) * duration;\n const viewWindow = viewMax - viewMin;\n\n /**\n * View bounds function\n * @param {number} start The start of the sub-range.\n * @param {number} end The end of the sub-range.\n * @return {Object} The resultant range.\n */\n return (start: number, end: number) => ({\n start: (start - viewMin) / viewWindow,\n end: (end - viewMin) / viewWindow,\n });\n}\n\n/**\n * Returns `true` if the `span` has a tag matching `key` = `value`.\n *\n * @param {string} key The tag key to match on.\n * @param {any} value The tag value to match.\n * @param {{tags}} span An object with a `tags` property of { key, value }\n * items.\n * @return {boolean} True if a match was found.\n */\nexport function spanHasTag(key: string, value: any, span: Span) {\n if (!Array.isArray(span.tags) || !span.tags.length) {\n return false;\n }\n return span.tags.some(tag => tag.key === key && tag.value === value);\n}\n\nexport const isClientSpan = spanHasTag.bind(null, 'span.kind', 'client');\nexport const isServerSpan = spanHasTag.bind(null, 'span.kind', 'server');\n\nconst isErrorBool = spanHasTag.bind(null, 'error', true);\nconst isErrorStr = spanHasTag.bind(null, 'error', 'true');\nexport const isErrorSpan = (span: Span) => isErrorBool(span) || isErrorStr(span);\n\n/**\n * Returns `true` if at least one of the descendants of the `parentSpanIndex`\n * span contains an error tag.\n *\n * @param {Span[]} spans The spans for a trace - should be\n * sorted with children following parents.\n * @param {number} parentSpanIndex The index of the parent span - only\n * subsequent spans with depth less than\n * the parent span will be checked.\n * @return {boolean} Returns `true` if a descendant contains an error tag.\n */\nexport function spanContainsErredSpan(spans: Span[], parentSpanIndex: number) {\n const { depth } = spans[parentSpanIndex];\n let i = parentSpanIndex + 1;\n for (; i < spans.length && spans[i].depth > depth; i++) {\n if (isErrorSpan(spans[i])) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Expects the first span to be the parent span.\n */\nexport function findServerChildSpan(spans: Span[]) {\n if (spans.length <= 1 || !isClientSpan(spans[0])) {\n return false;\n }\n const span = spans[0];\n const spanChildDepth = span.depth + 1;\n let i = 1;\n while (i < spans.length && spans[i].depth === spanChildDepth) {\n if (isServerSpan(spans[i])) {\n return spans[i];\n }\n i++;\n }\n return null;\n}\n\nexport { formatDuration } from '../../../utils/date';\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\n\nimport { formatDuration } from './utils';\nimport { TNil } from '../../../types';\n\nimport './Ticks.css';\n\ntype TicksProps = {\n endTime?: number | TNil;\n numTicks: number;\n showLabels?: boolean | TNil;\n startTime?: number | TNil;\n};\n\nexport default function Ticks(props: TicksProps) {\n const { endTime, numTicks, showLabels, startTime } = props;\n\n let labels: undefined | string[];\n if (showLabels) {\n labels = [];\n const viewingDuration = (endTime || 0) - (startTime || 0);\n for (let i = 0; i < numTicks; i++) {\n const durationAtTick = (startTime || 0) + (i / (numTicks - 1)) * viewingDuration;\n labels.push(formatDuration(durationAtTick));\n }\n }\n const ticks: React.ReactNode[] = [];\n for (let i = 0; i < numTicks; i++) {\n const portion = i / (numTicks - 1);\n ticks.push(\n \n {labels && (\n = 1 ? 'isEndAnchor' : ''}`}>{labels[i]}\n )}\n
\n );\n }\n return
{ticks}
;\n}\n\nTicks.defaultProps = {\n endTime: null,\n showLabels: null,\n startTime: null,\n};\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\n\nimport './TimelineRow.css';\n\ntype TTimelineRowProps = {\n children: React.ReactNode;\n className?: string;\n};\n\ninterface ITimelineRowCellProps extends React.HTMLAttributes {\n children: React.ReactNode;\n className?: string;\n width: number;\n style?: Object;\n}\n\nexport default function TimelineRow(props: TTimelineRowProps) {\n const { children, className = '', ...rest } = props;\n return (\n
\n {children}\n
\n );\n}\n\nTimelineRow.defaultProps = {\n className: '',\n};\n\nfunction TimelineRowCell(props: ITimelineRowCellProps) {\n const { children, className = '', width, style, ...rest } = props;\n const widthPercent = `${width * 100}%`;\n const mergedStyle = { ...style, flexBasis: widthPercent, maxWidth: widthPercent };\n return (\n
\n {children}\n
\n );\n}\n\nTimelineRowCell.defaultProps = { className: '', style: {} };\n\nTimelineRow.Cell = TimelineRowCell;\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\n\nimport TimelineCollapser from './TimelineCollapser';\nimport TimelineColumnResizer from './TimelineColumnResizer';\nimport TimelineViewingLayer from './TimelineViewingLayer';\nimport Ticks from '../Ticks';\nimport TimelineRow from '../TimelineRow';\nimport { TUpdateViewRangeTimeFunction, IViewRangeTime, ViewRangeTimeUpdate } from '../../types';\n\nimport './TimelineHeaderRow.css';\n\ntype TimelineHeaderRowProps = {\n duration: number;\n nameColumnWidth: number;\n numTicks: number;\n onCollapseAll: () => void;\n onCollapseOne: () => void;\n onColummWidthChange: (width: number) => void;\n onExpandAll: () => void;\n onExpandOne: () => void;\n updateNextViewRangeTime: (update: ViewRangeTimeUpdate) => void;\n updateViewRangeTime: TUpdateViewRangeTimeFunction;\n viewRangeTime: IViewRangeTime;\n};\n\nexport default function TimelineHeaderRow(props: TimelineHeaderRowProps) {\n const {\n duration,\n nameColumnWidth,\n numTicks,\n onCollapseAll,\n onCollapseOne,\n onColummWidthChange,\n onExpandAll,\n onExpandOne,\n updateViewRangeTime,\n updateNextViewRangeTime,\n viewRangeTime,\n } = props;\n const [viewStart, viewEnd] = viewRangeTime.current;\n return (\n \n \n

Service & Operation

\n \n
\n \n \n \n \n \n
\n );\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\ntype THeightGetter = (index: number) => number;\n\n/**\n * Keeps track of the height and y-position for anything sequenctial where\n * y-positions follow one-after-another and can be derived from the height of\n * the prior entries. The height is known from an accessor function parameter\n * to the methods that require new knowledge the heights.\n *\n * @export\n * @class Positions\n */\nexport default class Positions {\n /**\n * Indicates how far past the explicitly required height or y-values should\n * checked.\n */\n bufferLen: number;\n dataLen: number;\n heights: number[];\n /**\n * `lastI` keeps track of which values have already been visited. In many\n * scenarios, values do not need to be revisited. But, revisiting is required\n * when heights have changed, so `lastI` can be forced.\n */\n lastI: number;\n ys: number[];\n\n constructor(bufferLen: number) {\n this.ys = [];\n this.heights = [];\n this.bufferLen = bufferLen;\n this.dataLen = -1;\n this.lastI = -1;\n }\n\n /**\n * Used to make sure the length of y-values and heights is consistent with\n * the context; in particular `lastI` needs to remain valid.\n */\n profileData(dataLength: number) {\n if (dataLength !== this.dataLen) {\n this.dataLen = dataLength;\n this.ys.length = dataLength;\n this.heights.length = dataLength;\n if (this.lastI >= dataLength) {\n this.lastI = dataLength - 1;\n }\n }\n }\n\n /**\n * Calculate and save the heights and y-values, based on `heightGetter`, from\n * `lastI` until the`max` index; the starting point (`lastI`) can be forced\n * via the `forcedLastI` parameter.\n * @param {number=} forcedLastI\n */\n calcHeights(max: number, heightGetter: THeightGetter, forcedLastI?: number) {\n if (forcedLastI != null) {\n this.lastI = forcedLastI;\n }\n let _max = max + this.bufferLen;\n if (_max <= this.lastI) {\n return;\n }\n if (_max >= this.heights.length) {\n _max = this.heights.length - 1;\n }\n let i = this.lastI;\n if (this.lastI === -1) {\n i = 0;\n this.ys[0] = 0;\n }\n while (i <= _max) {\n // eslint-disable-next-line no-multi-assign\n const h = (this.heights[i] = heightGetter(i));\n this.ys[i + 1] = this.ys[i] + h;\n i++;\n }\n this.lastI = _max;\n }\n\n /**\n * Verify the height and y-values from `lastI` up to `yValue`.\n */\n calcYs(yValue: number, heightGetter: THeightGetter) {\n while ((this.ys[this.lastI] == null || yValue > this.ys[this.lastI]) && this.lastI < this.dataLen - 1) {\n this.calcHeights(this.lastI, heightGetter);\n }\n }\n\n /**\n * Get the latest height for index `_i`. If it's in new terretory\n * (_i > lastI), find the heights (and y-values) leading up to it. If it's in\n * known territory (_i <= lastI) and the height is different than what is\n * known, recalculate subsequent y values, but don't confirm the heights of\n * those items, just update based on the difference.\n */\n confirmHeight(_i: number, heightGetter: THeightGetter) {\n let i = _i;\n if (i > this.lastI) {\n this.calcHeights(i, heightGetter);\n return;\n }\n const h = heightGetter(i);\n if (h === this.heights[i]) {\n return;\n }\n const chg = h - this.heights[i];\n this.heights[i] = h;\n // shift the y positions by `chg` for all known y positions\n while (++i <= this.lastI) {\n this.ys[i] += chg;\n }\n if (this.ys[this.lastI + 1] != null) {\n this.ys[this.lastI + 1] += chg;\n }\n }\n\n /**\n * Given a target y-value (`yValue`), find the closest index (in the `.ys`\n * array) that is prior to the y-value; e.g. map from y-value to index in\n * `.ys`.\n */\n findFloorIndex(yValue: number, heightGetter: THeightGetter): number {\n this.calcYs(yValue, heightGetter);\n\n let imin = 0;\n let imax = this.lastI;\n\n if (this.ys.length < 2 || yValue < this.ys[1]) {\n return 0;\n }\n if (yValue > this.ys[imax]) {\n return imax;\n }\n let i;\n while (imin < imax) {\n // eslint-disable-next-line no-bitwise\n i = (imin + 0.5 * (imax - imin)) | 0;\n if (yValue > this.ys[i]) {\n if (yValue <= this.ys[i + 1]) {\n return i;\n }\n imin = i;\n } else if (yValue < this.ys[i]) {\n if (yValue >= this.ys[i - 1]) {\n return i - 1;\n }\n imax = i;\n } else {\n return i;\n }\n }\n throw new Error(`unable to find floor index for y=${yValue}`);\n }\n\n /**\n * Get the `y` and `height` for a given row.\n *\n * @returns {{ height: number, y: number }}\n */\n getRowPosition(index: number, heightGetter: THeightGetter) {\n this.confirmHeight(index, heightGetter);\n return {\n height: this.heights[index],\n y: this.ys[index],\n };\n }\n\n /**\n * Get the estimated height of the whole shebang by extrapolating based on\n * the average known height.\n */\n getEstimatedHeight(): number {\n const known = this.ys[this.lastI] + this.heights[this.lastI];\n if (this.lastI >= this.dataLen - 1) {\n // eslint-disable-next-line no-bitwise\n return known | 0;\n }\n // eslint-disable-next-line no-bitwise\n return ((known / (this.lastI + 1)) * this.heights.length) | 0;\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\n\nimport Positions from './Positions';\nimport { TNil } from '../../../../types';\n\ntype TWrapperProps = {\n style: React.CSSProperties;\n ref: (elm: HTMLDivElement) => void;\n onScroll?: () => void;\n};\n\n/**\n * @typedef\n */\ntype TListViewProps = {\n /**\n * Number of elements in the list.\n */\n dataLength: number;\n /**\n * Convert item index (number) to the key (string). ListView uses both indexes\n * and keys to handle the addtion of new rows.\n */\n getIndexFromKey: (key: string) => number;\n /**\n * Convert item key (string) to the index (number). ListView uses both indexes\n * and keys to handle the addtion of new rows.\n */\n getKeyFromIndex: (index: number) => string;\n /**\n * Number of items to draw and add to the DOM, initially.\n */\n initialDraw?: number;\n /**\n * The parent provides fallback height measurements when there is not a\n * rendered element to measure.\n */\n itemHeightGetter: (index: number, key: string) => number;\n /**\n * Function that renders an item; rendered items are added directly to the\n * DOM, they are not wrapped in list item wrapper HTMLElement.\n */\n // itemRenderer(itemKey, style, i, attrs)\n itemRenderer: (\n itemKey: string,\n style: Record,\n index: number,\n attributes: Record\n ) => React.ReactNode;\n /**\n * `className` for the HTMLElement that holds the items.\n */\n itemsWrapperClassName?: string;\n /**\n * When adding new items to the DOM, this is the number of items to add above\n * and below the current view. E.g. if list is 100 items and is srcolled\n * halfway down (so items [46, 55] are in view), then when a new range of\n * items is rendered, it will render items `46 - viewBuffer` to\n * `55 + viewBuffer`.\n */\n viewBuffer: number;\n /**\n * The minimum number of items offscreen in either direction; e.g. at least\n * `viewBuffer` number of items must be off screen above and below the\n * current view, or more items will be rendered.\n */\n viewBufferMin: number;\n /**\n * When `true`, expect `_wrapperElm` to have `overflow: visible` and to,\n * essentially, be tall to the point the entire page will will end up\n * scrolling as a result of the ListView. Similar to react-virtualized\n * window scroller.\n *\n * - Ref: https://bvaughn.github.io/react-virtualized/#/components/WindowScroller\n * - Ref:https://github.com/bvaughn/react-virtualized/blob/497e2a1942529560681d65a9ef9f5e9c9c9a49ba/docs/WindowScroller.md\n */\n windowScroller?: boolean;\n};\n\nconst DEFAULT_INITIAL_DRAW = 300;\n\n/**\n * Virtualized list view component, for the most part, only renders the window\n * of items that are in-view with some buffer before and after. Listens for\n * scroll events and updates which items are rendered. See react-virtualized\n * for a suite of components with similar, but generalized, functinality.\n * https://github.com/bvaughn/react-virtualized\n *\n * Note: Presently, ListView cannot be a PureComponent. This is because ListView\n * is sensitive to the underlying state that drives the list items, but it\n * doesn't actually receive that state. So, a render may still be required even\n * if ListView's props are unchanged.\n *\n * @export\n * @class ListView\n */\nexport default class ListView extends React.Component {\n /**\n * Keeps track of the height and y-value of items, by item index, in the\n * ListView.\n */\n _yPositions: Positions;\n /**\n * Keep track of the known / measured heights of the rendered items; populated\n * with values through observation and keyed on the item key, not the item\n * index.\n */\n _knownHeights: Map;\n /**\n * The start index of the items currently drawn.\n */\n _startIndexDrawn: number;\n /**\n * The end index of the items currently drawn.\n */\n _endIndexDrawn: number;\n /**\n * The start index of the items currently in view.\n */\n _startIndex: number;\n /**\n * The end index of the items currently in view.\n */\n _endIndex: number;\n /**\n * Height of the visual window, e.g. height of the scroller element.\n */\n _viewHeight: number;\n /**\n * `scrollTop` of the current scroll position.\n */\n _scrollTop: number;\n /**\n * Used to keep track of whether or not a re-calculation of what should be\n * drawn / viewable has been scheduled.\n */\n _isScrolledOrResized: boolean;\n /**\n * If `windowScroller` is true, this notes how far down the page the scroller\n * is located. (Note: repositioning and below-the-fold views are untested)\n */\n _htmlTopOffset: number;\n _windowScrollListenerAdded: boolean;\n _htmlElm: HTMLElement;\n /**\n * HTMLElement holding the scroller.\n */\n _wrapperElm: HTMLElement | TNil;\n /**\n * HTMLElement holding the rendered items.\n */\n _itemHolderElm: HTMLElement | TNil;\n\n static defaultProps = {\n initialDraw: DEFAULT_INITIAL_DRAW,\n itemsWrapperClassName: '',\n windowScroller: false,\n };\n\n constructor(props: TListViewProps) {\n super(props);\n\n this._yPositions = new Positions(200);\n // _knownHeights is (item-key -> observed height) of list items\n this._knownHeights = new Map();\n\n this._startIndexDrawn = 2 ** 20;\n this._endIndexDrawn = -(2 ** 20);\n this._startIndex = 0;\n this._endIndex = 0;\n this._viewHeight = -1;\n this._scrollTop = -1;\n this._isScrolledOrResized = false;\n\n this._htmlTopOffset = -1;\n this._windowScrollListenerAdded = false;\n // _htmlElm is only relevant if props.windowScroller is true\n this._htmlElm = document.documentElement as any;\n this._wrapperElm = undefined;\n this._itemHolderElm = undefined;\n }\n\n componentDidMount() {\n if (this.props.windowScroller) {\n if (this._wrapperElm) {\n const { top } = this._wrapperElm.getBoundingClientRect();\n this._htmlTopOffset = top + this._htmlElm.scrollTop;\n }\n window.addEventListener('scroll', this._onScroll);\n this._windowScrollListenerAdded = true;\n }\n }\n\n componentDidUpdate() {\n if (this._itemHolderElm) {\n this._scanItemHeights();\n }\n }\n\n componentWillUnmount() {\n if (this._windowScrollListenerAdded) {\n window.removeEventListener('scroll', this._onScroll);\n }\n }\n\n getViewHeight = () => this._viewHeight;\n\n /**\n * Get the index of the item at the bottom of the current view.\n */\n getBottomVisibleIndex = (): number => {\n const bottomY = this._scrollTop + this._viewHeight;\n return this._yPositions.findFloorIndex(bottomY, this._getHeight);\n };\n\n /**\n * Get the index of the item at the top of the current view.\n */\n getTopVisibleIndex = (): number => this._yPositions.findFloorIndex(this._scrollTop, this._getHeight);\n\n getRowPosition = (index: number): { height: number; y: number } =>\n this._yPositions.getRowPosition(index, this._getHeight);\n\n /**\n * Scroll event listener that schedules a remeasuring of which items should be\n * rendered.\n */\n _onScroll = () => {\n if (!this._isScrolledOrResized) {\n this._isScrolledOrResized = true;\n window.requestAnimationFrame(this._positionList);\n }\n };\n\n /**\n * Returns true is the view height (scroll window) or scroll position have\n * changed.\n */\n _isViewChanged() {\n if (!this._wrapperElm) {\n return false;\n }\n const useRoot = this.props.windowScroller;\n const clientHeight = useRoot ? this._htmlElm.clientHeight : this._wrapperElm.clientHeight;\n const scrollTop = useRoot ? this._htmlElm.scrollTop : this._wrapperElm.scrollTop;\n return clientHeight !== this._viewHeight || scrollTop !== this._scrollTop;\n }\n\n /**\n * Recalculate _startIndex and _endIndex, e.g. which items are in view.\n */\n _calcViewIndexes() {\n const useRoot = this.props.windowScroller;\n // funky if statement is to satisfy flow\n if (!useRoot) {\n /* istanbul ignore next */\n if (!this._wrapperElm) {\n this._viewHeight = -1;\n this._startIndex = 0;\n this._endIndex = 0;\n return;\n }\n this._viewHeight = this._wrapperElm.clientHeight;\n this._scrollTop = this._wrapperElm.scrollTop;\n } else {\n this._viewHeight = window.innerHeight - this._htmlTopOffset;\n this._scrollTop = window.scrollY;\n }\n const yStart = this._scrollTop;\n const yEnd = this._scrollTop + this._viewHeight;\n this._startIndex = this._yPositions.findFloorIndex(yStart, this._getHeight);\n this._endIndex = this._yPositions.findFloorIndex(yEnd, this._getHeight);\n }\n\n /**\n * Checked to see if the currently rendered items are sufficient, if not,\n * force an update to trigger more items to be rendered.\n */\n _positionList = () => {\n this._isScrolledOrResized = false;\n if (!this._wrapperElm) {\n return;\n }\n this._calcViewIndexes();\n // indexes drawn should be padded by at least props.viewBufferMin\n const maxStart =\n this.props.viewBufferMin > this._startIndex ? 0 : this._startIndex - this.props.viewBufferMin;\n const minEnd =\n this.props.viewBufferMin < this.props.dataLength - this._endIndex\n ? this._endIndex + this.props.viewBufferMin\n : this.props.dataLength - 1;\n if (maxStart < this._startIndexDrawn || minEnd > this._endIndexDrawn) {\n this.forceUpdate();\n }\n };\n\n _initWrapper = (elm: HTMLElement | TNil) => {\n this._wrapperElm = elm;\n if (!this.props.windowScroller && elm) {\n this._viewHeight = elm.clientHeight;\n }\n };\n\n _initItemHolder = (elm: HTMLElement | TNil) => {\n this._itemHolderElm = elm;\n this._scanItemHeights();\n };\n\n /**\n * Go through all items that are rendered and save their height based on their\n * item-key (which is on a data-* attribute). If any new or adjusted heights\n * are found, re-measure the current known y-positions (via .yPositions).\n */\n _scanItemHeights = () => {\n const getIndexFromKey = this.props.getIndexFromKey;\n if (!this._itemHolderElm) {\n return;\n }\n // note the keys for the first and last altered heights, the `yPositions`\n // needs to be updated\n let lowDirtyKey = null;\n let highDirtyKey = null;\n let isDirty = false;\n // iterating childNodes is faster than children\n // https://jsperf.com/large-htmlcollection-vs-large-nodelist\n const nodes = this._itemHolderElm.childNodes;\n const max = nodes.length;\n for (let i = 0; i < max; i++) {\n const node: HTMLElement = nodes[i] as any;\n // use `.getAttribute(...)` instead of `.dataset` for jest / JSDOM\n const itemKey = node.getAttribute('data-item-key');\n if (!itemKey) {\n // eslint-disable-next-line no-console\n console.warn('itemKey not found');\n continue;\n }\n // measure the first child, if it's available, otherwise the node itself\n // (likely not transferable to other contexts, and instead is specific to\n // how we have the items rendered)\n const measureSrc: Element = node.firstElementChild || node;\n const observed = measureSrc.clientHeight;\n const known = this._knownHeights.get(itemKey);\n if (observed !== known) {\n this._knownHeights.set(itemKey, observed);\n if (!isDirty) {\n isDirty = true;\n // eslint-disable-next-line no-multi-assign\n lowDirtyKey = highDirtyKey = itemKey;\n } else {\n highDirtyKey = itemKey;\n }\n }\n }\n if (lowDirtyKey != null && highDirtyKey != null) {\n // update yPositions, then redraw\n const imin = getIndexFromKey(lowDirtyKey);\n const imax = highDirtyKey === lowDirtyKey ? imin : getIndexFromKey(highDirtyKey);\n this._yPositions.calcHeights(imax, this._getHeight, imin);\n this.forceUpdate();\n }\n };\n\n /**\n * Get the height of the element at index `i`; first check the known heigths,\n * fallbck to `.props.itemHeightGetter(...)`.\n */\n _getHeight = (i: number) => {\n const key = this.props.getKeyFromIndex(i);\n const known = this._knownHeights.get(key);\n // known !== known iff known is NaN\n // eslint-disable-next-line no-self-compare\n if (known != null && known === known) {\n return known;\n }\n return this.props.itemHeightGetter(i, key);\n };\n\n render() {\n const {\n dataLength,\n getKeyFromIndex,\n initialDraw = DEFAULT_INITIAL_DRAW,\n itemRenderer,\n viewBuffer,\n viewBufferMin,\n } = this.props;\n const heightGetter = this._getHeight;\n const items = [];\n let start;\n let end;\n\n this._yPositions.profileData(dataLength);\n\n if (!this._wrapperElm) {\n start = 0;\n end = (initialDraw < dataLength ? initialDraw : dataLength) - 1;\n } else {\n if (this._isViewChanged()) {\n this._calcViewIndexes();\n }\n const maxStart = viewBufferMin > this._startIndex ? 0 : this._startIndex - viewBufferMin;\n const minEnd =\n viewBufferMin < dataLength - this._endIndex ? this._endIndex + viewBufferMin : dataLength - 1;\n if (maxStart < this._startIndexDrawn || minEnd > this._endIndexDrawn) {\n start = viewBuffer > this._startIndex ? 0 : this._startIndex - viewBuffer;\n end = this._endIndex + viewBuffer;\n if (end >= dataLength) {\n end = dataLength - 1;\n }\n } else {\n start = this._startIndexDrawn;\n end = this._endIndexDrawn > dataLength - 1 ? dataLength - 1 : this._endIndexDrawn;\n }\n }\n\n this._yPositions.calcHeights(end, heightGetter, start || -1);\n this._startIndexDrawn = start;\n this._endIndexDrawn = end;\n\n items.length = end - start + 1;\n for (let i = start; i <= end; i++) {\n const { y: top, height } = this._yPositions.getRowPosition(i, heightGetter);\n const style = {\n height,\n top,\n position: 'absolute',\n };\n const itemKey = getKeyFromIndex(i);\n const attrs = { 'data-item-key': itemKey };\n items.push(itemRenderer(itemKey, style, i, attrs));\n }\n const wrapperProps: TWrapperProps = {\n style: { position: 'relative' },\n ref: this._initWrapper,\n };\n if (!this.props.windowScroller) {\n wrapperProps.onScroll = this._onScroll;\n wrapperProps.style.height = '100%';\n wrapperProps.style.overflowY = 'auto';\n }\n const scrollerStyle = {\n position: 'relative' as 'relative',\n height: this._yPositions.getEstimatedHeight(),\n };\n return (\n
\n
\n \n {items}\n
\n
\n
\n );\n }\n}\n","// Copyright (c) 2019 The Jaeger Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React from 'react';\nimport { SpanReference } from '../../../types/trace';\nimport { getUrl } from '.';\n\ntype ReferenceLinkProps = {\n reference: SpanReference;\n children: React.ReactNode;\n className?: string;\n focusSpan: (spanID: string) => void;\n onClick?: () => void;\n};\n\nexport default function ReferenceLink(props: ReferenceLinkProps) {\n const { reference, children, className, focusSpan, ...otherProps } = props;\n delete otherProps.onClick;\n if (reference.span) {\n return (\n focusSpan(reference.spanID)} className={className} {...otherProps}>\n {children}\n \n );\n }\n return (\n \n {children}\n \n );\n}\n","// Copyright (c) 2019 The Jaeger Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React from 'react';\nimport { Dropdown, Menu, Tooltip } from 'antd';\nimport { TooltipPlacement } from 'antd/lib/tooltip';\nimport NewWindowIcon from '../../common/NewWindowIcon';\nimport { SpanReference } from '../../../types/trace';\n\nimport './ReferencesButton.css';\nimport ReferenceLink from '../url/ReferenceLink';\n\ntype TReferencesButtonProps = {\n references: SpanReference[];\n children: React.ReactNode;\n tooltipText: string;\n focusSpan: (spanID: string) => void;\n};\n\nexport default class ReferencesButton extends React.PureComponent {\n referencesList = (references: SpanReference[]) => (\n \n {references.map(ref => {\n const { span, spanID } = ref;\n return (\n \n \n {span\n ? `${span.process.serviceName}:${span.operationName} - ${ref.spanID}`\n : `(another trace) - ${ref.spanID}`}\n {!span && }\n \n \n );\n })}\n \n );\n\n render() {\n const { references, children, tooltipText, focusSpan } = this.props;\n\n const tooltipProps = {\n arrowPointAtCenter: true,\n mouseLeaveDelay: 0.5,\n placement: 'bottom' as TooltipPlacement,\n title: tooltipText,\n overlayClassName: 'ReferencesButton--tooltip',\n };\n\n if (references.length > 1) {\n return (\n \n \n {children}\n \n \n );\n }\n const ref = references[0];\n return (\n \n \n {children}\n \n \n );\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React from 'react';\nimport cx from 'classnames';\nimport _get from 'lodash/get';\nimport IoChevronRight from 'react-icons/lib/io/chevron-right';\nimport IoIosArrowDown from 'react-icons/lib/io/ios-arrow-down';\nimport { connect } from 'react-redux';\nimport { bindActionCreators, Dispatch } from 'redux';\n\nimport { actions } from './duck';\nimport { ReduxState } from '../../../types';\nimport { Span } from '../../../types/trace';\nimport spanAncestorIds from '../../../utils/span-ancestor-ids';\n\nimport './SpanTreeOffset.css';\n\ntype TDispatchProps = {\n addHoverIndentGuideId: (spanID: string) => void;\n removeHoverIndentGuideId: (spanID: string) => void;\n};\n\ntype TProps = TDispatchProps & {\n childrenVisible?: boolean;\n hoverIndentGuideIds: Set;\n onClick?: () => void;\n span: Span;\n showChildrenIcon?: boolean;\n};\n\nexport class UnconnectedSpanTreeOffset extends React.PureComponent {\n ancestorIds: string[];\n\n static defaultProps = {\n childrenVisible: false,\n onClick: undefined,\n showChildrenIcon: true,\n };\n\n constructor(props: TProps) {\n super(props);\n\n this.ancestorIds = spanAncestorIds(props.span);\n // Some traces have multiple root-level spans, this connects them all under one guideline and adds the\n // necessary padding for the collapse icon on root-level spans.\n this.ancestorIds.push('root');\n\n this.ancestorIds.reverse();\n }\n\n /**\n * If the mouse leaves to anywhere except another span with the same ancestor id, this span's ancestor id is\n * removed from the set of hoverIndentGuideIds.\n *\n * @param {Object} event - React Synthetic event tied to mouseleave. Includes the related target which is\n * the element the user is now hovering.\n * @param {string} ancestorId - The span id that the user was hovering over.\n */\n handleMouseLeave = (event: React.MouseEvent, ancestorId: string) => {\n if (\n !(event.relatedTarget instanceof HTMLSpanElement) ||\n _get(event, 'relatedTarget.dataset.ancestorId') !== ancestorId\n ) {\n this.props.removeHoverIndentGuideId(ancestorId);\n }\n };\n\n /**\n * If the mouse entered this span from anywhere except another span with the same ancestor id, this span's\n * ancestorId is added to the set of hoverIndentGuideIds.\n *\n * @param {Object} event - React Synthetic event tied to mouseenter. Includes the related target which is\n * the last element the user was hovering.\n * @param {string} ancestorId - The span id that the user is now hovering over.\n */\n handleMouseEnter = (event: React.MouseEvent, ancestorId: string) => {\n if (\n !(event.relatedTarget instanceof HTMLSpanElement) ||\n _get(event, 'relatedTarget.dataset.ancestorId') !== ancestorId\n ) {\n this.props.addHoverIndentGuideId(ancestorId);\n }\n };\n\n render() {\n const { childrenVisible, onClick, showChildrenIcon, span } = this.props;\n const { hasChildren, spanID } = span;\n const wrapperProps = hasChildren ? { onClick, role: 'switch', 'aria-checked': childrenVisible } : null;\n const icon =\n showChildrenIcon && hasChildren && (childrenVisible ? : );\n return (\n \n {this.ancestorIds.map(ancestorId => (\n this.handleMouseEnter(event, ancestorId)}\n onMouseLeave={event => this.handleMouseLeave(event, ancestorId)}\n />\n ))}\n {icon && (\n this.handleMouseEnter(event, spanID)}\n onMouseLeave={event => this.handleMouseLeave(event, spanID)}\n >\n {icon}\n \n )}\n \n );\n }\n}\n\nexport function mapStateToProps(state: ReduxState): { hoverIndentGuideIds: Set } {\n const { hoverIndentGuideIds } = state.traceTimeline;\n return { hoverIndentGuideIds };\n}\n\nexport function mapDispatchToProps(dispatch: Dispatch): TDispatchProps {\n const { addHoverIndentGuideId, removeHoverIndentGuideId } = bindActionCreators(actions, dispatch);\n return { addHoverIndentGuideId, removeHoverIndentGuideId };\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(UnconnectedSpanTreeOffset);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// eslint-disable-next-line import/prefer-default-export\nexport const LABEL = 'label';\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport jsonMarkup from 'json-markup';\nimport { Dropdown, Icon, Menu } from 'antd';\n\nimport CopyIcon from '../../../common/CopyIcon';\n\nimport { TNil } from '../../../../types';\nimport { KeyValuePair, Link } from '../../../../types/trace';\n\nimport './KeyValuesTable.css';\n\nconst jsonObjectOrArrayStartRegex = /^(\\[|\\{)/;\n\nfunction parseIfComplexJson(value: any) {\n // if the value is a string representing actual json object or array, then use json-markup\n if (typeof value === 'string' && jsonObjectOrArrayStartRegex.test(value)) {\n // otherwise just return as is\n try {\n return JSON.parse(value);\n // eslint-disable-next-line no-empty\n } catch (_) {}\n }\n return value;\n}\n\nexport const LinkValue = (props: { href: string; title?: string; children: React.ReactNode }) => (\n \n {props.children} \n \n);\n\nLinkValue.defaultProps = {\n title: '',\n};\n\nconst linkValueList = (links: Link[]) => (\n \n {links.map(({ text, url }, index) => (\n // `index` is necessary in the key because url can repeat\n // eslint-disable-next-line react/no-array-index-key\n \n {text}\n \n ))}\n \n);\n\ntype KeyValuesTableProps = {\n data: KeyValuePair[];\n linksGetter: ((pairs: KeyValuePair[], index: number) => Link[]) | TNil;\n};\n\nexport default function KeyValuesTable(props: KeyValuesTableProps) {\n const { data, linksGetter } = props;\n return (\n
\n \n \n {data.map((row, i) => {\n const markup = {\n __html: jsonMarkup(parseIfComplexJson(row.value)),\n };\n // eslint-disable-next-line react/no-danger\n const jsonTable =
;\n const links = linksGetter ? linksGetter(data, i) : null;\n let valueMarkup;\n if (links && links.length === 1) {\n valueMarkup = (\n
\n \n {jsonTable}\n \n
\n );\n } else if (links && links.length > 1) {\n valueMarkup = (\n
\n \n \n {jsonTable} \n \n \n
\n );\n } else {\n valueMarkup = jsonTable;\n }\n return (\n // `i` is necessary in the key because row.key can repeat\n // eslint-disable-next-line react/no-array-index-key\n
\n \n \n \n \n );\n })}\n \n
{row.key}{valueMarkup}\n \n
\n
\n );\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport cx from 'classnames';\nimport IoIosArrowDown from 'react-icons/lib/io/ios-arrow-down';\nimport IoIosArrowRight from 'react-icons/lib/io/ios-arrow-right';\n\nimport * as markers from './AccordianKeyValues.markers';\nimport KeyValuesTable from './KeyValuesTable';\nimport { TNil } from '../../../../types';\nimport { KeyValuePair, Link } from '../../../../types/trace';\n\nimport './AccordianKeyValues.css';\n\ntype AccordianKeyValuesProps = {\n className?: string | TNil;\n data: KeyValuePair[];\n highContrast?: boolean;\n interactive?: boolean;\n isOpen: boolean;\n label: string;\n linksGetter: ((pairs: KeyValuePair[], index: number) => Link[]) | TNil;\n onToggle?: null | (() => void);\n};\n\n// export for tests\nexport function KeyValuesSummary(props: { data?: KeyValuePair[] }) {\n const { data } = props;\n if (!Array.isArray(data) || !data.length) {\n return null;\n }\n return (\n
    \n {data.map((item, i) => (\n // `i` is necessary in the key because item.key can repeat\n // eslint-disable-next-line react/no-array-index-key\n
  • \n {item.key}\n =\n {String(item.value)}\n
  • \n ))}\n
\n );\n}\n\nKeyValuesSummary.defaultProps = {\n data: null,\n};\n\nexport default function AccordianKeyValues(props: AccordianKeyValuesProps) {\n const { className, data, highContrast, interactive, isOpen, label, linksGetter, onToggle } = props;\n const isEmpty = !Array.isArray(data) || !data.length;\n const iconCls = cx('u-align-icon', { 'AccordianKeyValues--emptyIcon': isEmpty });\n let arrow: React.ReactNode | null = null;\n let headerProps: Object | null = null;\n if (interactive) {\n arrow = isOpen ? : ;\n headerProps = {\n 'aria-checked': isOpen,\n onClick: isEmpty ? null : onToggle,\n role: 'switch',\n };\n }\n\n return (\n
\n \n {arrow}\n \n {label}\n {isOpen || ':'}\n \n {!isOpen && }\n
\n {isOpen && }\n
\n );\n}\n\nAccordianKeyValues.defaultProps = {\n className: null,\n highContrast: false,\n interactive: true,\n onToggle: null,\n};\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport cx from 'classnames';\nimport _sortBy from 'lodash/sortBy';\nimport IoIosArrowDown from 'react-icons/lib/io/ios-arrow-down';\nimport IoIosArrowRight from 'react-icons/lib/io/ios-arrow-right';\n\nimport AccordianKeyValues from './AccordianKeyValues';\nimport { formatDuration } from '../utils';\nimport { TNil } from '../../../../types';\nimport { Log, KeyValuePair, Link } from '../../../../types/trace';\n\nimport './AccordianLogs.css';\n\ntype AccordianLogsProps = {\n interactive?: boolean;\n isOpen: boolean;\n linksGetter: ((pairs: KeyValuePair[], index: number) => Link[]) | TNil;\n logs: Log[];\n onItemToggle?: (log: Log) => void;\n onToggle?: () => void;\n openedItems?: Set;\n timestamp: number;\n};\n\nexport default function AccordianLogs(props: AccordianLogsProps) {\n const { interactive, isOpen, linksGetter, logs, openedItems, onItemToggle, onToggle, timestamp } = props;\n let arrow: React.ReactNode | null = null;\n let HeaderComponent: 'span' | 'a' = 'span';\n let headerProps: Object | null = null;\n if (interactive) {\n arrow = isOpen ? (\n \n ) : (\n \n );\n HeaderComponent = 'a';\n headerProps = {\n 'aria-checked': isOpen,\n onClick: onToggle,\n role: 'switch',\n };\n }\n\n return (\n
\n \n {arrow} Logs ({logs.length})\n \n {isOpen && (\n
\n {_sortBy(logs, 'timestamp').map((log, i) => (\n onItemToggle(log) : null}\n />\n ))}\n \n Log timestamps are relative to the start time of the full trace.\n \n
\n )}\n
\n );\n}\n\nAccordianLogs.defaultProps = {\n interactive: true,\n linksGetter: undefined,\n onItemToggle: undefined,\n onToggle: undefined,\n openedItems: undefined,\n};\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React from 'react';\nimport { Popover } from 'antd';\nimport _groupBy from 'lodash/groupBy';\nimport { onlyUpdateForKeys, compose, withState, withProps } from 'recompose';\n\nimport AccordianLogs from './SpanDetail/AccordianLogs';\n\nimport { ViewedBoundsFunctionType } from './utils';\nimport { TNil } from '../../../types';\nimport { Span } from '../../../types/trace';\n\nimport './SpanBar.css';\n\ntype TCommonProps = {\n color: string;\n hintSide: string;\n // onClick: (evt: React.MouseEvent) => void;\n onClick?: (evt: React.MouseEvent) => void;\n viewEnd: number;\n viewStart: number;\n getViewedBounds: ViewedBoundsFunctionType;\n rpc:\n | {\n viewStart: number;\n viewEnd: number;\n color: string;\n }\n | TNil;\n traceStartTime: number;\n span: Span;\n};\n\ntype TInnerProps = {\n label: string;\n setLongLabel: () => void;\n setShortLabel: () => void;\n} & TCommonProps;\n\ntype TOuterProps = {\n longLabel: string;\n shortLabel: string;\n} & TCommonProps;\n\nfunction toPercent(value: number) {\n return `${(value * 100).toFixed(1)}%`;\n}\n\nfunction SpanBar(props: TInnerProps) {\n const {\n viewEnd,\n viewStart,\n getViewedBounds,\n color,\n label,\n hintSide,\n onClick,\n setLongLabel,\n setShortLabel,\n rpc,\n traceStartTime,\n span,\n } = props;\n // group logs based on timestamps\n const logGroups = _groupBy(span.logs, log => {\n const posPercent = getViewedBounds(log.timestamp, log.timestamp).start;\n // round to the nearest 0.2%\n return toPercent(Math.round(posPercent * 500) / 500);\n });\n\n return (\n \n \n
{label}
\n
\n
\n {Object.keys(logGroups).map(positionKey => (\n \n }\n >\n
\n \n ))}\n
\n {rpc && (\n \n )}\n
\n );\n}\n\nexport default compose(\n withState('label', 'setLabel', (props: { shortLabel: string }) => props.shortLabel),\n withProps(\n ({\n setLabel,\n shortLabel,\n longLabel,\n }: {\n setLabel: (label: string) => void;\n shortLabel: string;\n longLabel: string;\n }) => ({\n setLongLabel: () => setLabel(longLabel),\n setShortLabel: () => setLabel(shortLabel),\n })\n ),\n onlyUpdateForKeys(['label', 'rpc', 'viewStart', 'viewEnd'])\n)(SpanBar);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport IoAlert from 'react-icons/lib/io/alert';\nimport IoArrowRightA from 'react-icons/lib/io/arrow-right-a';\nimport IoNetwork from 'react-icons/lib/io/network';\nimport MdFileUpload from 'react-icons/lib/md/file-upload';\nimport ReferencesButton from './ReferencesButton';\nimport TimelineRow from './TimelineRow';\nimport { formatDuration, ViewedBoundsFunctionType } from './utils';\nimport SpanTreeOffset from './SpanTreeOffset';\nimport SpanBar from './SpanBar';\nimport Ticks from './Ticks';\n\nimport { TNil } from '../../../types';\nimport { Span } from '../../../types/trace';\n\nimport './SpanBarRow.css';\n\ntype SpanBarRowProps = {\n className?: string;\n color: string;\n columnDivision: number;\n isChildrenExpanded: boolean;\n isDetailExpanded: boolean;\n isMatchingFilter: boolean;\n onDetailToggled: (spanID: string) => void;\n onChildrenToggled: (spanID: string) => void;\n numTicks: number;\n rpc?:\n | {\n viewStart: number;\n viewEnd: number;\n color: string;\n operationName: string;\n serviceName: string;\n }\n | TNil;\n showErrorIcon: boolean;\n getViewedBounds: ViewedBoundsFunctionType;\n traceStartTime: number;\n span: Span;\n focusSpan: (spanID: string) => void;\n};\n\n/**\n * This was originally a stateless function, but changing to a PureComponent\n * reduced the render time of expanding a span row detail by ~50%. This is\n * even true in the case where the stateless function has the same prop types as\n * this class and arrow functions are created in the stateless function as\n * handlers to the onClick props. E.g. for now, the PureComponent is more\n * performance than the stateless function.\n */\nexport default class SpanBarRow extends React.PureComponent {\n static defaultProps = {\n className: '',\n rpc: null,\n };\n\n _detailToggle = () => {\n this.props.onDetailToggled(this.props.span.spanID);\n };\n\n _childrenToggle = () => {\n this.props.onChildrenToggled(this.props.span.spanID);\n };\n\n render() {\n const {\n className,\n color,\n columnDivision,\n isChildrenExpanded,\n isDetailExpanded,\n isMatchingFilter,\n numTicks,\n rpc,\n showErrorIcon,\n getViewedBounds,\n traceStartTime,\n span,\n focusSpan,\n } = this.props;\n const {\n duration,\n hasChildren: isParent,\n operationName,\n process: { serviceName },\n } = span;\n const label = formatDuration(duration);\n const viewBounds = getViewedBounds(span.startTime, span.startTime + span.duration);\n const viewStart = viewBounds.start;\n const viewEnd = viewBounds.end;\n\n const labelDetail = `${serviceName}::${operationName}`;\n let longLabel;\n let hintSide;\n if (viewStart > 1 - viewEnd) {\n longLabel = `${labelDetail} | ${label}`;\n hintSide = 'left';\n } else {\n longLabel = `${label} | ${labelDetail}`;\n hintSide = 'right';\n }\n\n return (\n \n \n
\n \n \n \n {showErrorIcon && }\n {serviceName}{' '}\n {rpc && (\n \n {' '}\n \n {rpc.serviceName}\n \n )}\n \n {rpc ? rpc.operationName : operationName}\n \n {span.references && span.references.length > 1 && (\n \n \n \n )}\n {span.subsidiarilyReferencedBy && span.subsidiarilyReferencedBy.length > 0 && (\n \n \n \n )}\n
\n
\n \n \n \n \n \n );\n }\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\n\nimport './TextList.css';\n\ntype TextListProps = {\n data: string[];\n};\n\nexport default function TextList(props: TextListProps) {\n const { data } = props;\n return (\n
\n
    \n {data.map((row, i) => {\n return (\n // `i` is necessary in the key because row.key can repeat\n // eslint-disable-next-line react/no-array-index-key\n
  • {row}
  • \n );\n })}\n
\n
\n );\n}\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport cx from 'classnames';\nimport IoIosArrowDown from 'react-icons/lib/io/ios-arrow-down';\nimport IoIosArrowRight from 'react-icons/lib/io/ios-arrow-right';\nimport TextList from './TextList';\nimport { TNil } from '../../../../types';\n\nimport './AccordianText.css';\n\ntype AccordianTextProps = {\n className?: string | TNil;\n data: string[];\n headerClassName?: string | TNil;\n highContrast?: boolean;\n interactive?: boolean;\n isOpen: boolean;\n label: React.ReactNode;\n onToggle?: null | (() => void);\n};\n\nexport default function AccordianText(props: AccordianTextProps) {\n const { className, data, headerClassName, highContrast, interactive, isOpen, label, onToggle } = props;\n const isEmpty = !Array.isArray(data) || !data.length;\n const iconCls = cx('u-align-icon', { 'AccordianKeyValues--emptyIcon': isEmpty });\n let arrow: React.ReactNode | null = null;\n let headerProps: Object | null = null;\n if (interactive) {\n arrow = isOpen ? : ;\n headerProps = {\n 'aria-checked': isOpen,\n onClick: isEmpty ? null : onToggle,\n role: 'switch',\n };\n }\n return (\n
\n \n {arrow} {label} ({data.length})\n
\n {isOpen && }\n
\n );\n}\n\nAccordianText.defaultProps = {\n className: null,\n highContrast: false,\n interactive: true,\n onToggle: null,\n};\n","// Copyright (c) 2019 The Jaeger Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport cx from 'classnames';\nimport IoIosArrowDown from 'react-icons/lib/io/ios-arrow-down';\nimport IoIosArrowRight from 'react-icons/lib/io/ios-arrow-right';\nimport './AccordianReferences.css';\nimport { SpanReference } from '../../../../types/trace';\nimport ReferenceLink from '../../url/ReferenceLink';\n\ntype AccordianReferencesProps = {\n data: SpanReference[];\n highContrast?: boolean;\n interactive?: boolean;\n isOpen: boolean;\n onToggle?: null | (() => void);\n focusSpan: (uiFind: string) => void;\n};\n\ntype ReferenceItemProps = {\n data: SpanReference[];\n focusSpan: (uiFind: string) => void;\n};\n\n// export for test\nexport function References(props: ReferenceItemProps) {\n const { data, focusSpan } = props;\n\n return (\n
\n
    \n {data.map(reference => {\n return (\n
  • \n \n \n {reference.span ? (\n \n {reference.span.process.serviceName}\n {reference.span.operationName}\n \n ) : (\n < span in another trace >\n )}\n \n \n {reference.refType}\n \n \n {reference.spanID}\n \n \n \n \n
  • \n );\n })}\n
\n
\n );\n}\n\nexport default class AccordianReferences extends React.PureComponent {\n static defaultProps = {\n highContrast: false,\n interactive: true,\n onToggle: null,\n };\n\n render() {\n const { data, highContrast, interactive, isOpen, onToggle, focusSpan } = this.props;\n const isEmpty = !Array.isArray(data) || !data.length;\n const iconCls = cx('u-align-icon', { 'AccordianKReferences--emptyIcon': isEmpty });\n let arrow: React.ReactNode | null = null;\n let headerProps: Object | null = null;\n if (interactive) {\n arrow = isOpen ? : ;\n headerProps = {\n 'aria-checked': isOpen,\n onClick: isEmpty ? null : onToggle,\n role: 'switch',\n };\n }\n return (\n
\n \n {arrow}\n \n References\n {' '}\n ({data.length})\n
\n {isOpen && }\n \n );\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React from 'react';\nimport { Divider } from 'antd';\n\nimport AccordianKeyValues from './AccordianKeyValues';\nimport AccordianLogs from './AccordianLogs';\nimport AccordianText from './AccordianText';\nimport DetailState from './DetailState';\nimport { formatDuration } from '../utils';\nimport CopyIcon from '../../../common/CopyIcon';\nimport LabeledList from '../../../common/LabeledList';\n\nimport { TNil } from '../../../../types';\nimport { KeyValuePair, Link, Log, Span } from '../../../../types/trace';\n\nimport './index.css';\nimport AccordianReferences from './AccordianReferences';\n\ntype SpanDetailProps = {\n detailState: DetailState;\n linksGetter: ((links: KeyValuePair[], index: number) => Link[]) | TNil;\n logItemToggle: (spanID: string, log: Log) => void;\n logsToggle: (spanID: string) => void;\n processToggle: (spanID: string) => void;\n span: Span;\n tagsToggle: (spanID: string) => void;\n traceStartTime: number;\n warningsToggle: (spanID: string) => void;\n referencesToggle: (spanID: string) => void;\n focusSpan: (uiFind: string) => void;\n};\n\nexport default function SpanDetail(props: SpanDetailProps) {\n const {\n detailState,\n linksGetter,\n logItemToggle,\n logsToggle,\n processToggle,\n span,\n tagsToggle,\n traceStartTime,\n warningsToggle,\n referencesToggle,\n focusSpan,\n } = props;\n const { isTagsOpen, isProcessOpen, logs: logsState, isWarningsOpen, isReferencesOpen } = detailState;\n const {\n operationName,\n process,\n duration,\n relativeStartTime,\n spanID,\n logs,\n tags,\n warnings,\n references,\n } = span;\n const overviewItems = [\n {\n key: 'svc',\n label: 'Service:',\n value: process.serviceName,\n },\n {\n key: 'duration',\n label: 'Duration:',\n value: formatDuration(duration),\n },\n {\n key: 'start',\n label: 'Start Time:',\n value: formatDuration(relativeStartTime),\n },\n ];\n const deepLinkCopyText = `${window.location.origin}${window.location.pathname}?uiFind=${spanID}`;\n\n return (\n
\n
\n

{operationName}

\n \n
\n \n
\n
\n tagsToggle(spanID)}\n />\n {process.tags && (\n processToggle(spanID)}\n />\n )}\n
\n {logs && logs.length > 0 && (\n logsToggle(spanID)}\n onItemToggle={logItem => logItemToggle(spanID, logItem)}\n timestamp={traceStartTime}\n />\n )}\n {warnings && warnings.length > 0 && (\n Warnings}\n data={warnings}\n isOpen={isWarningsOpen}\n onToggle={() => warningsToggle(spanID)}\n />\n )}\n {references && references.length > 1 && (\n referencesToggle(spanID)}\n focusSpan={focusSpan}\n />\n )}\n \n {spanID}\n \n \n
\n
\n );\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React from 'react';\n\nimport SpanDetail from './SpanDetail';\nimport DetailState from './SpanDetail/DetailState';\nimport SpanTreeOffset from './SpanTreeOffset';\nimport TimelineRow from './TimelineRow';\n\nimport { Log, Span, KeyValuePair, Link } from '../../../types/trace';\n\nimport './SpanDetailRow.css';\n\ntype SpanDetailRowProps = {\n color: string;\n columnDivision: number;\n detailState: DetailState;\n onDetailToggled: (spanID: string) => void;\n linksGetter: (span: Span, links: KeyValuePair[], index: number) => Link[];\n logItemToggle: (spanID: string, log: Log) => void;\n logsToggle: (spanID: string) => void;\n processToggle: (spanID: string) => void;\n referencesToggle: (spanID: string) => void;\n warningsToggle: (spanID: string) => void;\n span: Span;\n tagsToggle: (spanID: string) => void;\n traceStartTime: number;\n focusSpan: (uiFind: string) => void;\n};\n\nexport default class SpanDetailRow extends React.PureComponent {\n _detailToggle = () => {\n this.props.onDetailToggled(this.props.span.spanID);\n };\n\n _linksGetter = (items: KeyValuePair[], itemIndex: number) => {\n const { linksGetter, span } = this.props;\n return linksGetter(span, items, itemIndex);\n };\n\n render() {\n const {\n color,\n columnDivision,\n detailState,\n logItemToggle,\n logsToggle,\n processToggle,\n referencesToggle,\n warningsToggle,\n span,\n tagsToggle,\n traceStartTime,\n focusSpan,\n } = this.props;\n return (\n \n \n \n \n \n \n \n \n
\n \n
\n
\n
\n );\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport cx from 'classnames';\nimport { connect } from 'react-redux';\nimport { bindActionCreators, Dispatch } from 'redux';\nimport { withRouter, RouteComponentProps } from 'react-router-dom';\n\n// import { History as RouterHistory, Location } from 'history';\n\nimport { actions } from './duck';\nimport ListView from './ListView';\nimport SpanBarRow from './SpanBarRow';\nimport DetailState from './SpanDetail/DetailState';\nimport SpanDetailRow from './SpanDetailRow';\nimport {\n createViewedBoundsFunc,\n findServerChildSpan,\n isErrorSpan,\n spanContainsErredSpan,\n ViewedBoundsFunctionType,\n} from './utils';\nimport { Accessors } from '../ScrollManager';\nimport { extractUiFindFromState, TExtractUiFindFromStateReturn } from '../../common/UiFindInput';\nimport getLinks from '../../../model/link-patterns';\nimport colorGenerator from '../../../utils/color-generator';\nimport { TNil, ReduxState } from '../../../types';\nimport { Log, Span, Trace, KeyValuePair } from '../../../types/trace';\nimport TTraceTimeline from '../../../types/TTraceTimeline';\n\nimport './VirtualizedTraceView.css';\nimport updateUiFind from '../../../utils/update-ui-find';\n\ntype RowState = {\n isDetail: boolean;\n span: Span;\n spanIndex: number;\n};\n\ntype TVirtualizedTraceViewOwnProps = {\n currentViewRangeTime: [number, number];\n findMatchesIDs: Set | TNil;\n scrollToFirstVisibleSpan: () => void;\n registerAccessors: (accesors: Accessors) => void;\n trace: Trace;\n};\n\ntype TDispatchProps = {\n childrenToggle: (spanID: string) => void;\n clearShouldScrollToFirstUiFindMatch: () => void;\n detailLogItemToggle: (spanID: string, log: Log) => void;\n detailLogsToggle: (spanID: string) => void;\n detailWarningsToggle: (spanID: string) => void;\n detailReferencesToggle: (spanID: string) => void;\n detailProcessToggle: (spanID: string) => void;\n detailTagsToggle: (spanID: string) => void;\n detailToggle: (spanID: string) => void;\n setSpanNameColumnWidth: (width: number) => void;\n setTrace: (trace: Trace | TNil, uiFind: string | TNil) => void;\n focusUiFindMatches: (trace: Trace, uiFind: string | TNil, allowHide?: boolean) => void;\n};\n\ntype VirtualizedTraceViewProps = TVirtualizedTraceViewOwnProps &\n TDispatchProps &\n TExtractUiFindFromStateReturn &\n TTraceTimeline &\n RouteComponentProps;\n\n// export for tests\nexport const DEFAULT_HEIGHTS = {\n bar: 28,\n detail: 161,\n detailWithLogs: 197,\n};\n\nconst NUM_TICKS = 5;\n\nfunction generateRowStates(\n spans: Span[] | TNil,\n childrenHiddenIDs: Set,\n detailStates: Map\n): RowState[] {\n if (!spans) {\n return [];\n }\n let collapseDepth = null;\n const rowStates = [];\n for (let i = 0; i < spans.length; i++) {\n const span = spans[i];\n const { spanID, depth } = span;\n let hidden = false;\n if (collapseDepth != null) {\n if (depth >= collapseDepth) {\n hidden = true;\n } else {\n collapseDepth = null;\n }\n }\n if (hidden) {\n continue;\n }\n if (childrenHiddenIDs.has(spanID)) {\n collapseDepth = depth + 1;\n }\n rowStates.push({\n span,\n isDetail: false,\n spanIndex: i,\n });\n if (detailStates.has(spanID)) {\n rowStates.push({\n span,\n isDetail: true,\n spanIndex: i,\n });\n }\n }\n return rowStates;\n}\n\nfunction getCssClasses(currentViewRange: [number, number]) {\n const [zoomStart, zoomEnd] = currentViewRange;\n return cx({\n 'clipping-left': zoomStart > 0,\n 'clipping-right': zoomEnd < 1,\n });\n}\n\n// export from tests\nexport class VirtualizedTraceViewImpl extends React.Component {\n clippingCssClasses: string;\n listView: ListView | TNil;\n rowStates: RowState[];\n getViewedBounds: ViewedBoundsFunctionType;\n\n constructor(props: VirtualizedTraceViewProps) {\n super(props);\n // keep \"prop derivations\" on the instance instead of calculating in\n // `.render()` to avoid recalculating in every invocation of `.renderRow()`\n const { currentViewRangeTime, childrenHiddenIDs, detailStates, setTrace, trace, uiFind } = props;\n this.clippingCssClasses = getCssClasses(currentViewRangeTime);\n const [zoomStart, zoomEnd] = currentViewRangeTime;\n this.getViewedBounds = createViewedBoundsFunc({\n min: trace.startTime,\n max: trace.endTime,\n viewStart: zoomStart,\n viewEnd: zoomEnd,\n });\n this.rowStates = generateRowStates(trace.spans, childrenHiddenIDs, detailStates);\n\n setTrace(trace, uiFind);\n }\n\n shouldComponentUpdate(nextProps: VirtualizedTraceViewProps) {\n // If any prop updates, VirtualizedTraceViewImpl should update.\n const nextPropKeys = Object.keys(nextProps) as (keyof VirtualizedTraceViewProps)[];\n for (let i = 0; i < nextPropKeys.length; i += 1) {\n if (nextProps[nextPropKeys[i]] !== this.props[nextPropKeys[i]]) {\n // Unless the only change was props.shouldScrollToFirstUiFindMatch changing to false.\n if (nextPropKeys[i] === 'shouldScrollToFirstUiFindMatch') {\n if (nextProps[nextPropKeys[i]]) return true;\n } else {\n return true;\n }\n }\n }\n return false;\n }\n\n componentWillUpdate(nextProps: VirtualizedTraceViewProps) {\n const { childrenHiddenIDs, detailStates, registerAccessors, trace, currentViewRangeTime } = this.props;\n const {\n currentViewRangeTime: nextViewRangeTime,\n childrenHiddenIDs: nextHiddenIDs,\n detailStates: nextDetailStates,\n registerAccessors: nextRegisterAccessors,\n setTrace,\n trace: nextTrace,\n uiFind,\n } = nextProps;\n if (trace !== nextTrace) {\n setTrace(nextTrace, uiFind);\n }\n if (trace !== nextTrace || childrenHiddenIDs !== nextHiddenIDs || detailStates !== nextDetailStates) {\n this.rowStates = nextTrace ? generateRowStates(nextTrace.spans, nextHiddenIDs, nextDetailStates) : [];\n }\n if (currentViewRangeTime !== nextViewRangeTime) {\n this.clippingCssClasses = getCssClasses(nextViewRangeTime);\n const [zoomStart, zoomEnd] = nextViewRangeTime;\n this.getViewedBounds = createViewedBoundsFunc({\n min: trace.startTime,\n max: trace.endTime,\n viewStart: zoomStart,\n viewEnd: zoomEnd,\n });\n }\n if (this.listView && registerAccessors !== nextRegisterAccessors) {\n nextRegisterAccessors(this.getAccessors());\n }\n }\n\n componentDidUpdate() {\n const {\n shouldScrollToFirstUiFindMatch,\n clearShouldScrollToFirstUiFindMatch,\n scrollToFirstVisibleSpan,\n } = this.props;\n if (shouldScrollToFirstUiFindMatch) {\n scrollToFirstVisibleSpan();\n clearShouldScrollToFirstUiFindMatch();\n }\n }\n\n focusSpan = (uiFind: string) => {\n const { trace, focusUiFindMatches, location, history } = this.props;\n if (trace) {\n updateUiFind({\n location,\n history,\n uiFind,\n });\n focusUiFindMatches(trace, uiFind, false);\n }\n };\n\n getAccessors() {\n const lv = this.listView;\n if (!lv) {\n throw new Error('ListView unavailable');\n }\n return {\n getViewRange: this.getViewRange,\n getSearchedSpanIDs: this.getSearchedSpanIDs,\n getCollapsedChildren: this.getCollapsedChildren,\n getViewHeight: lv.getViewHeight,\n getBottomRowIndexVisible: lv.getBottomVisibleIndex,\n getTopRowIndexVisible: lv.getTopVisibleIndex,\n getRowPosition: lv.getRowPosition,\n mapRowIndexToSpanIndex: this.mapRowIndexToSpanIndex,\n mapSpanIndexToRowIndex: this.mapSpanIndexToRowIndex,\n };\n }\n\n getViewRange = () => this.props.currentViewRangeTime;\n\n getSearchedSpanIDs = () => this.props.findMatchesIDs;\n\n getCollapsedChildren = () => this.props.childrenHiddenIDs;\n\n mapRowIndexToSpanIndex = (index: number) => this.rowStates[index].spanIndex;\n\n mapSpanIndexToRowIndex = (index: number) => {\n const max = this.rowStates.length;\n for (let i = 0; i < max; i++) {\n const { spanIndex } = this.rowStates[i];\n if (spanIndex === index) {\n return i;\n }\n }\n throw new Error(`unable to find row for span index: ${index}`);\n };\n\n setListView = (listView: ListView | TNil) => {\n const isChanged = this.listView !== listView;\n this.listView = listView;\n if (listView && isChanged) {\n this.props.registerAccessors(this.getAccessors());\n }\n };\n\n // use long form syntax to avert flow error\n // https://github.com/facebook/flow/issues/3076#issuecomment-290944051\n getKeyFromIndex = (index: number) => {\n const { isDetail, span } = this.rowStates[index];\n return `${span.spanID}--${isDetail ? 'detail' : 'bar'}`;\n };\n\n getIndexFromKey = (key: string) => {\n const parts = key.split('--');\n const _spanID = parts[0];\n const _isDetail = parts[1] === 'detail';\n const max = this.rowStates.length;\n for (let i = 0; i < max; i++) {\n const { span, isDetail } = this.rowStates[i];\n if (span.spanID === _spanID && isDetail === _isDetail) {\n return i;\n }\n }\n return -1;\n };\n\n getRowHeight = (index: number) => {\n const { span, isDetail } = this.rowStates[index];\n if (!isDetail) {\n return DEFAULT_HEIGHTS.bar;\n }\n if (Array.isArray(span.logs) && span.logs.length) {\n return DEFAULT_HEIGHTS.detailWithLogs;\n }\n return DEFAULT_HEIGHTS.detail;\n };\n\n linksGetter = (span: Span, items: KeyValuePair[], itemIndex: number) => getLinks(span, items, itemIndex);\n\n renderRow = (key: string, style: React.CSSProperties, index: number, attrs: {}) => {\n const { isDetail, span, spanIndex } = this.rowStates[index];\n return isDetail\n ? this.renderSpanDetailRow(span, key, style, attrs)\n : this.renderSpanBarRow(span, spanIndex, key, style, attrs);\n };\n\n renderSpanBarRow(span: Span, spanIndex: number, key: string, style: React.CSSProperties, attrs: {}) {\n const { spanID } = span;\n const { serviceName } = span.process;\n const {\n childrenHiddenIDs,\n childrenToggle,\n detailStates,\n detailToggle,\n findMatchesIDs,\n spanNameColumnWidth,\n trace,\n } = this.props;\n // to avert flow error\n if (!trace) {\n return null;\n }\n const color = colorGenerator.getColorByKey(serviceName);\n const isCollapsed = childrenHiddenIDs.has(spanID);\n const isDetailExpanded = detailStates.has(spanID);\n const isMatchingFilter = findMatchesIDs ? findMatchesIDs.has(spanID) : false;\n const showErrorIcon = isErrorSpan(span) || (isCollapsed && spanContainsErredSpan(trace.spans, spanIndex));\n\n // Check for direct child \"server\" span if the span is a \"client\" span.\n let rpc = null;\n if (isCollapsed) {\n const rpcSpan = findServerChildSpan(trace.spans.slice(spanIndex));\n if (rpcSpan) {\n const rpcViewBounds = this.getViewedBounds(rpcSpan.startTime, rpcSpan.startTime + rpcSpan.duration);\n rpc = {\n color: colorGenerator.getColorByKey(rpcSpan.process.serviceName),\n operationName: rpcSpan.operationName,\n serviceName: rpcSpan.process.serviceName,\n viewEnd: rpcViewBounds.end,\n viewStart: rpcViewBounds.start,\n };\n }\n }\n return (\n
\n \n
\n );\n }\n\n renderSpanDetailRow(span: Span, key: string, style: React.CSSProperties, attrs: {}) {\n const { spanID } = span;\n const { serviceName } = span.process;\n const {\n detailLogItemToggle,\n detailLogsToggle,\n detailProcessToggle,\n detailReferencesToggle,\n detailWarningsToggle,\n detailStates,\n detailTagsToggle,\n detailToggle,\n spanNameColumnWidth,\n trace,\n } = this.props;\n const detailState = detailStates.get(spanID);\n if (!trace || !detailState) {\n return null;\n }\n const color = colorGenerator.getColorByKey(serviceName);\n return (\n
\n \n
\n );\n }\n\n render() {\n return (\n
\n \n
\n );\n }\n}\n\n/* istanbul ignore next */\nfunction mapStateToProps(state: ReduxState): TTraceTimeline & TExtractUiFindFromStateReturn {\n return {\n ...extractUiFindFromState(state),\n ...state.traceTimeline,\n };\n}\n\n/* istanbul ignore next */\nfunction mapDispatchToProps(dispatch: Dispatch): TDispatchProps {\n return (bindActionCreators(actions, dispatch) as any) as TDispatchProps;\n}\n\nexport default withRouter(\n connect<\n TTraceTimeline & TExtractUiFindFromStateReturn,\n TDispatchProps,\n TVirtualizedTraceViewOwnProps,\n ReduxState\n >(\n mapStateToProps,\n mapDispatchToProps\n )(VirtualizedTraceViewImpl)\n);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { bindActionCreators, Dispatch } from 'redux';\n\nimport { actions } from './duck';\nimport TimelineHeaderRow from './TimelineHeaderRow';\nimport VirtualizedTraceView from './VirtualizedTraceView';\nimport { merge as mergeShortcuts } from '../keyboard-shortcuts';\nimport { Accessors } from '../ScrollManager';\nimport { TUpdateViewRangeTimeFunction, IViewRange, ViewRangeTimeUpdate } from '../types';\nimport { TNil, ReduxState } from '../../../types';\nimport { Span, Trace } from '../../../types/trace';\n\nimport './index.css';\n\ntype TDispatchProps = {\n setSpanNameColumnWidth: (width: number) => void;\n collapseAll: (spans: Span[]) => void;\n collapseOne: (spans: Span[]) => void;\n expandAll: () => void;\n expandOne: (spans: Span[]) => void;\n};\n\ntype TProps = TDispatchProps & {\n registerAccessors: (accessors: Accessors) => void;\n findMatchesIDs: Set | TNil;\n scrollToFirstVisibleSpan: () => void;\n spanNameColumnWidth: number;\n trace: Trace;\n updateNextViewRangeTime: (update: ViewRangeTimeUpdate) => void;\n updateViewRangeTime: TUpdateViewRangeTimeFunction;\n viewRange: IViewRange;\n};\n\nconst NUM_TICKS = 5;\n\n/**\n * `TraceTimelineViewer` now renders the header row because it is sensitive to\n * `props.viewRange.time.cursor`. If `VirtualizedTraceView` renders it, it will\n * re-render the ListView every time the cursor is moved on the trace minimap\n * or `TimelineHeaderRow`.\n */\nexport class TraceTimelineViewerImpl extends React.PureComponent {\n componentDidMount() {\n mergeShortcuts({\n collapseAll: this.collapseAll,\n expandAll: this.expandAll,\n collapseOne: this.collapseOne,\n expandOne: this.expandOne,\n });\n }\n\n collapseAll = () => {\n this.props.collapseAll(this.props.trace.spans);\n };\n\n collapseOne = () => {\n this.props.collapseOne(this.props.trace.spans);\n };\n\n expandAll = () => {\n this.props.expandAll();\n };\n\n expandOne = () => {\n this.props.expandOne(this.props.trace.spans);\n };\n\n render() {\n const {\n setSpanNameColumnWidth,\n updateNextViewRangeTime,\n updateViewRangeTime,\n viewRange,\n ...rest\n } = this.props;\n const { spanNameColumnWidth, trace } = rest;\n\n return (\n
\n \n \n
\n );\n }\n}\n\nfunction mapStateToProps(state: ReduxState) {\n const spanNameColumnWidth = state.traceTimeline.spanNameColumnWidth;\n return { spanNameColumnWidth };\n}\n\nfunction mapDispatchToProps(dispatch: Dispatch): TDispatchProps {\n const { setSpanNameColumnWidth, expandAll, expandOne, collapseAll, collapseOne } = bindActionCreators(\n actions,\n dispatch\n );\n return { setSpanNameColumnWidth, expandAll, expandOne, collapseAll, collapseOne };\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(TraceTimelineViewerImpl);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as React from 'react';\nimport { Input } from 'antd';\nimport { Location, History as RouterHistory } from 'history';\nimport _clamp from 'lodash/clamp';\nimport _get from 'lodash/get';\nimport _mapValues from 'lodash/mapValues';\nimport _memoize from 'lodash/memoize';\nimport { connect, Dispatch } from 'react-redux';\nimport { match as Match } from 'react-router-dom';\nimport { bindActionCreators } from 'redux';\n\nimport ArchiveNotifier from './ArchiveNotifier';\nimport { actions as archiveActions } from './ArchiveNotifier/duck';\nimport { trackFilter, trackFocusMatches, trackNextMatch, trackPrevMatch, trackRange } from './index.track';\nimport {\n CombokeysHandler,\n merge as mergeShortcuts,\n reset as resetShortcuts,\n ShortcutCallbacks,\n} from './keyboard-shortcuts';\nimport { cancel as cancelScroll, scrollBy, scrollTo } from './scroll-page';\nimport ScrollManager from './ScrollManager';\nimport calculateTraceDagEV from './TraceGraph/calculateTraceDagEV';\nimport TraceGraph from './TraceGraph/TraceGraph';\nimport { TEv } from './TraceGraph/types';\nimport { trackSlimHeaderToggle } from './TracePageHeader/TracePageHeader.track';\nimport TracePageHeader from './TracePageHeader';\nimport TraceTimelineViewer from './TraceTimelineViewer';\nimport { actions as timelineActions } from './TraceTimelineViewer/duck';\nimport { TUpdateViewRangeTimeFunction, IViewRange, ViewRangeTimeUpdate } from './types';\nimport { getLocation, getUrl } from './url';\nimport ErrorMessage from '../common/ErrorMessage';\nimport LoadingIndicator from '../common/LoadingIndicator';\nimport { extractUiFindFromState } from '../common/UiFindInput';\nimport * as jaegerApiActions from '../../actions/jaeger-api';\nimport { getUiFindVertexKeys } from '../TraceDiff/TraceDiffGraph/traceDiffGraphUtils';\nimport { fetchedState } from '../../constants';\nimport { FetchedTrace, ReduxState, TNil } from '../../types';\nimport { Trace } from '../../types/trace';\nimport { TraceArchive } from '../../types/archive';\nimport { EmbeddedState } from '../../types/embedded';\nimport filterSpans from '../../utils/filter-spans';\nimport updateUiFind from '../../utils/update-ui-find';\n\nimport './index.css';\n\ntype TDispatchProps = {\n acknowledgeArchive: (id: string) => void;\n archiveTrace: (id: string) => void;\n fetchTrace: (id: string) => void;\n focusUiFindMatches: (trace: Trace, uiFind: string | TNil) => void;\n};\n\ntype TOwnProps = {\n history: RouterHistory;\n location: Location;\n match: Match<{ id: string }>;\n};\n\ntype TReduxProps = {\n archiveEnabled: boolean;\n archiveTraceState: TraceArchive | TNil;\n embedded: null | EmbeddedState;\n id: string;\n searchUrl: null | string;\n trace: FetchedTrace | TNil;\n uiFind: string | TNil;\n};\n\ntype TProps = TDispatchProps & TOwnProps & TReduxProps;\n\ntype TState = {\n headerHeight: number | TNil;\n slimView: boolean;\n traceGraphView: boolean;\n viewRange: IViewRange;\n};\n\n// export for tests\nexport const VIEW_MIN_RANGE = 0.01;\nconst VIEW_CHANGE_BASE = 0.005;\nconst VIEW_CHANGE_FAST = 0.05;\n\n// export for tests\nexport const shortcutConfig = {\n panLeft: [-VIEW_CHANGE_BASE, -VIEW_CHANGE_BASE],\n panLeftFast: [-VIEW_CHANGE_FAST, -VIEW_CHANGE_FAST],\n panRight: [VIEW_CHANGE_BASE, VIEW_CHANGE_BASE],\n panRightFast: [VIEW_CHANGE_FAST, VIEW_CHANGE_FAST],\n zoomIn: [VIEW_CHANGE_BASE, -VIEW_CHANGE_BASE],\n zoomInFast: [VIEW_CHANGE_FAST, -VIEW_CHANGE_FAST],\n zoomOut: [-VIEW_CHANGE_BASE, VIEW_CHANGE_BASE],\n zoomOutFast: [-VIEW_CHANGE_FAST, VIEW_CHANGE_FAST],\n};\n\n// export for tests\nexport function makeShortcutCallbacks(adjRange: (start: number, end: number) => void): ShortcutCallbacks {\n function getHandler([startChange, endChange]: [number, number]): CombokeysHandler {\n return function combokeyHandler(event: React.KeyboardEvent) {\n event.preventDefault();\n adjRange(startChange, endChange);\n };\n }\n return _mapValues(shortcutConfig, getHandler);\n}\n\n// export for tests\nexport class TracePageImpl extends React.PureComponent {\n state: TState;\n\n _headerElm: HTMLElement | TNil;\n _filterSpans: typeof filterSpans;\n _searchBar: React.RefObject;\n _scrollManager: ScrollManager;\n traceDagEV: TEv | TNil;\n\n constructor(props: TProps) {\n super(props);\n const { embedded, trace } = props;\n this.state = {\n headerHeight: null,\n slimView: Boolean(embedded && embedded.timeline.collapseTitle),\n traceGraphView: false,\n viewRange: {\n time: {\n current: [0, 1],\n },\n },\n };\n this._headerElm = null;\n this._filterSpans = _memoize(\n filterSpans,\n // Do not use the memo if the filter text or trace has changed.\n // trace.data.spans is populated after the initial render via mutation.\n textFilter =>\n `${textFilter} ${_get(this.props.trace, 'traceID')} ${_get(this.props.trace, 'data.spans.length')}`\n );\n this._scrollManager = new ScrollManager(trace && trace.data, {\n scrollBy,\n scrollTo,\n });\n this._searchBar = React.createRef();\n resetShortcuts();\n }\n\n componentDidMount() {\n this.ensureTraceFetched();\n this.updateViewRangeTime(0, 1);\n /* istanbul ignore if */\n if (!this._scrollManager) {\n throw new Error('Invalid state - scrollManager is unset');\n }\n const {\n scrollPageDown,\n scrollPageUp,\n scrollToNextVisibleSpan,\n scrollToPrevVisibleSpan,\n } = this._scrollManager;\n const adjViewRange = (a: number, b: number) => this._adjustViewRange(a, b, 'kbd');\n const shortcutCallbacks = makeShortcutCallbacks(adjViewRange);\n shortcutCallbacks.scrollPageDown = scrollPageDown;\n shortcutCallbacks.scrollPageUp = scrollPageUp;\n shortcutCallbacks.scrollToNextVisibleSpan = scrollToNextVisibleSpan;\n shortcutCallbacks.scrollToPrevVisibleSpan = scrollToPrevVisibleSpan;\n shortcutCallbacks.clearSearch = this.clearSearch;\n shortcutCallbacks.searchSpans = this.focusOnSearchBar;\n mergeShortcuts(shortcutCallbacks);\n }\n\n componentWillReceiveProps(nextProps: TProps) {\n const { trace } = nextProps;\n this._scrollManager.setTrace(trace && trace.data);\n }\n\n componentDidUpdate({ id: prevID }: TProps) {\n const { id, trace } = this.props;\n this.setHeaderHeight(this._headerElm);\n if (!trace) {\n this.ensureTraceFetched();\n return;\n }\n if (prevID !== id) {\n this.updateViewRangeTime(0, 1);\n this.clearSearch();\n }\n }\n\n componentWillUnmount() {\n resetShortcuts();\n cancelScroll();\n this._scrollManager.destroy();\n this._scrollManager = new ScrollManager(undefined, {\n scrollBy,\n scrollTo,\n });\n }\n\n _adjustViewRange(startChange: number, endChange: number, trackSrc: string) {\n const [viewStart, viewEnd] = this.state.viewRange.time.current;\n let start = _clamp(viewStart + startChange, 0, 0.99);\n let end = _clamp(viewEnd + endChange, 0.01, 1);\n if (end - start < VIEW_MIN_RANGE) {\n if (startChange < 0 && endChange < 0) {\n end = start + VIEW_MIN_RANGE;\n } else if (startChange > 0 && endChange > 0) {\n end = start + VIEW_MIN_RANGE;\n } else {\n const center = viewStart + (viewEnd - viewStart) / 2;\n start = center - VIEW_MIN_RANGE / 2;\n end = center + VIEW_MIN_RANGE / 2;\n }\n }\n this.updateViewRangeTime(start, end, trackSrc);\n }\n\n setHeaderHeight = (elm: HTMLElement | TNil) => {\n this._headerElm = elm;\n if (elm) {\n if (this.state.headerHeight !== elm.clientHeight) {\n this.setState({ headerHeight: elm.clientHeight });\n }\n } else if (this.state.headerHeight) {\n this.setState({ headerHeight: null });\n }\n };\n\n clearSearch = () => {\n const { history, location } = this.props;\n updateUiFind({\n history,\n location,\n trackFindFunction: trackFilter,\n });\n if (this._searchBar.current) this._searchBar.current.blur();\n };\n\n focusOnSearchBar = () => {\n if (this._searchBar.current) this._searchBar.current.focus();\n };\n\n updateViewRangeTime: TUpdateViewRangeTimeFunction = (start: number, end: number, trackSrc?: string) => {\n if (trackSrc) {\n trackRange(trackSrc, [start, end], this.state.viewRange.time.current);\n }\n const current: [number, number] = [start, end];\n const time = { current };\n this.setState((state: TState) => ({ viewRange: { ...state.viewRange, time } }));\n };\n\n updateNextViewRangeTime = (update: ViewRangeTimeUpdate) => {\n this.setState((state: TState) => {\n const time = { ...state.viewRange.time, ...update };\n return { viewRange: { ...state.viewRange, time } };\n });\n };\n\n toggleSlimView = () => {\n const { slimView } = this.state;\n trackSlimHeaderToggle(!slimView);\n this.setState({ slimView: !slimView });\n };\n\n toggleTraceGraphView = () => {\n const { traceGraphView } = this.state;\n if (this.props.trace && this.props.trace.data) {\n this.traceDagEV = calculateTraceDagEV(this.props.trace.data);\n }\n this.setState({ traceGraphView: !traceGraphView });\n };\n\n archiveTrace = () => {\n const { id, archiveTrace } = this.props;\n archiveTrace(id);\n };\n\n acknowledgeArchive = () => {\n const { id, acknowledgeArchive } = this.props;\n acknowledgeArchive(id);\n };\n\n ensureTraceFetched() {\n const { fetchTrace, location, trace, id } = this.props;\n if (!trace) {\n fetchTrace(id);\n return;\n }\n const { history } = this.props;\n if (id && id !== id.toLowerCase()) {\n history.replace(getLocation(id.toLowerCase(), location.state));\n }\n }\n\n focusUiFindMatches = () => {\n const { trace, focusUiFindMatches, uiFind } = this.props;\n if (trace && trace.data) {\n trackFocusMatches();\n focusUiFindMatches(trace.data, uiFind);\n }\n };\n\n nextResult = () => {\n trackNextMatch();\n this._scrollManager.scrollToNextVisibleSpan();\n };\n\n prevResult = () => {\n trackPrevMatch();\n this._scrollManager.scrollToPrevVisibleSpan();\n };\n\n render() {\n const { archiveEnabled, archiveTraceState, embedded, id, searchUrl, uiFind, trace } = this.props;\n const { slimView, traceGraphView, headerHeight, viewRange } = this.state;\n if (!trace || trace.state === fetchedState.LOADING) {\n return ;\n }\n const { data } = trace;\n if (trace.state === fetchedState.ERROR || !data) {\n return ;\n }\n\n let findCount = 0;\n let graphFindMatches;\n let spanFindMatches;\n if (uiFind) {\n if (traceGraphView) {\n graphFindMatches = getUiFindVertexKeys(uiFind, _get(this.traceDagEV, 'vertices', []));\n findCount = graphFindMatches ? graphFindMatches.size : 0;\n } else {\n spanFindMatches = this._filterSpans(uiFind, _get(trace, 'data.spans'));\n findCount = spanFindMatches ? spanFindMatches.size : 0;\n }\n }\n\n const isEmbedded = Boolean(embedded);\n const headerProps = {\n focusUiFindMatches: this.focusUiFindMatches,\n slimView,\n textFilter: uiFind,\n traceGraphView,\n viewRange,\n canCollapse: !embedded || !embedded.timeline.hideSummary || !embedded.timeline.hideMinimap,\n clearSearch: this.clearSearch,\n hideMap: Boolean(traceGraphView || (embedded && embedded.timeline.hideMinimap)),\n hideSummary: Boolean(embedded && embedded.timeline.hideSummary),\n linkToStandalone: getUrl(id),\n nextResult: this.nextResult,\n onArchiveClicked: this.archiveTrace,\n onSlimViewClicked: this.toggleSlimView,\n onTraceGraphViewClicked: this.toggleTraceGraphView,\n prevResult: this.prevResult,\n ref: this._searchBar,\n resultCount: findCount,\n showArchiveButton: !isEmbedded && archiveEnabled,\n showShortcutsHelp: !isEmbedded,\n showStandaloneLink: isEmbedded,\n showViewOptions: !isEmbedded,\n toSearch: searchUrl,\n trace: data,\n updateNextViewRangeTime: this.updateNextViewRangeTime,\n updateViewRangeTime: this.updateViewRangeTime,\n };\n\n return (\n
\n {archiveEnabled && (\n \n )}\n
\n \n
\n {headerHeight &&\n (traceGraphView ? (\n
\n \n
\n ) : (\n
\n \n
\n ))}\n
\n );\n }\n}\n\n// export for tests\nexport function mapStateToProps(state: ReduxState, ownProps: TOwnProps): TReduxProps {\n const { id } = ownProps.match.params;\n const { archive, config, embedded, router } = state;\n const { traces } = state.trace;\n const trace = id ? traces[id] : null;\n const archiveTraceState = id ? archive[id] : null;\n const archiveEnabled = Boolean(config.archiveEnabled);\n const { state: locationState } = router.location;\n const searchUrl = (locationState && locationState.fromSearch) || null;\n\n return {\n ...extractUiFindFromState(state),\n archiveEnabled,\n archiveTraceState,\n embedded,\n id,\n searchUrl,\n trace,\n };\n}\n\n// export for tests\nexport function mapDispatchToProps(dispatch: Dispatch): TDispatchProps {\n const { fetchTrace } = bindActionCreators(jaegerApiActions, dispatch);\n const { archiveTrace, acknowledge: acknowledgeArchive } = bindActionCreators(archiveActions, dispatch);\n const { focusUiFindMatches } = bindActionCreators(timelineActions, dispatch);\n return { acknowledgeArchive, archiveTrace, fetchTrace, focusUiFindMatches };\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(TracePageImpl);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { handleActions } from 'redux-actions';\n\nimport { fetchDependencies } from '../actions/jaeger-api';\n\nconst initialState = {\n dependencies: [],\n loading: false,\n error: null,\n};\n\nfunction fetchStarted(state) {\n return { ...state, loading: true };\n}\n\nfunction fetchDepsDone(state, { payload }) {\n return { ...state, dependencies: payload.data, loading: false };\n}\n\nfunction fetchDepsErred(state, { payload: error }) {\n return { ...state, error, dependencies: [], loading: false };\n}\n\nexport default handleActions(\n {\n [`${fetchDependencies}_PENDING`]: fetchStarted,\n [`${fetchDependencies}_FULFILLED`]: fetchDepsDone,\n [`${fetchDependencies}_REJECTED`]: fetchDepsErred,\n },\n initialState\n);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { handleActions } from 'redux-actions';\n\nimport { actionTypes } from '../actions/ddg';\nimport { fetchDeepDependencyGraph } from '../actions/jaeger-api';\nimport { fetchedState } from '../constants';\nimport { ApiError } from '../types/api-error';\nimport getStateEntryKey from '../model/ddg/getStateEntryKey';\nimport transformDdgData from '../model/ddg/transformDdgData';\nimport {\n EViewModifier,\n TDdgActionMeta,\n TDdgAddViewModifierPayload,\n TDdgClearViewModifiersFromIndicesPayload,\n TDdgPayload,\n TDdgRemoveViewModifierFromIndicesPayload,\n TDdgRemoveViewModifierPayload,\n TDdgViewModifierRemovalPayload,\n} from '../model/ddg/types';\nimport TDdgState, { TDdgStateEntry } from '../types/TDdgState';\nimport guardReducer, { guardReducerWithMeta } from '../utils/guardReducer';\n\nexport function addViewModifier(state: TDdgState, payload: TDdgAddViewModifierPayload) {\n const { visibilityIndices, viewModifier } = payload;\n const key = getStateEntryKey(payload);\n const stateEntry: TDdgStateEntry | void = state[key];\n if (!stateEntry || stateEntry.state !== fetchedState.DONE) {\n console.warn('Cannot set view modifiers for unloaded Deep Dependency Graph'); // eslint-disable-line no-console\n return state;\n }\n\n const viewModifiers = new Map(stateEntry.viewModifiers);\n visibilityIndices.forEach(idx => {\n viewModifiers.set(idx, (viewModifiers.get(idx) || 0) | viewModifier); // eslint-disable-line no-bitwise\n });\n\n return {\n ...state,\n [key]: {\n ...stateEntry,\n viewModifiers,\n },\n };\n}\n\nexport function viewModifierRemoval(state: TDdgState, payload: TDdgViewModifierRemovalPayload) {\n const { visibilityIndices, viewModifier } = payload;\n const key = getStateEntryKey(payload);\n const stateEntry: TDdgStateEntry | void = state[key];\n if (!stateEntry || stateEntry.state !== fetchedState.DONE) {\n console.warn('Cannot change view modifiers for unloaded Deep Dependency Graph'); // eslint-disable-line no-console\n return state;\n }\n\n const viewModifiers = new Map(stateEntry.viewModifiers);\n const indicesToUpdate = visibilityIndices || Array.from(viewModifiers.keys());\n\n indicesToUpdate.forEach(idx => {\n const newValue = viewModifier\n ? (viewModifiers.get(idx) || 0) & ~viewModifier // eslint-disable-line no-bitwise\n : EViewModifier.None;\n\n if (newValue === EViewModifier.None) {\n viewModifiers.delete(idx);\n } else {\n viewModifiers.set(idx, newValue);\n }\n });\n\n return {\n ...state,\n [key]: {\n ...stateEntry,\n viewModifiers,\n },\n };\n}\n\nexport function fetchDeepDependencyGraphStarted(state: TDdgState, { meta }: { meta: TDdgActionMeta }) {\n const { query } = meta;\n const key = getStateEntryKey(query);\n return {\n ...state,\n [key]: {\n state: fetchedState.LOADING,\n },\n };\n}\n\nexport function fetchDeepDependencyGraphDone(\n state: TDdgState,\n { meta, payload }: { meta: TDdgActionMeta; payload: TDdgPayload }\n) {\n const { query } = meta;\n const { service, operation } = query;\n const key = getStateEntryKey(query);\n return {\n ...state,\n [key]: {\n model: transformDdgData(payload, { service, operation }),\n state: fetchedState.DONE,\n viewModifiers: new Map(),\n },\n };\n}\n\nexport function fetchDeepDependencyGraphErred(\n state: TDdgState,\n { meta, payload }: { meta: TDdgActionMeta; payload: ApiError }\n) {\n const { query } = meta;\n const key = getStateEntryKey(query);\n return {\n ...state,\n [key]: {\n error: payload,\n state: fetchedState.ERROR,\n },\n };\n}\n\nexport default handleActions(\n {\n [`${fetchDeepDependencyGraph}_PENDING`]: fetchDeepDependencyGraphStarted,\n [`${fetchDeepDependencyGraph}_FULFILLED`]: guardReducerWithMeta(\n fetchDeepDependencyGraphDone\n ),\n [`${fetchDeepDependencyGraph}_REJECTED`]: guardReducerWithMeta(\n fetchDeepDependencyGraphErred\n ),\n\n [actionTypes.ADD_VIEW_MODIFIER]: guardReducer(addViewModifier),\n [actionTypes.CLEAR_VIEW_MODIFIERS_FROM_INDICES]: guardReducer<\n TDdgState,\n TDdgClearViewModifiersFromIndicesPayload\n >(viewModifierRemoval),\n [actionTypes.REMOVE_VIEW_MODIFIER]: guardReducer(\n viewModifierRemoval\n ),\n [actionTypes.REMOVE_VIEW_MODIFIER_FROM_INDICES]: guardReducer<\n TDdgState,\n TDdgRemoveViewModifierFromIndicesPayload\n >(viewModifierRemoval),\n },\n {}\n);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport function localeStringComparator(itemA, itemB) {\n return itemA.localeCompare(itemB);\n}\n\nexport function numberSortComparator(itemA, itemB) {\n return itemA - itemB;\n}\n\nexport function classNameForSortDir(dir) {\n return `sorted ${dir === 1 ? 'ascending' : 'descending'}`;\n}\n\nexport function getNewSortForClick(prevSort, column) {\n const { defaultDir = 1 } = column;\n\n return {\n key: column.name,\n dir: prevSort.key === column.name ? -1 * prevSort.dir : defaultDir,\n };\n}\n\nexport function createSortClickHandler(column, currentSortKey, currentSortDir, updateSort) {\n return function onClickSortingElement() {\n const { key, dir } = getNewSortForClick({ key: currentSortKey, dir: currentSortDir }, column);\n updateSort(key, dir);\n };\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { handleActions } from 'redux-actions';\n\nimport {\n fetchServices,\n fetchServiceOperations as fetchOps,\n fetchServiceServerOps as fetchServerOps,\n} from '../actions/jaeger-api';\nimport { localeStringComparator } from '../utils/sort';\n\nconst initialState = {\n error: null,\n loading: false,\n operationsForService: {},\n serverOpsForService: {},\n // `services` initial value of `null` indicates they haven't yet been loaded\n services: null,\n};\n\nfunction fetchStarted(state) {\n return { ...state, loading: true };\n}\n\nfunction fetchServicesDone(state, { payload }) {\n const services = payload.data || [];\n services.sort(localeStringComparator);\n return { ...state, services, error: null, loading: false };\n}\n\nfunction fetchServicesErred(state, { payload: error }) {\n return { ...state, error, loading: false, services: [] };\n}\n\nfunction fetchServerOpsStarted(state, { meta: { serviceName } }) {\n const serverOpsForService = {\n ...state.operationsForService,\n [serviceName]: [],\n };\n return { ...state, serverOpsForService };\n}\n\nfunction fetchServerOpsDone(state, { meta: { serviceName }, payload: { data: serverOpStructs } }) {\n if (!Array.isArray(serverOpStructs)) return state;\n\n const serverOpsForService = {\n ...state.operationsForService,\n [serviceName]: serverOpStructs.map(({ name }) => name).sort(localeStringComparator),\n };\n return { ...state, serverOpsForService };\n}\n\nfunction fetchOpsStarted(state, { meta: { serviceName } }) {\n const operationsForService = {\n ...state.operationsForService,\n [serviceName]: [],\n };\n return { ...state, operationsForService };\n}\n\nfunction fetchOpsDone(state, { meta, payload }) {\n const { data: operations } = payload;\n if (Array.isArray(operations)) {\n operations.sort(localeStringComparator);\n }\n const operationsForService = {\n ...state.operationsForService,\n [meta.serviceName]: operations || [],\n };\n return { ...state, operationsForService };\n}\n\n// TODO(joe): fetchOpsErred\n\nexport default handleActions(\n {\n [`${fetchServices}_PENDING`]: fetchStarted,\n [`${fetchServices}_FULFILLED`]: fetchServicesDone,\n [`${fetchServices}_REJECTED`]: fetchServicesErred,\n\n [`${fetchServerOps}_PENDING`]: fetchServerOpsStarted,\n [`${fetchServerOps}_FULFILLED`]: fetchServerOpsDone,\n\n [`${fetchOps}_PENDING`]: fetchOpsStarted,\n [`${fetchOps}_FULFILLED`]: fetchOpsDone,\n },\n initialState\n);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport const getProcessServiceName = proc => proc.serviceName;\nexport const getProcessTags = proc => proc.tags;\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { createSelector } from 'reselect';\nimport fuzzy from 'fuzzy';\n\nimport { getProcessServiceName } from './process';\n\nexport const getSpanId = span => span.spanID;\nexport const getSpanName = span => span.operationName;\nexport const getSpanDuration = span => span.duration;\nexport const getSpanTimestamp = span => span.startTime;\nexport const getSpanProcessId = span => span.processID;\nexport const getSpanReferences = span => span.references || [];\nexport const getSpanReferenceByType = createSelector(\n createSelector(\n ({ span }) => span,\n getSpanReferences\n ),\n ({ type }) => type,\n (references, type) => references.find(ref => ref.refType === type)\n);\nexport const getSpanParentId = createSelector(\n span => getSpanReferenceByType({ span, type: 'CHILD_OF' }),\n childOfRef => (childOfRef ? childOfRef.spanID : null)\n);\n\nexport const getSpanProcess = span => {\n if (!span.process) {\n throw new Error(\n `\n you must hydrate the spans with the processes, perhaps\n using hydrateSpansWithProcesses(), before accessing a span's process\n `\n );\n }\n\n return span.process;\n};\n\nexport const getSpanServiceName = createSelector(\n getSpanProcess,\n getProcessServiceName\n);\n\nexport const filterSpansForTimestamps = createSelector(\n ({ spans }) => spans,\n ({ leftBound }) => leftBound,\n ({ rightBound }) => rightBound,\n (spans, leftBound, rightBound) =>\n spans.filter(span => getSpanTimestamp(span) >= leftBound && getSpanTimestamp(span) <= rightBound)\n);\n\nexport const filterSpansForText = createSelector(\n ({ spans }) => spans,\n ({ text }) => text,\n (spans, text) =>\n fuzzy\n .filter(text, spans, {\n extract: span => `${getSpanServiceName(span)} ${getSpanName(span)}`,\n })\n .map(({ original }) => original)\n);\n\nconst getTextFilterdSpansAsMap = createSelector(\n filterSpansForText,\n matchingSpans =>\n matchingSpans.reduce(\n (obj, span) => ({\n ...obj,\n [getSpanId(span)]: span,\n }),\n {}\n )\n);\n\nexport const highlightSpansForTextFilter = createSelector(\n ({ spans }) => spans,\n getTextFilterdSpansAsMap,\n (spans, textFilteredSpansMap) =>\n spans.map(span => ({\n ...span,\n muted: !textFilteredSpansMap[getSpanId(span)],\n }))\n);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport default class TreeNode {\n static iterFunction(fn, depth = 0) {\n return node => fn(node.value, node, depth);\n }\n\n static searchFunction(search) {\n if (typeof search === 'function') {\n return search;\n }\n\n return (value, node) => (search instanceof TreeNode ? node === search : value === search);\n }\n\n constructor(value, children = []) {\n this.value = value;\n this.children = children;\n }\n\n get depth() {\n return this.children.reduce((depth, child) => Math.max(child.depth + 1, depth), 1);\n }\n\n get size() {\n let i = 0;\n this.walk(() => i++);\n return i;\n }\n\n addChild(child) {\n this.children.push(child instanceof TreeNode ? child : new TreeNode(child));\n return this;\n }\n\n find(search) {\n const searchFn = TreeNode.iterFunction(TreeNode.searchFunction(search));\n if (searchFn(this)) {\n return this;\n }\n for (let i = 0; i < this.children.length; i++) {\n const result = this.children[i].find(search);\n if (result) {\n return result;\n }\n }\n return null;\n }\n\n getPath(search) {\n const searchFn = TreeNode.iterFunction(TreeNode.searchFunction(search));\n\n const findPath = (currentNode, currentPath) => {\n // skip if we already found the result\n const attempt = currentPath.concat([currentNode]);\n // base case: return the array when there is a match\n if (searchFn(currentNode)) {\n return attempt;\n }\n for (let i = 0; i < currentNode.children.length; i++) {\n const child = currentNode.children[i];\n const match = findPath(child, attempt);\n if (match) {\n return match;\n }\n }\n return null;\n };\n\n return findPath(this, []);\n }\n\n walk(fn, depth = 0) {\n const nodeStack = [];\n let actualDepth = depth;\n nodeStack.push({ node: this, depth: actualDepth });\n while (nodeStack.length) {\n const { node, depth: nodeDepth } = nodeStack.pop();\n fn(node.value, node, nodeDepth);\n actualDepth = nodeDepth + 1;\n let i = node.children.length - 1;\n while (i >= 0) {\n nodeStack.push({ node: node.children[i], depth: actualDepth });\n i--;\n }\n }\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { createSelector, createStructuredSelector } from 'reselect';\n\nimport {\n getSpanId,\n getSpanName,\n getSpanServiceName,\n getSpanTimestamp,\n getSpanDuration,\n getSpanProcessId,\n} from './span';\nimport { getProcessServiceName } from './process';\nimport { formatMillisecondTime, formatSecondTime, ONE_SECOND } from '../utils/date';\nimport { numberSortComparator } from '../utils/sort';\nimport TreeNode from '../utils/TreeNode';\n\nexport const getTraceId = trace => trace.traceID;\n\nexport const getTraceSpans = trace => trace.spans;\n\nconst getTraceProcesses = trace => trace.processes;\n\nconst getSpanWithProcess = createSelector(\n state => state.span,\n state => state.processes,\n (span, processes) => ({\n ...span,\n process: processes[getSpanProcessId(span)],\n })\n);\n\nexport const getTraceSpansAsMap = createSelector(\n getTraceSpans,\n spans => spans.reduce((map, span) => map.set(getSpanId(span), span), new Map())\n);\n\nexport const TREE_ROOT_ID = '__root__';\n\n/**\n * Build a tree of { value: spanID, children } items derived from the\n * `span.references` information. The tree represents the grouping of parent /\n * child relationships. The root-most node is nominal in that\n * `.value === TREE_ROOT_ID`. This is done because a root span (the main trace\n * span) is not always included with the trace data. Thus, there can be\n * multiple top-level spans, and the root node acts as their common parent.\n *\n * The children are sorted by `span.startTime` after the tree is built.\n *\n * @param {Trace} trace The trace to build the tree of spanIDs.\n * @return {TreeNode} A tree of spanIDs derived from the relationships\n * between spans in the trace.\n */\nexport function getTraceSpanIdsAsTree(trace) {\n const nodesById = new Map(trace.spans.map(span => [span.spanID, new TreeNode(span.spanID)]));\n const spansById = new Map(trace.spans.map(span => [span.spanID, span]));\n const root = new TreeNode(TREE_ROOT_ID);\n trace.spans.forEach(span => {\n const node = nodesById.get(span.spanID);\n if (Array.isArray(span.references) && span.references.length) {\n const { refType, spanID: parentID } = span.references[0];\n if (refType === 'CHILD_OF' || refType === 'FOLLOWS_FROM') {\n const parent = nodesById.get(parentID) || root;\n parent.children.push(node);\n } else {\n throw new Error(`Unrecognized ref type: ${refType}`);\n }\n } else {\n root.children.push(node);\n }\n });\n const comparator = (nodeA, nodeB) => {\n const a = spansById.get(nodeA.value);\n const b = spansById.get(nodeB.value);\n return +(a.startTime > b.startTime) || +(a.startTime === b.startTime) - 1;\n };\n trace.spans.forEach(span => {\n const node = nodesById.get(span.spanID);\n if (node.children.length > 1) {\n node.children.sort(comparator);\n }\n });\n root.children.sort(comparator);\n return root;\n}\n\n// attach \"process\" as an object to each span.\nexport const hydrateSpansWithProcesses = trace => {\n const spans = getTraceSpans(trace);\n const processes = getTraceProcesses(trace);\n\n return {\n ...trace,\n spans: spans.map(span => getSpanWithProcess({ span, processes })),\n };\n};\n\nexport const getTraceSpanCount = createSelector(\n getTraceSpans,\n spans => spans.length\n);\n\nexport const getTraceTimestamp = createSelector(\n getTraceSpans,\n spans =>\n spans.reduce(\n (prevTimestamp, span) =>\n prevTimestamp ? Math.min(prevTimestamp, getSpanTimestamp(span)) : getSpanTimestamp(span),\n null\n )\n);\n\nexport const getTraceDuration = createSelector(\n getTraceSpans,\n getTraceTimestamp,\n (spans, timestamp) =>\n spans.reduce(\n (prevDuration, span) =>\n prevDuration\n ? Math.max(getSpanTimestamp(span) - timestamp + getSpanDuration(span), prevDuration)\n : getSpanDuration(span),\n null\n )\n);\n\nexport const getTraceEndTimestamp = createSelector(\n getTraceTimestamp,\n getTraceDuration,\n (timestamp, duration) => timestamp + duration\n);\n\nexport const getParentSpan = createSelector(\n getTraceSpanIdsAsTree,\n getTraceSpansAsMap,\n (tree, spanMap) =>\n tree.children\n .map(node => spanMap.get(node.value))\n .sort((spanA, spanB) => numberSortComparator(getSpanTimestamp(spanA), getSpanTimestamp(spanB)))[0]\n);\n\nexport const getTraceDepth = createSelector(\n getTraceSpanIdsAsTree,\n spanTree => spanTree.depth - 1\n);\n\nexport const getSpanDepthForTrace = createSelector(\n createSelector(\n state => state.trace,\n getTraceSpanIdsAsTree\n ),\n createSelector(\n state => state.span,\n getSpanId\n ),\n (node, spanID) => node.getPath(spanID).length - 1\n);\n\nexport const getTraceServices = createSelector(\n getTraceProcesses,\n processes =>\n Object.keys(processes).reduce(\n (services, processID) => services.add(getProcessServiceName(processes[processID])),\n new Set()\n )\n);\n\nexport const getTraceServiceCount = createSelector(\n getTraceServices,\n services => services.size\n);\n\n// establish constants to determine how math should be handled\n// for nanosecond-to-millisecond conversions.\nexport const DURATION_FORMATTERS = {\n ms: formatMillisecondTime,\n s: formatSecondTime,\n};\n\nconst getDurationFormatterForTrace = createSelector(\n getTraceDuration,\n totalDuration => (totalDuration >= ONE_SECOND ? DURATION_FORMATTERS.s : DURATION_FORMATTERS.ms)\n);\n\nexport const formatDurationForUnit = createSelector(\n ({ duration }) => duration,\n ({ unit }) => DURATION_FORMATTERS[unit],\n (duration, formatter) => formatter(duration)\n);\n\nexport const formatDurationForTrace = createSelector(\n ({ duration }) => duration,\n createSelector(\n ({ trace }) => trace,\n getDurationFormatterForTrace\n ),\n (duration, formatter) => formatter(duration)\n);\n\nexport const getSortedSpans = createSelector(\n ({ trace }) => trace,\n ({ spans }) => spans,\n ({ sort }) => sort,\n (trace, spans, { dir, comparator, selector }) =>\n [...spans].sort((spanA, spanB) => dir * comparator(selector(spanA, trace), selector(spanB, trace)))\n);\n\nconst getTraceSpansByHierarchyPosition = createSelector(\n getTraceSpanIdsAsTree,\n tree => {\n const hierarchyPositionMap = new Map();\n let i = 0;\n tree.walk(spanID => hierarchyPositionMap.set(spanID, i++));\n return hierarchyPositionMap;\n }\n);\n\nexport const getTreeSizeForTraceSpan = createSelector(\n createSelector(\n state => state.trace,\n getTraceSpanIdsAsTree\n ),\n createSelector(\n state => state.span,\n getSpanId\n ),\n (tree, spanID) => {\n const node = tree.find(spanID);\n if (!node) {\n return -1;\n }\n return node.size - 1;\n }\n);\n\nexport const getSpanHierarchySortPositionForTrace = createSelector(\n createSelector(\n ({ trace }) => trace,\n getTraceSpansByHierarchyPosition\n ),\n ({ span }) => span,\n (hierarchyPositionMap, span) => hierarchyPositionMap.get(getSpanId(span))\n);\n\nexport const getTraceName = createSelector(\n createSelector(\n createSelector(\n hydrateSpansWithProcesses,\n getParentSpan\n ),\n createStructuredSelector({\n name: getSpanName,\n serviceName: getSpanServiceName,\n })\n ),\n ({ name, serviceName }) => `${serviceName}: ${name}`\n);\n\nexport const omitCollapsedSpans = createSelector(\n ({ spans }) => spans,\n createSelector(\n ({ trace }) => trace,\n getTraceSpanIdsAsTree\n ),\n ({ collapsed }) => collapsed,\n (spans, tree, collapse) => {\n const hiddenSpanIds = collapse.reduce((result, collapsedSpanId) => {\n tree.find(collapsedSpanId).walk(id => id !== collapsedSpanId && result.add(id));\n return result;\n }, new Set());\n\n return hiddenSpanIds.size > 0 ? spans.filter(span => !hiddenSpanIds.has(getSpanId(span))) : spans;\n }\n);\n\nexport const DEFAULT_TICK_INTERVAL = 4;\nexport const DEFAULT_TICK_WIDTH = 3;\nexport const getTicksForTrace = createSelector(\n ({ trace }) => trace,\n ({ interval = DEFAULT_TICK_INTERVAL }) => interval,\n ({ width = DEFAULT_TICK_WIDTH }) => width,\n (\n trace,\n interval,\n width\n // timestamps will be spaced over the interval, starting from the initial timestamp\n ) =>\n [...Array(interval + 1).keys()].map(num => ({\n timestamp: getTraceTimestamp(trace) + getTraceDuration(trace) * (num / interval),\n width,\n }))\n);\n\n// TODO: delete this when the backend can ensure uniqueness\n/* istanbul ignore next */\nexport const enforceUniqueSpanIds = createSelector(\n /* istanbul ignore next */ trace => trace,\n getTraceSpans,\n /* istanbul ignore next */ (trace, spans) => {\n const map = new Map();\n\n return {\n ...trace,\n spans: spans.reduce((result, span) => {\n const spanID = map.has(getSpanId(span))\n ? `${getSpanId(span)}_${map.get(getSpanId(span))}`\n : getSpanId(span);\n const updatedSpan = { ...span, spanID };\n\n if (spanID !== getSpanId(span)) {\n // eslint-disable-next-line no-console\n console.warn('duplicate spanID in trace replaced', getSpanId(span), 'new:', spanID);\n }\n\n // set the presence of the span in the map or increment the number\n map.set(getSpanId(span), (map.get(getSpanId(span)) || 0) + 1);\n\n return result.concat([updatedSpan]);\n }, []),\n };\n }\n);\n\n// TODO: delete this when the backend can ensure uniqueness\nexport const dropEmptyStartTimeSpans = createSelector(\n /* istanbul ignore next */ trace => trace,\n getTraceSpans,\n /* istanbul ignore next */ (trace, spans) => ({\n ...trace,\n spans: spans.filter(span => !!getSpanTimestamp(span)),\n })\n);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport _isEqual from 'lodash/isEqual';\n\nimport { getTraceSpanIdsAsTree } from '../selectors/trace';\nimport { getConfigValue } from '../utils/config/get-config';\nimport { KeyValuePair, Span, SpanData, Trace, TraceData } from '../types/trace';\nimport TreeNode from '../utils/TreeNode';\n\n// exported for tests\nexport function deduplicateTags(spanTags: KeyValuePair[]) {\n const warningsHash: Map = new Map();\n const tags: KeyValuePair[] = spanTags.reduce((uniqueTags, tag) => {\n if (!uniqueTags.some(t => t.key === tag.key && t.value === tag.value)) {\n uniqueTags.push(tag);\n } else {\n warningsHash.set(`${tag.key}:${tag.value}`, `Duplicate tag \"${tag.key}:${tag.value}\"`);\n }\n return uniqueTags;\n }, []);\n const warnings = Array.from(warningsHash.values());\n return { tags, warnings };\n}\n\n// exported for tests\nexport function orderTags(spanTags: KeyValuePair[], topPrefixes?: string[]) {\n const orderedTags: KeyValuePair[] = spanTags.slice();\n const tp = (topPrefixes || []).map((p: string) => p.toLowerCase());\n\n orderedTags.sort((a, b) => {\n const aKey = a.key.toLowerCase();\n const bKey = b.key.toLowerCase();\n\n for (let i = 0; i < tp.length; i++) {\n const p = tp[i];\n if (aKey.startsWith(p) && !bKey.startsWith(p)) {\n return -1;\n }\n if (!aKey.startsWith(p) && bKey.startsWith(p)) {\n return 1;\n }\n }\n\n if (aKey > bKey) {\n return 1;\n }\n if (aKey < bKey) {\n return -1;\n }\n return 0;\n });\n\n return orderedTags;\n}\n\n/**\n * NOTE: Mutates `data` - Transform the HTTP response data into the form the app\n * generally requires.\n */\nexport default function transformTraceData(data: TraceData & { spans: SpanData[] }): Trace | null {\n let { traceID } = data;\n if (!traceID) {\n return null;\n }\n traceID = traceID.toLowerCase();\n\n let traceEndTime = 0;\n let traceStartTime = Number.MAX_SAFE_INTEGER;\n const spanIdCounts = new Map();\n const spanMap = new Map();\n // filter out spans with empty start times\n // eslint-disable-next-line no-param-reassign\n data.spans = data.spans.filter(span => Boolean(span.startTime));\n\n const max = data.spans.length;\n for (let i = 0; i < max; i++) {\n const span: Span = data.spans[i] as Span;\n const { startTime, duration, processID } = span;\n //\n let spanID = span.spanID;\n // check for start / end time for the trace\n if (startTime < traceStartTime) {\n traceStartTime = startTime;\n }\n if (startTime + duration > traceEndTime) {\n traceEndTime = startTime + duration;\n }\n // make sure span IDs are unique\n const idCount = spanIdCounts.get(spanID);\n if (idCount != null) {\n // eslint-disable-next-line no-console\n console.warn(`Dupe spanID, ${idCount + 1} x ${spanID}`, span, spanMap.get(spanID));\n if (_isEqual(span, spanMap.get(spanID))) {\n // eslint-disable-next-line no-console\n console.warn('\\t two spans with same ID have `isEqual(...) === true`');\n }\n spanIdCounts.set(spanID, idCount + 1);\n spanID = `${spanID}_${idCount}`;\n span.spanID = spanID;\n } else {\n spanIdCounts.set(spanID, 1);\n }\n span.process = data.processes[processID];\n spanMap.set(spanID, span);\n }\n // tree is necessary to sort the spans, so children follow parents, and\n // siblings are sorted by start time\n const tree = getTraceSpanIdsAsTree(data);\n const spans: Span[] = [];\n const svcCounts: Record = {};\n let traceName = '';\n\n tree.walk((spanID: string, node: TreeNode, depth: number = 0) => {\n if (spanID === '__root__') {\n return;\n }\n const span = spanMap.get(spanID) as Span;\n if (!span) {\n return;\n }\n const { serviceName } = span.process;\n svcCounts[serviceName] = (svcCounts[serviceName] || 0) + 1;\n if (!span.references || !span.references.length) {\n traceName = `${serviceName}: ${span.operationName}`;\n }\n span.relativeStartTime = span.startTime - traceStartTime;\n span.depth = depth - 1;\n span.hasChildren = node.children.length > 0;\n span.warnings = span.warnings || [];\n span.tags = span.tags || [];\n span.references = span.references || [];\n const tagsInfo = deduplicateTags(span.tags);\n span.tags = orderTags(tagsInfo.tags, getConfigValue('topTagPrefixes'));\n span.warnings = span.warnings.concat(tagsInfo.warnings);\n span.references.forEach((ref, index) => {\n const refSpan = spanMap.get(ref.spanID) as Span;\n if (refSpan) {\n // eslint-disable-next-line no-param-reassign\n ref.span = refSpan;\n if (index > 0) {\n // Don't take into account the parent, just other references.\n refSpan.subsidiarilyReferencedBy = refSpan.subsidiarilyReferencedBy || [];\n refSpan.subsidiarilyReferencedBy.push({\n spanID,\n traceID,\n span,\n refType: ref.refType,\n });\n }\n }\n });\n spans.push(span);\n });\n const services = Object.keys(svcCounts).map(name => ({ name, numberOfSpans: svcCounts[name] }));\n return {\n services,\n spans,\n traceID,\n traceName,\n // can't use spread operator for intersection types\n // repl: https://goo.gl/4Z23MJ\n // issue: https://github.com/facebook/flow/issues/1511\n processes: data.processes,\n duration: traceEndTime - traceStartTime,\n startTime: traceStartTime,\n endTime: traceEndTime,\n };\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport _isEqual from 'lodash/isEqual';\nimport { handleActions } from 'redux-actions';\n\nimport { fetchTrace, fetchMultipleTraces, searchTraces } from '../actions/jaeger-api';\nimport { loadJsonTraces } from '../actions/file-reader-api';\nimport { fetchedState } from '../constants';\nimport transformTraceData from '../model/transform-trace-data';\n\nconst initialState = {\n traces: {},\n search: {\n query: null,\n results: [],\n },\n};\n\nfunction fetchTraceStarted(state, { meta }) {\n const { id } = meta;\n const traces = { ...state.traces, [id]: { id, state: fetchedState.LOADING } };\n return { ...state, traces };\n}\n\nfunction fetchTraceDone(state, { meta, payload }) {\n const { id } = meta;\n const data = transformTraceData(payload.data[0]);\n let trace;\n if (!data) {\n trace = { id, state: fetchedState.ERROR, error: new Error('Invalid trace data recieved.') };\n } else {\n trace = { data, id, state: fetchedState.DONE };\n }\n const traces = { ...state.traces, [id]: trace };\n return { ...state, traces };\n}\n\nfunction fetchTraceErred(state, { meta, payload }) {\n const { id } = meta;\n const trace = { id, error: payload, state: fetchedState.ERROR };\n const traces = { ...state.traces, [id]: trace };\n return { ...state, traces };\n}\n\nfunction fetchMultipleTracesStarted(state, { meta }) {\n const { ids } = meta;\n const traces = { ...state.traces };\n ids.forEach(id => {\n traces[id] = { id, state: fetchedState.LOADING };\n });\n return { ...state, traces };\n}\n\nfunction fetchMultipleTracesDone(state, { payload }) {\n const traces = { ...state.traces };\n payload.data.forEach(raw => {\n const data = transformTraceData(raw);\n traces[data.traceID] = { data, id: data.traceID, state: fetchedState.DONE };\n });\n if (payload.errors) {\n payload.errors.forEach(err => {\n const { msg, traceID } = err;\n const error = new Error(`Error: ${msg} - ${traceID}`);\n traces[traceID] = { error, id: traceID, state: fetchedState.ERROR };\n });\n }\n return { ...state, traces };\n}\n\nfunction fetchMultipleTracesErred(state, { meta, payload }) {\n const { ids } = meta;\n const traces = { ...state.traces };\n const error = payload;\n ids.forEach(id => {\n traces[id] = { error, id, state: fetchedState.ERROR };\n });\n return { ...state, traces };\n}\n\nfunction fetchSearchStarted(state, { meta }) {\n const { query } = meta;\n const search = {\n query,\n results: [],\n state: fetchedState.LOADING,\n };\n return { ...state, search };\n}\n\nfunction searchDone(state, { meta, payload }) {\n if (!_isEqual(state.search.query, meta.query)) {\n return state;\n }\n const processed = payload.data.map(transformTraceData);\n const resultTraces = {};\n const results = [];\n for (let i = 0; i < processed.length; i++) {\n const data = processed[i];\n const id = data.traceID;\n resultTraces[id] = { data, id, state: fetchedState.DONE };\n results.push(id);\n }\n const traces = { ...state.traces, ...resultTraces };\n const search = { ...state.search, results, state: fetchedState.DONE };\n return { ...state, search, traces };\n}\n\nfunction searchErred(state, { meta, payload }) {\n if (!_isEqual(state.search.query, meta.query)) {\n return state;\n }\n const search = { ...state.search, error: payload, results: [], state: fetchedState.ERROR };\n return { ...state, search };\n}\n\nfunction loadJsonStarted(state) {\n const { search } = state;\n return { ...state, search: { ...search, state: fetchedState.LOADING } };\n}\n\nfunction loadJsonDone(state, { payload }) {\n const processed = payload.data.map(transformTraceData);\n const resultTraces = {};\n const results = new Set(state.search.results);\n for (let i = 0; i < processed.length; i++) {\n const data = processed[i];\n const id = data.traceID;\n resultTraces[id] = { data, id, state: fetchedState.DONE };\n results.add(id);\n }\n const traces = { ...state.traces, ...resultTraces };\n const search = { ...state.search, results: Array.from(results), state: fetchedState.DONE };\n return { ...state, search, traces };\n}\n\nfunction loadJsonErred(state, { payload }) {\n const search = { error: payload, results: [], state: fetchedState.ERROR };\n return { ...state, search };\n}\n\nexport default handleActions(\n {\n [`${fetchTrace}_PENDING`]: fetchTraceStarted,\n [`${fetchTrace}_FULFILLED`]: fetchTraceDone,\n [`${fetchTrace}_REJECTED`]: fetchTraceErred,\n\n [`${fetchMultipleTraces}_PENDING`]: fetchMultipleTracesStarted,\n [`${fetchMultipleTraces}_FULFILLED`]: fetchMultipleTracesDone,\n [`${fetchMultipleTraces}_REJECTED`]: fetchMultipleTracesErred,\n\n [`${searchTraces}_PENDING`]: fetchSearchStarted,\n [`${searchTraces}_FULFILLED`]: searchDone,\n [`${searchTraces}_REJECTED`]: searchErred,\n\n [`${loadJsonTraces}_PENDING`]: loadJsonStarted,\n [`${loadJsonTraces}_FULFILLED`]: loadJsonDone,\n [`${loadJsonTraces}_REJECTED`]: loadJsonErred,\n },\n initialState\n);\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { reducer as formReducer } from 'redux-form';\n\nimport config from './config';\nimport dependencies from './dependencies';\nimport ddg from './ddg';\nimport embedded from './embedded';\nimport services from './services';\nimport trace from './trace';\n\nexport default {\n config,\n dependencies,\n ddg,\n embedded,\n services,\n trace,\n form: formReducer,\n};\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport getConfig from '../utils/config/get-config';\n\nexport default function reduceConfig(state) {\n if (state === undefined) {\n return getConfig();\n }\n return state;\n}\n","// Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport _get from 'lodash/get';\n\nimport { EmbeddedState } from '../types/embedded';\nimport { getEmbeddedState } from '../utils/embedded-url';\n\nexport default function embeddedConfig(state: EmbeddedState | undefined) {\n if (state === undefined) {\n const search = _get(window, 'location.search');\n return search ? getEmbeddedState(search) : null;\n }\n return state;\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Store } from 'redux';\nimport { Action } from 'redux-actions';\n\nimport { actionTypes as types, TSpanIdValue, TSpanIdLogValue, TWidthValue } from './duck';\nimport DetailState from './SpanDetail/DetailState';\nimport { ReduxState } from '../../../types';\nimport { trackEvent } from '../../../utils/tracking';\nimport { getToggleValue } from '../../../utils/tracking/common';\n\ntype TSpanIdHooks = {\n [actionType: string]: (store: Store, action: Action) => void;\n};\n\nconst ACTION_RESIZE = 'resize';\nconst ACTION_COLLAPSE_ALL = 'collapse-all';\nconst ACTION_COLLAPSE_ONE = 'collapse-one';\nconst ACTION_EXPAND_ALL = 'expand-all';\nconst ACTION_EXPAND_ONE = 'expand-one';\n\nconst CATEGORY_BASE = 'jaeger/ux/trace/timeline';\n// export for tests\nexport const CATEGORY_COLUMN = `${CATEGORY_BASE}/column`;\nexport const CATEGORY_EXPAND_COLLAPSE = `${CATEGORY_BASE}/expand-collapse`;\nexport const CATEGORY_LOGS = `${CATEGORY_BASE}/logs`;\nexport const CATEGORY_LOGS_ITEM = `${CATEGORY_BASE}/logs/item`;\nexport const CATEGORY_PARENT = `${CATEGORY_BASE}/parent`;\nexport const CATEGORY_PROCESS = `${CATEGORY_BASE}/process`;\nexport const CATEGORY_ROW = `${CATEGORY_BASE}/row`;\nexport const CATEGORY_TAGS = `${CATEGORY_BASE}/tags`;\n\nfunction getDetail(store: Store, { payload }: Action) {\n return payload ? store.getState().traceTimeline.detailStates.get(payload.spanID) : undefined;\n}\n\nfunction trackDetailState(\n store: Store,\n action: Action,\n trackFn: (detailState: DetailState) => void\n) {\n const detailState = getDetail(store, action);\n if (detailState) {\n trackFn(detailState);\n }\n}\n\nfunction trackParent(store: Store, { payload }: Action) {\n if (!payload) {\n return;\n }\n const st = store.getState();\n const traceID = st.traceTimeline.traceID;\n if (!traceID) {\n return;\n }\n const { spanID } = payload;\n const isHidden = st.traceTimeline.childrenHiddenIDs.has(spanID);\n const trace = st.trace.traces[traceID].data;\n if (!trace) {\n return;\n }\n const span = trace.spans.find(sp => sp.spanID === spanID);\n if (span) {\n trackEvent(CATEGORY_PARENT, getToggleValue(!isHidden), span.depth);\n }\n}\n\nfunction trackLogsItem(store: Store, action: Action) {\n const detail = getDetail(store, action);\n const { payload } = action;\n if (!detail || !payload || !('logItem' in payload)) {\n return;\n }\n const { logItem } = payload;\n const isOpen = Boolean(detail.logs.openedItems.has(logItem));\n trackEvent(CATEGORY_LOGS_ITEM, getToggleValue(isOpen));\n}\n\nconst trackColumnWidth = (_: any, { payload }: Action) =>\n payload && trackEvent(CATEGORY_COLUMN, ACTION_RESIZE, Math.round(payload.width * 1000));\nconst trackDetailRow = (isOpen: boolean) => trackEvent(CATEGORY_ROW, getToggleValue(isOpen));\nconst trackLogs = (detail: DetailState) => trackEvent(CATEGORY_LOGS, getToggleValue(detail.logs.isOpen));\nconst trackProcess = (detail: DetailState) =>\n trackEvent(CATEGORY_PROCESS, getToggleValue(detail.isProcessOpen));\nconst trackTags = (detail: DetailState) => trackEvent(CATEGORY_TAGS, getToggleValue(detail.isTagsOpen));\n\nconst hooks: TSpanIdHooks = {\n [types.CHILDREN_TOGGLE]: trackParent,\n [types.DETAIL_TOGGLE]: (store, action) => trackDetailRow(Boolean(getDetail(store, action))),\n [types.DETAIL_TAGS_TOGGLE]: (store, action) => trackDetailState(store, action, trackTags),\n [types.DETAIL_PROCESS_TOGGLE]: (store, action) => trackDetailState(store, action, trackProcess),\n [types.DETAIL_LOGS_TOGGLE]: (store, action) => trackDetailState(store, action, trackLogs),\n};\n\nexport const middlewareHooks = {\n ...hooks,\n [types.COLLAPSE_ALL]: () => trackEvent(CATEGORY_EXPAND_COLLAPSE, ACTION_COLLAPSE_ALL),\n [types.COLLAPSE_ONE]: () => trackEvent(CATEGORY_EXPAND_COLLAPSE, ACTION_COLLAPSE_ONE),\n [types.DETAIL_LOG_ITEM_TOGGLE]: trackLogsItem,\n [types.EXPAND_ALL]: () => trackEvent(CATEGORY_EXPAND_COLLAPSE, ACTION_EXPAND_ALL),\n [types.EXPAND_ONE]: () => trackEvent(CATEGORY_EXPAND_COLLAPSE, ACTION_EXPAND_ONE),\n [types.SET_SPAN_NAME_COLUMN_WIDTH]: trackColumnWidth,\n};\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Action } from 'redux-actions';\nimport { Dispatch, Store } from 'react-redux';\n\nimport { middlewareHooks as searchHooks } from '../components/SearchTracePage/SearchForm.track';\nimport { middlewareHooks as timelineHooks } from '../components/TracePage/TraceTimelineViewer/duck.track';\nimport { isGaEnabled } from '../utils/tracking';\nimport { ReduxState } from '../types';\n\ntype TMiddlewareFn = (store: Store, action: Action) => void;\n\nconst middlewareHooks: { [actionType: string]: TMiddlewareFn } = { ...timelineHooks, ...searchHooks };\n\nfunction trackingMiddleware(store: Store) {\n return function inner(next: Dispatch) {\n return function core(action: any) {\n const { type } = action;\n if (typeof middlewareHooks[type] === 'function') {\n middlewareHooks[type](store, action);\n }\n return next(action);\n };\n };\n}\n\nexport default isGaEnabled ? trackingMiddleware : undefined;\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport promiseMiddleware from 'redux-promise-middleware';\nimport { change } from 'redux-form';\nimport { replace } from 'react-router-redux';\n\nimport { searchTraces, fetchServiceOperations } from '../actions/jaeger-api';\nimport { getUrl as getSearchUrl } from '../components/SearchTracePage/url';\n\nexport { default as trackMiddleware } from './track';\n\n/**\n * Middleware to load \"operations\" for a particular service.\n */\nexport const loadOperationsForServiceMiddleware = store => next => action => {\n if (\n action.type === '@@redux-form/CHANGE' &&\n action.meta.form === 'searchSideBar' &&\n action.meta.field === 'service' &&\n action.payload !== '-'\n ) {\n store.dispatch(fetchServiceOperations(action.payload));\n store.dispatch(change('searchSideBar', 'operation', 'all'));\n }\n return next(action);\n};\n\nexport const historyUpdateMiddleware = store => next => action => {\n if (action.type === String(searchTraces)) {\n const url = getSearchUrl(action.meta.query);\n store.dispatch(replace(url));\n }\n next(action);\n};\n\nexport const promise = promiseMiddleware();\n","// Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { getConfigValue } from './get-config';\nimport { TScript } from '../../types/config';\n\nexport default function() {\n const scripts = getConfigValue('scripts');\n if (scripts) {\n scripts.forEach((script: TScript) => {\n if (script.type === 'inline') {\n const textElem = document.createTextNode(script.text);\n const scriptElem = document.createElement('script');\n scriptElem.append(textElem);\n document.body.appendChild(scriptElem);\n }\n });\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React, { Component } from 'react';\nimport createHistory from 'history/createBrowserHistory';\nimport { Provider } from 'react-redux';\nimport { Route, Redirect, Switch } from 'react-router-dom';\nimport { ConnectedRouter } from 'react-router-redux';\n\nimport NotFound from './NotFound';\nimport Page from './Page';\nimport DependencyGraph from '../DependencyGraph';\nimport { ROUTE_PATH as dependenciesPath } from '../DependencyGraph/url';\nimport DeepDependencies from '../DeepDependencies';\nimport { ROUTE_PATH as deepDependenciesPath } from '../DeepDependencies/url';\nimport SearchTracePage from '../SearchTracePage';\nimport { ROUTE_PATH as searchPath } from '../SearchTracePage/url';\nimport TraceDiff from '../TraceDiff';\nimport { ROUTE_PATH as traceDiffPath } from '../TraceDiff/url';\nimport TracePage from '../TracePage';\nimport { ROUTE_PATH as tracePath } from '../TracePage/url';\nimport JaegerAPI, { DEFAULT_API_ROOT } from '../../api/jaeger';\nimport configureStore from '../../utils/configure-store';\nimport processScripts from '../../utils/config/process-scripts';\nimport prefixUrl from '../../utils/prefix-url';\n\nimport '../common/vars.css';\nimport '../common/utils.css';\nimport './index.css';\n\nconst history = createHistory();\n\nexport default class JaegerUIApp extends Component {\n constructor(props) {\n super(props);\n this.store = configureStore(history);\n JaegerAPI.apiRoot = DEFAULT_API_ROOT;\n processScripts();\n }\n\n render() {\n return (\n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n );\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { createStore, combineReducers, applyMiddleware, compose } from 'redux';\nimport { routerReducer, routerMiddleware } from 'react-router-redux';\nimport { window } from 'global';\n\nimport traceDiff from '../components/TraceDiff/duck';\nimport archive from '../components/TracePage/ArchiveNotifier/duck';\nimport traceTimeline from '../components/TracePage/TraceTimelineViewer/duck';\nimport jaegerReducers from '../reducers';\nimport * as jaegerMiddlewares from '../middlewares';\n\nexport default function configureStore(history) {\n return createStore(\n combineReducers({\n ...jaegerReducers,\n archive,\n traceDiff,\n traceTimeline,\n router: routerReducer,\n }),\n compose(\n applyMiddleware(\n ...Object.keys(jaegerMiddlewares)\n .map(key => jaegerMiddlewares[key])\n .filter(Boolean),\n routerMiddleware(history)\n ),\n process.env.NODE_ENV !== 'production' && window && window.__REDUX_DEVTOOLS_EXTENSION__\n ? window.__REDUX_DEVTOOLS_EXTENSION__()\n : noop => noop\n )\n );\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// site-prefix.js must be the first import of the main webpack entrypoint\n// becaue it configures the webpack publicPath.\n/* eslint-disable import/first */\nimport './site-prefix';\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { document } from 'global';\n\nimport JaegerUIApp from './components/App';\nimport { context as trackingContext } from './utils/tracking';\n\n// these need to go after the App import\n/* eslint-disable import/first */\nimport 'u-basscss/css/flexbox.css';\nimport 'u-basscss/css/layout.css';\nimport 'u-basscss/css/margin.css';\nimport 'u-basscss/css/padding.css';\nimport 'u-basscss/css/position.css';\nimport 'u-basscss/css/typography.css';\n\nconst UI_ROOT_ID = 'jaeger-ui-root';\n\nif (trackingContext) {\n trackingContext.context(() => {\n ReactDOM.render(, document.getElementById(UI_ROOT_ID));\n });\n} else {\n ReactDOM.render(, document.getElementById(UI_ROOT_ID));\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ELayerType = exports.ELayoutPhase = void 0; // Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nvar ELayoutPhase;\nexports.ELayoutPhase = ELayoutPhase;\n\n(function (ELayoutPhase) {\n ELayoutPhase[\"NoData\"] = \"NoData\";\n ELayoutPhase[\"CalcSizes\"] = \"CalcSizes\";\n ELayoutPhase[\"CalcPositions\"] = \"CalcPositions\";\n ELayoutPhase[\"CalcEdges\"] = \"CalcEdges\";\n ELayoutPhase[\"Done\"] = \"Done\";\n})(ELayoutPhase || (exports.ELayoutPhase = ELayoutPhase = {}));\n\nvar ELayerType;\nexports.ELayerType = ELayerType;\n\n(function (ELayerType) {\n ELayerType[\"Html\"] = \"html\";\n ELayerType[\"Svg\"] = \"svg\";\n})(ELayerType || (exports.ELayerType = ELayerType = {}));","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"zoomIdentity\", {\n enumerable: true,\n get: function get() {\n return _d3Zoom.zoomIdentity;\n }\n});\nexports.default = void 0;\n\nvar _d3Selection = require(\"d3-selection\");\n\nvar _d3Zoom = require(\"d3-zoom\");\n\nvar _utils = require(\"./utils\");\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nvar ZoomManager =\n/*#__PURE__*/\nfunction () {\n _createClass(ZoomManager, null, [{\n key: \"getZoomAttr\",\n value: function getZoomAttr(zoomTransform) {\n return (0, _utils.getZoomAttr)(zoomTransform);\n }\n }, {\n key: \"getZoomStyle\",\n value: function getZoomStyle(zoomTransform) {\n return (0, _utils.getZoomStyle)(zoomTransform);\n }\n }]);\n\n function ZoomManager(updateCallback) {\n var _this = this;\n\n _classCallCheck(this, ZoomManager);\n\n this.elem = null;\n this.contentSize = null;\n this.selection = null;\n this.updateCallback = void 0;\n this.zoom = void 0;\n this.currentTransform = _d3Zoom.zoomIdentity;\n\n this.resetZoom = function () {\n var elem = _this.elem;\n var selection = _this.selection;\n var size = _this.contentSize;\n\n if (!elem || !selection || !size) {\n _this.updateCallback(_d3Zoom.zoomIdentity);\n\n return;\n }\n\n var viewHeight = elem.clientHeight,\n viewWidth = elem.clientWidth;\n _this.currentTransform = (0, _utils.fitWithinContainer)(size.width, size.height, viewWidth, viewHeight);\n\n _this.zoom.transform(selection, _this.currentTransform);\n\n _this.updateCallback(_this.currentTransform);\n };\n\n this.onZoomed = function () {\n if (!_this.elem) {\n return;\n }\n\n _this.currentTransform = (0, _d3Zoom.zoomTransform)(_this.elem);\n\n _this.updateCallback(_this.currentTransform);\n };\n\n this.constrainZoom = function (transform, extent) {\n if (!_this.contentSize) {\n return transform;\n }\n\n var _this$contentSize = _this.contentSize,\n height = _this$contentSize.height,\n width = _this$contentSize.width;\n\n var _extent = _slicedToArray(extent, 2),\n _extent$ = _slicedToArray(_extent[1], 2),\n vw = _extent$[0],\n vh = _extent$[1];\n\n return (0, _utils.constrainZoom)(transform, width, height, vw, vh);\n };\n\n this.updateCallback = updateCallback;\n this.zoom = (0, _d3Zoom.zoom)().scaleExtent(_utils.DEFAULT_SCALE_EXTENT).constrain(this.constrainZoom).on('zoom', this.onZoomed);\n }\n\n _createClass(ZoomManager, [{\n key: \"setElement\",\n value: function setElement(elem) {\n if (elem === this.elem) {\n return;\n }\n\n this.elem = elem;\n this.selection = (0, _d3Selection.select)(elem);\n this.selection.call(this.zoom);\n this.setExtent();\n this.resetZoom();\n }\n }, {\n key: \"setContentSize\",\n value: function setContentSize(size) {\n if (!this.contentSize || this.contentSize.height !== size.height || this.contentSize.width !== size.width) {\n this.contentSize = size;\n }\n\n this.setExtent();\n this.resetZoom();\n }\n }, {\n key: \"getProps\",\n value: function getProps() {\n var _this$currentTransfor = this.currentTransform,\n x = _this$currentTransfor.x,\n y = _this$currentTransfor.y,\n k = _this$currentTransfor.k;\n\n var _ref = this.contentSize || {},\n _ref$height = _ref.height,\n contentHeight = _ref$height === void 0 ? 1 : _ref$height,\n _ref$width = _ref.width,\n contentWidth = _ref$width === void 0 ? 1 : _ref$width;\n\n var _ref2 = this.elem || {},\n _ref2$clientHeight = _ref2.clientHeight,\n viewportHeight = _ref2$clientHeight === void 0 ? 1 : _ref2$clientHeight,\n _ref2$clientWidth = _ref2.clientWidth,\n viewportWidth = _ref2$clientWidth === void 0 ? 1 : _ref2$clientWidth;\n\n return {\n contentHeight: contentHeight,\n contentWidth: contentWidth,\n k: k,\n viewportHeight: viewportHeight,\n viewportWidth: viewportWidth,\n x: x,\n y: y,\n viewAll: this.resetZoom\n };\n }\n }, {\n key: \"setExtent\",\n value: function setExtent() {\n var elem = this.elem;\n var size = this.contentSize;\n\n if (!elem || !size) {\n return;\n }\n\n var viewHeight = elem.clientHeight,\n viewWidth = elem.clientWidth;\n var scaleExtent = (0, _utils.getScaleExtent)(size.width, size.height, viewWidth, viewHeight);\n this.zoom.scaleExtent(scaleExtent);\n }\n }]);\n\n return ZoomManager;\n}();\n\nexports.default = ZoomManager;","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _possibleConstructorReturn = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _inherits = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/inherits\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _SvgDefEntry = _interopRequireDefault(require(\"./SvgDefEntry\"));\n\nvar _utils = require(\"./utils\");\n\nvar _ZoomManager = _interopRequireDefault(require(\"../zoom/ZoomManager\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n} // Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nvar STYLE = {\n left: 0,\n minHeight: '100%',\n minWidth: '100%',\n position: 'absolute',\n top: 0\n};\n\nvar SvgLayer =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(SvgLayer, _React$PureComponent);\n\n function SvgLayer() {\n _classCallCheck(this, SvgLayer);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(SvgLayer).apply(this, arguments));\n }\n\n _createClass(SvgLayer, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n children = _this$props.children,\n classNamePart = _this$props.classNamePart,\n getClassName = _this$props.getClassName,\n defs = _this$props.defs,\n extraWrapper = _this$props.extraWrapper,\n graphState = _this$props.graphState,\n setOnContainer = _this$props.setOnContainer,\n standalone = _this$props.standalone,\n topLayer = _this$props.topLayer;\n var containerProps = (0, _utils.assignMergeCss)({\n className: getClassName(classNamePart)\n }, (0, _utils.getProps)(setOnContainer, graphState));\n var content = React.createElement(\"g\", containerProps, defs && React.createElement(\"defs\", null, defs.map(function (defEntry) {\n return React.createElement(_SvgDefEntry.default, Object.assign({\n key: defEntry.localId\n }, defEntry, {\n getClassName: getClassName,\n graphState: graphState\n }));\n })), children);\n\n if (extraWrapper) {\n content = React.createElement(\"g\", extraWrapper, content);\n }\n\n if (!standalone && !topLayer) {\n return content;\n }\n\n var zoomTransform = graphState.zoomTransform;\n return React.createElement(\"svg\", {\n className: getClassName('SvgLayer'),\n style: STYLE\n }, React.createElement(\"g\", {\n className: getClassName('SvgLayer--transformer'),\n transform: _ZoomManager.default.getZoomAttr(zoomTransform)\n }, content));\n }\n }]);\n\n return SvgLayer;\n}(React.PureComponent);\n\nexports.default = SvgLayer;","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _possibleConstructorReturn = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _inherits = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/inherits\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"./utils\");\n\nvar _ZoomManager = _interopRequireDefault(require(\"../zoom/ZoomManager\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n} // Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nvar STYLE = {\n left: 0,\n position: 'absolute',\n top: 0\n};\n\nvar HtmlLayer =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(HtmlLayer, _React$PureComponent);\n\n function HtmlLayer() {\n _classCallCheck(this, HtmlLayer);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(HtmlLayer).apply(this, arguments));\n }\n\n _createClass(HtmlLayer, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n children = _this$props.children,\n classNamePart = _this$props.classNamePart,\n getClassName = _this$props.getClassName,\n graphState = _this$props.graphState,\n setOnContainer = _this$props.setOnContainer,\n standalone = _this$props.standalone,\n topLayer = _this$props.topLayer;\n var zoomTransform = graphState.zoomTransform;\n var zoomStyle = {\n style: topLayer || standalone ? _ZoomManager.default.getZoomStyle(zoomTransform) : {}\n };\n var containerProps = (0, _utils.assignMergeCss)({\n className: getClassName(classNamePart),\n style: STYLE\n }, zoomStyle, (0, _utils.getProps)(setOnContainer, graphState));\n return React.createElement(\"div\", containerProps, children);\n }\n }]);\n\n return HtmlLayer;\n}(React.PureComponent);\n\nexports.default = HtmlLayer;","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _possibleConstructorReturn = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _inherits = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/inherits\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _HtmlLayer = _interopRequireDefault(require(\"./HtmlLayer\"));\n\nvar _Nodes = _interopRequireDefault(require(\"./Nodes\"));\n\nvar _SvgLayer = _interopRequireDefault(require(\"./SvgLayer\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n} // Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nvar NodesLayer =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(NodesLayer, _React$PureComponent);\n\n function NodesLayer() {\n _classCallCheck(this, NodesLayer);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(NodesLayer).apply(this, arguments));\n }\n\n _createClass(NodesLayer, [{\n key: \"render\",\n value: function render() {\n var renderNode = this.props.renderNode;\n var _this$props$graphStat = this.props.graphState,\n layoutVertices = _this$props$graphStat.layoutVertices,\n renderUtils = _this$props$graphStat.renderUtils;\n\n if (!layoutVertices || !renderNode) {\n return null;\n }\n\n var _this$props = this.props,\n getClassName = _this$props.getClassName,\n layerType = _this$props.layerType,\n setOnNode = _this$props.setOnNode;\n var LayerComponent = layerType === _types.ELayerType.Html ? _HtmlLayer.default : _SvgLayer.default;\n return React.createElement(LayerComponent, Object.assign({}, this.props, {\n classNamePart: \"NodesLayer\"\n }), React.createElement(_Nodes.default, {\n getClassName: getClassName,\n layerType: layerType,\n layoutVertices: layoutVertices,\n renderNode: renderNode,\n renderUtils: renderUtils,\n setOnNode: setOnNode\n }));\n }\n }]);\n\n return NodesLayer;\n}(React.PureComponent);\n\nexports.default = NodesLayer;","// Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Per the resolution of https://github.com/jaegertracing/jaeger-ui/issues/42,\n// package.json#homepage is set to \".\" and the document MUST have a \n// element to define a usable base URL.\nconst baseNode = document.querySelector('base');\nif (!baseNode && process.env.NODE_ENV !== 'test') {\n throw new Error(' element not found');\n}\n\nconst sitePrefix = baseNode ? baseNode.href : `${global.location.origin}/`;\n\n// Configure the webpack publicPath to match the :\n// https://webpack.js.org/guides/public-path/#on-the-fly\n// eslint-disable-next-line camelcase\nwindow.__webpack_public_path__ = sitePrefix;\n\nexport default sitePrefix;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.makeCacheScope = makeCacheScope;\nexports.default = void 0; // Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nfunction makeCacheScope() {\n var cache = new Map();\n return function cacheAs(key, value) {\n var stored = cache.get(key);\n\n if (stored) {\n return stored;\n }\n\n cache.set(key, value);\n return value;\n };\n}\n\nvar defaultScope = Object.assign(makeCacheScope(), {\n makeScope: makeCacheScope\n});\nvar _default = defaultScope;\nexports.default = _default;","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _possibleConstructorReturn = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _inherits = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/inherits\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _HtmlLayer = _interopRequireDefault(require(\"./HtmlLayer\"));\n\nvar _MeasurableNodes = _interopRequireDefault(require(\"./MeasurableNodes\"));\n\nvar _SvgLayer = _interopRequireDefault(require(\"./SvgLayer\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction createRefs(length) {\n var rv = [];\n\n for (var i = 0; i < length; i++) {\n rv.push(React.createRef());\n }\n\n return rv;\n}\n\nvar MeasurableNodesLayer =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(MeasurableNodesLayer, _React$PureComponent);\n\n _createClass(MeasurableNodesLayer, null, [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var vertices = nextProps.graphState.vertices;\n var stVertices = prevState.vertices;\n\n if (vertices === stVertices) {\n return null;\n }\n\n return {\n vertices: vertices,\n nodeRefs: createRefs(vertices.length)\n };\n }\n }]);\n\n function MeasurableNodesLayer(props) {\n var _this;\n\n _classCallCheck(this, MeasurableNodesLayer);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(MeasurableNodesLayer).call(this, props));\n var graphState = props.graphState;\n var vertices = graphState.vertices;\n _this.state = {\n vertices: vertices,\n nodeRefs: createRefs(vertices.length)\n };\n return _this;\n }\n\n _createClass(MeasurableNodesLayer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.measureNodes();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.measureNodes();\n }\n }, {\n key: \"measureNodes\",\n value: function measureNodes() {\n var _this$props$graphStat = this.props.graphState,\n layoutPhase = _this$props$graphStat.layoutPhase,\n vertices = _this$props$graphStat.vertices;\n\n if (layoutPhase !== _types.ELayoutPhase.CalcSizes) {\n return;\n }\n\n var nodeRefs = this.state.nodeRefs;\n\n if (!nodeRefs) {\n return;\n }\n\n var _this$props = this.props,\n layerType = _this$props.layerType,\n measureNode = _this$props.measureNode,\n senderKey = _this$props.senderKey,\n setSizeVertices = _this$props.setSizeVertices;\n var current = null;\n var utils = measureNode && {\n layerType: layerType,\n getWrapper: function getWrapper() {\n if (current) {\n return current.getRef();\n }\n\n throw new Error('Invalid scenario');\n },\n getWrapperSize: function getWrapperSize() {\n if (current) {\n return current.measure();\n }\n\n throw new Error('Invalid scenario');\n }\n };\n var sizeVertices = [];\n\n for (var i = 0; i < nodeRefs.length; i++) {\n current = nodeRefs[i].current;\n var vertex = vertices[i];\n\n if (current) {\n sizeVertices.push(_objectSpread({\n vertex: vertex\n }, measureNode && utils ? measureNode(vertex, utils) : current.measure()));\n }\n }\n\n setSizeVertices(senderKey, sizeVertices);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nodeRefs = this.state.nodeRefs;\n\n if (nodeRefs) {\n var _this$props2 = this.props,\n getClassName = _this$props2.getClassName,\n _this$props2$graphSta = _this$props2.graphState,\n layoutVertices = _this$props2$graphSta.layoutVertices,\n renderUtils = _this$props2$graphSta.renderUtils,\n vertices = _this$props2$graphSta.vertices,\n layerType = _this$props2.layerType,\n renderNode = _this$props2.renderNode,\n setOnNode = _this$props2.setOnNode;\n var LayerComponent = layerType === _types.ELayerType.Html ? _HtmlLayer.default : _SvgLayer.default;\n return React.createElement(LayerComponent, Object.assign({\n classNamePart: \"MeasurableNodesLayer\"\n }, this.props), React.createElement(_MeasurableNodes.default, {\n nodeRefs: nodeRefs,\n getClassName: getClassName,\n layerType: layerType,\n renderNode: renderNode,\n renderUtils: renderUtils,\n vertices: vertices,\n layoutVertices: layoutVertices,\n setOnNode: setOnNode\n }));\n }\n\n return null;\n }\n }]);\n\n return MeasurableNodesLayer;\n}(React.PureComponent);\n\nexports.default = MeasurableNodesLayer;","\"use strict\";\n\nvar _classCallCheck = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _possibleConstructorReturn = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nvar _inherits = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/inherits\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _SvgEdges = _interopRequireDefault(require(\"./SvgEdges\"));\n\nvar _SvgLayer = _interopRequireDefault(require(\"./SvgLayer\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n} // Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// Add the default black stroke on an outter so CSS classes or styles\n// on the inner can override it\n// TODO: A more configurable appraoch to setting a default stroke color\n\n\nvar INHERIT_STROKE = {\n stroke: '#000'\n};\n\nvar SvgEdgesLayer =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(SvgEdgesLayer, _React$PureComponent);\n\n function SvgEdgesLayer() {\n _classCallCheck(this, SvgEdgesLayer);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(SvgEdgesLayer).apply(this, arguments));\n }\n\n _createClass(SvgEdgesLayer, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n getClassName = _this$props.getClassName,\n graphState = _this$props.graphState,\n markerEndId = _this$props.markerEndId,\n markerStartId = _this$props.markerStartId,\n setOnEdge = _this$props.setOnEdge;\n var layoutEdges = graphState.layoutEdges,\n renderUtils = graphState.renderUtils;\n\n if (!layoutEdges) {\n return null;\n }\n\n return React.createElement(_SvgLayer.default, Object.assign({}, this.props, {\n classNamePart: \"SvgEdgesLayer\",\n extraWrapper: INHERIT_STROKE\n }), React.createElement(_SvgEdges.default, {\n getClassName: getClassName,\n layoutEdges: layoutEdges,\n markerEndId: markerEndId,\n markerStartId: markerStartId,\n renderUtils: renderUtils,\n setOnEdge: setOnEdge\n }));\n }\n }]);\n\n return SvgEdgesLayer;\n}(React.PureComponent);\n\nexports.default = SvgEdgesLayer;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MiniMap = MiniMap;\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _resetZoomIcon = _interopRequireDefault(require(\"./resetZoomIcon\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/* eslint-enable react/no-unused-prop-types */\n\n\nvar LENGTH_TARGET_PX = 80;\n\nfunction getMapSize(props) {\n var ch = props.contentHeight,\n cw = props.contentWidth;\n\n if (ch > cw) {\n return {\n height: LENGTH_TARGET_PX,\n width: LENGTH_TARGET_PX * cw / ch\n };\n }\n\n return {\n height: LENGTH_TARGET_PX * ch / cw,\n width: LENGTH_TARGET_PX\n };\n}\n\nfunction getViewTransform(props, displaySize) {\n var ch = props.contentHeight,\n cw = props.contentWidth,\n vh = props.viewportHeight,\n vw = props.viewportWidth,\n _props$k = props.k,\n k = _props$k === void 0 ? 1 : _props$k,\n _props$x = props.x,\n x = _props$x === void 0 ? 1 : _props$x,\n _props$y = props.y,\n y = _props$y === void 0 ? 1 : _props$y;\n var dh = displaySize.height,\n dw = displaySize.width;\n var sch = ch * k;\n var scw = cw * k;\n var left = Math.max(-x / scw, 0);\n var right = Math.min((-x + vw) / scw, 1);\n var top = Math.max(-y / sch, 0);\n var bottom = Math.min((-y + vh) / sch, 1);\n return {\n transform: \"\\n translate(\".concat((left * dw).toFixed(2), \"px, \").concat((top * dh).toFixed(2), \"px)\\n scale(\").concat(right - left, \", \").concat(bottom - top, \")\\n \"),\n transformOrigin: '0 0'\n };\n}\n\nfunction getClassNames(props) {\n var className = props.className,\n classNamePrefix = props.classNamePrefix;\n var base = \"\".concat(classNamePrefix || 'plexus', \"-MiniMap\");\n return {\n root: \"\".concat(base, \" \").concat(className || ''),\n item: \"\".concat(base, \"--item\"),\n map: \"\".concat(base, \"--map\"),\n mapActive: \"\".concat(base, \"--mapActive\"),\n button: \"\".concat(base, \"--button\")\n };\n}\n\nfunction MiniMap(props) {\n var css = getClassNames(props);\n var mapSize = getMapSize(props);\n var activeXform = getViewTransform(props, mapSize);\n return React.createElement(\"div\", {\n className: css.root\n }, React.createElement(\"div\", {\n className: \"\".concat(css.item, \" \").concat(css.map),\n style: mapSize\n }, React.createElement(\"div\", {\n className: css.mapActive,\n style: _objectSpread({}, activeXform, mapSize)\n })), React.createElement(\"div\", {\n className: \"\".concat(css.item, \" \").concat(css.button),\n onClick: props.viewAll,\n role: \"button\"\n }, _resetZoomIcon.default));\n}\n\nMiniMap.defaultProps = {\n className: '',\n classNamePrefix: 'plexus'\n};\n\nvar _default = React.memo(MiniMap);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.EWorkerPhase = exports.ECoordinatorPhase = exports.EWorkerErrorType = void 0; // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nvar EWorkerErrorType;\nexports.EWorkerErrorType = EWorkerErrorType;\n\n(function (EWorkerErrorType) {\n EWorkerErrorType[\"Error\"] = \"Error\";\n EWorkerErrorType[\"LayoutError\"] = \"LayoutError\";\n})(EWorkerErrorType || (exports.EWorkerErrorType = EWorkerErrorType = {}));\n\nvar ECoordinatorPhase;\nexports.ECoordinatorPhase = ECoordinatorPhase;\n\n(function (ECoordinatorPhase) {\n ECoordinatorPhase[\"Done\"] = \"Done\";\n ECoordinatorPhase[\"DotOnly\"] = \"DotOnly\";\n ECoordinatorPhase[\"Edges\"] = \"Edges\";\n ECoordinatorPhase[\"NotStarted\"] = \"NotStarted\";\n ECoordinatorPhase[\"Positions\"] = \"Positions\";\n})(ECoordinatorPhase || (exports.ECoordinatorPhase = ECoordinatorPhase = {}));\n\nvar EWorkerPhase;\nexports.EWorkerPhase = EWorkerPhase;\n\n(function (EWorkerPhase) {\n EWorkerPhase[EWorkerPhase[\"DotOnly\"] = ECoordinatorPhase.DotOnly] = \"DotOnly\";\n EWorkerPhase[EWorkerPhase[\"Edges\"] = ECoordinatorPhase.Edges] = \"Edges\";\n EWorkerPhase[EWorkerPhase[\"Positions\"] = ECoordinatorPhase.Positions] = \"Positions\";\n})(EWorkerPhase || (exports.EWorkerPhase = EWorkerPhase = {}));","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport _get from 'lodash/get';\n\nimport EUpdateTypes from './EUpdateTypes';\nimport { DraggableBounds, DraggingUpdate } from './types';\nimport { TNil } from '../../types';\n\nconst LEFT_MOUSE_BUTTON = 0;\n\ntype DraggableManagerOptions = {\n getBounds: (tag: string | TNil) => DraggableBounds;\n onMouseEnter?: (update: DraggingUpdate) => void;\n onMouseLeave?: (update: DraggingUpdate) => void;\n onMouseMove?: (update: DraggingUpdate) => void;\n onDragStart?: (update: DraggingUpdate) => void;\n onDragMove?: (update: DraggingUpdate) => void;\n onDragEnd?: (update: DraggingUpdate) => void;\n resetBoundsOnResize?: boolean;\n tag?: string;\n};\n\nexport default class DraggableManager {\n // cache the last known DraggableBounds (invalidate via `#resetBounds())\n _bounds: DraggableBounds | TNil;\n _isDragging: boolean;\n // optional callbacks for various dragging events\n _onMouseEnter: ((update: DraggingUpdate) => void) | TNil;\n _onMouseLeave: ((update: DraggingUpdate) => void) | TNil;\n _onMouseMove: ((update: DraggingUpdate) => void) | TNil;\n _onDragStart: ((update: DraggingUpdate) => void) | TNil;\n _onDragMove: ((update: DraggingUpdate) => void) | TNil;\n _onDragEnd: ((update: DraggingUpdate) => void) | TNil;\n // whether to reset the bounds on window resize\n _resetBoundsOnResize: boolean;\n\n /**\n * Get the `DraggableBounds` for the current drag. The returned value is\n * cached until either `#resetBounds()` is called or the window is resized\n * (assuming `_resetBoundsOnResize` is `true`). The `DraggableBounds` defines\n * the range the current drag can span to. It also establishes the left offset\n * to adjust `clientX` by (from the `MouseEvent`s).\n */\n getBounds: (tag: string | TNil) => DraggableBounds;\n\n // convenience data\n tag: string | TNil;\n\n // handlers for integration with DOM elements\n handleMouseEnter: (event: React.MouseEvent) => void;\n handleMouseMove: (event: React.MouseEvent) => void;\n handleMouseLeave: (event: React.MouseEvent) => void;\n handleMouseDown: (event: React.MouseEvent) => void;\n\n constructor({ getBounds, tag, resetBoundsOnResize = true, ...rest }: DraggableManagerOptions) {\n this.handleMouseDown = this._handleDragEvent;\n this.handleMouseEnter = this._handleMinorMouseEvent;\n this.handleMouseMove = this._handleMinorMouseEvent;\n this.handleMouseLeave = this._handleMinorMouseEvent;\n\n this.getBounds = getBounds;\n this.tag = tag;\n this._isDragging = false;\n this._bounds = undefined;\n this._resetBoundsOnResize = Boolean(resetBoundsOnResize);\n if (this._resetBoundsOnResize) {\n window.addEventListener('resize', this.resetBounds);\n }\n this._onMouseEnter = rest.onMouseEnter;\n this._onMouseLeave = rest.onMouseLeave;\n this._onMouseMove = rest.onMouseMove;\n this._onDragStart = rest.onDragStart;\n this._onDragMove = rest.onDragMove;\n this._onDragEnd = rest.onDragEnd;\n }\n\n _getBounds(): DraggableBounds {\n if (!this._bounds) {\n this._bounds = this.getBounds(this.tag);\n }\n return this._bounds;\n }\n\n _getPosition(clientX: number) {\n const { clientXLeft, maxValue, minValue, width } = this._getBounds();\n let x = clientX - clientXLeft;\n let value = x / width;\n if (minValue != null && value < minValue) {\n value = minValue;\n x = minValue * width;\n } else if (maxValue != null && value > maxValue) {\n value = maxValue;\n x = maxValue * width;\n }\n return { value, x };\n }\n\n _stopDragging() {\n window.removeEventListener('mousemove', this._handleDragEvent);\n window.removeEventListener('mouseup', this._handleDragEvent);\n const style = _get(document, 'body.style');\n if (style) {\n style.userSelect = null;\n }\n this._isDragging = false;\n }\n\n isDragging() {\n return this._isDragging;\n }\n\n dispose() {\n if (this._isDragging) {\n this._stopDragging();\n }\n if (this._resetBoundsOnResize) {\n window.removeEventListener('resize', this.resetBounds);\n }\n this._bounds = undefined;\n this._onMouseEnter = undefined;\n this._onMouseLeave = undefined;\n this._onMouseMove = undefined;\n this._onDragStart = undefined;\n this._onDragMove = undefined;\n this._onDragEnd = undefined;\n }\n\n resetBounds = () => {\n this._bounds = undefined;\n };\n\n _handleMinorMouseEvent = (event: React.MouseEvent) => {\n const { button, clientX, type: eventType } = event;\n if (this._isDragging || button !== LEFT_MOUSE_BUTTON) {\n return;\n }\n let type: EUpdateTypes | null = null;\n let handler: ((update: DraggingUpdate) => void) | TNil;\n if (eventType === 'mouseenter') {\n type = EUpdateTypes.MouseEnter;\n handler = this._onMouseEnter;\n } else if (eventType === 'mouseleave') {\n type = EUpdateTypes.MouseLeave;\n handler = this._onMouseLeave;\n } else if (eventType === 'mousemove') {\n type = EUpdateTypes.MouseMove;\n handler = this._onMouseMove;\n } else {\n throw new Error(`invalid event type: ${eventType}`);\n }\n if (!handler) {\n return;\n }\n const { value, x } = this._getPosition(clientX);\n handler({\n event,\n type,\n value,\n x,\n manager: this,\n tag: this.tag,\n });\n };\n\n _handleDragEvent = (event: MouseEvent | React.MouseEvent) => {\n const { button, clientX, type: eventType } = event;\n let type: EUpdateTypes | null = null;\n let handler: ((update: DraggingUpdate) => void) | TNil;\n if (eventType === 'mousedown') {\n if (this._isDragging || button !== LEFT_MOUSE_BUTTON) {\n return;\n }\n window.addEventListener('mousemove', this._handleDragEvent);\n window.addEventListener('mouseup', this._handleDragEvent);\n const style = _get(document, 'body.style');\n if (style) {\n style.userSelect = 'none';\n }\n this._isDragging = true;\n\n type = EUpdateTypes.DragStart;\n handler = this._onDragStart;\n } else if (eventType === 'mousemove') {\n if (!this._isDragging) {\n return;\n }\n type = EUpdateTypes.DragMove;\n handler = this._onDragMove;\n } else if (eventType === 'mouseup') {\n if (!this._isDragging) {\n return;\n }\n this._stopDragging();\n type = EUpdateTypes.DragEnd;\n handler = this._onDragEnd;\n } else {\n throw new Error(`invalid event type: ${eventType}`);\n }\n if (!handler) {\n return;\n }\n const { value, x } = this._getPosition(clientX);\n handler({\n event,\n type,\n value,\n x,\n manager: this,\n tag: this.tag,\n });\n };\n}\n","module.exports = __webpack_public_path__ + \"static/media/jaeger-logo.a7093b12.svg\";","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"cacheAs\", {\n enumerable: true,\n get: function get() {\n return _cacheAs.default;\n }\n});\nObject.defineProperty(exports, \"Digraph\", {\n enumerable: true,\n get: function get() {\n return _Digraph.default;\n }\n});\nObject.defineProperty(exports, \"DirectedGraph\", {\n enumerable: true,\n get: function get() {\n return _DirectedGraph.default;\n }\n});\nObject.defineProperty(exports, \"LayoutManager\", {\n enumerable: true,\n get: function get() {\n return _LayoutManager.default;\n }\n});\nexports.default = void 0;\n\nvar _cacheAs = _interopRequireDefault(require(\"./cacheAs\"));\n\nvar _Digraph = _interopRequireDefault(require(\"./Digraph\"));\n\nvar _DirectedGraph = _interopRequireDefault(require(\"./DirectedGraph\"));\n\nvar _LayoutManager = _interopRequireDefault(require(\"./LayoutManager\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nvar _default = {\n cacheAs: _cacheAs.default,\n Digraph: _Digraph.default,\n DirectedGraph: _DirectedGraph.default,\n LayoutManager: _LayoutManager.default\n};\nexports.default = _default;","\"use strict\";\n\nvar _toConsumableArray = require(\"/home/travis/gopath/src/github.com/jaegertracing/jaeger/jaeger-ui/packages/jaeger-ui/node_modules/@babel/runtime/helpers/toConsumableArray\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.assignMergeCss = assignMergeCss;\nexports.getProps = getProps;\nexports.isSamePropSetter = isSamePropSetter;\nexports.getValueScaler = void 0;\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n} // Copyright (c) 2019 Uber Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nfunction reduce(a, b) {\n // eslint-disable-next-line prefer-const\n var className = a.className,\n style = a.style,\n rest = _objectWithoutProperties(a, [\"className\", \"style\"]);\n\n var bClassName = b.className,\n bStyle = b.style,\n bRest = _objectWithoutProperties(b, [\"className\", \"style\"]); // merge className props\n\n\n if (bClassName) {\n className = className ? \"\".concat(className, \" \").concat(bClassName) : bClassName;\n } // merge style props\n\n\n if (bStyle && typeof bStyle === 'object') {\n style = style ? _objectSpread({}, style, bStyle) : bStyle;\n }\n\n return _objectSpread({\n className: className,\n style: style\n }, rest, bRest);\n}\n\nfunction assignMergeCss() {\n for (var _len = arguments.length, objs = new Array(_len), _key = 0; _key < _len; _key++) {\n objs[_key] = arguments[_key];\n }\n\n return objs.reduce(reduce);\n}\n\nfunction getProps(propSpec) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n if (!propSpec) {\n return {};\n }\n\n var specs = Array.isArray(propSpec) ? propSpec : [propSpec];\n var propsList = specs.map(function (spec) {\n return typeof spec === 'function' ? spec.apply(void 0, args) || {} : spec;\n });\n return assignMergeCss.apply(void 0, _toConsumableArray(propsList));\n}\n\nvar getValueScaler = function () {\n // define via an IIFE to sequester non-public stuff\n var DEFAULT_PARAMS = {\n expAdjuster: 0.5,\n factorMax: 1,\n factorMin: 0,\n valueMax: 1,\n valueMin: 0.3\n }; // eslint-disable-next-line no-shadow\n\n function getValueScaler() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _DEFAULT_PARAMS$confi = _objectSpread({}, DEFAULT_PARAMS, config),\n expAdjuster = _DEFAULT_PARAMS$confi.expAdjuster,\n factorMax = _DEFAULT_PARAMS$confi.factorMax,\n factorMin = _DEFAULT_PARAMS$confi.factorMin,\n valueMax = _DEFAULT_PARAMS$confi.valueMax,\n valueMin = _DEFAULT_PARAMS$confi.valueMin;\n\n return function scaleValue(factor) {\n if (factor >= factorMax) {\n return valueMax;\n }\n\n if (factor <= factorMin) {\n return valueMin;\n }\n\n return valueMin + Math.pow((factor - factorMin) / (factorMax - factorMin), expAdjuster) * (valueMax - valueMin);\n };\n }\n\n return getValueScaler;\n}();\n\nexports.getValueScaler = getValueScaler;\n\nfunction isSamePropSetter(a, b) {\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n\n return !a.some(function (item, i) {\n return item !== b[i];\n });\n }\n\n return a === b;\n}"],"sourceRoot":""}